@charset "UTF-8";
.page-transition {
  display: none;
}

.js .page-transition {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20000;
  display: block;
  width: 100%;
  height: 100dvh;
  background: #000;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  pointer-events: none;
  will-change: clip-path;
}

.js.is-page-loaded .page-transition {
  clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  transition: clip-path 0.4s cubic-bezier(0.55, 0.085, 0.68, 0.53);
}

.en-band {
  display: inline-flex;
  align-items: center;
  min-height: 3.3rem;
  padding: 0.5rem 2rem 0.2rem;
  color: #fff;
  background: #000;
  clip-path: polygon(7% 0, 100% 0, 93% 100%, 0 100%);
  font-family: "Anton", Impact, sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .en-band {
    min-height: 5.4rem;
    padding: 0.8rem 4rem 0.3rem;
    font-size: 3rem;
  }
}

.section-title__en {
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .section-title__en {
    margin-bottom: 3rem;
  }
}
.section-title__jp {
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .section-title__jp {
    font-size: 5.3rem;
    line-height: 1.3;
  }
}
.section-title--light {
  color: #fff;
}

.heading-line {
  display: block;
  white-space: nowrap;
}

.keep-together {
  white-space: nowrap;
}

.media-placeholder {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #dc000c;
  background: #fff;
  font-size: 3rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: center;
  transform: translate(-50%, -50%);
}
@media (min-width: 768px) {
  .media-placeholder {
    font-size: 4.2rem;
  }
}

.button {
  --hover-sweep-color: #173b78;
  --button-label-offset-x: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 5rem;
  padding: 1rem 2rem;
  color: #fff;
  background: #173b78;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
}
@media (min-width: 768px) {
  .button {
    min-height: 9.5rem;
    padding-inline: 7rem;
    font-size: 2.5rem;
  }
}
.button__label {
  position: relative;
  z-index: 1;
  display: block;
  transform: translateX(var(--button-label-offset-x));
}
.button--arrow {
  --button-label-offset-x: -2.35rem;
}
@media (min-width: 768px) {
  .button--arrow {
    --button-label-offset-x: -1.13rem;
  }
}
.button__icon {
  position: absolute;
  top: 50%;
  right: 2.24rem;
  z-index: 1;
  width: 0.79rem;
  height: 1.25rem;
  background: url("../img/svg/icon/ui/button-arrow-sp.svg") center/contain no-repeat;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .button__icon {
    right: 3.45rem;
    width: 1.65rem;
    height: 2.81rem;
    background-image: url("../img/svg/icon/ui/button-arrow-pc.svg");
  }
}
.button--blue {
  --hover-sweep-color: #0030b2;
}
.button--red {
  --hover-sweep-color: #d30012;
  background: #f20015;
}
.button--black {
  --hover-sweep-color: #242424;
  background: #000;
}
.button--yellow {
  --hover-sweep-color: #ffd800;
  color: #000;
  background: #fff500;
}
.button--yellow .button__icon {
  filter: brightness(0);
}
.button--line {
  --hover-sweep-color: #05a94a;
  background: #06c755;
}
@media (min-width: 768px) {
  .button--line {
    --button-label-offset-x: -3.68rem;
  }
}
.button--review {
  --hover-sweep-color: #d30012;
  --button-label-offset-x: -.08rem;
}
@media (min-width: 768px) {
  .button--review {
    --button-label-offset-x: .1rem;
  }
}
.button--review .button__icon {
  right: 2.5rem;
  width: 0.71rem;
  height: 1.22rem;
  background-image: url("../img/svg/icon/ui/button-arrow-review-sp.svg");
}
@media (min-width: 768px) {
  .button--review .button__icon {
    right: 2.82rem;
    width: 0.77rem;
    height: 1.34rem;
    background-image: url("../img/svg/icon/ui/button-arrow-review-pc.svg");
  }
}
.button--content {
  font-size: 1.4rem;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .button--content {
    font-size: 2.4rem;
    letter-spacing: 0.06em;
  }
}
@media (min-width: 768px) {
  .button--width-medium {
    width: 42rem;
  }
}

.header {
  --header-sp-edge: 1.5rem;
  --header-sp-control-size: 5.2rem;
  --header-sp-control-gap: 1rem;
  --header-menu-line-center: 2.55rem;
  --header-menu-line-pitch: .8rem;
  --header-menu-stagger-step: .04s;
  --header-menu-last-delay: calc(var(--header-menu-stagger-step) * 5);
  --header-menu-contact-delay: calc(var(--header-menu-stagger-step) * 6);
  --header-nav-hide-delay: calc(var(--header-menu-last-delay) + 0.25s);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  height: 7.5rem;
  color: #fff;
  transition: height 0.25s ease, color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}
@media (min-width: 768px) {
  .header {
    height: 13.3rem;
  }
}
.header__inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  width: 100%;
  height: 100%;
  padding-block-start: var(--header-sp-edge);
  padding-inline: var(--header-sp-edge);
}
@media (min-width: 768px) {
  .header__inner {
    align-items: center;
    max-width: 192rem;
    margin-inline: auto;
    padding-block-start: 0;
    padding-inline: 6.5rem 0;
  }
}
@media (min-width: 768px) {
  .header__inner::after {
    position: absolute;
    right: 0;
    bottom: -2px;
    left: 0;
    height: 2px;
    background: #fff;
    content: "";
    transition: opacity 0.25s ease;
  }
}
.header__logo {
  position: relative;
  z-index: 2;
  display: block;
  width: 16rem;
}
@media (min-width: 768px) {
  .header__logo {
    width: 23.7rem;
    flex: none;
    transition: opacity 0.3s, width 0.25s ease;
  }
}
.header__logo-img {
  width: 100%;
}
@media (min-width: 768px) {
  .header__logo-img {
    transition: opacity 0.25s ease;
  }
}
.header__logo-img--dark {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.header__logo-copy {
  display: block;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.4;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .header__logo-copy {
    margin-top: 0.3rem;
  }
}
@media (min-width: 768px) {
  .header__logo-copy {
    position: absolute;
    top: 50%;
    left: 26.6rem;
    font-size: 1.3rem;
    line-height: 1.7;
    letter-spacing: 0.06em;
    transform: translateY(-50%);
  }
}
.header__contact {
  --hover-sweep-color: #0062ff;
  position: absolute;
  top: var(--header-sp-edge);
  right: calc(var(--header-sp-edge) + var(--header-sp-control-size) + var(--header-sp-control-gap));
  z-index: 1002;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  width: 10.2rem;
  height: var(--header-sp-control-size);
  color: #fff;
  background: #0030b2;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.4;
  transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease;
}
@media (min-width: 768px) {
  .header__contact {
    top: 0;
    right: 0;
    width: 21.3rem;
    height: 100%;
    font-size: 1.2rem;
    line-height: 1;
    text-align: center;
  }
}
.header__contact img {
  position: relative;
  z-index: 1;
  width: 2.3rem;
  filter: brightness(0) invert(1);
}
@media (min-width: 768px) {
  .header__contact img {
    display: none;
  }
}
.header__contact-label {
  position: relative;
  z-index: 1;
}
.header__menu-button {
  position: absolute;
  top: var(--header-sp-edge);
  right: var(--header-sp-edge);
  z-index: 1002;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--header-sp-control-size);
  aspect-ratio: 1;
  padding: 0;
  background: #000;
}
@media (min-width: 768px) {
  .header__menu-button {
    display: none;
  }
}
.header__menu-button span {
  position: absolute;
  top: calc(var(--header-menu-line-center) - var(--header-menu-line-pitch));
  left: 50%;
  width: 2.35rem;
  height: 0.25rem;
  background: #fff;
  transform: translateX(-50%);
  transition: top 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}
.header__menu-button span:nth-child(2) {
  top: var(--header-menu-line-center);
}
.header__menu-button span:nth-child(3) {
  top: calc(var(--header-menu-line-center) + var(--header-menu-line-pitch));
}
.header__menu-button[aria-expanded=true] span {
  top: 50%;
  transform: translate(-50%, -50%);
}
.header__menu-button[aria-expanded=true] span:first-child {
  transform: translate(-50%, -50%) rotate(45deg);
}
.header__menu-button[aria-expanded=true] span:nth-child(2) {
  opacity: 0;
}
.header__menu-button[aria-expanded=true] span:nth-child(3) {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.header__menu {
  --header-menu-chevron-inline-end: .4rem;
  --header-menu-row-height: 9.9rem;
  --header-submenu-icon-inline-end: .05rem;
  --header-submenu-button-inline-size: max(5rem, 44px);
  display: grid;
}
@media (min-width: 768px) {
  .header__menu {
    display: flex;
    align-items: center;
    height: 100%;
    gap: 6.3rem;
  }
}
.header__menu-item {
  position: relative;
  height: var(--header-menu-row-height);
}
@media (max-width: 767px) {
  .header__menu-item {
    border-bottom: 1px solid #000;
  }
}
@media (min-width: 768px) {
  .header__menu-item {
    height: 100%;
  }
}
.header__menu-item > a,
.header__menu-item .header__menu-row > a {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  height: 100%;
  font-weight: 800;
}
@media (min-width: 768px) {
  .header__menu-item > a,
  .header__menu-item .header__menu-row > a {
    justify-content: center;
    font-size: 1.2rem;
    line-height: 1;
    white-space: nowrap;
    transition: color 0.25s ease;
  }
}
.header__menu-item .header__menu-en {
  display: block;
  font-family: "Anton", Impact, sans-serif;
  font-size: 2.5rem;
  font-weight: 400;
  line-height: 1.4;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .header__menu-item .header__menu-en {
    line-height: inherit;
  }
}
.header__menu-item .header__menu-jp {
  display: block;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.7;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .header__menu-item .header__menu-jp {
    margin-top: 0.7rem;
    font-size: 1.6rem;
  }
}
@media (max-width: 767px) {
  .header__menu-item--top {
    height: 7.9rem;
  }
}
@media (max-width: 767px) {
  .header__menu-item.is-submenu-open {
    height: 21.4rem;
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav .header__menu-item {
    opacity: 0;
    transition: opacity 0.25s ease;
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav.is-open .header__menu-item {
    opacity: 1;
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav.is-open .header__menu-item:nth-child(1) {
    transition-delay: calc(var(--header-menu-stagger-step) * 1);
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav.is-open .header__menu-item:nth-child(2) {
    transition-delay: calc(var(--header-menu-stagger-step) * 2);
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav.is-open .header__menu-item:nth-child(3) {
    transition-delay: calc(var(--header-menu-stagger-step) * 3);
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav.is-open .header__menu-item:nth-child(4) {
    transition-delay: calc(var(--header-menu-stagger-step) * 4);
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav.is-open .header__menu-item:nth-child(5) {
    transition-delay: calc(var(--header-menu-stagger-step) * 5);
  }
}
@media (max-width: 767px) {
  .header__menu-item:not(.header__menu-item--top) > a, .header__menu-item:not(.header__menu-item--top) .header__menu-row > a {
    padding-top: 2rem;
  }
}
@media (max-width: 767px) {
  .header__menu-item:not(.header__menu-item--services) > a::before {
    position: absolute;
    top: 1.8rem;
    right: var(--header-menu-chevron-inline-end);
    width: 1.2rem;
    height: 2.1rem;
    background: url("../img/svg/icon/ui/menu-chevron-sp.svg") center/contain no-repeat;
    content: "";
  }
}
@media (max-width: 767px) {
  .header__menu-item:not(.header__menu-item--top):not(.header__menu-item--services) > a::before {
    top: 3.8rem;
  }
}
@media (min-width: 768px) {
  .header__menu-item--sp-only {
    display: none;
  }
}
@media (min-width: 768px) {
  .header__menu-item:hover > a, .header__menu-item:hover .header__menu-row > a, .header__menu-item:focus-within > a, .header__menu-item:focus-within .header__menu-row > a {
    color: #969696;
  }
}
.header__menu-row {
  display: grid;
  align-items: start;
  height: var(--header-menu-row-height);
}
@media (max-width: 767px) {
  .header__menu-row {
    grid-template-columns: 1fr var(--header-submenu-button-inline-size);
  }
}
@media (min-width: 768px) {
  .header__menu-row {
    display: flex;
    align-items: center;
    height: 100%;
  }
}
.header__submenu-button {
  position: relative;
  width: var(--header-submenu-button-inline-size);
  height: 100%;
  padding: 0;
}
@media (max-width: 767px) {
  .header__submenu-button {
    margin-right: -1.55rem;
  }
}
@media (min-width: 768px) {
  .header__submenu-button {
    width: 2.6rem;
    height: 3rem;
    margin-left: 2.6rem;
  }
}
.header__submenu-button span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 1.95rem;
  height: 0.35rem;
  background: currentColor;
  transform: translate(-50%, -50%);
}
@media (max-width: 767px) {
  .header__submenu-button span {
    top: calc(50% - 0.13rem);
    right: var(--header-submenu-icon-inline-end);
    left: auto;
    transform: translateY(-50%);
  }
}
@media (min-width: 768px) {
  .header__submenu-button span {
    width: 2.44rem;
    height: 0.44rem;
  }
}
.header__submenu-button span::before {
  position: absolute;
  inset: 0;
  background: currentColor;
  content: "";
  transform: rotate(90deg);
  transition: transform 0.25s ease;
}
.header__submenu-button[aria-expanded=true] span::before {
  transform: rotate(0deg);
}
html:not(.js):not(.is-navigation-ready) .header__submenu-button {
  display: none;
}
@media (max-width: 767px) {
  .header__submenu {
    display: grid;
    grid-template-columns: 16.8rem 1fr;
    grid-auto-rows: 3.5rem;
    margin-top: -0.3rem;
    padding-left: 1.4rem;
  }
}
@media (min-width: 768px) {
  .header__submenu {
    position: absolute;
    top: 100%;
    left: 50%;
    width: 24rem;
    border-top: 1px solid transparent;
    padding: 1.4rem 2rem;
    color: #fff;
    background: #000b71;
    background-clip: padding-box;
    visibility: hidden;
    opacity: 0;
    transform: translate(-50%, 1rem);
    transition: visibility 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  }
}
.header__submenu a {
  display: block;
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1.7;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .header__submenu a {
    padding-block: 0.7rem;
    font-size: 1.4rem;
  }
}
.header__submenu[hidden] {
  display: none;
}
@media (min-width: 768px) {
  .header__submenu.is-open {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
.header__nav-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 6.5rem;
  margin-top: 5.5rem;
  color: #fff;
  background: #173b78;
  font-size: 1.6rem;
  font-weight: 800;
}
@media (min-width: 768px) {
  .header__nav-contact {
    display: none;
  }
}
.header__nav-contact img {
  width: 2.3rem;
  margin-right: 1.9rem;
  filter: brightness(0) invert(1);
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav .header__nav-contact {
    opacity: 0;
    transition: opacity 0.25s ease;
  }
}
@media (max-width: 767px) {
  .is-navigation-ready .header__nav.is-open .header__nav-contact {
    opacity: 1;
    transition-delay: var(--header-menu-contact-delay);
  }
}
@media (max-width: 767px) {
  .header__nav {
    position: fixed;
    inset: 0;
    z-index: 1;
    padding: 16.8rem 3.6rem 5rem;
    color: #000;
    background: #fff;
    visibility: visible;
    opacity: 1;
    overflow-y: auto;
    transition: visibility 0s linear, opacity 0.25s ease;
  }
}
@media (max-width: 767px) {
  .js .header__nav {
    visibility: hidden;
    opacity: 0;
    transition-delay: var(--header-nav-hide-delay), var(--header-menu-last-delay);
  }
}
@media (max-width: 767px) {
  .header__nav.is-open {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
  }
}
@media (min-width: 768px) {
  .header__nav {
    display: flex;
    align-items: center;
    height: 100%;
    margin-left: auto;
    margin-right: 26rem;
  }
}
@media (max-width: 767px) {
  .header.is-menu-active {
    color: #000;
    background: #fff;
    box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.12);
  }
  .header.is-menu-active .header__logo-img--light {
    opacity: 0;
  }
  .header.is-menu-active .header__logo-img--dark {
    opacity: 1;
  }
}
@media (min-width: 768px) {
  .header__contact-en {
    display: block;
    margin-bottom: 0.7rem;
    font-family: "Anton", Impact, sans-serif;
    font-size: 2.5rem;
    font-weight: 400;
  }
}
@media (min-width: 768px) {
  .header__contact-jp {
    font-size: 1.6rem;
    line-height: 1.7;
    letter-spacing: 0.06em;
  }
}
@media (min-width: 768px) {
  .header__nav-inner {
    display: flex;
    align-items: center;
    height: 100%;
  }
}
@media (min-width: 768px) {
  .header.is-scrolled {
    height: 8.5rem;
    color: #000;
    background: #fff;
    box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.12);
  }
  .header.is-scrolled .header__logo-img--light {
    opacity: 0;
  }
  .header.is-scrolled .header__logo-img--dark {
    opacity: 1;
  }
}
@media (min-width: 768px) {
  .header.is-scrolled .header__inner::after {
    opacity: 0;
  }
}
@media (min-width: 768px) {
  .header.is-scrolled .header__logo {
    width: 20rem;
  }
}

html:not(.js):not(.is-navigation-ready) .header {
  position: relative;
  height: auto;
  color: #fff;
  background: #000b71;
}
html:not(.js):not(.is-navigation-ready) .header__inner {
  display: block;
  height: auto;
  min-height: 9rem;
  padding-bottom: 2rem;
}
html:not(.js):not(.is-navigation-ready) .header__menu-button {
  display: none;
}
html:not(.js):not(.is-navigation-ready) .header__nav {
  position: static;
  margin-top: 3rem;
  padding: 2rem 1rem;
  visibility: visible;
  opacity: 1;
}
@media (min-width: 768px) {
  html:not(.js):not(.is-navigation-ready) .header__menu-item--services:hover .header__submenu, html:not(.js):not(.is-navigation-ready) .header__menu-item--services:focus-within .header__submenu {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

.hero {
  position: relative;
  height: 100dvh;
  color: #fff;
  background: #000;
  isolation: isolate;
  overflow: hidden;
}
@media (min-width: 768px) {
  .hero {
    --hero-copy-center-y: calc((100% + 13.3rem + 2px) / 2);
  }
}
.hero__viewport, .hero__track {
  height: 100%;
}
html.is-hero-swiper-ready .hero__track {
  will-change: transform;
}
.hero__slide {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.hero__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
html.is-hero-swiper-ready .hero__slide img {
  transition: clip-path 1.5s cubic-bezier(1, 0, 0, 1);
}
html.is-hero-swiper-ready .hero__slide.swiper-slide-next img {
  clip-path: inset(0 0 0 100%);
}
html.is-hero-swiper-ready .hero__slide.swiper-slide-active img {
  clip-path: inset(0);
  animation: hero-slide-scale-in 4s cubic-bezier(0.19, 1, 0.22, 1) forwards;
}
.hero__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 56, 152, 0.6);
  clip-path: polygon(0 37%, 0 100%, 70% 100%);
  pointer-events: none;
}
@media (min-width: 768px) {
  .hero__shade {
    clip-path: polygon(0 0, 3.5% 0, 34% 100%, 0 100%);
  }
}
.hero__content {
  position: absolute;
  left: 3.6rem;
  right: 3.6rem;
  bottom: 7.2rem;
  z-index: 2;
}
@media (min-width: 768px) {
  .hero__content {
    top: var(--hero-copy-center-y);
    right: auto;
    left: calc(50% - 75.6rem);
    width: 100rem;
    transform: translateY(-50%);
  }
}
.hero__headline {
  position: relative;
  z-index: 2;
}
.hero__title {
  font-size: 5rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-shadow: 0 0 1rem rgba(0, 0, 0, 0.24);
}
@media (min-width: 768px) {
  .hero__title {
    font-size: 13rem;
    line-height: 1.3;
  }
}
.hero__english {
  margin-top: 2.7rem;
  font-family: "Anton", Impact, sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .hero__english {
    margin-top: 3.2rem;
    font-size: 3.9rem;
  }
}
.hero__script {
  position: absolute;
  top: 51.6rem;
  left: 12.4rem;
  z-index: 3;
  width: 28.9rem;
  mix-blend-mode: overlay;
  pointer-events: none;
}
@media (max-width: 767px) {
  .hero__script {
    transform: rotate(-13deg);
  }
}
@media (min-width: 768px) {
  .hero__script {
    top: calc(var(--hero-copy-center-y) - 1.6rem);
    left: calc(50% - 34.7rem);
    width: 84.4rem;
  }
}
.hero__statement {
  position: relative;
  z-index: 4;
  display: grid;
  justify-items: start;
  row-gap: 0.8rem;
  margin-top: 3.6rem;
}
@media (min-width: 768px) {
  .hero__statement {
    display: flex;
    width: 87.5rem;
    margin-top: 8rem;
    padding-inline-start: 2.5rem;
    background: #000;
  }
}
.hero__statement p {
  width: max-content;
  padding-block: 0.5rem;
  padding-inline-start: 1rem;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-shadow: 0 0 1rem rgba(0, 0, 0, 0.24);
}
@media (max-width: 767px) {
  .hero__statement p {
    background: #000;
  }
}
@media (min-width: 768px) {
  .hero__statement p {
    padding: 0.5rem 0;
    font-size: 4rem;
  }
}
.hero__scroll {
  display: none;
}
@media (min-width: 768px) {
  .hero__scroll {
    position: absolute;
    right: 7.95rem;
    bottom: 11.6rem;
    z-index: 2;
    display: block;
    width: 23.55rem;
    aspect-ratio: 1;
  }
}
.hero__scroll-ring {
  width: 100%;
  mix-blend-mode: overlay;
}
@media (min-width: 768px) {
  .hero__scroll-ring {
    animation: hero-scroll-spin 18s linear infinite;
  }
}
.hero__scroll-arrow {
  position: absolute;
  top: 6.5rem;
  left: 10.8rem;
  width: 2.1rem;
}

@keyframes hero-slide-scale-in {
  from {
    transform: scale(1.2);
  }
  to {
    transform: scale(1);
  }
}
@keyframes hero-scroll-spin {
  to {
    transform: rotate(360deg);
  }
}
.worry {
  position: relative;
  padding: 5rem 0 8rem;
  color: #fff;
  background: #000b71;
}
@media (min-width: 768px) {
  .worry {
    padding: 13rem 0 5rem;
  }
}
.worry__pin-spacer {
  background: #10358f;
}
@media (min-width: 768px) {
  .worry__pin-spacer {
    background: #0a2584;
  }
}
.worry__background {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  pointer-events: none;
}
.worry__background img {
  position: absolute;
  top: -1.1rem;
  left: 50vw;
  width: 43rem;
  max-width: none;
  translate: -50% 0;
}
@media (min-width: 1921px) {
  .worry__background img {
    z-index: 1;
  }
}
@media (min-width: 768px) {
  .worry__background img {
    top: -6.4rem;
    width: 192rem;
  }
}
@media (min-width: 1921px) {
  .worry__background::before, .worry__background::after {
    position: absolute;
    top: -6.4rem;
    z-index: 0;
    width: calc(50vw - 96rem + 0.1rem);
    height: 288.9rem;
    background-repeat: repeat-x;
    background-size: 0.1rem 288.9rem;
    content: "";
  }
}
@media (min-width: 1921px) {
  .worry__background::before {
    left: 0;
    background-image: url("../img/webp/top/bg/top-gradient-blue-edge-left-pc.webp");
    background-position: right top;
  }
}
@media (min-width: 1921px) {
  .worry__background::after {
    right: 0;
    background-image: url("../img/webp/top/bg/top-gradient-blue-edge-right-pc.webp");
    background-position: left top;
  }
}
.worry > .container, .worry__scroller, .worry__warning {
  position: relative;
  z-index: 1;
}
.worry .section-title {
  margin-bottom: 6rem;
}
@media (min-width: 768px) {
  .worry .section-title {
    margin-bottom: 11.5rem;
  }
}
@media (min-width: 768px) {
  .worry .section-title__en {
    justify-content: center;
    width: 15.7rem;
  }
}
.worry__scroller {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scrollbar-color: rgba(255, 255, 255, 0.72) rgba(255, 255, 255, 0.18);
  scrollbar-width: thin;
}
.worry__scroller::-webkit-scrollbar {
  height: 0.6rem;
}
.worry__scroller::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.18);
}
.worry__scroller::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.72);
}
.worry__list {
  display: flex;
  width: max-content;
  padding-inline: 2rem;
}
@media (min-width: 768px) {
  .worry__list {
    padding-inline: calc((100vw - 151.5rem) / 2);
  }
}
.worry__item {
  width: 27.7rem;
  flex: none;
}
@media (min-width: 768px) {
  .worry__item {
    width: 51.5rem;
  }
}
.worry__item + .worry__item {
  margin-left: -3.94rem;
}
@media (min-width: 768px) {
  .worry__item + .worry__item {
    margin-left: -5.9rem;
  }
}
.worry.is-worry-scroll-ready .worry__scroller {
  overflow: hidden;
  scrollbar-width: none;
}
.worry.is-worry-scroll-ready .worry__scroller::-webkit-scrollbar {
  display: none;
}
.worry.is-worry-scroll-ready .worry__list {
  will-change: transform;
}
.worry__figure {
  --worry-caption-height: 5.7rem;
  --worry-index-width: 8rem;
  position: relative;
  padding-bottom: var(--worry-caption-height);
}
@media (min-width: 768px) {
  .worry__figure {
    --worry-caption-height: 11.7rem;
    --worry-index-width: 16.3rem;
  }
}
.worry__figure img {
  width: 100%;
}
@media (max-width: 767px) {
  .worry__figure img {
    height: 12.8rem;
    object-fit: cover;
    clip-path: polygon(15% 0, 100% 0, 88% 100%, 0 100%);
  }
}
.worry__figure figcaption {
  position: absolute;
  display: grid;
  grid-template-columns: var(--worry-index-width) 1fr;
  gap: 0.4rem;
  align-items: center;
  right: 0;
  bottom: 0;
  left: 0;
  height: var(--worry-caption-height);
}
@media (min-width: 768px) {
  .worry__figure figcaption {
    gap: 1rem;
  }
}
.worry__index {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: var(--worry-index-width);
}
.worry__number, .worry__en {
  font-family: "Anton", Impact, sans-serif;
  font-weight: 400;
}
.worry__number {
  color: #00bbdd;
  background: linear-gradient(180deg, #00bbdd 0%, #2c81c6 100%);
  background-clip: text;
  font-size: 5.5rem;
  line-height: 1;
  letter-spacing: 0.06em;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
@media (min-width: 768px) {
  .worry__number {
    font-size: 12rem;
  }
}
.worry__en {
  font-size: 1.5rem;
  line-height: 1.8;
  text-align: center;
}
@media (min-width: 768px) {
  .worry__en {
    font-size: 3rem;
  }
}
.worry__name {
  grid-column: 2;
  margin: 0;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .worry__name {
    font-size: 3.5rem;
    line-height: 1.4;
  }
}
.worry__warning {
  margin-block-start: 5rem;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: 0.06em;
  text-align: center;
}
@media (min-width: 768px) {
  .worry__warning {
    margin-block-start: 8rem;
    font-size: 4rem;
    line-height: 1.4;
  }
}
.worry__warning strong {
  color: #fff500;
  font-weight: inherit;
}

.top-landscape {
  position: relative;
  background: #2c81c6;
}
.top-landscape__background {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.top-landscape__layer {
  --landscape-edge-inset: 0rem;
  position: absolute;
  left: 50vw;
  translate: -50% 0;
}
.top-landscape__layer img {
  position: relative;
  z-index: 1;
  width: 100%;
}
.top-landscape__layer--light {
  --landscape-edge-inset: .7rem;
  --landscape-edge-left: url("../img/webp/top/bg/top-gradient-light-edge-left-pc.webp");
  --landscape-edge-right: url("../img/webp/top/bg/top-gradient-light-edge-right-pc.webp");
  top: 111.9rem;
  z-index: 0;
  width: 43.17rem;
}
@media (min-width: 768px) {
  .top-landscape__layer--light {
    top: 158.9rem;
    width: 193.4rem;
  }
}
@media (max-width: 767px) {
  .top-landscape__layer--light {
    bottom: 0;
    background: url("../img/webp/top/bg/top-gradient-light-bottom-sp-seamless.webp") center bottom/100% 100% no-repeat;
  }
}
.top-landscape__layer--blue {
  --landscape-edge-left: url("../img/webp/top/bg/top-gradient-blue-edge-left-pc.webp");
  --landscape-edge-right: url("../img/webp/top/bg/top-gradient-blue-edge-right-pc.webp");
  top: -64.1rem;
  z-index: 2;
  width: 43rem;
}
@media (min-width: 768px) {
  .top-landscape__layer--blue {
    top: -102.2rem;
    width: 192rem;
  }
}
@media (min-width: 1921px) {
  .top-landscape__layer::before, .top-landscape__layer::after {
    position: absolute;
    top: 0;
    z-index: 2;
    width: 100vw;
    height: 100%;
    background-repeat: repeat-x;
    background-size: 0.1rem 100%;
    content: "";
  }
}
@media (min-width: 1921px) {
  .top-landscape__layer::before {
    right: calc(100% - var(--landscape-edge-inset) - 0.1rem);
    background-image: var(--landscape-edge-left);
    background-position: right top;
  }
}
@media (min-width: 1921px) {
  .top-landscape__layer::after {
    left: calc(100% - var(--landscape-edge-inset) - 0.1rem);
    background-image: var(--landscape-edge-right);
    background-position: left top;
  }
}
.top-landscape__map {
  position: absolute;
  top: 68rem;
  left: -25.84rem;
  z-index: 1;
  width: 92.89rem;
  max-width: none;
}
@media (min-width: 768px) {
  .top-landscape__map {
    top: 108rem;
    left: calc(50vw - 96.7rem);
    width: 169.21rem;
  }
}
.top-landscape > .appeal,
.top-landscape > .area,
.top-landscape > .quick-contact {
  position: relative;
  z-index: 1;
}
.top-landscape > .quick-contact {
  background: transparent;
}

.appeal {
  padding-bottom: 7rem;
  color: #fff;
}
@media (min-width: 768px) {
  .appeal {
    padding: 5rem 0 6rem;
  }
}
.appeal__brand {
  position: relative;
  left: calc(50vw - 3.6rem);
  width: max-content;
  height: 11rem;
  margin-bottom: -2.5rem;
  color: transparent;
  background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0.71) 42%, rgba(209, 209, 209, 0) 90%);
  background-clip: text;
  font-family: "Anton", Impact, sans-serif;
  font-size: 11rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
  translate: -50% 0;
  white-space: nowrap;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
@media (min-width: 768px) {
  .appeal__brand {
    top: 3rem;
    left: 50%;
    height: 40.5rem;
    margin-bottom: -14.5rem;
    font-size: 40.5rem;
  }
}
.appeal__copy {
  margin-top: 3rem;
  text-align: center;
}
@media (min-width: 768px) {
  .appeal__copy {
    margin-top: 2rem;
  }
}
.appeal__copy > p {
  display: inline-block;
  padding-bottom: 0.8rem;
  border-bottom: 0.3rem solid #fff500;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .appeal__copy > p {
    border-width: 0.6rem;
    font-size: 4rem;
  }
}
.appeal__copy h2 {
  margin-top: 2rem;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .appeal__copy h2 {
    margin-top: 3rem;
    font-size: 4rem;
    line-height: 1.5;
  }
}
.appeal__copy h2 strong {
  display: inline-block;
  margin-right: 0.7rem;
  padding-inline: 0.7rem;
  color: #000;
  background: #fff500;
  font-size: 2.2rem;
  font-weight: inherit;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .appeal__copy h2 strong {
    margin-right: 1.5rem;
    padding-inline: 1.8rem;
    font-size: 4.5rem;
  }
}
.appeal__line {
  display: inline-block;
  white-space: nowrap;
}

.google-review {
  position: relative;
  width: 35.7rem;
  height: 31.2rem;
  margin: 3.5rem auto 0;
  padding: 2.2rem 2.7rem 2.9rem;
  background: linear-gradient(137.2deg, #173b78 0%, #0c1e3c 100%);
  text-align: center;
}
@media (min-width: 768px) {
  .google-review {
    display: grid;
    grid-template-columns: 68.3rem 1fr;
    column-gap: 5rem;
    align-items: start;
    width: 116.2rem;
    height: 32.5rem;
    margin-top: 7rem;
    padding: 4rem 6.5rem;
  }
}
.google-review__score {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3.6rem;
}
@media (min-width: 768px) {
  .google-review__score {
    justify-content: flex-start;
    gap: 3rem;
    padding-left: 7.5rem;
  }
}
.google-review__logo {
  position: relative;
  top: 1.1rem;
  left: 2.9rem;
  width: 16rem;
  text-align: left;
}
@media (min-width: 768px) {
  .google-review__logo {
    top: 0.9rem;
    left: 0.2rem;
    width: 33rem;
  }
}
.google-review__logo .google-review__prefix {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .google-review__logo .google-review__prefix {
    font-size: 2.5rem;
  }
}
.google-review__logo .google-review__brand {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .google-review__logo .google-review__brand {
    gap: 1.2rem;
  }
}
.google-review__logo .google-review__label {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.7;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .google-review__logo .google-review__label {
    font-size: 4.2rem;
  }
}
.google-review__logo img {
  width: 8.5rem;
}
@media (min-width: 768px) {
  .google-review__logo img {
    width: 20rem;
  }
}
.google-review__number {
  width: 8rem;
  padding-top: 1.6rem;
}
@media (min-width: 768px) {
  .google-review__number {
    width: 18rem;
    padding-top: 3rem;
  }
}
.google-review__number .google-review__stars {
  position: absolute;
  top: 2.5rem;
  left: 23rem;
  width: 5rem;
}
@media (min-width: 768px) {
  .google-review__number .google-review__stars {
    top: 2.13rem;
    left: 52.3rem;
    width: 12rem;
  }
}
.google-review__number .google-review__laurel {
  position: absolute;
  top: 3.76rem;
  width: 2.28rem;
  height: 6.42rem;
}
@media (min-width: 768px) {
  .google-review__number .google-review__laurel {
    top: 7.21rem;
    width: 5.36rem;
    height: 15.12rem;
  }
}
.google-review__number .google-review__laurel--left {
  left: 3.6rem;
}
@media (min-width: 768px) {
  .google-review__number .google-review__laurel--left {
    left: 6.26rem;
  }
}
.google-review__number .google-review__laurel--right {
  left: 29.97rem;
}
@media (min-width: 768px) {
  .google-review__number .google-review__laurel--right {
    left: 68.42rem;
  }
}
.google-review__number strong {
  position: relative;
  top: 1.5rem;
  left: -2.3rem;
  font-family: "Anton", Impact, sans-serif;
  font-size: 4.9rem;
  font-weight: 400;
  line-height: 1;
}
@media (min-width: 768px) {
  .google-review__number strong {
    top: 0;
    left: -0.9rem;
    font-size: 12.4rem;
  }
}
.google-review__lead {
  margin-top: 2.2rem;
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .google-review__lead {
    margin-top: 2.4rem;
    font-size: 3rem;
  }
}
.google-review__text {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .google-review__text {
    font-size: 2.4rem;
    line-height: 1.6;
    text-align: left;
  }
}
@media (max-width: 767px) {
  .google-review__text {
    margin-top: 1.6rem;
  }
}
.google-review .button {
  width: 25.5rem;
  margin: 2rem auto 0;
  border-radius: 5rem;
  background: #ff1515;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .google-review .button {
    width: 28.5rem;
    min-height: 5.5rem;
    margin: 2rem 0 0;
    padding-inline: 4rem;
    font-size: 1.6rem;
  }
}
@media (min-width: 768px) {
  .google-review__summary {
    padding-top: 1.6rem;
  }
}
@media (min-width: 768px) {
  .google-review__details {
    padding-top: 4rem;
  }
}

.awards {
  margin-top: 5.5rem;
  padding-bottom: 3.5rem;
  border-bottom: 1px solid currentColor;
  text-align: center;
}
@media (min-width: 768px) {
  .awards {
    margin-top: 8rem;
    padding-bottom: 8.5rem;
    border-bottom-width: 1.5px;
  }
}
.awards__word {
  color: rgba(0, 0, 0, 0.22);
  font-family: "Anton", Impact, sans-serif;
  font-size: 8.7rem;
  font-weight: 400;
  line-height: 1;
}
@media (min-width: 768px) {
  .awards__word {
    font-size: 22.1rem;
  }
}
.awards__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  margin-top: -5.5rem;
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .awards__title {
    gap: 3rem;
    margin-top: -15.2rem;
    font-size: 4.5rem;
    line-height: 1.3;
  }
}
.awards__title::before, .awards__title::after {
  max-width: 7rem;
  height: 1.5px;
  background: currentColor;
  content: "";
  flex: 1 1 7rem;
}
@media (min-width: 768px) {
  .awards__title::before, .awards__title::after {
    max-width: 20rem;
    flex-basis: 20rem;
  }
}
.awards__lead {
  margin-top: 1.5rem;
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .awards__lead {
    margin-top: 3rem;
    font-size: 3rem;
    line-height: 1.5;
  }
}
.awards__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  width: 29.5rem;
  margin: 1.5rem auto 0;
}
@media (min-width: 768px) {
  .awards__list {
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5rem;
    width: 151.5rem;
    max-width: calc(100% - 25rem);
    margin-top: 6rem;
  }
}
.awards__list img {
  width: 100%;
}
@media (max-width: 767px) {
  .awards__list img {
    height: 10rem;
    object-fit: cover;
  }
}

.area {
  min-height: 53.1rem;
  padding: 19rem 0 5rem;
}
@media (min-width: 768px) {
  .area {
    --area-content-start: 73rem;
    min-height: 82.7rem;
    padding: 33.3rem 0 8rem;
  }
}
.area__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
@media (min-width: 768px) {
  .area__inner {
    align-items: flex-start;
  }
}
.area__heading {
  width: 20rem;
  padding-left: 2rem;
  border-left: 0.6rem solid #214782;
  color: #214782;
}
@media (min-width: 768px) {
  .area__heading {
    width: 32.2rem;
    margin-left: var(--area-content-start);
    padding-left: 2.5rem;
    border-width: 0.8rem;
  }
}
.area__heading p {
  color: #000;
  font-family: "Anton", Impact, sans-serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}
@media (min-width: 768px) {
  .area__heading p {
    font-size: 3rem;
  }
}
.area__heading h2 {
  margin-top: 0.8rem;
  font-size: 2.7rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .area__heading h2 {
    font-size: 5.5rem;
    line-height: 1.4;
    white-space: nowrap;
  }
}
.area__body {
  width: 100%;
  margin-top: 4rem;
}
@media (min-width: 768px) {
  .area__body {
    width: 66.2rem;
    margin-top: 5.5rem;
    margin-left: var(--area-content-start);
  }
}
.area__main {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  font-size: 2.2rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .area__main {
    font-size: 3.5rem;
    line-height: 1.5;
  }
}
.area__main strong {
  display: block;
  padding: 0.3rem 1.5rem;
  color: #fff;
  background: linear-gradient(90deg, #0008c9, #32d3ea);
  font-size: 2.5rem;
  font-weight: inherit;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .area__main strong {
    width: 29.4rem;
    padding: 0.6rem 1.6rem 0.8rem;
    font-size: 5rem;
    line-height: 1.3;
  }
}
.area__main span {
  white-space: nowrap;
}
@media (min-width: 768px) {
  .area__main span {
    width: 14.8rem;
  }
}
.area__list {
  display: grid;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .area__list {
    margin-top: 3.6rem;
  }
}
.area__list > div {
  display: grid;
  grid-template-columns: 8rem 1fr;
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .area__list > div {
    grid-template-columns: 11.3rem 53rem;
    align-items: center;
    gap: 2rem;
    font-size: 2.5rem;
    line-height: 1.5;
    letter-spacing: 0.06em;
  }
}
.area__list dt {
  color: #214782;
  font-size: 2rem;
  font-weight: 800;
}
@media (min-width: 768px) {
  .area__list dt {
    font-size: 3.5rem;
  }
}
.area__list dd {
  padding-top: 0.2em;
  font-weight: 800;
}

.quick-contact {
  --quick-contact-action-start: 4rem;
  padding-bottom: 9rem;
  background: #eef9fd;
}
.quick-contact__box {
  position: relative;
  width: 35.8rem;
  min-height: 34.2rem;
  margin-inline: auto;
  color: #fff;
  background: #000b71 url("../img/webp/top/contact.webp") center/100% 100% no-repeat;
  clip-path: polygon(3rem 0, 100% 0, 100% 100%, 0 100%, 0 3rem);
  text-align: center;
  overflow: hidden;
}
@media (max-width: 767px) {
  .quick-contact__box {
    padding: 3rem 2.7rem 1.5rem;
  }
}
@media (min-width: 768px) {
  .quick-contact__box {
    display: grid;
    grid-template-columns: 71.6rem 1fr;
    align-items: start;
    width: 151.5rem;
    min-height: 41.2rem;
    clip-path: polygon(8rem 0, 100% 0, 100% 100%, 0 100%, 0 8rem);
    text-align: left;
  }
}
.quick-contact__speed {
  display: inline-block;
  padding-bottom: 0.2rem;
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (max-width: 767px) {
  .quick-contact__speed {
    border-bottom: 0.3rem solid #fff500;
  }
}
@media (min-width: 768px) {
  .quick-contact__speed {
    width: 46rem;
    margin-top: 6.5rem;
    margin-left: 13rem;
    padding-bottom: 1rem;
    background: linear-gradient(#fff500, #fff500) center bottom/39.4rem 0.3rem no-repeat;
    font-size: 3.4rem;
    line-height: 1;
    text-align: center;
  }
}
.quick-contact__speed strong {
  color: #fff500;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 4.5rem;
  font-weight: 800;
  line-height: 0.9;
}
@media (min-width: 768px) {
  .quick-contact__speed strong {
    font-size: 7.5rem;
  }
}
.quick-contact h2 {
  margin-top: 1rem;
  font-size: 2.5rem;
  font-weight: 800;
}
@media (min-width: 768px) {
  .quick-contact h2 {
    width: 34.7rem;
    margin-top: 3rem;
    margin-left: 16.1rem;
    font-size: 5.5rem;
    line-height: 1.5;
    text-align: left;
  }
}
.quick-contact .button {
  --button-label-offset-x: -1.17rem;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .quick-contact .button {
    --button-label-offset-x: -.3rem;
    width: 59rem;
    min-height: 10.5rem;
    margin-top: 9rem;
    margin-left: var(--quick-contact-action-start);
  }
}
.quick-contact__urgent {
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (max-width: 767px) {
  .quick-contact__urgent {
    margin-top: 2rem;
  }
}
@media (min-width: 768px) {
  .quick-contact__urgent {
    z-index: 2;
    width: 22rem;
    font-size: 3.5rem;
    line-height: 1.4;
    text-align: left;
  }
}
.quick-contact__tel {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-family: "Anton", Impact, sans-serif;
  font-size: 3.2rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
@media (min-width: 768px) {
  .quick-contact__tel {
    display: inline-block;
    margin-top: 1.5rem;
    font-size: 5.5rem;
    line-height: 1.5;
  }
}
.quick-contact__phone-icon {
  width: 3rem;
  flex: none;
}
@media (min-width: 768px) {
  .quick-contact__phone-icon {
    display: none;
  }
}
.quick-contact__word {
  position: absolute;
  pointer-events: none;
  color: rgba(255, 255, 255, 0.16);
  font-family: "Anton", Impact, sans-serif;
  font-size: 8rem;
  font-weight: 400;
  line-height: 1;
}
@media (max-width: 767px) {
  .quick-contact__word {
    right: 0;
    bottom: -0.7rem;
  }
}
@media (min-width: 768px) {
  .quick-contact__word {
    top: 18.3rem;
    left: 71.6rem;
    font-size: 24.4rem;
  }
}
.quick-contact--second {
  padding: 1rem 0 0;
  background: #dfe5f2;
}
@media (min-width: 768px) {
  .quick-contact--second {
    padding-top: 20rem;
  }
}
@media (max-width: 767px) {
  .quick-contact__primary {
    width: fit-content;
    margin-inline: auto;
    text-align: left;
  }
}
@media (min-width: 768px) {
  .quick-contact__primary {
    grid-column: 1;
  }
}
@media (min-width: 768px) {
  .quick-contact:not(.quick-contact--second) {
    padding-bottom: 20rem;
  }
}
@media (min-width: 768px) {
  .quick-contact__actions {
    grid-column: 2;
  }
}
@media (min-width: 768px) {
  .quick-contact__phone {
    display: flex;
    align-items: flex-start;
    gap: 4rem;
    margin-top: 5rem;
    margin-left: var(--quick-contact-action-start);
  }
}
@media (min-width: 768px) {
  .quick-contact__urgent-line {
    white-space: nowrap;
  }
}

.service {
  position: relative;
  padding: 9rem 0;
  color: #fff;
  background: linear-gradient(180deg, #000b71 0%, #2c81c6 100%);
  overflow: hidden;
}
@media (min-width: 768px) {
  .service {
    padding: 20rem 0;
  }
}
.service__word {
  position: absolute;
  top: 3rem;
  right: -3.6rem;
  width: 34.1rem;
  height: auto;
  pointer-events: none;
}
@media (min-width: 768px) {
  .service__word {
    right: auto;
    left: -20rem;
    width: 72.75rem;
  }
}
@media (min-width: 768px) {
  .service .section-title {
    grid-column: 1;
    grid-row: 1;
    width: 66rem;
  }
}
.service .section-title__jp {
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .service .section-title__jp {
    letter-spacing: 0.06em;
  }
}
.service__intro {
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .service__intro {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    width: 90rem;
    margin-top: -0.5rem;
  }
}
.service__intro strong {
  font-weight: inherit;
  text-decoration: underline;
  text-decoration-color: #fff500;
  text-decoration-thickness: 2.5px;
  text-underline-offset: 0.8rem;
}
.service__lead {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .service__lead {
    font-size: 4rem;
    letter-spacing: 0.06em;
  }
}
.service__text {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .service__text {
    font-size: 2.5rem;
    font-weight: 800;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }
}
.service__list {
  display: grid;
  gap: 1rem;
  margin-top: 4rem;
}
@media (min-width: 768px) {
  .service__list {
    grid-column: 1/-1;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
    margin-top: 11rem;
  }
}
.service__item a {
  --service-card-inline-start: 2.8rem;
  --hover-zoom-scale: 1.07;
  position: relative;
  display: block;
  height: 18rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .service__item a {
    --service-card-inline-start: 3.8rem;
    height: 24.5rem;
  }
}
.service__item a::after {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  content: "";
}
.service__item a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.service__number, .service__name {
  position: absolute;
  z-index: 2;
}
.service__number {
  top: 2.2rem;
  left: var(--service-card-inline-start);
  font-family: "Anton", Impact, sans-serif;
  font-size: 3rem;
  font-weight: 400;
}
@media (min-width: 768px) {
  .service__number {
    top: 3rem;
    font-size: 5rem;
  }
}
.service__name {
  top: 7.5rem;
  left: var(--service-card-inline-start);
  right: 5.5rem;
  font-size: 2.5rem;
  font-weight: 800;
}
@media (min-width: 768px) {
  .service__name {
    top: 10rem;
    font-size: 4.5rem;
  }
}
.service__arrow {
  --hover-sweep-color: #ffd800;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;
  width: 5.19rem;
  aspect-ratio: 1;
  background: #fff500;
}
@media (min-width: 768px) {
  .service__arrow {
    width: 8.65rem;
  }
}
.service__arrow::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: url("../img/svg/icon/ui/service-card-chevron-sp.svg") center/contain no-repeat;
  content: "";
}
@media (min-width: 768px) {
  .service__arrow::after {
    background-image: url("../img/svg/icon/ui/service-card-chevron-pc.svg");
  }
}
.service__more {
  --button-label-offset-x: -1.81rem;
  width: 26.5rem;
  margin: 6rem auto 0;
}
@media (min-width: 768px) {
  .service__more {
    --button-label-offset-x: -3.73rem;
    grid-column: 1/-1;
    width: 52rem;
    margin-top: 12.5rem;
  }
}
@media (min-width: 768px) {
  .service > .container {
    display: grid;
    grid-template-columns: 66rem minmax(0, 1fr);
    align-items: start;
  }
}

.recommended {
  --recommended-card-width: 35.8rem;
  --recommended-prev-offset: 3rem;
  --recommended-next-offset: -3rem;
  --recommended-far-prev-offset: calc(var(--recommended-prev-offset) + var(--recommended-prev-offset));
  --recommended-far-next-offset: calc(var(--recommended-next-offset) + var(--recommended-next-offset));
  position: relative;
  background: var(--recommended-surface, #2c81c6);
  overflow: hidden;
}
@media (min-width: 768px) {
  .recommended {
    --recommended-card-width: 75.8rem;
    --recommended-prev-offset: 12.1rem;
    --recommended-next-offset: -12.5rem;
  }
}
.recommended__word {
  position: relative;
  z-index: 2;
  color: transparent;
  font-family: "Anton", Impact, sans-serif;
  font-size: 6.2rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: uppercase;
  white-space: nowrap;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.8);
}
@media (min-width: 768px) {
  .recommended__word {
    top: 2.5rem;
    right: -3.1rem;
    width: max-content;
    margin-left: auto;
    font-size: 18.3rem;
  }
}
.recommended .section-title {
  position: relative;
  z-index: 2;
  margin-top: 2rem;
  color: #fff;
}
@media (min-width: 768px) {
  .recommended .section-title {
    margin-top: -15.5rem;
  }
}
.recommended .section-title__en {
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .recommended .section-title__en {
    margin-bottom: 2.5rem;
  }
}
.recommended__viewport {
  position: relative;
  z-index: auto;
  margin-top: 2rem;
  padding-bottom: 5rem;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scrollbar-color: rgba(255, 255, 255, 0.72) rgba(255, 255, 255, 0.18);
  scrollbar-width: thin;
}
.recommended__viewport::-webkit-scrollbar {
  height: 0.6rem;
}
.recommended__viewport::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.18);
}
.recommended__viewport::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.72);
}
@media (min-width: 768px) {
  .recommended__viewport {
    margin-top: -10.3rem;
    padding: 20rem 0 27.75rem;
    background: linear-gradient(to bottom, var(--recommended-viewport-surface, #2c81c6) 0 78.5%, #dfe5f2 78.5% 100%);
  }
}
.recommended__viewport::before {
  position: absolute;
  top: 1.3rem;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: #000;
  clip-path: polygon(0 43.5%, 100% 0, 100% 100%, 0 100%);
  content: "";
}
@media (min-width: 768px) {
  .recommended__viewport::before {
    top: 8rem;
    clip-path: polygon(0 21.5%, 100% 0, 100% 78.5%, 0 100%);
  }
}
.recommended__track {
  position: relative;
  z-index: 3;
  gap: 2rem;
  width: max-content;
  padding-inline: calc((100vw - var(--recommended-card-width)) / 2);
}
@media (min-width: 768px) {
  .recommended__track {
    gap: 12rem;
  }
}
html.is-recommended-ready .recommended__viewport {
  overflow: visible;
  scrollbar-width: none;
}
@media (min-width: 768px) {
  html.is-recommended-ready .recommended__viewport {
    overflow: hidden;
  }
}
@media (max-width: 767px) {
  html.is-recommended-ready .recommended__viewport {
    padding-bottom: 4rem;
  }
}
html.is-recommended-ready .recommended__viewport::-webkit-scrollbar {
  display: none;
}
html.is-recommended-ready .recommended__track {
  gap: 0;
  width: 100%;
  padding-inline: 0;
}
.recommended__card {
  --recommended-card-offset-y: 0;
  width: var(--recommended-card-width);
  color: #fff;
}
.recommended__card-inner {
  transform: translateY(var(--recommended-card-offset-y));
  transition: transform 0.5s ease;
}
.recommended__card--prev {
  --recommended-card-offset-y: var(--recommended-prev-offset);
}
.recommended__card--next {
  --recommended-card-offset-y: var(--recommended-next-offset);
}
html.is-recommended-ready .recommended__card {
  --recommended-card-offset-y: 0;
}
html.is-recommended-ready .recommended__card.is-recommended-phase-far-prev {
  --recommended-card-offset-y: var(--recommended-far-prev-offset);
}
html.is-recommended-ready .recommended__card.is-recommended-phase-prev {
  --recommended-card-offset-y: var(--recommended-prev-offset);
}
html.is-recommended-ready .recommended__card.is-recommended-phase-next {
  --recommended-card-offset-y: var(--recommended-next-offset);
}
html.is-recommended-ready .recommended__card.is-recommended-phase-far-next {
  --recommended-card-offset-y: var(--recommended-far-next-offset);
}
.recommended__image {
  position: relative;
  width: 100%;
  height: 20rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .recommended__image {
    height: 47rem;
  }
}
.recommended__image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.recommended__placeholder {
  width: 20.5rem;
  height: 14.5rem;
}
@media (min-width: 768px) {
  .recommended__placeholder {
    width: 35.5rem;
    letter-spacing: 0;
  }
}
.recommended__body {
  display: none;
}
@media (min-width: 768px) {
  .recommended__body {
    display: block;
    min-height: 27rem;
    padding: 6rem 2rem 0;
  }
}
@media (min-width: 768px) {
  .recommended__body h3,
  .recommended__body strong {
    font-size: 4rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }
}
@media (min-width: 768px) {
  .recommended__body h3 {
    text-align: center;
  }
}
@media (min-width: 768px) {
  .recommended__body p {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 2.5rem;
  }
}
@media (min-width: 768px) {
  .recommended__body strong {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    font-weight: 800;
  }
}
.recommended__controls {
  display: none;
}
@media (min-width: 768px) {
  .recommended__controls {
    position: absolute;
    top: 59.65rem;
    left: 50%;
    z-index: 3;
    align-items: center;
    justify-content: space-between;
    width: 109rem;
    transform: translateX(-50%);
    pointer-events: none;
  }
}
@media (min-width: 768px) {
  html.is-recommended-ready .recommended__controls:not([hidden]) {
    display: flex;
  }
}
.recommended__price {
  position: relative;
  z-index: 1;
  min-height: 14.5rem;
  padding-block: 1.5rem;
  background: #dfe5f2;
}
@media (min-width: 768px) {
  .recommended__price {
    display: none;
  }
}
.recommended__price::before {
  position: absolute;
  inset: 0;
  background: #000;
  clip-path: polygon(0 0, 100% 0, 100% 20%, 0 75%);
  content: "";
}
.recommended__price .button {
  position: relative;
  z-index: 1;
  width: 25.5rem;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .recommended__price-label {
    padding: 0.5rem 1.5rem;
    border: 1.5px solid #fff;
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: 0.06em;
  }
}
@media (min-width: 768px) {
  .recommended__unit {
    font-size: 4rem;
    font-weight: 800;
  }
}
@media (min-width: 768px) {
  .recommended__control {
    width: 8.65rem;
    aspect-ratio: 1;
    background: transparent center/contain no-repeat;
    pointer-events: auto;
  }
}
@media (min-width: 768px) {
  .recommended__control--prev {
    background-image: url("../img/svg/icon/ui/recommended-prev-pc.svg");
  }
}
@media (min-width: 768px) {
  .recommended__control--next {
    background-image: url("../img/svg/icon/ui/square-chevron-yellow-next-pc.svg");
  }
}

.posts {
  position: relative;
  padding: 8rem 0 10rem;
}
@media (min-width: 768px) {
  .posts {
    padding: 15rem 0 20rem;
  }
}
.posts__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.posts__heading {
  padding-left: 1.5rem;
  border-left: 0.5rem solid #214782;
}
@media (min-width: 768px) {
  .posts__heading {
    padding-left: 3rem;
    border-width: 0.8rem;
  }
}
.posts__heading p {
  font-family: "Anton", Impact, sans-serif;
  font-size: 2.3rem;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .posts__heading p {
    font-size: 3rem;
  }
}
.posts__heading h2 {
  color: #214782;
  font-size: 2.7rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .posts__heading h2 {
    font-size: 5.5rem;
  }
}
.posts__header-button {
  display: none;
}
@media (min-width: 768px) {
  .posts__header-button {
    display: flex;
  }
}
.posts__list {
  display: grid;
  gap: 6rem;
  margin-top: 5.5rem;
}
@media (min-width: 768px) {
  .posts__list {
    grid-template-columns: repeat(3, 1fr);
    gap: 4.5rem;
    margin-top: 8rem;
  }
}
.posts__item a {
  display: block;
}
.posts__image {
  position: relative;
  display: block;
  height: 20.5rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .posts__image {
    height: 27rem;
  }
}
.posts__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.posts__placeholder {
  width: 75%;
  height: 68%;
}
.posts time {
  display: block;
  font-family: "Anton", Impact, sans-serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}
@media (min-width: 768px) {
  .posts time {
    font-size: 2.5rem;
  }
}
.posts__item > a > time {
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .posts__item > a > time {
    margin-top: 3rem;
  }
}
.posts__item h3 {
  display: -webkit-box;
  overflow: hidden;
  margin-top: 2rem;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.8;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (min-width: 768px) {
  .posts__item h3 {
    margin-top: 2.5rem;
    font-size: 2.8rem;
    font-weight: 800;
    line-height: 1.6;
    letter-spacing: 0.06em;
    -webkit-line-clamp: 3;
  }
}
.posts__item h3 .hover-underline {
  --hover-underline-max-lines: 2;
  --hover-underline-offset-y: .15rem;
}
@media (min-width: 768px) {
  .posts__item h3 .hover-underline {
    --hover-underline-max-lines: 3;
  }
}
.posts__meta {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2rem;
}
.posts__meta time {
  margin: 0;
}
.posts__category {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: 0.3rem 1.5rem;
  color: #fff;
  background: #214782;
  font-size: 1.2rem;
  font-weight: 600;
}
@media (min-width: 768px) {
  .posts__category {
    min-height: 4rem;
    padding-inline: 2rem;
    font-size: 1.8rem;
  }
}
.posts__footer-button {
  width: 25.5rem;
  margin: 5rem auto 0;
}
@media (min-width: 768px) {
  .posts__footer-button {
    display: none;
  }
}
.posts--blog {
  padding: 9rem 0;
  background: #dfe5f2;
}
@media (min-width: 768px) {
  .posts--blog {
    padding-top: 26rem;
    padding-bottom: 20rem;
  }
}
.posts--works {
  padding: 9rem 0;
  color: #fff;
  background: #2d2a26;
}
@media (min-width: 768px) {
  .posts--works {
    padding-top: 13rem;
    padding-bottom: 12rem;
    background: linear-gradient(to bottom, #dfe5f2 0, #dfe5f2 13rem, #fff 13rem, #fff 100%);
  }
}
.posts--works .posts__heading {
  border-left-color: #fff500;
}
.posts--works .posts__heading h2 {
  color: #fff;
}
@media (min-width: 768px) {
  .posts--works::before {
    position: absolute;
    inset: 0;
    width: 175rem;
    max-width: calc(100% - 4rem);
    margin-inline: auto;
    background: #2d2a26;
    content: "";
  }
}

.company {
  --company-divider-color: #b3b3b3;
  --company-divider-width: 1.5px;
  --company-label-divider-width: 3px;
  --company-label-width: 30rem;
  --company-content-width: 105.5rem;
  position: relative;
  padding: 7rem 0 9rem;
  background: #fff;
  overflow: hidden;
}
@media (min-width: 768px) {
  .company {
    padding: 20rem 0;
  }
}
.company__word {
  color: rgba(113, 139, 179, 0.22);
  font-family: "Anton", Impact, sans-serif;
  font-size: 8.8rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .company__word {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    font-size: 32rem;
    writing-mode: vertical-rl;
  }
}
.company__word span {
  color: #718bb3;
}
@media (max-width: 767px) {
  .company__header {
    margin-top: -2rem;
  }
}
@media (min-width: 768px) {
  .company__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: var(--company-content-width);
    margin-left: auto;
  }
}
.company__header h2 {
  margin-top: 1rem;
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .company__header h2 {
    margin-top: 3rem;
    font-size: 5.3rem;
    line-height: 1.2;
  }
}
.company__button {
  display: none;
}
@media (min-width: 768px) {
  .company__button {
    display: flex;
    transform: translateY(2rem);
  }
}
.company__list {
  display: grid;
  margin-top: 2.5rem;
}
@media (max-width: 767px) {
  .company__list {
    row-gap: 1.5rem;
  }
}
@media (min-width: 768px) {
  .company__list {
    width: var(--company-content-width);
    margin-top: 6.5rem;
    margin-left: auto;
  }
}
.company__list dt {
  color: #214782;
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .company__list dt {
    padding: 3rem 0 3rem 2rem;
    border-bottom: var(--company-divider-width) solid transparent;
    font-size: 2.5rem;
    letter-spacing: 0.06em;
  }
}
.company__list dd {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .company__list dd {
    padding: 3rem 0 3rem 2rem;
    border-bottom: var(--company-divider-width) solid var(--company-divider-color);
    font-size: 2.4rem;
  }
}
@media (max-width: 767px) {
  .company__list > div {
    padding-bottom: 1.5rem;
    border-bottom: 1.5px solid var(--company-divider-color);
  }
}
@media (min-width: 768px) {
  .company__list > div {
    position: relative;
    display: grid;
    grid-template-columns: var(--company-label-width) 1fr;
  }
}
@media (min-width: 768px) {
  .company__list > div::after {
    position: absolute;
    right: calc(100% - var(--company-label-width));
    bottom: calc((var(--company-label-divider-width) - var(--company-divider-width)) / -2);
    left: 0;
    z-index: 1;
    height: var(--company-label-divider-width);
    background: #214782;
    content: "";
    pointer-events: none;
  }
}
.company__row--address dd {
  line-height: 1.7;
}
@media (min-width: 768px) {
  .company__row--address dd {
    line-height: 1.6;
  }
}
.company__address-line {
  display: block;
}
.company__address-tail {
  white-space: nowrap;
}

.recruit {
  min-height: 85.5rem;
  padding: 9rem 0 8rem;
  color: #fff;
  background: linear-gradient(180deg, #000b71, #2c81c6);
  overflow: hidden;
}
@media (min-width: 768px) {
  .recruit {
    min-height: 114rem;
    padding: 18rem 0 15rem;
  }
}
.recruit__heading {
  display: flex;
  align-items: baseline;
  gap: 2.5rem;
}
.recruit__heading p {
  font-family: "Anton", Impact, sans-serif;
  font-size: 5.7rem;
  font-weight: 400;
  line-height: 1;
}
@media (min-width: 768px) {
  .recruit__heading p {
    font-size: 13.6rem;
    line-height: 1.5;
  }
}
.recruit__heading h2 {
  margin-bottom: 0.2em;
  color: #fff500;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
  translate: 0 -0.1em;
}
@media (min-width: 768px) {
  .recruit__heading h2 {
    font-size: 5.5rem;
  }
}
.recruit__catch {
  margin-top: 4rem;
  font-size: 2.7rem;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .recruit__catch {
    font-size: 6rem;
    line-height: 1.5;
  }
}
.recruit__text {
  margin-top: 3rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .recruit__text {
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: 0.06em;
  }
}
.recruit .button {
  margin-top: 4rem;
}
@media (max-width: 767px) {
  .recruit .button {
    width: 25.5rem;
  }
}
@media (min-width: 768px) {
  .recruit .button {
    margin-top: 8rem;
  }
}
.recruit__visual {
  position: relative;
  height: 29.16rem;
}
@media (max-width: 767px) {
  .recruit__visual {
    margin-top: 5rem;
  }
}
@media (min-width: 768px) {
  .recruit__visual {
    height: 75rem;
  }
}
.recruit__mark {
  position: absolute;
  top: -38.73rem;
  left: 2.4rem;
  width: 31rem;
  opacity: 0.5;
}
@media (min-width: 768px) {
  .recruit__mark {
    top: -3rem;
    left: -39rem;
    width: 78rem;
  }
}
.recruit__photo-wrap {
  position: absolute;
}
.recruit__photo-wrap--meeting {
  --image-wipe-clip: polygon(34.15% 0, 100% 0, 65.75% 100%, 0 100%);
  top: 0;
  left: 3.3rem;
  z-index: 2;
  width: 18.25rem;
}
@media (min-width: 768px) {
  .recruit__photo-wrap--meeting {
    top: -0.1rem;
    left: 3.4rem;
    width: 46.85rem;
  }
}
.recruit__photo-wrap--team {
  --image-wipe-clip: polygon(29.95% 0, 100% 0, 100% 100%, 0 100%);
  top: 6.65rem;
  left: 4.37rem;
  z-index: 1;
  width: 35.03rem;
}
@media (min-width: 768px) {
  .recruit__photo-wrap--team {
    top: 16.95rem;
    left: 6.15rem;
    width: 89.85rem;
  }
}
.recruit__photo {
  width: 100%;
}
@media (min-width: 768px) {
  .recruit__inner {
    display: grid;
    grid-template-columns: 76rem 1fr;
    align-items: start;
    width: 152rem;
  }
}

.contact {
  padding: 7rem 0 9rem;
  color: #000;
  background: #dfe5f2;
}
@media (min-width: 768px) {
  .contact {
    padding: 15rem 0 20rem;
  }
}
.contact__heading {
  position: relative;
  text-align: center;
}
.contact__heading > p {
  color: rgba(255, 255, 255, 0.62);
  font-family: "Anton", Impact, sans-serif;
  font-size: 9.2rem;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .contact__heading > p {
    font-size: 22.1rem;
  }
}
.contact__heading h2 {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #214782;
  font-size: 2.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .contact__heading h2 {
    transform: translateY(-1rem);
    font-size: 5.3rem;
  }
}
.contact__intro {
  position: relative;
  margin-top: 1rem;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: 0;
  text-align: center;
  z-index: 1;
}
@media (min-width: 768px) {
  .contact__intro {
    margin-top: -6rem;
    font-size: 2.5rem;
    line-height: 2;
    letter-spacing: 0.06em;
  }
}
@media (max-width: 767px) {
  .contact__intro {
    max-width: 36rem;
    margin-right: auto;
    margin-left: auto;
  }
}
.contact__channels {
  display: grid;
  margin-top: 5.5rem;
}
@media (min-width: 768px) {
  .contact__channels {
    grid-template-columns: repeat(2, 1fr);
    margin-top: 8rem;
    border-block: 0.3rem solid #000;
  }
}
@media (max-width: 767px) {
  .contact__channels {
    gap: 2rem;
  }
}
.contact__channel {
  min-height: 17.5rem;
  padding: 2rem;
  text-align: center;
}
@media (min-width: 768px) {
  .contact__channel {
    padding: 6rem;
  }
}
@media (max-width: 767px) {
  .contact__channel {
    border: 2.5px solid #fff;
  }
}
.contact__channel h3 {
  color: #214782;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .contact__channel h3 {
    font-size: 4rem;
    letter-spacing: 0.06em;
  }
}
.contact__channel .contact__tel {
  display: inline-block;
  margin-top: 1rem;
  font-family: "Anton", Impact, sans-serif;
  font-size: 3.5rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
@media (min-width: 768px) {
  .contact__channel .contact__tel {
    margin-top: 2rem;
    font-size: 6.8rem;
  }
}
.contact__channel .contact__hours {
  margin-top: 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .contact__channel .contact__hours {
    font-size: 2.4rem;
  }
}
.contact__channel .button {
  width: 25rem;
  margin: 2rem auto 0;
}
@media (min-width: 768px) {
  .contact__channel .button {
    width: 47rem;
    margin-top: 3rem;
  }
}
@media (min-width: 768px) {
  .contact__channel + .contact__channel {
    position: relative;
  }
}
@media (min-width: 768px) {
  .contact__channel + .contact__channel::before {
    position: absolute;
    top: 3rem;
    bottom: 4rem;
    left: 0;
    width: 0.3rem;
    background: #000;
    content: "";
  }
}
@media (min-width: 768px) {
  .contact > .container {
    max-width: 135rem;
  }
}
@media (max-width: 767px) {
  .contact > .container {
    width: auto;
    margin-inline: 2.5rem;
  }
}

.contact-form {
  --contact-form-border-color: #707070;
  margin-top: 3.5rem;
  padding: 6rem 2.5rem;
  background: #fff;
}
@media (min-width: 768px) {
  .contact-form {
    margin-top: 10rem;
    padding: 9rem 9rem 10rem;
  }
}
.contact-form__fields {
  display: grid;
  row-gap: 2.5rem;
}
@media (min-width: 768px) {
  .contact-form__fields {
    row-gap: 4rem;
  }
}
.contact-form__row {
  display: grid;
  gap: 1rem;
}
@media (min-width: 768px) {
  .contact-form__row {
    grid-template-columns: 36rem 1fr;
    align-items: center;
    gap: 6rem;
  }
}
.contact-form__row > .wpcf7-form-control-wrap,
.contact-form__row > .contact-form__privacy {
  min-width: 0;
}
.contact-form__row > .wpcf7-form-control-wrap {
  display: block;
}
.contact-form__row > label,
.contact-form__row .contact-form__label {
  display: flex;
  align-items: center;
  color: #214782;
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .contact-form__row > label,
  .contact-form__row .contact-form__label {
    font-size: 2.5rem;
    letter-spacing: 0.06em;
  }
}
.contact-form__row > label > span,
.contact-form__row .contact-form__label > span {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  margin-left: 1rem;
  padding-inline: 1rem;
  color: #fff;
  background: #dc000c;
  font-size: 1.2rem;
  line-height: 1;
}
@media (min-width: 768px) {
  .contact-form__row > label > span,
  .contact-form__row .contact-form__label > span {
    min-height: 3rem;
    font-size: 1.5rem;
  }
}
.contact-form__row > .wpcf7-form-control-wrap > input,
.contact-form__row > .wpcf7-form-control-wrap > select,
.contact-form__row > .wpcf7-form-control-wrap > textarea {
  width: 100%;
  border: 1px solid var(--contact-form-border-color);
  background: #fff;
  font-size: 1.5rem;
  font-weight: 600;
}
@media (min-width: 768px) {
  .contact-form__row > .wpcf7-form-control-wrap > input,
  .contact-form__row > .wpcf7-form-control-wrap > select,
  .contact-form__row > .wpcf7-form-control-wrap > textarea {
    font-size: 1.8rem;
  }
}
.contact-form__row > .wpcf7-form-control-wrap > input {
  height: 5rem;
  padding: 1rem 1.5rem;
}
@media (min-width: 768px) {
  .contact-form__row > .wpcf7-form-control-wrap > input {
    height: 7rem;
    padding-inline: 3rem;
  }
}
.contact-form__row > .wpcf7-form-control-wrap > select {
  height: 5rem;
  padding-block: 1rem;
  padding-inline: 1.5rem 4rem;
  max-width: 24rem;
  background-image: url("../img/svg/icon/ui/select-arrow-sp.svg");
  background-position: calc(100% - 1.81rem) 50%;
  background-size: 1.56rem 0.88rem;
  background-repeat: no-repeat;
  cursor: pointer;
}
@media (min-width: 768px) {
  .contact-form__row > .wpcf7-form-control-wrap > select {
    height: 6.5rem;
    padding-inline: 3rem;
    max-width: 30rem;
    background-image: url("../img/svg/icon/ui/select-arrow-pc.svg");
    background-position: calc(100% - 3.6rem) 50%;
    background-size: 1.83rem 1.02rem;
  }
}
.contact-form__row > .wpcf7-form-control-wrap > textarea {
  height: 32rem;
  padding: 1.5rem;
  resize: vertical;
}
@media (min-width: 768px) {
  .contact-form__row > .wpcf7-form-control-wrap > textarea {
    height: 25rem;
    padding: 3rem;
  }
}
.contact-form__row ::placeholder {
  color: #a5a5a5;
  opacity: 1;
}
@media (min-width: 768px) {
  .contact-form__row--textarea, .contact-form__row--privacy {
    align-items: start;
  }
}
.contact-form__field-status {
  margin-top: -0.5rem;
  color: #214782;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.5;
}
.contact-form__field-status:empty {
  display: none;
}
.contact-form__field-status.is-error {
  color: #dc000c;
}
@media (min-width: 768px) {
  .contact-form__field-status {
    grid-column: 2;
    font-size: 1.5rem;
  }
}
.contact-form input:-webkit-autofill,
.contact-form input:-webkit-autofill:hover,
.contact-form input:-webkit-autofill:focus,
.contact-form select:-webkit-autofill,
.contact-form textarea:-webkit-autofill {
  box-shadow: 0 0 0 100rem #fff inset;
  -webkit-text-fill-color: #000;
}
.contact-form__policy {
  height: 24rem;
  padding: 1.5rem;
  border: 1px solid var(--contact-form-border-color);
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.5;
  overflow-y: auto;
  scrollbar-color: #214782 #fff;
}
@media (min-width: 768px) {
  .contact-form__policy {
    padding: 3rem;
    font-size: 1.6rem;
    line-height: 1.6;
  }
}
.contact-form__policy a {
  overflow-wrap: anywhere;
}
.contact-form__policy h3 {
  font-size: 1.5rem;
  font-weight: 800;
}
@media (min-width: 768px) {
  .contact-form__policy h3 {
    font-size: 1.8rem;
  }
}
.contact-form__policy p + h3 {
  margin-top: 2rem;
}
.contact-form__policy p {
  margin-top: 0.8rem;
}
.contact-form__check {
  display: block;
  width: fit-content;
  margin-top: 2rem;
  margin-inline: auto;
  color: #000;
  font-size: 1.5rem;
  font-weight: 700;
}
@media (min-width: 768px) {
  .contact-form__check {
    font-size: 2rem;
  }
}
.contact-form__check .wpcf7-form-control-wrap,
.contact-form__check .wpcf7-form-control,
.contact-form__check .wpcf7-list-item {
  display: block;
}
.contact-form__check .wpcf7-list-item {
  margin: 0;
}
.contact-form__check label {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  width: fit-content;
  cursor: pointer;
}
@media (min-width: 768px) {
  .contact-form__check label {
    gap: 2rem;
  }
}
.contact-form__check--privacy {
  margin-top: 2.5rem;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .contact-form__check--privacy {
    margin-inline: 0;
    font-size: 1.8rem;
  }
}
.contact-form__check--confirm {
  margin-top: 0;
  font-size: 1.7rem;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .contact-form__check--confirm {
    font-size: 2.4rem;
  }
}
.contact-form__check input {
  width: 2rem;
  height: 2rem;
  flex: none;
  accent-color: #214782;
}
@media (min-width: 768px) {
  .contact-form__check input {
    width: 3rem;
    height: 3rem;
  }
}
.contact-form__submit {
  margin-top: 4rem;
  padding-top: 4rem;
  border-top: 1px solid #214782;
}
@media (min-width: 768px) {
  .contact-form__submit {
    margin-top: 8rem;
    padding-top: 5rem;
  }
}
.contact-form__submit .button {
  width: 25.5rem;
  margin: 4rem auto 0;
}
@media (min-width: 768px) {
  .contact-form__submit .button {
    width: 47rem;
    margin-top: 5rem;
  }
}
.contact-form__submit .wpcf7-spinner {
  display: block;
  margin: 1.5rem auto 0;
}
.contact-form .wpcf7-not-valid-tip {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  font-weight: 600;
}
@media (min-width: 768px) {
  .contact-form .wpcf7-not-valid-tip {
    font-size: 1.6rem;
  }
}
.contact-form.wpcf7-form .wpcf7-response-output {
  margin: 3rem 0 0;
  padding: 1.5rem;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .contact-form.wpcf7-form .wpcf7-response-output {
    margin-top: 4rem;
    padding: 2rem;
    font-size: 1.7rem;
  }
}
.contact-form__unavailable {
  margin-top: 3.5rem;
  padding: 4rem 2.5rem;
  color: #214782;
  background: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}
@media (min-width: 768px) {
  .contact-form__unavailable {
    margin-top: 10rem;
    padding: 6rem;
    font-size: 2rem;
  }
}

.footer {
  --footer-content-inset-start: 7rem;
  --footer-content-inset-end: 8.5rem;
  color: #fff;
}
.footer__upper {
  padding: 9rem 0 12rem;
  background: #214782;
}
@media (min-width: 768px) {
  .footer__upper {
    padding: 13rem 0 9rem;
  }
}
.footer__nav {
  display: grid;
  gap: 2.5rem;
}
@media (min-width: 768px) {
  .footer__nav {
    grid-template-columns: 39.5rem 20.5rem 24rem 1fr;
    gap: 7rem;
    padding-inline: var(--footer-content-inset-start) var(--footer-content-inset-end);
  }
}
.footer__nav-column {
  display: grid;
  gap: 3rem;
}
@media (min-width: 768px) {
  .footer__nav-column {
    align-content: start;
  }
}
.footer__nav-column > ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 3rem;
  font-weight: 700;
  font-size: 1.3rem;
}
@media (min-width: 768px) {
  .footer__nav-column > ul {
    grid-template-columns: 1fr;
    row-gap: 1rem;
    font-size: 2.2rem;
  }
}
.footer__nav-column--services {
  gap: 2rem;
}
.footer__nav-title {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .footer__nav-title {
    gap: 2rem;
    font-size: 2.4rem;
  }
}
.footer__nav-title > span {
  display: block;
  width: 2.5rem;
  margin-top: 0.1rem;
  aspect-ratio: 1;
  flex: none;
  background: url("../img/webp/icon/ui/footer-nav-arrow-sp.webp") center/contain no-repeat;
}
@media (min-width: 768px) {
  .footer__nav-title > span {
    width: 3rem;
    margin-top: 0.5rem;
    background-image: url("../img/svg/icon/ui/footer-nav-arrow-pc.svg");
  }
}
.footer__areas {
  margin-top: 4.5rem;
  padding-top: 5rem;
  border-top: 1px solid #fff;
}
@media (min-width: 768px) {
  .footer__areas {
    margin-top: 6.5rem;
    padding-block-start: 7.5rem;
    padding-inline: var(--footer-content-inset-start) var(--footer-content-inset-end);
  }
}
.footer__areas h2 {
  display: inline-flex;
  padding: 1rem 3rem;
  color: #fff;
  background: #000;
  clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .footer__areas h2 {
    padding: 1rem 4rem;
    font-size: 2.5rem;
  }
}
.footer__areas dl {
  display: grid;
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .footer__areas dl {
    row-gap: 3.5rem;
  }
}
.footer__areas dt {
  align-self: start;
  padding-left: 1.5rem;
  border-left: 0.3rem solid #fff;
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .footer__areas dt {
    font-size: 2.5rem;
  }
}
.footer__areas dd {
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0;
}
@media (max-width: 767px) {
  .footer__areas dd {
    margin-top: 1.5rem;
  }
}
@media (min-width: 768px) {
  .footer__areas dd {
    font-size: 2.2rem;
    line-height: 1.8;
  }
}
@media (min-width: 768px) {
  .footer__areas dl > div {
    display: grid;
    grid-template-columns: 14rem 1fr;
    gap: 4rem;
  }
}
.footer__lower {
  padding: 8rem 0 7rem;
  background: #000;
}
@media (min-width: 768px) {
  .footer__lower {
    padding: 3.5rem 0 10rem;
  }
}
.footer__company {
  text-align: center;
}
@media (min-width: 768px) {
  .footer__company {
    display: grid;
    grid-template-columns: 42rem 1fr 8rem;
    align-items: center;
    gap: 8.5rem;
    text-align: left;
  }
}
.footer__company > img {
  width: 23rem;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .footer__company > img {
    width: 42rem;
  }
}
.footer__company-name {
  font-size: 1.5rem;
  font-weight: 700;
}
@media (min-width: 768px) {
  .footer__company-name {
    grid-column: 1/-1;
    font-size: 2.4rem;
  }
}
.footer address {
  display: grid;
  gap: 1rem;
  font-size: 1.4rem;
  font-weight: 600;
}
@media (max-width: 767px) {
  .footer address {
    margin-top: 2rem;
  }
}
@media (min-width: 768px) {
  .footer address {
    gap: 0.5rem;
    font-size: 1.8rem;
  }
}
.footer__contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1.5rem;
  font-size: 1.4rem;
  font-weight: 600;
}
@media (max-width: 767px) {
  .footer__contact {
    margin-top: 0.8rem;
  }
}
@media (max-width: 767px) {
  .footer__contact .footer__mail {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .footer__contact {
    justify-content: flex-start;
    font-size: 1.8rem;
  }
}
.footer__page-top {
  display: none;
}
@media (min-width: 768px) {
  .footer__page-top {
    display: block;
    width: 8.5rem;
    aspect-ratio: 1;
    background: url("../img/svg/icon/ui/page-top-pc.svg") center/contain no-repeat;
  }
}
.footer__page-top span {
  display: none;
}
.footer__copyright {
  display: block;
  width: auto;
  margin: 3.5rem 3.5rem 0;
  padding-top: 3rem;
  border-top: 1px solid rgba(255, 255, 255, 0.75);
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
}
@media (min-width: 768px) {
  .footer__copyright {
    width: 151.5rem;
    max-width: calc(100% - 28rem);
    margin: 6.5rem auto 0;
    padding-top: 4rem;
    font-size: 1.8rem;
  }
}
@media (max-width: 767px) {
  .footer__company-info {
    margin-top: 4rem;
  }
}
@media (min-width: 768px) {
  .footer__company-info {
    display: grid;
    grid-template-columns: 42rem 1fr;
    column-gap: 3.5rem;
    padding-top: 1.5rem;
  }
}

.subpage {
  background: #fff;
}
.subpage .header {
  color: #000;
}
.subpage .header__logo-img--light {
  opacity: 0;
}
.subpage .header__logo-img--dark {
  opacity: 1;
}
@media (min-width: 768px) {
  .subpage .header__inner::after {
    opacity: 0;
  }
}

.page-hero {
  position: relative;
  height: 64rem;
  background: #fff;
}
@media (min-width: 768px) {
  .page-hero {
    height: 97rem;
  }
}
.page-hero__mark {
  position: absolute;
  top: 22rem;
  left: 50%;
  width: 25.8rem;
  pointer-events: none;
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  .page-hero__mark {
    top: 17rem;
    width: 67.8rem;
  }
}
.page-hero__heading {
  position: absolute;
  top: 16.1rem;
  left: 0;
}
@media (min-width: 768px) {
  .page-hero__heading {
    top: 26.8rem;
  }
}
.page-hero__en {
  color: #173b78;
  font-family: "Anton", Impact, sans-serif;
  font-size: 2.5rem;
  font-weight: 400;
  line-height: 1.4;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .page-hero__en {
    font-size: 4.7rem;
  }
}
.page-hero__title {
  margin-top: 1rem;
  font-size: 3.3rem;
  font-weight: 800;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .page-hero__title {
    font-size: 7rem;
    letter-spacing: 0.06em;
  }
}
.page-hero__breadcrumb {
  position: absolute;
  top: 42.9rem;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.7rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .page-hero__breadcrumb {
    top: 56.8rem;
    gap: 2.5rem;
    font-size: 2.4rem;
    line-height: 1.6;
  }
}
.page-hero__breadcrumb span[aria-current=page] {
  max-width: 24rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (min-width: 768px) {
  .page-hero__breadcrumb span[aria-current=page] {
    max-width: 50rem;
  }
}
.page-hero__breadcrumb-arrow {
  width: 0.8rem;
  height: 1.3rem;
  flex: none;
  background: url("../img/svg/icon/ui/menu-chevron-sp.svg") center/contain no-repeat;
}
@media (min-width: 768px) {
  .page-hero__breadcrumb-arrow {
    width: 1.4rem;
    height: 2rem;
  }
}
.page-hero__media {
  position: absolute;
  top: 50.6rem;
  left: 0;
  width: 100%;
  height: 26.5rem;
}
@media (min-width: 768px) {
  .page-hero__media {
    top: 72.8rem;
    height: 48rem;
  }
}
.page-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page-hero--media {
  height: 77.1rem;
}
@media (min-width: 768px) {
  .page-hero--media {
    height: 120.8rem;
  }
}
.page-hero--media::before {
  position: absolute;
  inset: 0 0 auto;
  height: 64rem;
  background: #dfe5f2;
  content: "";
}
@media (min-width: 768px) {
  .page-hero--media::before {
    height: 97rem;
  }
}

.lower-section-heading--line {
  --lower-section-heading-line-color: #173b78;
  --lower-section-heading-line-width: .5rem;
  position: relative;
  border-left: var(--lower-section-heading-line-width) solid transparent;
}
@media (min-width: 768px) {
  .lower-section-heading--line {
    --lower-section-heading-line-width: .7rem;
  }
}
.lower-section-heading--line::before {
  position: absolute;
  top: -0.5rem;
  bottom: 0;
  left: calc(-1 * var(--lower-section-heading-line-width));
  width: var(--lower-section-heading-line-width);
  background: var(--lower-section-heading-line-color);
  content: "";
}
.lower-section-heading__label {
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .lower-section-heading__label {
    margin-bottom: 3rem;
  }
}
.lower-section-heading__title {
  color: #173b78;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .lower-section-heading__title {
    font-size: 5.3rem;
    line-height: 1.3;
  }
}

.quick-contact--lower {
  padding-top: 12rem;
  background: #dfe5f2;
}
@media (min-width: 768px) {
  .quick-contact--lower {
    padding-top: 14rem;
  }
}

.archive-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
}
@media (min-width: 768px) {
  .archive-pagination {
    gap: 3rem;
  }
}
.archive-pagination a,
.archive-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  aspect-ratio: 1;
  font-family: "Anton", Impact, sans-serif;
  font-size: 1.8rem;
  line-height: 1;
}
@media (min-width: 768px) {
  .archive-pagination a,
  .archive-pagination span {
    width: 6rem;
    font-size: 2.5rem;
  }
}
.archive-pagination .is-current {
  color: #fff;
  background: #173b78;
}

.page-hero--text-only {
  height: 49rem;
}
@media (min-width: 768px) {
  .page-hero--text-only {
    height: 89rem;
  }
}

.page-privacy .page-hero__breadcrumb {
  gap: 1rem;
}
.page-privacy .page-hero__breadcrumb span[aria-current=page] {
  max-width: none;
}
@media (min-width: 768px) {
  .page-privacy .page-hero__breadcrumb {
    gap: 2.5rem;
  }
}

.privacy-policy {
  padding: 31rem 0 12rem;
}
@media (min-width: 768px) {
  .privacy-policy {
    padding: 8rem 0 20rem;
  }
}
.privacy-policy__inner {
  display: grid;
  gap: 5rem;
}
.privacy-policy__intro, .privacy-policy__article {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.9;
}
@media (min-width: 768px) {
  .privacy-policy__intro, .privacy-policy__article {
    font-size: 2.3rem;
    line-height: 1.8;
  }
}
.privacy-policy__article h2 {
  position: relative;
  padding-left: 2rem;
  font-size: 1.8rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .privacy-policy__article h2 {
    padding-left: 5rem;
    font-size: 3rem;
    line-height: 1.4;
  }
}
.privacy-policy__article h2::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 1.5rem;
  height: 0.5rem;
  background: #173b78;
  content: "";
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .privacy-policy__article h2::before {
    width: 3rem;
    height: 0.7rem;
  }
}
.privacy-policy__article h2 + p,
.privacy-policy__article h2 + ul {
  margin-top: 1.5rem;
}
.privacy-policy__article ul {
  list-style: none;
}
.privacy-policy__article li::before {
  content: "・";
}
.privacy-policy__company {
  margin-top: 2rem;
  color: #173b78;
  font-size: 1.7rem;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .privacy-policy__company {
    margin-top: 3rem;
    font-size: 2.5rem;
  }
}

.page-404 .page-hero__title {
  white-space: nowrap;
}
.page-404 .page-hero__breadcrumb {
  gap: 1rem;
}
.page-404 .page-hero__breadcrumb span[aria-current=page] {
  max-width: none;
}
@media (min-width: 768px) {
  .page-404 .page-hero__breadcrumb {
    gap: 2.5rem;
  }
}

.error-page {
  padding: 12rem 0;
  text-align: center;
}
@media (min-width: 768px) {
  .error-page {
    padding: 3rem 0 25rem;
  }
}
.error-page__body {
  padding-bottom: 6rem;
  border-bottom: 0.2rem solid #173b78;
  font-size: 1.8rem;
  font-weight: 800;
  line-height: 1.7;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .error-page__body {
    padding-bottom: 10rem;
    font-size: 3rem;
    line-height: 1.8;
  }
}
.error-page__body p + p {
  margin-top: 4rem;
}
@media (min-width: 768px) {
  .error-page__body p + p {
    margin-top: 5rem;
  }
}
.error-page__button {
  width: 26.5rem;
  min-height: 5.2rem;
  margin: 8rem auto 0;
}
@media (min-width: 768px) {
  .error-page__button {
    width: 42.8rem;
    min-height: 10.5rem;
    margin-top: 10rem;
  }
}

.page-services .service-reasons {
  padding-top: 9rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .page-services .service-reasons {
    padding-top: 14rem;
  }
}
.page-services .service-reasons__list {
  margin-top: 4.5rem;
}
@media (min-width: 768px) {
  .page-services .service-reasons__list {
    margin-top: 8rem;
  }
}
.page-services .service-reason {
  position: relative;
  width: calc(100% - 7.2rem);
  margin-inline: auto;
}
@media (min-width: 768px) {
  .page-services .service-reason {
    --service-reason-edge-center-shift: 4.7rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    width: min(100%, 192rem);
  }
}
.page-services .service-reason + .service-reason {
  margin-top: 7rem;
}
@media (min-width: 768px) {
  .page-services .service-reason + .service-reason {
    margin-top: -2rem;
  }
}
.page-services .service-reason__picture {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
}
@media (min-width: 768px) {
  .page-services .service-reason__picture {
    width: 77rem;
  }
}
.page-services .service-reason__picture img {
  width: 100%;
}
.page-services .service-reason__content {
  position: relative;
  z-index: 2;
  margin-top: -1.2rem;
}
@media (min-width: 768px) {
  .page-services .service-reason__content {
    width: min(85rem, 100% - 6rem);
    margin-top: 0;
  }
}
.page-services .service-reason__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 9.1rem;
  height: 3.2rem;
  color: #fff;
  background: linear-gradient(to bottom, #000b71, #2c81c6);
  clip-path: polygon(0.75rem 0, 100% 0, calc(100% - 0.75rem) 100%, 0 100%);
  font-family: "Anton", Impact, sans-serif;
  font-size: 1.5rem;
  line-height: 1.2;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .page-services .service-reason__number {
    width: 18.1rem;
    height: 5.4rem;
    clip-path: polygon(1.5rem 0, 100% 0, calc(100% - 1.5rem) 100%, 0 100%);
    font-size: 3rem;
  }
}
.page-services .service-reason__number span {
  font: inherit;
}
.page-services .service-reason__number strong {
  margin-left: 0.4rem;
  font: inherit;
  font-weight: 400;
}
.page-services .service-reason h3 {
  margin-top: 2rem;
  color: #000;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .page-services .service-reason h3 {
    margin-top: 3rem;
    font-size: 4rem;
    letter-spacing: 0.06em;
  }
}
.page-services .service-reason__accent {
  color: #173b78;
}
.page-services .service-reason__accent--pc {
  color: #000;
}
.page-services .service-reason__content > p:last-child {
  margin-top: 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-services .service-reason__content > p:last-child {
    margin-top: 3rem;
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: 0.06em;
  }
}
@media (min-width: 768px) {
  .page-services .service-reason--image-left .service-reason__picture {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
  }
}
@media (min-width: 768px) {
  .page-services .service-reason--image-left .service-reason__content {
    width: min(82rem, 100% - 6rem);
    grid-column: 2;
    grid-row: 1;
    inset-block-start: calc(-1 * var(--service-reason-edge-center-shift));
    margin-left: -7rem;
  }
}
@media (min-width: 768px) {
  .page-services .service-reason--image-right .service-reason__picture {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
}
@media (min-width: 768px) {
  .page-services .service-reason--image-right .service-reason__content {
    grid-column: 1;
    grid-row: 1;
    justify-self: end;
    inset-block-start: var(--service-reason-edge-center-shift);
    margin-right: -7rem;
  }
}
@media (min-width: 768px) {
  .page-services .service-reason__accent--pc {
    color: #173b78;
  }
}
.page-services .service-reform {
  position: relative;
  display: grid;
  place-items: center;
  padding: 12rem 0 5rem;
  overflow: hidden;
  text-align: center;
}
@media (min-width: 768px) {
  .page-services .service-reform {
    margin-top: 10rem;
    padding: 17rem 0;
  }
}
.page-services .service-reform__word {
  position: absolute;
  top: calc(50% - 0.6rem);
  left: 50%;
  color: #00244e;
  font-family: "Anton", Impact, sans-serif;
  font-size: 9.2rem;
  line-height: 1;
  opacity: 0.09;
  white-space: nowrap;
  transform: translate(-50%, -50%);
}
@media (min-width: 768px) {
  .page-services .service-reform__word {
    font-size: 22rem;
  }
}
.page-services .service-reform__copy {
  position: relative;
  z-index: 1;
  font-size: 0;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .page-services .service-reform__copy {
    line-height: 1.2;
  }
}
.page-services .service-reform__copy > span {
  display: inline-block;
  letter-spacing: 0.06em;
}
.page-services .service-reform__copy .service-reform__opening {
  font-size: 2.7rem;
}
.page-services .service-reform__copy .service-reform__lead,
.page-services .service-reform__copy .service-reform__tail {
  font-size: 2.4rem;
}
.page-services .service-reform__copy strong {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.1rem 0.6rem 0.3rem;
  color: #000;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.4;
  background: #fff500;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .page-services .service-reform__copy strong {
    margin: 0 0.8rem;
    padding: 0.4rem 1rem 0.8rem;
    font-size: 4.5rem;
  }
}
@media (min-width: 768px) {
  .page-services .service-reform__copy .service-reform__opening,
  .page-services .service-reform__copy .service-reform__lead {
    font-size: 5rem;
  }
}
@media (min-width: 768px) {
  .page-services .service-reform__copy .service-reform__tail {
    font-size: 4rem;
  }
}
.page-services .service-quick-contact {
  padding-bottom: 9rem;
  background: #fff;
}
@media (min-width: 768px) {
  .page-services .service-quick-contact {
    padding-bottom: 20rem;
  }
}
.page-services .service-offers {
  --recommended-surface: transparent;
  --recommended-viewport-surface: transparent;
  background: linear-gradient(145deg, #000b71 0%, #2c81c6 100%);
}
.page-services .service-menu {
  position: relative;
  padding: 9rem 0 12rem;
  color: #fff;
  overflow: hidden;
}
@media (min-width: 768px) {
  .page-services .service-menu {
    padding: 20rem 0;
  }
}
.page-services .service-menu .lower-section-heading__title {
  color: #fff;
}
.page-services .service-menu__list {
  margin-top: 10rem;
}
.page-services .service-menu__item {
  scroll-margin-top: 10rem;
}
@media (min-width: 768px) {
  .page-services .service-menu__item {
    display: grid;
    grid-template-columns: 61.5rem minmax(0, 1fr);
    align-items: center;
    gap: 11rem;
  }
}
.page-services .service-menu__item + .service-menu__item {
  margin-top: 6rem;
}
.page-services .service-menu__media {
  width: 100%;
  overflow: hidden;
}
.page-services .service-menu__media img {
  width: 100%;
  aspect-ratio: 358/207;
  object-fit: cover;
}
@media (min-width: 768px) {
  .page-services .service-menu__media img {
    aspect-ratio: 615/390;
  }
}
.page-services .service-menu__body {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .page-services .service-menu__body {
    max-width: 79rem;
    margin-top: 0;
  }
}
.page-services .service-menu h3 {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .page-services .service-menu h3 {
    font-size: 4rem;
    letter-spacing: 0.06em;
  }
}
.page-services .service-menu__body > p {
  margin-top: 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-services .service-menu__body > p {
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: 0.06em;
  }
}
.page-services .service-menu ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2rem;
  padding: 2rem 1.5rem;
  border: 0.2rem solid #fff;
}
@media (min-width: 768px) {
  .page-services .service-menu ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem 1.5rem;
    margin-top: 3rem;
    padding: 1.5rem 2rem;
  }
}
.page-services .service-menu li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-services .service-menu li {
    padding-left: 2rem;
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: 0.06em;
  }
}
.page-services .service-menu li::before {
  position: absolute;
  top: 0.9em;
  left: 0;
  width: 0.7rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff500;
  content: "";
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .page-services .service-menu li::before {
    width: 1rem;
  }
}
.page-services .service-menu li:nth-child(1) {
  grid-area: 1/1;
}
.page-services .service-menu li:nth-child(2) {
  grid-area: 2/2;
}
@media (min-width: 768px) {
  .page-services .service-menu li:nth-child(2) {
    grid-area: 2/1;
  }
}
.page-services .service-menu li:nth-child(3) {
  grid-area: 1/2;
}
.page-services .service-menu li:nth-child(4) {
  grid-area: 3/1;
}
@media (min-width: 768px) {
  .page-services .service-menu li:nth-child(4) {
    grid-area: 2/2;
  }
}
.page-services .service-menu li:nth-child(5) {
  grid-area: 2/1;
}
@media (min-width: 768px) {
  .page-services .service-menu li:nth-child(5) {
    grid-area: 1/3;
  }
}
.page-services .service-menu .button {
  width: 25.5rem;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .page-services .service-menu .button {
    width: 30rem;
    margin: 4rem 0 0 auto;
  }
}
@media (max-width: 767px) {
  .page-services .recommended .section-title {
    margin-top: 0;
    padding-top: 4rem;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__viewport {
    margin-top: 3rem;
    padding-bottom: 4rem;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__viewport::before {
    top: -0.3rem;
    clip-path: polygon(0 24%, 100% 0, 100% 100%, 0 100%);
  }
}
@media (max-width: 767px) {
  .page-services .recommended__body {
    display: block;
    padding: 3rem 2rem 2.5rem;
    text-align: center;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__body h3,
  .page-services .recommended__body strong {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 0.06em;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__body p {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 2rem;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__price-label {
    padding: 0.3rem 0.8rem;
    border: 0.2rem solid #fff;
    font-size: 1.5rem;
    font-weight: 800;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__unit {
    font-size: 2rem;
    font-weight: 800;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__controls {
    position: absolute;
    bottom: 6rem;
    left: 50%;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 2rem;
    transform: translateX(-50%);
  }
}
@media (max-width: 767px) {
  .page-services .recommended__control {
    width: 5.2rem;
    aspect-ratio: 1;
    background: transparent center/contain no-repeat;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__control--prev {
    background-image: url("../img/svg/icon/ui/recommended-prev-pc.svg");
  }
}
@media (max-width: 767px) {
  .page-services .recommended__control--next {
    background-image: url("../img/svg/icon/ui/square-chevron-yellow-next-pc.svg");
  }
}
@media (max-width: 767px) {
  .page-services .recommended__price {
    min-height: 10rem;
  }
}
@media (max-width: 767px) {
  .page-services .recommended__price::before {
    top: -1px;
    clip-path: polygon(0 0, 100% 0, 100% 1%, 0 100%);
  }
}
@media (max-width: 767px) {
  .page-services .recommended__price .button {
    display: none;
  }
}
.page-services .service-flow {
  position: relative;
  padding: 9rem 0 0;
  background: #dfe5f2;
  overflow: hidden;
}
@media (min-width: 768px) {
  .page-services .service-flow {
    padding: 17rem 0 0;
  }
}
.page-services .service-flow__word {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  color: #00244e;
  font-family: "Anton", Impact, sans-serif;
  font-size: 9.2rem;
  line-height: 1;
  opacity: 0.09;
  pointer-events: none;
  transform: translate(-50%, -50%);
}
@media (min-width: 768px) {
  .page-services .service-flow__word {
    top: calc(50% + 3.1rem);
    font-size: 22rem;
  }
}
.page-services .service-flow .lower-section-heading {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: fit-content;
  margin-inline: auto;
}
.page-services .service-flow .lower-section-heading__label, .page-services .service-flow .lower-section-heading__title {
  position: relative;
  z-index: 1;
}
.page-services .service-flow .lower-section-heading__title {
  color: #000;
  letter-spacing: 0.06em;
}
.page-services .service-flow__list {
  position: relative;
  z-index: 1;
  margin-top: 7rem;
}
@media (min-width: 768px) {
  .page-services .service-flow__list {
    width: 128rem;
    margin: 15rem auto 0;
  }
}
.page-services .service-flow__item {
  position: relative;
  display: grid;
  grid-template-columns: 11rem minmax(0, 1fr);
  column-gap: 1.8rem;
  padding-bottom: 10rem;
}
@media (min-width: 768px) {
  .page-services .service-flow__item {
    grid-template-columns: 18rem minmax(0, 1fr);
    column-gap: 7rem;
    padding: 0;
    border-top: 1.5px solid #000;
  }
}
.page-services .service-flow__item:last-child {
  padding-bottom: 0;
}
@media (min-width: 768px) {
  .page-services .service-flow__item:last-child {
    border-bottom: 1.5px solid #000;
  }
}
.page-services .service-flow__item h3 {
  align-self: center;
  color: #173b78;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .page-services .service-flow__item h3 {
    grid-column: 2;
    padding-top: 2rem;
    font-size: 3.5rem;
    line-height: 1.8;
    letter-spacing: 0.06em;
  }
}
.page-services .service-flow__item > p:last-child {
  grid-column: 1/-1;
  margin-top: 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-services .service-flow__item > p:last-child {
    grid-column: 2;
    margin-top: 1rem;
    padding-bottom: 2.5rem;
    font-size: 2.5rem;
    font-weight: 800;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }
}
.page-services .service-flow__item > p:last-child a {
  color: #173b78;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .page-services .service-flow__item:not(:last-child)::after {
    position: absolute;
    bottom: 3rem;
    left: 50%;
    width: 2.5rem;
    height: 3rem;
    background: url("../img/webp/lower/posts/works-comparison-arrow.webp") center/contain no-repeat;
    content: "";
    transform: translateX(-50%) rotate(90deg);
  }
}
@media (min-width: 768px) {
  .page-services .service-flow__item + .service-flow__item::before {
    position: absolute;
    top: -1.8rem;
    left: 9rem;
    width: 3rem;
    height: 3.5rem;
    background: url("../img/webp/lower/posts/works-comparison-arrow.webp") center/contain no-repeat;
    content: "";
    z-index: 2;
    transform: translateX(-50%) rotate(90deg);
  }
}
.page-services .service-flow__step {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  height: 6rem;
  color: #173b78;
  background: #fff;
  font-family: "Anton", Impact, sans-serif;
  line-height: 1;
}
@media (min-width: 768px) {
  .page-services .service-flow__step {
    height: auto;
    flex-direction: column;
    gap: 0;
    grid-row: 1/3;
  }
}
.page-services .service-flow__step span {
  font-size: 2rem;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .page-services .service-flow__step span {
    font-size: 3rem;
  }
}
.page-services .service-flow__step strong {
  font-size: 3.5rem;
  font-weight: 400;
}
@media (min-width: 768px) {
  .page-services .service-flow__step strong {
    margin-top: 0.5rem;
    font-size: 7rem;
  }
}
.page-services .service-flow-contact {
  padding: 9rem 0;
  background: #dfe5f2;
}
@media (min-width: 768px) {
  .page-services .service-flow-contact {
    padding: 20rem 0;
  }
}

@font-face {
  font-family: "Whisper";
  src: url("../font/Whisper-Regular.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}
.page-company .company-intro {
  padding-top: 11rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .page-company .company-intro {
    padding-top: 19rem;
  }
}
.page-company .company-intro__inner {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .page-company .company-intro__inner {
    display: grid;
    grid-template-columns: 75rem minmax(0, 1fr);
    align-items: start;
  }
}
@media (min-width: 768px) {
  .page-company .company-intro__copy {
    width: 75rem;
    margin-top: 3rem;
  }
}
.page-company .company-intro__copy h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 800;
  text-align: center;
}
@media (min-width: 768px) {
  .page-company .company-intro__copy h2 {
    align-items: flex-start;
    text-align: left;
  }
}
.page-company .company-intro__copy h2 span {
  font-size: 2.3rem;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .page-company .company-intro__copy h2 span {
    font-size: 5.3rem;
    line-height: 1.3;
  }
}
.page-company .company-intro__copy h2 strong {
  margin-top: 1rem;
  color: #173b78;
  font-size: 4.2rem;
  line-height: 1.3;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .page-company .company-intro__copy h2 strong {
    margin-top: 1.5rem;
    font-size: 9.2rem;
    line-height: 1.2;
  }
}
.page-company .company-intro__text {
  margin-top: 3rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.7;
}
@media (min-width: 768px) {
  .page-company .company-intro__text {
    margin-top: 5rem;
    font-size: 3rem;
    font-weight: 800;
  }
}
.page-company .company-intro__text p + p {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .page-company .company-intro__text p + p {
    margin-top: 4rem;
  }
}
.page-company .company-intro__photos {
  position: relative;
  width: 35.8rem;
  margin: 1rem 0 0 6.8rem;
  padding-bottom: 5rem;
}
@media (min-width: 768px) {
  .page-company .company-intro__photos {
    width: 73.5rem;
    margin: -7.7rem 0 0 23rem;
    padding-bottom: 15rem;
  }
}
.page-company .company-intro__photo {
  display: block;
}
.page-company .company-intro__photo--main {
  width: 100%;
}
.page-company .company-intro__photo--sub {
  position: absolute;
  top: 24.5rem;
  left: -6.8rem;
  width: 19.7rem;
}
@media (min-width: 768px) {
  .page-company .company-intro__photo--sub {
    top: 51rem;
    left: -15.7rem;
    width: 44.5rem;
  }
}
.page-company .company-intro__wide {
  position: relative;
  display: block;
  margin-top: 10rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .page-company .company-intro__wide {
    margin-top: 16rem;
  }
}
.page-company .company-intro__wide picture {
  display: block;
}
.page-company .company-intro__wide img {
  width: 100%;
}
.page-company .company-intro__curtain {
  position: absolute;
  inset: -1px;
  z-index: 1;
  display: none;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  pointer-events: none;
}
.page-company .company-intro__curtain.is-ready {
  display: grid;
}
@media (max-width: 767px) {
  .page-company .company-intro__curtain {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.page-company .company-intro__curtain span {
  background-color: #16181b;
  transform: scaleX(1);
  transform-origin: left;
  transition: transform 0.4s ease-out;
}
@media (max-width: 767px) {
  .page-company .company-intro__curtain span:nth-child(n+5) {
    display: none;
  }
}
.page-company .company-intro__curtain span:nth-child(1) {
  transition-delay: 0.3s;
}
.page-company .company-intro__curtain span:nth-child(2) {
  transition-delay: 0.25s;
}
.page-company .company-intro__curtain span:nth-child(3) {
  transition-delay: 0.2s;
}
.page-company .company-intro__curtain span:nth-child(4) {
  transition-delay: 0.15s;
}
.page-company .company-intro__curtain span:nth-child(5) {
  transition-delay: 0.1s;
}
.page-company .company-intro__curtain span:nth-child(6) {
  transition-delay: 0.05s;
}
@media (prefers-reduced-motion: reduce) {
  .page-company .company-intro__curtain span {
    transition: none;
    transform: scaleX(0);
  }
}
.page-company .company-intro__curtain.is-open span {
  transform: scaleX(0);
}
.page-company .company-message {
  position: relative;
  padding: 9rem 0 0;
  background: #dfe5f2;
  overflow: hidden;
}
@media (min-width: 768px) {
  .page-company .company-message {
    padding: 20rem 0 0;
    background: linear-gradient(90deg, #dfe5f2 0 66.5%, #fff 66.5% 100%);
  }
}
.page-company .company-message__inner {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .page-company .company-message__inner {
    display: grid;
    grid-template-columns: 72rem minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    align-items: start;
    column-gap: 14rem;
  }
}
.page-company .company-message__heading {
  order: 1;
  padding-left: 1.4rem;
}
@media (min-width: 768px) {
  .page-company .company-message__heading {
    grid-column: 1;
    grid-row: 1;
    padding-left: 3rem;
  }
}
.page-company .company-message__heading .lower-section-heading__label {
  min-height: 0;
  margin-bottom: 0.5rem;
  padding: 0;
  clip-path: none;
  color: #000;
  background: transparent;
  font-size: 2rem;
}
@media (min-width: 768px) {
  .page-company .company-message__heading .lower-section-heading__label {
    font-size: 3rem;
  }
}
.page-company .company-message__heading .lower-section-heading__title {
  font-size: 2.7rem;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .page-company .company-message__heading .lower-section-heading__title {
    font-size: 5.5rem;
    line-height: 1.3;
  }
}
.page-company .company-message__portrait {
  order: 2;
  width: 100%;
  margin-top: 5rem;
}
@media (min-width: 768px) {
  .page-company .company-message__portrait {
    position: relative;
    grid-column: 2;
    grid-row: 1/4;
    z-index: 2;
    width: 44.2rem;
    margin: 27.5rem 0 0;
  }
}
.page-company .company-message__portrait img {
  width: 100%;
}
.page-company .company-message__en {
  text-transform: uppercase;
}
.page-company .company-message__signature {
  order: 3;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0 2.1rem;
  width: fit-content;
  margin: 3.8rem 0 0 auto;
}
@media (min-width: 768px) {
  .page-company .company-message__signature {
    grid-column: 2;
    grid-row: 1/4;
    z-index: 3;
    align-self: start;
    column-gap: 4rem;
    margin: 90.7rem 0 0 3.6rem;
  }
}
.page-company .company-message__signature span {
  padding: 0.5rem 1rem;
  background: #fff500;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .page-company .company-message__signature span {
    font-size: 2.5rem;
    line-height: 1.4;
  }
}
.page-company .company-message__signature strong {
  font-family: "Noto Serif JP", serif;
  font-size: 2.1rem;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
@media (max-width: 767px) {
  .page-company .company-message__signature strong {
    transform: translateX(-0.4rem);
  }
}
@media (min-width: 768px) {
  .page-company .company-message__signature strong {
    font-size: 4rem;
  }
}
.page-company .company-message__signature em {
  grid-column: 2;
  color: #fff500;
  font-family: "Whisper", cursive;
  font-size: 3rem;
  font-style: normal;
  line-height: 1.4;
  margin-top: -1.8rem;
}
@media (min-width: 768px) {
  .page-company .company-message__signature em {
    font-size: 6.3rem;
    margin-top: -4rem;
  }
}
.page-company .company-message__catch {
  order: 4;
  margin-top: 4rem;
}
@media (min-width: 768px) {
  .page-company .company-message__catch {
    grid-column: 1;
    grid-row: 2;
    margin-top: 6rem;
  }
}
.page-company .company-message__catch strong {
  display: inline-block;
  padding: 0.5rem 1rem;
  color: #fff;
  background: #000;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .page-company .company-message__catch strong {
    padding: 0.8rem 1.5rem;
    font-size: 4rem;
    line-height: 1.4;
  }
}
.page-company .company-message__catch p {
  margin-top: 2rem;
  color: #173b78;
  font-size: clamp(1.6rem, 5.12vw, 2.2rem);
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .page-company .company-message__catch p {
    margin-top: 2.5rem;
    font-size: 4rem;
    line-height: 1.5;
    letter-spacing: 0.06em;
  }
}
.page-company .company-message__text {
  order: 5;
  margin-top: 4rem;
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-company .company-message__text {
    grid-column: 1;
    grid-row: 3;
    width: 68.5rem;
    margin-top: 5rem;
    font-size: 2.3rem;
    line-height: 1.7;
  }
}
.page-company .company-message__text p + p {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .page-company .company-message__text p + p {
    margin-top: 4rem;
  }
}
.page-company .company-message__work {
  order: 6;
  width: 100%;
  margin-top: 7rem;
}
@media (min-width: 768px) {
  .page-company .company-message__work {
    position: relative;
    grid-column: 2;
    grid-row: 1/4;
    z-index: 1;
    justify-self: end;
    width: 24.7rem;
    margin-top: 12.5rem;
  }
}
.page-company .company-message__work img {
  width: 100%;
}
.page-company .company-review {
  padding: 0 0 11rem;
  color: #fff;
  background: #dfe5f2;
}
.page-company .company-review .google-review {
  margin-top: 0;
}
@media (min-width: 768px) {
  .page-company .company-review {
    padding: 14rem 0 18rem;
    background: linear-gradient(90deg, #dfe5f2 0 66.5%, #fff 66.5% 100%);
  }
}
.page-company .company-information {
  padding: 9rem 0 14rem;
  color: #fff;
  background: linear-gradient(145deg, #000b71 0%, #2c81c6 100%);
}
@media (min-width: 768px) {
  .page-company .company-information {
    padding: 17rem 0 21rem;
  }
}
.page-company .company-information .lower-section-heading__title {
  color: #fff;
}
.page-company .company-information .lower-section-heading__label {
  min-height: 2.8rem;
  margin-bottom: 1.5rem;
  padding: 0.4rem 1.5rem 0.2rem;
}
@media (min-width: 768px) {
  .page-company .company-information .lower-section-heading__label {
    min-height: 5.4rem;
    margin-bottom: 3rem;
    padding: 0.8rem 4rem 0.3rem;
  }
}
.page-company .company-information__list {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .page-company .company-information__list {
    margin-top: 0;
    border-top: 2px solid rgba(255, 255, 255, 0.5);
  }
}
@media (min-width: 768px) {
  .page-company .company-information__row {
    position: relative;
    display: grid;
    grid-template-columns: 24.5rem minmax(0, 1fr);
  }
}
.page-company .company-information__row + .company-information__row {
  margin-top: 1rem;
}
@media (min-width: 768px) {
  .page-company .company-information__row + .company-information__row {
    margin-top: 0;
  }
}
.page-company .company-information__row dt {
  padding: 0.7rem 1rem;
  color: #000;
  background: #dfe5f2;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-company .company-information__row dt {
    padding: 1.5rem 3rem;
    border-bottom: 2px solid transparent;
    background: #fff;
    font-size: 2.4rem;
    line-height: 1.6;
  }
}
.page-company .company-information__row dd {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.5rem 1rem 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-company .company-information__row dd {
    gap: 0;
    padding: 1.5rem 3rem;
    background: transparent;
    border-bottom: 2px solid rgba(255, 255, 255, 0.5);
    border-right: 2px solid rgba(255, 255, 255, 0.5);
    font-size: 2.4rem;
    line-height: 1.6;
  }
}
.page-company .company-information__row a {
  color: inherit;
}
@media (min-width: 768px) {
  .page-company .company-information__row::after {
    position: absolute;
    bottom: -0.05rem;
    left: 0;
    width: 24.5rem;
    height: 0.3rem;
    background: #2c81c6;
    content: "";
  }
}
.page-company .company-information__row--permit dd {
  padding-block: 2.9rem 0;
}
@media (min-width: 768px) {
  .page-company .company-information__row--permit dd {
    padding-block: 3.1rem 3.2rem;
  }
}
.page-company .company-information__permits {
  display: grid;
  width: 29rem;
  margin-left: 0.1rem;
  gap: 3.1rem;
}
@media (min-width: 768px) {
  .page-company .company-information__permits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: auto;
    margin-left: 0;
    gap: 6rem;
  }
}
.page-company .company-information__permits article {
  display: grid;
  grid-template-columns: 13.5rem 12.2rem;
  align-items: start;
  gap: 3.3rem;
}
@media (min-width: 768px) {
  .page-company .company-information__permits article {
    grid-template-columns: minmax(0, 1fr) 15rem;
    align-items: center;
  }
}
.page-company .company-information__permits p {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .page-company .company-information__permits p {
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.7;
    text-align: center;
  }
}
.page-company .company-information__permits p strong {
  display: block;
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .page-company .company-information__permits p strong {
    margin-bottom: 0.5rem;
  }
}
.page-company .company-information__permits img {
  width: 12.2rem;
}
@media (min-width: 768px) {
  .page-company .company-information__permits img {
    width: 15rem;
  }
}
@media (min-width: 768px) {
  .page-company .company-information .container {
    display: grid;
    grid-template-columns: 38rem minmax(0, 1fr);
    align-items: start;
    gap: 8rem;
  }
}
.page-company .company-history {
  padding: 9rem 0 0;
  color: #fff;
  background: #000;
  overflow: hidden;
}
@media (min-width: 768px) {
  .page-company .company-history {
    padding: 17rem 0 0;
  }
}
.page-company .company-history .lower-section-heading__title {
  color: #fff;
}
.page-company .company-history .lower-section-heading {
  --lower-section-heading-line-color: #fff;
  padding-left: 2rem;
}
@media (min-width: 768px) {
  .page-company .company-history .lower-section-heading {
    width: 122rem;
    margin-inline: auto;
    padding-left: 3rem;
  }
}
.page-company .company-history .lower-section-heading__label {
  margin-bottom: 0.5rem;
  padding: 0;
  clip-path: none;
  color: #fff;
  background: transparent;
}
@media (min-width: 768px) {
  .page-company .company-history .lower-section-heading__label {
    min-height: 3rem;
    margin-bottom: 1rem;
  }
}
@media (min-width: 768px) {
  .page-company .company-history .lower-section-heading__title {
    font-size: 5.5rem;
    line-height: 1.4;
  }
}
.page-company .company-history__list {
  position: relative;
  margin-top: 5rem;
}
@media (min-width: 768px) {
  .page-company .company-history__list {
    width: 122rem;
    margin: 9.5rem auto 0;
  }
}
.page-company .company-history__item {
  --history-item-gap: 1.2rem;
  --history-item-padding-top: 3rem;
  --history-marker-axis-x: 2.4rem;
  --history-marker-size: 1.4rem;
  --history-time-size: 2.9rem;
  --history-marker-axis-y: calc(var(--history-item-padding-top) + var(--history-time-size) / 2);
  position: relative;
  padding: 3rem 2rem 2rem 5rem;
  background: #2d2f31;
}
@media (min-width: 768px) {
  .page-company .company-history__item {
    --history-item-gap: 1rem;
    --history-item-padding-top: 5rem;
    --history-marker-axis-x: 9.6rem;
    --history-marker-size: 1.8rem;
    --history-time-size: 4.7rem;
    display: grid;
    grid-template-columns: 13rem minmax(0, 1fr);
    align-items: start;
    gap: 3rem;
    padding: 5rem 6rem 5rem 15.5rem;
  }
}
.page-company .company-history__item + .company-history__item {
  margin-top: var(--history-item-gap);
}
.page-company .company-history__item::before {
  position: absolute;
  top: calc(var(--history-marker-axis-y) - var(--history-marker-size) / 2);
  left: calc(var(--history-marker-axis-x) - var(--history-marker-size) / 2);
  z-index: 3;
  width: var(--history-marker-size);
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  content: "";
}
.page-company .company-history__item::after {
  position: absolute;
  top: 0;
  bottom: calc(var(--history-item-gap) * -1);
  left: calc(var(--history-marker-axis-x) - 0.1rem);
  z-index: 2;
  width: 0.2rem;
  background: #fff;
  content: "";
}
.page-company .company-history__item:first-child::after {
  top: var(--history-marker-axis-y);
}
.page-company .company-history__item:last-child::after {
  bottom: calc(100% - var(--history-marker-axis-y));
}
.page-company .company-history__item time {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: baseline;
  color: #00a7ff;
  font-family: "Anton", Impact, sans-serif;
  font-size: 2.9rem;
  line-height: 1;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .page-company .company-history__item time {
    font-size: 4.7rem;
  }
}
.page-company .company-history__item time span {
  margin-left: 0.3rem;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 2rem;
  font-weight: 800;
}
@media (min-width: 768px) {
  .page-company .company-history__item time span {
    font-size: 3rem;
  }
}
.page-company .company-history__item--milestones {
  padding-bottom: 3rem;
}
@media (min-width: 768px) {
  .page-company .company-history__item--milestones {
    padding-bottom: 3rem;
  }
}
.page-company .company-history__item--awards {
  padding-bottom: 2.5rem;
}
@media (min-width: 768px) {
  .page-company .company-history__item--awards {
    padding-bottom: 5rem;
  }
}
.page-company .company-history__item > div {
  position: relative;
  z-index: 3;
  width: 27.6rem;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .page-company .company-history__item > div {
    width: 82.6rem;
    margin-top: 0;
  }
}
.page-company .company-history__item p {
  font-size: 1.8rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .page-company .company-history__item p {
    font-size: 3rem;
    line-height: 1.8;
  }
}
.page-company .company-history__item p + p {
  margin-top: 0.5rem;
}
@media (min-width: 768px) {
  .page-company .company-history__item p + p {
    margin-top: 1rem;
  }
}
.page-company .company-history p.company-history__award-text {
  margin-top: 2rem;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .page-company .company-history p.company-history__award-text {
    margin-top: 1rem;
  }
}
.page-company .company-history__awards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .page-company .company-history__awards {
    gap: 2.5rem;
    width: 58rem;
    margin-top: 3rem;
    margin-left: 1rem;
  }
}
.page-company .company-history__awards img {
  width: 100%;
}
.page-company .company-contact {
  padding: 9rem 0;
  background: #000;
}
@media (min-width: 768px) {
  .page-company .company-contact {
    padding: 20rem 0;
  }
}

.page-hero--plans {
  height: 35rem;
  background: #fff;
}
@media (min-width: 768px) {
  .page-hero--plans {
    height: 42rem;
  }
}
.page-hero--plans .page-hero__heading {
  top: 20rem;
}
@media (min-width: 768px) {
  .page-hero--plans .page-hero__heading {
    top: 25.5rem;
  }
}
.page-hero--plans .page-hero__title {
  margin: 0;
  font-size: 3rem;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .page-hero--plans .page-hero__title {
    font-size: 4rem;
  }
}

.plan-catalog {
  padding-block-start: 9rem;
  padding-block-end: 10rem;
  color: #fff;
  background: #000;
}
@media (min-width: 768px) {
  .plan-catalog {
    padding-block-start: 20rem;
  }
}

.plan-grid {
  display: grid;
  gap: 8rem;
}
@media (min-width: 768px) {
  .plan-grid {
    width: calc(100% + 4.5rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 4.5rem;
  }
}

.plan-card__figure {
  position: relative;
  aspect-ratio: 758/470;
  overflow: hidden;
}
.plan-card__figure > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.plan-card__placeholder {
  width: 18rem;
  padding: 1.5rem 2rem;
  font-size: 2.2rem;
}
@media (min-width: 768px) {
  .plan-card__placeholder {
    width: 28rem;
    padding: 2rem 3rem;
    font-size: 4.2rem;
  }
}
.plan-card__body {
  padding-top: 4rem;
  text-align: center;
}
@media (min-width: 768px) {
  .plan-card__body {
    padding-top: 5rem;
  }
}
.plan-card__title {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .plan-card__title {
    font-size: 4rem;
  }
}
.plan-card__price {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 3rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .plan-card__price {
    gap: 3rem;
  }
}
.plan-card__price span {
  padding: 0.5rem 1rem;
  border: 0.2rem solid currentColor;
  font-size: 1.5rem;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .plan-card__price span {
    padding: 0.8rem 1.5rem;
    font-size: 2.5rem;
  }
}
.plan-card__price strong {
  font-size: 2.4rem;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .plan-card__price strong {
    font-size: 4rem;
  }
}

.post-archive {
  position: relative;
  z-index: 2;
  margin-top: -14.5rem;
  background: #fff;
}
@media (min-width: 768px) {
  .post-archive {
    margin-top: -21.5rem;
  }
}
.post-archive__pagination {
  display: grid;
  grid-template-columns: repeat(6, 4rem);
  margin-top: 11rem;
  column-gap: 1rem;
  row-gap: 2rem;
}
@media (min-width: 768px) {
  .post-archive__pagination {
    display: flex;
    margin-top: 18rem;
  }
}
.post-archive__pagination .archive-pagination__arrow {
  background: url("../img/svg/icon/ui/square-chevron-yellow-next-pc.svg") center/contain no-repeat;
}
.post-archive__pagination .archive-pagination__arrow--prev {
  transform: rotate(180deg);
}
.post-archive__empty {
  margin-top: 8rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}
@media (min-width: 768px) {
  .post-archive__empty {
    margin-top: 12rem;
    font-size: 2.4rem;
  }
}

.page-hero--archive .page-hero__breadcrumb {
  top: 34.6rem;
}
@media (min-width: 768px) {
  .page-hero--archive .page-hero__breadcrumb {
    top: 56.8rem;
  }
}

.post-tabs {
  position: relative;
  display: grid;
  width: calc(100% + 2.2rem);
  margin-left: -1.15rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  background: #e2e2e2;
}
@media (min-width: 768px) {
  .post-tabs {
    width: auto;
    margin-left: 0;
  }
}
.post-tabs::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 0.1rem;
  background: #a3a3a3;
  content: "";
  pointer-events: none;
}
.post-tabs__item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.6rem;
  padding: 1.2rem 2rem 1rem;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
}
@media (min-width: 768px) {
  .post-tabs__item {
    min-height: 10.5rem;
    padding: 2rem 3rem 1.5rem;
    font-size: 2.4rem;
  }
}
.post-tabs__item.is-active {
  border-inline: 0.1rem solid #a3a3a3;
  background: #fff;
}
.post-tabs__item.is-active::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 0.7rem;
  background: #173b78;
  content: "";
}
@media (min-width: 768px) {
  .post-tabs__item.is-active::before {
    height: 1.2rem;
  }
}

.post-grid {
  display: grid;
  gap: 6rem;
  margin-top: 10rem;
}
@media (min-width: 768px) {
  .post-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 3rem;
    row-gap: 8rem;
    margin-top: 16rem;
  }
}

.post-card[hidden] {
  display: none;
}
.post-card__link {
  display: block;
}
.post-card__image {
  position: relative;
  display: block;
  aspect-ratio: 358/207;
  overflow: hidden;
}
.post-card__image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.post-card__placeholder {
  width: 26.8rem;
  height: 11.1rem;
  font-size: 2.5rem;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .post-card__placeholder {
    width: 35.3rem;
    height: 14.6rem;
    font-size: 4.2rem;
  }
}
.post-card__date {
  display: block;
  margin-top: 4rem;
  font-family: "Anton", Impact, sans-serif;
  font-size: 1.7rem;
  font-weight: 400;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .post-card__date {
    margin-top: 6rem;
    font-size: 2.5rem;
  }
}
.post-card__title {
  --hover-underline-max-lines: 2;
  display: -webkit-box;
  margin-top: 0.5rem;
  overflow: hidden;
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1.8;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (min-width: 768px) {
  .post-card__title {
    --hover-underline-max-lines: 3;
    font-size: 2.8rem;
    line-height: 1.6;
    -webkit-line-clamp: 3;
  }
}
.post-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 4rem;
}
@media (min-width: 768px) {
  .post-card__meta {
    margin-top: 6rem;
  }
}
.post-card__meta .post-card__date {
  margin-top: 0;
}
.post-card__category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 9.5rem;
  padding: 0.5rem 1rem;
  color: #fff;
  background: #173b78;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}
@media (min-width: 768px) {
  .post-card__category {
    min-width: 14.4rem;
    padding: 0.8rem 2rem;
    font-size: 1.8rem;
  }
}

.post-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 1rem;
  margin-top: 6rem;
}
@media (min-width: 768px) {
  .post-filters {
    max-width: 126rem;
    gap: 2rem;
    margin: 10rem auto 0;
  }
}
.post-filters__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 4.3rem;
  padding: 0 1.5rem;
  border: 0.2rem solid #000;
  border-radius: 2.7rem;
  background: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.7;
  transition: color 0.25s, background-color 0.25s, border-color 0.25s;
}
@media (min-width: 768px) {
  .post-filters__button {
    height: 5.3rem;
    padding-inline: 2.5rem;
    font-size: 2.4rem;
  }
}
.post-filters__button.is-active {
  border-color: transparent;
  color: #fff;
  background: #173b78;
}
.post-filters__button:focus-visible {
  outline: 0.3rem solid #fff500;
  outline-offset: 0.3rem;
}
.post-filters__button[data-filter=all] {
  flex-basis: 8.6rem;
}
@media (min-width: 768px) {
  .post-filters__button[data-filter=all] {
    flex-basis: 14.8rem;
  }
}
.post-filters__button[data-filter=exterior-paint], .post-filters__button[data-filter=sheet-metal] {
  flex-basis: 10.4rem;
}
@media (min-width: 768px) {
  .post-filters__button[data-filter=exterior-paint], .post-filters__button[data-filter=sheet-metal] {
    flex-basis: 17.4rem;
  }
}
.post-filters__button[data-filter=exterior-cover], .post-filters__button[data-filter=roof-cover] {
  flex-basis: 12rem;
}
@media (min-width: 768px) {
  .post-filters__button[data-filter=exterior-cover], .post-filters__button[data-filter=roof-cover] {
    flex-basis: 19.8rem;
  }
}
.post-filters__button[data-filter=siding] {
  flex-basis: 16.7rem;
}
@media (min-width: 768px) {
  .post-filters__button[data-filter=siding] {
    flex-basis: 26.8rem;
  }
}
.post-filters__button[data-filter=sealing] {
  flex-basis: 15.2rem;
}
@media (min-width: 768px) {
  .post-filters__button[data-filter=sealing] {
    flex-basis: 24.6rem;
  }
}
@media (hover: hover) {
  .post-filters__button:hover {
    border-color: #173b78;
  }
}

.page-hero--post-detail {
  height: 69.5rem;
}
@media (min-width: 768px) {
  .page-hero--post-detail {
    height: 143rem;
  }
}

.page-hero--post-detail .page-hero__heading,
.page-hero--works-detail .page-hero__heading {
  top: 16.5rem;
}
@media (min-width: 768px) {
  .page-hero--post-detail .page-hero__heading,
  .page-hero--works-detail .page-hero__heading {
    top: 29.5rem;
  }
}
.page-hero--post-detail .page-hero__breadcrumb,
.page-hero--works-detail .page-hero__breadcrumb {
  top: 34.5rem;
  flex-wrap: wrap;
  row-gap: 1rem;
}
@media (min-width: 768px) {
  .page-hero--post-detail .page-hero__breadcrumb,
  .page-hero--works-detail .page-hero__breadcrumb {
    top: 56.8rem;
    flex-wrap: nowrap;
  }
}
.page-hero--post-detail .page-hero__media,
.page-hero--works-detail .page-hero__media {
  top: 49.5rem;
  left: 50%;
  width: calc(100% - 7.2rem);
  height: auto;
  aspect-ratio: 358/202;
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  .page-hero--post-detail .page-hero__media,
  .page-hero--works-detail .page-hero__media {
    top: 75.5rem;
    width: 120rem;
    max-width: calc(100% - 28rem);
    aspect-ratio: 1200/676;
  }
}

.post-detail__breadcrumb-current {
  display: inline-flex;
  flex-basis: 100%;
  align-items: center;
  justify-content: flex-end;
  gap: 1.7rem;
  text-align: right;
}
@media (min-width: 768px) {
  .post-detail__breadcrumb-current {
    flex-basis: auto;
    gap: 2.5rem;
  }
}

.post-detail__date {
  display: block;
  font-family: "Anton", Impact, sans-serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
}

.post-detail__title {
  margin-top: 1rem;
  font-size: 3rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .post-detail__title {
    font-size: 6rem;
    line-height: 1.6;
  }
}

.post-detail__hero-image {
  position: absolute;
  overflow: hidden;
}
.post-detail__hero-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.post-detail {
  padding-top: 4rem;
  background: #fff;
}

.post-content {
  width: calc(100% - 7.2rem);
  margin-inline: auto;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .post-content {
    width: 120rem;
    max-width: calc(100% - 28rem);
    font-size: 2.5rem;
  }
}
.post-content p + p {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .post-content p + p {
    margin-top: 4rem;
  }
}
.post-content h2 {
  margin-top: 4rem;
  padding: 0.7rem 1.5rem 0.8rem;
  border-left: 1.3rem solid #173b78;
  color: #173b78;
  background: #dfe5f2;
  font-size: 2.7rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .post-content h2 {
    padding: 1rem 4rem;
    border-left-width: 2.5rem;
    font-size: 4rem;
    line-height: 1.6;
  }
}
.post-content h3 {
  position: relative;
  margin-top: 5rem;
  padding-left: 3.5rem;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .post-content h3 {
    margin-top: 4rem;
    padding-left: 5rem;
    font-size: 3.5rem;
    line-height: 1.6;
  }
}
.post-content h3::before {
  position: absolute;
  top: 0.2rem;
  left: 0;
  width: 2.5rem;
  aspect-ratio: 1;
  background: #fff500;
  content: "";
}
@media (min-width: 768px) {
  .post-content h3::before {
    top: 1rem;
    width: 3rem;
  }
}
.post-content h4 {
  margin-top: 4rem;
  font-size: 1.8rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .post-content h4 {
    font-size: 3rem;
  }
}
.post-content h4::after {
  display: block;
  width: 5rem;
  height: 0.3rem;
  margin-top: 1rem;
  background: #173b78;
  content: "";
}
@media (min-width: 768px) {
  .post-content h4::after {
    width: 7rem;
    height: 0.4rem;
    margin-top: 1.5rem;
  }
}
.post-content h2 + p,
.post-content h3 + p,
.post-content h4 + p {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .post-content h2 + p,
  .post-content h3 + p,
  .post-content h4 + p {
    margin-top: 4rem;
  }
}

.post-detail__return {
  width: 25.5rem;
  margin: 10rem auto 0;
}
@media (min-width: 768px) {
  .post-detail__return {
    width: 43rem;
    margin-top: 12rem;
  }
}

.page-hero--works-detail {
  height: 83.5rem;
}
@media (min-width: 768px) {
  .page-hero--works-detail {
    height: 158.5rem;
  }
}

.works-gallery {
  position: absolute;
  top: 51.5rem;
  left: 50%;
  width: 33rem;
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  .works-gallery {
    top: 77.5rem;
    width: 96.5rem;
  }
}
.works-gallery__viewport {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}
.works-gallery__track {
  display: flex;
}
.works-gallery__slide {
  width: 100%;
  min-width: 100%;
  scroll-snap-align: start;
}
.works-gallery__slide .works-gallery__image {
  position: relative;
  display: block;
  overflow: hidden;
}
.works-gallery__slide .works-gallery__image > img {
  width: 100%;
  aspect-ratio: 330/186;
  object-fit: cover;
}
@media (min-width: 768px) {
  .works-gallery__slide .works-gallery__image > img {
    aspect-ratio: 963/542;
  }
}
.works-gallery__slide .media-placeholder {
  width: 17rem;
  padding: 1.2rem 1.5rem;
  font-size: 1.8rem;
}
@media (min-width: 768px) {
  .works-gallery__slide .media-placeholder {
    width: 28rem;
    padding: 2rem;
    font-size: 4.2rem;
  }
}
.works-gallery__slide figcaption {
  padding-top: 2rem;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: right;
}
@media (min-width: 768px) {
  .works-gallery__slide figcaption {
    font-size: 1.8rem;
  }
}
.works-gallery__control {
  position: absolute;
  top: 7.4rem;
  z-index: 2;
  display: none;
  width: 3.5rem;
  aspect-ratio: 1;
  background: url("../img/svg/icon/ui/square-chevron-yellow-next-pc.svg") center/contain no-repeat;
}
@media (min-width: 768px) {
  .works-gallery__control {
    top: 23rem;
    width: 8.5rem;
  }
}
.works-gallery__control--prev {
  left: -1.7rem;
  transform: rotate(180deg);
}
@media (min-width: 768px) {
  .works-gallery__control--prev {
    left: -12rem;
  }
}
.works-gallery__control--next {
  right: -1.7rem;
}
@media (min-width: 768px) {
  .works-gallery__control--next {
    right: -12rem;
  }
}
.works-gallery.is-ready .works-gallery__control {
  display: block;
}
.works-gallery.is-ready .works-gallery__viewport {
  overflow: hidden;
}
.works-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 2.5rem;
}
@media (min-width: 768px) {
  .works-gallery__thumbs {
    width: 91rem;
    gap: 3rem;
    margin: 5rem auto 0;
  }
}
.works-gallery__thumbs button {
  position: relative;
  aspect-ratio: 75/42;
  overflow: hidden;
}
@media (min-width: 768px) {
  .works-gallery__thumbs button {
    aspect-ratio: 199/112;
  }
}
.works-gallery__thumbs button::after {
  position: absolute;
  inset: 0;
  border: 0.3rem solid transparent;
  content: "";
  transition: border-color 0.25s;
}
.works-gallery__thumbs button[aria-current=true]::after {
  border-color: #fff500;
}
.works-gallery__thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.works-detail {
  padding-top: 9rem;
  background: #fff;
}

.works-data {
  width: calc(100% - 7.2rem);
  margin-inline: auto;
  border-top: 0.1rem solid #adadad;
}
@media (min-width: 768px) {
  .works-data {
    width: 120rem;
    max-width: calc(100% - 28rem);
  }
}
.works-data__row {
  border-bottom: 0.1rem solid #adadad;
}
@media (min-width: 768px) {
  .works-data__row {
    display: grid;
    grid-template-columns: 26.7rem minmax(0, 1fr);
  }
}
.works-data__row dt,
.works-data__row dd {
  padding: 1rem 1.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.7;
}
@media (min-width: 768px) {
  .works-data__row dt,
  .works-data__row dd {
    padding: 1.2rem 2.5rem;
    font-size: 2.2rem;
  }
}
.works-data__row dt {
  background: #dfe5f2;
}

.detail-section-title {
  position: relative;
  padding-left: 3rem;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .detail-section-title {
    padding-left: 5rem;
    font-size: 3.5rem;
  }
}
.detail-section-title > span {
  position: absolute;
  top: 0.6rem;
  left: 0;
  width: 1.5rem;
  aspect-ratio: 1;
  background: #fff500;
}
@media (min-width: 768px) {
  .detail-section-title > span {
    top: 1.2rem;
    width: 3rem;
  }
}

.works-process,
.works-comparison {
  width: calc(100% - 7.2rem);
  margin-inline: auto;
}

.works-process {
  position: relative;
  padding-top: 9rem;
}
@media (min-width: 768px) {
  .works-process {
    width: 119.6rem;
    max-width: calc(100% - 28rem);
    padding-top: 14rem;
  }
}
.works-process__viewport {
  margin-top: 3.5rem;
  padding: 3.3rem 2.5rem;
  overflow-x: auto;
  border: 0.2rem solid #173b78;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
@media (min-width: 768px) {
  .works-process__viewport {
    margin-top: 4rem;
    padding: 5.9rem 4.5rem 16rem;
    border-width: 0.3rem;
  }
}
.works-process__track {
  display: grid;
  gap: 3.5rem;
}
@media (min-width: 768px) {
  .works-process__track {
    display: flex;
    gap: 0;
  }
}
.works-process__control {
  display: none;
}
@media (min-width: 768px) {
  .works-process__control {
    position: absolute;
    right: 5.6rem;
    bottom: 6rem;
    z-index: 2;
    width: 6.1rem;
    aspect-ratio: 1;
    background: url("../img/svg/icon/ui/square-chevron-yellow-next-pc.svg") center/contain no-repeat;
  }
}
@media (min-width: 768px) {
  .works-process__control--prev {
    right: 14.2rem;
    transform: rotate(180deg);
  }
}
.works-process__more {
  width: 100%;
  min-height: 5.6rem;
  margin: 4rem auto 0;
}
@media (min-width: 768px) {
  .works-process__more {
    display: none;
  }
}
.works-process__more[hidden] {
  display: none;
}
.works-process.is-collapsible:not(.is-expanded) .process-card:nth-child(n+4) {
  display: none;
}
@media (min-width: 768px) {
  .works-process.is-ready .works-process__control {
    display: block;
  }
}
@media (min-width: 768px) {
  .works-process.is-ready .works-process__viewport {
    overflow: hidden;
  }
}

.process-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 100%;
  padding: 0;
}
@media (min-width: 768px) {
  .process-card {
    width: auto;
    min-width: 0;
  }
}
.process-card > div {
  display: contents;
}
.process-card__image {
  position: relative;
  order: 2;
  display: block;
  margin-top: 2rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .process-card__image {
    margin-top: 3rem;
  }
}
.process-card__image > img {
  width: 100%;
  aspect-ratio: 308/173.5;
  object-fit: cover;
}
.process-card .media-placeholder {
  width: 16rem;
  padding: 1rem;
  font-size: 1.8rem;
}
@media (min-width: 768px) {
  .process-card .media-placeholder {
    width: 20rem;
    font-size: 2.5rem;
  }
}
.process-card h3 {
  order: 1;
  color: #173b78;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .process-card h3 {
    font-size: 2.5rem;
  }
}
.process-card p {
  order: 3;
  margin-top: 1.5rem;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .process-card p {
    margin-top: 2.5rem;
    font-size: 1.8rem;
  }
}

.works-comparison {
  padding-top: 6rem;
}
@media (min-width: 768px) {
  .works-comparison {
    width: 120rem;
    max-width: calc(100% - 28rem);
    padding-top: 14rem;
  }
}
.works-comparison__frame {
  margin-top: 3.5rem;
  padding: 3.3rem 2.5rem;
  border: 0.2rem solid #173b78;
}
@media (min-width: 768px) {
  .works-comparison__frame {
    margin-top: 4rem;
    padding: 4rem;
  }
}

.comparison-item + .comparison-item {
  margin-top: 5rem;
}
@media (min-width: 768px) {
  .comparison-item + .comparison-item {
    margin-top: 4rem;
  }
}
.comparison-item h3 {
  color: #173b78;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
@media (min-width: 768px) {
  .comparison-item h3 {
    font-size: 2.5rem;
  }
}
.comparison-item__images {
  display: grid;
  gap: 2.5rem;
  margin-top: 2rem;
}
@media (min-width: 768px) {
  .comparison-item__images {
    grid-template-columns: minmax(0, 1fr) 5rem minmax(0, 1fr);
    align-items: center;
    gap: 3rem;
    margin-top: 3rem;
  }
}
.comparison-item figure {
  display: flex;
  flex-direction: column;
}
.comparison-item figure .comparison-item__image {
  position: relative;
  display: block;
  overflow: hidden;
}
.comparison-item figure img {
  width: 100%;
  aspect-ratio: 308/173;
  object-fit: cover;
}
.comparison-item figure .media-placeholder {
  width: 16rem;
  padding: 1rem;
  font-size: 1.8rem;
}
.comparison-item figure figcaption {
  margin-top: 1.5rem;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.5;
}
.comparison-item__arrow {
  width: 2.9rem;
  height: 2.6rem;
  margin-inline: auto;
  background: #173b78;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media (min-width: 768px) {
  .comparison-item__arrow {
    width: 5rem;
    height: 5rem;
    background: url("../img/webp/lower/posts/works-comparison-arrow.webp") center/contain no-repeat;
    clip-path: none;
  }
}
@media (min-width: 768px) {
  .comparison-item figure figcaption {
    margin-top: 2rem;
    font-size: 1.8rem;
  }
}
@media (min-width: 768px) {
  .comparison-item figure .media-placeholder {
    width: 22rem;
    font-size: 2.8rem;
  }
}

.works-detail__text {
  padding-top: 12rem;
}

.recruit-page {
  color: #000;
}
.recruit-page .page-hero--media::before {
  background: #fff;
}
.recruit-page .page-hero > .container {
  z-index: 2;
}
.recruit-page .page-hero__media {
  z-index: 2;
}

.recruit-message {
  position: relative;
  z-index: 1;
  margin-top: -13rem;
  padding: 45rem 0 25rem;
  overflow: hidden;
  color: #fff;
  background: #00a7f4;
}
@media (min-width: 768px) {
  .recruit-message {
    margin-top: -20.5rem;
    padding: 56rem 0 62rem;
  }
}
.recruit-message__inner {
  text-align: center;
}
.recruit-message__word {
  position: absolute;
  top: 17rem;
  left: 50%;
  z-index: 0;
  color: transparent;
  background: linear-gradient(180deg, #fff 10%, rgba(255, 255, 255, 0.15) 78%, transparent 100%);
  background-clip: text;
  font-family: "Anton", Impact, sans-serif;
  font-size: 11.5rem;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateX(-50%);
  -webkit-background-clip: text;
}
@media (min-width: 768px) {
  .recruit-message__word {
    top: 27rem;
    font-size: 40.5rem;
  }
}
.recruit-message__photo {
  position: absolute;
  z-index: 1;
  object-fit: cover;
}
.recruit-message__photo--01 {
  top: 28rem;
  left: 2.7rem;
  width: 9.2rem;
}
@media (min-width: 768px) {
  .recruit-message__photo--01 {
    top: 56.5rem;
    left: calc(50% - 81rem);
    width: 22.5rem;
  }
}
.recruit-message__photo--02 {
  bottom: 10rem;
  left: 2.2rem;
  width: 19.5rem;
}
@media (min-width: 768px) {
  .recruit-message__photo--02 {
    bottom: 16.5rem;
    left: calc(50% - 69.5rem);
    width: 47rem;
  }
}
.recruit-message__photo--03 {
  top: 25.8rem;
  right: 2.2rem;
  width: 17.3rem;
}
@media (min-width: 768px) {
  .recruit-message__photo--03 {
    top: 52rem;
    right: calc(50% - 81rem);
    width: 42rem;
  }
}
.recruit-message__photo--04 {
  right: 3.4rem;
  bottom: 12rem;
  width: 9rem;
}
@media (min-width: 768px) {
  .recruit-message__photo--04 {
    right: calc(50% - 76rem);
    bottom: 21.5rem;
    width: 21.5rem;
  }
}
.recruit-message__title {
  position: relative;
  z-index: 2;
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .recruit-message__title {
    font-size: 5.3rem;
    line-height: 1.4;
    letter-spacing: 0.06em;
  }
}
.recruit-message__body {
  position: relative;
  z-index: 2;
  margin-top: 2.5rem;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .recruit-message__body {
    margin-top: 4rem;
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: 0.06em;
  }
}
.recruit-message__body p + p {
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .recruit-message__body p + p {
    margin-top: 6rem;
  }
}

.recruit-personality__visual {
  position: relative;
  aspect-ratio: 860/615;
  overflow: hidden;
  color: #fff;
}
@media (min-width: 768px) {
  .recruit-personality__visual {
    aspect-ratio: 3840/1448;
  }
}
.recruit-personality__picture, .recruit-personality__picture img {
  width: 100%;
  height: 100%;
}
.recruit-personality__picture img {
  object-fit: cover;
}
.recruit-personality__heading {
  position: absolute;
  top: 16rem;
  left: 0;
  right: 0;
  text-align: center;
}
@media (min-width: 768px) {
  .recruit-personality__heading {
    top: 36.5rem;
    text-align: left;
  }
}
.recruit-personality__heading h2 {
  margin-top: 1.5rem;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .recruit-personality__heading h2 {
    margin-top: 2rem;
    font-size: 5.3rem;
    line-height: 1.3;
    letter-spacing: 0.06em;
  }
}
.recruit-personality__curtain {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: none;
  grid-template-columns: repeat(4, 1fr);
  pointer-events: none;
}
@media (min-width: 768px) {
  .recruit-personality__curtain {
    grid-template-columns: repeat(6, 1fr);
  }
}
.recruit-personality__curtain span {
  background: #16181b;
  transform: scaleX(1);
  transform-origin: right;
}
.recruit-personality__curtain span:nth-child(n+5) {
  display: none;
}
@media (min-width: 768px) {
  .recruit-personality__curtain span:nth-child(n) {
    display: block;
  }
}
.recruit-personality__list {
  position: relative;
  z-index: 3;
  display: grid;
  gap: 1rem;
  margin-top: -4.5rem;
}
@media (min-width: 768px) {
  .recruit-personality__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem 3.5rem;
    margin-top: -15rem;
  }
}
.recruit-personality__item {
  padding: 2.5rem 2.7rem 2.7rem;
  background: #dfe5f2;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .recruit-personality__item {
    padding: 4rem;
    font-size: 2.5rem;
    line-height: 1.8;
  }
}
.recruit-personality__item h3 {
  margin-top: 0.4rem;
  color: #173b78;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .recruit-personality__item h3 {
    margin-top: 0.5rem;
    font-size: 3rem;
  }
}
.recruit-personality__item h3 + p {
  margin-top: 0.5rem;
}
.recruit-personality__number {
  color: #173b78;
  font-family: "Anton", Impact, sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .recruit-personality__number {
    font-size: 2.5rem;
  }
}

.is-recruit-motion-ready .recruit-personality__curtain {
  display: grid;
}
.is-recruit-motion-ready .recruit-personality__curtain span {
  transition: transform 0.4s ease-out;
}

.is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span {
  transform: scaleX(0);
}
.is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(1) {
  transition-delay: 0.15s;
}
@media (min-width: 768px) {
  .is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(1) {
    transition-delay: 0.25s;
  }
}
.is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(2) {
  transition-delay: 0.1s;
}
@media (min-width: 768px) {
  .is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(2) {
    transition-delay: 0.2s;
  }
}
.is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(3) {
  transition-delay: 0.05s;
}
@media (min-width: 768px) {
  .is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(3) {
    transition-delay: 0.15s;
  }
}
.is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(4) {
  transition-delay: 0s;
}
@media (min-width: 768px) {
  .is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(4) {
    transition-delay: 0.1s;
  }
}
@media (min-width: 768px) {
  .is-recruit-motion-ready .recruit-personality__visual.is-mask-revealed .recruit-personality__curtain span:nth-child(5) {
    transition-delay: 0.05s;
  }
}

.recruit-benefits {
  position: relative;
  padding: 17rem 0;
  overflow: hidden;
}
@media (min-width: 768px) {
  .recruit-benefits {
    padding: 16rem 0 22rem;
  }
}
.recruit-benefits__heading {
  position: relative;
  padding-top: 2rem;
}
@media (min-width: 768px) {
  .recruit-benefits__heading {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    padding-top: 7rem;
  }
}
.recruit-benefits__word {
  position: absolute;
  top: 0;
  left: -1.5rem;
  z-index: 0;
  color: #dfe5f2;
  font-family: "Anton", Impact, sans-serif;
  font-size: 9.5rem;
  font-weight: 400;
  line-height: 0.9;
  text-transform: uppercase;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .recruit-benefits__word {
    left: 0;
    font-size: 20rem;
    line-height: 0.85;
  }
}
.recruit-benefits__title-group {
  position: relative;
  z-index: 1;
  padding-left: 1.5rem;
  border-left: 0.4rem solid #173b78;
  color: #173b78;
}
@media (min-width: 768px) {
  .recruit-benefits__title-group {
    grid-column: 2;
    grid-row: 1/span 2;
    align-self: start;
    margin-top: 3rem;
    padding-left: 3rem;
    border-left-width: 0.6rem;
  }
}
.recruit-benefits__title-group p {
  font-family: "Anton", Impact, sans-serif;
  font-size: 2rem;
  line-height: 1.2;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .recruit-benefits__title-group p {
    font-size: 3rem;
  }
}
.recruit-benefits__title-group h2 {
  margin-top: 0.2rem;
  font-size: 2.7rem;
  font-weight: 800;
  line-height: 1.3;
}
@media (min-width: 768px) {
  .recruit-benefits__title-group h2 {
    margin-top: 0.5rem;
    font-size: 5.5rem;
    letter-spacing: 0.06em;
  }
}
.recruit-benefits__lead {
  position: relative;
  z-index: 1;
  margin-top: 2rem;
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .recruit-benefits__lead {
    grid-column: 2;
    margin-top: 17rem;
    font-size: 2.5rem;
    letter-spacing: 0.06em;
  }
}
.recruit-benefits__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  width: calc(100% - 0.5rem);
  margin-top: 2.5rem;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .recruit-benefits__list {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
    width: 120rem;
    margin: 5rem 0 0 auto;
  }
}
.recruit-benefits__list li {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.5rem;
  color: #fff;
  background: #0d2b5d;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .recruit-benefits__list li {
    grid-column: span 2;
    gap: 3rem;
    padding: 2.5rem 4rem;
    font-size: 3rem;
  }
}
.recruit-benefits__list li:last-child {
  grid-column: 1/-1;
  width: calc(50% - 0.25rem);
  justify-self: center;
}
@media (min-width: 768px) {
  .recruit-benefits__list li:last-child {
    grid-column: 4/span 2;
    width: auto;
  }
}
@media (min-width: 768px) {
  .recruit-benefits__list li:nth-last-child(2) {
    grid-column: 2/span 2;
  }
}
.recruit-benefits__list img {
  width: 4rem;
  max-height: 4rem;
  flex: none;
  object-fit: contain;
}
@media (min-width: 768px) {
  .recruit-benefits__list img {
    width: 6.5rem;
    max-height: 6.5rem;
  }
}

.recruit-jobs {
  position: relative;
  padding: 14rem 0;
  overflow: hidden;
  background: #dfe5f2;
}
@media (min-width: 768px) {
  .recruit-jobs {
    padding: 15rem 0 20rem;
  }
}
.recruit-jobs > .container {
  width: calc(100% - 4.4rem);
}
@media (min-width: 768px) {
  .recruit-jobs > .container {
    width: 151.5rem;
  }
}
.recruit-jobs__heading {
  position: relative;
  z-index: 1;
  margin-bottom: 5rem;
  text-align: center;
}
@media (min-width: 768px) {
  .recruit-jobs__heading {
    margin-bottom: 10rem;
  }
}
.recruit-jobs__heading .en-band {
  position: relative;
  z-index: 1;
}
.recruit-jobs__heading h2 {
  position: relative;
  z-index: 1;
  margin-top: 1rem;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .recruit-jobs__heading h2 {
    margin-top: 2rem;
    font-size: 5.3rem;
    line-height: 1.3;
  }
}
.recruit-jobs__word {
  position: absolute;
  top: -4.5rem;
  left: 50%;
  z-index: 0;
  color: rgba(23, 59, 120, 0.08);
  font-family: "Anton", Impact, sans-serif;
  font-size: 9rem;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  .recruit-jobs__word {
    top: -7rem;
    font-size: 22rem;
  }
}
.recruit-jobs__list {
  display: grid;
  gap: 2rem;
}
@media (min-width: 768px) {
  .recruit-jobs__list {
    width: 126rem;
    margin-inline: auto;
  }
}
.recruit-jobs__apply {
  width: 25.5rem;
  margin: 6rem auto 0;
}
@media (min-width: 768px) {
  .recruit-jobs__apply {
    width: 42rem;
    margin-top: 10rem;
  }
}

.recruit-job {
  padding: 2.5rem 2rem 3rem;
  background: #fff;
}
@media (min-width: 768px) {
  .recruit-job {
    padding: 5rem 10rem 6rem;
  }
}
.recruit-job__heading {
  border-bottom: 0.2rem solid #173b78;
}
.recruit-job__heading button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  width: 100%;
  padding: 0 0 2rem;
  color: #173b78;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.5;
  text-align: left;
}
@media (min-width: 768px) {
  .recruit-job__heading button {
    padding-bottom: 3rem;
    font-size: 3.5rem;
    line-height: 1.3;
  }
}
.recruit-job__control {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  flex: none;
  color: #173b78;
  font-family: "Anton", Impact, sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .recruit-job__control {
    gap: 2rem;
    font-size: 2.8rem;
  }
}
.recruit-job__icon {
  position: relative;
  width: 2rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #000;
}
@media (min-width: 768px) {
  .recruit-job__icon {
    width: 2.8rem;
  }
}
.recruit-job__icon::before, .recruit-job__icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1rem;
  height: 0.2rem;
  background: #fff;
  content: "";
  transition: transform 0.25s ease;
}
.recruit-job__icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.recruit-job__icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.recruit-job:not(.is-open) .recruit-job__icon::before {
  transform: translate(-50%, -50%);
}
.recruit-job:not(.is-open) .recruit-job__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.recruit-job__panel {
  overflow: hidden;
}
.recruit-job__summary {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  padding: 2.5rem 0 3rem;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .recruit-job__summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38rem;
    gap: 8rem;
    align-items: start;
    padding: 4rem 0;
    font-size: 2.3rem;
    line-height: 1.7;
  }
}
.recruit-job__summary img {
  order: -1;
  width: 100%;
}
@media (min-width: 768px) {
  .recruit-job__summary img {
    order: initial;
  }
}
.recruit-job__details > div {
  padding: 2rem 0;
  border-bottom: 0.1rem solid #9a9a9a;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.7;
}
@media (min-width: 768px) {
  .recruit-job__details > div {
    position: relative;
    display: grid;
    grid-template-columns: 30rem minmax(0, 1fr);
    gap: 3rem;
    padding: 2.5rem 2rem;
    border-bottom-width: 0.2rem;
    font-size: 2.4rem;
    line-height: 1.6;
  }
}
@media (min-width: 768px) {
  .recruit-job__details > div::after {
    position: absolute;
    bottom: -0.2rem;
    left: 0;
    width: 30rem;
    height: 0.3rem;
    background: #173b78;
    content: "";
  }
}
.recruit-job__details dt {
  margin-bottom: 0.8rem;
  color: #173b78;
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .recruit-job__details dt {
    margin-bottom: 0;
    font-size: 2.5rem;
    line-height: 1.6;
  }
}

.is-recruit-accordion-ready .recruit-job__panel {
  transition: height 0.35s ease;
}

.recruit-entry {
  position: relative;
  padding-block-start: 9rem;
  padding-block-end: 10rem;
  color: #fff;
  background: linear-gradient(135deg, #000b71 0%, #2c81c6 100%);
}
@media (min-width: 768px) {
  .recruit-entry {
    padding-block-start: 20rem;
    padding-block-end: 20rem;
  }
}
.recruit-entry__heading {
  position: relative;
  text-align: center;
}
.recruit-entry__heading p {
  position: absolute;
  top: 50%;
  left: 50%;
  color: rgba(255, 255, 255, 0.12);
  font-family: "Anton", Impact, sans-serif;
  font-size: 9rem;
  line-height: 1;
  text-transform: uppercase;
  transform: translate(-50%, -50%);
}
@media (min-width: 768px) {
  .recruit-entry__heading p {
    font-size: 22rem;
  }
}
.recruit-entry__heading h2 {
  position: relative;
  z-index: 1;
  font-size: 2.7rem;
  font-weight: 800;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .recruit-entry__heading h2 {
    font-size: 5.3rem;
    line-height: 1.9;
    letter-spacing: 0.06em;
  }
}
.recruit-entry__intro {
  margin-top: 2rem;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.8;
  text-align: center;
}
@media (min-width: 768px) {
  .recruit-entry__intro {
    margin-top: 3rem;
    font-size: 2.5rem;
    letter-spacing: 0.06em;
  }
}

.recruit-form {
  width: calc(100% + 1.8rem);
  margin: 7rem -0.9rem 0;
  padding: 7rem 2.5rem 8rem;
  color: #000;
  background: #fff;
}
@media (min-width: 768px) {
  .recruit-form {
    width: 135rem;
    margin: 12rem auto 0;
    padding: 11rem 12rem;
  }
}
.recruit-form__fields {
  display: grid;
  gap: 2.5rem;
}
@media (min-width: 768px) {
  .recruit-form__fields {
    gap: 4rem;
  }
}
.recruit-form__row {
  display: grid;
  gap: 1rem;
}
@media (min-width: 768px) {
  .recruit-form__row {
    grid-template-columns: 30rem minmax(0, 1fr);
    gap: 8rem;
    align-items: center;
  }
}
.recruit-form__row > label,
.recruit-form__row > .recruit-form__label {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  width: fit-content;
  color: #173b78;
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .recruit-form__row > label,
  .recruit-form__row > .recruit-form__label {
    font-size: 2.5rem;
  }
}
.recruit-form__row > label span,
.recruit-form__row > .recruit-form__label span {
  padding: 0.3rem 0.7rem;
  color: #fff;
  background: #dc000c;
  font-size: 1.2rem;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .recruit-form__row > label span,
  .recruit-form__row > .recruit-form__label span {
    padding: 0.5rem 1rem;
    font-size: 1.8rem;
  }
}
.recruit-form__row input:not([type=file]),
.recruit-form__row select {
  width: 100%;
  height: 5.2rem;
  padding: 1rem 1.5rem;
  border: 0.1rem solid #999;
  border-radius: 0;
  background: #fff;
  font: inherit;
  font-size: 1.5rem;
  font-weight: 600;
}
@media (min-width: 768px) {
  .recruit-form__row input:not([type=file]),
  .recruit-form__row select {
    height: 6.5rem;
    padding: 1.5rem 2.5rem;
    font-size: 1.8rem;
  }
}
.recruit-form__row select {
  appearance: auto;
}
.recruit-form__row textarea {
  width: 100%;
  height: 32rem;
  padding: 1.5rem;
  border: 0.1rem solid #999;
  border-radius: 0;
  resize: vertical;
  font: inherit;
  font-size: 1.5rem;
  font-weight: 600;
}
@media (min-width: 768px) {
  .recruit-form__row textarea {
    height: 25rem;
    padding: 2.5rem;
    font-size: 1.8rem;
  }
}
@media (min-width: 768px) {
  .recruit-form__row--textarea {
    align-items: start;
  }
}
@media (min-width: 768px) {
  .recruit-form__row--file {
    align-items: center;
  }
}
.recruit-form__file {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 1.6rem;
  font-weight: 600;
}
@media (min-width: 768px) {
  .recruit-form__file {
    gap: 2rem;
    font-size: 1.8rem;
  }
}
.recruit-form__file label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 10.5rem;
  height: 4.4rem;
  flex: none;
  color: #fff;
  background: #000;
  font-size: 1.5rem;
  cursor: pointer;
}
@media (min-width: 768px) {
  .recruit-form__file label {
    width: 19rem;
    height: 5rem;
  }
}
.recruit-form__file input:focus-visible + label {
  outline: 0.3rem solid #173b78;
  outline-offset: 0.3rem;
}
.recruit-form__submit {
  margin-top: 4rem;
  padding-top: 4rem;
  border-top: 0.2rem solid rgba(23, 59, 120, 0.45);
}
@media (min-width: 768px) {
  .recruit-form__submit {
    margin-top: 5rem;
    padding-top: 5rem;
  }
}
.recruit-form__submit .button {
  width: 24rem;
  margin: 3rem auto 0;
}
@media (min-width: 768px) {
  .recruit-form__submit .button {
    width: 42rem;
    margin-top: 4rem;
  }
}
.recruit-form__confirm {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  width: fit-content;
  margin-inline: auto;
  padding-block: 1.2rem;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.5;
  cursor: pointer;
}
@media (min-width: 768px) {
  .recruit-form__confirm {
    gap: 2rem;
    font-size: 2.4rem;
  }
}
.recruit-form__confirm input {
  width: 1.8rem;
  height: 1.8rem;
  flex: none;
  accent-color: #173b78;
}
@media (min-width: 768px) {
  .recruit-form__confirm input {
    width: 2.5rem;
    height: 2.5rem;
  }
}
.recruit-form__status {
  margin-top: 2rem;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}
@media (min-width: 768px) {
  .recruit-form__status {
    font-size: 1.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .post-filters__button,
  .works-gallery__thumbs button::after {
    transition-duration: 0.01ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  .recruit-personality__curtain {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .recruit-job__panel {
    transition: none !important;
  }
}

/*# sourceMappingURL=style.css.map */
