@charset "UTF-8";

*:where(:not(iframe, canvas, img, video, svg, svg *, symbol *)) {
  all: unset;
  display: revert
}

*, *:before, *:after {
  box-sizing: border-box
}

a, button {
  cursor: revert
}

b {
  font-weight: 600
}

ol, ul, menu {
  list-style: none;
  padding: 0;
  margin: 0
}

img {
  max-width: 100%
}

table {
  border-collapse: collapse
}

textarea {
  white-space: revert
}

meter {
  -webkit-appearance: revert;
  -moz-appearance: revert;
  appearance: revert
}

::-moz-placeholder {
  color: unset
}

::placeholder {
  color: unset
}

:where([hidden]) {
  display: none
}

:where([contenteditable]) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
  line-break: after-white-space
}

:where([draggable=true]) {
  -webkit-user-drag: element
}

.only-pc {
  display: block
}

@media (max-width: 1020px) {
  .only-pc {
    display: none
  }
}

.only-sp {
  display: none
}

@media (max-width: 1020px) {
  .only-sp {
    display: block
  }
}

:root {
  --clr-prime: #d1003f;
  --clr-second: #fdd500;
  --clr-gray-light: #AAAAAA;
  --clr-gray-mid: #666666;
  --clr-gray-dark: #1B1B1B;
  --clr-gray-line: #444444;
  --clr-white: #fff;
  --clr-black: #000;
  --clr-blue: #1200D8;
  --clr-success: #a3ca60;
  --clr-info: #0650cb;
  --clr-warning: #eaba5d;
  --clr-error: #dd3e34;
  --clr-bg: #fff;
  --clr-text: #39464d;
  --clr-border: #c1c6c9;
  --fs-sm: .75em;
  --fs-md: 1em;
  --fs-lg: 1.5em;
  --ff-default: sans-serif;
  --ff-en: sans-serif;
  --ff-ja: sans-serif
}

html {
  font-family: var(--ff-default);
  font-size: var(--fs-md);
  overflow-x: clip
}

body {
  font-family: Noto Sans JP, sans-serif;
  background-color: var(--clr-gray-dark);
  color: var(--clr-text);
  line-height: 1.6
}

a {
  text-decoration: none;
  word-wrap: break-word;
  overflow-wrap: break-word;
  word-break: break-all
}

img {
  height: auto;
  -o-object-fit: contain;
  object-fit: contain
}

@keyframes scale {
  0% {
    transform: scale(0)
  }

  50% {
    transform: scale(1.2)
  }

  to {
    transform: scale(1)
  }
}

@font-face {
  font-family: Noto Sans JP;
  font-style: normal;
  font-weight: 100;
  src: url(../../fonts/notosansjp/NotoSansJP-Thin.woff2) format("woff2")
}

@font-face {
  font-family: Noto Sans JP;
  font-style: normal;
  font-weight: 200;
  src: url(../../fonts/notosansjp/NotoSansJP-Light.woff2) format("woff2")
}

@font-face {
  font-family: Noto Sans JP;
  font-style: normal;
  font-weight: 300;
  src: url(../../fonts/notosansjp/NotoSansJP-DemiLight.woff2) format("woff2")
}

@font-face {
  font-family: Noto Sans JP;
  font-style: normal;
  font-weight: 400;
  src: url(../../fonts/notosansjp/NotoSansJP-Regular.woff2) format("woff2")
}

@font-face {
  font-family: Noto Sans JP;
  font-style: normal;
  font-weight: 500;
  src: url(../../fonts/notosansjp/NotoSansJP-Medium.woff2) format("woff2")
}

@font-face {
  font-family: Noto Sans JP;
  font-style: normal;
  font-weight: 700;
  src: url(../../fonts/notosansjp/NotoSansJP-Bold.woff2) format("woff2")
}

@font-face {
  font-family: Noto Sans JP;
  font-style: normal;
  font-weight: 900;
  src: url(../../fonts/notosansjp/NotoSansJP-Black.woff2) format("woff2")
}

@font-face {
  font-family: Sofia Pro;
  font-style: normal;
  font-weight: 400;
  src: url(../../fonts/sofia-pro/Sofia%20Pro%20Regular%20Az.otf) format("opentype")
}

@font-face {
  font-family: Sofia Pro;
  font-style: normal;
  font-weight: 700;
  src: url(../../fonts/sofia-pro/Sofia%20Pro%20Bold%20Az.otf) format("opentype")
}

@font-face {
  font-family: Sofia Pro;
  font-style: normal;
  font-weight: 900;
  src: url(../../fonts/sofia-pro/Sofia%20Pro%20Black%20Az.otf) format("opentype")
}

@font-face {
  font-family: Tsunagi Gothic;
  font-style: normal;
  font-weight: 400;
  src: url(../../fonts/tsunagi-gothic/TsunagiGothic.ttf) format("truetype")
}

.lp-footer {
  background-color: var(--clr-black);
  padding: 2.7777777778vw 6.9444444444vw;
  height: 6.7361111111vw
}

@media (max-width: 1020px) {
  .lp-footer {
    padding: 6.4vw 5.3333333333vw 2.1333333333vw;
    height: 27.4666666667vw
  }
}

.lp-footer__container {
  width: 86.1111111111vw;
  height: 1.1805555556vw;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative
}

@media (max-width: 1020px) {
  .lp-footer__container {
    align-items: flex-start;
    width: 89.3333333333vw;
    height: 18.9333333333vw
  }
}

.lp-footer__nav {
  display: flex;
  align-items: center;
  gap: 2.7777777778vw
}

@media (max-width: 1020px) {
  .lp-footer__nav {
    gap: 6.4vw
  }
}

.lp-footer__nav-link {
  color: var(--clr-white);
  font-size: .9722222222vw;
  font-weight: 400;
  line-height: 1.2em;
  text-align: center;
  text-decoration: none;
  transition: opacity .3s ease
}

@media (max-width: 1020px) {
  .lp-footer__nav-link {
    font-size: 3.7333333333vw
  }
}

.lp-footer__nav-link:hover {
  opacity: .7
}

.lp-footer__copyright {
  position: absolute;
  right: 0;
  top: .1388888889vw;
  font-family: Sofia Pro, sans-serif;
  color: var(--clr-white);
  font-size: .8333333333vw;
  font-weight: 400;
  line-height: normal;
  letter-spacing: .48px;
  text-align: right;
  width: 44.4444444444vw
}

@media (max-width: 1020px) {
  .lp-footer__copyright {
    text-align: left;
    right: auto;
    left: 0;
    top: 15.2vw;
    font-size: 3.2vw;
    width: 89.3333333333vw;
    white-space: nowrap
  }
}

.lp-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 8.4027777778vw;
  padding: 1.9444444444vw 2.7777777778vw 1.9444444444vw 19.1666666667vw;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  z-index: 100
}

@media (max-width: 1020px) {
  .lp-header {
    height: 17.6vw;
    padding: 0 2.9333333333vw 0 0
  }
}

.lp-header__container {
  display: flex;
  align-items: center;
  width: 61.5972222222vw;
  height: 4.5138888889vw
}

@media (max-width: 1020px) {
  .lp-header__container {
    justify-content: flex-end;
    width: 100%;
    height: 17.6vw
  }
}

.lp-header__nav {
  display: flex;
  align-items: center;
  gap: 2.7777777778vw;
  padding: 1.4583333333vw 0 2.0833333333vw;
  flex: 1
}

@media (max-width: 1020px) {
  .lp-header__nav {
    display: none
  }
}

.lp-header__nav-link {
  font-family: Sofia Pro, sans-serif;
  color: var(--clr-white);
  font-size: .9722222222vw;
  font-weight: 700;
  line-height: 1em;
  letter-spacing: .04em;
  text-decoration: none;
  transition: opacity .3s ease
}

.lp-header__nav-link:hover {
  opacity: .7
}

.lp-header__btn {
  flex-shrink: 0;
  width: 4.5138888889vw;
  height: 4.5138888889vw;
  border-radius: 6.875vw;
  background-color: var(--clr-blue);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: opacity .3s ease;
  padding: 1.5277777778vw 1.5277777778vw 1.25vw 1.25vw
}

@media (max-width: 1020px) {
  .lp-header__btn {
    display: none
  }
}

.lp-header__btn:hover {
  opacity: .8
}

.lp-header__btn-icon {
  width: 1.7361111111vw;
  height: 1.7361111111vw
}

.lp-header__logo {
  position: fixed;
  top: 1.6666666667vw;
  left: 1.6666666667vw;
  padding: 1.3888888889vw 1.6666666667vw;
  background-color: var(--clr-blue);
  z-index: 101
}

@media (max-width: 1020px) {
  .lp-header__logo {
    top: 0;
    left: 0;
    padding: 6.4vw 5.3333333333vw
  }
}

.lp-header__logo-icon {
  width: 1.25vw;
  height: 6.25vw
}

@media (max-width: 1020px) {
  .lp-header__logo-icon {
    width: 24.2666666667vw;
    height: 4.8vw
  }
}

.lp-header__hamburger {
  display: none
}

@media (max-width: 1020px) {
  .lp-header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 17.3333333333vw;
    height: 17.3333333333vw;
    border-radius: 26.4vw;
    background-color: var(--clr-blue);
    padding: 6.1333333333vw 5.6vw;
    cursor: pointer;
    z-index: 101
  }

  .lp-header__hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: var(--clr-white);
    transition: all .3s ease-in-out
  }
}

.lp-header__hamburger.-is-active span:nth-child(1) {
  transform: translateY(8.5px) rotate(45deg)
}

.lp-header__hamburger.-is-active span:nth-child(2) {
  opacity: 0
}

.lp-header__hamburger.-is-active span:nth-child(3) {
  transform: translateY(-8.5px) rotate(-45deg)
}

.lp-gnav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--clr-gray-dark);
  z-index: 100;
  transform: translateY(-100%);
  transition: transform .5s ease, opacity .5s ease, visibility 0s ease .5s;
  visibility: hidden;
  opacity: 1;
  padding: 28.2666666667vw 2.9333333333vw 21.3333333333vw
}

.lp-gnav__inner {
  display: flex;
  flex-direction: column;
  height: 100%
}

.lp-gnav__list {
  margin-top: 10.6666666667vw;
  padding: 0 2.4vw
}

.lp-gnav__item:not(:first-child) {
  margin-top: 8.5333333333vw
}

.lp-gnav__link {
  font-size: 6.4vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .04em;
  color: var(--clr-white);
  text-decoration: none
}

.lp-gnav__link.-jp-text {
  font-size: 3.7333333333vw;
  font-weight: 400
}

.lp-gnav__contact-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 15.2vw;
  background-color: var(--clr-blue);
  border-radius: 999px;
  padding: 4.2666666667vw 6.4vw;
  color: var(--clr-white);
  text-decoration: none;
  font-size: 4.8vw;
  font-weight: 700;
  line-height: 1.2
}

.lp-gnav__contact-btn img {
  width: 6.6666666667vw;
  height: 6.6666666667vw
}

body.gnav-is-open .lp-gnav {
  transform: translateY(0);
  visibility: visible;
  opacity: 1;
  transition: transform .5s ease, opacity .5s ease
}

.layout {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column
}

.layout__main {
  display: flex;
  flex-direction: column;
  min-height: 100vh
}

.layout__footer {
  margin-top: auto
}
