:root {
  --header-height: clamp(56px, 4.4vw, 74px);
}

@media (max-width: 1024px) {
  :root {
    --header-height: clamp(84px, 22.39vw, 88px);
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: "Lato", "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #333333;
  background-color: #ffffff;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

.section-heading {
  display: contents;
}

ul,
ol {
  list-style: none;
}

.l-container {
  max-width: 1680px;
  margin: 0 auto;
  padding: 0 40px;
}

.l-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.l-partners-faq {
  position: relative;
  overflow: hidden;
}
.l-partners-faq__partners {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: auto;
  pointer-events: none;
}
.l-partners-faq__faq {
  position: absolute;
  top: 0;
  left: 0;
  width: 47.0238095238vw;
  height: auto;
  pointer-events: none;
}

.is-sp {
  display: none !important;
}

@media (max-width: 1024px) {
  .is-pc {
    display: none !important;
  }
  .is-sp {
    display: revert !important;
  }
  .l-container {
    padding: 0 clamp(16px, 4.07vw, 32px);
  }
  .l-partners-faq__partners {
    width: 100%;
    top: -16.5333333333vw;
  }
  .l-partners-faq__faq {
    width: 100%;
    bottom: -3.7333333333vw;
  }
}
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  height: var(--header-height);
  transition: background-color 0.3s ease;
}
.header--light .header__logo-img--white {
  display: none;
}
.header--light .header__logo-img--dark {
  display: block;
}
.header--light .header__nav-item {
  color: #0052a5;
}
.header__inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: min(1.25vw, 21px) min(4.7619047619vw, 80px) 0 min(1.4285714286vw, 24px);
}
.header__logo {
  display: block;
  width: clamp(60px, 5.71vw, 96px);
}
.header__logo-img {
  width: 100%;
  height: auto;
}
.header__logo-img--dark {
  display: none;
}
.header__nav {
  display: flex;
  gap: min(3.5714285714vw, 60px);
  align-items: center;
}
.header__nav-item {
  font-family: pressio-compressed, sans-serif;
  font-size: min(1.9047619048vw, 32px);
  font-weight: 600;
  color: #ffffff;
  cursor: pointer;
  white-space: nowrap;
}
.header__nav-item:hover {
  opacity: 0.8;
}

.header__nav__sp {
  display: flex;
  flex-direction: column;
  left: 0;
  top: 0;
  position: absolute;
  padding: 88px 20px 40px;
  justify-content: space-between;
  height: 100%;
  width: 100%;
}
.header__nav__sp nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.header__nav__sp__wrapper {
  position: fixed;
  top: 0;
  right: -84%;
  transition: transform 0.3s ease;
  height: 100dvh;
  width: 83.4605597964%;
  background-color: #0052a5;
  z-index: 102;
}
.header__nav__sp__wrapper.is-active {
  transform: translateX(-100%);
}

.hamburger__menu__deco {
  position: absolute;
  width: 100%;
  top: 0;
  right: 0;
  mix-blend-mode: multiply;
}
.hamburger__menu__deco img {
  width: 100%;
}

body:has(.js-hamburger.is-active) {
  overflow: hidden;
}

.header:has(.js-hamburger.is-active)::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 101;
}

.header__nav-item-sp {
  font-family: pressio-compressed, sans-serif, "Noto Sans JP", sans-serif;
  color: #ffffff;
  font-size: 50px;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
}

.header__nav__hamburger {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 103;
  width: 48px;
  height: 48px;
  background-color: #ffffff;
  border-radius: 50%;
  border: none;
  border: 1px solid #0052a5;
}
.header__nav__hamburger::before {
  position: absolute;
  content: "";
  width: 20px;
  height: 2.5px;
  background-color: #0052a5;
  border-radius: 2px;
  left: 50%;
  transform: translateX(-50%);
  top: 20px;
  transition: transform 0.3s ease, top 0.3s ease;
}
.header__nav__hamburger::after {
  position: absolute;
  content: "";
  width: 20px;
  height: 2.5px;
  background-color: #0052a5;
  border-radius: 2px;
  left: 50%;
  transform: translateX(-50%);
  top: 26px;
  transition: transform 0.3s ease, top 0.3s ease;
}

.header__inner:has(.js-hamburger.is-active) .header__nav__hamburger::before {
  top: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.header__inner:has(.js-hamburger.is-active) .header__nav__hamburger::after {
  top: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(-45deg);
}

.header__nav__sp-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 16px;
  border-radius: 588.288px;
  background: #ffffff;
  color: #0052a5;
  font-size: 16px;
  font-weight: 900;
  line-height: 2;
  margin-bottom: 32px;
}

.header__nav__sp-contact-icon {
  width: 40px;
}

.header__nav__sp-contact-arrow {
  width: 24px;
}

.header__nav__sp-links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 42px;
}

.header__nav__sp-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: underline;
  text-decoration-thickness: 5%;
  text-underline-offset: 18%;
  text-underline-position: from-font;
}
.header__nav__sp-link[target=_blank]::after {
  content: "";
  display: block;
  flex-shrink: 0;
  background: transparent url(../img/ex-link.svg) no-repeat center center/contain;
  width: 12px;
  height: 12px;
  transform: translateY(3px);
}

@media (max-width: 1024px) {
  .header__inner {
    padding: 0 min(5.0890585242vw, 20px);
  }
  .header__logo {
    width: 77px;
  }
}
.hero {
  position: relative;
  height: min(41.6666666667vw, 700px);
  overflow: hidden;
  margin-top: calc(-1 * var(--header-height));
}
.hero__swiper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero__slide {
  position: relative;
  overflow: hidden;
}
.hero__slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: end;
  color: #ffffff;
  z-index: 1;
  padding: 60px;
  pointer-events: none;
}
.hero__heading {
  font-size: clamp(48px, 4.76vw, 80px);
  font-weight: 900;
  line-height: 1.8;
  letter-spacing: -0.02em;
}
.hero__heading img {
  display: inline-block;
  height: clamp(72px, 8.57vw, 144px);
  width: auto;
  vertical-align: sub;
}
.hero__heading span {
  margin-right: 8px;
}
.hero__subtext {
  font-size: clamp(16px, 1.19vw, 20px);
  font-weight: 700;
  line-height: 1.6;
  max-width: 75%;
}
.hero__subtext br {
  display: block;
}
.hero__pagination {
  position: absolute !important;
  bottom: 58px !important;
  right: 50px !important;
  left: auto !important;
  width: auto !important;
  text-align: right;
  z-index: 10;
}
.hero__pagination .swiper-pagination-bullet {
  width: clamp(4px, 0.36vw, 6px);
  height: clamp(4px, 0.36vw, 6px);
  background: #fff;
  border: 2px solid #ffffff;
  opacity: 1;
  margin: 0 15px !important;
}
.hero__pagination .swiper-pagination-bullet-active {
  background: #ffffff;
  outline: 1px solid rgba(255, 255, 255, 0.5);
  outline-offset: 5px;
}

@media (max-width: 1024px) {
  .hero {
    height: 100svh;
    min-height: 550px;
    max-height: 700px;
  }
  .hero__content {
    padding: 20px 16px 55px;
  }
  .hero__heading {
    font-size: clamp(26px, 6.9vw, 62px);
    margin-bottom: 2px;
    line-height: 2;
    letter-spacing: -0.931px;
  }
  .hero__heading img {
    height: clamp(56px, 14.2vw, 112px);
  }
  .hero__heading span {
    margin-right: 3px;
  }
  .hero__subtext {
    font-size: clamp(14px, 2.73vw, 28px);
    max-width: 100%;
  }
  .hero__pagination {
    bottom: 16px !important;
    right: 16px !important;
  }
  .hero__pagination .swiper-pagination-bullet {
    margin: 0 8px !important;
  }
}
.numbers {
  background-color: #ffffff;
  padding: 120px 0;
  position: relative;
  overflow: hidden;
}
.numbers__deco-top {
  position: absolute;
  left: 0;
  top: 0;
  width: 100vw;
  height: auto;
  pointer-events: none;
}
.numbers__deco-bottom {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 57.5595238095vw;
  height: auto;
  pointer-events: none;
}
.numbers__container {
  padding: 0 min(4.7619047619vw, 80px);
}
.numbers__head {
  display: flex;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 60px;
  position: relative;
}
.numbers__title-img {
  width: min(33.5714285714vw, 564px);
  height: auto;
  flex-shrink: 0;
}
.numbers__head-text {
  padding-bottom: 4px;
  color: #0052a5;
}
.numbers__head-catch {
  font-size: 28px;
  font-weight: 900;
  line-height: 1.4;
  margin-bottom: 8px;
}
.numbers__head-note {
  font-size: 16px;
  line-height: 1.4;
}
.numbers__body {
  display: flex;
  gap: 40px;
}
.numbers__map-panel {
  position: relative;
  width: 65.8%;
  aspect-ratio: 1000/738;
  height: auto;
  flex-shrink: 0;
  align-self: flex-start;
  border: 1px solid #0052a5;
  overflow: hidden;
  container-type: inline-size;
  background-color: #ffffff;
}
.numbers__franchise {
  position: absolute;
  left: 0;
  top: 0;
  background-color: #0052a5;
  overflow: hidden;
  z-index: 2;
  padding: 1.6666666667vw 2.7976190476vw 1.6666666667vw 1.9047619048vw;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: #ffffff;
}
.numbers__franchise-bg {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 11.0119047619vw;
  height: auto;
  pointer-events: none;
}
.numbers__stat-bg {
  position: absolute;
  right: 1vw;
  bottom: 0;
  height: auto;
  pointer-events: none;
}
.numbers__stat-bg--teams {
  width: 12.2619047619vw;
}
.numbers__stat-bg--games {
  width: 11.7261904762vw;
}
.numbers__franchise-title {
  font-size: 1.9047619048vw;
  font-weight: 900;
  line-height: 1.4;
  margin-bottom: 0.4761904762vw;
}
.numbers__franchise-note {
  font-size: 0.9523809524vw;
  line-height: 1.6;
  margin-bottom: 60px;
}
.numbers__franchise-bottom {
  display: flex;
  align-items: baseline;
  gap: 0.119047619vw;
}
.numbers__map-img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 90%;
  z-index: 1;
  transform: translate(-50%, -50%);
  object-fit: contain;
}
.numbers__team {
  position: absolute;
  z-index: 3;
  color: #0052a5;
  text-align: left;
}
.numbers__team-name {
  font-size: 1.8cqi;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}
.numbers__team-pop {
  display: flex;
  align-items: baseline;
  gap: 0.119047619vw;
}
.numbers__team-num {
  font-family: pressio-compressed, sans-serif;
  font-size: 8cqi;
  font-weight: 600;
  line-height: 0.8;
}
.numbers__team-unit {
  font-size: 1.8cqi;
  font-weight: 700;
}
.numbers__team--hokkaido {
  left: 61%;
  top: 3.2%;
}
.numbers__team--tohoku {
  left: 58.9%;
  top: 28%;
}
.numbers__team--saitama {
  left: 52%;
  top: 49.25%;
}
.numbers__team--chiba {
  left: 83.8%;
  top: 56%;
}
.numbers__team--orix {
  right: 36%;
  top: 79.5%;
}
.numbers__team--fukuoka {
  left: 4.8%;
  top: 66.01%;
}
.numbers__stats {
  display: flex;
  flex-direction: column;
  gap: 2.380952381vw;
  flex: 1;
}
.numbers__stat {
  position: relative;
  background-color: #0052a5;
  color: #ffffff;
  flex: 1;
  overflow: hidden;
  padding: 1.6666666667vw 1.9047619048vw;
  display: flex;
  flex-direction: column;
  container-type: inline-size;
}
.numbers__stat-title {
  font-size: 1.9047619048vw;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 0.4761904762vw;
}
.numbers__stat-sub {
  font-size: 1.9047619048vw;
  font-weight: 700;
}
.numbers__stat-note {
  font-size: 0.9523809524vw;
  line-height: 1.6;
}
.numbers__stat-bottom {
  display: flex;
  align-items: baseline;
  gap: 0.5952380952vw;
  margin-top: auto;
}
.numbers__stat-annotation {
  font-size: 0.9523809524vw;
  line-height: 1.6;
  margin-top: -0.2976190476vw;
}
.numbers__stat-deco {
  position: absolute;
  right: min(0.5952380952vw, 10px);
  bottom: 0;
  width: min(12.2023809524vw, 205px);
  height: auto;
  object-fit: contain;
}
.numbers__big-num {
  font-family: pressio-compressed, sans-serif;
  font-size: 10.119047619vw;
  font-weight: 600;
  line-height: 0.75;
  letter-spacing: -0.01em;
}
.numbers__unit {
  font-size: 1.1904761905vw;
  font-weight: 700;
  padding-bottom: 0.2380952381vw;
}
.numbers__schedule {
  margin-top: 40px;
  border: 1px solid #0052a5;
  padding: 1.6071428571vw 1.7261904762vw;
  overflow: hidden;
  background-color: #ffffff;
  position: relative;
}
.numbers__schedule-head {
  margin-bottom: 1.4285714286vw;
}
.numbers__schedule-title {
  font-size: 1.9047619048vw;
  font-weight: 900;
  color: #0052a5;
  line-height: 1.4;
  margin-bottom: 0.4761904762vw;
}
.numbers__schedule-desc {
  font-size: 0.9523809524vw;
  line-height: 1.4;
  color: #0052a5;
}
.numbers__calendar img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 1024px) {
  .numbers {
    padding: 44px 0;
  }
  .numbers__container {
    padding: 0 clamp(16px, 4.07vw, 32px);
  }
  .numbers__deco-bottom {
    width: 100%;
  }
  .numbers__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 16px;
  }
  .numbers__head-text {
    padding-bottom: 0;
  }
  .numbers__title-img {
    width: 60.8142493639vw;
  }
  .numbers__head-catch {
    font-size: 4.0712468193vw;
    margin-bottom: 0;
  }
  .numbers__head-note {
    font-size: 2.5445292621vw;
  }
  .numbers__body {
    flex-direction: column;
    gap: 12px;
  }
  .numbers__map-panel {
    width: 100%;
    aspect-ratio: 361/347;
  }
  .numbers__map-img {
    width: 93%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .numbers__franchise {
    padding: 10px;
  }
  .numbers__franchise-title {
    font-size: 5.0890585242vw;
    line-height: 1.25;
    margin-bottom: 3px;
  }
  .numbers__franchise-note {
    font-size: 2.5445292621vw;
    margin-bottom: 15px;
  }
  .numbers__franchise-bottom {
    gap: 1px;
  }
  .numbers__franchise-bg {
    width: 18.320610687vw;
  }
  .numbers__stats {
    flex-direction: row;
    gap: 12px;
  }
  .numbers__stat {
    padding: 12px;
    min-height: 140px;
  }
  .numbers__stat-title {
    font-size: 5.0890585242vw;
    line-height: 1.25;
    display: flex;
    flex-direction: column;
  }
  .numbers__stat-note, .numbers__stat-annotation {
    font-size: min(2.5445292621vw, 6.7cqi);
    line-height: 1.4;
    letter-spacing: -0.06em;
    white-space: nowrap;
  }
  .numbers__stat-note {
    margin-bottom: 8px;
  }
  .numbers__stat-bottom {
    gap: 4px;
  }
  .numbers__stat-annotation {
    margin-top: 0;
  }
  .numbers__stat-bg--teams {
    width: 21.6284987277vw;
  }
  .numbers__stat-bg--games {
    width: 21.8829516539vw;
  }
  .numbers__stat-sub {
    font-size: 5.0890585242vw;
    margin-left: -3.0534351145vw;
  }
  .numbers__big-num {
    font-size: 15.2671755725vw;
  }
  .numbers__unit {
    font-size: 2.7989821883vw;
  }
  .numbers__schedule {
    margin-top: 12px;
    padding: 10px;
  }
  .numbers__schedule-title {
    font-size: 5.0890585242vw;
  }
  .numbers__schedule-desc {
    font-size: 2.5445292621vw;
  }
  .numbers__schedule-head {
    margin-bottom: 12px;
  }
  .numbers__team--fukuoka {
    left: 13.7%;
    top: 80.01%;
  }
  .numbers__team--orix {
    right: 40%;
    top: 80.11%;
  }
  .numbers__team--chiba {
    left: 82.8%;
    top: 57.4%;
  }
  .numbers__team--saitama {
    top: 34.25%;
    left: 53%;
  }
  .numbers__team--tohoku {
    left: 82.5%;
    top: 30.5%;
  }
  .numbers__team--hokkaido {
    left: 58%;
    top: 2.96%;
  }
  .numbers__team-num {
    font-family: pressio-compressed, sans-serif;
    font-size: 8.864265928cqi;
  }
  .numbers__team-name {
    font-size: 2.7700831025cqi;
  }
  .numbers__team-unit {
    font-size: 2.7700831025cqi;
  }
}
.solution {
  background-color: #0052a5;
  padding: 120px 0;
  position: relative;
}
.solution__deco-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.solution__deco {
  position: absolute;
  right: 0;
  top: 0;
  width: 68.5119047619vw;
  height: auto;
  mix-blend-mode: multiply;
}
.solution__container {
  padding: 0 min(4.7619047619vw, 80px);
}
.solution__head {
  display: flex;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 60px;
}
.solution__title-img {
  width: auto;
  height: min(11.1904761905vw, 188px);
  position: relative;
}
.solution__subtitle {
  font-size: clamp(20px, 1.67vw, 28px);
  font-weight: 900;
  color: #ffffff;
  line-height: 1.4;
  padding-bottom: 2px;
  position: relative;
}
.solution__body {
  display: flex;
  gap: min(4.7619047619vw, 80px);
  align-items: flex-start;
}
.solution__cards {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: min(2.380952381vw, 40px);
}
.solution__right {
  max-width: 616px;
  width: 36.6666666667vw;
  flex-shrink: 0;
  position: sticky;
  top: 114px;
  align-self: flex-start;
}
.solution__photo {
  width: 100%;
  overflow: hidden;
}
.solution__photo img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.solution__card-sp-img {
  display: none;
}
.solution__card {
  background-color: #0052a5;
  border: 1px solid #3375b7;
  padding: 33px;
  color: #ffffff;
  min-height: 337px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  position: relative;
  overflow: hidden;
}
.solution__card-deco {
  position: absolute;
  right: min(1.1904761905vw, 20px);
  width: min(16.5476190476vw, 278px);
  bottom: max(-0.5357142857vw, -9px);
}
.solution__card-deco.--01 {
  width: min(17.4404761905vw, 293px);
  bottom: max(-0.0595238095vw, -1px);
}
.solution__card-deco.--03 {
  width: min(17.5vw, 294px);
  bottom: max(-0.2380952381vw, -4px);
  right: min(0.5952380952vw, 10px);
}
.solution__card-title {
  font-size: clamp(22px, 1.9vw, 32px);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: -0.01em;
}
.solution__card-body {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.solution__card-row {
  display: flex;
  flex-direction: column;
  line-height: 1.6;
}
.solution__card-label {
  font-size: clamp(16px, 1.07vw, 18px);
  font-weight: 700;
}
.solution__card-text {
  font-size: clamp(14px, 0.95vw, 16px);
  font-weight: 400;
  line-height: 1.6;
}

@media (max-width: 1024px) {
  .solution {
    padding: 37px 0;
  }
  .solution__container {
    padding: 0 clamp(16px, 4.07vw, 32px);
  }
  .solution__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 14px;
  }
  .solution__title-img {
    width: auto;
    height: clamp(77px, 15.04vw, 154px);
  }
  .solution__subtitle {
    font-size: clamp(16px, 3.13vw, 32px);
  }
  .solution__body {
    flex-direction: column;
    gap: 12px;
  }
  .solution__right {
    display: none;
  }
  .solution__cards {
    gap: 12px;
  }
  .solution__deco {
    width: 100%;
  }
  .solution__card {
    min-height: auto;
    padding: 0;
    gap: 0;
  }
  .solution__card-sp-img {
    display: block;
    width: 100%;
    aspect-ratio: 361/181;
    overflow: hidden;
    flex-shrink: 0;
  }
  .solution__card-sp-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .solution__card-title {
    font-size: clamp(20px, 3.91vw, 40px);
    padding: 16px 16px 0;
  }
  .solution__card-body {
    padding: 17px 16px 16px;
    gap: 12px;
  }
  .solution__card-text {
    font-size: clamp(12px, 2.34vw, 24px);
  }
  .solution__card-deco {
    width: clamp(165px, 41.98vw, 330px);
  }
  .solution__card-deco.--01 {
    width: clamp(165px, 41.98vw, 330px);
  }
  .solution__card-deco.--03 {
    width: clamp(147px, 37.4vw, 330px);
  }
  .solution__card-label {
    font-size: clamp(14px, 3.56vw, 28px);
  }
}
.casestudy {
  background-color: #ffffff;
  padding: 120px 0;
  position: relative;
  overflow: hidden;
}
.casestudy__deco {
  position: absolute;
  right: 0;
  top: 0;
  width: 65.2976190476vw;
  height: auto;
  pointer-events: none;
}
.casestudy__container {
  padding-left: min(4.7619047619vw, 80px);
}
.casestudy__head {
  display: flex;
  align-items: flex-end;
  gap: 32px;
  margin-bottom: 65px;
}
.casestudy__title-img {
  width: auto;
  height: min(11.0119047619vw, 185px);
  flex-shrink: 0;
  position: relative;
}
.casestudy__subtitle {
  font-size: clamp(20px, 1.67vw, 28px);
  font-weight: 900;
  color: #0052a5;
  line-height: 1.4;
  padding-bottom: 2px;
  position: relative;
}
.casestudy__swiper {
  position: relative;
  overflow: visible;
  clip-path: inset(0 -9999px 0 -4.7619047619vw);
}
.casestudy__swiper .swiper-slide {
  width: min(35.8333333333vw, 602px);
  height: auto;
}
.casestudy__nav {
  position: absolute;
  top: 52%;
  right: 17.5vw;
  transform: translateY(-50%);
  z-index: 10;
  width: clamp(29px, 2.97vw, 50px);
  height: clamp(29px, 2.97vw, 50px);
  background-color: #ffffff;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4.167px 4.167px 0 rgba(0, 0, 0, 0.1);
}
.casestudy__nav img {
  width: 100%;
  height: 100%;
  display: block;
}
.casestudy__nav::after {
  display: none;
}
.casestudy__nav.swiper-button-disabled, .casestudy__nav.is-hidden {
  opacity: 0;
  pointer-events: none;
}
.casestudy__nav--prev {
  left: -1.6071428571vw;
}
.casestudy__nav--prev img {
  transform: scaleX(-1);
}
.casestudy__card {
  border: 1px solid #0052a5;
  display: flex;
  flex-direction: column;
}
.casestudy__card:not(:first-child) {
  margin-left: -1px;
}
.casestudy__card-photo {
  position: relative;
  height: clamp(240px, 23.81vw, 400px);
  flex-shrink: 0;
}
.casestudy__card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.casestudy__card-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 82, 165, 0.15);
}
.casestudy__card-tag {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateY(50%);
  background-color: #0052a5;
  color: #ffffff;
  font-size: clamp(14px, 0.95vw, 16px);
  font-weight: 700;
  padding: 4px 32px;
  line-height: 1.4;
  z-index: 1;
}
.casestudy__card-body {
  padding: 43px 32px 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  gap: 68px;
  background-color: #ffffff;
}
.casestudy__card-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  color: #0052a5;
}
.casestudy__card-company {
  font-size: clamp(22px, 1.9vw, 32px);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: -0.01em;
}
.casestudy__card-desc {
  font-size: clamp(14px, 0.95vw, 16px);
  line-height: 1.6;
}
.casestudy__card-link {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  color: #0052a5;
  text-decoration: underline;
  font-size: clamp(14px, 0.95vw, 16px);
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
}
.casestudy__card-link:hover {
  opacity: 0.8;
}
.casestudy__card-link svg,
.casestudy__card-link img {
  width: clamp(12px, 1.19vw, 20px);
  height: clamp(12px, 1.19vw, 20px);
  margin-top: 3px;
}

@media (min-width: 2623px) {
  .casestudy__nav {
    display: none;
  }
}
@media (min-width: 1681px) {
  .casestudy__nav {
    right: auto;
    left: 1218px;
  }
  .casestudy__nav--prev {
    right: auto;
    left: -26px;
  }
}
@media (max-width: 1024px) {
  .casestudy {
    padding: 39px 0;
  }
  .casestudy__deco {
    width: 100%;
  }
  .casestudy__container {
    padding-left: clamp(16px, 4.07vw, 32px);
  }
  .casestudy__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 16px;
  }
  .casestudy__title-img {
    width: auto;
    height: clamp(77px, 15.04vw, 154px);
  }
  .casestudy__subtitle {
    font-size: clamp(16px, 3.13vw, 32px);
  }
  .casestudy__swiper {
    clip-path: inset(0 -9999px 0 -15px);
  }
  .casestudy__swiper .swiper-slide {
    width: 81.6326530612vw;
  }
  .casestudy__nav {
    display: flex;
    width: 28px;
    height: 28px;
    top: 56%;
    transform: translateY(-50%);
    right: auto;
    left: calc(81.6326530612vw - 17px);
  }
  .casestudy__nav--prev {
    left: -13px;
  }
  .casestudy__card-photo {
    height: clamp(214px, 54.45vw, 428px);
  }
  .casestudy__card-company {
    font-size: clamp(20px, 3.91vw, 40px);
  }
  .casestudy__card-content {
    gap: 6px;
  }
  .casestudy__card-desc {
    font-size: clamp(12px, 2.34vw, 24px);
  }
  .casestudy__card-tag {
    padding: 4px 16px;
    font-size: clamp(14px, 3.56vw, 28px);
  }
  .casestudy__card-body {
    padding: 29px 16px 16px;
    gap: 12px;
  }
  .casestudy__card-link {
    font-size: clamp(14px, 3.56vw, 28px);
  }
  .casestudy__card-link svg,
  .casestudy__card-link img {
    width: clamp(14px, 2.73vw, 28px);
    height: clamp(14px, 2.73vw, 28px);
  }
}
.partnership {
  background-color: #0052a5;
  padding: 120px 0;
  overflow: hidden;
  position: relative;
}
.partnership__deco {
  position: absolute;
  left: 0;
  top: 0;
  width: 100vw;
  height: auto;
  pointer-events: none;
}
.partnership__container {
  padding: 0 min(4.7619047619vw, 80px);
}
.partnership__head {
  margin-bottom: 60px;
  position: relative;
}
.partnership__title-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
}
.partnership__title-img {
  width: auto;
  height: min(10.8928571429vw, 183px);
}
.partnership__menu-row {
  display: flex;
  align-items: flex-end;
  gap: 40px;
}
.partnership__menu-title-img {
  width: auto;
  height: min(10.8928571429vw, 183px);
  flex-shrink: 0;
}
.partnership__subtitle {
  font-size: clamp(20px, 1.67vw, 28px);
  font-weight: 900;
  color: #ffffff;
  line-height: 1.4;
  position: relative;
}
.partnership__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: min(2.380952381vw, 40px);
}
.partnership__item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 1/1;
}
.partnership__item::before {
  width: 100%;
  height: 5.0595238095vw;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0) 100%);
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  z-index: 2;
}
.partnership__item.--bg {
  background: #BABABA;
}
.partnership__item.--bg::before {
  display: none;
}
.partnership__item.--bg .partnership__item-content {
  background: transparent;
}
.partnership__item-bg {
  position: absolute;
  inset: 0;
}
.partnership__item-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.partnership__item-content {
  position: relative;
  z-index: 1;
  padding: min(9.5238095238vw, 160px) min(1.9047619048vw, 32px) min(1.6666666667vw, 28px);
  color: #ffffff;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.54) 50%, rgba(0, 0, 0, 0.72) 100%);
}
.partnership__item-num {
  position: absolute;
  top: min(0.9523809524vw, 16px);
  left: min(0.9523809524vw, 16px);
  font-family: pressio-compressed, sans-serif;
  font-size: clamp(60px, 4.16vw, 70px);
  font-weight: 600;
  color: #fff;
  line-height: 0.75;
  z-index: 2;
}
.partnership__item-badge {
  position: absolute;
  top: 0;
  right: 0;
  background-color: #ffffff;
  color: #0052a5;
  font-size: clamp(14px, 0.95vw, 16px);
  font-weight: 700;
  padding: 4px 24px;
  line-height: 1.4;
  z-index: 2;
}
.partnership__item-title {
  font-size: clamp(20px, 1.9vw, 32px);
  font-weight: 900;
  line-height: 1.4;
}
.partnership__item-title--large {
  font-size: clamp(24px, 1.9vw, 32px);
}
.partnership__item-sub {
  font-size: clamp(12px, 0.95vw, 16px);
  font-weight: 700;
  line-height: 1.4;
}
.partnership__item-desc {
  font-size: clamp(12px, 0.95vw, 16px);
  line-height: 1.6;
}
.partnership__cta {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.partnership__cta-note {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 16px;
  color: #ffffff;
  font-size: clamp(12px, 0.9523809524vw, 16px);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}
.partnership__cta-note::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: min(0.119047619vw, 2px);
  height: min(1.4285714286vw, 24px);
  background-color: currentColor;
  transform: rotate(-30deg);
}
.partnership__cta-note::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: min(0.119047619vw, 2px);
  height: min(1.4285714286vw, 24px);
  background-color: currentColor;
  transform: rotate(30deg);
}
.partnership__cta-btn {
  display: flex;
  align-items: center;
  gap: 100px;
  background-color: #ffffff;
  color: #0052a5;
  border-radius: 900px;
  padding: 15px 24px;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.3s, color 0.3s;
  border: 1px solid #ffffff;
}
.partnership__cta-btn:hover {
  background-color: #0052a5;
  color: #ffffff;
}
.partnership__cta-icon {
  width: min(3.6904761905vw, 62px);
  flex-shrink: 0;
  margin-right: 6px;
}
.partnership__cta-text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(22px, 1.67vw, 28px);
  font-weight: 900;
  line-height: 2;
  white-space: nowrap;
}
.partnership__cta-arrow-icon {
  height: clamp(22px, 2.14vw, 36px);
  width: auto;
  flex-shrink: 0;
  margin-left: 34px;
}

@media (max-width: 1024px) {
  .partnership {
    padding: 40px 0;
  }
  .partnership__container {
    padding: 0 clamp(16px, 4.07vw, 32px);
  }
  .partnership__head {
    margin-bottom: 17px;
  }
  .partnership__title-img {
    width: auto;
    height: clamp(77px, 15.04vw, 154px);
  }
  .partnership__cta-note {
    font-size: clamp(12px, 3.05vw, 24px);
  }
  .partnership__cta-note::before {
    width: clamp(1px, 0.25vw, 2px);
    height: clamp(12px, 3.05vw, 24px);
  }
  .partnership__cta-note::after {
    width: clamp(1px, 0.25vw, 2px);
    height: clamp(12px, 3.05vw, 24px);
  }
  .partnership__menu-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .partnership__menu-title-img {
    width: auto;
    height: clamp(77px, 15.04vw, 154px);
  }
  .partnership__subtitle {
    font-size: clamp(16px, 3.13vw, 32px);
  }
  .partnership__grid {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 12px;
  }
  .partnership__item {
    aspect-ratio: 3/2;
    position: relative;
  }
  .partnership__item::before {
    width: 100%;
    content: "";
    position: absolute;
    height: 19.3384223919vw;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0) 100%);
    top: 0;
    left: 0;
    z-index: 2;
  }
  .partnership__item-title {
    font-size: clamp(20px, 5.08vw, 40px);
  }
  .partnership__item-desc {
    font-size: clamp(12px, 3.05vw, 24px);
  }
  .partnership__item-content {
    padding: 24px 16px 12px;
  }
  .partnership__item-sub {
    font-size: clamp(12px, 3.05vw, 24px);
  }
  .partnership__item-num {
    font-size: clamp(53px, 10.35vw, 106px);
    left: min(3.0534351145vw, 12px);
    top: min(3.0534351145vw, 12px);
  }
  .partnership__item-badge {
    padding: 2px 8px;
    font-size: clamp(12px, 2.34vw, 24px);
  }
  .partnership__cta {
    margin-top: 40px;
  }
  .partnership__cta-text {
    font-size: clamp(16px, 4.07vw, 32px);
  }
  .partnership__cta-btn {
    gap: 40px;
    padding: 12px 16px;
  }
  .partnership__cta-icon {
    width: clamp(40px, 10.1vw, 80px);
  }
  .partnership__cta-arrow-icon {
    margin-left: 16px;
    width: clamp(24px, 6.1vw, 48px);
    height: clamp(24px, 6.1vw, 48px);
  }
  .partnership__cta-arrow-icon img {
    width: 100%;
  }
}
.partners {
  background-color: #ffffff;
  padding: 120px 0 0;
}
.partners__container {
  padding: 0 min(4.7619047619vw, 80px);
}
.partners__head {
  display: flex;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 60px;
}
.partners__title-img {
  height: min(10.8928571429vw, 183px);
  flex-shrink: 0;
}
.partners__subtitle {
  font-size: clamp(20px, 1.67vw, 28px);
  font-weight: 900;
  color: #0052a5;
  line-height: 1.4;
  padding-bottom: 2px;
}
.partners__logos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  grid-auto-rows: 1fr;
}
.partners__logo-item {
  aspect-ratio: 480/200;
  background-color: #ffffff;
  border: 1px solid #ddd;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  height: 100%;
}
.partners__logo-item:hover img {
  opacity: 0.6;
}
.partners__logo-item img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}
.partners__logo-item.--01 {
  padding: 1.8452380952vw 3.5714285714vw;
}
.partners__logo-item.--02 {
  padding: 3.0952380952vw 5.8333333333vw;
}
.partners__logo-item.--03 {
  padding: 0.5952380952vw 5.2380952381vw 1.1904761905vw;
}

@media (max-width: 1024px) {
  .partners {
    padding: clamp(43px, 10.94vw, 86px) 0 0;
  }
  .partners__container {
    padding: 0 clamp(16px, 4.07vw, 32px);
  }
  .partners__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 14px;
  }
  .partners__title-img {
    width: auto;
    height: clamp(77px, 15.04vw, 154px);
  }
  .partners__subtitle {
    font-size: clamp(16px, 3.13vw, 32px);
  }
  .partners__logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .partners__logo-item {
    padding: clamp(20px, 5.08vw, 40px);
    aspect-ratio: 174/112;
    overflow: hidden;
  }
  .partners__logo-item img {
    height: 100%;
    object-fit: contain;
  }
  .partners__logo-item.--01 {
    padding: clamp(20px, 5.08vw, 40px) clamp(24px, 6.1vw, 48px);
  }
}
.faq {
  padding: 169px 0 117px;
  position: relative;
  margin-top: -13px;
}
.faq__container {
  padding: 0 min(4.7619047619vw, 80px);
  display: flex;
  gap: 120px;
  align-items: flex-start;
}
.faq__aside {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
  justify-content: flex-end;
}
.faq__title-img {
  width: auto;
  height: min(12.0833333333vw, 203px);
}
.faq__aside-heading {
  font-size: clamp(20px, 1.67vw, 28px);
  font-weight: 900;
  color: #0052a5;
  line-height: 1.4;
}
.faq__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.faq__item {
  border: 1px solid #0052a5;
  overflow: hidden;
  background-color: #ffffff;
  position: relative;
}
.faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 32px;
  cursor: pointer;
  gap: 24px;
}
.faq__question-inner {
  display: flex;
  align-items: center;
  gap: 24px;
  flex: 1;
}
.faq__question-icon {
  width: clamp(29px, 2.86vw, 48px);
  height: clamp(29px, 2.86vw, 48px);
  background-color: #0052a5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #ffffff;
  font-family: "Lato";
  font-size: clamp(20px, 1.43vw, 24px);
  font-weight: 700;
  font-style: normal;
}
.faq__question-text {
  font-size: clamp(18px, 1.43vw, 24px);
  font-weight: 700;
  color: #0052a5;
  line-height: 1.5;
  letter-spacing: -0.01em;
  flex: 1;
}
.faq__question-arrow {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s ease;
}
.faq__question-arrow::after {
  content: "";
  display: block;
  width: clamp(11px, 1.07vw, 18px);
  height: clamp(11px, 1.07vw, 18px);
  border-right: 3px solid #0052a5;
  border-bottom: 3px solid #0052a5;
  transform: rotate(45deg);
}
.faq__item--open .faq__question-arrow {
  transform: rotate(180deg);
}
.faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}
.faq__answer-inner {
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 0 33px 33px;
}
.faq__answer-icon {
  width: clamp(29px, 2.86vw, 48px);
  height: clamp(29px, 2.86vw, 48px);
  border: 2px solid #0052a5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #0052a5;
  font-family: "Lato";
  font-size: clamp(20px, 1.43vw, 24px);
  font-weight: 700;
  font-style: normal;
}
.faq__answer-text {
  font-size: clamp(14px, 0.95vw, 16px);
  color: #0052a5;
  line-height: 1.6;
  flex: 1;
}
.faq__item--open .faq__answer {
  max-height: 500px;
}

@media (max-width: 1024px) {
  .faq {
    padding: clamp(61px, 12.46vw, 98px) 0 40px;
  }
  .faq__container {
    flex-direction: column;
    gap: 13px;
    padding: 0 clamp(16px, 4.07vw, 32px);
  }
  .faq__aside {
    gap: 8px;
  }
  .faq__title-img {
    width: auto;
    height: clamp(77px, 15.04vw, 154px);
    align-self: flex-start;
  }
  .faq__aside-heading {
    font-size: clamp(16px, 3.13vw, 32px);
  }
  .faq__list {
    gap: 16px;
  }
  .faq__question {
    padding: 10px;
    gap: 12px;
  }
  .faq__question-inner {
    gap: 12px;
  }
  .faq__question-icon {
    width: clamp(32px, 6.25vw, 64px);
    height: clamp(32px, 6.25vw, 64px);
    font-size: clamp(16px, 3.13vw, 32px);
    flex-shrink: 0;
  }
  .faq__question-text {
    font-size: clamp(16px, 3.13vw, 32px);
  }
  .faq__question-arrow::after {
    border-right: 2px solid #0052a5;
    border-bottom: 2px solid #0052a5;
  }
  .faq__answer-inner {
    padding: 0 10px 16px;
    gap: 12px;
  }
  .faq__answer-icon {
    width: clamp(32px, 6.25vw, 64px);
    height: clamp(32px, 6.25vw, 64px);
    font-size: clamp(16px, 3.13vw, 32px);
    flex-shrink: 0;
  }
  .faq__answer-text {
    font-size: clamp(12px, 2.34vw, 24px);
    letter-spacing: -0.04em;
  }
}
.cta {
  position: relative;
  overflow: hidden;
  height: 51.9642857143vw;
  min-height: 600px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 12.5595238095vw;
}
.cta__bg {
  position: absolute;
  inset: 0;
}
.cta__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cta__body {
  position: relative;
  z-index: 2;
  padding: 0 min(4.7619047619vw, 80px);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cta__contact-title {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 100%;
  height: auto;
  z-index: 1;
}
.cta__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(2.0833333333vw, 35px);
  width: 100%;
}
.cta__heading {
  font-size: clamp(48px, 4.76vw, 80px);
  font-weight: 900;
  color: #ffffff;
  text-align: center;
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.cta__lower {
  display: flex;
  flex-direction: column;
  gap: min(4.1666666667vw, 70px);
  align-items: center;
  width: 100%;
}
.cta__upper-content {
  display: flex;
  flex-direction: column;
  gap: min(2.9761904762vw, 50px);
  align-items: center;
  width: 100%;
}
.cta__points {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
}
.cta__points-label {
  font-family: "Lato";
  font-size: clamp(24px, 1.9vw, 32px);
  color: #ffffff;
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: 16px;
  font-weight: 700;
}
.cta__points-label-before, .cta__points-label-after {
  height: 1em;
  width: auto;
}
.cta__points-list {
  gap: 16px;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
}
.cta__point-row {
  flex-direction: row;
  display: flex;
  gap: 16px;
}
.cta__point {
  display: flex;
  align-items: center;
  gap: min(0.5952380952vw, 10px);
  background-color: #ffffff;
  padding: 16px 32px;
  color: #0052a5;
  font-size: clamp(16px, 1.07vw, 18px);
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
  justify-content: center;
  width: min(16.5476190476vw, 278px);
  min-width: 200px;
}
.cta__point-icon {
  width: clamp(15px, 1.43vw, 24px);
  height: clamp(15px, 1.43vw, 24px);
  flex-shrink: 0;
  position: relative;
}
.cta__point-icon::before {
  content: "";
  position: absolute;
  width: clamp(15px, 1.43vw, 24px);
  height: clamp(15px, 1.43vw, 24px);
  background: transparent url(../img/cta-point.svg) no-repeat center center/contain;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.cta__desc {
  font-size: clamp(16px, 1.19vw, 20px);
  font-weight: 700;
  color: #ffffff;
  text-align: center;
  line-height: 1.8;
}
.cta__btn {
  display: flex;
  align-items: center;
  gap: 100px;
  background-color: #0052a5;
  color: #ffffff;
  border-radius: 900px;
  padding: 15px 24px;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid #0052a5;
  transition: background-color 0.3s, color 0.3s;
}
.cta__btn:hover {
  background-color: #ffffff;
  color: #0052a5;
}
.cta__btn-logo {
  width: min(3.6904761905vw, 62px);
  flex-shrink: 0;
  margin-right: 6px;
}
.cta__btn-text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(22px, 1.67vw, 28px);
  font-weight: 900;
  line-height: 2;
  white-space: nowrap;
}
.cta__btn-arrow {
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0;
}
.cta__btn-arrow-icon {
  width: clamp(22px, 2.14vw, 36px);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-left: 34px;
}
.cta__btn-arrow-icon img {
  width: 100%;
  height: auto;
}

@media (max-width: 1024px) {
  .cta {
    height: auto;
    min-height: 464px;
  }
  .cta__body {
    padding: 12px 16px 44px;
  }
  .cta__heading {
    font-size: clamp(31px, 8.14vw, 64px);
  }
  .cta__content {
    gap: 10px;
  }
  .cta__upper-content {
    gap: 17px;
  }
  .cta__lower {
    gap: 20px;
  }
  .cta__points-label {
    font-size: clamp(14px, 2.73vw, 28px);
  }
  .cta__points {
    width: 100%;
    gap: 4px;
  }
  .cta__btn-arrow-icon {
    width: clamp(24px, 6.1vw, 48px);
    height: clamp(24px, 6.1vw, 48px);
    margin-left: 16px;
  }
  .cta__points-list {
    gap: 8px;
    flex-direction: column;
  }
  .cta__point-row {
    display: flex;
    gap: 8px;
  }
  .cta__contact-title {
    top: 8%;
    transform: none;
  }
  .cta__point {
    font-size: clamp(12px, 3.05vw, 24px);
    padding: 6px 12px;
    width: fit-content;
    width: clamp(162px, 41.2vw, 324px);
    gap: clamp(4px, 1.01vw, 8px);
    min-width: auto;
  }
  .cta__point-icon {
    width: clamp(14px, 3.56vw, 28px);
    height: clamp(14px, 3.56vw, 28px);
  }
  .cta__point-icon::before {
    width: clamp(14px, 3.56vw, 28px);
    height: clamp(14px, 3.56vw, 28px);
  }
  .cta__desc {
    font-size: clamp(14px, 2.73vw, 28px);
  }
  .cta__btn {
    gap: 40px;
    padding: 10px 16px;
  }
  .cta__btn-logo {
    width: clamp(40px, 10.1vw, 80px);
  }
  .cta__btn-text {
    font-size: clamp(16px, 4.07vw, 32px);
  }
}
@media (min-width: 375px) and (max-width: 392px) {
  .cta__point {
    font-size: 3.05vw;
  }
}
.footer {
  background-color: #0052a5;
  padding: 60px 0 40px;
}
.footer__inner {
  padding: 0 min(4.7619047619vw, 80px);
  display: flex;
  flex-direction: column;
  gap: 60px;
}
.footer__main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.footer__brand {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.footer__logo-area {
  display: flex;
  gap: 32px;
  align-items: center;
}
.footer__logo {
  width: min(10.7738095238vw, 181px);
  height: auto;
  flex-shrink: 0;
}
.footer__logo img {
  width: 100%;
  height: auto;
}
.footer__brand-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: #ffffff;
}
.footer__company-name {
  font-size: clamp(16px, 1.43vw, 24px);
  font-weight: 900;
  line-height: 1.4;
}
.footer__company-desc {
  font-size: clamp(13px, 0.95vw, 16px);
  line-height: 1.6;
}
.footer__address {
  display: flex;
  gap: 10px;
  color: #ffffff;
  font-size: clamp(13px, 0.95vw, 16px);
  line-height: 1.6;
}
.footer__address-icon {
  width: clamp(17px, 4.32vw, 20px);
  height: clamp(17px, 4.32vw, 20px);
  flex-shrink: 0;
  margin-top: 2px;
}
.footer__address-icon img {
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}
.footer__links {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.footer__link-row {
  display: flex;
  gap: 40px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.footer__link-row--left {
  justify-content: flex-start;
}
.footer__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #ffffff;
  text-decoration: underline;
  font-size: clamp(14px, 1.19vw, 20px);
  font-weight: 700;
  line-height: 1.6;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: 5%; /* 1px */
  text-underline-offset: 18%; /* 3.6px */
  text-underline-position: from-font;
}
.footer__link[target=_blank]::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: min(1.0714285714vw, 18px);
  height: min(1.0714285714vw, 18px);
  background: transparent url(../img/ex-link.svg) no-repeat center center/contain;
  transform: translateY(3px);
}
.footer__link:hover {
  opacity: 0.8;
}
.footer__copy {
  font-size: clamp(12px, 0.83vw, 14px);
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
  line-height: 1.6;
  font-family: "Lato";
}

@media (max-width: 1024px) {
  .footer {
    padding: 40px 0 16px;
  }
  .footer__inner {
    padding: 0 clamp(16px, 4.07vw, 32px);
    gap: 63px;
  }
  .footer__main {
    flex-direction: column;
    gap: 38px;
  }
  .footer__brand {
    width: 100%;
    gap: 24px;
  }
  .footer__logo {
    width: clamp(120px, 23.44vw, 240px);
  }
  .footer__logo-area {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
  .footer__company-name {
    font-size: clamp(20px, 3.91vw, 40px);
  }
  .footer__company-desc {
    font-size: clamp(12px, 2.34vw, 24px);
  }
  .footer__address {
    font-size: clamp(12px, 2.34vw, 24px);
  }
  .footer__links {
    gap: 16px;
  }
  .footer__link-row {
    flex-wrap: wrap;
    gap: 16px;
  }
  .footer__link {
    font-size: clamp(14px, 2.73vw, 28px);
  }
  .footer__link[target=_blank]::after {
    width: clamp(12px, 3.05vw, 24px);
    height: clamp(12px, 3.05vw, 24px);
  }
  .footer__copy {
    font-size: clamp(10px, 1.95vw, 20px);
  }
}
.floating-contact {
  position: fixed;
  right: min(2.380952381vw, 40px);
  bottom: min(3.5714285714vw, 60px);
  width: min(9.5238095238vw, 160px);
  height: min(9.5238095238vw, 160px);
  background-color: #ffffff;
  border: 1px solid #0052a5;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  padding-top: min(1.4880952381vw, 25px);
  z-index: 50;
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.floating-contact.is-hidden {
  opacity: 0;
  pointer-events: none;
}
.floating-contact:hover {
  background-color: #0052a5;
  border: 1px solid #ffffff;
}
.floating-contact:hover .floating-contact__label {
  color: #ffffff;
}
.floating-contact__icon {
  margin-bottom: min(0.9523809524vw, 16px);
}
.floating-contact__icon img {
  width: min(4.5238095238vw, 76px);
  height: auto;
  display: block;
}
.floating-contact__label {
  font-size: min(0.9523809524vw, 16px);
  font-weight: 900;
  color: #0052a5;
  line-height: 1.1;
  margin-bottom: min(0.4761904762vw, 8px);
}
.floating-contact__arrow {
  width: min(1.4285714286vw, 24px);
  height: min(1.4285714286vw, 24px);
  background-color: #0052a5;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.floating-contact__arrow img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 1024px) {
  .floating-contact {
    right: 24px;
    bottom: 24px;
    width: auto;
    height: auto;
    padding: 12.5px 15px 16.25px;
    width: 100px;
    height: 100px;
  }
  .floating-contact__icon {
    margin-bottom: 11px;
  }
  .floating-contact__icon img {
    width: 42.5px;
  }
  .floating-contact__label {
    font-size: 12px;
    margin-bottom: 6px;
    white-space: nowrap;
  }
  .floating-contact__arrow {
    width: 15px;
    height: 15px;
  }
}
