@charset "UTF-8";
@keyframes loader {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes fadeInUp {
  0% {
    transform: translate3d(0, 40px, 0);
    opacity: 0; }
  99.99999% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: none;
    opacity: 1; } }

@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0; }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0; }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%; }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%; } }

@keyframes ripple {
  0% {
    opacity: 0; }
  30% {
    opacity: 1; }
  60% {
    box-shadow: 0 0 0 60px rgba(255, 255, 255, 0.1);
    opacity: 0; }
  100% {
    opacity: 0; } }

.button.loading {
  position: relative;
  cursor: default;
  text-shadow: none !important;
  color: transparent !important;
  opacity: 1;
  pointer-events: auto;
  -webkit-transition: all 0s;
  transition: all 0s; }
  .button.loading:hover {
    color: transparent !important; }
  .button.loading::before {
    position: absolute;
    content: '';
    top: 50%;
    left: 50%;
    margin: -9px;
    width: 18px;
    height: 18px;
    border-radius: 500rem;
    border: 3px solid rgba(0, 0, 0, 0.15); }
  .button.loading::after {
    position: absolute;
    content: '';
    top: 50%;
    left: 50%;
    margin: -9px;
    width: 18px;
    height: 18px;
    -webkit-animation: load8 .6s infinite linear;
    animation: load8 .6s infinite linear;
    border-radius: 500rem;
    border-color: #fff transparent transparent;
    border-style: solid;
    border-width: 3px;
    -webkit-box-shadow: 0 0 0 1px transparent;
    box-shadow: 0 0 0 1px transparent; }

.checkbox input[type=checkbox]:checked {
  background-color: #1F51A2;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%20data-prefix%3D%22fas%22%20data-icon%3D%22check%22%20class%3D%22svg-inline--fa%20fa-check%20fa-w-16%22%20role%3D%22img%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M173.898%20439.404l-166.4-166.4c-9.997-9.997-9.997-26.206%200-36.204l36.203-36.204c9.997-9.998%2026.207-9.998%2036.204%200L192%20312.69%20432.095%2072.596c9.997-9.997%2026.207-9.997%2036.204%200l36.203%2036.204c9.997%209.997%209.997%2026.206%200%2036.204l-294.4%20294.401c-9.998%209.997-26.207%209.997-36.204-.001z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
  background-size: 60%;
  background-position: center;
  background-repeat: no-repeat; }

body > .loader-modal {
  position: fixed; }

.loader-modal {
  position: absolute;
  display: flex;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 99999;
  -webkit-box-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  align-items: start;
  align-content: center;
  background: rgba(0, 0, 0, 0.3);
  padding: 30px;
  overflow-y: auto; }
  .loader-modal .loader {
    margin: auto;
    position: relative;
    cursor: default;
    text-shadow: none !important;
    color: transparent !important;
    opacity: 1;
    pointer-events: auto;
    -webkit-transition: all 0s;
    transition: all 0s; }
    .loader-modal .loader::after {
      position: absolute;
      content: '';
      top: 50%;
      left: 50%;
      margin: -9px;
      width: 18px;
      height: 18px;
      -webkit-animation: load8 .6s infinite linear;
      animation: load8 .6s infinite linear;
      border-radius: 500rem;
      border-color: #fff transparent transparent;
      border-style: solid;
      border-width: 3px;
      -webkit-box-shadow: 0 0 0 1px transparent;
      box-shadow: 0 0 0 1px transparent; }

.menu-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px; }
  .menu-button .menu-trigger {
    position: relative;
    width: 22px;
    height: 18px;
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
    z-index: 1; }
    .menu-button .menu-trigger span {
      display: inline-block;
      transition: all .4s;
      box-sizing: border-box;
      z-index: 1;
      position: absolute;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #333;
      border-radius: 4px; }
      .menu-button .menu-trigger span:nth-of-type(1) {
        top: 0; }
      .menu-button .menu-trigger span:nth-of-type(2) {
        top: 8px; }
      .menu-button .menu-trigger span:nth-of-type(3) {
        bottom: 0; }
    .menu-button .menu-trigger.active span:nth-of-type(1) {
      -webkit-transform: translateY(8px) rotate(-45deg);
      transform: translateY(8px) rotate(-45deg); }
    .menu-button .menu-trigger.active span:nth-of-type(2) {
      opacity: 0; }
    .menu-button .menu-trigger.active span:nth-of-type(3) {
      -webkit-transform: translateY(-8px) rotate(45deg);
      transform: translateY(-8px) rotate(45deg); }

._ascend._modal {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 99;
  -webkit-box-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  align-items: start;
  align-content: center;
  background: rgba(0, 0, 0, 0.7);
  padding: 30px;
  overflow-y: auto; }
  @media screen and (max-width: 767px) {
    ._ascend._modal {
      padding: 15px; } }
  ._ascend._modal > .modal-inner {
    display: flex;
    -webkit-box-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    align-items: center;
    align-content: center;
    width: 100%;
    min-height: 100%; }
    ._ascend._modal > .modal-inner > .modal-content {
      position: relative;
      opacity: 0;
      animation-fill-mode: both; }
      ._ascend._modal > .modal-inner > .modal-content.show {
        animation-name: show;
        -webkit-animation-name: show;
        animation-duration: .3s;
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
      ._ascend._modal > .modal-inner > .modal-content.hide {
        animation-name: hide;
        -webkit-animation-name: hide;
        animation-duration: .2s;
        animation-timing-function: cubic-bezier(0.4, 0, 1, 1); }
      ._ascend._modal > .modal-inner > .modal-content > i.close {
        position: sticky;
        top: -12px;
        width: 32px;
        height: 32px;
        display: block;
        z-index: 99;
        margin-left: auto;
        margin-bottom: -32px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='width:24px;height:24px' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(134,134,139,0.8)' d='M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z' /%3E%3C/svg%3E");
        background-color: #fff;
        transform: translate(-16px, 16px);
        cursor: pointer;
        border-radius: 50%; }
      ._ascend._modal > .modal-inner > .modal-content .modal-body {
        position: relative; }
        ._ascend._modal > .modal-inner > .modal-content .modal-body .dimmer {
          position: absolute;
          top: 0;
          left: 0;
          bottom: 0;
          right: 0;
          display: flex;
          -webkit-box-pack: center;
          justify-content: center;
          -webkit-box-align: center;
          align-items: center;
          align-content: center;
          background: #efefef;
          z-index: 9; }
          ._ascend._modal > .modal-inner > .modal-content .modal-body .dimmer.white {
            background: #fff; }
  ._ascend._modal.confirm .actions .button {
    min-width: 80px;
    font-size: 14px; }

@keyframes square-spin {
  25% {
    transform: perspective(100px) rotateX(180deg) rotateY(0); }
  50% {
    transform: perspective(100px) rotateX(180deg) rotateY(180deg); }
  75% {
    transform: perspective(100px) rotateX(0) rotateY(180deg); }
  100% {
    transform: perspective(100px) rotateX(0) rotateY(0); } }

.square-spin > div {
  animation-fill-mode: both;
  width: 50px;
  height: 50px;
  background: #333;
  animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; }

@-webkit-keyframes ball-scale-multiple {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
    opacity: 0; }
  5% {
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 0; } }

@keyframes ball-scale-multiple {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
    opacity: 0; }
  5% {
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 0; } }

.ball-scale-multiple {
  position: relative;
  -webkit-transform: translateY(-30px);
  transform: translateY(-30px); }

.ball-scale-multiple > div:nth-child(2) {
  -webkit-animation-delay: -0.4s;
  animation-delay: -0.4s; }

.ball-scale-multiple > div:nth-child(3) {
  -webkit-animation-delay: -0.2s;
  animation-delay: -0.2s; }

.ball-scale-multiple > div {
  background-color: #fff;
  width: 15px;
  height: 15px;
  border-radius: 100%;
  margin: 2px;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  position: absolute;
  left: -30px;
  top: 0px;
  opacity: 0;
  margin: 0;
  width: 60px;
  height: 60px;
  -webkit-animation: ball-scale-multiple 1s 0s linear infinite;
  animation: ball-scale-multiple 1s 0s linear infinite; }

@keyframes show {
  from {
    transform: translate3d(0, 1rem, 0) scale(0.95);
    opacity: 0; }
  to {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 1; } }

@keyframes hide {
  from {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 1; }
  to {
    transform: translate3d(0, 0.5rem, 0) scale(0.98);
    opacity: 0; } }

@keyframes fadeInUp {
  from {
    transform: translate3d(0, 40px, 0); }
  to {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }

@-webkit-keyframes fadeInUp {
  from {
    transform: translate3d(0, 40px, 0); }
  to {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }

@keyframes fadeInDown {
  from {
    transform: translate3d(0, -20px, 0); }
  to {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }

@-webkit-keyframes fadeInDown {
  from {
    transform: translate3d(0, -20px, 0); }
  to {
    transform: translate3d(0, 0, 0);
    opacity: 1; } }

.ui.accordion > .title:not(.ui) {
  color: #666;
  font-size: 14px;
  font-weight: bold; }

.ui.calendar .ui.table tr td {
  text-align: center; }

.ui.calendar .ui.table tr .link i {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1; }

.ui.calendar .ui.table tr .link.prev i::before {
  content: "\f104"; }

.ui.calendar .ui.table tr .link.next i::before {
  content: "\f105"; }

/*   
汎用
*/
:root {
  --swiper-theme-color: #fff !important; }

img {
  width: 100%;
  height: auto; }

p {
  line-height: 1.6; }
  p:not(:last-child) {
    margin-bottom: 15px; }

a {
  cursor: pointer; }

.map {
  width: 100%;
  height: 100%; }
  .map iframe {
    width: 100%;
    height: 100%;
    border: none;
    outline: none; }

.field input, .field textarea {
  display: block;
  width: 100%;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem; }

.font-oswald {
  font-family: 'Oswald', sans-serif; }

.text-primary {
  color: #1F51A2; }

.bg-primary {
  background-color: #1F51A2; }

.border-primary {
  border-color: #1F51A2; }

.button {
  position: relative;
  display: block;
  text-align: center;
  width: 100%;
  max-width: 320px;
  transition: all .3s;
  z-index: 1; }
  .button:hover {
    opacity: 0.9; }
  .button > .inner {
    position: relative;
    color: #fff;
    background: linear-gradient(135deg, #00b0ec, #1F51A2);
    border-radius: 500rem; }
  .button.mini {
    width: auto; }
  .button.shadow {
    box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.1); }
    .button.shadow::before {
      content: "";
      position: absolute;
      filter: blur(20px) brightness(2);
      width: 100%;
      height: calc(100% - 30px);
      top: 30px;
      left: 0;
      z-index: -1;
      background: #1F51A2; }

.induction {
  display: inline-block;
  position: absolute;
  right: 40px;
  bottom: 0;
  z-index: 2;
  padding: 10px 10px 110px;
  overflow: hidden;
  color: #fff;
  font-size: 14px;
  line-height: 1;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  writing-mode: vertical-lr; }
  .induction:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 1px;
    height: 100px;
    background: #fff;
    animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite; }

.wpcf7 .wpcf7-not-valid-tip {
  font-size: 12px;
  margin-top: 5px; }

.breadcrumb {
  padding: 16px 0;
  font-size: .75rem;
  font-weight: 300;
  overflow-x: auto; }
  .breadcrumb .wrap {
    width: max-content;
    white-space: nowrap; }
  .breadcrumb ol {
    display: flex; }
    .breadcrumb ol li {
      position: relative; }
      .breadcrumb ol li:not(:last-child) {
        margin-right: 10px; }
        .breadcrumb ol li:not(:last-child)::after {
          content: '/';
          position: relative;
          margin-left: 10px; }

.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 30px; }
  .pagination > *:not(:last-child) {
    margin-right: 10px; }
  .pagination .pager {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: #333;
    border: 1px solid #333; }
    .pagination .pager.current {
      color: #fff;
      background: #333; }
  .pagination .next, .pagination .prev {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    height: 40px;
    color: #333;
    border: 1px solid #333; }

article {
  position: relative;
  background-color: #fff;
  padding: 60px;
  box-shadow: 0px 22px 51px 0px rgba(0, 0, 0, 0.08); }
  @media screen and (max-width: 767px) {
    article {
      padding: 20px; } }
  article .post-header {
    margin-bottom: 30px; }
    article .post-header .post-title {
      font-size: 1.875rem;
      font-weight: bold; }
      @media screen and (max-width: 767px) {
        article .post-header .post-title {
          font-size: 1.2rem; } }
    article .post-header .post-meta {
      display: flex;
      align-items: center;
      font-size: .875rem; }
      article .post-header .post-meta > div:not(:last-child) {
        margin-right: 10px; }
  article .post-button {
    padding: 30px;
    border: 1px solid #b3b2b3;
    background: #fafafa; }
  article .post-content .content h1 {
    font-size: 1.875rem;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 2px solid #efefef; }
    @media screen and (max-width: 767px) {
      article .post-content .content h1 {
        font-size: 1.5rem; } }
  article .post-content .content h2 {
    position: relative;
    font-size: 1.5rem;
    color: #0b8767;
    padding-bottom: 10px;
    margin-bottom: 10px; }
    @media screen and (max-width: 767px) {
      article .post-content .content h2 {
        font-size: 1.25rem; } }
    article .post-content .content h2::after {
      position: absolute;
      content: '';
      width: 40px;
      height: 2px;
      background-color: #0b8767;
      left: 0;
      bottom: 0; }
  article .post-content .content h3 {
    font-size: 1.25rem;
    font-weight: bold; }
    @media screen and (max-width: 767px) {
      article .post-content .content h3 {
        font-size: 1rem; } }
  article .post-content .content h4 {
    font-size: 1rem;
    font-weight: bold; }
  article .post-content .content a {
    font-weight: bold;
    color: #0b8767; }
  article .post-content .content p {
    font-size: 1rem; }
    article .post-content .content p:not(:last-child) {
      margin-bottom: 15px; }
  article .post-content .content img {
    max-width: 100%;
    height: auto; }

.news-loop .item {
  border-bottom: 2px dotted #efefef; }

.centered {
  display: flex;
  align-items: center;
  justify-content: center; }

img.grayscale {
  filter: grayscale(100%) contrast(1.2);
  transition: all .3s; }
  img.grayscale:hover {
    filter: grayscale(0); }

img.hover\:grayscale {
  filter: grayscale(0);
  transition: all .3s; }
  img.hover\:grayscale:hover {
    filter: grayscale(100%) contrast(1.2); }

.headline {
  position: relative;
  z-index: 1; }
  .headline .sub {
    letter-spacing: 0.1em; }

.wave.wave-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0; }
  .wave.wave-top.wave-01 svg {
    position: relative;
    display: block;
    width: calc(200% + 1.3px);
    height: 4rem; }
    @media screen and (max-width: 767px) {
      .wave.wave-top.wave-01 svg {
        height: 2rem; } }
  .wave.wave-top.wave-01 .shape-fill {
    fill: #FFFFFF; }

.wave.wave-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  transform: rotate(180deg); }
  .wave.wave-bottom.wave-01 svg {
    position: relative;
    display: block;
    width: calc(200% + 1.3px);
    height: 4rem; }
    @media screen and (max-width: 767px) {
      .wave.wave-bottom.wave-01 svg {
        height: 2rem; } }
  .wave.wave-bottom.wave-01 .shape-fill {
    fill: #FFFFFF; }

.group-card:hover .name .sub {
  animation: sdb 1.5s infinite; }

.banner:hover .sub {
  animation: sdb 1.5s infinite; }

.group-a .text-primary {
  color: #E4007F; }

.group-a .bg-primary {
  background-color: #E4007F; }

.group-a .border-primary {
  border-color: #E4007F; }

.group-a .team::before {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAGklEQVQYV2NkQAKMIPYThtr/MgzNjGAODAAAN/UDBBt/NYgAAAAASUVORK5CYII=) repeat; }

.group-b .text-primary {
  color: #023E98; }

.group-b .bg-primary {
  background-color: #023E98; }

.group-b .border-primary {
  border-color: #023E98; }

.group-b .team::before {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAGklEQVQYV2NkQAKMIDaT3Yz//w5lMII5MAAARdEEBKdI7bwAAAAASUVORK5CYII=) repeat; }

.group-c .text-primary {
  color: #6FBA2C; }

.group-c .bg-primary {
  background-color: #6FBA2C; }

.group-c .border-primary {
  border-color: #6FBA2C; }

.group-c .team::before {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAGklEQVQYV2NkQAKMIHbeLp3/k9yuMII5MAAAR8EEBBWe/ZsAAAAASUVORK5CYII=) repeat; }

.group-d .text-primary {
  color: #E77611; }

.group-d .bg-primary {
  background-color: #E77611; }

.group-d .border-primary {
  border-color: #E77611; }

.group-d .team::before {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAGklEQVQYV2NkQAKMIPbzUsH/kt3vGcEcGAAASCUEBIoukAsAAAAASUVORK5CYII=) repeat; }

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-family: 'Noto Sans JP', serif; }
  body:not(.home) #header {
    height: 80px; }
  body:not(.home) section.icatch {
    height: 500px;
    padding-top: 80px; }
    @media screen and (max-width: 767px) {
      body:not(.home) section.icatch {
        height: 300px; } }
  body:not(.home) section.sns {
    position: absolute;
    top: 80px;
    width: 100%;
    background: #fff;
    z-index: 1; }

#wrapper {
  flex: auto; }

#header {
  position: fixed;
  height: 100px;
  background: #fff;
  transition: height .4s;
  z-index: 100; }
  @media screen and (max-width: 767px) {
    #header {
      height: 80px; } }
  #header.fixed {
    background: #fff;
    height: 80px; }
  #header .logo {
    height: 40px; }
    @media screen and (max-width: 767px) {
      #header .logo {
        height: 30px; } }
    #header .logo.sub {
      height: 39px; }
      @media screen and (max-width: 767px) {
        #header .logo.sub {
          height: 26px; } }
    #header .logo img {
      width: auto;
      height: 100%; }
  #header .navibar .nav-item:not(:first-child)::before {
    content: '';
    position: absolute;
    left: 0;
    width: 4px;
    height: 4px;
    background: #999;
    border-radius: 500rem; }
  #header .navibar .nav-item.parent .children {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 64px;
    background: #fff;
    opacity: 0;
    visibility: hidden;
    transition: opacity .15s ease-in-out;
    overflow: hidden; }
    #header .navibar .nav-item.parent .children > .inner {
      background: #fff;
      opacity: 0;
      transform: translateY(-10%);
      transition: all .3s ease-in-out;
      transition-delay: .1s; }
  #header .navibar .nav-item.parent:hover .children {
    opacity: 1;
    visibility: visible;
    transition-delay: 0; }
    #header .navibar .nav-item.parent:hover .children > .inner {
      opacity: 1;
      transform: translateY(0); }

#footer {
  flex: 0; }
  #footer .footer-01 {
    position: relative; }
    #footer .footer-01::before {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 6rem;
      background: #333; }
    #footer .footer-01 .tel {
      position: relative; }
      #footer .footer-01 .tel::before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        height: 80%;
        border-right: 2px dotted #efefef;
        margin: auto; }
        @media screen and (max-width: 767px) {
          #footer .footer-01 .tel::before {
            top: auto;
            left: 0;
            width: 100%;
            height: 0;
            border-right: none;
            border-bottom: 2px dotted #efefef; } }
  #footer .footer-02 {
    color: #fff;
    background: #333; }
    #footer .footer-02 .navibar .navibar:not(:first-child) {
      border-left: 1px solid #fff; }

section {
  position: relative; }
  section.activities {
    background: #1F51A2; }
  section.flow .border-left {
    position: relative;
    padding-left: 64px;
    padding: 0 0 32px 64px; }
    section.flow .border-left::before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 32px;
      width: 1px;
      height: 100%;
      background: #1F51A2; }
  section.team .theme {
    position: relative;
    z-index: 1; }
    section.team .theme .sub {
      font-size: 100px;
      position: absolute;
      line-height: 1;
      z-index: -1;
      letter-spacing: 0.05em;
      margin: auto;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
  section.team .team {
    position: relative;
    background: #fff; }
    section.team .team::before {
      content: '';
      position: absolute;
      top: 0.5rem;
      left: 0.5rem;
      width: 100%;
      height: 100%;
      z-index: -1;
      overflow: hidden;
      border-radius: 0.5rem; }
    section.team .team .list ul {
      display: flex;
      align-items: center; }
      section.team .team .list ul li {
        position: relative;
        display: flex;
        align-items: center; }
        section.team .team .list ul li:not(:first-child)::before {
          content: '';
          position: relative;
          left: 0;
          width: 4px;
          height: 4px;
          background: #333;
          border-radius: 500rem;
          opacity: 0.6;
          margin: 0 10px; }
  section.team .genre {
    position: relative; }
    section.team .genre::before {
      content: '';
      position: absolute;
      width: 2px;
      height: 100%;
      background: #000;
      top: 0;
      left: 0;
      right: 0;
      margin: auto;
      border-radius: 500rem; }
    section.team .genre .main {
      padding: 10px 0; }
    section.team .genre.group-a {
      color: #E4007F; }
      section.team .genre.group-a::before {
        background: #E4007F; }
    section.team .genre.group-b {
      color: #023E98; }
      section.team .genre.group-b::before {
        background: #023E98; }
    section.team .genre.group-c {
      color: #6FBA2C; }
      section.team .genre.group-c::before {
        background: #6FBA2C; }
    section.team .genre.group-d {
      color: #E77611; }
      section.team .genre.group-d::before {
        background: #E77611; }

.icatch.page {
  background-position: center;
  background-size: cover; }
  .icatch.page::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAF0lEQVQYV2NkQAKMUPZ/BgYGRhgHLAYAEnEBBJU1VYUAAAAASUVORK5CYII=);
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1; }

.icatch .bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .9s; }
  .icatch .bg::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAF0lEQVQYV2NkQAKMUPZ/BgYGRhgHLAYAEnEBBJU1VYUAAAAASUVORK5CYII=);
    z-index: 1; }
  .icatch .bg > .movie {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 177.77777778vh;
    /* 16:9 の幅→16 ÷ 9＝ 177.77% */
    height: 56.25vw;
    /* 16:9の幅 → 9 ÷ 16 = 56.25% */
    min-height: 100%;
    min-width: 100%; }

.icatch .bg-02 {
  position: absolute;
  top: 100px;
  right: 0;
  width: calc(100% - 400px);
  height: calc(100% - 100px);
  overflow: hidden;
  pointer-events: none;
  transition: opacity .9s;
  background-size: cover;
  background-position: center; }
  @media screen and (max-width: 1100px) {
    .icatch .bg-02 {
      width: calc(100% - 200px); } }
  @media screen and (max-width: 767px) {
    .icatch .bg-02 {
      top: 80px;
      width: 100%;
      height: calc(100% - 80px); } }
  .icatch .bg-02::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.8), transparent);
    width: 50%; }
    @media screen and (max-width: 1100px) {
      .icatch .bg-02::before {
        width: 100%; } }
    @media screen and (max-width: 767px) {
      .icatch .bg-02::before {
        width: 100%;
        background: rgba(0, 0, 0, 0.3); } }

.loop-wrap .post .text {
  height: 3.75rem;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  text-overflow: ellipsis; }

.modal {
  opacity: 0;
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }
  .modal.show {
    opacity: 1; }
