@charset "UTF-8";
:root {
  --break-xs: 375;
}

img {
  height: auto;
}

.m-grid {
  display: grid;
}

.m-grid.is-02 {
  grid-template-columns: 1fr 1fr;
}

.m-grid.is-03 {
  grid-template-columns: 1fr 1fr 1fr;
}

.m-grid.is-04 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}

.m-grid.is-jic {
  justify-items: center;
}

.m-grid.is-auto {
  grid-template-columns: repeat(auto-fit, minmax(var(--grid-width), 1fr));
}

@media only screen and (max-width: 767px) {
  .m-grid.is-sp01 {
    grid-template-columns: 1fr;
  }
  .m-grid.is-sp02 {
    grid-template-columns: 1fr 1fr;
  }
}

.m-flex {
  display: flex;
}

.m-flex.is-aic {
  align-items: center;
}

.m-flex.is-jcc {
  justify-content: center;
}

.m-flex.is-jcsb {
  justify-content: space-between;
}

.m-flex.is-jcsa {
  justify-content: space-around;
}

.m-flex.is-jcfe {
  justify-content: flex-end;
}

.m-flex.is-jcfs {
  justify-content: flex-start;
}

@media only screen and (max-width: 767px) {
  .m-flex.is-spjcfs {
    justify-content: flex-start;
  }
}

.m-flex.is-fdc {
  flex-direction: column;
}

.m-flex.is-fdcr {
  flex-direction: column-reverse;
}

.m-flex.is-fdr {
  flex-direction: row;
}

.m-flex.is-fdrr {
  flex-direction: row-reverse;
}

@media only screen and (max-width: 767px) {
  .m-flex.is-spfdc {
    flex-direction: column;
  }
}

@media only screen and (max-width: 767px) {
  .m-flex.is-spfdcr {
    flex-direction: column-reverse;
  }
}

@media only screen and (max-width: 767px) {
  .m-flex.is-spfdr {
    flex-direction: row;
  }
}

@media only screen and (max-width: 767px) {
  .m-flex.is-spfdrr {
    flex-direction: row-reverse;
  }
}

.m-flex-grid {
  display: flex;
  flex-wrap: wrap;
}

.m-flex-grid .col-1 {
  width: 8.33333%;
}

.m-flex-grid .col-2 {
  width: 16.66667%;
}

.m-flex-grid .col-3 {
  width: 25%;
}

.m-flex-grid .col-4 {
  width: 33.33333%;
}

.m-flex-grid .col-5 {
  width: 41.66667%;
}

.m-flex-grid .col-6 {
  width: 50%;
}

.m-flex-grid .col-7 {
  width: 58.33333%;
}

.m-flex-grid .col-8 {
  width: 66.66667%;
}

.m-flex-grid .col-9 {
  width: 75%;
}

.m-flex-grid .col-10 {
  width: 83.33333%;
}

.m-flex-grid .col-11 {
  width: 91.66667%;
}

.m-flex-grid .col-12 {
  width: 100%;
}

.m-flex-grid.is-gap-s {
  gap: 0.5rem;
}

.m-flex-grid.is-gap-m {
  gap: 1rem;
}

.m-flex-grid.is-gap-l {
  gap: 2rem;
}

@media only screen and (max-width: 767px) {
  .m-flex-grid .sp-col-1 {
    width: 8.33333%;
  }
  .m-flex-grid .sp-col-2 {
    width: 16.66667%;
  }
  .m-flex-grid .sp-col-3 {
    width: 25%;
  }
  .m-flex-grid .sp-col-4 {
    width: 33.33333%;
  }
  .m-flex-grid .sp-col-5 {
    width: 41.66667%;
  }
  .m-flex-grid .sp-col-6 {
    width: 50%;
  }
  .m-flex-grid .sp-col-7 {
    width: 58.33333%;
  }
  .m-flex-grid .sp-col-8 {
    width: 66.66667%;
  }
  .m-flex-grid .sp-col-9 {
    width: 75%;
  }
  .m-flex-grid .sp-col-10 {
    width: 83.33333%;
  }
  .m-flex-grid .sp-col-11 {
    width: 91.66667%;
  }
  .m-flex-grid .sp-col-12 {
    width: 100%;
  }
}

.curve-section {
  position: relative;
}

.section-inr {
  max-width: 1000px;
  margin: auto;
}

@media only screen and (max-width: 767px) {
  .section-inr {
    padding: 0 calc(5.33333vw);
  }
}

.curve-section__inr {
  position: relative;
  overflow: hidden;
  min-height: 200px;
  padding: 100px 0;
}

.curve-section__inr.is-blue {
  background: #0070CC;
}

.curve-section__inr.is-lightblue {
  background: #b3d7f5;
}

.curve-section__inr.is-lightblue2 {
  background-color: #EDF6FE;
}

.curve-section__inr.is-curve-up::before, .curve-section__inr.is-curve-down::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .curve-section__inr.is-curve-up::before, .curve-section__inr.is-curve-down::before {
    left: 50%;
    transform: translateX(-50%);
    background-position-x: center;
    background-size: 140% 100%;
    width: calc(100vw + 4vw);
    margin-left: -2vw;
    height: 14vw;
  }
}

.curve-section__inr.is-curve-up.is-curve-white::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0,80 C360,0 1080,0 1440,80 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.curve-section__inr.is-curve-up.is-curve-blue::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%230070CC' d='M0,80 C360,0 1080,0 1440,80 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.curve-section__inr.is-curve-up.is-curve-lightblue::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23b3d7f5' d='M0,80 C360,0 1080,0 1440,80 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.curve-section__inr.is-curve-up.is-curve-lightblue2::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23EDF6FE' d='M0,80 C360,0 1080,0 1440,80 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.curve-section__inr.is-curve-down.is-curve-white::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0,0 C360,80 1080,80 1440,0 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.curve-section__inr.is-curve-down.is-curve-blue::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%230070CC' d='M0,0 C360,80 1080,80 1440,0 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.curve-section__inr.is-curve-down.is-curve-lightblue::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23b3d7f5' d='M0,0 C360,80 1080,80 1440,0 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.curve-section__inr.is-curve-down.is-curve-lightblue2::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23EDF6FE' d='M0,0 C360,80 1080,80 1440,0 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
}

.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 24px;
  border-radius: 100px;
  font-size: 16px;
  font-weight: bold;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: background 0.2s, color 0.2s, opacity 0.2s;
  line-height: 1.2;
}

.c-btn > span .is-s {
  font-size: 70%;
}

.c-btn .c-btn__arrow {
  overflow: hidden;
}

.c-btn .c-btn__loop {
  clip-path: inset(0 round 8px);
}

.c-btn .c-btn__path {
  animation: none;
}

.c-btn .c-btn__path--1 {
  transform: translateX(0);
}

.c-btn .c-btn__path--2 {
  transform: translateX(-25px);
}

.c-btn:hover .c-btn__path--1 {
  animation: arrow-1 0.2s linear;
}

.c-btn:hover .c-btn__path--2 {
  animation: arrow-2 0.2s linear;
}

@keyframes arrow-1 {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(25px);
  }
}

@keyframes arrow-2 {
  from {
    transform: translateX(-25px);
  }
  to {
    transform: translateX(0);
  }
}

.c-btn.is-blue {
  background: #0070cc;
  color: #fff;
}

@media (min-width: 768px) {
  .c-btn.is-blue:hover {
    background: #005499;
  }
}

.c-btn.is-orange {
  background: #ffd4a3;
  color: #333;
}

@media (min-width: 768px) {
  .c-btn.is-orange:hover {
    background: #ffbc70;
  }
}

.c-btn.is-white {
  background: #edf6fe;
  color: #0070cc;
}

@media (min-width: 768px) {
  .c-btn.is-white:hover {
    background: #d5eafd;
  }
}

.c-btn.is-full {
  display: flex;
  width: 100%;
}

.c-btn.is-multiline {
  padding: 10px 24px;
}

@media (max-width: 767px) {
  .c-btn {
    font-size: calc(4vw);
    padding: calc(3.2vw) calc(5.33333vw);
    gap: calc(2.13333vw);
  }
}

.c-btn svg {
  display: block;
  flex-shrink: 0;
  width: 25px;
  height: 16px;
}

@media (max-width: 767px) {
  .c-btn svg {
    width: calc(5.86667vw);
    height: calc(3.73333vw);
  }
}

.c-btn__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.c-btn__text-main {
  font-size: 16px;
  font-weight: bold;
}

@media (max-width: 767px) {
  .c-btn__text-main {
    font-size: calc(4vw);
  }
}

.c-btn__text-sub {
  font-size: 12px;
  font-weight: normal;
}

@media (max-width: 767px) {
  .c-btn__text-sub {
    font-size: calc(2.93333vw);
  }
}

.c-btn-group {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

@media (max-width: 767px) {
  .c-btn-group {
    gap: calc(3.2vw);
  }
}

.kv-bunkyou {
  position: relative;
}

.kv-bunkyou > picture img {
  width: 100%;
}

.kv-bunkyou__inner {
  width: calc(664 / 1440 * 100%);
  max-width: calc(100% - 32px);
  margin: 0 auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -60%);
}

@media only screen and (max-width: 767px) {
  .kv-bunkyou__inner {
    transform: translate(-50%, -50%);
  }
}

.kv-bunkyou__main {
  text-align: center;
}

.kv-bunkyou__logo {
  margin: 0 auto;
  max-width: 575px;
}

.kv-bunkyou__logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.kv-bunkyou__lead {
  margin-top: 18px;
  color: #333;
  font-size: 32px;
  line-height: 1.25;
  letter-spacing: 0;
}

.kv-bunkyou__sub {
  margin-top: 18px;
  color: #333;
  font-size: 18px;
  line-height: 1.75;
  letter-spacing: 0.05em;
}

.kv-bunkyou__btns {
  display: flex;
  gap: 8px;
  margin-top: 25px;
}

.kv-bunkyou__btns .c-btn {
  width: calc(50% - 4px);
  border-radius: 102px;
  justify-content: center;
  letter-spacing: 0.05em;
}

.kv-bunkyou__links {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 32px;
}

.kv-bunkyou__movie {
  margin-top: 24px;
}

.kv-bunkyou__movie a {
  color: #0070cc;
  font-size: 14px;
  text-decoration: underline;
  letter-spacing: 0.05em;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 5px;
}

.kv-bunkyou-link {
  /* 1440px基準でリキッド化（vwで指定すると1440px時に正確に160px相当になります） */
  width: calc(160 / 1440 * 100vw);
  height: calc(160 / 1440 * 100vw);
  border-radius: 50%;
  background: #edf6fe;
  display: grid;
  place-items: end center;
  padding-bottom: calc(34 / 1440 * 100vw);
  color: #333;
  font-size: calc(13 / 1440 * 100vw);
  line-height: 1.5;
  text-align: center;
  overflow: hidden;
  text-decoration: none;
  transition: transform 0.2s ease;
}

.kv-bunkyou-link::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 5px 0 5px;
  border-color: currentColor transparent transparent transparent;
}

.kv-bunkyou-link img {
  /* 1440px 時に 90px 相当 */
  width: calc(90 / 1440 * 100vw);
  height: auto;
  display: block;
  margin: 0 auto 0;
  max-width: 100%;
}

@media only screen and (min-width: 768px) {
  .kv-bunkyou-link:hover {
    transform: translateY(10px);
  }
}

@media (max-width: 768px) {
  .kv-bunkyou {
    padding: 0;
  }
  .kv-bunkyou__inner {
    width: 100%;
    top: 35%;
  }
  .kv-bunkyou__logo {
    max-width: calc( 302/var(--break-xs)*100vw);
  }
  .kv-bunkyou__sub {
    font-size: calc( 18/var(--break-xs)*100vw);
    line-height: 1.6;
    margin-top: calc( 8/var(--break-xs)*100vw);
  }
  .kv-bunkyou__btns {
    margin-top: calc( 8/var(--break-xs)*100vw);
  }
  .kv-bunkyou__btns .c-btn {
    width: 100%;
    font-size: calc(4.8vw);
  }
  .kv-bunkyou__links {
    gap: 4px;
    margin-top: calc( 12/var(--break-xs)*100vw);
  }
  .kv-bunkyou-link {
    width: 100%;
    height: auto;
    min-height: calc(140 / 1440 * 100vw);
    font-size: calc( 10/var(--break-xs)*100vw);
    padding: 0;
    padding-top: 1vw;
    padding-bottom: 1vw;
  }
  .kv-bunkyou-link span {
    margin-top: -2vw;
  }
  .kv-bunkyou-link img {
    width: calc( 45/var(--break-xs)*100vw);
  }
}

@media only screen and (min-width: 768px) {
  #about-edu {
    margin-top: -50px;
  }
}

#about-edu .curve-section__inr {
  background-image: url("../img/top_v2/bg_b.png");
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}

@media only screen and (max-width: 767px) {
  #about-edu .curve-section__inr {
    background-image: url("../img/top_v2/bg_b_sp.png");
    background-size: 100% auto;
    background-position: center 10vw;
    padding-bottom: 0;
  }
}

#about-edu h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 24px;
}

@media only screen and (max-width: 767px) {
  #about-edu h2 {
    margin-bottom: calc(6.4vw);
  }
}

#about-edu .about-read {
  text-align: center;
  color: #fff;
  margin-bottom: 34px;
}

@media only screen and (max-width: 767px) {
  #about-edu .about-read {
    font-size: calc(4.26667vw);
    text-align: left;
    margin-bottom: calc(6.4vw);
  }
}

#about-edu .about-col h3 {
  margin-bottom: 9px;
}

@media only screen and (max-width: 767px) {
  #about-edu .about-col h3 {
    margin-bottom: calc(2.13333vw);
  }
}

#about-edu .about-col + .about-col {
  margin-top: 48px;
}

@media only screen and (max-width: 767px) {
  #about-edu .about-col + .about-col {
    margin-top: calc(8.53333vw);
  }
}

#about-edu .m-grid {
  gap: 16px;
}

@media only screen and (max-width: 767px) {
  #about-edu .m-grid {
    gap: calc(4.26667vw);
  }
}

#about-edu .m-grid .m-grid-col {
  background-color: #fff;
  border-radius: 8px;
  padding: 24px;
}

#about-edu .m-grid .m-grid-col p {
  text-align: center;
  font-size: 18px;
}

@media only screen and (max-width: 767px) {
  #about-edu .m-grid .m-grid-col p {
    font-size: calc(4.8vw);
  }
}

@media only screen and (max-width: 767px) {
  #about-edu .m-grid .m-grid-col {
    padding: calc(4.26667vw);
  }
}

#about-edu .m-grid.is-02 p {
  margin-top: 24px;
}

@media only screen and (max-width: 767px) {
  #about-edu .m-grid.is-02 p {
    margin-top: calc(4.26667vw);
  }
}

#about-edu .m-grid.is-wide h4 {
  display: flex;
  flex-direction: column;
  align-items: center;
}

#about-edu .m-grid.is-wide p {
  margin-top: 16px;
  margin-bottom: 24px;
}

@media only screen and (max-width: 767px) {
  #about-edu .m-grid.is-wide p {
    margin-top: calc(2.13333vw);
    margin-bottom: calc(4.26667vw);
  }
}

.ct {
  z-index: 3;
}

.ct .curve-section__inr {
  padding-top: 8%;
  padding-bottom: 6%;
  min-height: 0;
}

@media only screen and (max-width: 767px) {
  .ct .curve-section__inr {
    padding-top: calc(24vw);
    padding-bottom: calc(13.33333vw);
  }
}

.ct > img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, calc( -50% + 80px));
}

@media only screen and (max-width: 767px) {
  .ct > img {
    display: none;
  }
}

.ct .ct-inr {
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 2;
  position: relative;
}

@media only screen and (min-width: 768px) {
  .ct .ct-inr {
    max-width: 71.73611%;
    margin-left: auto;
    margin-right: auto;
  }
}

@media only screen and (max-width: 767px) {
  .ct .ct-title img {
    width: 100%;
    height: auto;
  }
}

.ct .ct-btn {
  max-width: 350px;
  width: 100%;
  margin-top: 40px;
}

@media only screen and (max-width: 767px) {
  .ct .ct-btn {
    margin-top: -2vw;
    margin-left: auto;
    margin-right: auto;
    max-width: calc(89.33333vw);
  }
}

.ct .ct-btn > a {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  .ct.is-01 .curve-section__inr {
    padding-top: 12%;
    padding-bottom: 12%;
  }
  .ct.is-01 .curve-section__inr .ct-inr {
    padding-top: 0;
    padding-bottom: 0;
    justify-content: center;
  }
}

@media (max-width: 1000px) {
  .ct.is-01 .curve-section__inr .ct-inr {
    min-height: 518px;
  }
}

.ct.is-01 > img {
  transform: translate(-50%, calc( -50%));
  width: 100%;
}

@media only screen and (max-width: 767px) {
  .ct.is-02 .curve-section__inr {
    padding-top: calc(13.33333vw);
    padding-bottom: calc(13.33333vw);
  }
}

.ct.is-02 > img {
  top: -24%;
  transform: translate(-50%, 0);
  width: 100%;
}

@media (max-width: 1000px) {
  .ct.is-02 > img {
    top: -11%;
  }
}

@media only screen and (min-width: 768px) {
  #solution {
    margin-top: -3%;
  }
}

#solution .curve-section__inr {
  background-image: url("../img/top_v2/bg_lb.png");
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}

@media only screen and (max-width: 767px) {
  #solution .curve-section__inr {
    background-image: url("../img/top_v2/bg_lb_sp.png");
    background-size: 100% auto;
    background-position: center 10vw;
    padding-bottom: 0;
    padding-top: calc(13.33333vw);
  }
}

#solution .solution-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 32px;
}

@media only screen and (max-width: 767px) {
  #solution .solution-title {
    max-width: calc(72.8vw);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: calc(8.53333vw);
    max-width: calc(72.8vw);
  }
}

#solution .solution-stitle {
  margin-bottom: 9px;
}

@media only screen and (max-width: 767px) {
  #solution .solution-stitle {
    margin-bottom: calc(2.13333vw);
  }
}

.map {
  position: relative;
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
}

.map__bg {
  display: block;
  width: 100%;
  height: auto;
}

.map__icon {
  position: absolute;
  transform: translate(-50%, -50%);
  opacity: 0.5;
  transition: opacity 0.3s ease;
  z-index: 1;
  line-height: 1;
}

.map__icon * {
  line-height: 1;
}

@media only screen and (max-width: 767px) {
  .map__icon {
    height: 4.5vw;
  }
}

.map__icon.is-active {
  opacity: 1;
  z-index: 2;
}

.map__icon.is-active .map__icon-label {
  opacity: 1;
  cursor: pointer;
  pointer-events: auto;
}

.map__icon.is-active .map__icon-img-wrap {
  border: 4px solid #0070cc;
}

@media only screen and (max-width: 767px) {
  .map__icon.is-active .map__icon-img-wrap {
    border-width: 2px;
  }
}

.map__icon-img-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  border-radius: 100px;
  border: 4px solid #fff;
  border-color: transparent;
  filter: drop-shadow(0px 1.48026px 0.74013px rgba(25, 69, 145, 0.3));
}

.map__icon-img-wrap img {
  display: block;
  width: 37px;
  height: 37px;
}

@media (max-width: 1000px) {
  .map__icon-img-wrap img {
    width: 3.7vw;
    height: 3.7vw;
  }
}

.map__icon-label {
  position: absolute;
  top: 50%;
  right: calc(100% + 8px);
  transform: translateY(-50%);
  background-color: #0070cc;
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  padding-top: 12px;
  padding-right: 20px;
  padding-bottom: 12px;
  padding-left: 20px;
  border-radius: 100px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

@media (max-width: 1000px) {
  .map__icon-label {
    font-size: 1.6vw;
    padding-top: 1.2vw;
    padding-right: 2vw;
    padding-bottom: 1.2vw;
    padding-left: 2vw;
  }
}

@media only screen and (max-width: 767px) {
  .map__icon-label {
    top: 50%;
    right: calc(100% + 4px);
  }
}

.map__icon--1 {
  top: 40.5%;
  left: 45.0%;
}

.map__icon--2 {
  top: 7.8%;
  left: 6.2%;
}

.map__icon--2 .map__icon-label {
  right: inherit;
  left: calc(100% + 8px);
}

@media only screen and (max-width: 767px) {
  .map__icon--2 .map__icon-label {
    right: inherit;
    left: calc(100% + 4px);
  }
}

.map__icon--3 {
  top: 7.8%;
  left: 18.0%;
}

.map__icon--3 .map__icon-label {
  right: inherit;
  left: calc(100% + 8px);
}

@media only screen and (max-width: 767px) {
  .map__icon--3 .map__icon-label {
    right: inherit;
    left: calc(100% + 4px);
  }
}

.map__icon--4 {
  top: 21.8%;
  left: 43.5%;
}

.map__icon--5 {
  top: 19.5%;
  left: 57.5%;
}

.map__icon--6 {
  top: 9.5%;
  left: 68.3%;
}

.map__icon--7 {
  top: 45.5%;
  left: 68.3%;
}

.map__icon--7 .map__icon-label {
  right: inherit;
  left: calc(100% + 8px);
}

@media only screen and (max-width: 767px) {
  .map__icon--7 .map__icon-label {
    right: inherit;
    left: calc(100% + 4px);
  }
}

.map__icon--8 {
  top: 26%;
  left: 79.5%;
}

.map__icon--9 {
  top: 52.5%;
  left: 86.8%;
}

.map__icon--9 .map__icon-label {
  right: inherit;
  left: calc(100% + 8px);
}

@media only screen and (max-width: 767px) {
  .map__icon--9 .map__icon-label {
    right: inherit;
    left: calc(100% + 4px);
  }
}

.map__icon--10 {
  top: 53%;
  left: 80.3%;
}

.map__icon--11 {
  top: 64.8%;
  left: 75.8%;
}

.map__icon--12 {
  top: 57.8%;
  left: 68.5%;
}

.map__icon--13 {
  top: 51.8%;
  left: 64.5%;
}

.map__icon--14 {
  top: 96%;
  left: 14.5%;
}

.map__icon--14 .map__icon-label {
  right: inherit;
  left: calc(100% + 8px);
}

@media only screen and (max-width: 767px) {
  .map__icon--14 .map__icon-label {
    right: inherit;
    left: calc(100% + 4px);
  }
}

.map__icon--15 {
  top: 89%;
  left: 9.5%;
}

.map__icon--15 .map__icon-label {
  right: inherit;
  left: calc(100% + 8px);
}

@media only screen and (max-width: 767px) {
  .map__icon--15 .map__icon-label {
    right: inherit;
    left: calc(100% + 4px);
  }
}

.map__icon--16 {
  top: 65.5%;
  left: 24.3%;
}

.map__icon--17 {
  top: 47.0%;
  left: 32.3%;
}

.map__icon--18 {
  top: 38.5%;
  left: 74.5%;
}

.map__icon--19 {
  top: 1.5%;
  left: 83.5%;
}

.map__icon--20 {
  top: 31.5%;
  left: 58.5%;
}

.map__icon--21 {
  top: 13.0%;
  left: 87.0%;
}

.map__icon--22 {
  top: 3%;
  left: 83.5%;
}

.map-wrap {
  width: calc( 100% + (5.33333*2)*1vw);
  margin-left: -5.33333vw;
  padding: 30px 0;
}

@media only screen and (max-width: 767px) {
  .map-wrap {
    overflow: auto;
  }
  .map-wrap .map {
    width: 160vw;
  }
}

.map-link {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 24px;
  padding-block-end: 24px;
}

@media (max-width: 768px) {
  .map-link {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}

.map-link__btn {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  background: #fff;
  border: 4px solid #fff;
  border-radius: 100px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
  transition: border-color 0.2s ease,background-color 0.2s ease;
  color: #000;
}

.map-link__btn::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 5px 0 5px;
  border-color: currentColor transparent transparent transparent;
  margin-top: 2px;
}

.map-link__btn.is-active {
  border-color: #FFD4A3;
  background-color: #FFD4A3;
}

@media (max-width: 768px) {
  .map-link__btn {
    width: 100%;
    font-size: 13px;
    padding: 8px 12px;
  }
}

@media only screen and (min-width: 768px) {
  .map-link__btn:hover {
    border-color: #FFD4A3;
    background-color: #FFD4A3;
  }
}

.map-bottom {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding-block: 24px;
}

@media (max-width: 768px) {
  .map-bottom {
    grid-template-columns: 1fr;
  }
}

.map-bottom__card {
  display: none;
  padding: 16px 24px;
  background: #fff;
  border-radius: 8px;
}

@media only screen and (max-width: 767px) {
  .map-bottom__card {
    padding: calc(4.26667vw);
  }
}

.map-bottom__card.is-active {
  display: block;
}

.map-bottom__card-label {
  font-size: 19px;
  font-weight: 700;
  margin-bottom: 12px;
  text-align: center;
  cursor: pointer;
}

.map-bottom__card-img {
  margin-bottom: 12px;
}

.map-bottom__card-img img {
  display: block;
  width: 100%;
  height: auto;
}

.map-bottom__card-text {
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 16px;
}

.map-bottom__card-feature {
  background: #e8f4fb;
  border-radius: 8px;
  padding: 8px 20px;
  margin-bottom: 20px;
}

.map-bottom__card-feature-title {
  font-size: 12px;
  font-weight: 700;
  color: #0070cc;
  text-align: center;
}

.map-bottom__card-feature-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.map-bottom__card-feature-list li {
  position: relative;
  padding-left: 13px;
  font-size: 12px;
  line-height: 1.6;
}

.map-bottom__card-feature-list li::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 0;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #000;
}

.map-bottom__card-feature-list li .is-note {
  font-size: 80%;
  display: block;
  text-indent: -1em;
  margin-left: 1em;
}

.map-bottom__card-btn-wrap {
  display: flex;
  justify-content: center;
}

.map-bottom__card-btn-wrap .c-btn {
  padding: 10px 24px;
  font-size: 14px;
}

@media only screen and (max-width: 767px) {
  .map-bottom__card-btn-wrap .c-btn {
    font-size: calc(3.73333vw);
  }
}

#case .case-contents {
  position: relative;
  z-index: 2;
}

#case .curve-section__inr {
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}

@media only screen and (max-width: 767px) {
  #case .curve-section__inr {
    background-image: url("../img/top_v2/bg_lb_sp.png");
    background-size: 100% auto;
    background-position: center 10vw;
    padding-bottom: 0;
    padding-top: calc(13.33333vw);
  }
}

#case .case-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 32px;
}

@media only screen and (max-width: 767px) {
  #case .case-title {
    margin-bottom: calc(8.53333vw);
    max-width: calc(72.8vw);
    margin-left: auto;
    margin-right: auto;
  }
}

#case > img {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

@media only screen and (max-width: 767px) {
  #case > img {
    display: none;
  }
}

@media only screen and (min-width: 768px) {
  #case .case-btn {
    max-width: 396px;
    margin-left: auto;
    margin-right: auto;
  }
}

#case .case-btn a {
  width: 100%;
}

.case-carousel {
  position: relative;
  overflow: hidden;
  padding-bottom: 24px;
}

.case-carousel__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 30px;
}

@media only screen and (max-width: 767px) {
  .case-carousel__nav {
    margin-top: calc(6.4vw);
  }
}

.case-carousel__btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  transition: opacity 0.2s;
}

.case-carousel__btn:hover {
  opacity: 0.7;
}

@media (max-width: 767px) {
  .case-carousel__btn {
    width: 36px;
    height: 36px;
  }
}

.case-carousel__btn svg {
  width: 100%;
  height: 100%;
  display: block;
}

.case-carousel__dots {
  display: flex;
  align-items: center;
}

.case-carousel__dots .slick-dots {
  display: flex !important;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 8px;
  position: static;
  flex-wrap: wrap;
}

.case-carousel__dots .slick-dots li {
  width: 8px;
  height: 8px;
}

.case-carousel__dots .slick-dots li button {
  width: 8px;
  height: 8px;
  background: #fff;
  border: 1px solid #0070cc;
  border-radius: 50%;
  padding: 0;
  font-size: 0;
  cursor: pointer;
  transition: background 0.2s;
  position: static;
  margin-top: 0;
  opacity: 1;
}

.case-carousel__dots .slick-dots li button::after {
  height: auto;
}

.case-carousel__dots .slick-dots li.slick-active button {
  background: #0070cc;
}

.slick-dotted.slick-slider {
  margin-bottom: 0;
}

.slick-slide {
  opacity: 1;
}

.case-card {
  padding: 0 12px;
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform: scale(0.8);
}

.slick-current .case-card {
  opacity: 1;
  transform: scale(1);
}

.case-card__link {
  display: block;
  background: #edf6fe;
  border-radius: 12px;
  overflow: hidden;
  padding: 24px;
  text-decoration: none;
  color: inherit;
  border: 2px solid transparent;
}

.case-card__link .case-card__img-wrap img {
  transition: transform 0.3s ease;
}

@media only screen and (min-width: 768px) {
  .case-card__link:hover .case-card__img-wrap img {
    transform: scale(1.05);
  }
}

@media (max-width: 767px) {
  .case-card__link {
    padding: calc(4.26667vw);
  }
}

.case-card__img-wrap {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 8px;
  margin-bottom: 16px;
}

.case-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.case-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.case-card__area {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  background: #0070cc;
  color: #fff;
  font-size: 12px;
  border-radius: 4px;
  padding: 2px 10px;
  white-space: nowrap;
}

.case-card__area.is-c1 {
  background: #008391;
}

.case-card__area.is-c2 {
  background: #C05600;
}

.case-card__area.is-c3 {
  background: #7247B7;
}

.case-card__area.is-c4 {
  background: #427E1D;
}

.case-card__area.is-c5 {
  background: #C91C76;
}

.case-card__area.is-c6 {
  background: #3957B0;
}

.case-card__title {
  font-size: 16px;
  font-weight: bold;
  color: #333;
  margin: 0;
  line-height: 1.5;
}

.case-card__lead {
  font-size: 24px;
  color: #555;
  line-height: 1.6;
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 767px) {
  .case-card__lead {
    font-size: calc(6.4vw);
  }
}

.case-card__services {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.case-card__services-label {
  font-size: 13px;
  font-weight: bold;
  color: #333;
  white-space: nowrap;
  flex-shrink: 0;
}

.case-card__service {
  font-size: 12px;
  color: #333;
}

.case-card__keywords {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}

.case-card__keywords-label {
  font-size: 13px;
  font-weight: bold;
  color: #333;
  white-space: nowrap;
  flex-shrink: 0;
}

.case-card__keyword {
  font-size: 12px;
  color: #333;
}

.case-card__btn-wrap {
  margin-top: 16px;
}

.case-card__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #0070cc;
  color: #fff;
  font-size: 15px;
  font-weight: bold;
  border-radius: 999px;
  padding: 12px 24px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, opacity 0.2s;
}

.case-card__btn svg {
  flex-shrink: 0;
}

.case-card__btn .c-btn__arrow {
  overflow: hidden;
}

.case-card__btn .c-btn__loop {
  clip-path: inset(0 round 8px);
}

.case-card__btn .c-btn__path {
  animation: none;
}

.case-card__btn .c-btn__path--1 {
  transform: translateX(0);
}

.case-card__btn .c-btn__path--2 {
  transform: translateX(-25px);
}

.case-card__btn:hover .c-btn__path--1 {
  animation: arrow-1 0.2s linear;
}

.case-card__btn:hover .c-btn__path--2 {
  animation: arrow-2 0.2s linear;
}

@keyframes arrow-1 {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(25px);
  }
}

@keyframes arrow-2 {
  from {
    transform: translateX(-25px);
  }
  to {
    transform: translateX(0);
  }
}

@media only screen and (min-width: 768px) {
  .case-card__btn:hover {
    background-color: #005499;
  }
}

.js-case-carousel .slick-slide {
  display: inline-block;
  box-sizing: border-box;
  padding: 0;
}

.case-card {
  width: auto;
  margin: 0;
}

.case-card__link {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 767px) {
  .js-case-carousel .slick-slide {
    display: block;
    padding: 0;
  }
  .case-card {
    width: 100%;
    margin: 0;
    max-width: none;
  }
}

#seminar .curve-section__inr {
  background-image: url("../img/top_v2/bg_b.png");
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
  padding-bottom: 50px;
}

@media only screen and (max-width: 767px) {
  #seminar .curve-section__inr {
    background-image: url("../img/top_v2/bg_b_sp.png");
    background-size: 100% auto;
    background-position: center 10vw;
    padding-bottom: 0;
    padding-top: calc(13.33333vw);
  }
}

#seminar .seminar-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 32px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-title {
    max-width: calc(62.93333vw);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: calc(8.53333vw);
  }
}

#seminar .seminar-col {
  margin-bottom: 64px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-col {
    margin-bottom: calc(10.66667vw);
  }
}

@media only screen and (min-width: 768px) {
  #seminar .seminar-col .seminar-btn {
    max-width: 506px;
    margin-left: auto;
    margin-right: auto;
  }
}

#seminar .seminar-col .seminar-btn a {
  width: 100%;
}

#seminar .seminar-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px calc( 20/1000*100%);
  margin-bottom: 32px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid {
    gap: calc(4.26667vw);
    margin-bottom: calc(6.4vw);
  }
}

#seminar .seminar-grid .seminar-grid--col {
  max-width: calc( 320/1000*100%);
  background-color: #fff;
  border-radius: 8px;
  padding: 24px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col {
    max-width: 100%;
    padding: calc(4.26667vw);
  }
}

#seminar .seminar-grid .seminar-grid--col h3 {
  font-size: 20px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col h3 {
    font-size: calc(5.33333vw);
  }
}

#seminar .seminar-grid .seminar-grid--col .is-tags {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col .is-tags {
    gap: calc(2.13333vw);
    margin-top: calc(4.26667vw);
  }
}

#seminar .seminar-grid .seminar-grid--col .is-tags .is-tag {
  color: #fff;
  padding: 3px 4px;
  border-radius: 2px;
  line-height: 1;
  font-size: 12px;
}

#seminar .seminar-grid .seminar-grid--col .is-tags .is-tag.is-sc {
  background-color: #008391;
}

#seminar .seminar-grid .seminar-grid--col .is-tags .is-tag.is-ac {
  background-color: #EDF6FE;
  color: #0070CC;
}

#seminar .seminar-grid .seminar-grid--col .is-tags .is-tag.is-sm {
  background-color: #C91C76;
}

#seminar .seminar-grid .seminar-grid--col .case-btn {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col .case-btn {
    margin-top: calc(2.13333vw);
  }
}

#seminar .seminar-grid .seminar-grid--col .case-btn .c-btn {
  font-size: 14px;
  padding: 10px 24px;
}

#seminar .seminar-grid .seminar-grid--col .is-note {
  font-size: 12px;
  margin-top: 8px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col .is-note {
    font-size: calc(3.2vw);
    margin-top: calc(2.13333vw);
  }
}

#seminar .seminar-grid .seminar-grid--col.is-wide {
  max-width: 100%;
  width: 100%;
}

#seminar .seminar-grid .seminar-grid--col.is-wide .is-wide-col {
  display: flex;
  flex-direction: row-reverse;
  gap: 20px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col.is-wide .is-wide-col {
    flex-direction: column;
    gap: calc(4.26667vw);
  }
}

#seminar .seminar-grid .seminar-grid--col.is-wide .is-wide-col a {
  text-align: center;
  text-decoration: none;
  color: #333;
}

#seminar .seminar-grid .seminar-grid--col.is-wide .is-wide-col a span {
  display: block;
  overflow: hidden;
}

#seminar .seminar-grid .seminar-grid--col.is-wide .is-wide-col a span img {
  transition: transform 0.3s ease;
}

@media only screen and (min-width: 768px) {
  #seminar .seminar-grid .seminar-grid--col.is-wide .is-wide-col a:hover span img {
    transform: scale(1.05);
  }
}

#seminar .seminar-grid .seminar-grid--col.is-wide h3 {
  padding-bottom: 1em;
  border-bottom: 1px solid #ccc;
  margin-bottom: 0.5em;
}

#seminar .seminar-grid .seminar-grid--col.is-wide h3 img {
  width: 100%;
  height: auto;
  display: block;
}

#seminar .seminar-grid .seminar-grid--col.is-wide h4 {
  font-size: 18px;
  margin-top: 15px;
  font-weight: bold;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col.is-wide h4 {
    margin-top: calc(2.13333vw);
    font-size: calc(4.8vw);
  }
}

#seminar .seminar-grid .seminar-grid--col.is-wide p {
  font-size: 16px;
  margin-top: 8px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-grid .seminar-grid--col.is-wide p {
    font-size: calc(4.26667vw);
    margin-top: calc(2.13333vw);
  }
}

#seminar .seminar-mail {
  background-color: #fff;
  overflow: hidden;
  position: relative;
  border-radius: 8px;
  padding: 48px;
}

@media only screen and (min-width: 768px) {
  #seminar .seminar-mail {
    min-height: 282px;
  }
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-mail {
    padding: calc(6.4vw) calc(5.33333vw) 0;
  }
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-mail h3 {
    max-width: calc(62.66667vw);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: calc(2.13333vw);
  }
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-mail p {
    text-align: center;
    font-size: calc(4.26667vw);
  }
}

#seminar .seminar-mail > img {
  position: absolute;
  bottom: 0;
  right: 38px;
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-mail > img {
    position: static;
    max-width: calc(35.2vw);
    margin-left: auto;
    margin-right: auto;
    margin-top: calc(4.26667vw);
    display: block;
  }
}

@media only screen and (min-width: 768px) {
  #seminar .seminar-mail .seminar-mail--col {
    max-width: 693px;
  }
}

#seminar .seminar-mail .mail-btn {
  margin-top: 16px;
}

@media only screen and (min-width: 768px) {
  #seminar .seminar-mail .mail-btn {
    max-width: 423px;
  }
}

@media only screen and (max-width: 767px) {
  #seminar .seminar-mail .mail-btn {
    margin-top: calc(4.26667vw);
  }
}

#seminar .seminar-mail .mail-btn a {
  width: 100%;
}

#documents .curve-section__inr {
  padding-top: 150px;
}

@media only screen and (max-width: 767px) {
  #documents .curve-section__inr {
    padding-bottom: calc(13.33333vw);
    padding-top: calc(26.66667vw);
  }
}

#documents .documents-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 16px;
}

@media only screen and (max-width: 767px) {
  #documents .documents-title {
    max-width: calc(76.53333vw);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: calc(2.13333vw);
  }
}

#documents .documents-title.is-02 {
  margin-bottom: 16px;
}

@media only screen and (max-width: 767px) {
  #documents .documents-title.is-02 {
    max-width: calc(51.2vw);
    margin-bottom: calc(4.26667vw);
  }
}

#documents .documents-read {
  text-align: center;
  font-size: 16px;
  margin-bottom: 24px;
}

@media only screen and (max-width: 767px) {
  #documents .documents-read {
    font-size: calc(4.26667vw);
    text-align: left;
    margin-bottom: calc(6.4vw);
  }
}

#documents .documents-block {
  background-color: #0070CC;
  border-radius: 8px;
  padding: 57px 80px;
}

@media only screen and (max-width: 767px) {
  #documents .documents-block {
    max-width: 100%;
    padding: calc(6.4vw);
  }
}

#documents .documents-block .is-wide-col {
  display: flex;
  justify-content: space-between;
  gap: 80px;
}

#documents .documents-block .is-wide-col > img {
  max-width: 198px;
}

@media only screen and (max-width: 767px) {
  #documents .documents-block .is-wide-col {
    flex-direction: column;
    gap: calc(6.4vw);
  }
  #documents .documents-block .is-wide-col > img {
    width: calc(37.6vw);
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}

@media only screen and (max-width: 767px) {
  #documents .documents-block h3 img {
    width: 100%;
    height: auto;
    display: block;
  }
}

#documents .documents-block p {
  font-size: 16px;
  margin-top: 16px;
  color: #fff;
}

@media only screen and (max-width: 767px) {
  #documents .documents-block p {
    font-size: calc(4.26667vw);
    margin-top: calc(5.33333vw);
  }
}

#documents .documents-block .documents-btn {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 16px;
}

@media only screen and (max-width: 767px) {
  #documents .documents-block .documents-btn {
    margin-top: calc(3.46667vw);
  }
}

#documents .documents-block .documents-btn .c-btn {
  max-width: 446px;
}

@media only screen and (max-width: 767px) {
  #documents .documents-block .documents-btn .c-btn {
    max-width: 100%;
    text-align: center;
    font-size: calc(5.33333vw);
  }
}

.flow-block {
  display: flex;
  max-width: 1000px;
  margin: 0 auto;
  background: #edf6fe;
  border-radius: 8px;
  padding: 24px;
  margin-bottom: 80px;
}

@media (max-width: 767px) {
  .flow-block {
    padding: calc(4.26667vw);
    margin-bottom: calc(13.33333vw);
  }
}

.flow-block__label {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: 32px;
  margin-right: 24px;
  gap: 8px;
}

@media (max-width: 767px) {
  .flow-block__label {
    width: calc(6.4vw);
    margin-right: calc(3.2vw);
    gap: calc(1.6vw);
  }
}

.flow-block__label-item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  border-radius: 4px;
  font-size: 20px;
  letter-spacing: 0.2em;
  color: #fff;
  writing-mode: vertical-rl;
}

@media (max-width: 767px) {
  .flow-block__label-item {
    font-size: calc(4.8vw);
  }
}

.flow-block__label-item.is-before {
  background: #000;
}

.flow-block__label-item.is-after {
  background: #0070CC;
}

.flow-block__list {
  flex: 1;
}

.flow-block__item + .flow-block__item {
  margin-top: 0;
}

.flow-block__arrow {
  text-align: center;
  color: #1a8fd1;
  font-size: 20px;
  padding: 8px 0;
}

@media (max-width: 767px) {
  .flow-block__arrow {
    font-size: calc(4.26667vw);
    padding: calc(1.6vw) 0;
  }
}

.flow-block__card {
  display: flex;
  align-items: center;
  gap: 24px;
  background: #fff;
  border-radius: 8px;
  padding: 20px 24px;
}

@media (max-width: 767px) {
  .flow-block__card {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(4.26667vw);
    padding: calc(4.26667vw);
  }
}

.flow-block__card-img {
  flex-shrink: 0;
  width: 228px;
}

.flow-block__card-img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

@media (max-width: 767px) {
  .flow-block__card-img {
    width: 100%;
  }
}

.flow-block__card-body {
  flex: 1;
}

.flow-block__card-title {
  font-size: 24px;
  font-weight: bold;
  color: #333;
  margin: 0 0 12px;
}

@media (max-width: 767px) {
  .flow-block__card-title {
    font-size: calc(5.33333vw);
    margin: 0 0 calc(2.13333vw);
  }
}

.flow-block__card-text {
  font-size: 16px;
  color: #555;
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 767px) {
  .flow-block__card-text {
    font-size: calc(3.73333vw);
  }
}

.bunkyou_lowerNav_wrap {
  width: 100%;
  position: fixed;
  left: 0;
  transform: translate(0, calc(-100% - 80px));
  z-index: 200;
  transition: .15s;
}

@media only screen and (min-width: 768px) {
  .bunkyou_lowerNav_wrap {
    transform: translate(0, calc(-100% - 90px));
  }
}

.bunkyou_lowerNav_cont {
  transition: all .5s;
  transform: translate(0, calc(100% + 80px + 16px));
}

@media only screen and (min-width: 768px) {
  .bunkyou_lowerNav_cont {
    transform: translate(0, calc(100% + 90px + 16px));
  }
}

.bunkyou_lowerNav_inr {
  display: flex;
  flex-direction: column;
  padding: 16px;
  border-radius: 8px;
  background-color: #FFD4A3;
  gap: 16px;
}

@media only screen and (min-width: 768px) {
  .bunkyou_lowerNav_inr {
    flex-direction: row;
    justify-content: space-between;
    padding: 15px 40px;
  }
}

.bunkyou_lowerNav_logo {
  display: block;
  transition: .3s;
}

.bunkyou_lowerNav_logo:focus, .bunkyou_lowerNav_logo:hover {
  opacity: .7;
}

.bunkyou_lowerNav_logo img {
  display: block;
  width: 113px;
}

@media only screen and (min-width: 768px) {
  .bunkyou_lowerNav_logo img {
    width: 100%;
  }
}

.bunkyou_lowerNav_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 16px 12px;
}

@media only screen and (min-width: 768px) {
  .bunkyou_lowerNav_list {
    justify-content: space-around;
    gap: 16px 32px;
  }
}

.bunkyou_lowerNav_item a {
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: .875rem;
  font-weight: 600;
  transition: opacity .3s;
  color: #333;
}

@media only screen and (min-width: 768px) {
  .bunkyou_lowerNav_item a {
    font-size: 1rem;
    gap: 8px;
    height: 100%;
  }
}

.bunkyou_lowerNav_item a::after {
  display: block;
  content: '';
  flex-shrink: 0;
  background-image: url("../img/case/icon_arrow_right_reverse_dark.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  aspect-ratio: 25 / 16;
  width: 25px;
}

.bunkyou_lowerNav_item a:focus, .bunkyou_lowerNav_item a:hover {
  opacity: .7;
}

.bunkyou_lowerNav.is-scroll .bunkyou_lowerNav_wrap {
  transition: .3s;
}

html.is-scroll.is-scroll-down:not(.is-header-menu-open) .bunkyou_lowerNav_cont {
  transform: translate(0, -100%);
}

.js-bunkyou_lowerNav.is-top-none .bunkyou_lowerNav_cont {
  transform: translate(0, -100%) !important;
}
