@charset "UTF-8";

/* ===============================================
# Header
=============================================== */
.l-header {
  width: 100%;
  background-color: var(--color-white);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 11;
}

.l-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 20px 40px;
}

@media (max-width: 1024px) {
  .l-header__inner {
    padding: 10px 13px;
  }
}

.l-header__logo {
  width: 191px;
}

@media (max-width: 1024px) {
  .l-header__logo {
    width: 151px;
  }
}

.l-header__menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 68px;
     -moz-column-gap: 68px;
          column-gap: 68px;
}

@media (max-width: 1024px) {
  .l-header__menu {
    -webkit-column-gap: 10px;
       -moz-column-gap: 10px;
            column-gap: 10px;
  }
}

.l-header__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 35px;
     -moz-column-gap: 35px;
          column-gap: 35px;
}

.l-header__link {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-md);
  -webkit-transition: color var(--duration) var(--easing);
  transition: color var(--duration) var(--easing);
}

@media (any-hover: hover) {
  .l-header__link:hover {
    color: var(--color-gray-900);
  }
}

.l-header-button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 35px;
     -moz-column-gap: 35px;
          column-gap: 35px;
}

@media (max-width: 1024px) {
  .l-header-button {
    -webkit-column-gap: 10px;
       -moz-column-gap: 10px;
            column-gap: 10px;
  }
}

.l-header-button__link {
  display: grid;
  place-items: center;
  row-gap: 8px;
  font-size: var(--font-size-4xs);
  letter-spacing: var(--letter-spacing-lg);
  -webkit-transition: color var(--duration) var(--easing);
  transition: color var(--duration) var(--easing);
}

@media (any-hover: hover) {
  .l-header-button__link:hover {
    color: var(--color-gray-900);
  }
}

@media (max-width: 1024px) {
  .l-header-button__link {
    place-content: center;
    width: 50px;
    aspect-ratio: 1;
    white-space: nowrap;
    row-gap: 5px;
    font-size: var(--font-size-5xs);
  }
}

.l-header-button__link img {
  width: 24px;
}

@media (max-width: 1024px) {
  .l-header-button__link img {
    width: 20px;
  }
}

.l-drawer-button {
    display: grid;
  place-content: center;
  place-items: center;
  row-gap: 16px;
  width: 48px;
  aspect-ratio: 1;
  padding-top: 6px;
  position: relative;

  &.is-open .l-drawer-button__line {
    background-color: transparent;

    &::before,
    &::after {
      top: 0;
    }

    &::before {
      rotate: 45deg;
    }

    &::after {
      rotate: -45deg;
    }
  }
}

.l-drawer-button__line {
  display: block;
  width: 18px;
  height: 1px;
  background-color: var(--color-gray-900);
  position: relative;
  -webkit-transition: background-color var(--duration) var(--easing);
  transition: background-color var(--duration) var(--easing);

  &::before,
  &::after {
    content: "";
    width: 100%;
    height: 100%;
    background-color: var(--color-gray-900);
    position: absolute;
    translate: -50% 0;
    -webkit-transition-property: background-color, top, rotate;
    transition-property: background-color, top, rotate;
    -webkit-transition-duration: var(--duration);
            transition-duration: var(--duration);
    -webkit-transition-timing-function: var(--easing);
            transition-timing-function: var(--easing);
  }

  &::before {
    top: -5px;
  }

  &::after {
    top: 5px;
  }
}

.l-drawer-button__text {
  font-size: var(--font-size-5xs);
}

.l-drawer {
  width: 100%;
  height: 100dvh;
  background-color: var(--color-white);
  position: fixed;
  top: 68px;
  left: 0;
  opacity: 0;
  visibility: hidden;
  -webkit-transition-property: opacity, visibility;
  transition-property: opacity, visibility;
  -webkit-transition-duration: var(--duration);
          transition-duration: var(--duration);
  -webkit-transition-timing-function: var(--easing);
          transition-timing-function: var(--easing);

  &.is-open {
    opacity: 1;
    visibility: visible;
  }
}

.l-drawer__inner {
	padding: 20px 26px 120px;
	overflow: auto;
	overscroll-behavior-block: contain;
	position: absolute;
	inset: 0;
}

.l-drawer__link {
  display: block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-md);
  color: var(--color-gray-900);
  border-bottom: 1px solid var(--color-gray-900);
  padding-block: 15px;
}

.l-drawer-sub {
  margin-block: 20px;
}

.l-drawer-sub__list:not(:first-child) {
  margin-top: 10px;
}

.l-drawer-sub__link {
  font-weight: var(--font-weight-md);
}

.l-drawer-contact {
  margin-top: 30px;
}

.l-drawer-contact__link {
  display: grid;
  place-items: center;
  color: var(--color-white);
  background-color: var(--color-gray-900);
  padding: 15px;
}

.l-drawer-subnav {
  margin-top: 20px;
}

.l-drawer-subnav__item:not(:first-child) {
  margin-top: 5px;
}

.l-drawer-subnav__link {
  font-size: var(--font-size-3xs);
  color: var(--color-gray-1000);
}

.l-drawer-sns {
  margin-top: 30px;
}

.l-drawer-sns__link {
  display: block;
  width: 24px;
}

/* ===============================================
# Main
=============================================== */
.l-main {
  padding-top: 88px;
}

@media (max-width: 1024px) {
  .l-main {
    padding-top: 68px;
  }
}

/* ===============================================
# Inner
=============================================== */
.l-inner-sm {
  max-width: calc(var(--content-width-sm) + (var(--content-padding-side) * 2));
  padding-inline: var(--content-padding-side);
  margin-inline: auto;
}

.l-inner-md {
  max-width: calc(var(--content-width-md) + (var(--content-padding-side) * 2));
  padding-inline: var(--content-padding-side);
  margin-inline: auto;
}

.l-inner-lg {
  max-width: calc(var(--content-width-lg) + (var(--content-padding-side) * 2));
  padding-inline: var(--content-padding-side);
  margin-inline: auto;
}

.l-inner-xl {
  max-width: calc(var(--content-width-xl) + (var(--content-padding-side) * 2));
  padding-inline: var(--content-padding-side);
  margin-inline: auto;
}

@media (max-width: 768px) {
  .l-inner-sm,
  .l-inner-md,
  .l-inner-lg,
  .l-inner-xl {
    max-width: revert;
  }
}

/* ===============================================
# Page Headings
=============================================== */
.l-page-heading__main {
  font-size: var(--font-size-6xl);
  font-weight: var(--font-weight-md);
  letter-spacing: var(--letter-spacing-xl);
}

@media (max-width: 768px) {
  .l-page-heading__main {
    font-size: var(--font-size-3xl);
    text-align: center;
  }
}

.l-page-heading__sub {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-md);
  color: var(--color-gray-900);
}

@media (max-width: 768px) {
  .l-page-heading__sub {
    font-size: var(--font-size-2xs);
    text-align: center;
  }
}

.l-page-heading--primary .l-page-heading__sub {
  margin-top: 20px;
}

@media (max-width: 768px) {
  .l-page-heading--primary .l-page-heading__sub {
    margin-top: 10px;
  }
}

.l-page-heading--secondary .l-page-heading__main {
  margin-top: 30px;
}

@media (max-width: 768px) {
  .l-page-heading--secondary .l-page-heading__main {
    margin-top: 10px;
  }
}

/* ===============================================
# Footer
=============================================== */
.l-footer__inner {
  max-width: calc(1300px + (70px * 2));
  padding-inline: 70px;
  padding-bottom: 80px;
  margin-inline: auto;
}

@media (max-width: 768px) {
  .l-footer__inner {
    max-width: revert;
    padding-inline: var(--content-padding-side);
    padding-inline: calc(var(--content-padding-side) * 2);
    padding-block: 36px;
  }
}

.l-footer__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  border-top: 1px solid var(--color-gray-200);
  padding-top: 60px;
}

@media (max-width: 768px) {
  .l-footer__main {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    border: none;
    padding-top: revert;
  }
}

.l-footer__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-column-gap: 120px;
     -moz-column-gap: 120px;
          column-gap: 120px;
}

.l-footer__item:not(:first-child) {
  margin-top: 10px;
}

.l-footer__link {
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-md);
  -webkit-transition: color var(--duration) var(--easing);
  transition: color var(--duration) var(--easing);
}

@media (any-hover: hover) {
  .l-footer__link:hover {
    color: var(--color-gray-900);
  }
}

.l-footer__logo {
  width: 191px;
}

@media (max-width: 768px) {
  .l-footer__logo {
    width: 151px;
  }
}

.l-footer-contact {
  margin-top: 30px;
}

.l-footer-contact__link {
  display: grid;
  place-items: center;
  width: 270px;
  color: var(--color-white);
  background-color: var(--color-gray-900);
  border: 1px solid var(--color-gray-900);
  padding: 20px;
  -webkit-transition-property: color, background-color;
  transition-property: color, background-color;
  -webkit-transition-duration: var(--duration);
          transition-duration: var(--duration);
  -webkit-transition-timing-function: var(--easing);
          transition-timing-function: var(--easing);
}

@media (any-hover: hover) {
  .l-footer-contact__link:hover {
    color: var(--color-gray-900);
    background-color: var(--color-white);
  }
}

.l-footer-sns {
  margin-top: 20px;
}

.l-footer-sns__link {
  display: block;
  width: 30px;
  -webkit-transition: opacity var(--duration) var(--easing);
  transition: opacity var(--duration) var(--easing);
}

@media (any-hover: hover) {
  .l-footer-sns__link:hover {
    opacity: .7;
  }
}

.l-footer-subnav {
  margin-top: 30px;
}

@media (max-width: 768px) {
  .l-footer-subnav {
    margin-top: 15px;
  }
}

.l-footer-subnav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-column-gap: 20px;
     -moz-column-gap: 20px;
          column-gap: 20px;
}

@media (max-width: 768px) {
  .l-footer-subnav__list {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    row-gap: 10px;
  }
}

.l-footer-subnav__link {
  font-size: var(--font-size-3xs);
  color: var(--color-gray-1000);
}

@media (any-hover: hover) {
  .l-footer-subnav__link:hover {
    text-decoration: underline;
  }
}

@media (max-width: 768px) {
  .l-footer-subnav__link {
    color: var(--color-black);
  }
}
