@charset "UTF-8";
@import url(https://fonts.googleapis.com/earlyaccess/notosansjp.css);
.poyon {
  animation-name: poyon;
  animation-duration: 0.5s;
  animation-timing-function: cubic-bezier(0.2, 2, 0.6, 0.6);
  animation-fill-mode: both;
}

.boyon {
  animation-name: boyon;
  animation-duration: 0.5s;
  animation-timing-function: cubic-bezier(0.2, 2, 0.6, 0.6);
  animation-fill-mode: both;
}

@keyframes boyon {
  0% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1.1);
    opacity: 1;
  }
}
@keyframes poyon {
  0% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(0.98);
    opacity: 1;
  }
}
@keyframes rotation1 {
  0% {
    transform: translateX(90%) rotate(0);
  }
  100% {
    transform: translateX(90%) rotate(-360deg);
  }
}
@keyframes rotation2 {
  0% {
    transform: translateY(-50%) translateX(90%) rotate(0);
  }
  100% {
    transform: translateY(-50%) translateX(90%) rotate(-360deg);
  }
}
@keyframes rotation3 {
  0% {
    transform: translateX(90%) rotate(0);
  }
  100% {
    transform: translateX(90%) rotate(-360deg);
  }
}
.simpleY {
  opacity: 0;
  transform: translateY(min(1.3227513228vw, 20px));
  will-change: transform, opacity;
  transition: 0.8s cubic-bezier(0.18, 0.89, 0.32, 1.27);
  transition-delay: 0.2s;
}
.simpleY.active {
  opacity: 1;
  transform: translateY(0);
}

.simpleX {
  opacity: 0;
  transform: translateX(max(-1.3227513228vw, -20px));
  transition: 0.4s ease-in-out;
  will-change: transform, opacity;
}
.simpleX.active {
  opacity: 1;
  transform: translateX(0);
}

.slideX {
  clip-path: inset(0% 100% 0% 0% round min(1.3227513228vw, 20px));
  transform: translateX(max(-2.6455026455vw, -40px));
  transition: 0.8s cubic-bezier(0.86, 0, 0.07, 1);
  will-change: transform, opacity;
  opacity: 0;
}
.slideX.active {
  clip-path: inset(0 0 0 0% round min(1.3227513228vw, 20px));
  transform: translateX(0);
  opacity: 1;
}

.slideX_nbr {
  clip-path: inset(0% 100% 0% 0%);
  transform: translateX(max(-2.6455026455vw, -40px));
  transition: 0.8s cubic-bezier(0.86, 0, 0.07, 1);
  will-change: transform, opacity;
  opacity: 0;
}
.slideX_nbr.active {
  clip-path: inset(0 0 0 0%);
  transform: translateX(0);
  opacity: 1;
}

@font-face {
  font-family: "dinb";
  src: url("../fonts/DINNLTP-B.otf") format("otf"), url("../fonts/DINNLTP-B.woff") format("woff"), url("../fonts/DINNLTP-B.woff2") format("woff2");
}
@font-face {
  font-family: "dinm";
  src: url("../fonts/DINNLTP-M.otf") format("otf"), url("../fonts/DINNLTP-M.woff") format("woff"), url("../fonts/DINNLTP-M.woff2") format("woff2");
}
@media print {
  html,
  body {
    top: 0 !important;
    left: 0 !important;
    width: 200mm !important;
    overflow-x: hidden;
    size: A4;
    margin: 0;
    padding: 0;
    width: 100% !important;
  }
}

header {
  width: 100vw;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  transition: 0.4s;
}
header .hinner {
  width: 89.9470899471vw;
  height: min(7.2751322751vw, 110px);
  height: auto;
  padding-bottom: min(1.3227513228vw, 20px);
  padding-top: min(1.3227513228vw, 20px);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-end;
  align-content: flex-end;
  transition: 0.2s;
}
header {
  z-index: 15;
  position: sticky;
  top: 0;
}
@media screen and (max-width: 1511px) {
  header {
    padding: min(1.3227513228vw, 20px) max(0vw, 0px);
  }
}
header .logos {
  display: flex;
  align-items: flex-end;
  gap: min(1.3227513228vw, 20px);
  width: min(32.4074074074vw, 490px);
}
header .logo {
  width: min(18.5185185185vw, 280px);
  display: block;
}
header .logo_2 {
  width: min(11.2433862434vw, 170px);
  display: block;
}
header span.bar {
  height: min(1.3227513228vw, 20px);
  width: 1px;
  background: #E8E8E8;
  display: block;
  content: "";
}
@media screen and (min-width: 821px) {
  header.scroll {
    background-color: #fff;
    padding: max(0vw, 0px) max(0vw, 0px);
    box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
  }
  header.scroll .hinner {
    padding: min(0.6613756614vw, 10px) 0;
    align-content: center;
    align-items: center;
  }
  header.scroll .navblock .inner {
    gap: 10px;
  }
  header.scroll .navblock .txnav .childWrap .childlink {
    background-color: #fafafa;
  }
  header.scroll .navblock .txnav .childWrap .childlink:before {
    border-bottom: min(2.380952381vw, 36px) solid #fafafa;
  }
  header .navblock {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: flex-end;
    align-content: center;
    flex-direction: column;
  }
  header .navblock .inner {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: flex-end;
    align-content: center;
    flex-direction: column;
    gap: min(1.3227513228vw, 20px);
  }
  header .navblock nav ul {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    width: 100%;
    gap: min(1.3227513228vw, 20px);
  }
  header .navblock .btn_nav ul li:nth-last-of-type(1) a {
    background-color: #003692;
  }
  header .navblock .btn_nav ul li {
    width: min(10.9126984127vw, 165px);
    height: min(1.9841269841vw, 30px);
  }
  header .navblock .btn_nav ul li a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: min(0.3306878307vw, 5px);
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 500;
    font-size: min(0.9259259259vw, 14px);
    color: #FFFFFF;
    border-radius: 50px;
    background-color: #E7290F;
    transition: filter 0.2s;
  }
  header .navblock .btn_nav ul li a:after {
    content: "";
    background-image: url(../images/SVG/arrow_w.svg);
    background-size: min(0.3968253968vw, 6px) min(0.3306878307vw, 5px);
    background-position: center;
    width: min(0.3968253968vw, 6px);
    height: min(0.3306878307vw, 5px);
    display: block;
    background-repeat: no-repeat;
    transition: transform 0.4s;
  }
  header .navblock .btn_nav ul li a:hover {
    filter: brightness(1.2);
  }
  header .navblock .btn_nav ul li a:hover:after {
    transform: translateX(4px);
  }
  header .navblock .txnav > ul {
    overflow: visible;
  }
  header .navblock .txnav > ul li {
    overflow: visible;
    position: relative;
  }
  header .navblock .txnav > ul li a {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: 10px;
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 500;
    font-size: min(0.9259259259vw, 14px);
    line-height: 180%;
    position: relative;
    color: #000000;
  }
  header .navblock .txnav > ul li a:before {
    content: "";
    width: 100%;
    height: 1px;
    display: block;
    background-color: #E7290F;
    position: absolute;
    left: -5%;
    bottom: max(-0.1984126984vw, -3px);
    transition: 0.4s;
    clip-path: inset(0% 100% 0% 0%);
  }
  header .navblock .txnav > ul li a:after {
    content: "";
    background-image: url(../images/SVG/sm_plus.svg);
    background-size: min(0.3306878307vw, 5px) min(0.3306878307vw, 5px);
    background-position: center;
    width: min(0.3306878307vw, 5px);
    height: min(0.3306878307vw, 5px);
    display: block;
    background-repeat: no-repeat;
  }
  header .navblock .txnav > ul li a:hover:before {
    clip-path: inset(0 0% 0% 0%);
  }
  header .navblock .txnav > ul li:hover .childWrap {
    opacity: 1;
    transform: translateY(0px) translateX(calc(-50% - min(0.462962963vw, 7px)));
    pointer-events: all;
  }
  header .navblock .txnav > ul li:hover .childWrap .childlink {
    transform: translateY(0px);
  }
  header .navblock .txnav > ul li:hover .childWrap .childlink li {
    transform: translateY(0%);
    opacity: 1;
  }
  header .navblock .txnav .childWrap {
    position: absolute;
    top: 100%;
    left: 50%;
    transition: 0.4s;
    opacity: 0;
    transform: translateY(0px) translateX(calc(-50% - min(0.462962963vw, 7px)));
    pointer-events: none;
    will-change: transform, opacity;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    padding-top: min(2.6455026455vw, 40px);
  }
  header .navblock .txnav .childWrap .childlink:before {
    content: "";
    border: min(1.3227513228vw, 20px) solid transparent;
    border-bottom: min(2.380952381vw, 36px) solid #ffffff;
    position: absolute;
    right: 50%;
    transform: translate(50%, 0);
    top: max(-2.380952381vw, -36px);
  }
  header .navblock .txnav .childWrap .childlink {
    width: auto;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: center;
    flex-direction: column;
    padding: min(1.9841269841vw, 30px) min(2.6455026455vw, 40px);
    border-radius: 15px;
    background-color: white;
    position: relative;
    row-gap: min(1.3888888889vw, 21px);
    transition: 0.4s transform;
    transform: translateY(10px);
  }
  header .navblock .txnav .childWrap .childlink li {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    width: auto;
    transform: translateY(5px);
    opacity: 0;
    transition: transform 0.4s, opacity 0.4s;
    transition-delay: 0.3s;
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(1) {
    transition-delay: calc(0.1s * 1);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(2) {
    transition-delay: calc(0.1s * 2);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(3) {
    transition-delay: calc(0.1s * 3);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(4) {
    transition-delay: calc(0.1s * 4);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(5) {
    transition-delay: calc(0.1s * 5);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(6) {
    transition-delay: calc(0.1s * 6);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(7) {
    transition-delay: calc(0.1s * 7);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(8) {
    transition-delay: calc(0.1s * 8);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(9) {
    transition-delay: calc(0.1s * 9);
  }
  header .navblock .txnav .childWrap .childlink li:nth-of-type(10) {
    transition-delay: calc(0.1s * 10);
  }
  header .navblock .txnav .childWrap .childlink li a {
    display: flex;
    justify-content: flex-start;
    flex-wrap: nowrap;
    align-items: center;
    align-content: center;
    white-space: nowrap;
    gap: min(0.6613756614vw, 10px);
    transition: 0.2s;
  }
  header .navblock .txnav .childWrap .childlink li a:before {
    display: none;
  }
  header .navblock .txnav .childWrap .childlink li a:after {
    background-image: url(../images/SVG/arrow_bk.svg);
    transition: 0.2s;
  }
  header .navblock .txnav .childWrap .childlink li a:hover {
    color: #E7290F;
  }
  header .navblock .txnav .childWrap .childlink li a:hover:after {
    background-image: url(../images/SVG/arrow_red.svg);
    transform: translateX(2px);
  }
  header .navblock .menuclose {
    display: none;
  }
}
@media screen and (max-width: 820px) {
  header {
    width: 100%;
    max-width: 100vw;
    padding: 0px 20px;
    height: 49px;
    position: fixed;
    left: 0px;
    top: 0px;
    align-items: flex-start;
    align-content: flex-start;
    padding-top: 10px;
  }
  header:after {
    content: "";
    width: 100%;
    height: 49px;
    z-index: 0;
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    background-color: white;
    transition: 0.4s;
    transform: translateY(-120%);
  }
  header .logos {
    gap: 15px;
    width: 382px;
  }
  header .logo_2 {
    width: 95px;
    display: block;
    z-index: 1;
    transition: 0.4s;
  }
  header span.bar {
    height: 13px;
  }
  header .logo {
    width: 160px;
    z-index: 1;
    transition: 0.4s;
  }
  header.scroll:after {
    transform: translateY(0);
  }
  header .navblock {
    width: 100%;
    height: 100svh;
    position: fixed;
    left: 0;
    top: 0;
    opacity: 0;
    pointer-events: none;
    transition: 0.2s;
    background: linear-gradient(44.45deg, #0F4FFE 0.95%, #1E4FF3 7.14%, #2D4EE7 13.33%, #3C4EDC 19.52%, #4B4DD0 25.71%, #5A4DC5 32.18%, #694CB9 38.09%, #784CAE 44.28%, #874BA3 50.47%, #964B97 56.66%, #A54A8C 62.85%, #B44A80 69.05%, #C34975 75.24%, #D24969 81.43%, #E1485E 87.62%, #F04852 93.81%, #FF4747 100%);
    z-index: 11;
  }
  header .navblock .inner {
    padding-top: 77px;
    width: 100%;
    max-height: 100%;
    overflow-y: scroll;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    row-gap: 40px;
  }
  header .navblock.active {
    opacity: 1;
    pointer-events: all;
  }
  header .btn_nav ul {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: 20px;
  }
  header .btn_nav ul li:nth-last-of-type(1) a {
    background-color: #003692;
  }
  header .btn_nav ul li {
    width: 165px;
    height: 30px;
  }
  header .btn_nav ul li a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: 10px;
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    color: #FFFFFF;
    border-radius: 50px;
    background-color: #E7290F;
    transition: filter 0.2s;
  }
  header .btn_nav ul li a:after {
    content: "";
    background-image: url(../images/SVG/arrow_w.svg);
    background-size: 6px 5px;
    background-position: center;
    width: 6px;
    height: 5px;
    display: block;
    background-repeat: no-repeat;
    transition: transform 0.4s;
  }
  header .btn_nav ul li a:hover {
    filter: brightness(1.2);
  }
  header .btn_nav ul li a:hover:after {
    transform: translateX(4px);
  }
  header .txnav {
    width: 100%;
    min-height: calc(100svh - 147px);
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    flex-direction: column;
  }
  header .txnav .parent {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
    overflow-x: visible;
  }
  header .txnav .parent .trigger {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    position: relative;
    overflow: visible;
    width: 100%;
    transition: 0.2s;
  }
  header .txnav .parent .trigger a {
    width: auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: 10px;
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 500;
    font-size: 16px;
    line-height: 180%;
    position: relative;
    color: white;
    margin-left: 30px;
  }
  header .txnav .parent .trigger a:hover:before {
    clip-path: inset(0 0% 0% 0%);
  }
  header .txnav .parent .trigger:has(.childWrap.active):before {
    background-image: url(../images/SVG/sm_minus_w.svg);
  }
  header .txnav .parent .trigger:before {
    content: "";
    background-image: url(../images/SVG/sm_plus_w.svg);
    background-size: 10px 10px;
    background-position: center;
    width: 10px;
    height: 10px;
    display: block;
    background-repeat: no-repeat;
    position: absolute;
    right: 30px;
    top: 10px;
    cursor: pointer;
  }
  header .txnav .childWrap {
    position: relative;
    width: 100%;
    transition: 0.4s;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    padding-top: 20px;
    opacity: 1;
    transform-origin: center top;
    clip-path: inset(0 0% 100% 0 round min(1.3227513228vw, 20px));
    transition: 0.4s;
    max-height: 0px;
    overflow: hidden;
  }
  header .txnav .childWrap .childlink:before {
    content: "";
    border: 14px solid transparent;
    border-bottom: 21px solid #ffffff;
    position: absolute;
    right: 9px;
    transform: translate(-44%, 0);
    top: -29px;
  }
  header .txnav .childWrap .childlink {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: center;
    flex-direction: column;
    gap: 30px;
    box-sizing: border-box;
    padding: 27px 30px;
    margin-bottom: 30px;
    border-radius: 15px;
    background-color: white;
    position: relative;
    transition: transform 0.4s, max-height 0.6s;
    transform: translateY(10px);
    z-index: 10;
  }
  header .txnav .childWrap .childlink li {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    width: 100%;
  }
  header .txnav .childWrap .childlink li a {
    width: 100%;
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    align-items: center;
    align-content: center;
    white-space: nowrap;
    color: black;
    font-size: 15px;
    transition: 0.2s;
    margin-left: 0;
  }
  header .txnav .childWrap .childlink li a:after {
    content: "";
    width: 8px;
    height: 6px;
    background-size: 8px 6px;
    background-position: center;
    display: block;
    background-repeat: no-repeat;
    background-image: url(../images/SVG/arrow_bk.svg);
    transition: 0.2s;
  }
  header .txnav .childWrap .childlink li a:hover {
    color: #E7290F;
  }
  header .txnav .childWrap .childlink li a:hover:after {
    background-image: url(../images/SVG/arrow_red.svg);
    transform: translateX(2px);
  }
  header .txnav .childWrap.active {
    opacity: 1;
    pointer-events: all;
    clip-path: inset(0 0% 0 0 round min(1.3227513228vw, 20px));
    max-height: 150vh;
  }
  header .txnav .childWrap.active .childlink {
    transform: translateY(0px);
    max-height: 100vh;
  }
  header .txnav .childWrap.active .childlink li {
    transform: translateY(0%);
    opacity: 1;
  }
  header .menuclose {
    width: 76.335878%;
    height: 50px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    border-radius: 50px;
    border: 1px solid white;
    font-size: 16px;
    font-weight: bold;
    color: white;
    letter-spacing: 0.1rem;
    position: relative;
    margin-top: 1.995305vh;
    margin-bottom: 5.516432vh;
  }
  header .menuclose:after {
    content: "";
    background-image: url(../images/SVG/sm_plus_w.svg);
    background-size: 10px 10px;
    background-position: center;
    width: 10px;
    height: 10px;
    display: block;
    background-repeat: no-repeat;
    transform: rotate(-45deg);
    position: absolute;
    right: 23px;
  }
}

.globalBtn {
  width: 16px;
  height: 12px;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  align-items: flex-start;
  flex-wrap: wrap;
  position: absolute;
  right: 22px;
  top: 24px;
  z-index: 15;
  cursor: pointer;
  display: none;
}
@media screen and (max-width: 820px) {
  .globalBtn {
    display: flex;
  }
}
.globalBtn span {
  width: 100%;
  height: 2px;
  display: block;
  background: #003692;
  transition: 0.2s;
  border-radius: 5px;
}
.globalBtn span:nth-of-type(2) {
  width: 100%;
}
.globalBtn.active span {
  background-color: white;
}
.globalBtn.active span:nth-of-type(1) {
  transform: translateY(6px) rotate(-135deg);
}
.globalBtn.active span:nth-of-type(2) {
  opacity: 0;
}
.globalBtn.active span:nth-of-type(3) {
  transform: translateY(-4px) rotate(135deg) scaleX(1);
  transform-origin: center;
}

footer {
  width: 100%;
  height: auto;
  padding: min(4.828042328vw, 73px) min(6.4153439153vw, 97px) 0;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: stretch;
  align-content: flex-start;
  background-color: #fff;
  position: relative;
}
footer:before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  background-color: #fff;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
}
footer:after {
  content: "";
  width: min(89.9470899471vw, 1360px);
  height: min(6.6137566138vw, 100px);
  border-radius: min(6.6137566138vw, 100px);
  background: #F3F3F3;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  filter: blur(30px);
  z-index: -2;
}
footer .logoarea {
  width: min(19.8412698413vw, 300px);
  height: auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  gap: min(0.9920634921vw, 15px);
}
footer .logoarea .badge {
  width: 50%;
}
footer .linkarea {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  width: min(100% - min(19.8412698413vw, 300px));
  width: min(100% - min(29.7619047619vw, 450px));
  gap: min(2.6455026455vw, 40px);
}
footer .listwrap {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: center;
  gap: 2.3148148148vw;
}
footer .listwrap ul.listitem {
  width: calc((100% - 9.2592592593vw) / 5);
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  align-items: flex-start;
  flex-direction: column;
  gap: min(0.8597883598vw, 13px);
  position: relative;
  padding-top: min(1.2566137566vw, 19px);
}
footer .listwrap ul.listitem:before {
  width: 100%;
  height: 3px;
  background: #f1f3f3;
  border-radius: 3px;
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
footer .listwrap ul.listitem:after {
  width: min(1.9841269841vw, 30px);
  height: 3px;
  background: #dd0038;
  border-radius: 3px;
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
footer .listwrap ul.listitem li {
  font-size: min(0.8597883598vw, 13px);
  position: relative;
  padding: 0 0 0 1em;
}
footer .listwrap ul.listitem li a {
  color: black;
  transition: 0.2s;
  position: relative;
  white-space: nowrap;
}
footer .listwrap ul.listitem li a:after {
  content: "";
  width: 100%;
  height: 1px;
  display: block;
  background-color: #E7290F;
  position: absolute;
  left: 0%;
  bottom: max(-0.1984126984vw, -3px);
  transition: 0.4s;
  transform: scale(0);
  transform-origin: left;
}
footer .listwrap ul.listitem li a:hover {
  color: #003692;
}
footer .listwrap ul.listitem li a:hover:after {
  clip-path: inset(0 0% 0% 0%);
  transform: scaleX(1);
}
footer .listwrap ul.listitem li:before {
  content: "・";
  position: absolute;
  left: 0;
}
footer .listwrap ul.listitem li.header {
  list-style: none;
  font-size: min(0.9920634921vw, 15px);
  margin-bottom: min(0.3306878307vw, 5px);
  font-weight: 500;
  padding-left: 0;
}
footer .listwrap ul.listitem li.header a {
  padding: 0;
}
footer .listwrap ul.listitem li.header:before {
  display: none;
}
footer .listwrap ul.listitem li.header.in {
  padding-top: min(1.2566137566vw, 19px);
  position: relative;
  width: 100%;
}
footer .listwrap ul.listitem li.header.in:before {
  width: 100%;
  height: 3px;
  background: #f1f3f3;
  border-radius: 3px;
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
footer .listwrap ul.listitem li.header.in:after {
  width: min(1.9841269841vw, 30px);
  height: 3px;
  background: #dd0038;
  border-radius: 3px;
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
footer small {
  font-size: min(0.8597883598vw, 13px);
  font-weight: 500;
  line-height: min(0.9920634921vw, 15px);
  letter-spacing: 0.2em;
  text-align: center;
  color: #000000;
  width: 100%;
  margin-top: min(3.9682539683vw, 60px);
  margin-bottom: min(1.3227513228vw, 20px);
  display: flex; /* Safari */
  display: flex;
  -webkit-flex-wrap: nowrap; /* Safari */
  flex-wrap: nowrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
footer small .cmark {
  font-size: min(1.0582010582vw, 16px);
  transform: translateY(min(0.1322751323vw, 2px));
}
footer small::first-letter {
  font-size: min(1.3888888889vw, 21px);
}
@supports (-ms-ime-align: auto) {
  footer small::first-letter {
    font-size: min(0.8597883598vw, 13px);
  }
}
@media screen and (max-width: 820px) {
  footer {
    justify-content: center;
    padding: calc(2.3887587822px + 0.0702576112 * 100vw) calc(1.1943793911px + 0.0351288056 * 100vw) 0;
  }
  footer .logoarea {
    width: calc(23.3302107728px + 0.6861826698 * 100vw);
    row-gap: calc(3.981264637px + 0.1170960187 * 100vw);
    margin-bottom: calc(3.981264637px + 0.1170960187 * 100vw);
  }
  footer .linkarea {
    display: none;
  }
  footer small {
    font-size: calc(0.7166276347px + 0.0210772834 * 100vw);
    line-height: 180%;
    padding-bottom: calc(0.7962529274px + 0.0234192037 * 100vw);
    display: flex; /* Safari */
    display: flex;
    -webkit-flex-wrap: nowrap; /* Safari */
    flex-wrap: nowrap;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    letter-spacing: 0.1em;
  }
}

* {
  box-sizing: border-box;
  background-repeat: no-repeat;
}

a {
  -webkit-tap-highlight-color: rgba(29, 17, 17, 0);
  text-decoration: none;
}

body,
html {
  position: relative;
  caret-color: transparent;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  font-family: "Noto Sans JP", sans-serif;
}

body {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  background-size: 100% auto;
  background-position: center top max(-11.3095238095vw, -171px);
  background-color: #F6F6F6;
  max-width: 100vw;
  padding: 0;
  position: relative;
  font-family: "Noto Sans JP";
}
body.under {
  height: auto;
  overflow-x: hidden;
  background-color: white;
}
body.menuopen {
  overflow: hidden;
}

body.toppage {
  max-width: 100vw;
  height: auto;
  overflow-x: hidden;
  -webkit-overflow-w: hidden;
}

a {
  text-decoration: none;
}

img {
  width: 100%;
}

.pcnon {
  display: none;
}
@media screen and (max-width: 1360px) {
  .pcnon {
    display: inline;
  }
}

.spnon {
  display: inline;
}
@media screen and (max-width: 1360px) {
  .spnon {
    display: none;
  }
}

#firstViewMask {
  width: 100vw;
  height: 100vh;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  -webkit-mask-image: linear-gradient(to top, transparent, black 10vh, black calc(100% - 10vh));
  mask-image: linear-gradient(to top, transparent, black 10vh, black calc(100% - 10vh));
}
@media screen and (max-width: 820px) {
  #firstViewMask {
    height: 50vh;
  }
}

#firstView {
  width: 100%;
  height: 100%;
}/*# sourceMappingURL=common.css.map */