.skip-link,
.header-form,
.header-form *,
.entry-form-head,
.entry-form-head *,
.contact-window,
.contact-window *,
.footer,
.footer * {
  box-sizing: border-box;
}

:focus-visible {
  outline: .2rem solid #1868b6;
  outline-offset: .2rem;
}

.visually-hidden {
  position: absolute;
  width: .1rem;
  height: .1rem;
  margin: -.1rem;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

.container {
  width: 100%;
  margin-inline: auto;
  padding-inline: min(4.8rem,3.75vw);
}

@media (max-width: 767.98px) {
  .container {
    padding-inline: min(1.6rem,4.1025641026vw);
  }
}

.container--wide {
  max-width: 128rem;
  padding-inline: min(12.8rem,10vw);
}

@media (max-width: 767.98px) {
  .container--wide {
    padding-inline: min(1.6rem,4.1025641026vw);
  }
}

.header-form {
  position: relative;
  z-index: 100;
  padding-block: min(1.6rem,1.25vw) min(1.2rem,.9375vw);
  background: transparent;
}

@media (max-width: 767.98px) {
  .header-form {
    padding-block: min(1.6rem,4.1025641026vw) min(1.2rem,3.0769230769vw);
  }
}

.header-form__inner {
  max-width: 128rem;
  margin-inline: auto;
  padding-inline: min(4.8rem,3.75vw);
}

@media (max-width: 767.98px) {
  .header-form__inner {
    padding-inline: min(2.4rem,6.1538461538vw);
  }
}

.header-form__logo {
  display: inline-flex;
  position: relative;
}

.header-form__logo:before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100%,2.4rem);
  height: max(100%,2.4rem);
  transform: translate(-50%,-50%);
  content: "";
}

.header-form__logo img {
  display: block;
  width: 21.7rem;
  height: auto;
}

@media (max-width: 767.98px) {
  .header-form__logo img {
    width: 11.5rem;
  }
}

.footer {
  position: relative;
  z-index: 1;
  padding-block: min(5.6rem,4.375vw) min(12.8rem,10vw);
  background: linear-gradient(107.4deg,#000c,#00000062);
}

@media (max-width: 767.98px) {
  .footer {
    padding-block: min(5.6rem,14.358974359vw);
    background: linear-gradient(93.1deg,#000c,#00000062);
  }
}

.footer:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  border-radius: min(3.2rem,2.5vw) min(3.2rem,2.5vw) 0 0;
  background: #e5e5e5;
}

@media (max-width: 767.98px) {
  .footer:before {
    border-radius: min(3.2rem,8.2051282051vw) min(3.2rem,8.2051282051vw) 0 0;
  }
}

.footer__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: min(6.4rem,5vw);
}

@media (max-width: 767.98px) {
  .footer__inner {
    gap: min(2.2rem,5.641025641vw);
    padding-inline: min(3.3rem,8.4615384615vw);
  }
}

.footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

@media (max-width: 767.98px) {
  .footer__top {
    flex-direction: column;
    gap: min(3.2rem,8.2051282051vw);
    align-items: center;
  }
}

.footer__logo {
  margin: 0;
}

.footer__logo img {
  display: block;
  height: 8.5rem;
  width: auto;
}

.footer__sns {
  display: flex;
  align-items: center;
  gap: min(3.2rem,2.5vw);
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 767.98px) {
  .footer__sns {
    gap: min(3.2rem,8.2051282051vw);
  }
}

.footer__sns-link {
  display: inline-flex;
  transition: transform .3s ease;
  will-change: transform;
}

@media (hover: hover) {
  .footer__sns-link:hover {
    transform: scale(1.05);
  }
}

.footer__sns-link img {
  display: block;
  height: 4rem;
  width: auto;
}

.footer__sns-link img[src*=icon-x] {
  height: 3.6rem;
}

.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: min(2.4rem,1.875vw);
}

@media (max-width: 767.98px) {
  .footer__bottom {
    flex-direction: column;
    align-items: center;
    gap: min(1.7rem,4.358974359vw);
  }
}

.footer__links {
  display: flex;
  gap: min(4.2rem,3.28125vw);
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 767.98px) {
  .footer__links {
    gap: min(2.4rem,6.1538461538vw);
  }
}

.footer__link {
  color: #000;
  font-family: Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 600;
  font-size: 1.2rem;
  text-decoration: none;
  white-space: nowrap;
  background-image: linear-gradient(currentcolor,currentcolor);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 .1rem;
  transition: background-size .3s ease;
}

@media (hover: hover) {
  .footer__link:hover {
    background-position: left bottom;
    background-size: 100% .1rem;
  }
}

.footer__link {
  position: relative;
}

.footer__link:before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100%,2.4rem);
  height: max(100%,2.4rem);
  transform: translate(-50%,-50%);
  content: "";
}

.footer__copyright {
  margin: 0;
  color: #000;
  font-family: Inter,-apple-system,blinkmacsystemfont,Segoe UI,sans-serif;
  font-weight: 500;
  font-size: 1.2rem;

  line-height: 1.5;
  text-align: right;
}

.footer__copyright span[lang='ja'] {
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  .footer__copyright {
    text-align: center;
  }
}

.skip-link {
  position: fixed;
  top: min(.8rem,.625vw);
  left: min(.8rem,.625vw);
  z-index: 300;
  padding: min(.8rem,.625vw) min(1.6rem,1.25vw);
  border-radius: min(.4rem,.3125vw);
  background: #00428c;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-200%);
}

.skip-link:focus-visible {
  transform: translateY(0);
}

@media (max-width: 767.98px) {
  .skip-link {
    top: min(.8rem,2.0512820513vw);
    left: min(.8rem,2.0512820513vw);
    padding: min(.8rem,2.0512820513vw) min(1.6rem,4.1025641026vw);
    border-radius: min(.4rem,1.0256410256vw);
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: min(1rem,.78125vw);
  padding: min(1.4rem,1.09375vw) min(2.4rem,1.875vw);
  border: min(.1rem,.078125vw) solid #cfcfcf;
  border-radius: min(12.8rem,10vw);
  background: #fff;
  color: #242424;
  font-family: Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  font-size: 1.6rem;
  letter-spacing: 0rem;
}

@media (max-width: 767.98px) {
  .btn {
    gap: min(1rem,2.5641025641vw);
    padding: min(1.4rem,3.5897435897vw) min(2.4rem,6.1538461538vw);
    border: min(.1rem,.2564102564vw) solid #cfcfcf;
    border-radius: min(12.8rem,32.8205128205vw);
  }
}

.btn__label {
  display: inline-block;
  white-space: nowrap;
  text-align: center;
}

.btn__label>span {
  font-weight: 700;
}

.btn__icon {
  flex-shrink: 0;
  width: .8rem;
  height: .8rem;
  border-top: min(.2rem,.15625vw) solid currentcolor;
  border-right: min(.2rem,.15625vw) solid currentcolor;
  transform: rotate(45deg);
}

@media (max-width: 767.98px) {
  .btn__icon {
    border-top: min(.2rem,.5128205128vw) solid currentcolor;
    border-right: min(.2rem,.5128205128vw) solid currentcolor;
  }
}

.btn {
  transition: background-color .3s ease,border-color .3s ease,color .3s ease;
}

.btn .btn__icon {
  transition: translate .3s ease;
}

@media (hover: hover) {
  .btn:hover {
    border-color: #171717;
    background: #171717;
    color: #fff;
  }

  .btn:hover .btn__icon {
    translate: min(.3rem,.234375vw) 0;
  }
}

@media (hover: hover)and (max-width:767.98px) {
  .btn:hover .btn__icon {
    translate: min(.3rem,.7692307692vw) 0;
  }
}

.entry-form-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  box-sizing: border-box;
  width: 100%;

  padding: min(9.6rem, 7.5vw) var(--panel-gutter) min(4.8rem, 3.75vw);
  border-radius: min(3.2rem, 2.5vw) min(3.2rem, 2.5vw) 0 0;
  background: #f7f6f6;

  box-shadow: 0 0.1rem 0 0 #f7f6f6;
}

@media (max-width: 767.98px) {
  .entry-form-head {
    padding: min(4.8rem, 12.3076923077vw) var(--panel-gutter) min(3.2rem, 8.2051282051vw);
    border-radius: min(3.2rem, 8.2051282051vw) min(3.2rem, 8.2051282051vw) 0 0;
  }
}

.entry-form-head__badge {
  margin: 0;
  margin-bottom: min(.8rem,.625vw);
  padding: .4rem min(1.6rem,1.25vw);
  border: .1rem solid #1e285a;
  border-radius: .4rem;
  background: #eee;
  color: #1e285a;
  font-family: Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.4;
}

@media (max-width: 767.98px) {
  .entry-form-head__badge {
    margin-bottom: min(1.2rem,3.0769230769vw);
    padding: .4rem min(1.6rem,4.1025641026vw);
    font-size: 1.4rem;
  }
}

.entry-form-head__badge--invited {
  background: #1e285a;
  color: #fff;
}

.entry-form-head__title {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(.8rem,.625vw);
  margin: 0;
  color: #16263a;
  font-family: Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 500;
  font-size: 4rem;
  line-height: 1.4;
  text-align: center;
}

@media (max-width: 767.98px) {
  .entry-form-head__title {
    flex-direction: column;
    gap: 0;
    font-size: 3.2rem;
  }
}

@supports (background-clip: text) or (-webkit-background-clip: text) {
  .entry-form-head__title span:first-child {
    background-image: linear-gradient(90deg,#164f94,#162435);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}

.entry-form-head__subtitle {

  margin: min(1.2rem,.9375vw) 0 0;
  color: #164f94;
  font-family: Inter,-apple-system,blinkmacsystemfont,Segoe UI,sans-serif;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1;
  text-align: center;
}

@media (max-width: 767.98px) {
  .entry-form-head__subtitle {
    margin-top: min(.6rem,1.5384615385vw);
    font-size: 1.4rem;
  }
}

@supports (background-clip: text) or (-webkit-background-clip: text) {
  .entry-form-head__subtitle {
    background-image: linear-gradient(90deg,#164f94 0%,#162435 100%);
    background-clip: text;
    color: transparent;
  }
}

.contact-window {
  padding: min(12.8rem,10vw);
  background: #000c;
}

@media (max-width: 767.98px) {
  .contact-window {
    padding: min(12.8rem,32.8205128205vw) min(2rem,5.1282051282vw);
  }
}

.contact-window__inner {
  display: flex;
  flex-direction: column;
  gap: min(3.2rem,2.5vw);
  max-width: 102.4rem;
  margin-inline: auto;
  padding: min(6.4rem,5vw) min(1rem,.78125vw);
  border: min(.1rem,.078125vw) solid #000;
  border-radius: min(3.2rem,2.5vw);
  background-color: #171717;
  background-image: linear-gradient(180deg,#0003,#17171733 65.15%);
}

@media (max-width: 767.98px) {
  .contact-window__inner {
    gap: min(3.2rem,8.2051282051vw);
    padding: min(6.4rem,16.4102564103vw) min(2rem,5.1282051282vw);
    border-width: min(.1rem,.2564102564vw);
    border-radius: min(3.2rem,8.2051282051vw);
  }
}

.contact-window__title {
  margin: 0;
  color: #f8f8f8;
  font-family: Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 500;
  font-size: 2.8rem;
  line-height: 1.4;
  text-align: center;
}

.contact-window__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(2.2rem,1.71875vw);
}

@media (max-width: 767.98px) {
  .contact-window__body {
    gap: min(2.2rem,5.641025641vw);
  }
}

.contact-window__lead-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(.2rem,.15625vw);
  color: #f8f8f8;
}

@media (max-width: 767.98px) {
  .contact-window__lead-group {
    gap: min(.2rem,.5128205128vw);
    width: 100%;
  }
}

.contact-window__lead {
  margin: 0;
  font-family: Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 400;
  font-size: 1.8rem;
  line-height: 1.8;
  text-align: center;
}

@media (max-width: 767.98px) {
  .contact-window__lead {
    font-weight: 500;
    font-size: 1.6rem;
  }
}

.contact-window__hours {
  display: flex;
  gap: min(.2rem,.15625vw);
  margin: 0;
  font-family: Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.6;
}

@media (max-width: 767.98px) {
  .contact-window__hours {
    gap: min(.2rem,.5128205128vw);
    font-size: 1.4rem;
  }
}

.contact-window__btn {
  justify-content: space-between;
  width: 27rem;
  padding: min(1.6rem,1.25vw) min(2.3rem,1.796875vw) min(1.9rem,1.484375vw);
  border-color: #fff;
  background: #eee;
  box-shadow: 0 min(1rem,.78125vw) min(1rem,.78125vw) 0 #000000b3;
}

@media (max-width: 767.98px) {
  .contact-window__btn {
    padding: min(1.4rem,3.5897435897vw);
    box-shadow: 0 min(1rem,2.5641025641vw) min(1rem,2.5641025641vw) 0 #000000b3;
  }
}

.contact-window__btn .btn__label {
  flex: 1 0 0;
  min-width: 0;
  font-weight: 700;
  text-align: center;
}

.contact-window__btn .btn__icon {
  width: 1rem;
  height: 1.2rem;
  border: 0;
  background-color: currentcolor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 11.5 13.5' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M5.75 0.75V12.75M0.75 5.89286L5.75 0.75L10.75 5.89286' stroke='%23242424' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 11.5 13.5' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M5.75 0.75V12.75M0.75 5.89286L5.75 0.75L10.75 5.89286' stroke='%23242424' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / contain no-repeat;
  transform: rotate(90deg);
}

@media (hover: hover) {
  .btn.contact-window__btn:hover {
    border-color: #fff;
  }
}
