/* ----------------
  /campus_renewal
 ---------------- */


/* ---- extended settings for <body> ---- */

body {

  --sp-side-margin: 5.4vw;
  --cr-content-width-s: 928px;
  --cr-content-width-l: 1220px;

  position: relative;
  width: 100%;
  overflow-y: scroll;

}


/* ---- animation ---- */

@keyframes cr_arrow_right {
  0% {
    transform: translateX(0);
    opacity: 1
  }
  40% {
    transform: translateX(50%);
    opacity: 0
  }
  50% {
    transform: translateX(-50%);
    opacity: 0
  }
  100% {
    transform: translateX(0);
    opacity: 1
  }
}

@keyframes cr_arrow_down {
  0% {
    transform: translateY(0);
    opacity: 1
  }
  40% {
    transform: translateY(50%);
    opacity: 0
  }
  50% {
    transform: translateY(-50%);
    opacity: 0
  }
  100% {
    transform: translateY(0);
    opacity: 1
  }
}


/* ---- common parts ---- */

.cr_row {

  display: flex;
  flex-wrap: wrap;
  gap: 48px 4%;

  &.reverse {
    flex-direction: row-reverse;
  }

  .cr_col {
    width: 48%;
  }

}

.cr_row_3 {

  display: flex;
  flex-wrap: wrap;
  gap: 48px 4.1%;

  &.reverse {
    flex-direction: row-reverse;
  }

  .cr_col {
    width: 30.6%;
  }

}

@media screen and (max-width: 767px) {

  .cr_row {

    display: block;

    .cr_col {

      width: auto;

      + .cr_col {
        margin-top: 32px;
      }

    }

  }

  .cr_row_3 {

    display: block;

    .cr_col {

      width: auto;

      + .cr_col {
        margin-top: 32px;
      }

    }

  }

}

table {

  width: 100%;
  box-sizing: border-box;
  border-collapse: collapse;
  border-spacing: 0;

  & tr:not(:last-child) {
    border-bottom: 1px solid #d6dbdf;
  }

  & th {

    padding: 13px 20px;
    background-color: #dfe9f0;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;

    &:not(:last-of-type) {
      border-right: 1px solid #d6dbdf;
    }

  }

  & td {

    padding: 13px 20px;
    background-color: #fff;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.5;

    &:not(:last-of-type) {
      border-right: 1px solid #d6dbdf;
    }

  }

  & thead th {
    text-align: center;
    vertical-align: middle;
  }

  & tbody tr:not(:has(th)) td {
    text-align: center;
  }

}

@media screen and (max-width: 767px) {

  table {

    & th {
      padding: 11px 13px;
      font-size: 1.3rem;
    }

    & td {
      padding: 11px 13px;
      font-size: 1.3rem;
    }

  }

}


/* ---- header ---- */

.cr_header {

  position: fixed;
  left: 0;
  top: 0;
  z-index: 102;
  width: 100%;
  height: 120px;
  padding: 0;
  background-color: transparent;
  transform: translateY(0);
  transition: height .3s, background-color .3s, transform .3s;

  &.is_scrolled {
    height: 88px;
    background-color: #fff;
  }

  &.is_hidden {
    transform: translateY(-110%);
  }

  .hamburger_shown & {
    height: 120px;
  }

  .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: none;
    height: 100%;
    padding: 0 var(--md-side-margin);
  }

  .site_id {

    position: relative;
    width: 434px;

    & img {
      height: auto;
    }

    & img:first-child {

      display: block;
      width: 100%;
      opacity: 0;
      transition: opacity .2s;

      .is_scrolled &, .hamburger_shown & {
        opacity: 1;
      }

    }

    & img:last-child {

      display: block;
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      opacity: 1;
      transition: opacity .2s;

      .is_scrolled &, .hamburger_shown & {
        opacity: 0;
      }

    }

  }

  &.not_white {

    border-bottom: 1px solid rgba(0, 0, 0, .1);

    &.is_scrolled,
    .hamburger_shown & {
      border-bottom-style: none;
    }

    .site_id {

      & img:first-child {
        opacity: 1;
      }

      & img:last-child {
        opacity: 0;
      }

    }

  }

}

#js_cr_header_guide {
  position: absolute;
  left: 0;
  top: calc(100vh + 48px);
  bottom: 0;
  z-index: -1;
  width: 1px;
  pointer-events: none;
}

@media screen and (max-width: 767px) {

  .cr_header {

    height: 72px;

    &.is_scrolled {
      height: 72px;
    }

    .hamburger_shown & {
      height: 72px;
    }

    .inner {
      padding: 0 0 0 4vw;
    }

    .site_id {
      width: 260px;
    }

  }

}


/* ---- hamburger button ---- */

.cr_hamburger_button {

  display: block;
  position: relative;
  width: 50px;
  height: 50px;
  cursor: pointer;

  .icon {

    display: block;
    position: absolute;
    left: 15px;
    top: 14px;
    width: 20px;
    height: 2px;
    background-color: #fff;
    transition: background-color .3s;

    .is_scrolled &,
    .not_white & {

      background-color: #000;

      &::before, &::after {
        background-color: #000;
      }

    }

    &::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: #fff;
      transform: translateY(-6px) rotate(0) scale(1, 1);
      transition: background-color .3s, transform .3s;
    }

    &::after {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: #fff;
      transform: translateY(6px) rotate(0) scale(1, 1);
      transition: background-color .3s, transform .3s;
    }

  }

  .label {

    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    text-align: center;
    transition: color .2s;

    .is_scrolled &,
    .not_white & {
      color: #000;
    }

  }

  .hamburger_shown & {

    .icon {

      background-color: transparent;

      &::before {
        background-color: #000;
        transform: translateY(0) rotate(135deg) scale(1, 1);
      }

      &::after {
        background-color: #000;
        transform: translateY(0) rotate(-135deg) scale(1, 1);
      }

    }

    .label {
      color: #000;
    }

  }

  @media (hover: hover) {

    &:hover {

      .icon {

        &::before {
          transform: translateY(-8px) rotate(0) scale(1, 1);
        }

        &::after {
          transform: translateY(8px) rotate(0) scale(1, 1);
        }

      }

    }

    .hamburger_shown &:hover {

      .icon {

        &::before {
          transform: translateY(0) rotate(135deg) scale(1.3, 1);
        }

        &::after {
          transform: translateY(0) rotate(-135deg) scale(1.3, 1);
        }

      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_hamburger_button {

    width: 72px;
    height: 72px;

    .icon {

      left: 29px;
      top: 30px;
      width: 14px;
      height: 2px;

      &::before {
        transform: translateY(-4px) rotate(0) scale(1, 1);
      }

      &::after {
        transform: translateY(4px) rotate(0) scale(1, 1);
      }

    }

    .label {
      bottom: 22px;
      font-size: .8rem;
    }

  }

}


/* ---- hamburger cover, body ---- */

.cr_hamburger_cover {

  position: fixed;
  left: 0;
  top: 0;
  z-index: 100;
  width: 100%;
  height: 100vh;
  background-color: rgba(41, 78, 105, .1);
  backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s cubic-bezier(.08,.64,.56,1);

  .hamburger_shown & {
    opacity: 1;
    pointer-events: auto;
  }

}

.cr_hamburger_body {

  position: fixed;
  left: 0;
  top: 0;
  z-index: 101;
  width: 100%;
  padding: 160px var(--md-side-margin) 72px;
  background-color: #fff;
  opacity: 0;
  transform: translateY(-100%);
  will-change: opacity, transform;
  transition: opacity .3s cubic-bezier(.08,.64,.56,1), transform .3s cubic-bezier(.08,.64,.56,1);
  pointer-events: none;

  .hamburger_shown & {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

}

@media screen and (max-width: 767px) {

  .cr_hamburger_body {
    height: 100vh;
    padding: 96px var(--sp-side-margin) 48px;
    transform: translateY(-50vh);
  }

}


/* ---- hamburger navigation ---- */

.cr_hamburger_body {

  .inner {

    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;

    .col {
      width: 44%;
    }

    .pdf {
      width: 100%;
      margin-top: 40px;
    }

  }

  .col a {

    display: block;
    position: relative;
    padding-right: 30px;
    color: #000;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    overflow: hidden;
    backface-visibility: hidden;

    &:hover {
      color: #000;
      text-decoration: none;
    }

    &::after {
      content: "";
      display: block;
      position: absolute;
      right: 0;
      top: calc(50% - 9px);
      z-index: 1;
      width: 18px;
      height: 18px;
      background-image: url(../img/cr/icon_arrow_bl.svg);
      background-size: 100%;
    }

    &:hover::after {
      animation: cr_arrow_right .5s;
    }

    span {
      color: #237ab9;
    }

  }

  ul {

    margin-top: 32px;
    padding-left: 3px;

    li:not(:first-child) {
      margin-top: 16px;
    }

  }

  .heading:not(.x) {

    font-size: 2rem;

    span {
      color: #237ab9;
    }

  }

  .col > a.heading {
    margin-top: 48px;
  }

  & img {
    display: block;
    margin-top: 32px;
  }

  .pdf {

    font-size: 1.5rem;
    line-height: 1.6;

    a {

      display: inline-block;
      position: relative;
      padding-right: 26px;
      color: #237ab9;
      font-weight: 700;
      text-decoration: underline;

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: calc(50% - 9px);
        width: 18px;
        height: 18px;
        background-image: url(../img/cr/icon_pdf_bl.svg);
        background-size: 100%;
      }

      &:hover {
        text-decoration: none;
      }

    }

    & span {
      color: #999;
      font-weight: 500;
    }

  }

  dl {

    & button {
      display: none;
    }

  }

}

@media screen and (min-width: 768px) {

  .cr_hamburger_body {

    dl {

      dd {
        height: auto !important;
      }

    }

}

}

@media screen and (max-width: 767px) {

  .cr_hamburger_body {

    overflow-y: auto;

    .inner {

      display: block;

      .col {

        width: auto;

        &:not(:first-child) {
          margin-top: 40px;
        }

      }

      .pdf {
        margin-top: 40px;
        padding-bottom: 16px;
        border-bottom: 1px solid #e0e0e0;
      }

    }

    .col a {

      display: flex;
      align-items: center;
      height: 56px;
      border-bottom: 1px solid #e0e0e0;
      font-size: 1.4rem;

      &::after {
        top: calc(50% - 8px);
        width: 16px;
        height: 16px;
      }

    span {

        display: block;
        padding-right: .1em;

        &.upper {
          padding-bottom: 1.3em;
        }

      }

    }

    .col > a.heading {
      margin-top: 26px;
    }

    ul {

      margin-top: 0;

      li:not(:first-child) {
        margin-top: 0;
      }

      a {
        padding-left: 8px;
      }

      + ul li {

        margin-top: 12px;

        a {
          padding-left: 0;
        }

      }

    }

    .heading:not(.x) {
      font-size: 1.8rem;
    }

    & div.heading:not(.x) {
      margin-top: 40px;
    }

    & img {
      margin: 16px 0 8px;
    }

    .pdf {
      font-size: 1.4rem;
    }

    dl {

      & dt {

        position: relative;

        a {

          padding-right: 0;

          &::after {
            content: none;
          }

        }

      }

      & dd {
        height: 0;
        overflow: hidden;
        transition: height .2s cubic-bezier(.4, .4, 0, 1);
      }

      & button {

        display: block;
        position: absolute;
        right: 0;
        top: 0;
        z-index: 1;
        width: 48px;
        height: 100%;

        & span {

          display: block;
          position: absolute;
          right: 0;
          top: calc(50% - 8.5px);
          width: 17px;
          height: 17px;
          border-radius: 50%;
          background-color: #227ab9;
          overflow: hidden;
          text-indent: -1000px;

          &::before {
            content: "";
            display: block;
            position: absolute;
            left: 5px;
            top: 8px;
            width: 7px;
            height: 1px;
            background-color: #fff;
          }

          &::after {
            content: "";
            display: block;
            position: absolute;
            left: 5px;
            top: 8px;
            width: 7px;
            height: 1px;
            background-color: #fff;
            transform: rotate(90deg);
            transition: transform .2s;
          }

        }

        &.is-open span::after {
          transform: rotate(0);
        }

      }

    }

  }

}


/* ---- page heading ---- */

.cr_page_heading {

  padding: 168px var(--md-side-margin) 24px;
  background-color: #eef4f8;

  .title {

    display: flex;
    align-items: center;
    max-width: var(--cr-content-width-s);
    height: 154px;
    margin: 0 auto;

    .cr_article_title {
      font-size: 4.2rem;
      font-weight: 500;
      line-height: 1.24;
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_page_heading {

    padding: 88px var(--sp-side-margin) 44px;

    .title {

      height: auto;
      margin-top: 36px;
      padding-left: 2%;

      .cr_article_title {
        font-size: 6.4vw;
      }

    }

  }

}


/* ---- breadcrumbs ---- */

.cr_breadcrumbs {

  display: flex;
  flex-wrap: wrap;
  height: 40px;

  li {

    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.6;

    &:not(:last-child)::after {
      content: ">";
      display: inline-block;
      margin: 0 .8em;
      color: #999;
      transform: scale(.5, 1);
    }

    a {

      color: #000;
      font-weight: 400;
      text-decoration: none;
      opacity: 1;
      transition: opacity .2s;

      &:hover {
        opacity: .7;
      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_breadcrumbs {

    height: auto;

    & li:not(:last-child)::after {
      margin: 0 .4em;
    }

  }

}


/* ---- top page: first view ---- */

.cr_fv {

  height: 100vh;
  min-height: 640px;

  .cr_mv {

    display: flex;
    align-items: center;
    height: calc(100% - 100px);
    padding-bottom: 3vh;
    background-image: url(../img/cr/fv_bg_pc.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 100%;
    opacity: 0;
    filter: brightness(2);
    transition: opacity 3s ease-out, filter 3s ease-out;

    .txt {

      width: 100%;
      color: #fff;
      text-align: center;
      opacity: 0;
      filter: blur(10px);
      transition: opacity .6s 2.4s ease-out, filter .6s 2.4s ease-out;

      img {
        display: block;
        margin: 0 auto;
        width: 82px;
      }

      p:nth-child(1) {
        margin-top: 32px;
        font-size: 5rem;
        font-weight: 500;
        letter-spacing: .04em;
      }

      p:nth-child(2) {
        margin-top: 12px;
        font-size: 2.2rem;
        font-weight: 500;
        letter-spacing: .04em;
      }

      p:nth-child(3) {
        margin-top: 36px;
        font-family: Cormorant, serif;
        font-size: 1.8rem;
        font-weight: 600;
        letter-spacing: .36em;
        text-transform: uppercase;
        opacity: .7;
      }

    }

    &.is_shown {

      opacity: 1;
      filter: brightness(1);

      .txt {
        opacity: 1;
        filter: blur(0);
      }

    }

  }

  .cr_fv_nav {
    position: relative;
    z-index: 1;
    min-height: 100px;
    background-color: #eef4f8;
  }

}

@media screen and (max-width: 767px) {

  .cr_fv {

    height: auto;
    min-height: auto;

    .cr_mv {

      height: 100vh;
      min-height: 540px;
      padding-bottom: 111px;
      background-image: url(../img/cr/fv_bg_sp.jpg);

      .txt {

        img {
          width: 54px;
        }

        p:nth-child(1) {
          margin-top: 24px;
          font-size: 6vw;
        }

        p:nth-child(2) {
          margin-top: 10px;
          font-size: 4.2vw;
        }

        p:nth-child(3) {
          margin-top: 24px;
          font-size: 3vw;
        }

      }

    }

    .cr_fv_nav {
      height: auto;
      margin-top: -111px;
      padding: 0 var(--sp-side-margin);
      background-color: transparent;
    }

  }

}


/* ---- top page: anchor navigation ---- */

.cr_fv_nav ul {

  display: flex;
  justify-content: center;
  width: 100%;
  height: 100%;

  li {

    position: relative;

    &:not(:last-child)::after {
      content: "";
      display: block;
      position: absolute;
      right: 0;
      top: calc(50% - 12px);
      width: 1px;
      height: 24px;
      border-left: 1px dotted #999;
    }

    a {

      display: block;
      position: relative;
      height: 100%;
      padding: 18px 16px 40px;
      color: #000;
      font-size: 1.4rem;
      font-weight: 700;
      line-height: 1.4;
      text-align: center;
      text-decoration: none;

      & br:nth-child(2) {
        display: none;
      }

      &::after {
        content: "";
        display: block;
        position: absolute;
        left: calc(50% - 4px);
        bottom: 20px;
        width: 10px;
        height: 7px;
        background-image: url(../img/cr/angle_below_bl.svg);
        background-repeat: no-repeat;
        background-size: contain;
        background-position: 50%;
      }

      &:hover::after {
        animation: cr_arrow_down .5s;
      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_fv_nav ul {

    position: relative;
    flex-wrap: wrap;
    height: auto;
    padding: 12px 16px;
    background-color: #eef4f8;

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 16px;
      left: 50%;
      width: 1px;
      height: calc(100% - 32px);
      background-color: rgba(0, 0, 0, .1);
    }

    li {

      width: 50%;
      padding: 0 8px;

      &:not(:last-child)::after {
        content: none
      }

      &:nth-child(-n+4) {
        border-bottom: 1px solid rgba(0, 0, 0, .1);
      }

      a {

        display: flex;
        align-items: center;
        justify-content: center;
        padding: 14px 10px 26px;

        & br:nth-child(2) {
          display: inline;
        }

        &::after {
          bottom: 12px;
        }

      }

    }

  }

}


/* ---- top page: news section ---- */

.cr_top_news {

  padding: 80px var(--md-side-margin) 120px;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-s);
    margin: 0 auto;
  }

  .header {

    display: flex;
    align-items: center;
    justify-content: space-between;

    h2 {
      font-size: 3rem;
      font-weight: 500;
    }

    a {

      display: block;
      position: relative;
      padding: 5px 40px 5px 0;
      border-bottom: 1px solid rgba(0, 0, 0, .1);
      color: #000;
      font-size: 1.8rem;
      font-weight: 500;
      text-decoration: none;

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: calc(50% - 9px);
        width: 18px;
        height: 18px;
        background-image: url(../img/cr/icon_arrow_bl.svg);
        background-size: 100%;
      }

      &:hover::after {
        animation: cr_arrow_right .5s;
      }

    }

  }

  .cr_news {
    margin-top: 24px;
  }

  .cr_news + a {

    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    height: 200px;
    margin-top: 64px;
    padding: 0 12%;
    color: #fff;
    text-decoration: none;

    .txt {

      position: relative;
      z-index: 2;

      p:first-child {
        font-size: 2.8rem;
        font-weight: 500;
        letter-spacing: .03em;
        line-height: 1.4;
      }

      p:last-child {
        margin-top: 12px;
        font-size: 1.6rem;
        font-weight: 500;
        letter-spacing: .03em;
        line-height: 1.4;
      }

    }

    .arrow {

      flex-shrink: 0;
      position: relative;
      z-index: 2;
      width: 48px;
      height: 48px;
      border: 1px solid #fff;
      border-radius: 50%;
      background-color: transparent;
      transition: background-color .2s;

      &::after {
        content: "";
        display: block;
        position: absolute;
        left: 15px;
        top: calc(50% - 9px);
        width: 18px;
        height: 18px;
        background-image: url(../img/cr/icon_arrow_wh.svg);
        background-size: 100%;
      }

    }

    &::after {
      content: "";
      display: block;
      position: absolute;
      left: 0;
      top: 0;
      z-index: 1;
      width: 100%;
      height: 100%;
      background-image: url(../img/cr/umegaoka_banner_bg_pc.jpg);
      background-size: cover;
      transform: scale(1);
      transition: transform .3s cubic-bezier(.4, .4, 0, 1);
    }

    &:hover {

      .arrow {

        background-color: #fff;

        &::after {
          background-image: url(../img/cr/icon_arrow_bl.svg);
          animation: cr_arrow_right .5s;
        }

      }

      &::after {
        transform: scale(1.1);
       transition: transform 1s cubic-bezier(.4, .4, 0, 1);
      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_news {

    padding: 13vw var(--sp-side-margin) 17vw;

    .header {

      h2 {
        font-size: 2.1rem;
      }

      a {

        font-size: 1.3rem;

        &::after {
          top: calc(50% - 8px);
          width: 16px;
          height: 16px;
        }

      }

    }

    .cr_news {
      margin-top: 12px;
    }

    .cr_news + a {

      height: 120px;
      margin-top: 40px;
      padding: 0 6%;

      .txt {

        p:first-child {
          font-size: 1.7rem;
        }

        p:last-child {
          margin-top: 8px;
          font-size: 1.1rem;
        }

      }

      .arrow {

        width: 36px;
        height: 36px;

        &::after {
          left: 12px;
          top: calc(50% - 6px);
          width: 12px;
          height: 12px;
        }

      }

      &::after {
        background-image: url(../img/cr/umegaoka_banner_bg_sp.jpg);
      }

    }

  }

}


/* ---- top page: kx section ---- */

.cr_top_kx {

  padding: 72px var(--md-side-margin) 108px;
  background-image: url(../img/cr/kx_bg.jpg);
  background-size: cover;
  background-position: 50%;

  h2 {

    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 32px;

    & span:first-child {
      font-size: 6.6rem;
      font-weight: 500;
    }

    & span:last-child {
      display: block;
      padding-top: 12px;
      font-size: 2rem;
      font-weight: 500;
    }

  }

  .sub {

    text-align: center;

    & span {

      display: inline-block;
      position: relative;
      padding: 0 52px;
      font-size: 3.1rem;
      font-weight: 500;

      &::before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 50%;
        width: 30px;
        height: 1px;
        background-color: #000;
      }

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: 50%;
        width: 30px;
        height: 1px;
        background-color: #000;
      }

    }

    & br {
      display: none;
    }

  }

  p {

    margin-top: 56px;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.8;
    text-align: center;

    + p {
      margin-top: 1.8em;
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_kx {

    padding: 10vw var(--sp-side-margin) 16vw;

    h2 {

      display: block;
      width: 300px;
      margin: 0 auto;
      text-align: center;

      & span:first-child {
        font-size: 4rem;
      }

      & span:last-child {
        padding-top: 2px;
        font-size: 1.8rem;
      }

    }

    .sub {

      margin-top: 20px;
      padding: 10px 0;
      border-top: 1px solid rgba(0, 0, 0, .1);
      border-bottom: 1px solid rgba(0, 0, 0, .1);

      & span {

        padding: 0;
        font-size: 2.2rem;
        line-height: 1.4;

        &::before {
          content: none;
        }

        &::after {
          content: none;
        }

      }

      & br {
        display: inline;
      }

    }

    p {
      margin-top: 32px;
      font-size: 1.4rem;
      text-align: left;
    }

  }

}


/* ---- top page: #section-1 ---- */

.cr_top_sec1 {

  padding: 108px var(--md-side-margin);
  background: linear-gradient(-132deg, rgba(233, 165, 165, 0.26) 0%, rgba(101, 192, 224, 0.26) 40%, rgba(174, 162, 219, 0.26) 80%);

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-l);
    margin: 0 auto;
  }

  & h2 {
    font-size: 4.2rem;
    letter-spacing: .07em;
    text-align: center;
  }

  .box {

    width: 80%;
    margin-top: 80px;
    margin-right: auto;
    padding: 40px 48px;
    border: 2px solid #fff;
    background-color: rgba(255, 255, 255, .2);

    &:nth-child(2n+1) {
      margin-left: auto;
      margin-right: 0;
    }

    & h3 {

      display: flex;
      align-items: center;
      font-size: 2.6rem;
      font-weight: 600;
      line-height: 1.6;

      & span {
        flex-shrink: 0;
        padding-right: .5em;
        color: #68a6c4;
        font-size: 2.7rem;
        font-weight: 500;
      }

    }

    & p {
      margin-top: 12px;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 2;
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_sec1 {

    padding: 16vw var(--sp-side-margin);

    & h2 {
      font-size: 2.6rem;
      line-height: 1.2;
    }

    .box {

      width: auto;
      margin-top: 36px;
      margin-right: 0;
      padding: 24px;
      border: 1px solid #fff;

      &:nth-child(2n+1) {
        margin-left: 0;
      }

      & h3 {

        align-items: flex-start;
        font-size: 1.8rem;
        line-height: 1.4;

        & span {
          font-size: 2.2rem;
          line-height: 1.1;
        }

      }

      & p {
        margin-top: 20px;
        font-size: 1.4rem;
        line-height: 1.7;
      }

    }

  }

}


/* ---- top page: #section-1 / environment ---- */

.cr_top_environment {

  margin-top: 80px;
  padding: 64px 48px;
  background-color: #fff;

  .shoulder {

    text-align: center;

    & span {

      display: inline-block;
      position: relative;
      padding: 0 38px;
      font-size: 2.4rem;
      font-weight: 500;

      &::before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 50%;
        width: 24px;
        height: 1px;
        background-color: #000;
      }

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: 50%;
        width: 24px;
        height: 1px;
        background-color: #000;
      }

    }

  }

  & h3 {

    font-size: 4.2rem;
    font-weight: 400;
    text-align: center;

    + p {
      margin-top: 24px;
      font-size: 1.7rem;
      font-weight: 400;
      line-height: 1.8;
      text-align: center;
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_environment {

    margin-top: 16vw;
    padding: 36px 16px;

    .shoulder {

      width: 288px;
      margin: 0 auto;
      border-top: 1px solid #000;
      border-bottom: 1px solid #000;

      & span {

        padding: 8px 0;
        font-size: 1.7rem;

        &::before {
          content: none;
        }

        &::after {
          content: none;
        }

      }

    }

    & h3 {

      margin-top: 20px;
      font-size: 2.6rem;

      + p {

        margin-top: 18px;
        font-size: 1.4rem;
        text-align: left;

        br {
          display: none;
        }

      }

    }

  }

}


/* ---- top page: #section-1 / training ---- */

.cr_top_environment .box_border{
  border: 10px solid #daeef7;
  border-image-source: linear-gradient(254deg, #daeef7 0%, #e9e7f5 100%);
  border-image-slice: 1;
  margin-top: 30px;
  padding: 25px 20px 45px;
}
.cr_top_environment .box_border .ttl_project01{
  font-weight: 600;
  text-align: center;
}
.cr_top_environment .box_bg_p{
  background-color: #fdf6f6;
  padding: 10px 20px;
  width: fit-content;
  margin: 0 auto;
  margin-top: 23px;
}
.cr_top_environment .txt_catch{
  text-align: center;
  font-size: 20px;
  font-size: 2rem;
  font-weight: 600;
}
.cr_top_environment .txt_p{
  margin-top: 24px;
}
.cr_top_environment .box_border .box_bglist{
  display: block;
  margin: 0 auto;
  margin-top: 20px;
  position: relative;
  padding-top: 90px;
}
.cr_top_environment .box_border .box_bglist .bg{
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 608px;
  text-align: center;
}
.cr_top_environment .box_border .box_bglist .flex{
  position: relative;
  -webkit-box-pack: justify;
  justify-content: space-between;
}
.cr_top_environment .box_border .box_bglist .flex .item{
  max-width: 420px;
  padding: 15px 20px;
}
.cr_top_environment .box_border .box_bglist .flex .item + .item{
  margin-left: 20px;
}
.cr_top_environment .box_border .box_bglist .list_disc{
  margin-top: 20px;
}
.list_disc.purple li::before{
  background-color: #aea2db;
}
.list_disc.blue li::before{
  background-color: #63bfe2;
}

@media screen and (max-width :1300px) {
  .cr_top_environment .box_border .box_bglist{
    padding-top: 0;
  }
  .cr_top_environment .box_border .box_bglist .bg{
    position: relative;
    top: 0;
    left: 0;
    -webkit-transform: none;
    transform: none;
    width: 70%;
    max-width: 570px;
    display: block;
    margin: 0 auto;
  }
  .cr_top_environment .box_border .box_bglist .flex{
    max-width: 860px;
    margin: 0 auto;
  }
  .cr_top_environment .box_border .box_bglist .flex .item{
    padding: 20px 0 0;
    width: 50%;
  }
}
@media screen and (max-width :834px) {
  .cr_top_environment .box_border{
    border: 5px solid #daeef7;
    border-image-source: linear-gradient(254deg, #daeef7 0%, #e9e7f5 100%);
    border-image-slice: 1;
    margin-top: 20px;
    padding: 18px 15px 23px;
  }
  .cr_top_environment .box_bg_p{
    margin-top: 12px;
  }
  .cr_top_environment .txt_catch{
    font-size: 16px;
    font-size: 1.6rem;
  }
  .cr_top_environment .txt_p{
    margin-top: 13px;
  }
  .cr_top_environment .box_border .box_bglist{
    padding-top: 0;
  }
  .cr_top_environment .box_border .box_bglist .flex{
    -webkit-box-orient: vertical;
  	-webkit-box-direction: normal;
    flex-direction: column;
    -webkit-box-align: center;
    align-items: center;
  }
  .cr_top_environment .box_border .box_bglist .flex .item{
    padding: 15px 0 0;
    width: 100%;
  }
  .cr_top_environment .box_border .box_bglist .flex .item + .item{
    margin-left: 0;
  }
  .cr_top_environment .box_border .box_bglist .list_issue{
    margin-top: 10px;
    padding: 10px 15px;
  }
  .cr_top_environment .box_border .box_bglist .list_issue.purple{
    background-color: #f7f6fb;
  }
  .cr_top_environment .box_border .box_bglist .list_issue.blue{
    background-color: #eff8fc;
  }
  .cr_top_environment .box_border .box_bglist .list_issue li{
    font-size: 14px;
    font-size: 1.4rem;
  }
  .cr_top_environment .box_border .box_bglist .list_issue li + li{
    margin-top: 5px;
  }
}


/* ---- top page: #section-2 ---- */

.cr_top_sec2 {

  padding: 108px var(--md-side-margin);

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-l);
    margin: 0 auto;
  }

  & h2 {
    font-size: 4.2rem;
    letter-spacing: .07em;
    text-align: center;
  }

  & ul {

    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 48px 3.6%;
    margin-top: 48px;

    & > li {

      width: 22.3%;

      & p:nth-child(2) {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 2.6em;
        margin-top: 16px;
        font-size: 2.2rem;
        font-weight: 600;
        line-height: 1.3;
        text-align: center;
      }

      & p:nth-child(3) {
        margin-top: 16px;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.6;
      }

      ol {

        margin-top: 16px;
        padding-left: 1.2em;
        list-style-type: decimal;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.6;

        & li {

          &:not(:first-child) {
            margin-top: 5px;
          }

          &::marker {
            color: #68a6c4;
          }

        }

      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_sec2 {

    padding: 16vw var(--sp-side-margin);

    & h2 {
      font-size: 2.6rem;
      line-height: 1.2;
    }

    & ul {

      justify-content: flex-start;
      gap: 6.4vw 6%;
      margin-top: 40px;

      & > li {

        width: 47%;

        & p:nth-child(2) {
          margin-top: 16px;
          font-size: 1.6rem;
        }

        & p:nth-child(3) {
          margin-top: 10px;
          font-size: 1.4rem;
        }

        ol {

          margin-top: 16px;
          font-size: 1.4rem;

          & li {

            &:not(:first-child) {
              margin-top: 4px;
            }

          }

        }

      }

    }

  }

}


/* ---- top page: #section-3 ---- */

.cr_top_sec3 {

  padding: 108px var(--md-side-margin);
  background-color: #eef4f8;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-l);
    margin: 0 auto;
  }

  & h2 {
    font-size: 4.2rem;
    letter-spacing: .07em;
    text-align: center;
  }

  & h2 + p {
    margin-top: 40px;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
  }

  & h3 {
    margin-top: 136px;
    font-size: 2.4rem;
    font-weight: 600;
    text-align: center;
  }

  & h3 + p {
    margin-top: 32px;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
  }

  .outline {

    margin-top: 64px;

    & th {
      white-space: nowrap;
    }

    .cr_col {
      position: relative;
    }

    img {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 50% 64%;
    }

  }

  .aerial_shot {

    margin-top: 56px;

    & p {
      font-size: 1.7rem;
      font-weight: 400;
      text-align: right;
    }

    & img {
      display: block;
      width: 100%;
      margin-top: 4px;
    }

  }

  .phase {

    margin-top: 64px;

    & p {
      font-size: 2.4rem;
      font-weight: 700;
    }

    & img {
      display: block;
      margin-top: 8px;
    }

  }

  .spec {

    margin-top: 40px;

    .table_header {

      display: flex;
      align-items: flex-end;
      justify-content: space-between;

      .title {
        font-size: 1.5rem;
        font-weight: 700;
      }

      .unit {
        font-size: 1.3rem;
        font-weight: 500;
      }

    }

    & table {

      margin-top: 12px;

      &.narrow {
        display: none;
      }

      & thead {

        height: 4.2em;

        & th {
          padding: 0 20px;
          font-weight: 600;
          line-height: 1.3;
        }

      }

    }

  }

}

@media screen and (min-width: 768px) and (max-width: 1239px) {

  .cr_top_sec3 {

    .spec table {

      &.wide {
        display: none;
      }

      &.narrow {
        display: table;
      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_sec3 {

    padding: 16vw var(--sp-side-margin);

    & h2 {
      font-size: 2.6rem;
      line-height: 1.2;
    }

    & h2 + p {
      margin-top: 32px;
      font-size: 1.4rem;
      text-align: left;
    }

    & h3 {
      margin-top: 48px;
      font-size: 1.7rem;
    }

    & h3 + p {
      margin-top: 16px;
      font-size: 1.4rem;
      text-align: left;
    }

    .outline {

      margin-top: 40px;

      & th {
        white-space: nowrap;
      }

      img {
        position: static;
        object-fit: fill;
      }

    }

    .aerial_shot {

      margin-top: 40px;

      & p {
        font-size: 1.3rem;
      }

      & img {
        margin-top: 3px;
      }

    }

    .phase {

      margin-top: 40px;

      & p {
        font-size: 1.6rem;
      }

    }

    .spec {

      margin-top: 40px;

      .table_header {

        .title {
          font-size: 1.3rem;
        }

        .unit {
          font-size: 1.2rem;
        }

      }

      & table {

        margin-top: 10px;

        &.wide {
          display: table;
        }

        &.narrow {
          display: none;
        }

        & thead {

          height: auto;

          & th {
            padding: 11px 5px;
            font-size: 1.1rem;
          }

        }

        & td {
          font-size: 1.1rem;
        }

      }

    }

  }

}


/* ---- top page: #section-4 ---- */

.cr_top_sec4 {

  .header {

    padding: 108px var(--md-side-margin) 0;

    & h2 {
      max-width: var(--cr-content-width-l);
      margin: 0 auto;
      font-size: 4.2rem;
      letter-spacing: .02em;
      text-align: center;
    }

    & h2 + p {
      max-width: var(--cr-content-width-l);
      margin: 40px auto 0;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 1.6;
      text-align: center;
    }

  }

  .overall {

    padding: 64px var(--md-side-margin) 0;

    .inner {

      width: 100%;
      max-width: var(--cr-content-width-l);
      margin: 0 auto;
      padding: 40px 48px;
      background-color: #eef4f8;

      & h3 {
        font-size: 2.4rem;
        font-weight: 700;
        text-align: center;
      }

      & h3 + p {

        margin: 32px 0 40px;
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1.5;
        text-align: center;

        & em {
          padding: 0 .3em;
          background: linear-gradient(transparent 40%, rgba(233, 165, 165, 0.3) 0%);
        }

      }

    }

  }

  .areas {

    padding: 80px var(--md-side-margin) 0;

    .cr_row {

      max-width: var(--cr-content-width-l);
      margin: 0 auto;

      & h3 {
        font-size: 2.4rem;
        font-weight: 600;
        text-align: center;
      }

      .swiper {

        margin-top: 24px;

        .swiper-nav {

          position: absolute;
          left: 0;
          top: 0;
          width: 100%;
          height: 100%;

          .swiper-button-prev {

            position: absolute;
            left: 0;
            top: 0;
            z-index: 1;
            width: calc(100% * .072 - 8px);
            height: 100%;
            margin: 0;
            background-color: rgba(120, 160, 192, .5);
            backdrop-filter: blur(4px);
            cursor: pointer;

            &::after {
              content: "";
              display: block;
              position: absolute;
              left: calc(50% - 2px);
              top: calc(50% - 4px);
              width: 8px;
              height: 8px;
              border-top: 2px solid #fff;
              border-left: 2px solid #fff;
              transform: rotate(-45deg);
            }

            &:hover {
            background-color: rgba(120, 160, 192, .7);
            }

          }

          .swiper-button-next {

            position: absolute;
            right: 0;
            top: 0;
            z-index: 1;
            width: calc(100% * .072 - 8px);
            height: 100%;
            margin: 0;
            background-color: rgba(120, 160, 192, .5);
            backdrop-filter: blur(4px);
            cursor: pointer;

            &::after {
              content: "";
              display: block;
              position: absolute;
              right: calc(50% - 2px);
              top: calc(50% - 4px);
              width: 8px;
              height: 8px;
              border-top: 2px solid #fff;
              border-right: 2px solid #fff;
              transform: rotate(45deg);
            }

            &:hover {
            background-color: rgba(120, 160, 192, .7);
            }

          }

          .swiper-button-disabled {
            display: none;
          }

          svg {
            display: none;
          }

        }

      }

      .swiper-caption {

        position: relative;

        .swiper-pagination {

          display: flex;
          justify-content: center;
          column-gap: 16px;
          position: static;
          padding: 24px 0 16px;

          .swiper-pagination-bullet {

            width: 6px;
            height: 6px;
            border-radius: 50%;
            background-color: #237ab9;
            opacity: .2;
            transition: opacity .2s;

            &.swiper-pagination-bullet-active {
              opacity: 1;
            }

          }

        }

        ul {

          position: relative;

          li {

            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            opacity: 0;
            transition: opacity .2s;
            font-size: 1.8rem;
            font-weight: 600;
            line-height: 1.3;
            text-align: center;

            &.active {
              opacity: 1;
            }

          }

        }

      }

    }

  }

  .images {

    padding: 80px var(--md-side-margin) 0;

    & h3 {
      font-size: 2.4rem;
      font-weight: 600;
      text-align: center;
    }

    .cr_row_3 {

      max-width: var(--cr-content-width-l);
      margin: 24px auto 0;

      & h4 {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 2.6em;
        margin-top: 24px;
        font-size: 1.8rem;
        font-weight: 600;
        line-height: 1.3;
        text-align: center;
      }

      & p {
        margin-top: 16px;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.6;
      }

      & ul {

        margin-top: 16px;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.6;

        & li {

          position: relative;
          padding-left: 1.5em;

          &::before {
            content: "・";
            display: inline-block;
            position: absolute;
            top: 0;
            left: 0;
            width: 1em;
            color: #aea2db;
            text-align: center;
            transform: scale(1.8);
          }

          &:not(:first-child) {
            margin-top: 10px;
          }

        }

      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_sec4 {

    .header {

      padding: 16vw var(--sp-side-margin) 0;

      & h2 {
        font-size: 2.6rem;
        line-height: 1.2;
      }

      & h2 + p {
        margin-top: 28px;
        font-size: 1.4rem;
        text-align: left;
      }

    }

    .overall {

      padding: 32px 0 0;

      .inner {

        padding: 32px var(--sp-side-margin);

        & h3 {
          font-size: 1.7rem;
        }

        & h3 + p {
          margin: 16px 0 24px;
          font-size: 1.4rem;
          text-align: left;
        }

      }

    }

    .areas {

      padding: 48px 0 0;

      .cr_row {

        .cr_col:nth-child(2) {
          margin-top: 64px;
        }

        & h3 {
          font-size: 2.2rem;
        }

        .swiper {

          margin-top: 24px;

          .swiper-nav {
            display: none;
          }

        }

        .swiper-caption {

          .swiper-pagination {
            padding: 16px 0 12px;
          }

          ul {

            li {
              font-size: 1.4rem;
            }

          }

        }

      }

    }

    .images {

      padding: 64px 10.6vw 0;

      & h3 {
        font-size: 2.2rem;
      }

      .cr_row_3 {

        margin: 24px auto 0;

        & h4 {
          height: auto;
          margin-top: 16px;
          font-size: 1.6rem;
        }

        & p {
          margin-top: 16px;
          font-size: 1.4rem;
        }

        & ul {
          margin-top: 16px;
          font-size: 1.4rem;
        }

      }

    }

  }

}


/* ---- top page: #section-5 ---- */

.cr_top_sec5 {

  .header {

    padding: 120px var(--md-side-margin) 40px;

    & h2 {
      max-width: var(--cr-content-width-l);
      margin: 0 auto;
      font-size: 4.2rem;
      letter-spacing: .02em;
      text-align: center;
    }

  }

  .umegaoka {

    display: flex;
    align-items: center;
    height: 620px;
    background-image: url(../img/cr/umegaoka_bg_pc.jpg);
    background-size: cover;
    background-position: 50%;

    .inner {
      width: 100%;
      max-width: 584px;
      color: #fff;
    }

    .phase {
      font-size: 1.6rem;
      font-weight: 500;
      letter-spacing: .03em;
      text-align: center;
    }

    & h3 {
      margin-top: 24px;
      font-size: 2.8rem;
      font-weight: 500;
      letter-spacing: .03em;
      text-align: center;
    }

    .period {
      margin-top: 14px;
      font-size: 1.6rem;
      font-weight: 500;
      letter-spacing: .03em;
      text-align: center;
    }

    & p {
      margin-top: 32px;
      font-size: 2.2rem;
      font-weight: 500;
      letter-spacing: .03em;
      text-align: center;
    }

    .buttons {

      display: flex;
      justify-content: center;
      column-gap: 24px;
      margin-top: 40px;

      a {

        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        width: 280px;
        height: 74px;
        border-radius: 100px;
        background-color: #eef4f8;
        color: #000;
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1.4;
        text-align: center;
        text-decoration: none;
        transition: background-color .2s;

        &:hover {
          background-color: #c5dceb;
        }

        &::after {
          content: "";
          display: block;
          position: absolute;
          right: 26px;
          top: calc(50% - 10px);
          width: 20px;
          height: 20px;
          background-image: url(../img/cr/icon_circle_angle_bl.svg);
          background-size: contain;
        }

      }

    }

  }

}

@media (max-aspect-ratio: 1 / 1) {

  .cr_top_sec5 {

    .umegaoka {
      background-image: url(../img/cr/umegaoka_bg_sp.jpg);
      background-position: 50% 0;
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_sec5 {

    .header {

      padding: 16vw var(--sp-side-margin) 32px;

      & h2 {
        font-size: 2.6rem;
        line-height: 1.2;
      }

    }

    .umegaoka {

      display: block;
      height: auto;

      .inner {
        max-width: none;
        padding: 12vw var(--sp-side-margin) 18vw;
      }

      .phase {
        font-size: 1.3rem;
      }

      & h3 {
        margin-top: 12px;
        font-size: 2rem;
      }

      .period {
        margin-top: 6px;
        font-size: 1.1rem;
      }

      & p {
        margin-top: 20px;
        font-size: 1.4rem;
      }

      .buttons {

        flex-wrap: wrap;
        justify-content: center;
        gap: 24px;
        margin-top: 40px;

        a {
          height: 64px;
          font-size: 1.4rem;
        }

      }

    }

  }

}


/* ---- top page: #section-6 ---- */

.cr_top_sec6 {

  padding: 108px var(--md-side-margin) 160px;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-l);
    margin: 0 auto;
  }

  & h2 {
    font-size: 4.2rem;
    letter-spacing: .07em;
    text-align: center;
  }

  & h2 + p {
    margin-top: 40px;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
  }

  .schedule {

    margin-top: 32px;
    overflow-x: auto;

    & img {
      display: block;
      width: 100%;
      max-width: none;
      transition: width .3s ease-out;
    }

  }

  .zoom {
    display: none;
  }

  & ul {

    margin-top: 32px;

    & li {

      position: relative;
      padding-left: 1.5em;
      font-size: 1.3rem;
      font-weight: 500;
      line-height: 1.6;

      &::before {
        content: '※';
        position: absolute;
        left: 0;
        top: 0;
      }

      &:not(:first-child) {
        margin-top: 5px;
      }

    }

  }

  .pdf {

    margin-top: 24px;
    font-size: 1.6rem;

    a {

      display: inline-block;
      position: relative;
      padding-right: 26px;
      color: #237ab9;
      font-weight: 700;
      text-decoration: underline;

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: calc(50% - 9px);
        width: 18px;
        height: 18px;
        background-image: url(../img/cr/icon_pdf_bl.svg);
        background-size: 100%;
      }

      &:hover {
        text-decoration: none;
      }

    }

    & span {
      color: #999;
      font-weight: 500;
    }

  }

}

@media screen and (max-width: 1119px) {

  .cr_top_sec6 {

    .schedule {

      &.is_zoomed img {
        width: 720px;
      }

    }

    .zoom {

      display: block;
      text-align: right;
      margin-top: 10px;

      & button {

        display: inline-block;
        position: relative;
        padding-right: 20px;
        color: #227ab9;
        font-family: inherit;
        font-size: 1.4rem;
        font-weight: 700;

        & span {

          display: block;
          position: absolute;
          right: 0;
          top: calc(50% - 8.5px);
          width: 17px;
          height: 17px;
          border-radius: 50%;
          background-color: #227ab9;

          &::before {
            content: "";
            display: block;
            position: absolute;
            left: 5px;
            top: 8px;
            width: 7px;
            height: 1px;
            background-color: #fff;
          }

          &::after {
            content: "";
            display: block;
            position: absolute;
            left: 5px;
            top: 8px;
            width: 7px;
            height: 1px;
            background-color: #fff;
            transform: rotate(90deg);
            transition: transform .2s;
          }

        }

      }

    }

    .is_zoomed + .zoom button span::after {
      transform: rotate(0);
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_top_sec6 {

    padding: 16vw var(--sp-side-margin) 24vw;

    & h2 {
      font-size: 2.6rem;
      line-height: 1.2;
    }

    & h2 + p {
      margin-top: 32px;
      font-size: 1.4rem;
      text-align: left;
    }

    .schedule {
      margin-top: 24px;
    }

    & ul {

      margin-top: 24px;

      & li {
        font-size: 1.2rem;
      }

    }

    .pdf {

      margin-top: 20px;
      font-size: 1.4rem;

      a {

        display: inline-block;
        position: relative;
        padding-right: 26px;
        color: #237ab9;
        font-weight: 700;
        text-decoration: underline;

        &::after {
          top: calc(50% - 8px);
          width: 16px;
          height: 16px;
        }

      }

    }

  }

}


/* ---- news index page ---- */

.cr_news_index {

  padding: 120px var(--md-side-margin) 160px;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-s);
    margin: 0 auto;
  }

}

@media screen and (max-width: 767px) {

  .cr_news_index {
    padding: 8vw var(--sp-side-margin) 17vw;
  }

}


/* ---- news list ---- */

.cr_news {

  li {
    border-bottom: 1px solid rgba(0, 0, 0, .1);
  }

  a {

    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
    padding: 18px 56px 18px 0;
    text-decoration: none;

    .date {
      flex-shrink: 0;
      width: 120px;
      color: #444;
      font-size: 1.5rem;
      font-weight: 500;
    }

    .title {
      color: #000;
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 1.8;
    }

    &::after {
      content: "";
      display: block;
      position: absolute;
      right: 0;
      top: calc(50% - 9px);
      width: 18px;
      height: 18px;
      background-image: url(../img/cr/icon_arrow_bl.svg);
      background-size: 100%;
    }

    &[target]::after {
      background-image: url(../img/cr/icon_outbound_bl.svg);
    }

    &[href$='.pdf']::after {
      right: -1px;
      background-image: url(../img/cr/icon_pdf_bl.svg);
    }

    &:hover::after {
      animation: cr_arrow_right .5s;
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_news {

    a {

      display: block;
      padding: 16px 48px 14px 0;

      .date {
        width: auto;
        font-size: 1.3rem;
      }

      .title {
        margin-top: 6px;
        font-size: 1.4rem;
      }

      &::after {
        top: calc(50% - 8px);
        width: 16px;
        height: 16px;
      }

    }

  }

}


/* ---- pagination ---- */

.pagination {
  margin-top: 80px;
}

@media screen and (max-width: 767px) {
  .pagination {
    position: relative;
    margin-top: 120px;
  }
}

.pagination__list {
    list-style: none;
    width: fit-content;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.6;
    gap: 6px;
}

@media print,screen and (min-width: 768px) {
    .pagination__list {
        gap:6px
    }
}

.pagination__item {
    text-align: center;
    margin: 0;
    text-indent: 0;
    padding: 0;
    min-width: 20px
}

.pagination__item:before {
    display: none
}

.pagination__item a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--black);
    background-color: transparent;
    border-radius: 50%;
    text-decoration: none;
    width: 32px;
    height: 32px;
    box-sizing: border-box;
    transition: background-color .2s,color .2s
}

.pagination__item a:hover,.pagination__item._current a {
    background-color: #237ab9;
    color: #fff;
}

@media print,screen and (min-width: 768px) {
    .pagination__item._prev {
        margin-right:12px
    }
}

.pagination__item._prev a:before {
    rotate: 270deg
}

@media print,screen and (min-width: 768px) {
    .pagination__item._next {
        margin-left:12px
    }
}

.pagination__item._next a {
    flex-direction: row-reverse
}

.pagination__item._next a:before {
    rotate: 90deg
}

@media screen and (max-width: 767px) {

  .pagination__item._arrow {

    position: absolute;
    top: -64px;

    &._prev {
      left: 0;
    }

    &._next {
      right: 0;
    }

    a {
      width: 100px;
      column-gap: 8px;
      white-space: nowrap;
    }

  }

}

.pagination__item._arrow a {
    position: relative;
    background-color: transparent;
    border-radius: 0;
    transition: opacity .2s
}

@media print,screen and (min-width: 768px) {
    .pagination__item._arrow a {
        width:auto;
        display: flex;
        align-items: center;
        gap: 10px
    }
}

.pagination__item._arrow a:before {
    content: "";
    display: block;
    -webkit-mask-image: url(../img/common/icon_arrow_border.svg);
    mask-image: url(../img/common/icon_arrow_border.svg);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    width: 10px;
    height: 10px;
    background-color: #237ab9;
}

.pagination__item._arrow a:hover {
    color: var(--black)
}

.pagination__item._arrow a:hover:before {
    animation: arrow-up .5s
}


/* ---- news article page ---- */

.cr_news_article {

  --cr_news_parts_margin: 40px;

  padding: 120px var(--md-side-margin) 160px;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-s);
    margin: 0 auto;
  }

  .cr_news_article_heading {

    margin-bottom: 64px;

    .date {
      color: #444;
      font-size: 1.5rem;
      font-weight: 500;
    }

    & h1 {
      margin-top: 16px;
      font-size: 3.2rem;
      font-weight: 500;
      line-height: 1.6;
    }

  }

  & h2 {
    margin: 120px 0 var(--cr_news_parts_margin);
    font-size: 2.8rem;
    font-weight: 800;
    line-height: 1.6;
  }

  & h3 {

    margin: 120px 0 var(--cr_news_parts_margin);
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1.6;

    + *:not(#dummy) {
      margin-top: calc(24px - var(--cr_news_parts_margin));
    }

  }

  & h4 {

    margin: 40px 0 var(--cr_news_parts_margin);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.6;

    + *:not(#dummy) {
      margin-top: calc(16px - var(--cr_news_parts_margin));
    }

  }

  & h5 {

    margin: 40px 0 var(--cr_news_parts_margin);
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.6;

    + *:not(#dummy) {
      margin-top: calc(16px - var(--cr_news_parts_margin));
    }

  }

  & p {
    margin: var(--cr_news_parts_margin) 0;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.8;
  }

  & p.note {

    position: relative;
    margin-top: calc(20px - var(--cr_news_parts_margin));
    padding-left: 1.8em;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.6;

    &::before {
      content: "※";
      position: absolute;
      top: 0;
      left: 0;
    }

  }

  & a:not([class]) {

    color: #237ab9;

    &:hover {
      text-decoration: none;
    }

  }

  & img {
    display: block;
    max-width: 100%;
    margin: var(--cr_news_parts_margin) auto;
  }

  & figure {

    margin: var(--cr_news_parts_margin) 0;

    & img {
      margin: 0 auto;
    }

    & figcaption {
      margin-top: 16px;
      font-size: 1.4rem;
      font-weight: 500;
      line-height: 1.6;
    }

  }

  .row {

    display: flex;
    flex-wrap: wrap;
    gap: var(--cr_news_parts_margin) 4%;
    margin: var(--cr_news_parts_margin) 0;

    &.reverse {
      flex-direction: row-reverse;
    }

    .col {

      width: 48%;

      :first-child {
        margin-top: 0;
      }

      :last-child {
        margin-bottom: 0;
      }

    }

  }

  & ul.link_list {

    margin: var(--cr_news_parts_margin) 0;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.6;

    & li:not(:first-child) {
      margin-top: 12px;
    }

    & a {

      display: inline-block;
      position: relative;
      padding-right: 26px;
      text-decoration: none;

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: calc(50% - 9px);
        width: 18px;
        height: 18px;
        background-image: url(../img/cr/icon_arrow_bl.svg);
        background-size: 100%;
      }

      &[target]::after {
        background-image: url(../img/cr/icon_outbound_bl.svg);
      }

      &[href$='.pdf']::after {
        right: -1px;
        background-image: url(../img/cr/icon_pdf_bl.svg);
      }

      &:hover {

        &::after {
          animation: cr_arrow_right .5s;
        }

      }

    }

    .size {
      color: #999;
      font-weight: 500;
    }

  }

  & ul:not([class]) {

    margin: var(--cr_news_parts_margin) 0;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.8;

    & li {

      position: relative;
      padding-left: 1.5em;

      &::before {
        content: "・";
        display: inline-block;
        position: absolute;
        top: 0;
        left: 0;
        width: 1em;
        text-align: center;
      }

      &:not(:first-child) {
        margin-top: 10px;
      }

      & ul:not([class]), ol {
        margin: 10px 0 0;
      }

    }

  }

  & ol {

    margin: var(--cr_news_parts_margin) 0;
    padding-left: 1.5em;
    list-style-type: decimal;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.8;

    & li {

      &:not(:first-child) {
        margin-top: 10px;
      }

      ul:not([class]), ol {
        margin: 10px 0 0;
      }

    }

    & li > ol {
      list-style-type: lower-latin;
    }

    & li > ol > li > ol {
      list-style-type: upper-roman;
    }

  }

  & table {

    width: 100%;
    margin: var(--cr_news_parts_margin) 0;
    box-sizing: border-box;
    border-collapse: collapse;
    border-spacing: 0;

    & th {
      padding: 18px 16px;
      border: 1px solid rgba(0, 0, 0, .1);
      background-color: #eef4f8;
      font-size: 1.6rem;
      font-weight: 700;
      line-height: 1.6;
      vertical-align: middle;
    }

    & td {
      padding: 18px 16px;
      border: 1px solid rgba(0, 0, 0, .1);
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 1.6;
    }

    & thead th {
      text-align: center;
    }

    & tbody th {
      text-align: left;
    }

  }

  .youtube {

    margin: var(--cr_news_parts_margin) 0;
    width: 100%;
    aspect-ratio: 16 / 9;

    & iframe {
      width: 100%;
      height: 100%;
    }

  }

  .buttons {

    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
    margin: var(--cr_news_parts_margin) 0;

    & a {

      display: inline-block;
      position: relative;
      min-width: 300px;
      padding: 18px 56px;
      border-radius: 100px;
      background-color: #237ab9;
      color: #fff;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      text-decoration: none;

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 24px;
        top: calc(50% - 9px);
        width: 18px;
        height: 18px;
        background-image: url(../img/cr/icon_arrow_wh.svg);
        background-size: 100%;
      }

      &[target]::after {
        background-image: url(../img/cr/icon_outbound_wh.svg);
      }

      &[href$='.pdf']::after {
        right: -1px;
        background-image: url(../img/cr/icon_pdf_wh.svg);
      }

      &:hover {

        color: #fff;
        text-decoration: none;

        &::after {
          animation: cr_arrow_right .5s;
        }

      }

    }

    &.back_to_index {

      margin: 160px 0 0;

      & a::after {
        background-image: url(../img/cr/icon_back_wh.svg);
      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_news_article {

    --cr_news_parts_margin: 11vw;

    padding: 13vw var(--sp-side-margin) 17vw;

    .cr_news_article_heading {

      margin-bottom: 40px;

      .date {
        font-size: 1.3rem;
      }

      & h1 {
        font-size: 2.4rem;
      }

    }

    & h2 {
      margin: 17vw 0 var(--cr_news_parts_margin);
      font-size: 2.2rem;
    }

    & h3 {

      margin: 17vw 0 var(--cr_news_parts_margin);
      font-size: 2rem;

      + *:not(#dummy) {
        margin-top: calc(24px - var(--cr_news_parts_margin));
      }

    }

    & h4 {

      margin: var(--cr_news_parts_margin) 0;
      font-size: 1.6rem;

      + *:not(#dummy) {
        margin-top: calc(16px - var(--cr_news_parts_margin));
      }

    }

    & h5 {

      margin: var(--cr_news_parts_margin) 0;
      font-size: 1.4rem;

      + *:not(#dummy) {
        margin-top: calc(16px - var(--cr_news_parts_margin));
      }

    }

    & p {

      font-size: 1.4rem;

      + p {
        margin-top: calc(7vw - var(--cr_news_parts_margin));
      }

    }

    & p.note {
      margin-top: calc(16px - var(--cr_news_parts_margin));
      font-size: 1.2rem;
    }

    & img {
      margin: var(--cr_news_parts_margin) auto;
    }

    & figure {

      margin: var(--cr_news_parts_margin) 0;

      & figcaption {
        margin-top: 14px;
        font-size: 1.2rem;
      }

    }

    .row {

      display: block;

      .col {
        width: auto;
        margin: var(--cr_news_parts_margin) 0;
      }

      &.sp-2col {

        display: flex;
        gap: var(--cr_news_parts_margin) 6%;

        .col {
          width: 47%;
          margin: 0;
        }

      }

    }

    & ul.link_list {

      margin: var(--cr_news_parts_margin) 0;
      font-size: 1.4rem;

      & li:not(:first-child) {
        margin-top: 12px;
      }

      & a {

        padding-right: 24px;

        &::after {
          top: calc(50% - 8px);
          width: 16px;
          height: 16px;
        }

      }

    }

    & ul:not([class]) {
      margin: var(--cr_news_parts_margin) 0;
      font-size: 1.4rem;
    }

    & ol {
      margin: var(--cr_news_parts_margin) 0;
      font-size: 1.4rem;
    }

    & table {

      margin: var(--cr_news_parts_margin) 0;

      & th {
        padding: 10px 16px;
        font-size: 1.4rem;
      }

      & td {
        padding: 10px 16px;
        font-size: 1.4rem;
      }

      & thead th {
        padding: 14px 16px;
      }

    }

    .youtube {
      margin: var(--cr_news_parts_margin) 0;
    }

    .buttons {

      display: block;
      margin: var(--cr_news_parts_margin) 0;

      + .buttons {
        margin-top: calc(24px - var(--cr_news_parts_margin));
      }

      & a {

        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        width: 300px;
        height: 60px;
        margin: 0 auto;
        padding: 8px 56px;
        font-size: 1.4rem;
        line-height: 1.3;

        &::after {
          right: 24px;
          top: calc(50% - 8px);
          width: 16px;
          height: 16px;
        }

        + a {
          margin-top: 24px;
        }

      }

      &.back_to_index {
        margin: 13vw 0 0;
      }

    }

  }

}


/* ---- umegaoka: first view ---- */

.cr_umegaoka_fv {

  display: flex;
  align-items: center;
  position: relative;
  height: 100vh;
  min-height: 480px;
  padding-bottom: 10vh;

  .txt {

    position: relative;
    z-index: 2;
    padding: 0 8%;
    color: #fff;

    .cr_breadcrumbs {

      li {

        &:not(:last-child)::after {
          color: #fff;
        }

        a {
          color: #fff;
        }

      }

    }

    & h1 {

      margin-top: 64px;

      .pc {

        & p {

          display: flex;
          align-items: flex-end;
          font-size: 3.3rem;
          font-weight: 500;
          letter-spacing: .03em;

          + p {
            margin-top: 8px;
          }

          & span {
            display: inline-block;
            margin-left: 1em;
            padding-bottom: .2em;
            font-size: 1.7rem;
          }

        }

      }

      .sp {
        display: none;
      }

    }

    > p {
      margin-top: 32px;
      font-size: 2rem;
      font-weight: 500;
      letter-spacing: .03em;
    }

  }

  .umegaoka_fv_bg {

    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    border: 8px solid #fff;
    overflow: hidden;

    & img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .swiper-slide-active img,
    .swiper-slide-prev img {
      animation: umegaoka_fv_bg_zoom 8s ease-in both;
    }

  }

  .umegaoka_fv_bg_thumbnail {

    position: absolute;
    right: 8%;
    bottom: 64px;
    z-index: 3;
    width: 338px;
    height: 60px;

    .swiper-slide {

      overflow: hidden;
      opacity: .5;
      transition: opacity .5s;
      cursor: pointer;

      &.swiper-slide-thumb-active {
        border: 1.5px solid #fff;
        opacity: 1;
        cursor: default;
        pointer-events: none;
      }

    }

    & img {

      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transform: scale(1);
      transition: transform .3s;

      &:hover {
        transform: scale(1.16);
      }

    }

  }

}

@keyframes umegaoka_fv_bg_zoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 767px) {

  .cr_umegaoka_fv {

    min-height: 560px;
    padding-bottom: 110px;

    .txt {

      padding: 0 9%;

      & h1 {

        margin-top: 80px;

        .pc {
          display: none;
        }

        .sp {

          display: block;

          & p:nth-child(1) {
            font-size: min(5.6vw, 3rem);
          }

          & p:nth-child(2) {
            margin-top: 4px;
            font-size: min(5.6vw, 3rem);
          }

          & p:nth-child(3) {
            margin-top: 12px;
            font-size: min(3.7vw, 2rem);
          }

        }

      }

      > p {
        margin-top: 40px;
        font-size: min(4vw, 2.14rem);
      }

    }

    .umegaoka_fv_bg_thumbnail {

      left: calc(50% - 152px);
      right: auto;
      bottom: 36px;
      width: 305px;
      height: 53px;

    }

  }

}


/* ---- umegaoka: lead copy ---- */

.cr_umegaoka_lead {

  padding: 100px var(--md-side-margin) 120px;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-l);
    margin: 0 auto;
  }

  & h2 {
    font-size: 2.9rem;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
  }

  & p {
    margin-top: 40px;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.8;
    text-align: center;
  }

}

@media screen and (max-width: 767px) {

  .cr_umegaoka_lead {

    padding: 12.8vw var(--sp-side-margin) 17vw;

    & h2 {
      font-size: 2.1rem;
      line-height: 1.4;
    }

    & p {

      margin-top: 32px;
      font-size: 1.4rem;
      line-height: 1.8;
      text-align: left;

      br {
        display: none;
      }

    }

  }

}


/* ---- umegaoka: concept ---- */

.cr_umegaoka_concept {

  position: relative;
  height: 1200vh;
  background-color: #eef4f8;

  .concept_container {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100vh;
  }

  & h2 {
    position: relative;
    z-index: 2;
    margin-top: 8px;
    color: #fff;
    opacity: .9;
    font-family: Cormorant, serif;
    font-size: 10.6vw;
    font-weight: 500;
    letter-spacing: -.03em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
  }

  & section {

    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    padding-left: 8%;
    overflow: hidden;

    .txt {

      --distance: 100px;

      width: 34%;
      opacity: 0;

      .idx {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 56px;
        height: 30px;
        padding-bottom: 5px;
        border-radius: 100px;
        background-color: #fff;
        color: #999;
        font-family: Cormorant, serif;
        font-size: 2.5rem;
        font-weight: 500;
        transform: translateY(var(--distance));
      }

      & h3 {
        margin-top: 16px;
        font-size: 2.6rem;
        font-weight: 600;
        line-height: 1.6;
        transform: translateY(calc(var(--distance) * 1.5));
      }

      & p {
        margin-top: 40px;
        font-size: 1.8rem;
        font-weight: 500;
        line-height: 1.8;
        transform: translateY(calc(var(--distance) * 2));
      }

    }

    .img {

      --brightness: 3;
      --scale: 1;

      position: relative;
      width: 66%;
      aspect-ratio: 1 / .85;
      overflow: hidden;
      opacity: 0;
      transition: opacity 2s ease-out;

      & img {
        display: block;
        position: relative;
        z-index: 1;
        width: 100%;
        border: 2px solid #eef4f8;
        filter: brightness(var(--brightness));
        transition: filter 2s ease-out;
      }

      &::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        z-index: 2;
        width: 100%;
        height: 100%;
        background-image: url(../img/cr/umegaoka/concept_mask.png);
        background-repeat: no-repeat;
        background-size: cover;
        background-position: 50%;
        transform: scale(1);
        transition: transform 2s ease-out;
      }

    }

    &.is_shown .img {

      opacity: 1;

      & img {
        filter: brightness(1);
      }

      &::after {
        transform: scale(2.8);
      }

    }

  }

  .concept_indicator {

    display: flex;
    flex-direction: column;
    gap: 16px;
    position: fixed;
    left: calc(4% - 3px);
    top: calc(50% - 25px);
    z-index: 3;

    li {

      width: 6px;
      height: 6px;
      border-radius: 50%;
      background-color: rgba(35, 122, 185, .2);
      transition: background-color .2s;

      &.is_current {
        background-color: #237ab9;
      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_umegaoka_concept {

    height: auto;

    .concept_container {
      position: relative;
      height: auto;
      padding: 12vw 0 16vw;
    }

    & h2 {
      margin-top: 0;
      font-size: 18.6vw;
      line-height: .75;
    }

    & section {

      display: block;
      position: static;
      top: 40vw;
      height: auto;
      padding-left: 0;

      &:nth-of-type(n+2) {
        margin-top: 10vw;
      }

      .txt {

        width: 100%;
        height: auto;
        margin-top: 0;
        padding: 0 8vw;
        opacity: 1;

        .idx {
          width: 52px;
          height: 24px;
          padding-bottom: 3px;
          font-size: 2.3rem;
          transform: none;
        }

        & h3 {
          margin-top: 8px;
          font-size: 1.9rem;
          transform: none;
        }

        & p {
          margin-top: 16px;
          font-size: 1.4rem;
          transform: none;
        }

      }

      .img {

        width: 94%;
        max-width: 480px;
        margin: 0 auto;
        opacity: 1;

        & img {
          filter: brightness(1);
        }

        &::after {
          transform: scale(2.8);
        }

      }

    }

    .concept_indicator {
      display: none;
    }

  }

}


/* ---- umegaoka: image perspectives ---- */

.cr_umegaoka_pers {

  padding: 100px var(--md-side-margin) 120px;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-l);
    margin: 0 auto;
  }

  & h2 {
    font-size: 2.9rem;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
  }

  & ul {

    display: flex;
    flex-wrap: wrap;
    gap: 36px 1.4%;
    margin-top: 48px;

    & li {
      width: 32.4%;
    }

    & a {

      display: block;
      position: relative;
      cursor: pointer;

      &::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
        background-color: #5185af;
        opacity: 0;
        transition: opacity .2s;
      }

      & span {

        display: block;
        position: absolute;
        right: -10px;
        bottom: -10px;
        z-index: 2;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        background-color: #237ab9;
        overflow: hidden;
        text-indent: -400px;
        transition: background-color .2s;

        &::before {
          content: "";
          display: block;
          position: absolute;
          left: 11px;
          top: 16px;
          width: 12px;
          height: 2px;
          background-color: #fff;
          transition: background-color .2s;
        }

        &::after {
          content: "";
          display: block;
          position: absolute;
          left: 11px;
          top: 16px;
          width: 12px;
          height: 2px;
          background-color: #fff;
          transform: rotate(90deg);
          transition: background-color .2s;
        }

      }

      &:hover {

        &::after {
          opacity: .5;
        }

        & span {
          background-color: #c5dceb;
        }

        & span::before,
        & span::after {
          background-color: #237ab9;
        }

      }

    }

    & p {
      margin-top: 16px;
      font-size: 2rem;
      font-weight: 700;
    }

  }

}

@media screen and (max-width: 959px) {

  .cr_umegaoka_pers {

    & ul {

      gap: 36px 4%;

      & li {
        width: 48%;
      }

    }

  }

}

  @media screen and (max-width: 767px) {

  .cr_umegaoka_pers {

    padding: 12.8vw var(--sp-side-margin) 17vw;

    & h2 {
      font-size: 2.1rem;
      line-height: 1.4;
    }

    & ul {

      display: block;
      margin-top: 32px;

      & li {

        width: auto;

        &:not(:first-child) {
          margin-top: 32px;
        }

      }

      & a {

        & span {

          width: 30px;
          height: 30px;

          &::before {
            left: 9px;
            top: 14px;
          }

          &::after {
            left: 9px;
            top: 14px;
          }

        }

      }

      & p {
        margin-top: 10px;
        font-size: 1.6rem;
      }

    }

  }

}


/* ---- umegaoka: spec ---- */

.cr_umegaoka_spec {

  padding: 100px var(--md-side-margin) 120px;
  background-color: #eef4f8;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-l);
    margin: 0 auto;
  }

  & h2 {
    font-size: 2.9rem;
    font-weight: 500;
    line-height: 1.6;
    text-align: center;
  }

  & table {

    width: 600px;
    max-width: 100%;
    margin: 48px auto 0;
    box-sizing: border-box;
    border-collapse: collapse;
    border-spacing: 0;

    & tr:not(:last-child) {
      border-bottom: 1px solid #d6dbdf;
    }

    & th {

      width: 160px;
      padding: 17px 20px;
      background-color: #dfe9f0;
      font-size: 1.4rem;
      font-weight: 400;
      line-height: 1.5;
      text-align: left;

      &:not(:last-of-type) {
        border-right: 1px solid #d6dbdf;
      }

    }

    & td {

      padding: 17px 20px;
      background-color: #fff;
      font-size: 1.4rem;
      font-weight: 400;
      line-height: 1.5;

      &:not(:last-of-type) {
        border-right: 1px solid #d6dbdf;
      }

    }

  }

  & p {

    position: relative;
    width: 600px;
    max-width: 100%;
    margin: 24px auto 0;
    padding-left: 1.5em;
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: -.01em;
    line-height: 1.6;

    &::before {
      content: "※";
      position: absolute;
      top: 0;
      left: 0;
    }

  }

  .buttons {

    margin-top: 32px;

    & a {

      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      width: 376px;
      height: 74px;
      margin: 0 auto;
      border-radius: 100px;
      background-color: #237ab9;
      color: #fff;
      font-size: 1.6rem;
      font-weight: 700;
      line-height: 1.4;
      text-align: center;
      text-decoration: none;
      transition: color .2s, background-color .2s;

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 26px;
        top: calc(50% - 10px);
        width: 20px;
        height: 20px;
        background-image: url(../img/cr/icon_circle_angle_wh.svg);
        background-size: contain;
      }

      &:hover {

        color: #237ab9;
        background-color: #c5dceb;

        &::after {
          background-image: url(../img/cr/icon_circle_angle_bl.svg);
        }

      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_umegaoka_spec {

    padding: 12.8vw var(--sp-side-margin) 17vw;

    & h2 {
      font-size: 2.1rem;
      line-height: 1.4;
    }

    & table {

      width: 100%;
      max-width: 600px;
      margin-top: 24px;

      & th {
        padding: 11px 13px;
        font-size: 1.3rem;
      }

      & td {
        padding: 11px 13px;
        font-size: 1.3rem;
      }

    }

    & p {
      font-size: 1.2rem;
    }

    .buttons {

      & a {
        width: 316px;
        height: 64px;
        font-size: 1.4rem;
      }

    }

  }

}


/* ---- umegaoka: progress ---- */

.cr_umegaoka_report_progress {

  padding: 120px var(--md-side-margin) 0;

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-s);
    margin: 0 auto;
  }

  .txt {

    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    column-gap: 40px;

    .percentage {

      flex-shrink: 0;
      & span:first-child,
      & span:last-child {
        font-size: 2.2rem;
        font-weight: 500;
      }

      .percent {
        margin-left: .3em;
        color: #237ab9;
        font-size: 4rem;
        font-weight: 500;
      }

    }

    .news {

      display: flex;
      align-items: center;
      column-gap: 12px;

      .new {
        display: inline-block;
        padding: 1px 12px 2px;
        border-radius: 100px;
        background-color: #eef4f8;
        color: #999;
        font-size: 1.2rem;
        font-weight: 600;
        text-transform: uppercase;
      }

      .date {
        color: #666;
        font-size: 1.5rem;
        font-weight: 500;
      }

      & p {
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.8;
      }

    }

  }

  .indicator {

    margin-top: 24px;

    .track {

      position: relative;
      height: 40px;
      background-color: #e6e6e6;

      .bar {
        position: absolute;
        left: 0;
        top: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
        background-color: #a1ceeb;
        transform-origin: 0 0;
        transform: scale(0, 1);
        transition: transform 1.4s cubic-bezier(.42,0,.42,1);
      }

      & span {

        display: block;
        position: absolute;
        top: 0;
        z-index: 2;
        width: 2px;
        height: 100%;
        background-color: #fff;

        &:nth-of-type(1) { left: 10%; }
        &:nth-of-type(2) { left: 20%; }
        &:nth-of-type(3) { left: 30%; }
        &:nth-of-type(4) { left: 40%; }
        &:nth-of-type(5) { left: 50%; }
        &:nth-of-type(6) { left: 60%; }
        &:nth-of-type(7) { left: 70%; }
        &:nth-of-type(8) { left: 80%; }
        &:nth-of-type(9) { left: 90%; }

      }

    }

    & ul {

      position: relative;
      margin-top: 4px;

      & li {

        position: absolute;
        top: 0;
        font-size: 1.3rem;
        font-weight: 500;
        transform: translateX(-50%);

        &:nth-child(1) { left: 0; transform: translateX(0); }
        &:nth-child(2) { left: 10%; }
        &:nth-child(3) { left: 20%; }
        &:nth-child(4) { left: 30%; }
        &:nth-child(5) { left: 40%; }
        &:nth-child(6) { left: 50%; }
        &:nth-child(7) { left: 60%; }
        &:nth-child(8) { left: 70%; }
        &:nth-child(9) { left: 80%; }
        &:nth-child(10) { left: 90%; }
        &:nth-child(11) { left: 100%; transform: translateX(-100%); }

      }

    }

  }

  .schedule {

    margin-top: 88px;
    overflow-x: auto;

    & img {
      display: block;
      width: 100%;
      max-width: none;
      transition: width .3s ease-out;
    }

  }

  .zoom {
    display: none;
  }

}

@media screen and (max-width: 1119px) {

  .cr_umegaoka_report_progress {

    .schedule {

      &.is_zoomed img {
        width: 1000px;
      }

    }

    .zoom {

      display: block;
      text-align: right;
      margin-top: 10px;

      & button {

        display: inline-block;
        position: relative;
        padding-right: 20px;
        color: #227ab9;
        font-family: inherit;
        font-size: 1.4rem;
        font-weight: 700;

        & span {

          display: block;
          position: absolute;
          right: 0;
          top: calc(50% - 8.5px);
          width: 17px;
          height: 17px;
          border-radius: 50%;
          background-color: #227ab9;

          &::before {
            content: "";
            display: block;
            position: absolute;
            left: 5px;
            top: 8px;
            width: 7px;
            height: 1px;
            background-color: #fff;
          }

          &::after {
            content: "";
            display: block;
            position: absolute;
            left: 5px;
            top: 8px;
            width: 7px;
            height: 1px;
            background-color: #fff;
            transform: rotate(90deg);
            transition: transform .2s;
          }

        }

      }

    }

    .is_zoomed + .zoom button span::after {
      transform: rotate(0);
    }

  }

}

@media screen and (max-width: 767px) {

  .cr_umegaoka_report_progress {

    padding: 12.8vw var(--sp-side-margin) 0;

    .inner {
      position: relative;
    }

    .txt {

      display: block;

      .percentage {

        & span:first-child,
        & span:last-child {
          font-size: 1.7rem;
        }

        .percent {
          margin-left: .3em;
          font-size: 3.2rem;
        }

      }

      .news {

        align-items: flex-start;
        column-gap: 10px;
        margin-top: 86px;

        .new {
          padding: 1px 12px 2px;
          font-size: 1rem;
         line-height: 2.4;
        }

        .date {
          font-size: 1.3rem;
          line-height: 2;
        }

        & p {
          font-size: 1.4rem;
          line-height: 1.8;
        }

      }

    }

    .indicator {

      position: absolute;
      top: 64px;
      left: 0;
      width: 100%;
      margin-top: 0;

      .track {
        height: 32px;
      }

      & ul {

        margin-top: 4px;

        & li {
          font-size: .9rem;
        }

      }

    }

    .schedule {
      margin-top: 56px;
    }

  }

}


/* ---- umegaoka: report ---- */

.cr_umegaoka_report {

  padding: 80px var(--md-side-margin) 0;

  &:last-child {
    padding-bottom: 160px;
  }

  .inner {
    width: 100%;
    max-width: var(--cr-content-width-s);
    margin: 0 auto;
  }

  & h2 {

    font-size: 2.2rem;
    font-weight: 500;
    line-height: 1.6;

    & span {
      margin: 0 .1em 0 .4em;
      font-size: 4rem;
    }

    + dl {
      margin-top: 24px;
    }

  }

  & dl {

    margin-top: 8px;

    & dt {

      position: relative;

      &::after {
        content: "";
        display: block;
        position: absolute;
        right: 31px;
        top: calc(50% - 1px);
        z-index: 2;
        width: 10px;
        height: 2px;
        background-color: #fff;
      }

      & button {

        display: block;
        position: relative;
        z-index: 1;
        width: 100%;
        padding: 13px 56px 14px 24px;
        border-radius: 30px;
        background-color: #eef4f8;
        font-family: inherit;
        font-size: 1.6rem;
        font-weight: 500;
        text-align: left;
        transition: border-radius .1s .17s, background-color .2s;

        &::before {
          content: "";
          display: block;
          position: absolute;
          right: 24px;
          top: calc(50% - 12px);
          z-index: 1;
          width: 24px;
          height: 24px;
          border-radius: 50%;
          background-color: #227ab9;
        }

        &::after {
          content: "";
          display: block;
          position: absolute;
          right: 31px;
          top: calc(50% - 1px);
          z-index: 2;
          width: 10px;
          height: 2px;
          background-color: #fff;
          transform: rotate(270deg);
          transition: transform .2s;
        }

        & span {
          margin: 0 .1em;
          font-size: 2rem;
        }

        &:hover {
          background-color: #dde9f1;
        }

        &.is-open {

          border-radius: 30px 30px 0 0;
          background-color: #dde9f1;
          transition: border-radius 0s, background-color .3s;

          &::after {
            transform: rotate(0);
            transition: transform .3s;
          }

        }

      }

    }

    & dd {

      height: 0;
      border-radius: 0 0 30px 30px;
      background-color: #dde9f1;
      overflow: hidden;
      transition: height .2s ease-out;

      .contents {

        padding: 48px 6.8% 80px;

        > :first-child {
          margin-top: 0;
        }

      }

      & h3 {
        margin-top: 64px;
        font-size: 2.2rem;
        font-weight: 500;
        line-height: 1.6;
      }

      & p {
        margin-top: 32px;
        font-size: 1.6rem;
        font-weight: 500;
        line-height: 1.8;
      }

      & img {
        display: block;
        max-width: 100%;
        margin: 40px auto 0;
      }

      .images {

        display: flex;
        flex-wrap: wrap;
        gap: 40px 5%;
        margin-top: 40px;

        & img {
          width: calc(47.5%);
          margin: 0;
        }

      }

    }

  }

}

@media screen and (max-width: 767px) {

  .cr_umegaoka_report {

    padding: 17vw var(--sp-side-margin) 0;

    &:last-child {
      padding-bottom: 17vw;
    }

    & h2 {

      font-size: 1.7rem;

      & span {
        margin: 0 .1em 0 .4em;
        font-size: 3.2rem;
      }

      + dl {
        margin-top: 6.4vw;
      }

    }

    & dl {

      margin-top: 2.2vw;

      & dt {

        &::after {
          right: 30px;
        }

        & button {

          padding: 13px 56px 14px 24px;
          font-size: 1.5rem;

          &::before {
            top: calc(50% - 11px);
            width: 22px;
            height: 22px;
          }

          &::after {
            right: 30px;
          }

          & span {
            font-size: 1.9rem;
          }

        }

      }

      & dd {

        .contents {
          padding: 6.4% 6% 14%;
        }

        & h3 {
          margin-top: 16%;
          font-size: 2rem;
        }

        & p {
          margin-top: 6.4%;
          font-size: 1.4rem;
        }

        & img {
          margin: 10% auto 0;
        }

        .images {

          gap: 1.4vw;
          margin-top: 10%;

          & img {
            width: calc(50% - .7vw);
          }

        }

        .contents > img + .images,
        .images + img {
          margin-top: 1.4vw;
        }

      }

    }

  }

}


/* ---- footer ---- */

.footer {

  font-family: var(--font-base);
  font-feature-settings: "palt";
  letter-spacing: .03em;

  .footer__logo {
    width: 434px;
  }

  .footer-links__title:not(:first-child) {
    margin-top: 40px;
  }

  .footer-utility-nav__link {
    font-size: 1.4rem;
    font-weight: var(--medium);
    line-height: 1.5;
  }

  .page-top {
    bottom: calc(5vh - 2px);
  }

}

@media print, screen and (min-width: 768px) {

  footer .footer-address {
    gap: 16px
  }

}


@media screen and (max-width: 767px) {

  .footer {

    .footer__logo {
      width: 100%;
      max-width: 400px;
      margin: 0 auto;
    }

  }

}