@charset "UTF-8";

/* =========================
   Base
========================= */
html {
  scroll-behavior: smooth;
  scroll-padding-top: clamp(60px, 8vw, 200px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: #333;
  background: #fff;
  font-family:
    "Noto Sans JP",
    "Noto Sans",
    "Segoe UI Symbol",
    "Arial Unicode MS",
    "Hiragino Sans",
    "Yu Gothic",
    "Meiryo",
    sans-serif;
  line-height: 1.9;
  font-size: 14px;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

ul,
li {
  margin: 0;
  padding: 0;
  list-style: none;
}

[hidden] {
  display: none !important;
}

.br-viewsp {
  display: none;
}

.default-inner{
  width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
}

@media screen and (max-width: 1200px) {
    .default-inner{
    padding: 0 30px;
  }
}

@media screen and (max-width: 767px) {
  .br-viewpc {
    display: none;
  }

  .br-viewsp {
    display: inline-block;
  }
  .default-inner{
    padding: 0 20px;
  }
  html {
    scroll-behavior: smooth;
    scroll-padding-top: clamp(100px, 10vw, 200px);
  }
}

/* =========================
   header common
========================= */
.site-header {
  width: 100%;
  position: fixed;
  top: 0;
  z-index: 1000;
}

.site-header__inner {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 2.2vw 2.8vw 2.2vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2vw;
}

.site-header__left {
  display: flex;
  align-items: center;
  min-width: 0;
}

.site-header__logo {
  flex: 0 0 auto;
}

.site-header__logo a:hover{
  opacity: 0.8;
}

.site-header__logo-image {
  display: block;
  width: 12vw;
  max-width: 100%;
  height: auto;
}

.site-header__right {
  display: flex;
  align-items: center;
  gap: 4.3vw;
  flex: 0 0 auto;
}

.site-header__nav {
  min-width: 0;
}

.site-header__nav-list {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 3.32vw;
}

.site-header__nav-item {
  position: relative;
}

.site-header__nav-item > a,
.site-header__nav-label {
  position: relative;
  display: inline-block;
  font-size: 1.2vw;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.03em;
  color: #000000;
  white-space: nowrap;
  padding-bottom: 0.22vw;
}

.site-header__nav-label {
  cursor: pointer;
}

/* 下線ホバー */
.site-header__nav-item > a::after,
.site-header__nav-label::after,
.site-header__subnav-item a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 0.073vw;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}

.site-header__nav-item > a:hover::after,
.site-header__nav-label:hover::after,
.site-header__nav-item--has-child:hover .site-header__nav-label::after,
.site-header__subnav-item a:hover::after {
  transform: scaleX(1);
}

/* サブナビだけ文字幅に合わせる */
.site-header__subnav-item a::after {
  left: 1.758vw;
  width: calc(100% - 1.758vw);
}

/* 研究テーマ hover でサブメニュー */
.site-header__nav-item--has-child {
  padding-bottom: 1.2vw;
  margin-bottom: -1.2vw;
}

.site-header__subnav {
  position: absolute;
  top: 100%;
  left: 1em;
  min-width: 15.625vw;
  padding-top: 0.2vw;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 20;
}

.site-header__nav-item--has-child:hover .site-header__subnav,
.site-header__nav-item--has-child:focus-within .site-header__subnav {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.site-header__subnav-item + .site-header__subnav-item {
  margin-top: 0.8vw;
}

.site-header__subnav-item a {
  position: relative;
  display: inline-block;
  padding-left: 1.758vw;
  padding-bottom: 0.15vw;
  font-size: 1.1vw;
  font-weight: 500;
  line-height: 1.35;
  color: #000;
  white-space: nowrap;
}

.site-header__subnav-item a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9vw;
  width: 0.586vw;
  height: 0.1vw;
  background: #000000;
}

.site-header__locale {
  display: flex;
  gap: 0.5vw;
  align-items: stretch;
  margin-bottom: 1.2%;
}

.site-header__locale-link {
  width: 3vw;
    height: 2.2vw;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2vw;
    font-weight: 900;
    line-height: 1;
    border-radius: 0.4vw;
}

.locale-stop{
  color: #a3a3a3;
}

.site-header__locale-link--en {
  color: #4a4a4a;
}

.site-header__locale-link--en:hover {
  background: #333333;
  color: #ffffff;
}

.site-header__locale-link--jp {
  background: #333333;
  color: #ffffff;
}

.site-header__menu-button {
  display: none;
}

.site-header__sp-menu {
  display: none;
}

/* =========================
   header tablet adjustment
========================= */
@media screen and (max-width: 1200px) and (min-width: 768px) {
  .site-header__inner {
    padding: 2.8vw 2.8vw 2.2vw;
  }

  .site-header__right {
    gap: 2.2vw;
  }

  .site-header__nav-list {
    gap: 2.3vw;
  }

  .site-header__logo-image {
    width: 15vw;
  }

  .site-header__nav-item > a,
  .site-header__nav-label {
    font-size: 1.6vw;
  }

  .site-header__subnav-item a {
    font-size: 1.4vw;
    padding-left: 1.9vw;
  }

  .site-header__subnav-item a::after {
    left: 1.9vw;
    width: calc(100% - 1.9vw);
  }

    .site-header__locale{
    margin-bottom: 0;
  }

  .site-header__locale-link {
    width: 3.5vw;
    height: 2.7vw;
    font-size: 1.7vw;
  }
}

/* =========================
   header sp
========================= */
@media screen and (max-width: 767px) {
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
  }

  .site-header__inner {
    padding: 4.7vw 4.3vw;
    display: block;
    position: relative;
    z-index: 1002;
  }

  .site-header__left {
    display: inline-block;
  }

  .site-header__right {
    position: absolute;
    top: 5vw;
    right: 4vw;
    display: flex;
    align-items: flex-start;
    gap: 3.255vw;
    z-index: 1003;
  }

  .site-header__logo-image {
    width: 33.854vw;
  }

  .site-header__nav {
    display: none;
  }

  .site-header__locale {
    border: 0;
    margin-top: 0;
    position: relative;
    z-index: 1003;
  }

  .site-header__locale-link {
    width: 9.7vw;
    height: 6.7vw;
    font-size: 4.2vw;
  }

  .site-header__menu-button {
    display: flex;
    position: relative;
    width: 7.5vw;
    height: 6.4vw;
    padding: 0;
    border: 0;
    background: transparent;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    margin-top: 0.13vw;
    z-index: 1003;
  }

  .site-header__menu-button span {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 50px;
    background: #000000;
    transform-origin: center;
    transition: transform 0.25s ease, opacity 0.25s ease;
  }

  .site-header__menu-button[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(3vw) rotate(45deg);
  }

  .site-header__menu-button[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .site-header__menu-button[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-3.1vw) rotate(-45deg);
  }

  .site-header__sp-menu {
    display: block;
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    background: #f7fbfd;
    z-index: 1001;
    transform: translateX(100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      transform 0.35s ease,
      opacity 0.35s ease,
      visibility 0.35s ease;
    padding: 24vw 20px 8vw;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .site-header__sp-menu.is-open {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .site-header__sp-nav {
    width: 100%;
  }

  .site-header__sp-nav-list {
    width: 100%;
  }

  .site-header__sp-nav-item {
    width: 100%;
    border-bottom: 1px solid #989898;
  }

  .site-header__sp-nav-item > a {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4.2vw 0;
    background: transparent;
    border: 0;
    text-align: left;
    font-size: 4.5vw;
    font-weight: 500;
    line-height: 1.4;
    color: #000;
  }

  .site-header__sp-nav-heading {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4.2vw 0 2.8vw;
    background: transparent;
    text-align: left;
    font-size: 4.5vw;
    font-weight: 500;
    line-height: 1.4;
    color: #000;
  }

  .site-header__sp-subnav {
    padding: 2.5vw 0 5vw 0;
  }

  .site-header__sp-subnav li + li {
    margin-top: 3.5vw;
  }

  .site-header__sp-subnav a {
    position: relative;
    display: block;
    padding-left: 4vw;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-size: 3.8vw;
    font-weight: 500;
    line-height: 1.5;
    color: #000000;
  }

  .site-header__sp-subnav a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2.5vw;
    width: 2vw;
    height: 1px;
    background: #000;
  }

  .site-header__nav-item > a::after,
  .site-header__nav-label::after,
  .site-header__subnav-item a::after {
    display: none;
  }

  body.is-menu-open {
    overflow: hidden;
  }

  .locale-stop {
    display: none;
  }
}

/* =========================
   top mv
========================= */
.top-mv {
  --top-mv-padding-top: 9.3vw;
  padding-top: var(--top-mv-padding-top);
  width: 100%;
  /*min-height: 100vh;*/
  background: #f7fbfd;
  overflow: hidden;
  position: relative;
}

.top-mv__inner {
  width: 100%;
  min-height: calc(100vh - var(--top-mv-padding-top));
  min-height: calc(100svh - var(--top-mv-padding-top));
  padding: 3vw 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

.top-mv__copy-wrap {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

.top-mv__title {
  margin: 0;
  display: inline-block;
  text-align: left;
}

.top-mv__title-line {
  display: block;
  overflow: hidden;
}

.top-mv__title-line + .top-mv__title-line {
  margin-top: 0.806vw;
}

.top-mv__title-line-text {
  display: inline-block;
  color: #29abe2;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 7.5vw;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.01em;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(-1.611vw);
  clip-path: inset(0 100% 0 0);
  animation: topMvRevealSmooth 1.15s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.top-mv__title-line--1 .top-mv__title-line-text {
  animation-delay: 0.05s;
}

.top-mv__title-line--2 .top-mv__title-line-text {
  animation-delay: 0.48s;
  padding-bottom: 1vw;
}

.top-mv__title-line--3 .top-mv__title-line-text {
  animation-delay: 0.91s;
  padding-bottom: 1vw;
}

.top-mv__subtitle {
  margin: 1.7vw 0 0;
  color: #333333;
  font-size: 2.1vw;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.top-mv__bottom {
  width: 100%;
  margin-top: auto;
  padding: 3vw 11.42vw 0;
  display: grid;
  grid-template-columns: 1fr 8.053vw 1fr;
  align-items: end;
  column-gap: 4.392vw;
}

.top-mv__line {
  width: 100%;
}

.top-mv__line-image {
  width: 100%;
  height: auto;
  display: block;
}

.top-mv__mic {
  width: 6.2vw;
  margin: 0 auto;
  opacity: 0;
  transform: translateY(2.197vw) scale(0.9);
  animation: topMvMicPop 0.55s ease forwards;
  animation-delay: 1.75s;
  will-change: transform, opacity;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.top-mv__mic-image {
  width: 100%;
  height: auto;
  display: block;
}

/* =========================
   motion
========================= */
@keyframes topMvRevealSmooth {
  0% {
    opacity: 0;
    transform: translateX(-1.611vw);
    clip-path: inset(0 100% 0 0);
  }
  35% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateX(0);
    clip-path: inset(0 0 0 0);
  }
}

@keyframes topMvMicPop {
  0% {
    opacity: 0;
    transform: translateY(2.197vw) scale(0.9);
  }
  70% {
    opacity: 1;
    transform: translateY(-0.366vw) scale(1.03);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .top-mv__inner {
    padding: 6vw 0 0;
  }

  .top-mv__title-line + .top-mv__title-line {
    margin-top: 1vw;
  }

  .top-mv__title-line-text {
    font-size: 10vw;
    transform: translateX(-1.8vw);
  }

  .top-mv__subtitle {
    margin-top: 4.2vw;
    font-size: 3.2vw;
  }

  .top-mv__bottom {
    padding: 6vw 8vw 0;
    grid-template-columns: 1fr 10vw 1fr;
    column-gap: 4vw;
  }

  .top-mv__mic {
    width: 10vw;
  }
}

/* =========================
   short viewport
========================= */
@media screen and (min-width: 768px) and (max-height: 980px) {
  .top-mv {
    --top-mv-padding-top: clamp(72px, 6vw, 112px);
  }

  .top-mv__inner {
    padding: 2vw 0 0;
  }

  .top-mv__title-line + .top-mv__title-line {
    margin-top: clamp(8px, 0.7vw, 14px);
  }

  .top-mv__title-line-text {
    font-size: clamp(72px, 6.4vw, 118px);
  }

  .top-mv__title-line--2 .top-mv__title-line-text,
  .top-mv__title-line--3 .top-mv__title-line-text {
    padding-bottom: clamp(4px, 0.35vw, 8px);
  }

  .top-mv__subtitle {
    margin-top: clamp(16px, 1.5vw, 24px);
    font-size: clamp(24px, 1.8vw, 32px);
  }

  .top-mv__bottom {
    padding-top: clamp(16px, 1.6vw, 24px);
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .top-mv {
    /*min-height: 100svh;*/
    --top-mv-padding-top: 18vw;
  }

  .top-mv__inner {
    /*min-height: 100svh;*/
    min-height: auto;
    padding: 0;
  }

  .top-mv__copy-wrap {
            padding: 28vw 20px 13vw;
            text-align: left;
  }

  .top-mv__title-line + .top-mv__title-line {
    margin-top: 1.823vw;
  }

  .top-mv__title-line-text {
    font-size: 11vw;
    line-height: 1;
    white-space: normal;
    transform: translateX(-2.604vw);
  }

  .top-mv__subtitle {
    margin-top: 4.3vw;
        font-size: 4vw;
        line-height: 1.5;
        text-align: left;
  }

  .top-mv__bottom {
        width: 87%;
        margin-top: 11vw;
        padding: 0;
        grid-template-columns: 1fr 16vw 1fr;
        column-gap: 2.604vw;
        align-items: self-end;
  }

  .top-mv__mic {
    width: 12.5vw;
    animation: topMvMicPopSp 0.55s ease forwards;
    animation-delay: 1.75s;
  }
  @keyframes topMvMicPopSp {
  0% {
    opacity: 0;
    transform: translateY(5.208vw) scale(0.9);
  }
  70% {
    opacity: 1;
    transform: translateY(-0.5vw) scale(1.03);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  }
}

@media (prefers-reduced-motion: reduce) {
  .top-mv__title-line-text,
  .top-mv__mic {
    animation: none;
    opacity: 1;
    transform: none;
    clip-path: inset(0 0 0 0);
  }
}

/* =========================
   top approach
========================= */
.top-approach {
  width: 100%;
  background: #31a8df;
}

.top-approach__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 7.2vw 0 6.4vw;
  text-align: center;
}

.top-approach__head {
  margin: 0;
}

.top-approach__head figure{
  margin: 0 0 1.2vw;
}

.top-approach__head figure img{
  width: 20vw;
}

.top-approach__head p{
  font-size: 1.3vw;
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.02em;
  margin: 0;
}

.top-approach__label {
  margin: 0;
  color: #ffffff;
  font-size: 1.5vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.top-approach__title {
  margin: 1vw 0 0;
  color: #ffffff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 3.9vw;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
}

.top-approach__text {
  margin-top: 3.2vw;
}

.top-approach__text p {
  margin: 0;
  color: #ffffff;
  font-size: 1.35vw;
  font-weight: 500;
  line-height: 2.1;
  letter-spacing: 0.02em;
}

.top-approach__text p + p {
  margin-top: 0.293vw;
}

@media screen and (max-width: 767px) {
  .top-approach__head figure {
    margin: 0 0 3vw;
  }
  .top-approach__head figure img {
    width: 50vw;
  }
  .top-approach__head p{
    font-size: 3.5vw;
  }
}

/* =========================
   top members
========================= */
.top-members {
  width: 100%;
  background: #ffffff;
}

.top-members__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 1.5vw 0 7.027vw;
}

.top-members__head {
  margin: 0;
}

.top-members__label {
  margin: 0;
  color: #31a8df;
  font-size: 1.3vw;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.top-members__title {
  margin: 0.733vw 0 0;
  color: #333333;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 3.9vw;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: 0.02em;
}

.top-members__list {
  margin-top: 3.8vw;
}

.top-members__item {
  width: 100%;
  display: grid;
  grid-template-columns: 12.445vw 1fr 2.197vw;
  align-items: center;
  column-gap: 0;
  padding: 2vw 1.5vw;
  border-bottom: 0.073vw dashed #999999;
  color: inherit;
  text-decoration: none;
}

.top-members__item:last-child{
  border-bottom: 0;
}

.top-members__name {
  position: relative;
  display: inline-block;
  width: fit-content;
  color: #000000;
  font-size: 1.8vw;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.02em;
  padding-bottom: 0.01vw;
  justify-self: start;
}

.top-members__name::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 0.05vw;
  background: #000000;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s ease;
}

.top-members__item:hover .top-members__name::after {
  transform: scaleX(1);
}

.top-members__meta {
  color: #000000;
  font-size: 1.25vw;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.01em;
}

.top-members__arrow {
  justify-self: end;
  position: relative;
  width: 0.806vw;
  height: 0.806vw;
  transform: translateX(0);
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.top-members__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.35vw;
  height: 1.15vw;
  border-top: 0.11vw solid #000000;
  border-right: 0.11vw solid #000000;
  transform: translate(-60%, -50%) rotate(45deg) scaleX(0.82);
  transform-origin: center;
}

.top-members__item:hover .top-members__arrow {
  transform: translateX(0.513vw);
}

.top-members__cta-wrap {
  margin-top: 3.7vw;
}

.top-members__cta {
  position: relative;
  width: 100%;
  min-height: 8vw;
  border: 0.4vw solid #31a8df;
  border-radius: 9999vw;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 7.027vw;
  overflow: hidden;
  text-decoration: none;

  background-color: #31a8df;
  background-image: linear-gradient(#fff, #fff);
  background-repeat: no-repeat;
  background-position: right top;
  background-size: 100% 100%;

  transition: background-size 0.35s ease;
}

.top-members__cta:hover {
  background-size: 0 100%;
}

.top-members__cta-text,
.top-members__cta-arrow {
  position: relative;
  z-index: 1;
  transition: color 0.25s ease;
}

.top-members__cta-text {
  color: #31a8df;
  font-size: 2.4vw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.top-members__cta-arrow {
  position: absolute;
  top: 50%;
  right: 2.93vw;
  width: 1.099vw;
  height: 1.099vw;
  transform: translateY(-50%);
}

.top-members__cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.733vw;
  height: 0.733vw;
  border-top: 0.3vw solid #31a8df;
  border-right: 0.3vw solid #31a8df;
  transform: translate(-60%, -50%) rotate(45deg) scaleX(0.82);
  transform-origin: center;
  transition: border-color 0.25s ease;
}

.top-members__cta:hover .top-members__cta-text {
  color: #ffffff;
}

.top-members__cta:hover .top-members__cta-arrow::before {
  border-top-color: #ffffff;
  border-right-color: #ffffff;
}

.top-members__cta-note {
  margin: 1vw 0 0;
  color: #000000;
  font-size: 1.2vw;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.02em;
  text-align: center;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .top-approach__inner,
  .top-members__inner {
    padding: 1.5vw 30px 7vw;
  }

  .top-approach__inner {
    padding-top: 7.5vw;
    padding-bottom: 8vw;
  }

  .top-approach__label {
    font-size: 2vw;
  }

  .top-approach__title {
    margin-top: 1.4vw;
    font-size: 5.4vw;
  }

  .top-approach__text {
    margin-top: 4.8vw;
  }

  .top-approach__text p {
    font-size: 1.7vw;
    line-height: 2;
  }

  .top-members__inner {
    padding-top: 2vw;
    padding-bottom: 7.5vw;
  }

  .top-members__label {
    font-size: 2.1vw;
  }

  .top-members__title {
    font-size: 5.4vw;
  }

  .top-members__list {
    margin-top: 0w;
  }

  .top-members__item {
    grid-template-columns: 15vw 1fr 2.5vw;
    column-gap: 3vw;
    padding: 2vw 0;
  }

  .top-members__name {
    font-size: 3vw;
  }

  .top-members__meta {
    font-size: 1.85vw;
  }

  .top-members__arrow {
    width: 1vw;
    height: 1vw;
  }

  .top-members__arrow::before {
    width: 0.72vw;
    height: 0.72vw;
    border-top-width: 0.12vw;
    border-right-width: 0.12vw;
  }

  .top-members__cta {
    min-height: 8.2vw;
    border-width: 0.3vw;
    padding: 0 7vw;
  }

  .top-members__cta-text {
    font-size: 3vw;
  }

  .top-members__cta-arrow {
    right: 3vw;
    width: 1.3vw;
    height: 1.3vw;
  }

  .top-members__cta-arrow::before {
    width: 0.9vw;
    height: 0.9vw;
    border-top-width: 0.2vw;
    border-right-width: 0.2vw;
  }

  .top-members__cta-note {
    font-size: 1.7vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .top-approach__inner {
    padding: 15vw 20px;
  }

  .top-approach__label {
    font-size: 4.688vw;
    line-height: 1.5;
  }

  .top-approach__title {
    margin-top: 2.865vw;
    font-size: 10.938vw;
    line-height: 1.1;
  }

  .top-approach__text {
    margin-top: 9.115vw;
  }

  .top-approach__text p {
    font-size: 4.427vw;
    line-height: 2;
  }

  .top-members__inner {
    padding: 12vw 20px 15vw;
  }

  .top-members__label {
    font-size: 4.427vw;
    line-height: 1.4;
  }

  .top-members__title {
    margin-top: 2.083vw;
    font-size: 10.417vw;
    line-height: 1.08;
  }

  .top-members__list {
    margin-top: 0;
  }

  .top-members__item {
    grid-template-columns: 1fr 4.688vw;
    row-gap: 2.083vw;
    column-gap: 2.604vw;
    padding: 4.688vw 0;
  }

  .top-members__name {
    grid-column: 1 / 2;
    font-size: 6.771vw;
    border-bottom-width: 0.391vw;
    width: fit-content;
  }

  .top-members__meta {
    grid-column: 1 / 2;
    font-size: 3.906vw;
    line-height: 1.8;
  }

  .top-members__arrow {
    grid-column: 2 / 3;
    grid-row: 1 / 3;
    align-self: center;
    width: 2.344vw;
    height: 2.344vw;
  }

  .top-members__arrow::before {
            width: 12px;
        height: 10px;
        border-top-width: 1px;
        border-right-width: 1px;
  }

  .top-members__item:hover .top-members__arrow {
    transform: translateX(1.302vw);
  }

  .top-members__cta-wrap {
    margin-top: 8.333vw;
  }

  .top-members__cta {
    min-height: 16.927vw;
    border-width: 0.651vw;
    padding: 0 13.021vw 0 8.333vw;
  }

  .top-members__cta-text {
    font-size: 6.031vw;
    line-height: 1.2;
    text-align: center;
    letter-spacing: 0.4vw;
  }

  .top-members__cta-arrow {
    right: 5.208vw;
    width: 3.385vw;
    height: 3.385vw;
  }

  .top-members__cta-arrow::before {
    width: 2.344vw;
    height: 2.344vw;
    border-top-width: 0.521vw;
    border-right-width: 0.521vw;
  }

  .top-members__cta-note {
    margin-top: 4.167vw;
    font-size: 3.2vw;
        line-height: 1.7;
  }
}

/* =========================
   top research links
========================= */
.top-links {
  width: 100%;
}

.top-links__group {
  width: 100%;
  background: #ffffff;
}

.top-links__group--bg {
  background: #f3fafe;
}

.top-links__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 5.859vw 0 3.5vw;
}

.top-links__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4.395vw;
}

.top-links__content {
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 0;
}

.top-links__label {
  margin: 0;
  color: #31a8df;
  font-size: 1.4vw;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.01em;
}

.top-links__title {
  margin: 0.733vw 0 0;
 color: #302f2f;
 font-family: "Roboto", "Noto Sans JP", sans-serif;
 font-size: 3.9vw;
 font-weight: 900;
 line-height: 1.08;
 letter-spacing: 0.0em;
}

.top-links__text {
   max-width: none;
 margin: 2.49vw 0 0;
 color: #222222;
 font-size: 1vw;
 font-weight: 400;
 line-height: 2.05;
 letter-spacing: 0.02em;
}

.top-links__button {
  width: 14.641vw;
  min-height: 3.5vw;
  margin-top: 2.4vw;
  border-radius: 999vw;
  background: #31a8df;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.1vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: background 0.25s ease;
}

.top-links__button:hover {
  background: #1d8fcb;
}

.top-links__image {
  flex: 0 0 auto;
  width: 29vw;
  max-width: 440px;
  margin: 0;
}

.top-links__image-item {
  display: block;
  width: 100%;
  height: auto;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .top-links__inner {
    padding: 6.2vw 30px 5.8vw;
  }

  .top-links__item {
    gap: 3.5vw;
  }

  .top-links__content {
    padding-left: 0;
  }

  .top-links__label {
    font-size: 2vw;
  }

  .top-links__title {
    margin-top: 1vw;
    font-size: 5.4vw;
  }

  .top-links__text {
    max-width: 52vw;
    margin-top: 2.8vw;
    font-size: 1.9vw;
    line-height: 2;
  }

  .top-links__button {
    width: 17vw;
    min-height: 4.4vw;
    margin-top: 3vw;
    font-size: 1.8vw;
  }

  .top-links__image {
    width: 34vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .top-links__inner {
    padding: 7vw 20px 18vw;
  }

  .top-links__item {
    flex-direction: column-reverse;
    gap: 7.5vw;
  }

  .top-links__content {
    padding-left: 0;
  }

  .top-links__label {
    font-size: 4.427vw;
    line-height: 1.4;
  }

  .top-links__title {
    margin-top: 2.083vw;
    font-size: 10.417vw;
    line-height: 1.08;
  }

  .top-links__text {
    max-width: 100%;
    margin-top: 5.208vw;
    font-size: 3.7vw;
    line-height: 2;
  }

  .top-links__button {
            width: 31.25vw;
        min-height: 9.896vw;
        margin: 8vw auto 0;
        font-size: 4.167vw;
        display: flex;
  }

  .top-links__image {
    width: 72.917vw;
    margin: 8.333vw auto 0;
  }
}

/* =========================
   top news
========================= */
.top-news {
  width: 100%;
  background: #ffffff;
}

.top-news__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 5.859vw 0 7.617vw;
}

.top-news__head {
  text-align: left;
}

.top-news__label {
  margin: 0;
  color: #31a8df;
  font-size: 1.3vw;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.top-news__title {
  margin: 0.44vw 0 0;
  color: #111111;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 3.9vw;
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: 0;
}

.top-news__list {
  margin: 3.2vw 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.344vw;
}

.top-news__item {
  width: 100%;
}

.top-news__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.top-news__image {
  width: 100%;
  margin: 0;
  aspect-ratio: 1 / 0.74;
  overflow: hidden;
  background: #efefef;
}

.top-news__image-item {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.top-news__meta {
  margin-top: 1.318vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.172vw;
}

.top-news__date {
  display: block;
  color: #222222;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.1vw;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
}

.top-news__category {
  flex: 0 0 auto;
  height: 2vw;
  padding: 0 0.733vw;
  background: #000000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.03em;
}

.top-news__post-title {
  margin: 1.025vw 0 0;
  color: #111111;
  font-size: 1.1vw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.01em;

  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.top-news__link:hover .top-news__image,
.top-news__link:hover .top-news__post-title {
  opacity: 0.82;
}

.top-news__button-wrap {
  margin-top: 4.688vw;
  text-align: center;
}

.top-news__button {
  min-width: 14.641vw;
  min-height: 3.3vw;
  padding: 0.732vw 2.197vw;
  border-radius: 999vw;
  background: #31a8df;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.2vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: background 0.25s ease;
}

.top-news__button:hover {
  background: #1d8fcb;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .top-news__inner {
    padding: 6.5vw 30px 8vw;
  }

  .top-news__label {
    font-size: 2vw;
  }

  .top-news__title {
    margin-top: 0.8vw;
    font-size: 6vw;
  }

  .top-news__list {
    margin-top: 4.5vw;
    gap: 2vw;
  }

  .top-news__meta {
    margin-top: 1.6vw;
  }

  .top-news__date {
    font-size: 1.7vw;
  }

  .top-news__category {
    min-width: 7vw;
    height: 2.7vw;
    font-size: 1.5vw;
  }

  .top-news__post-title {
    margin-top: 1.2vw;
    font-size: 2.1vw;
    line-height: 1.45;
  }

  .top-news__button-wrap {
    margin-top: 5.5vw;
  }

  .top-news__button {
    min-width: 17vw;
    min-height: 4.4vw;
    font-size: 1.8vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .top-news__inner {
    padding: 14.323vw 20px 15.625vw;
  }

  .top-news__head {
    text-align: left;
  }

  .top-news__label {
    font-size: 4.427vw;
    line-height: 1.4;
  }

  .top-news__title {
    margin-top: 1.302vw;
    font-size: 12.5vw;
    line-height: 1.02;
  }

  .top-news__list {
    margin-top: 8.333vw;
    grid-template-columns: 1fr;
    gap: 8.333vw;
  }

  .top-news__meta {
    margin-top: 3.125vw;
    gap: 2.604vw;
  }

  .top-news__date {
    font-size: 4.167vw;
    line-height: 1.3;
  }

  .top-news__category {
    min-width: fit-content;
        height: 6.5vw;
        padding: 0.5vw 3vw 0;
        font-size: 3.5vw;
  }

  .top-news__post-title {
    margin-top: 2.344vw;
    font-size: 4.2vw;
    line-height: 1.45;
  }

  .top-news__button-wrap {
    margin-top: 12vw;
  }

  .top-news__button {
    min-width: 31.25vw;
    min-height: 9.896vw;
    padding: 2.083vw 5.208vw;
    font-size: 4.167vw;
  }
}

/* =========================
   footer
========================= */
.site-footer {
  width: 100%;
  background: #29abe2;
}

.site-footer__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 7.324vw 0 2.5vw;
  text-align: center;
}

.site-footer__logo {
  display: flex;
  justify-content: center;
}

.site-footer__logo-image {
  display: block;
  width: 16.691vw;
  max-width: 100%;
  height: auto;
}

.site-footer__nav {
  max-width: fit-content;
  margin: 5.273vw auto 0;
}

.site-footer__nav-row {
  display: flex;
  justify-content: center;
  align-items: center;
}

.site-footer__nav-row--topics {
  gap: 4.102vw;
}

.site-footer__heading {
  color: #fff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.3vw;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
}

.site-footer__topics-list,
.site-footer__bottom-list {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer__topics-list {
  gap: 2.93vw;
}

.site-footer__bottom-list {
  gap: 5.127vw;
}

.site-footer__topics-item,
.site-footer__bottom-list li {
  position: relative;
}

/*.site-footer__topics-item {
  padding-left: 1.611vw;
}*/

/*.site-footer__topics-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.732vw;
  height: 0.146vw;
  background: #fff;
  transform: translateY(-50%);
}*/

.site-footer__nav-row--bottom {
  margin-top: 2vw;
}

.site-footer__link {
  position: relative;
  display: inline-block;
  color: #fff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.2vw;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

.site-footer__link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.146vw;
  width: 100%;
  height: 0.146vw;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}

.site-footer__link:hover::after,
.site-footer__link:focus-visible::after {
  transform: scaleX(1);
}

.site-footer__copyright {
  margin: 6.445vw 0 0;
  color: #fff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1vw;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.01em;
}

/* =========================
   page top
========================= */
.page-top {
  position: fixed;
  right: 45px;
  bottom: 45px;
  display: block;
  width: 4vw;
  height: 4vw;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(16px);
  transition:
    opacity 0.35s ease,
    visibility 0.35s ease,
    transform 0.35s ease;
  z-index: 999;
}

.page-top.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.page-top:hover,
.page-top:focus-visible {
  transform: translateY(0) scale(1.06);
}

.page-top__image {
  display: block;
  width: 100%;
  height: auto;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .site-footer__inner {
    padding: 8vw 30px 4vw;
  }

  .site-footer__logo-image {
    width: 20vw;
  }

  .site-footer__nav {
    margin-top: 5.8vw;
  }

  .site-footer__nav-row {
    justify-content: center;
  }

  .site-footer__nav-row--topics {
    gap: 3vw;
  }

  .site-footer__heading {
    font-size: 2.2vw;
  }

  .site-footer__topics-list {
    gap: 2.2vw;
  }

  .site-footer__bottom-list {
    gap: 4vw;
  }

  .site-footer__topics-item {
    padding-left: 1.5vw;
  }

  .site-footer__topics-item::before {
    width: 0.8vw;
    height: 0.16vw;
  }

  .site-footer__link {
    font-size: 1.9vw;
  }

  .site-footer__copyright {
    margin-top: 6.8vw;
    font-size: 1.8vw;
  }

  .page-top {
    right: 30px;
        bottom: 30px;
        width: 5vw;
        height: 5vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .site-footer__inner {
    padding: 18vw 20px 9vw;
  }

  .site-footer__logo-image {
    width: 48vw;
  }

  .site-footer__nav {
    margin-top: 11.719vw;
  }

  .site-footer__nav-row {
    display: block;
  }

  .site-footer__nav-row--topics {
    gap: 0;
  }

  .site-footer__heading {
    font-size: 5.729vw;
    line-height: 1.4;
  }

  .site-footer__topics-list,
  .site-footer__bottom-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4.167vw;
  }

  .site-footer__topics-list {
    margin-top: 0;
  }

  .site-footer__bottom-list {
    margin-top: 5.3vw;
    gap: 5.3vw;
  }

  .site-footer__topics-item {
    padding-left: 0;
  }

  .site-footer__topics-item::before {
    width: 1.823vw;
    height: 0.391vw;
  }

  .site-footer__nav-row--bottom {
    margin-top: 5.3vw;
  }

  .site-footer__link {
    font-size: 4.2vw;
    line-height: 1.4;
  }

  .site-footer__link::after {
    bottom: -0.391vw;
    height: 0.26vw;
  }

  .site-footer__copyright {
    margin-top: 13.021vw;
    font-size: 3.5vw;
    line-height: 1.6;
  }

  .page-top {
    right: 20px;
        bottom: 28px;
        width: 10vw;
        height: 10vw;
  }
}

/* =========================
   page mv
========================= */

.page-mv {
  width: 100%;
  background: #f7fbfd;
  overflow: hidden;
  padding-top: 9vw;
}

.page-mv-inner {
  width: 83%;
  margin: 0 auto;
  padding: 1vw 0 7vw;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 4.395vw;
}

.page-mv-content {
  flex: 1 1 auto;
  margin-top: auto;
  min-width: 0;
}

.page-mv-label {
  margin-bottom: 0.5vw;
  color: #29abe2;
  font-size: 1.6vw;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.page-mv-title {
  margin: 0;
  color: #000000;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 4.8vw;
  font-weight: 900;
  line-height: 0.96;
  letter-spacing: 0;
}

.page-mv-title span {
  display: block;
}

.page-mv-text {
  width: 100%;
  max-width: 36vw;
  margin: 3vw 0 0;
  color: #00002a;
  font-size: 1.1vw;
  font-weight: 500;
  line-height: 2.05;
  letter-spacing: 0.02em;
}

.page-mv-image {
  flex: 0 0 auto;
  width: 43.5%;
  margin: 0;
}

.page-mv-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1.611vw 1.611vw 0 1.611vw;
  object-fit: cover;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .page-mv{
    padding-top: 12vw;
  }
  .page-mv-inner {
    padding: 0 30px 7vw;
    gap: 3vw;
    width: 100%;
  }

  .page-mv-content {
    padding: 0;
  }

  .page-mv-label {
    margin-bottom: 1.5vw;
    font-size: 2vw;
  }

  .page-mv-title {
    font-size: 6vw;
  }

  .page-mv-text {
    max-width: fit-content;
    margin-top: 3vw;
    font-size: 1.45vw;
  }

  .page-mv-image {
    width: 40vw;
  }

  .page-mv-image img {
    border-radius: 1.8vw 1.8vw 0 1.8vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .page-mv{
    padding-top: 27vw;
  }

  .page-mv-inner {
            padding: 0 20px 15vw;
        flex-direction: column-reverse;
        gap: 11vw;
  }

  .page-mv-label {
    margin: 0 0 3vw;
    font-size: 4.2vw;
  }

  .page-mv-title {
    font-size: 10vw;
    line-height: 0.95;
  }

  .page-mv-text {
    max-width: 100%;
    margin: 6.51vw 0 0;
    font-size: 3.646vw;
    line-height: 2;
  }

  .page-mv-image {
            width: 80%;
        margin: 0 auto;
  }

  .page-mv-image img {
    border-radius: 3.906vw 3.906vw 0 3.906vw;
  }
}

/* =========================
   scroll fade up motion
========================= */
.js-fade-up {
  opacity: 0;
  transform: translateY(4vw);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;
}

.js-fade-up.is-visible {
  opacity: 1;
  transform: none;
}

.js-fade-up {
  position: relative;
}

.js-fade-up.is-note-open {
  z-index: 30;
}

.parts__note-wrap {
  position: relative;
  z-index: 10;
}

.parts__note-popup {
  z-index: 1000;
  display: none;
}

/* fade left → right */
.js-fade-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.js-fade-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .js-fade-up {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* =========================
   toc
========================= */
.toc-box {
  width: 100%;
  background: #f2f2f2;
  overflow: visible;
  margin-bottom: 3vw;
}

.toc-box .glossary-container {
  width: 100%;
  margin: 0 auto;
    padding: 0 0 0 13.4vw;
}

.research-index {
  position: relative;
}

.research-index__inner {
  display: grid;
  grid-template-columns: 8.8vw 1fr;
  align-items: start;
  gap: 5.6vw;
  padding: 0 0 7.2vw;
}

.research-index__label {
  width: 8vw;
  height: 7.275vw;
  background: #000000;
  border-radius: 0 0 1.2vw 1.2vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.9vw;
  align-self: start;
  margin-left: auto;
  flex-shrink: 0;
}

.research-index__label-icon {
  width: 1.6vw;
  height: auto;
  display: block;
}

.research-index__label-text {
  color: #ffffff;
  font-size: 1.4vw;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.3em;
}

.research-index__content {
  min-width: 0;
  padding-top: 4.1vw;
}

.research-index__group + .research-index__group {
  margin-top: 2.5vw;
}

.research-index__group > *:first-child {
  margin-top: 0;
}

.research-index__group > *:last-child {
  margin-bottom: 0;
}

.research-index__heading {
   display: inline-flex;
 align-items: flex-start;
 gap: 1.025vw;
 margin: 0 0 1vw;
 font-size: 1.1vw;
 font-weight: 700;
 line-height: 1.45;
 letter-spacing: 0.01em;
}

.research-index__heading:empty {
  display: none;
}

.research-index__heading-icon {
  width: 1vw;
  margin-top: 0.3vw;
  height: auto;
  display: block;
  flex: 0 0 auto;
}

.research-index__heading-link {
  display: inline-block;
  color: #333333;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.research-index__heading-link:hover {
  opacity: 0.75;
}

.research-index__heading-line {
  display: inline-flex;
  align-items: center;
  gap: 0.35vw;
  min-width: 0;
}

.research-index__heading-num {
  flex: 0 0 auto;
  font-size: 1.05vw;
  font-weight: 500;
  line-height: 1.45;
  color: #333333;
}

.research-index__heading-text {
  display: inline-block;
  padding-bottom: 0;
  border-bottom: 0.073vw solid #333333;
}

.research-index__group--heading-hidden .research-index__heading {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}

.research-index__list {
  display: flex;
 flex-direction: column;
 gap: 1vw;
}

.research-index__list li {
  line-height: 1;
}

.research-index__list a {
  display: inline-flex;
  align-items: center;
  color: #333333;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.research-index__list a:hover {
  opacity: 0.75;
}

.research-index__item-line {
  display: inline-flex;
  align-items: center;
  gap: 0.35vw;
  min-width: 0;
}

.research-index__item-num {
  flex: 0 0 auto;
  font-size: 1.05vw;
  font-weight: 500;
  line-height: 1.45;
  color: #333333;
}

.research-index__item-text {
  display: inline-block;
 padding-bottom: o;
 border-bottom: 0.073vw solid #333333;
 font-size: 1vw;
 font-weight: 500;
 line-height: 1.45;
 letter-spacing: 0.01em;
}

.research-index__more {
  height: 0;
  overflow: hidden;
}

.research-index__more-inner {
  padding-top: 2.5vw;
}

.research-index__toggle-wrap {
  position: relative;
  display: flex;
  justify-content: center;
  margin-top: -1.978vw;
  padding-bottom: 0;
}

.research-index__toggle {
  min-width: 17vw;
  min-height: 4vw;
  padding: 0.879vw 2.196vw 1.098vw;
  border: 0;
  border-radius: 2.489vw 2.489vw 0 0;
  background: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.952vw;
  cursor: pointer;
  font-size: 1.05vw;
  font-weight: 500;
  line-height: 1.2;
  color: #000000;
  transition: opacity 0.2s ease;
  position: absolute;
  top: -2vw;
  right: 41.5vw;
}

.research-index__toggle:hover {
  opacity: 0.82;
}

.research-index__toggle-icon {
  width: 1.5vw;
  height: 1.5vw;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.research-index__toggle-icon-image {
  width: 100%;
  height: auto;
  display: block;
  transform: rotate(180deg);
  transition: transform 0.25s ease;
}

.research-index.is-open .research-index__toggle-icon-image {
  transform: rotate(0deg);
}

.research-index__toggle-label {
  display: inline-block;
  letter-spacing: 0.1em;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .toc-box .glossary-container {
    padding: 0 30px;
  }

  .research-index__inner {
    grid-template-columns: 20vw 1fr;
    gap: 3.6vw;
    padding: 0 0 9vw;
  }

  .research-index__label {
    width: 10.8vw;
    height: 8.2vw;
    border-radius: 0 0 1.8vw 1.8vw;
    gap: 0.9vw;
  }

  .research-index__label-icon {
    width: 2.9vw;
  }

  .research-index__label-text {
    font-size: 2vw;
  }

  .research-index__content {
    padding-top: 6vw;
  }

  .research-index__group + .research-index__group {
    margin-top: 5vw;
  }

  .research-index__heading {
    gap: 1.2vw;
    margin-bottom: 1.6vw;
    font-size: 1.6vw;
  }

  .research-index__heading-icon {
    width: 1.4vw;
    margin-top: 0.5vw;
  }

  .research-index__heading-line {
    gap: 0.45vw;
  }

  .research-index__heading-num {
    font-size: 1.5vw;
  }

  .research-index__heading-text {
    padding-bottom: 0.28vw;
  }

  .research-index__list {
    gap: 1.15vw;
    margin-top: 1vw;
  }

  .research-index__item-line {
    gap: 0.45vw;
  }

  .research-index__item-num {
    font-size: 1.6vw;
  }

  .research-index__item-text {
    font-size: 1.6vw;
    padding-bottom: 0.28vw;
  }

  .research-index__more-inner {
    padding-top: 4.9vw;
  }

  .research-index__toggle-wrap {
    margin-top: -2.2vw;
  }

  .research-index__toggle {
    min-width: 28vw;
    min-height: 5.8vw;
    padding: 1.1vw 2.5vw 1.2vw;
    border-radius: 3vw 3vw 0 0;
    gap: 1vw;
    font-size: 1.8vw;
    right: 33.5vw;
  }

  .research-index__toggle-icon {
    width: 1.9vw;
    height: 1.9vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .toc-box{
    margin-bottom: 10vw;
  }

  .js-fade-up {
    transform: translateY(8vw);
  }

  .toc-box .glossary-container {
    padding: 0 20px 13vw;
  }

  .research-index__inner {
    display: block;
    padding: 0 0 12.5vw;
  }

  .research-index__label {
    width: 27vw;
    height: 20vw;
    margin: 0 auto;
    border-radius: 0 0 4.688vw 4.688vw;
    gap: 2.344vw;
  }

  .research-index__label-icon {
    width: 6vw;
  }

  .research-index__label-text {
    font-size: 4.5vw;
  }

  .research-index__content {
    padding-top: 12vw;
  }

  .research-index__group + .research-index__group {
    margin-top: 9vw;
  }

  .research-index__heading {
    gap: 2.865vw;
    margin-bottom: 5.208vw;
    font-size: 5.208vw;
    line-height: 1.5;
    align-items: flex-start;
  }

  .research-index__heading-icon {
    width: 3vw;
    margin-top: 3.15vw;
  }

  .research-index__heading-line {
    gap: 1vw;
    align-items: flex-start;
    font-size: 3.5vw;
  }

  .research-index__heading-num {
    font-size: 3.5vw;
    line-height: 1.8;
  }

  .research-index__heading-text {
    padding-bottom: 0;
    border-bottom-width: 0;
    text-decoration-line: underline;
    text-decoration-color: #333;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.3em;
    line-height: 1.8;
  }

  .research-index__list {
    gap: 3.125vw;
    padding-left: 3.4vw;
    margin-top: 0;
  }

  .research-index__list a {
    align-items: flex-start;
  }

  .research-index__item-line {
    gap: 0.911vw;
    align-items: flex-start;
  }

  .research-index__item-num {
    font-size: 3.5vw;
    line-height: 1.8;
  }

  .research-index__item-text {
    padding-bottom: 0;
        border-bottom-width: 0;
        text-decoration-line: underline;
        text-decoration-color: #333;
        text-decoration-thickness: 1px;
        text-underline-offset: 0.3em;
        line-height: 1.8;
        font-size: 3.5vw;
  }

  .research-index__more-inner {
    padding-top: 8vw;
  }

  .research-index__toggle-wrap {
    margin-top: -5.99vw;
  }

  .research-index__toggle {
    width: 100%;
    max-width: 72.917vw;
    min-height: 13.542vw;
    padding: 2.865vw 4.688vw 3.125vw;
    border-radius: 100vw;
    gap: 2.344vw;
    font-size: 4.167vw;
    text-align: center;
    top: 6vw;
    right: auto;
  }

  .research-index__toggle-icon {
    width: 4.688vw;
    height: 4.688vw;
  }
}

/* =========================
   脚注 popup common
========================= */
.parts__note-wrap {
  position: relative;
  display: inline-block;
  vertical-align: baseline;
}

.parts__note-wrap--title {
  margin-left: 0.366vw;
}

.parts__note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.318vw;
  height: 1.318vw;
  padding: 0 0.293vw;
  border: none;
  border-radius: none;
  background: none;
  color: #0071bc;
  font-size: 0.806vw;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-0.55em);
  transition: background 0.2s ease, opacity 0.2s ease;
}

.parts__note:hover,
.parts__note:focus-visible {
  background: rgba(57, 181, 74, 0.14);
  outline: none;
}

.parts__note-popup {
  position: absolute;
  top: 1.9em;
  left: 50%;
  transform: translateX(-50%) translateY(0.439vw);
  width: min(23.426vw, 78vw);
  max-width: calc(100vw - 32px); /* 追加 */
  padding: 1.025vw 1.172vw;
  border: 0.073vw solid #d9ddd8;
  border-radius: 1.172vw;
  background: #fff;
  box-shadow: 0 0.732vw 2.197vw rgba(0, 0, 0, 0.08);
  color: #2b2e2b;
  font-size: 0.7vw;
  line-height: 1.8;
  z-index: 50;
  --popup-arrow-left: 50%; /* 追加 */
  box-sizing: border-box;  /* 追加 */
}

.parts__note-popup.open {
  display: block; /* 追加 */
  pointer-events: auto;
  /* opacity, visibility は不要なので削除 */
}

.parts__note-popup::before {
  content: "";
  position: absolute;
  top: -0.439vw;
  left: var(--popup-arrow-left); /* 変更 */
  width: 0.879vw;
  height: 0.879vw;
  background: #fcfcfa;
  border-top: 0.073vw solid #d9ddd8;
  border-left: 0.073vw solid #d9ddd8;
  transform: translateX(-50%) rotate(45deg); /* 変更 */
}

.parts__note-label {
  color: #0071bc;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 0.7vw;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding-right: 0.5vw;
}

.popup-flex-inner{
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}

.popup-flex-inner + .popup-flex-inner{
  margin-top: 0.8vw;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .parts__note-wrap {
    margin-left: 0.2vw;
  }

  .parts__note-wrap--title {
    margin-left: 0.45vw;
  }

  .parts__note {
    min-width: 1.6vw;
    height: 1.6vw;
    padding: 0 0.35vw;
    border-width: 0.08vw;
    font-size: 0.95vw;
  }

  .parts__note-popup {
    width: min(28vw, 78vw);
    max-width: calc(100vw - 32px); /* 追加 */
    padding: 1.2vw 1.35vw;
    border-width: 0.08vw;
    border-radius: 1.3vw;
    font-size: 1.05vw;
  }

  .parts__note-popup::before {
    top: -0.5vw;
    width: 1vw;
    height: 1vw;
    border-top-width: 0.08vw;
    border-left-width: 0.08vw;
  }

  .parts__note-label {
    font-size: 1vw;
    line-height: 2;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .parts__note-wrap {
    margin-left: 0.521vw;
  }

  .parts__note-wrap--title {
    margin-left: 0.781vw;
  }

  .parts__note {
    min-width: 4.427vw;
    height: 4.427vw;
    padding: 0 1.042vw;
    border-width: 0.26vw;
    font-size: 2.604vw;
    transform: translateY(-0.52em);
  }

  .parts__note-popup {
    top: 2em;
    left: 50%; /* 変更 */
    transform: translateX(-50%) translateY(1.042vw); /* 変更 */
    width: min(72.917vw, 78vw);
    max-width: calc(100vw - 24px); /* 追加 */
    padding: 3.125vw 3.646vw;
    border-width: 0.26vw;
    border-radius: 3.125vw;
    box-shadow: 0 2.083vw 6.25vw rgba(0, 0, 0, 0.08);
    font-size: 3.3vw;
    line-height: 1.5;
    box-sizing: border-box;
  }

  .parts__note-popup.open {
    transform: translateX(-50%) translateY(0); /* 変更 */
  }

  .parts__note-popup::before {
    top: -1.172vw;
    left: var(--popup-arrow-left); /* 変更 */
    width: 2.344vw;
    height: 2.344vw;
    border-top-width: 0.26vw;
    border-left-width: 0.26vw;
    transform: translateX(-50%) rotate(45deg); /* 変更 */
  }

  .parts__note-label {
    font-size: 3vw;
    letter-spacing: 0.03em;
  }
  .popup-flex-inner + .popup-flex-inner{
    margin-top: 2vw;
  }
}

/* =========================
   parts0
========================= */

.parts0 {
  width: 100%;
}

/* =========================
   parts1
========================= */
.parts1 {
  width: 100%;
}

.backcolor-none {
  background: transparent;
}

.parts__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 8vw 0 11.5vw;
}

.parts__inner .first-content-section{
  padding: 8vw 0 11.5vw;
}

.parts__head {
  text-align: center;
}

.parts__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.172vw;
}

.parts__number-box {
  width: 4.688vw;
  height: 4.688vw;
  border-radius: 0.586vw;
  background: #31a8df;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 2.344vw;
  font-weight: 700;
  line-height: 1;
}

.parts__number-side {
  width: 1.172vw;
  height: auto;
  display: block;
}

.parts__title {
  margin: 3.223vw 0 0;
  color: #000000;
  font-size: 2.8vw;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.02em;
  text-align: center;
}

.parts__lead {
  max-width: 100%;
  margin: 4.3vw auto 0;
}

.parts__lead p {
  margin: 0;
  color: #000;
  font-size: 1vw;
  font-weight: 400;
  line-height: 2.1;
  letter-spacing: 0.01em;
}

.parts__lead p + p {
  margin-top: 2.7vw;
}

.parts1__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.637vw;
  margin-top: 5.859vw;
}

.parts1__card {
  position: relative;
  border: 0.35vw solid #e6e6e6;
  border-radius: 1.6vw;
  background: transparent;
}

.parts1__card-body {
  padding: 6.299vw 2.344vw 3.516vw;
  text-align: center;
}

.parts1__card-icon-wrap {
  position: absolute;
  top: -6vw;
  left: 50%;
  transform: translateX(-50%);
  width: 11.5vw;
  height: 11.5vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.parts1__card-icon {
  width: 100%;
  height: auto;
  display: block;
}

.parts1__card-title {
  margin: 0;
  color: #31a8df;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2vw;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.parts1__card-subtitle {
  margin: 0.439vw 0 0;
  color: #31a8df;
  font-size: 1.3vw;
  font-weight: 400;
  line-height: 1.4;
}

.parts1__card-divider {
  margin: 1.7vw 0 0;
  color: #000000;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.4vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.2em;
  text-indent: 0.5em;
}

.parts1__card-text {
  margin: 1.6vw 0 0;
  color: #333333;
  font-size: 1.3vw;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.1em;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .parts__inner {
    padding: 8vw 30px 10vw;
  }

  .parts__number {
    gap: 1.2vw;
  }

  .parts__number-box {
    width: 5.2vw;
    height: 5.2vw;
    border-radius: 0.7vw;
    font-size: 2.5vw;
  }

  .parts__number-side {
    width: 1.2vw;
  }

  .parts__title {
    margin-top: 3.4vw;
    font-size: 3.5vw;
  }

  .parts__lead {
    margin-top: 5.5vw;
  }

  .parts__lead p {
    font-size: 1.4vw;
        line-height: 2.1;
  }

  .parts__lead p + p {
    margin-top: 3vw;
  }

  .parts1__cards {
    gap: 2.4vw;
    margin-top: 6.2vw;
  }

  .parts1__card {
    border-width: 0.3vw;
    border-radius: 2.2vw;
  }

  .parts1__card-body {
    min-height: 24vw;
            padding: 7.2vw 2vw 3.8vw;
  }

  .parts1__card-icon-wrap {
    top: -7.4vw;
        width: 13vw;
        height: 13vw;
  }

  .parts1__card-icon {
    width: 13vw;
  }

  .parts1__card-title {
    font-size: 2.3vw;
  }

  .parts1__card-subtitle {
    font-size: 1.7vw;
  }

  .parts1__card-divider {
    font-size: 1.9vw;
  }

  .parts1__card-text {
    font-size: 1.8vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .parts__inner {
    padding: 12.5vw 20px 20vw;
  }

  .parts__number {
    gap: 2.865vw;
  }

  .parts1__number-box {
    width: 11.719vw;
    height: 11.719vw;
    border-radius: 1.563vw;
    font-size: 6.25vw;
  }

  .parts__number-side {
    width: 4.7vw;
  }

  .parts__number-box{
    width: 11vw;
        height: 11vw;
        border-radius: 1.7vw;
        font-size: 6vw;
        line-height: 0;
  }

  .parts__title {
    margin-top: 7vw;
    font-size: 6vw;
    line-height: 1.35;
  }

  .parts__lead {
    margin-top: 10.417vw;
  }

  .parts__lead p {
    font-size: 3.7vw;
    line-height: 2.25;
  }

  .parts__lead p + p {
    margin-top: 8.333vw;
  }

  .parts1__cards {
            grid-template-columns: 1fr;
        gap: 19vw;
        margin-top: 19vw;
  }

  .parts1__card {
    border-width: 0.521vw;
    border-radius: 5.208vw;
  }

  .parts1__card-body {
    min-height: auto;
    padding: 14.323vw 4vw 8.073vw;
  }

  .parts1__card-icon-wrap {
    top: -17.417vw;
        width: 30vw;
        height: auto;
  }

  .parts1__card-icon {
    width: 30vw;
  }

  .parts1__card-title {
    font-size: 5vw;
    line-height: 1.45;
  }

  .parts1__card-subtitle {
    margin-top: 1vw;
    font-size: 3.7vw;
  }

  .parts1__card-divider {
    margin-top: 4vw;
    font-size: 4vw;
  }

  #teacher-section01 .parts1__card-text{
    text-align: center;
  }

  .parts1__card-text {
           margin-top: 3.906vw;
        font-size: 3.7vw;
        line-height: 1.5;
        text-align: left;
  }
  .parts1__card-center{
    text-align: center;
  }
}

/* =========================
   parts2
========================= */

.parts2 {
  width: 100%;
}

.backcolor-on {
  background: #f6faf8;
}

.column3-box {
  margin-top: 4.688vw;
}

.column3-box__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1vw;
  margin: 0;
  padding: 0;
  list-style: none;
  align-items: stretch;
}

.column3-box__item {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: transparent;
}

.column3-box__title {
  min-height: 4.541vw;
 margin: 0;
 padding: 1.172vw 1vw 1.245vw;
 background: #29abe2;
 color: #ffffff;
 font-size: 1.3vw;
 font-weight: 500;
 line-height: 1.25;
 /* letter-spacing: 0.05em; */
 text-align: center;
 display: flex;
 align-items: center;
 justify-content: center;
 flex-shrink: 0;
}

.column3-box__body {
  flex: 1 1 auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 2.4vw 1.2vw;
  background: #ffffff;
}

.column3-box__body p {
  margin: 0;
  color: #333333;
  font-size: 1vw;
  font-weight: 500;
  line-height: 1.95;
  letter-spacing: 0.01em;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .column3-box {
    margin-top: 5.2vw;
  }

  .column3-box__list {
    gap: 1.2vw;
  }

  .column3-box__title {
    min-height: 5.2vw;
    padding: 1.3vw 1.4vw;
    font-size: 1.5vw;
  }

  .column3-box__body {
    padding: 2.1vw 1.8vw 2.2vw;
  }

  .column3-box__body p {
    font-size: 1.65vw;
    line-height: 1.9;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .column3-box {
    margin-top: 10.417vw;
  }

  .column3-box__list {
    grid-template-columns: 1fr;
    gap: 4.167vw;
  }

  .column3-box__item {
    height: auto;
  }

  .column3-box__title {
            min-height: 0;
        font-size: 4vw;
        padding: 3vw 2vw;
        line-height: 1.3;
  }

  .column3-box__body {
            padding: 5vw 2vw 5vw;
  }

  .column3-box__body p {
    font-size: 3.7vw;
        line-height: 1.7;
  }
}

/* =========================
   parts3
========================= */
.parts3 {
  width: 100%;
}

.image-content-ver1 {
  display: flex;
  align-items: flex-start;
  gap: 4%;
  margin-top: 6vw;
}

.ver1-img-left {
  margin: 0;
  flex: 0 0 38%;
}

.ver1-img-left img{
  width: 100%;
  display: block;
}

.ver1-txt-right {
  flex: 1 1 0;
  min-width: 0;
}

.ver1-txt-right p{
  margin: 0;
  color: #2f2f2f;
  font-size: 1.15vw;
  font-weight: 500;
  line-height: 2.1;
  letter-spacing: 0.01em;
}

/* =========================
   parts3
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .image-content-ver1 {
    gap: 3.2vw;
    margin-top: 6.2vw;
  }

  .ver1-img-left {
    flex: 0 0 37%;
  }

  .ver1-img-left img {
    width: 100%;
  }

  .ver1-txt-right p {
    font-size: 1.6vw;
    line-height: 2.15;
  }
}

/* =========================
   parts3
   sp
========================= */
@media screen and (max-width: 767px) {
  .image-content-ver1 {
    display: block;
    margin-top: 10.417vw;
  }

  .ver1-img-left {
    width: 100%;
    max-width: 72.917vw;
    margin: 0 auto 6.51vw;
  }

  .ver1-img-left img {
    width: 90%;
    display: block;
    margin: 0 auto;
  }

  .ver1-txt-right {
    width: 100%;
  }

  .ver1-txt-right p {
    font-size: 3.646vw;
    line-height: 2.1;
  }

  .ver1-txt-right p + p {
    margin-top: 5.208vw;
  }
}

/* =========================
   parts4
========================= */
.parts4 {
  width: 100%;
}

.column3-box__title--numbered {
  justify-content: flex-start;
  gap: 1.245vw;
  text-align: left;
  position: relative;
}

.column3-box__title-num {
  position: absolute;
  top: 50%;
  left: 1vw;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  width: 1.6vw;
  height: 1.6vw;
  border-radius: 50%;
  background: #ffffff;
  color: #29abe2;
  font-size: 0.7vw;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  letter-spacing: 0;
}

.column3-box__title-text {
  display: inline-block;
  flex: 1 1 auto;
  text-align: center;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .column3-box__title--numbered {
    gap: 1vw;
  }

  .column3-box__title-num {
    width: 2.5vw;
    height: 2.5vw;
    font-size: 1.2vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .column3-box__title--numbered {
    gap: 2.604vw;
  }

  .column3-box__title-num {
    width: 6.771vw;
    height: 6.771vw;
    font-size: 3.125vw;
  }
}

/* =========================
   parts5
========================= */

.parts5{
  width: 100%;
}

.parts5-main{
  margin-top: 4.5vw;
}

.part5-content h3{
  background: #31a8df;
  padding: 0.7vw 1.8vw;
  font-size: 1.4vw;
  color: #fff;
  font-weight: 400;
  margin: 0;
  letter-spacing: 0.1em;
  margin-bottom: 0.8vw;
}

.part5-content dl{
  background: #fff;
  padding: 1.5vw 1.8vw;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 0.3vw;
}

.part5-content dl dt{
  background: #666666;
  color: #fff;
  border-radius: 0.3vw;
  padding: 0.45vw 2vw;
  font-size: 1.05vw;
  font-weight: 300;
}

.part5-content dl dd{
  margin-left: 2vw;
  font-size: 1.05vw;
  font-weight: 500;
}

.parts5-main ul li{
  margin-bottom: 4vw;
}

.parts5-main ul li:last-child{
  margin-bottom: 0;
}

/* =========================
   parts6
========================= */

.parts6{
  width: 100%;
}

.parts6-full{
  width: 100%;
}

.parts6-full img{
  width: 100%;
  display: block;
}

/* =========================
   parts7
========================= */

.parts7{
  width: 100%;
}

.parts7-main{
  width: 87%;
  margin: 4.5vw auto 0;
}

.parts7-main ol{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-left: 0;
}

.parts7-main ol li{
  width: 30.5%;
}

.parts7-main ol li img.br-viewpc{
  width: 100%;
  display: block;
}
.parts7-main ol li img.br-viewsp{
  display: none;
}

@media screen and (max-width: 767px) {
  .parts7-main ol li img.br-viewpc{
    display: none;
  }
  .parts7-main ol li img.br-viewpc{
    display: block;
  }
}
/* =========================
   references-content
========================= */

.references-content{
  width: 100%;
}

.references-content .parts__number-box{
  font-size: 1.5vw;
  font-weight: 500;
  width: 11vw;
}

.references-box{
  margin-top: 4.8vw;
    /*border-top: 1px solid #424242;
    border-bottom: 1px solid #424242;*/
}

.references-box ol{
  padding: 0;
  margin: 6vw 0 0;
}

.references-box ol li{
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}

.references-box ol li span{
  color: #0071bc;
  font-size: 1.1vw;
  letter-spacing: 0.1em;
  font-weight: 500;
  display: inline-block;
  margin-right: 1.2vw;
}

.references-box ol li p{
  margin: 0;
 font-size: 1vw;
 color: #000;
 width: auto;
 font-weight: 400;
 line-height: 1.7em;
 margin-bottom: 0.8vw;
}

/* =========================
   page index nav
========================= */
.page-index-nav {
  width: 100%;
  background: #e8e9e9;
}

.page-index-nav__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 5.273vw 0 5.127vw;
}

.page-index-nav__list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.952vw 0.806vw;
  margin: 0 auto;
  width: 90%;
  padding: 0;
  list-style: none;
}

.page-index-nav__item {
  width: 100%;
}

.page-index-nav__link {
   width: 100%;
 min-height: 4vw;
 border-radius: 0.332vw;
 background: #ffffff;
 display: flex;
 align-items: center;
 justify-content: center;
 color: #454545;
 font-family: "Noto Sans JP", sans-serif;
 font-size: 1.4vw;
 font-weight: 500;
 line-height: 1.4;
 letter-spacing: 0;
 text-decoration: none;
 transition: background 0.25s ease, color 0.25s ease;
}

.page-index-nav__link:hover,
.page-index-nav__link:focus-visible {
  background: #50a9e0;
  color: #ffffff;
  outline: none;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .page-index-nav__inner {
    width: calc(100vw - 5vw);
    padding: 6vw 0 6vw;
  }

  .page-index-nav__list {
    gap: 1vw;
  }

  .page-index-nav__link {
    min-height: 5vw;
    border-radius: 0.8vw;
    font-size: 1.8vw;
  }
  .references-content{
    padding-bottom: 0;
  }
  .references-box ol{
    margin: 6vw 0 0;
  }
  .references-box ol li span{
    font-size: 1.2vw;
  }
  .references-box ol li p{
    font-size: 1.2vw;
        margin-bottom: 0.7vw;
        margin-top: 0.2vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .references-box{
    margin-top: 8.5vw;
  }
  .references-content .parts__number-box{
    font-size: 4vw;
    width: 30vw;
  }
  .references-box ol{
    margin: 9vw 0;
  }
  .references-box ol li span{
        font-size: 3.25vw;
  }
  .references-box ol li p{
    font-size: 3.5vw;
    line-height: 1.5;
    margin-bottom: 1.8vw;
  }
  .page-index-nav__inner {
    padding: 10.417vw 5.208vw;
  }

  .page-index-nav__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 2.604vw;
  }

  .page-index-nav__link {
    min-height: 12vw;
    border-radius: 1.823vw;
    font-size: 5.208vw;
    letter-spacing: 0.06em;
  }
  .parts7-main{
    width: 100%;
    margin-top: 8vw;
  }
  .parts7-main ol{
        flex-wrap: wrap;
    justify-content: center;
    gap: 4%;
  }
  .parts7-main ol li{
    width: 47%;
  }
  .parts7-main ol li:first-child{
    margin: 0 26.5%;
  }
}

/* =========================
   glossary
========================= */
.glossary-section {
  width: 100%;
}

.glossary-group {
  width: 100%;
}

.glossary-group--white {
  background: #ffffff;
}

.glossary-group--green {
  background: #f7fbfd;
}

.glossary-group__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 5vw 0 10vw;
}

.glossary-group__title {
  width: 12vw;
    min-height: 3.6vw;
    margin: 0 auto 2.93vw;
    border-radius: 0;
    background: #29abe2;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 1.5vw;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
}

.glossary-list {
  width: 100%;
}

.glossary-item {
  width: 100%;
}

.glossary-group--white .glossary-item:nth-child(odd) {
  background: #f7fbfd;
}

.glossary-group--white .glossary-item:nth-child(even) {
  background: #ffffff;
}

.glossary-group--green .glossary-item:nth-child(odd) {
  background: #ffffff;
}

.glossary-group--green .glossary-item:nth-child(even) {
  background: #f7fbfd;
}

.glossary-item__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 2vw 3vw 2vw 2vw;
    display: grid;
    grid-template-columns: 37% 1fr;
  column-gap: 3.223vw;
  align-items: start;
}

.glossary-item__term {
  margin: 0;
  color: #000000;
  font-size: 1.2vw;
    font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.01em;
}

.glossary-item__desc p {
   margin: 0;
 color: #000;
 font-size: 0.9vw;
 font-weight: 400;
 line-height: 1.8;
 letter-spacing: 0;
 color: #000000;
}

.glossary-item__link {
  color: #0071bc;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.glossary-item__link:hover,
.glossary-item__link:focus-visible {
  opacity: 0.7;
  outline: none;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .glossary-group__inner {
    padding: 4vw 30px 7vw;
  }

  .glossary-group__title {
   width: 10vw;
        min-height: 4vw;
        margin-bottom: 3.4vw;
        border-radius: 0.5vw;
        font-size: 1.7vw;
  }

  .glossary-item__inner {
    padding: 2.3vw 20px 2.3vw;
    grid-template-columns: 28% 1fr;
    column-gap: 2.8vw;
  }

  .glossary-item__term {
    font-size: 1.4vw;
  }

  .glossary-item__desc p {
    font-size: 1.3vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .glossary-group__inner {
    padding: 8.333vw 20px 12.5vw;
  }

  .glossary-group__title {
    width: 24vw;
    min-height: 8.854vw;
    margin-bottom: 6.51vw;
    border-radius: 1.302vw;
    font-size: 4.5vw;
  }

  .glossary-item__inner {
            padding: 8vw 4.167vw;
    display: block;
  }

  .glossary-item__term {
    font-size: 4vw;
    line-height: 1.8;
    font-weight: 700;
  }

  .glossary-item__desc {
    margin-top: 2.344vw;
  }

  .glossary-item__desc p {
    font-size: 3.7vw;
    line-height: 2.1;
  }
}

/* =========================
   publications
========================= */
.publications-section {
  width: 100%;
}

.publications-section__head {
  margin-bottom: 7vw;
}

.publications-section__title {
  margin: 2.563vw 0 0;
  text-align: center;
}

.publications-section__title-ja {
  display: inline-block;
    padding-bottom: 0;
    border-bottom: 0.3vw solid #000000;
    color: #000000;
    font-size: 3.003vw;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.03em;
}

.publications-section__title-en {
  display: block;
    margin-top: 1.7vw;
    color: #31a8df;
    font-size: 1.05vw;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.01em;
}

.publications-block + .publications-block {
  margin-top: 7.324vw;
}

.publications-block__title {
  display: flex;
  align-items: center;
  gap: 0.952vw;
  margin: 0 0 2.783vw;
  color: #000000;
  font-weight: 400;
  line-height: 1.4;
}

.publications-block__title-icon {
  width: 2.5vw;
  height: auto;
  display: block;
  flex: 0 0 auto;
}

.publications-block__title-ja {
  font-size: 2.5vw;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.publications-block__title-slash {
  font-size: 1.8vw;
  font-weight: 500;
  line-height: 1;
}

.publications-block__title-en {
  font-size: 1.9vw;
  font-weight: 700;
  line-height: 0;
  letter-spacing: 0.03em;
}

.publications-category {
  margin-top: 3.15vw;
}

.publications-category + .publications-category {
  margin-top: 4.395vw;
}

.publications-category__title {
  display: flex;
    align-items: center;
    gap: 0.805vw;
    margin: 0;
    padding: 1.5vw 2.4vw 1.5vw;
    border-top: 1px solid #000000;
    border-bottom: 0.073vw solid #000000;
    color: #333333;
    font-weight: 300;
    line-height: 1.4;
}

.publications-category__title-icon {
  width: 1.245vw;
  height: auto;
  display: block;
  flex: 0 0 auto;
}

.publications-category__title-ja {
  font-size: 1.7vw;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.publications-category__title-slash {
  font-size: 1.245vw;
  font-weight: 500;
  line-height: 1;
}

.publications-category__title-en {
  font-size: 1.6vw;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.publications-list {
  margin: 1.2vw 0 0;
  padding: 0 2vw;
  list-style: none;
}

.publications-list__item {
  padding: 1.4vw 0 1.4vw;
    border-bottom: 0.073vw dashed #000000;
}

.publications-list__item:last-child {
  border-bottom: none;
}

.publications-list__item p {
  margin: 0;
    color: #000000;
    font-size: 1.15vw;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

.publications-list__item p + p {
  margin-top: 0.146vw;
}

.publications-list__item a {
  color: #6e5aa4;
  text-decoration: underline;
  transition: opacity 0.2s ease;
  word-break: break-all;
}

.publications-list__item a:hover,
.publications-list__item a:focus-visible {
  opacity: 0.7;
  outline: none;
}

.publications-list__item strong {
  font-weight: 700;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .publications-section__head {
    margin-bottom: 6vw;
  }

  .publications-section__title {
    margin-top: 2.8vw;
  }

  .publications-section__title-ja {
    padding-bottom: 0.28vw;
    border-bottom-width: 0.08vw;
    font-size: 4vw;
  }

  .publications-section__title-en {
    margin-top: 0.9vw;
    font-size: 1.4vw;
  }

  .publications-block + .publications-block {
    margin-top: 8vw;
  }

  .publications-block__title {
    gap: 1vw;
    margin-bottom: 3vw;
  }

  .publications-block__title-icon {
    width: 2vw;
  }

  .publications-block__title-ja {
    font-size: 2.6vw;
  }

  .publications-block__title-slash,
  .publications-block__title-en {
    font-size: 2vw;
  }

  .publications-category {
    margin-top: 3.6vw;
  }

  .publications-category + .publications-category {
    margin-top: 5vw;
  }

  .publications-category__title {
    padding: 1.1vw 0 1.2vw;
    border-top-width: 0.08vw;
    border-bottom-width: 0.08vw;
  }

  .publications-category__title-icon {
    width: 1.5vw;
  }

  .publications-category__title-ja {
    font-size: 2vw;
  }

  .publications-category__title-slash,
  .publications-category__title-en {
    font-size: 1.6vw;
  }

  .publications-list {
    margin-top: 2.2vw;
  }

  .publications-list__item {
    padding: 1.6vw 1vw 1.8vw;
    border-bottom-width: 0.08vw;
  }

  .publications-list__item p {
    font-size: 1.4vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .publications-section__head {
    margin-bottom: 10.417vw;
  }

  .publications-section__title {
    margin-top: 6.51vw;
  }

  .publications-section__title-ja {
    padding-bottom: 0.651vw;
    border-bottom-width: 0.26vw;
    font-size: 7.8vw;
    line-height: 1.3;
  }

  .publications-section__title-en {
    margin-top: 2.083vw;
    font-size: 3.385vw;
    line-height: 1.5;
  }

  .publications-block + .publications-block {
    margin-top: 13.021vw;
  }

  .publications-block__title {
    gap: 2.344vw;
    margin-bottom: 6.51vw;
    align-items: center;
  }

  .publications-block__title-icon {
    width: 7vw;
  }

  .publications-block__title-ja {
    font-size: 5.99vw;
    line-height: 1.4;
  }

  .publications-block__title-slash,
  .publications-block__title-en {
    font-size: 4.427vw;
    line-height: 1.4;
  }

  .publications-category {
    margin-top: 6.51vw;
  }

  .publications-category + .publications-category {
    margin-top: 9.115vw;
  }

  .publications-category__title {
    gap: 1.823vw;
    padding: 2.604vw 0 2.865vw;
    border-top-width: 0.26vw;
    border-bottom-width: 0.26vw;
    flex-wrap: wrap;
  }

  .publications-category__title-icon {
    width: 3.646vw;
  }

  .publications-category__title-ja {
    font-size: 4.948vw;
    line-height: 1.4;
  }

  .publications-category__title-slash,
  .publications-category__title-en {
    font-size: 3.906vw;
    line-height: 1.4;
  }

  .publications-list {
    margin-top: 4.167vw;
  }

  .publications-list__item {
    padding: 3.646vw 0.781vw 4.167vw;
    border-bottom-width: 0.26vw;
  }

  .publications-list__item p {
    font-size: 3.3vw;
    line-height: 1.9;
  }

  .publications-list__item p + p {
    margin-top: 0.521vw;
  }
}

/* =========================
   reusable section block
========================= */
.section-blocks {
  margin-top: 5.127vw;
}

.section-block + .section-block {
  margin-top: 7vw;
}

.section-block__title {
  margin: 0;
    padding-bottom: 1.172vw;
    border-bottom: 0.146vw solid #29abe2;
    display: flex;
    align-items: center;
    gap: 0.806vw;
}

.section-block__title-num {
      width: 2.9vw;
    height: 2.9vw;
    border: 0.22vw solid #29abe2;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #29abe2;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-size: 1.35vw;
    font-weight: 500;
    line-height: 0;
    letter-spacing: -0.05em;
    flex: 0 0 auto;
}

.section-block__title-text {
  color: #000000;
    font-size: 2.3vw;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
}

.section-block__body {
  padding-top: 3vw;
}

.section-block__lead p,
.media-block__content p {
  margin: 0;
  color: #000000;
  font-size: 1vw;
  font-weight: 400;
  line-height: 2.1;
  letter-spacing: 0.01em;
}

.section-block__lead p + p,
.media-block__content p + p {
  margin-top: 2.051vw;
}

/* =========================
   field box
========================= */
.field-box {
  margin-top: 3.296vw;
}

.field-box__lead {
      width: 100%;
    max-width: 34vw;
    min-height: 4vw;
    margin: 0 auto 4.49vw;
    padding: 0.586vw 1.465vw;
    background: #29abe2;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 1.15vw;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-align: center;
}

.field-box__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.952vw;
  margin: 0;
  padding: 0;
  list-style: none;
}

.field-box__item {
  min-height: 8.5vw;
    padding: 1.245vw 0.732vw 1.099vw;
    border: 0.2vw solid #d9d9d9;
    border-radius: 0.879vw;
    background: #ffffff;
    text-align: center;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.field-box__icon {
  position: absolute;
    width: 6.8vw;
    height: auto;
    display: block;
    margin: 0;
    top: -3.5vw;
}

.field-box__text {
  margin: 0;
    color: #141414;
    font-size: 1.2vw;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.04em;
    margin-top: 1vw;
}

/* =========================
   media block
========================= */
.media-block {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4.395vw;
}

.media-block__content {
  flex: 1 1 0;
  min-width: 0;
}

.media-block__image {
  flex: 0 0 37%;
  margin: 0;
}

.media-block__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* =========================
   point list
========================= */
.point-list {
  margin: 3.15vw 0 0;
  padding: 0;
  list-style: none;
}

.point-list__item + .point-list__item {
  margin-top: 1.245vw;
}

.point-list__item {
  min-height: 5.127vw;
    padding: 1.099vw 1.611vw 1.099vw 1.245vw;
    border-radius: 0.732vw;
    background: #f7fbfd;
    display: flex;
    align-items: center;
    gap: 2vw;
}

.point-list__icon-wrap {
  width: 5vw;
  height: 5vw;
  border-radius: 50%;
  background: #29abe2;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.point-list__icon {
  width: 100%;
  height: auto;
  display: block;
}

.point-list__text {
  margin: 0;
    color: #333333;
    font-size: 1.15vw;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.01em;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {

  .media-block__content p {
    font-size: 1.4vw;
    line-height: 2.1;
  }

  .field-box {
    margin-top: 4vw;
  }

  .field-box__lead {
    max-width: 46vw;
        min-height: 5vw;
        margin-bottom: 6vw;
        padding: 0.8vw 1.6vw;
        font-size: 1.6vw;
  }

  .field-box__list {
    gap: 1.2vw;
  }

  .field-box__item {
    min-height: 9vw;
        padding: 1.4vw 0.8vw 0;
        border-width: 0.08vw;
        border-radius: 1vw;
  }

  .field-box__icon {
    width: 9.2vw;
        margin-bottom: 0;
        top: -4.6vw;
  }

  .field-box__text {
    font-size: 1.4vw;
  }

  .media-block {
    gap: 3vw;
  }

  .media-block__image {
    flex-basis: 39%;
  }

  .point-list {
    margin-top: 3.8vw;
  }

  .point-list__item + .point-list__item {
    margin-top: 1.6vw;
  }

  .point-list__item {
    min-height: 6.2vw;
    padding: 1.3vw 1.5vw 1.3vw 1.3vw;
    border-radius: 0.9vw;
    gap: 1.4vw;
  }

  .point-list__icon-wrap {
    width: 5vw;
    height: 5vw;
  }

  .point-list__icon {
    width: 5vw;
  }

  .point-list__text {
    font-size: 1.5vw;
    line-height: 1.6;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .section-blocks {
    margin-top: 10.417vw;
  }

  .section-block + .section-block {
    margin-top: 9.115vw;
  }

  .section-block__title {
    padding-bottom: 3.125vw;
    border-bottom-width: 0.26vw;
    gap: 2.083vw;
    align-items: center;
  }

  .section-block__title-num {
    width: 6.771vw;
    height: 6.771vw;
    border-width: 0.391vw;
    font-size: 2.865vw;
  }

  .section-block__title-text {
    font-size: 6.25vw;
    line-height: 1.45;
  }

  .section-block__body {
    padding-top: 6.25vw;
  }

  .section-block__lead p,
  .media-block__content p {
    font-size: 3.3vw;
    line-height: 2.25;
  }

  .section-block__lead p + p,
  .media-block__content p + p {
    margin-top: 5.208vw;
  }

  .field-box {
    margin-top: 7.813vw;
  }

  .field-box__lead {
    max-width: 100%;
        min-height: 12vw;
        margin-bottom: 13vw;
        padding: 2vw 2vw;
        font-size: 3.5vw;
        line-height: 1.6;
  }

  .field-box__list {
    grid-template-columns: repeat(2, 1fr);
        gap: 12vw 5vw;
  }

  .field-box__item {
    min-height: 22.917vw;
        padding: 12vw 2.604vw 6vw;
        border-width: 0.26vw;
        border-radius: 2.083vw;
  }

  .field-box__icon {
    width: 22vw;
        margin-bottom: 0;
        top: -11vw;
  }

  .field-box__text {
            font-size: 3.4vw;
        line-height: 1.5;
        margin-top: 0;
  }

  .media-block {
    display: block;
  }

  .media-block__image {
    width: 100%;
    margin-top: 10vw;
  }

  .media-block__image img{
    width: 90%;
    margin: 0 auto;
  }

  .point-list {
    margin-top: 7.292vw;
  }

  .point-list__item + .point-list__item {
    margin-top: 3.125vw;
  }

  .point-list__item {
    min-height: auto;
    padding: 6vw 4.167vw;
    border-radius: 1.823vw;
    gap: 3.125vw;
    align-items: center;
  }

  .point-list__icon-wrap {
    width: 12vw;
    height: 12vw;
  }

  .point-list__icon {
    width: 12vw;
  }

  .point-list__text {
    font-size: 3.4vw;
    line-height: 1.9;
  }
}

/* =========================
   section background
========================= */
.backcolor-on-blue {
  background: #f7fbfd;
}

/* =========================
   reusable section block
========================= */

.section-block__lead p + p {
  margin-top: 2.051vw;
}

/* =========================
   example box
========================= */
.example-group {
  margin-top: 3.296vw;
}

.example-group-sec4{
  margin-top: 6vw;
}

.example-box + .example-box {
  margin-top: 4.8vw;
}

.example-box__title {
  margin: 0;
    min-height: 4vw;
    background: #ffffff;
    display: grid;
    grid-template-columns: 3.3vw 1fr;
    align-items: center;
}

.example-box__num {
  width: 3.3vw;
    height: 4vw;
    background: #29abe2;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-size: 1.4vw;
    font-weight: 500;
    line-height: 0;
}

.example-box__title-features .example-box__num{
  width: 6.5vw;
}

.example-box__text {
  padding: 0 1.5vw;
    color: #000000;
    font-size: 1.3vw;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

.example-box__title-features .example-box__text{
      padding: 0 1.5vw 0 5vw;
}

.example-box__body {
  padding: 2vw 2vw 0 5vw;
}

.example-box__note {
  margin: 0 0 2vw;
    color: #000000;
    font-size: 1.05vw;
    font-weight: 400;
    line-height: 2.2;
    letter-spacing: 0.01em;
}

/* =========================
   language cards
========================= */
.lang-card-outbox:nth-child(n+2){
  margin-top: 2vw;
}

.lang-card-list {
  margin-top: 2.344vw;
  padding: 0 2vw 0 5vw;
}

.lang-card-list .lang-card + .lang-card {
  margin-top: 0.7vw;
}

.lang-card {
   display: flex;
 align-items: center;
 gap: 0.952vw;
 width: 100%;
 max-width: fit-content;
 min-height: fit-content;
 padding: 0.7vw 2vw 0.7vw 1.2vw;
 border-radius: 0.732vw;
 background: #ffffff;
}

.lang-card + .lang-card {
  margin-top: 0.806vw;
}

.example-box__body > .lang-card:first-of-type {
  margin-top: 1.611vw;
}

.lang-card__label {
      width: 2.5vw;
    height: 2.5vw;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-size: 1vw;
    letter-spacing: 0;
    font-weight: 500;
    line-height: 0;
    flex: 0 0 auto;
}

.lang-card__label--en {
  background: #f5b13a;
}

.lang-card__label--ja {
  background: #18b6b0;
}

.lang-card__text {
  margin: 0;
    color: #352d2a;
    font-size: 1vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .section-blocks {
    margin-top: 6vw;
  }

  .section-block + .section-block {
    margin-top: 6.5vw;
  }

  .section-block__title {
    padding-bottom: 1.4vw;
    border-bottom-width: 0.08vw;
    gap: 1vw;
  }

  .section-block__title-num {
    width: 3.6vw;
        height: 3.6vw;
        border-width: 0.08vw;
        font-size: 1.5vw;
  }

  .section-block__title-text {
    font-size: 3vw;
  }

  .section-block__body {
    padding-top: 3vw;
  }

  .section-block__lead p {
    font-size: 1.4vw;
    line-height: 2.1;
  }

  .example-group {
    margin-top: 3.5vw;
  }

  .example-box + .example-box {
    margin-top: 4vw;
  }

  .example-box__title {
    min-height: 100%;
    grid-template-columns: 3vw 1fr;
  }

  .example-box__num {
    width: 4vw;
        height: 4vw;
        font-size: 1.8vw;
  }

  .example-box__text {
    padding: 0 1.3vw 0 2.4vw;
        font-size: 1.5vw;
  }

  .example-box__body {
    padding: 2vw 1vw 0 5.5vw;
  }

  .example-box__note {
    font-size: 1.3vw;
  }

  .lang-card {
    max-width: fit-content;
        min-height: 4.5vw;
        padding: 0.55vw 1.2vw 0.55vw 1vw;
        border-radius: 0.9vw;
        gap: 1vw;
  }

  .lang-card__label {
    width: 3.2vw;
        height: 3.2vw;
        font-size: 1.15vw;
  }

  .lang-card__text {
    font-size: 1.3vw;
  }

  .lang-card-list {
    margin-top: 3vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .section-blocks {
    margin-top: 10.417vw;
  }

  .section-block + .section-block {
    margin-top: 16vw;
  }

  .section-block__title {
    padding-bottom: 3.125vw;
    border-bottom-width: 0.26vw;
    gap: 2.083vw;
    align-items: center;
  }

  .section-block__title-num {
    width: 9vw;
    height: 9vw;
    border-width: 0.391vw;
    font-size: 4vw;
  }

  .section-block__title-text {
    font-size: 5.3vw;
    line-height: 1.4;
  }

  .section-block__body {
    padding-top: 6.25vw;
  }

  .section-block__lead p {
    font-size: 3.7vw;
    line-height: 2.1;
  }

  .section-block__lead p + p {
    margin-top: 5.208vw;
  }

  .example-group {
    margin-top: 7.813vw;
  }

  .example-box + .example-box {
    margin-top: 12vw;
  }

  .example-box__title {
    grid-template-columns: 8.333vw 1fr;
  }

  .example-box__num {
    width: 11vw;
    height: 100%;
    font-size: 4vw;
  }

  .example-box__text {
            padding: 3vw 3vw 3vw 5.5vw;
        font-size: 4.2vw;
        line-height: 1.5;
  }

  .example-box__body {
    padding: 4.688vw 0 0;
  }

  .example-box__note {
    font-size: 3.3vw;
    line-height: 2;
  }

  .lang-card-list {
    margin-top: 6.25vw;
    padding: 0;
  }

  .lang-card {
    max-width: 100%;
    min-height: 9.375vw;
    padding: 1.563vw 3.125vw 1.563vw 1.823vw;
    border-radius: 1.823vw;
    gap: 2.344vw;
  }

  .example-box__body > .lang-card:first-of-type {
    margin-top: 4.167vw;
  }

  .lang-card + .lang-card {
    margin-top: 2.083vw;
  }

  .lang-card__label {
    width: 9vw;
        height: 9vw;
        font-size: 3.2vw;
  }

  .lang-card__text {
    font-size: 3.3vw;
    line-height: 1.6;
  }
  .lang-card-outbox:nth-child(n+2){
    margin-top: 4.5vw;
  }
  .example-group + .example-group{
    margin-top: 15vw;
  }
  .example-box__title-features .example-box__num{
    width: 18.5vw;
  }
  .example-box__title-features .example-box__text {
    padding: 3vw 1.5vw 3vw 14vw;
  }
}

/* =========================
   accent feature
========================= */
.accent-feature {
  display: grid;
    grid-template-columns: 17vw 1fr;
    column-gap: 6.5vw;
    align-items: start;
}

.accent-feature__flag {
  width: 15vw;
    margin: 0 0 0 auto;
}

.accent-feature__flag img {
  display: block;
  width: 100%;
  height: auto;
}

.accent-feature__text p {
  margin: 0;
    color: #000000;
    font-size: 1vw;
    font-weight: 400;
    line-height: 2.3;
    letter-spacing: 0.01em;
}

/* =========================
   feature panels
========================= */

.feature-panels {
  margin-top: 5.7vw;
}

.feature-panel + .feature-panel {
  margin-top: 3.5vw;
}

.feature-panels-sec4 {
  margin-top: 3vw;
}

.feature-panels-sec4 + .feature-panels-sec4 {
  margin-top: 3.5vw;
}

.feature-panel__title {
  margin: 0;
    min-height: 3.2vw;
    padding: 0.5vw 1.4vw 0.5vw 2.5vw;
    background: #29abe2;
    color: #ffffff;
    font-size: 1.4vw;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.04em;
    border-radius: 0.3vw;
    display: flex;
    align-items: center;
}

.feature-panel__body {
  padding: 2vw 1.5vw 0 2.5vw;
}

.feature-panel__lead {
  margin: 0 0 1.172vw;
    color: #000000;
    font-size: 1.25vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.01em;
}

.feature-panel__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.feature-panel__list li {
      position: relative;
    margin: 0;
    padding-left: 1.3vw;
    color: #000000;
    font-size: 1vw;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.01em;
}

.feature-panel__list li::before {
  content: "";
    position: absolute;
    top: 0.7vw;
    left: 0;
    width: 0.8vw;
    height: 0.8vw;
    border-radius: 50%;
    background: #000000;
}

.feature-panel__list li + li {
  margin-top: 0.293vw;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .accent-feature {
    grid-template-columns: 14vw 1fr;
    column-gap: 3vw;
  }

  .accent-feature__flag {
    width: 14vw;
  }

  .accent-feature__text p {
    font-size: 1.45vw;
    line-height: 2.2;
  }

  .feature-panels-sec4{
    margin-top: 5.5vw;
  }

  .feature-panels-sec4 + .feature-panels-sec4{
    margin-top: 8.5vw;
  }

  .feature-panels {
    margin-top: 4vw;
  }

  .feature-panel + .feature-panel {
    margin-top: 2.8vw;
  }

  .feature-panel__title {
    min-height: 4vw;
    padding: 0.9vw 1.5vw;
    font-size: 1.6vw;
  }

  .feature-panel__body {
    padding: 2vw 1.5vw 0;
  }

  .feature-panel__lead {
    margin-bottom: 1.4vw;
    font-size: 1.4vw;
  }

  .feature-panel__list li {
    padding-left: 1.6vw;
    font-size: 1.3vw;
  }

  .feature-panel__list li::before {
    top: 1vw;
        width: 0.8vw;
        height: 0.8vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .accent-feature {
    display: block;
  }

  .accent-feature__flag {
    width: 31.25vw;
    margin: 0 auto 5.208vw;
  }

  .accent-feature__text p {
    font-size: 3.7vw;
    line-height: 2.1;
  }

  .feature-panels {
    margin-top: 7.813vw;
  }

  .feature-panel + .feature-panel {
    margin-top: 8.5vw;
  }

  .feature-panel__title {
    min-height: 11vw;
    padding: 2.344vw 3.906vw;
    font-size: 4.2vw;
    line-height: 1.5;
  }

  .feature-panel__body {
    padding: 4.688vw 2.865vw 0;
  }

  .feature-panel__lead {
    margin-bottom: 3.125vw;
    font-size: 3.7vw;
    line-height: 1.8;
  }

  .feature-panel__list li {
    padding-left: 3.385vw;
    font-size: 3.5vw;
    line-height: 1.7;
  }

  .feature-panel__list li::before {
    top: 2.1vw;
        width: 2vw;
        height: 2vw;
  }

  .feature-panel__list li + li {
    margin-top: 2vw;
  }
}

/* =========================
   maritime section03 - 3.6
========================= */
.section36-hero {
  display: grid;
  grid-template-columns: 42% 1fr;
  column-gap: 4.395vw;
  align-items: center;
  margin-bottom: 4.615vw;
}

.section36-hero__image {
  margin: 0;
  width: 100%;
}

.section36-hero__image img {
  display: block;
  width: 100%;
  height: auto;
}

.section36-hero__content {
  min-width: 0;
}

.section36-hero__question {
  margin: 0;
    color: #333333;
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.04em;
    display: flex;
    justify-content: center;
    align-items: center;
}

.section36-hero__answer {
  margin: 2.417vw 0 0;
  line-height: 1;
  text-align: center;
}

.section36-hero__answer span {
  display: inline-block;
    position: relative;
    color: #29abe2;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
    padding: 0 0 0.22vw;
    z-index: 1;
}

.section36-hero__answer span::after {
  content: "";
    position: absolute;
    left: -1vw;
    right: 0vw;
    bottom: -0.5vw;
    width: 100%;
    height: 2.271vw;
    background: #fbfb00;
    z-index: -1;
}

.section36-lead {
  margin-top: 0;
}

.section36-lead p + p {
  margin-top: 2.783vw;
}

@media screen and (max-width: 1200px) {

}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .section36-hero {
    grid-template-columns: 32vw 1fr;
    column-gap: 3.2vw;
    margin-bottom: 5vw;
  }

  .section36-hero__image img {
    border-radius: 1.4vw;
  }

  .section36-hero__question {
    font-size: 2vw;
    line-height: 1.85;
  }

  .section36-hero__answer {
    margin-top: 2.8vw;
  }

  .section36-hero__answer span {
    font-size: 4.8vw;
    padding: 0 1.4vw 0.25vw;
  }

  .section36-hero__answer span::after {
    bottom: 0.45vw;
    height: 2.5vw;
  }

  .section36-lead p + p {
    margin-top: 3.4vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .section36-hero {
    grid-template-columns: 1fr;
    row-gap: 6.51vw;
    margin-bottom: 8.333vw;
  }

  .section36-hero__image {
    width: 100%;
    max-width: 72.917vw;
    margin: 0 auto;
  }

  .section36-hero__image img {
    border-radius: 2.604vw;
  }

  .section36-hero__content {
    text-align: center;
  }

  .section36-hero__question {
    font-size: 3.7vw;
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  .section36-hero__answer {
    margin-top: 5.208vw;
  }

  .section36-hero__answer span {
    font-size: 7vw;
    line-height: 1.2;
    padding: 0 2.083vw 0.521vw;
    letter-spacing: 0.06em;
  }

  .section36-hero__answer span::after {
    bottom: -1.2vw;
    height: 4.688vw;
  }

  .section36-lead p + p {
    margin-top: 6.51vw;
  }
}

/* =========================
   common subheading
   他セクションでも使い回し可
========================= */
.section-subheading {
  margin: 0;
  padding-bottom: 1.172vw;
  border-bottom: 0.073vw solid #29abe2;
  display: flex;
  align-items: center;
  gap: 1.099vw;
}

.section-subheading__num {
  width: 2.198vw;
  height: 2.198vw;
  border: 0.146vw solid #29abe2;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #29abe2;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.025vw;
  font-weight: 700;
  line-height: 1;
  flex: 0 0 auto;
}

.section-subheading__text {
  color: #4a4a4a;
  font-size: 2.124vw;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

/* =========================
   maritime section4
========================= */
.maritime-section-four {
  width: 100%;
  margin-top: 5.859vw;
}

.maritime-section-four__block + .maritime-section-four__block {
  margin-top: 6.592vw;
}

.maritime-section-four__lead {
  margin-top: 2.49vw;
}

.maritime-section-four__lead p {
  margin: 0;
    color: #000000;
    font-size: 1vw;
    font-weight: 400;
    line-height: 2.1;
    letter-spacing: 0.01em;
}

.maritime-section-four__lead p + p {
  margin-top: 2.051vw;
}

.maritime-section-four__accent {
  color: #29abe2;
}

.maritime-section-four__lead--note {
  margin-top: 3.223vw;
}

.maritime-section-four__dot {
  display: inline-block;
  font-size: 1vw;
  line-height: 1;
  vertical-align: middle;
}

.maritime-section-four__dot--red {
  color: #ef7e6d;
}

.maritime-section-four__dot--blue {
  color: #29abe2;
}

/* 指標カード */
.maritime-point-cards {
  display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2vw;
    margin-top: 3.736vw;
}

.maritime-point-card {
  position: relative;
}

.maritime-point-card__label {
  position: absolute;
    top: -2.952vw;
    left: 50%;
    transform: translateX(-50%);
    min-width: 11.495vw;
    height: 6.2vw;
    margin: 0;
    padding: 0 1.172vw;
    border-radius: 999vw;
    background: #4d4d4d;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2vw solid #f7fbfd;
    color: #ffffff;
    font-size: 1vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.04em;
    z-index: 1;
}

.maritime-point-card__inner {
  min-height: 15.154vw;
    padding: 3.9vw 2.051vw 2.417vw;
    border: 0.35vw solid #d8d8d8;
    border-radius: 1.465vw;
    background: #f7fbfd;
    text-align: center;
}

.maritime-point-card__title {
  display: inline-block;
    margin: 0;
    color: #0071bb;
    font-size: 2.3vw;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.02em;
    border-bottom: 0.1vw solid #0071bb;
}

.maritime-point-card__subtitle {
  margin: 0.8vw 0 0;
    color: #333333;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-size: 1.1vw;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.06em;
}

.maritime-point-card__line {
  margin: 1.2vw 0 0;
    color: #333333;
    font-size: 2.318vw;
    font-weight: 900;
    line-height: 0;
}

.maritime-point-card__text {
  margin: 1.7vw 0 0;
    color: #000000;
    font-size: 1.1vw;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

.maritime-point-card__text-en {
  margin: 0.952vw 0 0;
    color: #7c7c7c;
    font-family: "Roboto", "Noto Sans JP", sans-serif;
    font-size: 0.9vw;
    font-weight: 500;
    line-height: 1.5;
}

/* 単語リスト */
.maritime-word-groups {
  margin-top: 3.296vw;
}

.maritime-word-groups__item + .maritime-word-groups__item {
  margin-top: 1.611vw;
}

.maritime-word-groups__title {
      margin: 0;
    min-height: 4vw;
    padding: 1vw 1.4vw 1vw 2vw;
    background: #29abe2;
    color: #ffffff;
    font-size: 1.4vw;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.04em;
}

.maritime-word-groups__body {
  padding: 2vw 2vw;
  background: #ffffff;
}

.maritime-word-groups__body p {
  margin: 0;
  color: #000000;
  font-size: 1.1vw;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.01em;
  word-break: break-word;
}

.strong-red-f{
  color: #770000;
}

.txt-line-through{
  text-decoration: line-through;
}

.single-bluelink-txt{
  color: #29abe2;
}

.single-bluelink-txt:hover{
  color: #7fbeda;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .section-subheading {
    gap: 1.4vw;
    padding-bottom: 1.5vw;
    border-bottom-width: 0.08vw;
  }

  .section-subheading__num {
    width: 2.8vw;
    height: 2.8vw;
    border-width: 0.18vw;
    font-size: 1.3vw;
  }

  .section-subheading__text {
    font-size: 2.8vw;
  }

  .maritime-section-four {
    margin-top: 6.2vw;
  }

  .maritime-section-four__block + .maritime-section-four__block {
    margin-top: 7vw;
  }

  .maritime-section-four__lead {
    margin-top: 3vw;
  }

  .maritime-section-four__lead p {
    font-size: 1.4vw;
    line-height: 2.1;
  }

  .maritime-section-four__lead p + p {
    margin-top: 2.051vw;
  }

  .maritime-point-cards {
    margin-top: 4vw;
    gap: 2vw;
  }

  .maritime-point-card__label {
    top: -3.7vw;
        min-width: 14.2vw;
        height: 7.3vw;
        font-size: 1.5vw;
  }

  .maritime-point-card__inner {
    min-height: 17vw;
    padding: 3.6vw 2vw 2.8vw;
    border-width: 0.24vw;
    border-radius: 1.8vw;
  }

  .maritime-point-card__title {
    font-size: 3vw;
  }

  .maritime-point-card__subtitle {
    font-size: 1.4vw;
  }

  .maritime-point-card__line {
    font-size: 1.6vw;
  }

  .maritime-point-card__text {
    font-size: 1.45vw;
  }

  .maritime-point-card__text-en {
    font-size: 1.2vw;
  }

  .maritime-word-groups {
    margin-top: 3.8vw;
  }

  .maritime-word-groups__item + .maritime-word-groups__item {
    margin-top: 1.9vw;
  }

  .maritime-word-groups__title {
    padding: 1.2vw 1.8vw;
    font-size: 1.7vw;
  }

  .maritime-word-groups__body {
    padding: 1.9vw 2vw;
  }

  .maritime-word-groups__body p {
    font-size: 1.35vw;
    line-height: 2;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .section-subheading {
    align-items: flex-start;
    gap: 2.604vw;
    padding-bottom: 3.125vw;
    border-bottom-width: 0.26vw;
  }

  .section-subheading__num {
    width: 6.771vw;
    height: 6.771vw;
    border-width: 0.391vw;
    font-size: 3.125vw;
  }

  .section-subheading__text {
    font-size: 6.25vw;
    line-height: 1.5;
  }

  .maritime-section-four {
    margin-top: 10.417vw;
  }

  .maritime-section-four__block + .maritime-section-four__block {
    margin-top: 11.719vw;
  }

  .maritime-section-four__lead {
    margin-top: 5.208vw;
  }

  .maritime-section-four__lead p {
    font-size: 3.7vw;
    line-height: 2.1;
  }

  .maritime-section-four__lead p + p {
    margin-top: 4.688vw;
  }

  .maritime-section-four__lead--note {
    margin-top: 6.51vw;
  }

  .maritime-section-four__dot {
    font-size: 3.646vw;
  }

  .maritime-point-cards {
    grid-template-columns: 1fr;
    gap: 12vw;
    margin-top: 11vw;
  }

  .maritime-point-card__label {
    top: -5.344vw;
        min-width: 10vw;
        height: 12vw;
        padding: 0 8vw;
        font-size: 3.5vw;
  }

  .maritime-point-card__inner {
    min-height: auto;
    padding: 8.594vw 5.208vw 6.25vw;
    border-width: 0.521vw;
    border-radius: 3.125vw;
  }

  .maritime-point-card__title {
    font-size: 7vw;
  }

  .maritime-point-card__subtitle {
    margin-top: 1.563vw;
    font-size: 3.5vw;
  }

  .maritime-point-card__line {
    margin-top: 4.344vw;
    font-size: 4.427vw;
  }

  .maritime-point-card__text {
    margin-top: 4.125vw;
    font-size: 4vw;
    line-height: 1.7;
  }

  .maritime-point-card__text-en {
    margin-top: 3vw;
        font-size: 3vw;
        line-height: 1.5;
  }

  .maritime-word-groups {
    margin-top: 7.292vw;
  }

  .maritime-word-groups__item + .maritime-word-groups__item {
    margin-top: 4.167vw;
  }

  .maritime-word-groups__title {
    padding: 2.344vw 3.906vw;
    font-size: 4vw;
    line-height: 1.5;
  }

  .maritime-word-groups__body {
    padding: 4.167vw 3.906vw;
  }

  .maritime-word-groups__body p {
    font-size: 3.385vw;
    line-height: 2;
  }
}

/* =========================
   maritime section 4.3
========================= */
.table-4-3 {
  width: 100%;
  margin-top: 3.223vw;
}

.table-4-3__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  background: #ffffff;
}

.table-4-3__col-word {
  width: 16%;
}

.table-4-3__col-score {
  width: 12%;
}

.table-4-3__col-answer {
  width: 36%;
}

.table-4-3__col-note {
  width: 36%;
}

.table-4-3__table th,
.table-4-3__table td {
  border: 0.073vw solid #0d77a4;
  padding: 0.5vw 0.6vw;
  color: #000000;
  font-size: 1.025vw;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
  vertical-align: top;
  word-break: break-word;
}

.table-4-3__table thead th {
  background: #29abe2;
  font-weight: 500;
  color: #fff;
  text-align: center;
}

.table-4-3__table tbody td:nth-child(2) {
  text-align: center;
  white-space: nowrap;
}

.table-4-3__group-row th {
  background: #cef1ff;
  text-align: left;
  font-size: 1.245vw;
  font-weight: 500;
  line-height: 1.5;
  padding: 0.5vw 0.6vw;
}

.table-4-3__note-cell {
  background: #ffffff;
}

.table-4-3__bullet-list {
  margin: 0;
  padding-left: 0.5em;
}

.table-4-3__bullet-list li {
  font-size: 1.025vw;
  line-height: 1.8;
}

.table-4-3__bullet-list li + li {
  margin-top: 0.586vw;
}

.table-4-3__underline {
  text-decoration: underline;
  text-underline-offset: 0.14em;
  text-decoration-thickness: 0.06em;
}

.maritime-section-four__lead--after-table {
  margin-top: 3.223vw;
}

.maritime-section-four__lead--between-boxes {
  margin-top: 2.93vw;
}

.maritime-section-four__lead--summary {
  margin-top: 3.223vw;
}

.maritime-section-four__lead--foot {
  margin-top: 2.49vw;
}

.maritime-word-groups--single {
  margin-top: 2.051vw;
}

.maritime-section-four__issue-list {
  margin: 0;
}

.maritime-section-four__issue-list li {
      color: #000000;
    font-size: 1.1vw;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.01em;
    position: relative;
    padding-left: 1.3vw;
}

.maritime-section-four__issue-list li::before {
    content: "";
    position: absolute;
    top: 0.7vw;
    left: 0;
    width: 0.8vw;
    height: 0.8vw;
    border-radius: 50%;
    background: #000000;
}

.maritime-section-four__issue-list li + li {
  margin-top: 0.439vw;
}

.table-4-3-speaker {
  margin-top: 3.516vw;
}

.table-4-3-speaker__scroll {
  width: 100%;
}

.table-4-3-speaker__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  background: #ffffff;
}

.table-4-3-speaker__table th,
.table-4-3-speaker__table td {
  width: 25%;
  border: 0.073vw solid #333333;
  padding: 1.172vw 1.025vw;
  color: #000000;
  font-size: 1.025vw;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.01em;
  vertical-align: top;
  text-align: left;
  word-break: break-word;
}

.table-4-3-speaker__table th {
  background: #f2f2f2;
  font-weight: 500;
  text-align: center;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .table-4-3 {
    margin-top: 4vw;
  }

  .table-4-3__table th,
  .table-4-3__table td {
    border-width: 0.08vw;
    padding: 0.95vw 0.9vw;
    font-size: 1.45vw;
    line-height: 1.7;
  }

  .table-4-3__group-row th {
    font-size: 1.7vw;
    padding: 0.95vw 1vw;
  }

  .table-4-3__bullet-list li {
    font-size: 1.45vw;
  }

  .maritime-section-four__issue-list li {
    font-size: 1.3vw;
        padding-left: 1.6vw;
  }

  .maritime-section-four__lead--after-table,
  .maritime-section-four__lead--summary {
    margin-top: 4vw;
  }

  .maritime-section-four__lead--between-boxes {
    margin-top: 3vw;
  }

  .maritime-word-groups--single {
    margin-top: 2.4vw;
  }

  .table-4-3-speaker {
    margin-top: 4.2vw;
  }

  .table-4-3-speaker__table th,
  .table-4-3-speaker__table td {
    border-width: 0.08vw;
    padding: 1.2vw 1vw;
    font-size: 1.4vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .table-4-3 {
    margin-top: 8.333vw;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-4-3__table {
    min-width: 130vw;
  }

  .table-4-3__table th,
  .table-4-3__table td {
    border-width: 0.26vw;
    padding: 1.3vw 2.083vw;
    font-size: 3.385vw;
    line-height: 1.2;
  }

  .table-4-3__group-row th {
    font-size: 4.167vw;
    padding: 2.344vw 2.344vw;
  }

  .table-4-3__bullet-list li {
    font-size: 3.385vw;
    line-height: 1.8;
  }

  .table-4-3__bullet-list li + li {
    margin-top: 1.563vw;
  }

  .maritime-section-four__lead--after-table,
  .maritime-section-four__lead--summary {
    margin-top: 8.333vw;
  }

  .maritime-section-four__lead--between-boxes {
    margin-top: 6.51vw;
  }

  .maritime-word-groups--single {
    margin-top: 4.688vw;
  }

  .maritime-section-four__issue-list li::before{
    top: 2.1vw;
    width: 2vw;
    height: 2vw;
  }

  .maritime-section-four__issue-list li {
    padding-left: 3.385vw;
        font-size: 3.5vw;
        line-height: 1.7;
  }

  .maritime-section-four__issue-list li + li {
    margin-top: 2vw;
  }

  .table-4-3-speaker {
    margin-top: 8.333vw;
  }

  .table-4-3-speaker__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-4-3-speaker__table {
    min-width: 110vw;
  }

  .table-4-3-speaker__table th,
  .table-4-3-speaker__table td {
    border-width: 0.26vw;
    padding: 2.865vw 2.344vw;
    font-size: 3.385vw;
    line-height: 1.75;
  }

  .maritime-section-four__lead--foot {
    margin-top: 5.208vw;
  }
}

/* =========================
   maritime 4.4
========================= */
.table-4-4,
.table-4-4-heatmap {
  margin-top: 3.516vw;
}

.table-4-4__scroll,
.table-4-4-heatmap__scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table-4-4__table,
.table-4-4-heatmap__table {
  width: 100%;
  min-width: 1200px;
  border-collapse: collapse;
  background: #ffffff;
}

.table-4-4__table th,
.table-4-4__table td,
.table-4-4-heatmap__table th,
.table-4-4-heatmap__table td {
  border: 0.073vw solid #0d77a4;
  padding: 0.5vw 0.6vw;
  color: #333333;
  font-size: 1vw;
  line-height: 1.6;
  letter-spacing: 0.01em;
  vertical-align: middle;
}

.table-4-4__table thead th,
.table-4-4-heatmap__table thead th {
  font-weight: 500;
  text-align: center;
}

.table-4-4__table tbody td {
  text-align: center;
}

.table-4-4__table tbody td:first-child,
.table-4-4__table tbody td:nth-child(4),
.table-4-4__table tbody td:nth-child(7) {
  text-align: left;
}

.table-4-4__mark {
  display: inline-block;
  margin-right: 0.146vw;
  font-weight: 700;
}

.table-4-4__mark--high {
  color: #29abe2;
}

.table-4-4__mark--low {
  color: #f08a32;
}

.table-4-4-heatmap__table th {
  text-align: center;
  font-weight: 500;
}

.table-4-4-heatmap__table tbody th {
  font-weight: 500;
}

.table-4-4-heatmap__table td {
  text-align: center;
}

.table-4-4-heatmap__table .is-color1 {
  background: rgb(183 222 232);
}

.table-4-4-heatmap__table .is-color2 {
  background: rgb(0 176 240);
}

.table-4-4-heatmap__table .is-color3 {
  background: rgb(247 150 70);
}

.table-4-4-heatmap__table .is-color4 {
  background: rgb(252 213 180);
}

.table-4-4-heatmap__summary th,
.table-4-4-heatmap__summary td {
  background: #fafafa;
}

.maritime-criteria-box {
  margin-top: 4.688vw;
}

.maritime-criteria-box__title {
  margin: 0;
    min-height: 4vw;
    padding: 1vw 1.4vw 1vw 2vw;
    background: #29abe2;
    color: #ffffff;
    font-size: 1.4vw;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.04em;
}

.maritime-criteria-box__body {
  padding: 2vw;
  background: #fff;
}

.maritime-criteria-box__lead {
      margin: 0;
    color: #000000;
    font-size: 1vw;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.01em;
    word-break: break-word;
}

.maritime-criteria-box__list {
  margin: 1.5vw 0 0;
    padding-left: 0;
}

.maritime-criteria-box__list li {
  color: #000000;
    font-size: 1.1vw;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.01em;
    position: relative;
    padding-left: 1.3vw;
}

.maritime-criteria-box__list li::before{
  content: "";
    position: absolute;
    top: 0.7vw;
    left: 0;
    width: 0.8vw;
    height: 0.8vw;
    border-radius: 50%;
    background: #000000;
}

.maritime-criteria-box__list li + li {
  margin-top: 0.439vw;
}

.maritime-section-four__lead--last {
  margin-top: 3.516vw;
}
.table-4-4-heatmap__summary .summary-table-f{
  background: #29abe2;
    color: #fff;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .table-4-4,
  .table-4-4-heatmap {
    margin-top: 4.4vw;
  }

  .table-4-4__table,
  .table-4-4-heatmap__table {
    min-width: 980px;
  }

  .table-4-4__table th,
  .table-4-4__table td,
  .table-4-4-heatmap__table th,
  .table-4-4-heatmap__table td {
    border-width: 0.08vw;
    padding: 1vw 0.8vw;
    font-size: 1.45vw;
  }

  .maritime-criteria-box {
    margin-top: 5.5vw;
  }

  .maritime-criteria-box__title {
    padding: 1.4vw 1.8vw;
    font-size: 1.7vw;
  }

  .maritime-criteria-box__body {
    padding: 2.4vw 2.6vw 2.6vw;
  }

  .maritime-criteria-box__lead {
    font-size: 1.4vw;
  }

  .maritime-criteria-box__list li{
    font-size: 1.3vw;
  }

  .maritime-section-four__lead--last {
    margin-top: 4.4vw;
  }
  .maritime-criteria-box__list li::before{
    top: 1vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .table-4-4,
  .table-4-4-heatmap {
    margin-top: 8.333vw;
  }

  .table-4-4__scroll,
  .table-4-4-heatmap__scroll {
    padding-bottom: 1.563vw;
  }

  .table-4-4__table,
  .table-4-4-heatmap__table {
    min-width: 156.25vw;
  }

  .table-4-4__table th,
  .table-4-4__table td,
  .table-4-4-heatmap__table th,
  .table-4-4-heatmap__table td {
    border-width: 0.26vw;
    padding: 2.344vw 1.823vw;
    font-size: 3.385vw;
    line-height: 1.6;
    white-space: nowrap;
  }

  .table-4-4-heatmap__table th,
  .table-4-4-heatmap__table td{
    padding: 1.3vw 1.823vw;
  }

  .maritime-criteria-box {
    margin-top: 9.115vw;
  }

  .maritime-criteria-box__title {
    padding: 3.125vw 4.167vw;
    font-size: 3.906vw;
    line-height: 1.6;
  }

  .maritime-criteria-box__body {
    padding: 4.167vw 3.906vw;
  }

  .maritime-criteria-box__lead {
    margin-bottom: 3.646vw;
    font-size: 3.7vw;
    line-height: 2.1;
  }

  .maritime-criteria-box__list {
    padding-left: 0;
  }

  .maritime-criteria-box__list li {
    padding-left: 3.385vw;
        font-size: 3.5vw;
        line-height: 1.7;
  }

  .maritime-criteria-box__list li + li {
    margin-top: 2vw;
  }

  .maritime-criteria-box__list li::before{
    top: 2.1vw;
    width: 2vw;
    height: 2vw;
  }

  .maritime-section-four__lead--last {
    margin-top: 8.333vw;
  }
}

/* =========================
   site policy page
========================= */
.policy-page-heading {
  width: 100%;
  background: #f8fbfd;
}

.policy-page-heading__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 14vw 0 4.685vw;
  text-align: center;
}

.policy-page-heading__title {
  margin: 0;
}

.policy-page-heading__title-main,
.policy-page-heading__title-sub {
  display: block;
}

.policy-page-heading__title-main {
  color: #000000;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 5.3vw;
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: 0;
}

.policy-page-heading__title-sub {
  margin-top: 0;
  color: #50a9e0;
  font-size: 1.3vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  position: relative;
  padding-bottom: 3.223vw;
}

.marin-top-only{
  margin-top: 1.1vw;
}

.policy-page-heading__title-sub::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 3.955vw;
  height: 0.366vw;
  border-radius: 100vw;
  background: #50a9e0;
  transform: translateX(-50%);
}

.policy-page-content {
  width: 100%;
  background: #ffffff;
}

.policy-page-content__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 6.2vw 0 7.324vw;
}

.policy-section-head {
  margin: 0;
}

.policy-section-head__title {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 1.099vw;
}

.policy-section-head__bar {
  width: 0.44vw;
  height: 2.856vw;
  background: #50a9e0;
  border-radius: 0.22vw;
  flex: 0 0 auto;
}

.policy-section-head__ja {
  color: #000000;
  font-size: 2.637vw;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
}

.policy-section-head__slash {
  color: #000000;
  font-size: 1.9vw;
  font-weight: 500;
  line-height: 1;
}

.policy-section-head__en {
  color: #000;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.25vw;
  font-weight: 700;
  line-height: 1.4;
  margin-top: 0.5vw;
}

.policy-section-intro {
  margin-top: 2.5vw;
  padding-left: 1.2vw;
}

.policy-section-intro p {
  margin: 0;
  color: #000;
  font-size: 1.25vw;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0;
}

.policy-block {
  margin-top: 3.8vw;
  padding-left: 1.2vw;
}

.policy-block__title {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 1.319vw;
  padding-bottom: 1.15vw;
  border-bottom: 1px solid #000000;
}

.policy-block__number {
  width: 2.491vw;
  height: 2.491vw;
  border: 0.22vw solid #50a9e0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #50a9e0;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.245vw;
  font-weight: 700;
  line-height: 0;
  flex: 0 0 auto;
}

.policy-block__text {
  color: #333333;
  font-size: 2vw;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.policy-block__body {
  padding-top: 1.758vw;
}

.policy-block__body p {
  margin: 0;
  color: #333333;
  font-size: 1.15vw;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.02em;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .policy-page-heading__inner {
    padding: 13vw 20px 5.2vw;
  }

  .policy-page-heading__title-main {
    font-size: 6.4vw;
  }

  .policy-page-heading__title-sub {
    margin-top: 1.2vw;
    font-size: 2vw;
    padding-bottom: 3.5vw;
  }

  .policy-page-heading__title-sub::after {
    width: 4.4vw;
    height: 0.42vw;
  }

  .policy-page-content__inner {
    padding: 7vw 30px 8vw;
  }

  .policy-section-head__title {
    gap: 1.3vw;
  }

  .policy-section-head__bar {
    width: 0.5vw;
    height: 3.2vw;
    border-radius: 0.25vw;
  }

  .policy-section-head__ja {
    font-size: 3.1vw;
  }

  .policy-section-head__slash {
    font-size: 2.4vw;
  }

  .policy-section-head__en {
    font-size: 1.9vw;
  }

  .policy-section-intro {
    margin-top: 4vw;
  }

  .policy-section-intro p {
    font-size: 1.9vw;
    line-height: 2.15;
  }

  .policy-block {
    margin-top: 5vw;
  }

  .policy-block__title {
    gap: 1.5vw;
    padding-bottom: 1.8vw;
    border-bottom-width: 0.16vw;
  }

  .policy-block__number {
    width: 2.9vw;
    height: 2.9vw;
    border-width: 0.22vw;
    font-size: 1.45vw;
  }

  .policy-block__text {
    font-size: 2.8vw;
  }

  .policy-block__body {
    padding-top: 2vw;
  }

  .policy-block__body p {
    font-size: 1.7vw;
    line-height: 2.15;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .policy-page-heading__inner {
    padding: 30vw 5.208vw 11.719vw;
  }

  .policy-page-heading__title-main {
    font-size: 14.844vw;
    line-height: 1.05;
    letter-spacing: -0.04em;
  }

  .policy-page-heading__title-sub {
    margin-top: 2.865vw;
    font-size: 4.167vw;
    line-height: 1.6;
    padding-bottom: 8.333vw;
  }

  .policy-page-heading__title-sub::after {
    width: 10.417vw;
    height: 1.042vw;
  }

  .policy-page-content__inner {
    padding: 13.021vw 20px 15.625vw;
  }

  .policy-section-head__title {
    align-items: center;
    gap: 2.604vw;
  }

  .policy-section-head__bar {
    width: 1.302vw;
    height: 8.594vw;
    border-radius: 0.651vw;
  }

  .policy-section-head__ja {
    font-size: 5vw;
    line-height: 1.25;
  }

  .policy-section-head__slash {
    font-size: 4vw;
  }

  .policy-section-head__en {
    font-size: 3.5vw;
    line-height: 1.4;
    margin-top: 1vw;
  }

  .policy-section-intro {
    margin-top: 8.333vw;
  }

  .policy-section-intro p {
    font-size: 3.9vw;
    line-height: 2.05;
  }

  .policy-block {
    margin-top: 10.417vw;
  }

  .policy-block__title {
    gap: 2.385vw;
    padding-bottom: 3.906vw;
    border-bottom-width: 0.391vw;
    align-items: center;
  }

  .policy-block__number {
    width: 6.5vw;
        height: 6.5vw;
        border-width: 0.521vw;
        font-size: 3.5vw;
  }

  .policy-block__text {
    font-size: 4.5vw;
    line-height: 1.45;
  }

  .policy-block__body {
    padding-top: 4.167vw;
  }

  .policy-block__body p {
    font-size: 3.7vw;
    line-height: 2.1;
  }
}

/* =========================
   sitemap page
========================= */
.sitemap-page {
  width: 100%;
  background: #ffffff;
}

.sitemap-page__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 7.324vw 0 10.249vw;
}

.sitemap-page__nav {
  width: 100%;
}

.sitemap-page__list {
  width: 100%;
  max-width: 60vw;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.sitemap-page__item + .sitemap-page__item {
  margin-top: 0.22vw;
}

.sitemap-page__link {
  position: relative;
  width: 100%;
  min-height: 7.247vw;
  display: grid;
  grid-template-columns: 1.6vw 1fr 3.5vw;
  align-items: center;
  background: #f8fbfd;
  overflow: hidden;
  text-decoration: none;
}

.sitemap-page__link::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: #e9f6fc;
  transition: width 0.35s ease;
  z-index: 0;
}

.sitemap-page__link:hover::before,
.sitemap-page__link:focus-visible::before {
  width: 100%;
}

.sitemap-page__bar,
.sitemap-page__text,
.sitemap-page__arrow {
  position: relative;
  z-index: 1;
}

.sitemap-page__bar {
  width: 100%;
  height: 100%;
  background: #50a9e0;
}

.sitemap-page__text {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 0 1.9vw;
  color: #000;
  font-size: 1.35vw;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}

.sitemap-page__arrow {
  justify-self: center;
  position: relative;
  width: 0.879vw;
  height: 0.879vw;
  transform: translateX(0);
  transition: transform 0.25s ease;
}

.sitemap-page__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.586vw;
  height: 0.586vw;
  border-top: 0.11vw solid #1f2a44;
  border-right: 0.11vw solid #1f2a44;
  transform: translate(-60%, -50%) rotate(45deg) scaleX(0.82);
  transform-origin: center;
}

.sitemap-page__link:hover .sitemap-page__arrow,
.sitemap-page__link:focus-visible .sitemap-page__arrow {
  transform: translateX(0.366vw);
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .sitemap-page__inner {
    width: calc(100vw - 5vw);
    padding: 8vw 0 10vw;
  }

  .sitemap-page__list {
    max-width: 78vw;
  }

  .sitemap-page__item + .sitemap-page__item {
    margin-top: 0.3vw;
  }

  .sitemap-page__link {
    min-height: 8.4vw;
    grid-template-columns: 1.9vw 1fr 4.2vw;
  }

  .sitemap-page__text {
    padding: 0 2.6vw;
    font-size: 2vw;
  }

  .sitemap-page__arrow {
    width: 1.1vw;
    height: 1.1vw;
  }

  .sitemap-page__arrow::before {
    width: 0.72vw;
    height: 0.72vw;
    border-top-width: 0.12vw;
    border-right-width: 0.12vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .sitemap-page__inner {
    padding: 13.021vw 5.208vw 15.625vw;
  }

  .sitemap-page__list {
    max-width: 100%;
  }

  .sitemap-page__item + .sitemap-page__item {
    margin-top: 0.521vw;
  }

  .sitemap-page__link {
    min-height: 16.667vw;
    grid-template-columns: 4.167vw 1fr 10.417vw;
  }

  .sitemap-page__text {
    justify-content: flex-start;
    padding: 0 0 0 5.208vw;
    font-size: 4vw;
    line-height: 1.5;
    text-align: left;
  }

  .sitemap-page__arrow {
    width: 2.865vw;
    height: 2.865vw;
  }

  .sitemap-page__arrow::before {
    width: 1.823vw;
    height: 1.823vw;
    border-top-width: 0.26vw;
    border-right-width: 0.26vw;
  }

  .sitemap-page__link:hover .sitemap-page__arrow,
  .sitemap-page__link:focus-visible .sitemap-page__arrow {
    transform: translateX(0.911vw);
  }
}

/* =========================
   maritime 4.3 speaker compare
========================= */
.speaker-compare {
  width: 100%;
  margin-top: 3.516vw;
}

.speaker-compare__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 0.073vw solid #0d77a4;
  border-left: 0.073vw solid #0d77a4;
  background: #ffffff;
}

.speaker-compare__item {
  display: flex;
  flex-direction: column;
  min-height: 14.641vw;
  border-right: 0.073vw solid #0d77a4;
  border-bottom: 0.073vw solid #0d77a4;
}

.speaker-compare__head {
  padding: 1.025vw 0.879vw;
  background: #29abe2;
    border-bottom: 0.073vw solid #29abe2;
  text-align: center;
}

.speaker-compare__name,
.speaker-compare__meta,
.speaker-compare__score {
  margin: 0;
  color: #fff;
  line-height: 1.6;
  letter-spacing: 0.01em;
}

.speaker-compare__name {
  font-size: 1.099vw;
  font-weight: 500;
}

.speaker-compare__meta {
  font-size: 1.025vw;
  font-weight: 400;
}

.speaker-compare__score {
  font-size: 1.025vw;
  font-weight: 400;
  margin-top: 0.293vw;
}

.speaker-compare__body {
  flex: 1 1 auto;
  padding: 1.172vw 1.025vw;
  background: #ffffff;
}

.speaker-compare__body p {
  margin: 0;
  color: #000000;
  font-size: 1.025vw;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.01em;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .speaker-compare {
    margin-top: 4.2vw;
  }

  .speaker-compare__list {
    border-top-width: 0.08vw;
    border-left-width: 0.08vw;
  }

  .speaker-compare__item {
    min-height: 18vw;
    border-right-width: 0.08vw;
    border-bottom-width: 0.08vw;
  }

  .speaker-compare__head {
    padding: 1.2vw 1vw;
    border-bottom-width: 0.08vw;
  }

  .speaker-compare__name {
    font-size: 1.45vw;
  }

  .speaker-compare__meta,
  .speaker-compare__score,
  .speaker-compare__body p {
    font-size: 1.35vw;
  }

  .speaker-compare__body {
    padding: 1.4vw 1.1vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .speaker-compare {
    margin-top: 8.333vw;
  }

  .speaker-compare__list {
    grid-template-columns: repeat(2, 1fr);
    border-top-width: 0.26vw;
    border-left-width: 0.26vw;
  }

  .speaker-compare__item {
    min-height: auto;
    border-right-width: 0.26vw;
    border-bottom-width: 0.26vw;
  }

  .speaker-compare__head {
    padding: 2.865vw 2.344vw;
    border-bottom-width: 0.26vw;
  }

  .speaker-compare__name {
    font-size: 3.906vw;
    line-height: 1.5;
  }

  .speaker-compare__meta,
  .speaker-compare__score {
    font-size: 3.385vw;
    line-height: 1.6;
  }

  .speaker-compare__score {
    margin-top: 0.781vw;
  }

  .speaker-compare__body {
    padding: 3.125vw 2.604vw 3.385vw;
  }

  .speaker-compare__body p {
    font-size: 3.1vw;
    line-height: 1.7;
  }
}

/* =========================
   maritime summary
========================= */
.maritime-summary {
  width: 100%;
}

.maritime-summary .parts__head {
  text-align: center;
}

.maritime-summary .parts__number-box {
  width: auto;
  min-width: 7.32vw;
  padding: 0 1.611vw;
  font-size: 2.051vw;
  letter-spacing: 0.04em;
}

.maritime-summary__title {
  margin-top: 4.102vw;
  font-size: 3.516vw;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

.maritime-summary__image {
  width: 100%;
  max-width: 76.208vw;
  margin: 4.907vw auto 0;
}

.maritime-summary__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1.758vw;
}

.maritime-summary__image img.br-viewsp{
  display: none;
}

.maritime-summary__body {
  width: 100%;
  max-width: 76.208vw;
  margin: 4.248vw auto 0;
}

.maritime-summary__body p {
  margin: 0;
  color: #333333;
  font-size: 1.172vw;
  font-weight: 400;
  line-height: 2.45;
  letter-spacing: 0.01em;
}

.maritime-summary__body p + p {
  margin-top: 2.783vw;
}

/* =========================
   maritime acknowledgements
========================= */
#maritime-section-thanks .parts__inner{
  padding: 6vw 0 11.5vw;
    border-top: 1px dashed;
}
.maritime-acknowledgements {
  width: 100%;
  max-width: 76.208vw;
  margin: 0 auto 0;
}

.maritime-acknowledgements__head {
  display: flex;
  align-items: flex-start;
  gap: 2.344vw;
}

.maritime-acknowledgements__bar {
  flex: 0 0 auto;
  width: 1.172vw;
  min-height: 13.616vw;
  background: #29abe2;
}

.maritime-acknowledgements__heading {
  padding-top: 1.245vw;
}

.maritime-acknowledgements__title {
  margin: 0;
  color: #000000;
  font-size: 4.981vw;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.04em;
}

.maritime-acknowledgements__subtitle {
  margin: 1.099vw 0 0;
  color: #333333;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 1.611vw;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.01em;
}

.maritime-acknowledgements__line {
  display: block;
  width: 2.344vw;
  height: 0.293vw;
  margin-top: 2.49vw;
  background: #29abe2;
}

.maritime-acknowledgements__list {
  margin: 2.856vw 0 0 3.516vw;
  padding: 0;
  list-style: none;
}

.maritime-acknowledgements__list li {
  position: relative;
  margin: 0;
  padding-left: 1.538vw;
  color: #000000;
  font-size: 1.245vw;
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.01em;
}

.maritime-acknowledgements__list li::before {
  content: "";
  position: absolute;
  top: 0.98vw;
  left: 0;
  width: 0.586vw;
  height: 0.586vw;
  border-radius: 50%;
  background: #000000;
}

.maritime-acknowledgements__list li + li {
  margin-top: 0.732vw;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  #maritime-section-thanks .parts__inner{
    padding: 0 30px 11.5vw;
    border: 0;
  }
  .maritime-summary .parts__number-box {
    min-width: 9vw;
    padding: 0 2vw;
    font-size: 2.4vw;
  }

  .maritime-summary__title {
    margin-top: 4.6vw;
    font-size: 4.6vw;
  }

  .maritime-summary__image,
  .maritime-summary__body,
  .maritime-acknowledgements {
    max-width: 100%;
  }

  .maritime-summary__image {
    margin-top: 5.2vw;
  }

  .maritime-summary__image img {
    border-radius: 2vw;
  }

  .maritime-summary__body {
    margin-top: 4.8vw;
  }

  .maritime-summary__body p {
    font-size: 1.6vw;
    line-height: 2.3;
  }

  .maritime-summary__body p + p {
    margin-top: 3vw;
  }

  .maritime-acknowledgements {
            padding-top: 8vw;
        border-top: 1px dashed;
  }

  .maritime-acknowledgements__head {
    gap: 2.6vw;
  }

  .maritime-acknowledgements__bar {
    width: 1.3vw;
    min-height: 15vw;
  }

  .maritime-acknowledgements__heading {
    padding-top: 1.4vw;
  }

  .maritime-acknowledgements__title {
    font-size: 5.6vw;
  }

  .maritime-acknowledgements__subtitle {
    margin-top: 1.3vw;
    font-size: 1.9vw;
  }

  .maritime-acknowledgements__line {
    width: 2.8vw;
    height: 0.32vw;
    margin-top: 2.7vw;
  }

  .maritime-acknowledgements__list {
    margin: 3.2vw 0 0 4vw;
  }

  .maritime-acknowledgements__list li {
    padding-left: 1.8vw;
    font-size: 1.6vw;
  }

  .maritime-acknowledgements__list li::before {
    top: 1.15vw;
    width: 0.7vw;
    height: 0.7vw;
  }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .maritime-summary .parts__number-box {
    min-width: 20.833vw;
    height: 11.719vw;
    padding: 0 4.167vw;
    font-size: 5.208vw;
    border-radius: 1.563vw;
  }

  .maritime-summary__title {
    margin-top: 8.333vw;
    font-size: 8.333vw;
    line-height: 1.5;
  }

  .maritime-summary__image {
    margin-top: 9.115vw;
  }

  .maritime-summary__image img {
    border-radius: 0;
        width: 90%;
        margin: 0 auto;
  }

  .maritime-summary__image img.br-viewpc{
    display: none;
  }
  .maritime-summary__image img.br-viewpc{
    display: block;
  }

  .maritime-summary__body {
    margin-top: 8.333vw;
  }

  .maritime-summary__body p {
    font-size: 3.906vw;
    line-height: 2.15;
  }

  .maritime-summary__body p + p {
    margin-top: 6.51vw;
  }

  #maritime-section-thanks .parts__inner{
    border: 0;
  }

  .maritime-acknowledgements {
    margin-top: 8.5vw;
        padding-top: 14vw;
  }

  .maritime-acknowledgements__head {
    gap: 4.167vw;
    align-items: stretch;
  }

  .maritime-acknowledgements__bar {
    width: 2.604vw;
    min-height: auto;
  }

  .maritime-acknowledgements__heading {
    padding-top: 1.302vw;
  }

  .maritime-acknowledgements__title {
    font-size: 11.458vw;
    line-height: 1.1;
  }

  .maritime-acknowledgements__subtitle {
    margin-top: 2.083vw;
    font-size: 4.167vw;
    line-height: 1.5;
  }

  .maritime-acknowledgements__line {
    width: 5.729vw;
    height: 0.781vw;
    margin-top: 5.208vw;
  }

  .maritime-acknowledgements__list {
    margin: 6.771vw 0 0 0;
  }

  .maritime-acknowledgements__list li {
    padding-left: 4.167vw;
    font-size: 3.906vw;
    line-height: 2;
  }

  .maritime-acknowledgements__list li::before {
    top: 3.1vw;
        width: 2vw;
        height: 2vw;
  }

  .maritime-acknowledgements__list li + li {
    margin-top: 2.083vw;
  }
}

.parts1__single-gyo{
  min-height: 4vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

.column3-box__wide{
  min-height: 7vw;
}

.column3-box__body-grey{
  background: #f2f2f2;
}

.research-index__group + .research-index__single-group{
  margin-top: 1vw;
}

.research-index__single-more-inner{
  padding-top: 1vw;
}

.ps-only-mv-inner{
  padding: 1vw 0 3vw;
}

.ps-only-mv-inner .page-mv-text{
  margin: 2vw 0 0.5vw;
}

.ps-only-text{
  max-width: fit-content;
}

.ps-only-img{
  width: 26vw;
  margin: 0 3vw 0 0;
}

.txt-underline-accent{
  text-decoration: underline;
}

.table-4-4__table thead tr .theme-blue{
  background: #29abe2;
  color: #fff;
}

.table-4-4__table tbody tr .light-blue{
  background: #cef1ff;
}

.table-4-4-heatmap__table thead .theme-blue{
  background: #29abe2;
  color: #fff;
}

.table-4-4-heatmap__table thead .light-blue{
  background: #cef1ff;
}

#maritime-acknowledgements .parts__inner{
  padding-top: 0;
}

.parts5-flex-main{
  margin-top: 4vw;
}

.parts5-flex-main ul{
      display: flex;
    justify-content: space-between;
}

.parts5-flex-main ul li{
  margin: 0;
  width: 49%;
}

.part5-flex-content h3 {
    background: #31a8df;
    padding: 0.7vw 1.8vw;
    font-size: 1.4vw;
    color: #fff;
    font-weight: 500;
    margin: 0;
    letter-spacing: 0.1em;
    margin-bottom: 0.8vw;
}

.part5-flex-content dl {
    background: #fff;
    padding: 1.5vw 1.8vw;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 0.3vw;
}

.part5-flex-content dl dt {
    background: #666666;
    color: #fff;
    border-radius: 0.3vw;
    padding: 0.45vw 1vw;
    font-size: 1.05vw;
    font-weight: 500;
    width: 8vw;
    text-align: center;
}

.part5-flex-content dl dd {
    margin-left: 2vw;
    font-size: 1.05vw;
    font-weight: 500;
    line-height: 1.5;
}

.column3-sinmplebox {
    margin-top: 4.688vw;
}

.column3-sinmplebox__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1vw;
    margin: 0;
    padding: 0;
    list-style: none;
    align-items: stretch;
}

.column3-sinmplebox__item {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: transparent;
}

.column3-sinmplebox__title--numbered {
    justify-content: flex-start;
    gap: 1.245vw;
    text-align: left;
    position: relative;
    flex-direction: column;
}

.column3-sinmplebox__title {
    min-height: 6.541vw;
    margin: 0;
    padding: 1.172vw 1vw 1.245vw;
    background: #29abe2;
    color: #ffffff;
    font-size: 1.2vw;
    font-weight: 500;
    line-height: 1.25;
    letter-spacing: 0.05em;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.column3-sinmplebox__title-num {
    position: absolute;
    top: 50%;
    left: 1vw;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    width: 2.5vw;
    height: 2.5vw;
    border-radius: 50%;
    background: #ffffff;
    color: #29abe2;
    font-size: 1vw;
    font-weight: 700;
    line-height: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    letter-spacing: 0;
}

.column3-sinmplebox__title-text {
    display: flex;
    flex: 1 1 auto;
    text-align: center;
    align-items: center;
    justify-content: center;
}

#teacher-section04 .media-block{
  margin-top: 5vw;
}

.asterisk-red{
  color: rgb(175, 0, 0);
}

.asterisk-blue{
  color: rgb(0, 30, 161);
}

.irregular-fonts{
  font-family: "Noto Sans", Arial, sans-serif;
  font-style: normal;
}

.txt-leterspace{
  padding: 0 1px;
}

.big-font{
  font-size: 1vw;
}

/* =========================
   tablet
========================= */
@media screen and (max-width: 1200px) {
  .ps-only-mv-inner{
  padding: 0 30px 5vw;
        gap: 6.5vw;
}
.column3-sinmplebox__title-num{
  width: 3.5vw;
    height: 3.5vw;
    font-size: 1.5vw;
}
    .column3-sinmplebox__title{
      min-height: 8vw;
      font-size: 1.6vw;
      line-height: 1.4;
    }
    .part5-flex-content h3{
      font-size: 1.6vw;
    }
    .part5-flex-content dl dt{
      font-size: 1.4vw;
    }
    .part5-flex-content dl dd{
      font-size: 1.4vw;
    }
}

/* =========================
   sp
========================= */
@media screen and (max-width: 767px) {
  .research-index__group + .research-index__single-group{
    margin-top: 3.5vw;
  }

  .research-index__single-more-inner{
    padding-top: 3.5vw;
  }
  .column3-sinmplebox__list{
    display: flex;
    flex-direction: column;
    gap: 2vw;
  }
  .column3-sinmplebox__title{
    min-height: 0;
    padding: 4vw 5vw;
    line-height: 1.25;
  }
  .column3-sinmplebox__title-num{
    width: 8vw;
    height: 8vw;
    font-size: 4vw;
    left: 4vw;
  }
  .column3-sinmplebox__title-text{
    font-size: 4vw;

  }
  .parts5-flex-main ul{
    flex-direction: column;
    gap: 4vw;
  }
  .parts5-flex-main ul li{
    width: 100%;
  }
  .part5-flex-content h3{
        padding: 2vw;
    font-size: 4vw;
     margin-bottom: 1.5vw;
  }
  .part5-flex-content dl{
    padding: 4vw 2vw;
  }
  .part5-flex-content dl dt{
    font-size: 3vw;
    border-radius: 1vw;
    width: 19vw;
  }
  .part5-flex-content dl dd{
    font-size: 3.2vw;
    margin-left: 3vw;
  }
  .ps-only-mv-inner{
    display: block;
    padding: 0 20px 15vw;
  }
  .big-font {
    font-size: 3.8vw;
}
}

/* --------------------------------------------------
    archive
-------------------------------------------------- */
.archive1-content {
  margin: 4.395vw auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.archive1-content .list {
  width: 78%;
}

.archive1-content .sidebar {
  width: 17%;
}

.sidebar {
  width: 17%;
  text-align: center;
}

.sidebar dl dd {
  background: #f7f8f8;
  margin-top: 0.22vw;
  margin-left: 0;
  border-radius: 100vw;
}

.sidebar dl dd.current {
  background: #e8f2f7;
}

.sidebar dl dd a {
  width: 100%;
 display: block;
 color: #3e3a39;
 padding: 0.5vw 0;
 font-weight: 500;
 font-size: 0.85vw;
 margin-bottom: 0.4vw;
}

.sidebar dl dd a:hover {
  color: #29abe2;
}

.archive1-content .archive-nav {
  display: flex;
  justify-content: center;
}

.archive1-content .archive-nav li {
  width: 20%;
  border: 0.073vw solid;
  border-right: 0;
}

.archive1-content .archive-nav li:last-child {
  border-right: 0.073vw solid;
}

.archive1-content .archive-nav li a {
  display: block;
  font-size: 0.95vw;
  letter-spacing: 0.08vw;
  text-indent: 0.08vw;
  color: #2b3c52;
  padding: 1.025vw 0;
}

.archive1-content .archive-nav li a:hover {
  background-color: #2b3c52;
  color: #fff;
}

.archive1-content .archive-nav li.current-cat a {
  background-color: #2b3c52;
  color: #fff;
}

.archive1-content .archive-ul {
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  text-align: left;
}

.archive1-content .archive-ul li {
  width: 100%;
  margin-bottom: 2.197vw;
}

.archive1-content .archive-ul li a {
  color: #2b3c52;
  display: flex;
  align-items: center;
}

.archive1-content .archive-ul li a:hover .img {
  transform: scale(1.1);
}

.archive1-content .archive-ul li a .img-wrapper {
  overflow: hidden;
  width: 18.302vw;
  min-width: 18.302vw;
  height: 18.302vw;
}

.archive1-content .archive-ul li a .img {
  width: 18.302vw;
  min-width: 18.302vw;
  height: 18.302vw;
  display: flex;
  background-image: url("../image/common/news-sumple.jpg");
  background-size: cover;
  background-position: center;
  transition: all 0.3s;
}

.archive1-content .archive-ul li a .post-disc {
  margin-left: 2.197vw;
  flex: 1 1 auto;
  min-width: 0;
}

.archive1-content .archive-ul li a .post-disc .top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.archive1-content .archive-ul li a .post-disc .top .date {
  margin-right: 0.733vw;
  font-weight: 500;
  font-size: 0.95vw;
}

.archive1-content .archive-ul li a .post-disc .top .cat-name {
  background: #2b3c52;
  color: #fff;
  margin-right: 0.733vw;
  padding: 0.22vw 0.733vw 0.146vw;
  font-size: 0.806vw;
  line-height: 1.4;
}

.archive1-content .archive-ul li a .post-disc .top .cat-name.important {
  background: #f39800;
}

.archive1-content .archive-ul li a .post-disc .top .cat-name.case-study {
  background: #00a29a;
}

.archive1-content .archive-ul li a .post-disc .title {
  font-size: 1.172vw;
  margin: 1.465vw 0;
  letter-spacing: 0.073vw;
  line-height: 1.6;
}

.archive1-content .archive-ul li a .post-disc .txt {
  font-size: 0.952vw;
  line-height: 1.9;
}

.archive_pagenation {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 2.197vw 0 0.733vw;
}

.archive_pagenation span,
.archive_pagenation a {
  color: #2b3c52;
  margin: 0 0.733vw;
  font-size: 1.025vw;
  line-height: 1;
}

.archive_pagenation span.current {
  color: #fff;
  background: #b7b7bb;
  border-radius: 50%;
  width: 1.758vw;
  height: 1.758vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.archive_pagenation a {
  font-weight: 400;
}

.archive_pagenation a.prev,
.archive_pagenation a.next {
  background: #29abe2;
  width: 3vw;
  height: 3vw;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.733vw;
}

.archive_pagenation a.prev {
  transform: rotate(180deg);
}

.archive_pagenation a.prev img,
.archive_pagenation a.next img {
  width: 0.513vw;
}

/* --------------------------------------------------
    archive tablet
-------------------------------------------------- */
@media screen and (max-width: 1200px) {
  .archive1-content {
    margin: 6vw auto;
  }

  .archive1-content .list {
    width: 74%;
  }

  .archive1-content .sidebar,
  .sidebar {
    width: 21%;
  }

  .sidebar dl dd {
    margin-top: 0.35vw;
  }

  .sidebar dl dd a {
    padding: 0.9vw 0;
    font-size: 1.35vw;
  }

  .archive1-content .archive-nav li a {
    font-size: 1.45vw;
    letter-spacing: 0.08vw;
    text-indent: 0.08vw;
    padding: 1.4vw 0;
  }

  .archive1-content .archive-ul li {
    margin-bottom: 3vw;
  }

  .archive1-content .archive-ul li a .img-wrapper,
  .archive1-content .archive-ul li a .img {
    width: 24vw;
    min-width: 24vw;
    height: 24vw;
  }

  .archive1-content .archive-ul li a .post-disc {
    margin-left: 2.4vw;
  }

  .archive1-content .archive-ul li a .post-disc .top .date {
    margin-right: 1vw;
    font-size: 1.35vw;
  }

  .archive1-content .archive-ul li a .post-disc .top .cat-name {
    margin-right: 1vw;
    padding: 0.35vw 1vw 0.25vw;
    font-size: 1.15vw;
  }

  .archive1-content .archive-ul li a .post-disc .title {
    font-size: 1.8vw;
    margin: 1.8vw 0;
  }

  .archive1-content .archive-ul li a .post-disc .txt {
    font-size: 1.35vw;
    line-height: 1.85;
  }

  .archive_pagenation {
    margin: 3vw 0 1vw;
  }

  .archive_pagenation span,
  .archive_pagenation a {
    margin: 0 1vw;
    font-size: 1.5vw;
  }

  .archive_pagenation span.current {
    width: 2.5vw;
    height: 2.5vw;
  }

  .archive_pagenation a.prev,
  .archive_pagenation a.next {
    width: 4.2vw;
    height: 4.2vw;
    border-radius: 0.8vw;
  }

  .archive_pagenation a.prev img,
  .archive_pagenation a.next img {
    width: 0.7vw;
  }
}

/* --------------------------------------------------
    archive sp
-------------------------------------------------- */
@media screen and (max-width: 767px) {
  .archive1-content {
    margin: 10.417vw 0;
    flex-direction: column-reverse;
  }

  .archive1-content .list,
  .archive1-content .sidebar,
  .sidebar {
    width: 100%;
  }

  .sidebar dl dd {
    margin-top: 2vw;
  }

  .sidebar dl dd a {
    font-size: 4.167vw;
    padding: 2.865vw 0;
  }

  .archive1-content .archive-nav {
    flex-wrap: wrap;
  }

  .archive1-content .archive-nav li {
    width: 50%;
    border-width: 0.13vw;
  }

  .archive1-content .archive-nav li:nth-child(2n) {
    border-right: 0.13vw solid;
  }

  .archive1-content .archive-nav li:nth-child(n + 3) {
    border-top: 0;
  }

  .archive1-content .archive-nav li a {
    font-size: 3.906vw;
    letter-spacing: 0.08em;
    text-indent: 0.08em;
    padding: 3.646vw 0;
  }

  .archive1-content .archive-ul {
    flex-direction: column;
    margin-top: 7.813vw;
  }

  .archive1-content .archive-ul li {
    width: 100%;
    margin-bottom: 7.813vw;
  }

  .archive1-content .archive-ul li a {
    flex-direction: column;
    align-items: flex-start;
  }

  .archive1-content .archive-ul li a .img-wrapper {
    width: 100%;
    min-width: 100%;
    height: 65vw;
  }

  .archive1-content .archive-ul li a .img {
    width: 100%;
    min-width: 100%;
    height: 65vw;
  }

  .archive1-content .archive-ul li a .post-disc {
    margin: 4.167vw auto 0;
    width: 100%;
  }

  .archive1-content .archive-ul li a .post-disc .top {
    flex-flow: row wrap;
    align-items: center;
  }

  .archive1-content .archive-ul li a .post-disc .top .date {
    width: 100%;
    margin-right: 0;
    font-size: 3.646vw;
  }

  .archive1-content .archive-ul li a .post-disc .top .cat-name {
    margin-top: 2.083vw;
    margin-right: 2.083vw;
    padding: 0.781vw 2.604vw 0.521vw;
    font-size: 3.385vw;
  }

  .archive1-content .archive-ul li a .post-disc .title {
    font-size: 4.688vw;
    margin: 3.125vw 0;
    line-height: 1.6;
  }

  .archive1-content .archive-ul li a .post-disc .txt {
    font-size: 3.5vw;
    line-height: 1.9;
  }

  .archive_pagenation {
    margin: 0 5% 10.417vw;
  }

  .archive_pagenation span,
  .archive_pagenation a {
    margin: 0 2.083vw;
    font-size: 4.167vw;
  }

  .archive_pagenation span.current {
    width: 7.031vw;
    height: 7.031vw;
  }

  .archive_pagenation a.prev,
  .archive_pagenation a.next {
    width: 10.417vw;
    height: 10.417vw;
    border-radius: 1.823vw;
  }

  .archive_pagenation a.prev img,
  .archive_pagenation a.next img {
    width: 1.563vw;
  }

  .ps-only-img {
            width: 69%;
        margin: 11.3vw auto 0;
  }
}

/* --------------------------------------------------
    single
-------------------------------------------------- */
.col2 {
  margin: 4.395vw 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.col2 .single2-content {
  width: calc(85% - 2.93vw);
  text-align: left;
}

.col2 .single2-content .title-wrapper .top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.col2 .single2-content .title-wrapper .top .date {
  color: #333333;
  font-size: 1.025vw;
  font-weight: 700;
  margin-right: 1.465vw;
}

.col2 .single2-content .title-wrapper .top .cat {
  background: #29abe2;
  color: #fff;
  margin-left: 0.733vw;
  display: inline-block;
  padding: 0.22vw 0.733vw 0.146vw;
  font-size: 0.806vw;
  line-height: 1.4;
}

.col2 .single2-content .title-wrapper .title {
  font-size: 1.758vw;
  margin: 2.563vw 0;
  font-weight: 500;
  letter-spacing: 0.073vw;
  line-height: 1.6;
}

.col2 .single2-content .thumb {
  width: 100%;
}

.col2 .single2-content .thumb img {
  width: 100%;
  height: auto;
}

.col2 .single2-content .content {
  margin-top: 2.197vw;
}

.col2 .single2-content .content p{
  font-weight: 300;
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 1rem;
  letter-spacing: 0.1rem;
}

.col2 .single2-content .content img{
  margin-bottom: 1.5rem;
}

.col2 .single2-content .content h3 {
  border-left: 6px solid #29abe2;
  color: #29abe2;
  line-height: 1.5;
  padding-left: 1rem;
  font-size: 1.6rem;
  font-weight: 700;
  margin: 3rem 0 1rem;
  letter-spacing: 0.3rem;
}

.col2 .single2-content .content h4 {
  background: #29abe2;
  color: #fff;
  font-size: 1.3rem;
  padding: 0.3rem 0.8rem;
  margin: 2.5rem 0 1.5rem;
  font-weight: 400;
  letter-spacing: 0.3rem;
}

.col2 .single2-content .content h5 {
  border: 1px solid #29abe2;
  padding: 0.3rem 0.8rem;
  font-weight: 400;
  font-size: 1.2rem;
  margin: 2.5rem 0 1.5rem;
  letter-spacing: 0.3rem;
}

.col2 .single2-content .content ul,
.col2 .single2-content .content ol {
  padding-left: 1.3rem;
  margin: 1.5rem 0 1.5rem 0.2rem;
  font-size: 1rem;
}

.col2 .single2-content .content ul {
  list-style: unset;
}

.col2 .single2-content .content ul li,
.col2 .single2-content .content ol li {
  list-style-type: unset;
  letter-spacing: 0.1rem;
  font-weight: 400;
  color: #333;
}

.col2 .single2-content .content ul li::marker,
.col2 .single2-content .content ol li::marker{
  color: #29abe2;
  font-weight: 700;
}

.col2 .single2-content .content a {
  display: inline-block;
  padding: 0.2rem 2rem;
  background: #29abe2;
  border: 1px solid #29abe2;
  color: #fff;
  margin: 1rem 0;
}

.col2 .single2-content .content a:hover {
  background: #fff;
  color: #29abe2;
}

.col2 .single2-content .postlinks-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 5.859vw;
}

.col2 .single2-content .postlinks-wrapper a {
  font-size: 0.952vw;
  letter-spacing: 0.08vw;
  text-indent: 0.08vw;
  color: #fff;
  line-height: 1;
  background: #29abe2;
  padding: 1.025vw 0;
  width: 8.053vw;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.733vw;
}

.col2 .single2-content .postlinks-wrapper .previous-one a,
.col2 .single2-content .postlinks-wrapper .next-one a {
  display: flex;
  align-items: center;
}

.col2 .single2-content .postlinks-wrapper .previous-one a img,
.col2 .single2-content .postlinks-wrapper .next-one a img {
  width: 0.366vw;
}

.col2 .single2-content .postlinks-wrapper .previous-one a img {
  margin-right: 0.366vw;
  transform: rotate(180deg);
}

.col2 .single2-content .postlinks-wrapper .next-one a img {
  margin-left: 0.366vw;
}

.col2 .single2-content .postlinks-wrapper .to_archive {
  margin: 0 1.465vw;
}

.col2 .sidebar {
  width: 15%;
}

.col2 .sidebar ul {
  text-align: center;
}

.col2 .sidebar ul li {
  border: 0.073vw solid;
  border-bottom: 0;
}

.col2 .sidebar ul li:last-child {
  border-bottom: 0.073vw solid;
}

.col2 .sidebar ul li a {
  display: block;
  padding: 1.025vw 0;
  color: #2b3c52;
  font-size: 0.95vw;
  letter-spacing: 0.08vw;
  text-indent: 0.08vw;
  font-weight: 400;
}

/* --------------------------------------------------
    single tablet
-------------------------------------------------- */
@media screen and (max-width: 1025px) {
  .col2 {
    margin: 6vw 0;
  }

  .col2 .single2-content {
    width: calc(82% - 2.93vw);
  }

  .col2 .single2-content .title-wrapper .top .date {
    font-size: 1.5vw;
    margin-right: 1.8vw;
  }

  .col2 .single2-content .title-wrapper .top .cat {
    margin-left: 1vw;
    padding: 0.35vw 1vw 0.25vw;
    font-size: 1.15vw;
  }

  .col2 .single2-content .title-wrapper .title {
    font-size: 2.6vw;
    margin: 3vw 0;
  }

  .col2 .single2-content .content {
    font-size: 1.55vw;
    margin-top: 3vw;
  }

  .col2 .single2-content .content h3 {
    font-size: 2.3vw;
    border-left-width: 0.5vw;
    padding-left: 1vw;
    margin: 3vw 0 1vw;
  }

  .col2 .single2-content .content h4 {
    font-size: 2vw;
    padding: 0.6vw 1vw;
    margin: 2vw 0 1vw;
  }

  .col2 .single2-content .content h5 {
    font-size: 1.7vw;
    padding: 0.25vw 1vw;
    margin: 2vw 0 1vw;
    border-width: 0.16vw;
  }

  .col2 .single2-content .content ul,
  .col2 .single2-content .content ol,
  .col2 .single2-content .content a {
    margin: 1vw 0;
  }

  .col2 .single2-content .content a {
    padding: 0.25vw 2vw;
  }

  .col2 .single2-content .postlinks-wrapper {
    margin-top: 7vw;
  }

  .col2 .single2-content .postlinks-wrapper a {
    width: 12vw;
    padding: 1.3vw 0;
    font-size: 1.4vw;
    border-radius: 0.8vw;
  }

  .col2 .single2-content .postlinks-wrapper .previous-one a img,
  .col2 .single2-content .postlinks-wrapper .next-one a img {
    width: 0.55vw;
  }

  .col2 .single2-content .postlinks-wrapper .to_archive {
    margin: 0 2vw;
  }

  .col2 .sidebar {
    width: 18%;
  }

  .col2 .sidebar ul li a {
    padding: 1.3vw 0;
    font-size: 1.4vw;
  }
}

/* --------------------------------------------------
    single sp
-------------------------------------------------- */
@media screen and (max-width: 767px) {
  .col2 {
    margin: 10.417vw 0;
    flex-direction: column;
  }

  .col2 .single2-content {
    width: 100%;
  }

  .col2 .single2-content .title-wrapper .top {
    flex-direction: column;
    align-items: flex-start;
  }

  .col2 .single2-content .title-wrapper .top .date {
    font-size: 3.906vw;
    margin-right: 0;
  }

  .col2 .single2-content .title-wrapper .top .cat {
    margin: 2.604vw 1.302vw 0 0;
    padding: 0.781vw 2.604vw 0.521vw;
    font-size: 3.385vw;
  }

  .col2 .single2-content .title-wrapper .title {
    font-size: 6.25vw;
    margin: 5.208vw 0;
    line-height: 1.6;
  }

  .col2 .single2-content .content {
    margin-top: 6.51vw;
    font-size: 3.7vw;
    letter-spacing: 0.03em;
    line-height: 2.1;
  }

  .col2 .single2-content .content h3 {
    border-left-width: 0.781vw;
    padding-left: 2.604vw;
    font-size: 5.469vw;
    margin: 6.51vw 0 2.604vw;
  }

  .col2 .single2-content .content h4 {
    font-size: 4.948vw;
    padding: 1.823vw 2.604vw;
    margin: 5.208vw 0 2.604vw;
  }

  .col2 .single2-content .content h5 {
    border-width: 0.26vw;
    padding: 1.042vw 2.604vw;
    font-size: 4.427vw;
    margin: 5.208vw 0 2.604vw;
  }

  .col2 .single2-content .content ul,
  .col2 .single2-content .content ol {
    margin: 2.604vw 0;
  }

  .col2 .single2-content .content a {
    padding: 1.042vw 4.688vw;
    margin: 2.604vw 0;
    border-width: 0.13vw;
  }

  .col2 .single2-content .postlinks-wrapper {
    flex-direction: column;
    margin-top: 12.5vw;
  }

  .col2 .single2-content .postlinks-wrapper a {
    width: 41.667vw;
    padding: 3.385vw 0;
    font-size: 3.906vw;
    border-radius: 1.823vw;
  }

  .col2 .single2-content .postlinks-wrapper .previous-one a img,
  .col2 .single2-content .postlinks-wrapper .next-one a img {
    width: 1.563vw;
  }

  .col2 .single2-content .postlinks-wrapper .previous-one a img {
    margin-right: 1.302vw;
  }

  .col2 .single2-content .postlinks-wrapper .next-one a img {
    margin-left: 1.302vw;
  }

  .col2 .single2-content .postlinks-wrapper .to_archive {
    margin: 2.604vw 0;
  }

  .col2 .sidebar {
    margin: 10.417vw auto 0;
    width: 70%;
  }

  .col2 .sidebar ul li {
    border-width: 0.13vw;
  }

  .col2 .sidebar ul li:last-child {
    border-bottom-width: 0.13vw;
  }

  .col2 .sidebar ul li a {
    font-size: 4.167vw;
    padding: 3.646vw 0;
  }
}

/* 404 */

.error-content {
  width: 60%;
  margin: 5rem auto;
  text-align: center;
}

.error-content .txt p {
  margin-top: 4rem;
  line-height: 2.5;
  font-size: 1.1rem;
  letter-spacing: 2px;
  font-weight: 500;
}

.error-content .btn-wrapper {
  margin-top: 4rem;
}

.error-content .btn-wrapper a {
    background: #29abe2;
    color: white;
    border: 0;
    display: inline-block;
    padding: 0.6rem 2rem;
    border: solid 3px #29abe2;
    border-radius: 50px;
    font-weight: 500;
    font-size: 1.2rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    letter-spacing: 0.1rem;
}

@media screen and (max-width: 768px) {
  .error-content {
    width: 100%;
  }
}
-content {
    width: 100%;
  }
}
