@charset "UTF-8";
/* Scss Document */
/* Scss Document */
html {
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth; }
  html.preload {
    font-size: 1px !important; }
    html.preload * {
      transition: none !important;
      visibility: hidden;
      max-width: 100%; }
  @media (max-width: 585.98px) {
    html {
      font-size: calc(var(--vw) / 384); } }
  @media (min-width: 586px) and (max-width: 767.98px) {
    html {
      font-size: 1.5px; } }
  @media (min-width: 768px) and (max-width: 1279.98px) {
    html {
      font-size: calc(var(--vw) / 1280); } }
  @media (min-width: 1280px) {
    html {
      font-size: 1px; } }
  @media print {
    html {
      font-size: 0.2mm; } }

[id] {
  scroll-margin-top: 64rem; }
  @media screen and (min-width: 768px), print {
    [id] {
      scroll-margin-top: 110rem; } }

* {
  box-sizing: border-box; }

body {
  font-size: 13rem;
  font-weight: 400;
  color: #060808;
  background: #FFFFFE;
  line-height: 2;
  text-align: left;
  -webkit-text-size-adjust: 100%;
  word-break: break-word;
  font-family: "游ゴシック体", "Yu Gothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", Arial, sans-serif;
  margin: 0;
  padding: 80rem 0 0 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: -0.05em; }
  @media screen and (min-width: 768px), print {
    body {
      font-size: 16rem;
      padding-top: 100rem; } }

html.modal-on, body.modal-on {
  overflow: hidden; }

section,
nav,
header,
footer,
article,
figure {
  margin: 0;
  padding: 0; }

p {
  margin: 2em 0; }

h1, h2, h3, h4, h5 {
  line-height: 1.6; }

h2 {
  font-size: 23rem; }
  @media screen and (min-width: 768px), print {
    h2 {
      font-size: 36rem; } }

h3 {
  font-size: 16rem; }
  @media screen and (min-width: 768px), print {
    h3 {
      font-size: 22rem; } }

img {
  max-width: 100%;
  height: auto;
  vertical-align: top; }
  img.round {
    border-radius: 4rem; }
    @media screen and (min-width: 768px), print {
      img.round {
        border-radius: 8rem; } }

a {
  color: #060808;
  backface-visibility: hidden;
  text-decoration: none;
  transition: background .5s,border .5s,opacity .5s; }

p a {
  color: #ED1C24;
  text-decoration-line: underline;
  text-decoration-color: transparent;
  text-decoration-style: dashed;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3em;
  transition: text-decoration-color .3s; }
  @media screen and (min-width: 768px), print {
    p a:hover {
      text-decoration-color: #ED1C24; } }

input, textarea, select {
  font-family: "游ゴシック体", "Yu Gothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", Arial, sans-serif;
  font-size: 12rem; }
  @media screen and (min-width: 768px), print {
    input, textarea, select {
      font-size: 16rem; } }

.tal {
  text-align: left !important; }

.tar {
  text-align: right !important; }

.tac {
  text-align: center !important; }

.fl {
  float: left; }

.fr {
  float: right; }

.mt0 {
  margin-top: 0 !important; }

.mb0 {
  margin-bottom: 0 !important; }

.mt-l {
  margin-top: 32rem !important; }
  @media screen and (min-width: 768px), print {
    .mt-l {
      margin-top: 64rem !important; } }

@media screen and (min-width: 768px), print {
  .inner {
    width: 1244rem;
    margin: 0 auto; }

  .inner-narrow {
    width: 1090rem;
    margin: 0 auto; }

  .spOnly {
    display: none !important; }

  .pcTal {
    text-align: left !important; }

  .pcTar {
    text-align: right !important; }

  .pcTac {
    text-align: center !important; } }
@media screen and (max-width: 767.98px) {
  .spTal {
    text-align: left !important; }

  .spTar {
    text-align: right !important; }

  .spTac {
    text-align: center !important; }

  .inner,
  .inner-narrow {
    width: 100%;
    padding: 0 16rem;
    box-sizing: border-box; }

  .pcOnly {
    display: none !important; } }
.touchdevice .clickdeviceOnly {
  display: none; }

.clickdevice .touchdeviceOnly {
  display: none; }

em {
  font-style: normal; }

/* CSS Document */
b.tk {
  display: inline-block;
  text-indent: -999em;
  overflow: hidden;
  aspect-ratio: 340/35;
  height: 0.7em;
  background: url("../images/txt_logo.svg") no-repeat center center/contain;
  transform: translateY(-5%); }
  b.tk.wh {
    background-image: url("../images/txt_logo_wh.svg"); }

a.cs {
  pointer-events: none;
  opacity: .3;
  display: block; }

.label {
  border: 1px solid #FFFFFE;
  color: #FFFFFE;
  border-radius: 100rem;
  font-family: "Overpass", sans-serif;
  font-size: 15rem;
  font-weight: 900;
  line-height: 1;
  display: table;
  padding: 8rem 10rem 3rem; }
  @media screen and (min-width: 768px), print {
    .label {
      font-size: 20rem; } }

.icon-arrow {
  width: 40rem;
  height: 40rem;
  border-radius: 2rem;
  background: #ED1C24;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #FFFFFE; }
  @media screen and (min-width: 768px), print {
    .icon-arrow {
      width: 48rem;
      height: 48rem;
      border-radius: 4rem;
      transition: background .5s,color .5s;
      border: 2rem solid #ED1C24; } }
  .icon-arrow svg {
    fill: #FFFFFE;
    width: 14rem;
    aspect-ratio: 1; }
    @media screen and (min-width: 768px), print {
      .icon-arrow svg {
        width: 17rem;
        transition: transform .5s,fill .5s; } }

@media screen and (min-width: 768px), print {
  a:hover .icon-arrow {
    background: #FFFFFE;
    color: #ED1C24 !important; }
    a:hover .icon-arrow svg {
      transform: translateX(20%);
      fill: #ED1C24; } }
.icon-cross {
  width: 40rem;
  height: 40rem;
  border-radius: 2rem;
  background: #ED1C24;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #FFFFFE; }
  @media screen and (min-width: 768px), print {
    .icon-cross {
      width: 48rem;
      height: 48rem;
      border-radius: 4rem;
      transition: background .5s,color .5s;
      border: 2rem solid #ED1C24; } }
  .icon-cross svg {
    fill: #FFFFFE;
    width: 13rem;
    aspect-ratio: 1; }
    @media screen and (min-width: 768px), print {
      .icon-cross svg {
        width: 12rem;
        transition: transform .5s,fill .5s; } }

.icon-triangle svg {
  fill: #ED1C24;
  width: 100%;
  aspect-ratio: 32/28; }

@media screen and (min-width: 768px), print {
  [data-modalsibling]:hover .icon-cross,
  [data-modal]:hover .icon-cross {
    background: #FFFFFE;
    color: #ED1C24 !important; }
    [data-modalsibling]:hover .icon-cross svg,
    [data-modal]:hover .icon-cross svg {
      fill: #ED1C24; } }
.icon-close {
  width: 40rem;
  height: 40rem;
  border-radius: 2rem;
  border: 2rem solid #ED1C24;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media screen and (min-width: 768px), print {
    .icon-close {
      width: 48rem;
      height: 48rem;
      border-radius: 4rem;
      transition: background .5s,color .5s; } }
  .icon-close svg {
    fill: #ED1C24;
    width: 13rem;
    aspect-ratio: 1;
    transform: rotate(45deg); }
    @media screen and (min-width: 768px), print {
      .icon-close svg {
        width: 12rem;
        transition: transform .5s,fill .5s; } }

@media screen and (min-width: 768px), print {
  .close-btn:hover .icon-close {
    background: #FFFFFE; } }
.icon-car svg {
  fill: #ED1C24; }

.btn {
  background: #ED1C24;
  color: #FFFFFE;
  filter: drop-shadow(0rem 1rem 4rem rgba(0, 0, 0, 0.12));
  border-radius: 4rem;
  display: inline-grid;
  grid-template-columns: 1fr 40rem;
  align-items: center;
  padding: 0 0 0 16rem;
  font-weight: 700;
  font-size: 10rem; }
  @media screen and (min-width: 768px), print {
    .btn {
      filter: drop-shadow(0rem 2rem 8rem rgba(0, 0, 0, 0.12));
      font-size: 14rem;
      transition: background .5s , color .5s; }
      .btn:hover {
        background: #FFFFFE;
        color: #ED1C24;
        border-color: #ED1C24; } }
  .btn .icon-arrow {
    border: none !important;
    background: none !important; }

header {
  position: fixed;
  top: 0;
  left: 0;
  height: 64rem;
  width: 100%;
  background: linear-gradient(#dcddde 0%, rgba(255, 255, 254, 0) 100%);
  z-index: 300;
  padding: 12rem;
  box-sizing: border-box;
  display: flex;
  align-items: center; }
  @media screen and (min-width: 768px), print {
    header {
      height: 98rem;
      padding: 18rem 96rem 18rem 18rem; } }
  .lp header {
    background: linear-gradient(#fff 85%, rgba(255, 255, 254, 0) 100%); }
  header .logo a {
    display: flex;
    align-items: center;
    grid-gap: 16rem; }
    @media screen and (min-width: 768px), print {
      header .logo a {
        grid-gap: 32rem; } }
    header .logo a img {
      width: 140rem; }
      @media screen and (min-width: 768px), print {
        header .logo a img {
          width: 280rem; } }
  header .lp-links {
    margin-left: auto; }
    header .lp-links ul {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      justify-content: flex-end;
      grid-gap: 16rem; }
      header .lp-links ul li {
        margin: 0;
        padding: 0; }
    header .lp-links a {
      font-size: 20rem;
      font-weight: 700;
      height: 62rem;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 0 24rem;
      color: #FFFFFE;
      background: #ED1C24;
      border-radius: 4rem;
      box-shadow: 0 1rem 4rem rgba(0, 0, 0, 0.12); }
      @media screen and (min-width: 768px), print {
        header .lp-links a {
          box-shadow: 0 2rem 8rem rgba(0, 0, 0, 0.12); }
          header .lp-links a:hover {
            background: #FFFFFE;
            color: #ED1C24; } }

.menu-btn {
  width: 40rem;
  height: 40rem;
  text-align: center;
  background: linear-gradient(#414042 0%, #ed1c24 100%);
  border-radius: 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 12rem;
  right: 12rem;
  cursor: pointer;
  overflow: hidden; }
  @media screen and (min-width: 768px), print {
    .menu-btn {
      border-radius: 4rem;
      width: 62rem;
      height: 62rem;
      top: 18rem;
      right: 18rem; }
      .menu-btn::before {
        content: "";
        display: block;
        position: absolute;
        inset: 0;
        background: #FFFFFE;
        opacity: 0;
        transition: .3s; }
      .menu-btn:hover::before {
        opacity: 1; }
      .menu-btn:hover .burger i {
        background: #ED1C24; } }
  .menu-btn .burger {
    width: 16rem;
    height: 8rem;
    display: block;
    position: relative; }
    @media screen and (min-width: 768px), print {
      .menu-btn .burger {
        width: 28rem;
        height: 12rem; } }
    .menu-btn .burger i {
      background: #fff;
      width: 16rem;
      height: 2px;
      display: block;
      position: absolute;
      transform: translate(-50%, -50%);
      left: 50%;
      transition: transform .3s ,top .3s,opacity .3s,background .3s; }
      @media screen and (min-width: 768px), print {
        .menu-btn .burger i {
          width: 28rem; } }
      .menu-btn .burger i:nth-of-type(1) {
        top: 0; }
      .menu-btn .burger i:nth-of-type(2) {
        top: 50%; }
      .menu-btn .burger i:nth-of-type(3) {
        top: 100%; }
  .menu-btn.open .burger i:nth-of-type(1) {
    transform: translate(-50%, -50%) rotate(-150deg);
    top: 50%; }
  .menu-btn.open .burger i:nth-of-type(2) {
    opacity: 0; }
  .menu-btn.open .burger i:nth-of-type(3) {
    transform: translate(-50%, -50%) rotate(150deg);
    top: 50%; }

#gnavi {
  background: linear-gradient(#fff 100rem, #dcddde 100%);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  max-height: 100svh;
  z-index: 200;
  display: none;
  overflow: auto;
  box-sizing: border-box; }
  #gnavi .gnavi-inner {
    padding: 80rem 0 0; }
    @media screen and (min-width: 768px), print {
      #gnavi .gnavi-inner {
        padding: 140rem 64rem 64rem;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        grid-gap: 100rem; } }
  #gnavi ul.main {
    line-height: 1.5;
    display: grid;
    grid-gap: 24rem;
    margin: 0 0 24rem;
    padding: 0 32rem;
    list-style: none;
    font-size: 16rem;
    font-weight: 700; }
    @media screen and (min-width: 768px), print {
      #gnavi ul.main {
        padding: 0;
        margin: 0;
        grid-gap: 16rem; } }
    #gnavi ul.main small {
      font-size: 13rem;
      display: block;
      font-weight: 500; }
    #gnavi ul.main li {
      margin: 0;
      padding: 0; }
    #gnavi ul.main a {
      display: table;
      border: 2px dotted transparent;
      transition: border-bottom-color .3s; }
      #gnavi ul.main a:hover {
        border-bottom-color: #ED1C24; }
  #gnavi ul.sub {
    margin: 32rem 0 0;
    padding: 0;
    list-style: none; }
    #gnavi ul.sub li {
      margin: 0;
      padding: 0;
      border-top: 1px solid #060808; }
      #gnavi ul.sub li a {
        font-weight: 700;
        font-size: 16rem;
        padding: 0 32rem;
        display: grid;
        grid-template-columns: 1fr 24rem;
        align-items: center;
        height: 75rem; }
        #gnavi ul.sub li a .icon-arrow {
          width: 24rem;
          height: 24rem; }

footer {
  background: #414042;
  color: #FFFFFE;
  display: grid;
  margin: 64rem 0 0;
  overflow: hidden; }
  @media screen and (min-width: 768px), print {
    footer {
      grid-template-columns: 1fr 480rem;
      align-items: center; } }
  footer a {
    color: #FFFFFE; }
  footer .logo {
    width: 160rem;
    margin: 0 0 24rem; }
    @media screen and (min-width: 768px), print {
      footer .logo {
        width: 280rem;
        margin: 0 0 48rem; } }
  footer .left {
    padding: 48rem 32rem;
    font-size: 12rem;
    width: 100vw;
    overflow: hidden; }
    @media screen and (min-width: 768px), print {
      footer .left {
        font-size: 16rem;
        padding: 0 0 0 80rem;
        width: auto; }
        footer .left a {
          display: table;
          border: 2px dotted transparent;
          transition: border-bottom-color .3s; }
          footer .left a:hover {
            border-bottom-color: #ED1C24; } }
    footer .left nav ul {
      margin: 0 0;
      padding: 0;
      list-style: none;
      column-count: 2;
      white-space: nowrap;
      column-gap: 24rem; }
      footer .left nav ul li {
        margin: 16rem 0 0;
        padding: 0;
        font-weight: 700;
        line-height: 1.4; }
        footer .left nav ul li:first-child {
          margin-top: 0; }
      footer .left nav ul small {
        display: block;
        font-size: 75%;
        font-weight: 400; }
  @media screen and (min-width: 768px), print {
    footer .right {
      border-left: 1px solid #FFFFFE; } }
  footer .right nav ul {
    margin: 0;
    padding: 0;
    list-style: none; }
    footer .right nav ul li {
      margin: 0;
      padding: 0;
      border-top: 1px solid #FFFFFE; }
      @media screen and (min-width: 768px), print {
        footer .right nav ul li:first-child {
          border-top: none; } }
      footer .right nav ul li a {
        font-weight: 700;
        font-size: 16rem;
        padding: 0 32rem;
        display: grid;
        grid-template-columns: 1fr 24rem;
        align-items: center;
        height: 75rem; }
        @media screen and (min-width: 768px), print {
          footer .right nav ul li a {
            font-size: 22rem;
            height: 150rem;
            padding: 0 48rem; } }
        footer .right nav ul li a .icon-arrow {
          width: 24rem;
          height: 24rem; }
          @media screen and (min-width: 768px), print {
            footer .right nav ul li a .icon-arrow {
              width: 32rem;
              height: 32rem;
              border-width: 1px; } }
  footer .copyright {
    background: #ED1C24;
    color: #FFFFFE;
    text-align: center;
    font-size: 10rem;
    font-family: "Overpass", sans-serif;
    padding: 10rem 0 8rem 0; }
    @media screen and (min-width: 768px), print {
      footer .copyright {
        font-size: 14rem;
        padding: 16rem 0;
        grid-column: 1/3; } }

main.local {
  padding: 24rem 0 0; }
  @media screen and (min-width: 768px), print {
    main.local {
      padding: 64rem 0; } }

/*------------------------------------------*/
#modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  transition: opacity .5s;
  z-index: 2500;
  opacity: 0;
  pointer-events: none; }
  #modal.active {
    pointer-events: all;
    opacity: 1; }
    #modal.active article,
    #modal.active .sibling-link {
      pointer-events: all; }
  #modal .modal-bg {
    background: rgba(6, 8, 8, 0.8);
    /*
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
      height: 100dvh;
      width: 100%;
    */ }
  #modal .modal-inner {
    /*
    padding:0;
    overflow: hidden;
    max-height: 100%;
    max-height: 100dvh;
    width: 100%;
    box-sizing: border-box;
    */ }
  #modal .modal-frame {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    position: relative;
    box-sizing: border-box;
    margin: 0 auto;
    display: none;
    overflow: auto;
    padding: 16rem;
    box-sizing: border-box;
    pointer-events: none; }
    #modal .modal-frame.active {
      display: block;
      pointer-events: all; }
  #modal .close-btn {
    overflow: hidden;
    cursor: pointer;
    line-height: 1;
    z-index: 100;
    box-shadow: 0 1rem 4rem rgba(0, 0, 0, 0.12); }
    @media screen and (max-width: 767.98px) {
      #modal .close-btn {
        position: absolute;
        top: 12rem;
        right: 12rem; } }
    @media screen and (min-width: 768px), print {
      #modal .close-btn {
        box-shadow: 0 2rem 8rem rgba(0, 0, 0, 0.12);
        position: fixed;
        top: 16rem;
        left: calc(50% + 550rem); } }

/*------------------------------------------*/
h2 {
  font-size: 23rem; }
  @media screen and (min-width: 768px), print {
    h2 {
      font-size: 36rem; } }
  h2.line, h2.noline {
    position: relative; }
    h2.line::after, h2.noline::after {
      content: "";
      width: 28rem;
      height: 3rem;
      display: block;
      background: #ED1C24;
      position: relative; }
      @media screen and (min-width: 768px), print {
        h2.line::after, h2.noline::after {
          width: 56rem; } }
    h2.line i, h2.noline i {
      position: absolute;
      font-size: 80rem;
      font-family: "Overpass", sans-serif;
      top: 50%;
      left: 0;
      color: rgba(255, 226, 227, 0.5);
      font-style: normal;
      line-height: 1;
      transform: translate(-15rem, -60%); }
      @media screen and (min-width: 768px), print {
        h2.line i, h2.noline i {
          font-size: 160rem;
          transform: translate(-100rem, -40%); } }
    h2.line span, h2.noline span {
      position: relative; }
  h2.noline::after {
    display: none; }

h3 {
  font-size: 16rem; }
  @media screen and (min-width: 768px), print {
    h3 {
      font-size: 22rem; } }
  h3.line {
    display: grid;
    grid-template-columns: 8rem 1fr;
    grid-gap: 10rem;
    align-items: center; }
    h3.line::before {
      content: "";
      width: 8rem;
      height: 1px;
      display: block;
      background: #ED1C24; }

h4 {
  font-size: 16rem; }
  @media screen and (min-width: 768px), print {
    h4 {
      font-size: 22rem; } }
  h4.line {
    position: relative;
    border-bottom: 1px solid #DCDDDE;
    padding: 0 0 0.3em; }
    h4.line::after {
      content: "";
      width: 56rem;
      height: 3rem;
      display: block;
      background: #ED1C24;
      transform: translateY(2px);
      position: absolute;
      bottom: 0;
      left: 0; }
      @media screen and (min-width: 768px), print {
        h4.line::after {
          width: 56rem; } }

/*------------------------------------------*/
dl.common-dl {
  margin: 8rem 0 0;
  font-size: 12rem; }
  @media screen and (min-width: 768px), print {
    dl.common-dl {
      margin: 32rem 0 0;
      font-size: 14rem; } }
  dl.common-dl > div {
    border-bottom: 1px solid #DCDDDE;
    padding: 14rem 0 12rem;
    display: grid;
    grid-template-columns: 64rem 1fr;
    grid-gap: 16rem;
    position: relative; }
    @media screen and (min-width: 768px), print {
      dl.common-dl > div {
        grid-template-columns: 118rem 1fr; } }
    .gray-bg dl.common-dl > div {
      border-bottom-color: #FFFFFE; }
    dl.common-dl > div dt {
      margin: 0;
      padding: 0;
      font-weight: 700;
      line-height: 1.7; }
      dl.common-dl > div dt::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        display: block;
        width: 64rem;
        height: 3px;
        transform: translateY(calc(50% + 0.5px));
        background: #ED1C24; }
        @media screen and (min-width: 768px), print {
          dl.common-dl > div dt::after {
            width: 118rem; } }
    dl.common-dl > div dd {
      margin: 0;
      padding: 0;
      line-height: 1.7; }
    dl.common-dl > div.table {
      grid-template-columns: 1fr;
      border: none; }
      dl.common-dl > div.table dt {
        position: relative;
        border-bottom: 1px solid #FFFFFE;
        padding: 24rem 0 12rem; }
      dl.common-dl > div.table dd table {
        text-align: center;
        border-radius: 4rem;
        box-shadow: 0 1rem 4rem rgba(0, 0, 0, 0.12);
        border-collapse: collapse;
        border: none;
        width: 100%;
        overflow: hidden; }
        @media screen and (min-width: 768px), print {
          dl.common-dl > div.table dd table {
            box-shadow: 0 2rem 8rem rgba(0, 0, 0, 0.12); } }
        dl.common-dl > div.table dd table thead {
          background: #FFB7BA;
          color: #FFFFFE; }
          dl.common-dl > div.table dd table thead th {
            border-left: 1px solid #FFFFFE;
            font-weight: 700;
            padding: 0.5em 0; }
        dl.common-dl > div.table dd table tbody {
          background: #FFFFFE; }
          dl.common-dl > div.table dd table tbody th {
            font-weight: 700; }
          dl.common-dl > div.table dd table tbody td {
            border-left: 1px solid #BCBEC0;
            padding: 0.5em 0; }
      dl.common-dl > div.table dd #ratio-note {
        text-align: right;
        margin: 8rem 0 0;
        font-size: 12rme; }
        @media screen and (min-width: 768px), print {
          dl.common-dl > div.table dd #ratio-note {
            font-size: 14rem; } }

/* ------------------------------- */
@media screen and (max-width: 767.98px) {
  .scrollable {
    overflow-x: auto;
    position: relative;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin: 32rem -16rem 0;
    padding: 0 16rem; }
    .scrollable .scrollable-image {
      width: 230%;
      max-width: 230%; } }
@media screen and (min-width: 768px), print {
  .scrollable {
    margin: 64rem -17rem 16rem; }
    .white-box .scrollable {
      margin: 32rem 0; } }

@media screen and (max-width: 767.98px) {
  .scrollable::-webkit-scrollbar {
    display: none; }

  .scrollable-bar {
    position: relative;
    margin: 16rem 20rem 0;
    height: 12rem;
    background: #DCDDDE;
    border-radius: 100rem;
    padding: 0 3rem; }
    .white-box .scrollable-bar {
      margin: 16rem 0 0; }
    .scrollable-bar .scrollbar {
      position: relative;
      height: 100%;
      width: 100%; }
      .scrollable-bar .scrollbar .bar {
        position: absolute;
        height: 6rem;
        width: 30%;
        background: #ED1C24;
        cursor: pointer;
        left: 0;
        border-radius: 100rem;
        margin-top: 3rem; } }
/* ------------------------------- */
ul.notes {
  margin: 0;
  padding: 0;
  list-style: none; }
  ul.notes li {
    margin: 0;
    padding: 0 0 0 1em;
    text-indent: -1em; }

/* ------------------------------- */
ul.common-ul {
  margin: 0;
  padding: 0;
  list-style: none; }
  ul.common-ul li {
    margin: 0;
    padding: 0 0 0 1em;
    text-indent: -1em; }
    ul.common-ul li::before {
      content: "・";
      width: 1em;
      text-indent: 0; }

/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* ------------------------------- */
/* CSS Document */
.kvwrap {
  overflow: hidden; }
  @media screen and (min-width: 768px), print {
    .kvwrap {
      margin-top: -98rem;
      padding-top: 98rem; } }

#toptitle {
  position: relative;
  text-align: center;
  display: table;
  margin: 20rem auto 0rem;
  padding: 0 20rem; }
  @media screen and (min-width: 768px), print {
    #toptitle {
      margin: 50rem auto -20rem; } }
  @media screen and (min-width: 768px), print {
    #toptitle .title {
      width: 792rem; } }
  #toptitle .sand {
    position: absolute;
    bottom: -16%;
    left: 62%;
    width: 182rem; }
    @media screen and (min-width: 768px), print {
      #toptitle .sand {
        width: 420rem; } }
  #toptitle .lens {
    position: absolute;
    top: -48rem;
    left: -126rem;
    z-index: 30;
    transform: scale(1.5);
    animation: lens 4s ease-in-out forwards;
    opacity: 0;
    width: 150rem; }
    @media screen and (min-width: 768px), print {
      #toptitle .lens {
        width: 340rem;
        top: -100rem;
        left: -300rem; } }
  #toptitle .magnifier {
    width: 63.5%;
    top: 3.5%;
    left: 3.5%;
    aspect-ratio: 1;
    border-radius: 50%;
    position: absolute;
    pointer-events: none;
    animation: magnifier 4s ease-in-out forwards;
    background: url("../images/top/logo.webp") no-repeat #fff;
    background-size: 1300%;
    background-position: -20% -20%; }

@keyframes lens {
  0% {
    opacity: 0;
    transform: translate(0, 0) scale(1); }
  15% {
    opacity: 1; }
  50% {
    opacity: 1;
    transform: translate(135%, -1%) scale(0.5); }
  90% {
    opacity: 1; }
  100% {
    opacity: 1;
    transform: translate(135%, -1%) scale(0.5); } }
@keyframes magnifier {
  0% {
    background-size: 1300%;
    background-position: -20% -20%; }
  50% {
    background-position: 34.5% 4%;
    background-size: 900%; }
  100% {
    background-position: 34.5% 4%;
    background-size: 900%; } }
#kv {
  text-align: center;
  font-size: 16rem;
  font-weight: bold;
  background: url(../images/top/kv_sp.webp) no-repeat center top/384rem;
  padding: 35rem 0 50rem;
  line-height: 29rem;
  position: relative; }
  @media screen and (min-width: 768px), print {
    #kv {
      background: url(../images/top/kv_pc.webp) no-repeat center top/1173rem;
      padding: 110rem 0 70rem;
      font-size: 28rem;
      line-height: 52rem; } }
  #kv p {
    margin: 0 -0.5em 29rem 0;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 5; }
    @media screen and (min-width: 768px), print {
      #kv p {
        margin: 0 -0.5em 50rem 0; } }
  #kv .anime > div {
    position: absolute; }
  #kv .anime .effect1 {
    bottom: 229rem;
    left: 53rem;
    width: 31rem;
    z-index: -1;
    animation: effect1 39s linear infinite; }
    @media screen and (min-width: 768px), print {
      #kv .anime .effect1 {
        width: 62rem;
        bottom: 430rem;
        left: calc(50% - 460rem); } }
  #kv .anime .effect2 {
    bottom: 204rem;
    right: -4rem;
    width: 91rem;
    animation: effect2 6s ease-in-out infinite;
    z-index: 18; }
    @media screen and (min-width: 768px), print {
      #kv .anime .effect2 {
        width: 200rem;
        bottom: 160rem;
        right: calc(50% - 560rem); } }
  #kv .anime .car1 {
    top: -59rem;
    right: -22rem;
    width: 92rem;
    z-index: 15; }
    @media screen and (min-width: 768px), print {
      #kv .anime .car1 {
        width: 212rem;
        top: -121rem;
        right: calc(50% - 510rem); } }
  #kv .anime .car2 {
    bottom: 625rem;
    right: 20rem;
    width: 40rem; }
    @media screen and (min-width: 768px), print {
      #kv .anime .car2 {
        width: 80rem;
        bottom: 730rem;
        right: calc(50% - 330rem); } }
  #kv .anime .ani1 {
    bottom: 15rem;
    left: 0;
    width: 90rem; }
    @media screen and (min-width: 768px), print {
      #kv .anime .ani1 {
        width: 200rem;
        bottom: 120rem;
        left: calc(50% - 550rem); } }
  #kv .anime .ani2 {
    top: -70rem;
    left: 0;
    width: 90rem;
    z-index: 16; }
    @media screen and (min-width: 768px), print {
      #kv .anime .ani2 {
        width: 200rem;
        top: -80rem;
        left: calc(50% - 470rem); } }
  #kv .anime .lens {
    position: absolute;
    top: 170rem;
    left: 115rem;
    width: 42rem;
    transform: scaleX(-1);
    offset-path: path("M 10,0 A 10,10 0 1,1 9.9,0.1");
    offset-rotate: 0deg; }
    @media screen and (min-width: 768px), print {
      #kv .anime .lens {
        top: 252rem;
        left: calc(50% - 340rem);
        width: 84rem;
        width: 84rem; } }

@keyframes moveInCircle {
  0% {
    offset-distance: 0%; }
  100% {
    offset-distance: 100%; } }
@keyframes car1 {
  0% {
    opacity: 0;
    transform: translate(80%, -15%); }
  10% {
    opacity: 1; }
  60% {
    transform: translate(0, 0); }
  85% {
    opacity: 1; }
  95% {
    opacity: 0; }
  100% {
    opacity: 0; } }
@keyframes car2 {
  0% {
    opacity: 0;
    transform: translate(0, 0); }
  10% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(120%, 30%); }
  100% {
    opacity: 0; } }
@keyframes effect1 {
  0% {
    transform: rotate(0); }
  100% {
    transform: rotate(360deg); } }
@keyframes effect2 {
  0% {
    transform: translateY(0); }
  50% {
    transform: translateY(-30%); }
  100% {
    transform: translateY(0%); } }
/*------------------------------------------*/
#toppage {
  overflow: hidden; }
  #toppage nav .comingsoon {
    pointer-events: none; }
    #toppage nav .comingsoon figure {
      background: #343D52 !important; }
      #toppage nav .comingsoon figure img {
        opacity: .3; }
    #toppage nav .comingsoon .icon-arrow {
      display: none; }
    #toppage nav .comingsoon .label {
      text-shadow: none; }
  #toppage nav a,
  #toppage nav .comingsoon {
    border-radius: 4rem;
    overflow: hidden;
    position: relative;
    display: block;
    color: #FFFFFE;
    padding: 20rem; }
    @media screen and (min-width: 768px), print {
      #toppage nav a,
      #toppage nav .comingsoon {
        border-radius: 8rem;
        padding: 40rem; } }
    #toppage nav a figure,
    #toppage nav .comingsoon figure {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 1;
      overflow: hidden;
      transition: border-radius .5s; }
      #toppage nav a figure img,
      #toppage nav .comingsoon figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.5s cubic-bezier(0.17, 0.67, 0.49, 1); }
  #toppage nav .icon-arrow {
    position: absolute;
    z-index: 2;
    bottom: 10rem;
    right: 10rem; }
  #toppage nav h2 {
    position: relative;
    z-index: 2;
    display: grid;
    grid-gap: 4rem;
    line-height: 1.4;
    margin: 20rem 0 0; }
    #toppage nav h2 .sub {
      font-size: 16rem; }
      @media screen and (min-width: 768px), print {
        #toppage nav h2 .sub {
          font-size: 22rem; } }
    #toppage nav h2 .main {
      font-size: 23rem; }
      @media screen and (min-width: 768px), print {
        #toppage nav h2 .main {
          font-size: 36rem; } }
  #toppage nav p {
    font-weight: bold;
    position: relative;
    z-index: 2;
    margin: 16rem 0; }
  #toppage nav .label {
    position: absolute;
    z-index: 2;
    top: 10rem;
    right: 10rem;
    color: #FFFFFE;
    border-color: #FFFFFE; }
  #toppage nav .ss1 {
    display: grid;
    grid-gap: 16rem; }
    @media screen and (min-width: 768px), print {
      #toppage nav .ss1 {
        grid-template-columns: 853fr 379fr; } }
    @media screen and (max-width: 767.98px) {
      #toppage nav .ss1 a,
      #toppage nav .ss1 .comingsoon {
        aspect-ratio: 704/712; } }
    @media screen and (min-width: 768px), print {
      #toppage nav .ss1 a,
      #toppage nav .ss1 .comingsoon {
        background: #ED1C24; }
        #toppage nav .ss1 a:hover figure,
        #toppage nav .ss1 .comingsoon:hover figure {
          border-top-left-radius: 64rem; }
          #toppage nav .ss1 a:hover figure img,
          #toppage nav .ss1 .comingsoon:hover figure img {
            transform: scale(1.05); } }
  #toppage nav .ss2 {
    background: linear-gradient(90deg, #bcbec0 0%, #e50d0b 100%);
    margin: 16rem -16rem; }
    @media screen and (min-width: 768px), print {
      #toppage nav .ss2 {
        border-radius: 8rem; } }
  #toppage nav .ss3 {
    background: linear-gradient(90deg, #bcbec0 0%, #e50d0b 100%);
    margin: 16rem -16rem 32rem;
    position: relative;
    overflow: hidden;
    padding: 225rem 36rem 36rem; }
    @media screen and (min-width: 768px), print {
      #toppage nav .ss3 {
        border-radius: 8rem;
        padding: 16rem 16rem 32rem; } }
    #toppage nav .ss3::before {
      content: "";
      display: block;
      background: url(../images/top/bg_sp.webp) no-repeat center top/contain;
      position: absolute; }
      @media screen and (max-width: 767.98px) {
        #toppage nav .ss3::before {
          top: -25rem;
          left: -36rem;
          right: -36rem;
          aspect-ratio: 895/437; } }
      @media screen and (min-width: 768px), print {
        #toppage nav .ss3::before {
          width: 895rem;
          top: -110rem;
          left: -77rem;
          background-image: url("../images/top/bg_pc.webp");
          aspect-ratio: 1790/928; } }
  @media screen and (min-width: 768px), print {
    #toppage nav .about {
      height: 454rem; }
      #toppage nav .about:hover figure::after {
        top: -200rem;
        right: -200rem;
        opacity: .6; } }
  #toppage nav .numbers,
  #toppage nav .enquete,
  #toppage nav .nagano,
  #toppage nav .work {
    text-shadow: 0px 0px 20rem rgba(237, 28, 36, 0.8); }
    @media screen and (min-width: 768px), print {
      #toppage nav .numbers,
      #toppage nav .enquete,
      #toppage nav .nagano,
      #toppage nav .work {
        text-shadow: 0px 0px 40rem rgba(237, 28, 36, 0.8); } }
    #toppage nav .numbers figure::after,
    #toppage nav .enquete figure::after,
    #toppage nav .nagano figure::after,
    #toppage nav .work figure::after {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      display: block;
      opacity: .4;
      transition: .5s; }
  @media screen and (min-width: 768px), print {
    #toppage nav .enquete {
      height: 454rem; }
      #toppage nav .enquete:hover figure::after {
        top: -200rem;
        right: -200rem;
        opacity: .6; } }
  #toppage nav .enquete figure::after {
    background: linear-gradient(-150deg, rgba(5, 40, 126, 0) 30%, #ed1c24 90%); }
  @media screen and (min-width: 768px), print {
    #toppage nav .numbers,
    #toppage nav .nagano {
      height: 454rem; }
      #toppage nav .numbers:hover figure::after,
      #toppage nav .nagano:hover figure::after {
        top: -200rem;
        right: -200rem;
        opacity: .6; } }
  #toppage nav .numbers h2,
  #toppage nav .nagano h2 {
    position: absolute;
    bottom: 16rem; }
  #toppage nav .numbers figure::after,
  #toppage nav .nagano figure::after {
    background: linear-gradient(-150deg, rgba(5, 40, 126, 0) 50%, #ed1c24 90%); }
  #toppage nav .project {
    position: relative;
    padding: 24rem 36rem;
    color: #FFFFFE;
    display: block;
    text-shadow: 0px 0px 20rem rgba(237, 28, 36, 0.8); }
    @media screen and (min-width: 768px), print {
      #toppage nav .project {
        text-shadow: 0px 0px 40rem rgba(237, 28, 36, 0.8);
        display: grid;
        grid-template-columns: 1fr 853rem;
        grid-gap: 48rem;
        align-items: center;
        padding: 16rem 16rem 16rem 56rem; }
        #toppage nav .project:hover figure span {
          border-top-left-radius: 64rem; }
        #toppage nav .project:hover img {
          transform: scale(1.05); } }
    #toppage nav .project figure {
      border-radius: 4rem;
      overflow: hidden;
      position: relative; }
      @media screen and (min-width: 768px), print {
        #toppage nav .project figure {
          border-radius: 8rem;
          background: #ED1C24; }
          #toppage nav .project figure span {
            overflow: hidden;
            transition: border-radius .5s;
            display: block; } }
    #toppage nav .project .label {
      right: 26rem; }
      @media screen and (min-width: 768px), print {
        #toppage nav .project .label {
          top: 26rem; } }
  #toppage nav .work {
    margin: 0 0 36rem; }
    @media screen and (max-width: 767.98px) {
      #toppage nav .work {
        aspect-ratio: 704/712; } }
    @media screen and (min-width: 768px), print {
      #toppage nav .work {
        margin-left: 554rem;
        background: #ED1C24; }
        #toppage nav .work:hover figure {
          border-top-left-radius: 64rem; }
        #toppage nav .work:hover img {
          transform: scale(1.05); } }
    #toppage nav .work .label {
      border-color: #004AFF;
      color: #004AFF; }
    #toppage nav .work figure::after {
      background: linear-gradient(-150deg, rgba(5, 40, 126, 0) 0%, #ed1c24 80%); }
    #toppage nav .work:hover figure::after {
      top: -200rem;
      right: -200rem;
      opacity: .6; }
  #toppage nav .people {
    overflow: visible;
    padding-bottom: 0;
    color: #060808;
    background: rgba(255, 255, 254, 0.9); }
    @media screen and (min-width: 768px), print {
      #toppage nav .people {
        background: none;
        padding: 0;
        margin: 0 -16rem;
        position: relative; }
        #toppage nav .people::before {
          content: "";
          display: block;
          height: 400rem;
          width: 670rem;
          border-radius: 0 8rem 8rem 0;
          position: absolute;
          top: 0;
          left: 0;
          z-index: 2;
          background: rgba(255, 255, 254, 0.5);
          mix-blend-mode: plus-lighter; } }
    @media screen and (min-width: 768px), print {
      #toppage nav .people .text {
        background: rgba(255, 255, 254, 0.2);
        backdrop-filter: blur(8rem);
        --webkit-backdrop-filter: blur(8rem);
        height: 400rem;
        width: 670rem;
        padding: 0 56rem;
        box-sizing: border-box;
        border-radius: 0 8rem 8rem;
        position: relative;
        z-index: 2;
        display: flex;
        flex-direction: column;
        justify-content: center; } }
    #toppage nav .people .icon-arrow {
      position: static;
      margin: 0 0 16rem auto;
      white-space: nowrap;
      width: auto;
      font-style: normal;
      font-size: 14rem;
      font-weight: bold;
      width: 110rem;
      grid-gap: 15rem;
      padding-left: 5rem;
      line-height: 1; }
    #toppage nav .people .photo {
      background: url("../images/top/people.webp") repeat-x top left/765rem auto; }
      @media screen and (max-width: 767.98px) {
        #toppage nav .people .photo {
          height: 177rem;
          margin: 0 -56rem 0;
          animation: slideBackgroundSp 40s linear infinite;
          transform: translateY(1rem); } }
      @media screen and (min-width: 768px), print {
        #toppage nav .people .photo {
          background-size: 1530rem auto;
          position: absolute;
          top: 16rem;
          left: 0;
          right: 0;
          margin: 0;
          transform: none;
          height: 354rem;
          animation: slideBackgroundPc 80s linear infinite; } }
  #toppage nav .ss4 {
    display: grid;
    grid-gap: 16rem; }
    @media screen and (min-width: 768px), print {
      #toppage nav .ss4 {
        grid-template-columns: repeat(2, 1fr); } }
    #toppage nav .ss4 a {
      border: 1rem solid #ED1C24;
      color: #060808;
      aspect-ratio: 704/480; }
      @media screen and (min-width: 768px), print {
        #toppage nav .ss4 a:hover figure {
          transform: scale(1.05); } }
      #toppage nav .ss4 a figure {
        transition: transform 0.5s cubic-bezier(0.17, 0.67, 0.49, 1);
        transform-origin: right bottom; }
      #toppage nav .ss4 a h2 {
        font-size: 16rem;
        margin-top: 4rem; }
      #toppage nav .ss4 a p {
        width: 50%; }
  #toppage nav .training figure {
    text-align: right; }
  #toppage nav .training img {
    width: 80%;
    object-fit: contain;
    object-position: right bottom; }
    @media screen and (min-width: 768px), print {
      #toppage nav .training img {
        width: 100%; } }
  #toppage .logo {
    margin: 32rem -40rem 0 -30rem; }
    @media screen and (min-width: 768px), print {
      #toppage .logo {
        margin: 64rem 50rem 0; } }

#content-bottom {
  overflow: hidden; }
  @media screen and (max-width: 767.98px) {
    #content-bottom {
      margin-bottom: -60rem; } }
  #content-bottom a {
    border-radius: 4rem;
    overflow: hidden;
    position: relative;
    display: block;
    color: #FFFFFE;
    padding: 20rem; }
    @media screen and (min-width: 768px), print {
      #content-bottom a {
        border-radius: 8rem;
        padding: 40rem; } }
    #content-bottom a figure {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      z-index: 1;
      overflow: hidden;
      transition: border-radius .5s; }
      #content-bottom a figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.5s cubic-bezier(0.17, 0.67, 0.49, 1); }
  @media screen and (max-width: 767.98px) {
    #content-bottom .environment figure {
      top: 40rem;
      left: 40rem;
      bottom: -10rem; }
    #content-bottom .training figure {
      right: -80rem;
      left: -90rem;
      top: -30rem; } }
  #content-bottom .logo {
    margin: 80rem  0 40rem;
    position: relative;
    display: table;
    aspect-ratio: 5/2; }
    @media screen and (min-width: 768px), print {
      #content-bottom .logo {
        margin: 80rem auto 0; } }
    @media screen and (min-width: 768px), print {
      #content-bottom .logo .title {
        width: 792rem; } }
    #content-bottom .logo .sand {
      position: absolute;
      top: 51%;
      left: 62%;
      width: 182rem; }
      @media screen and (min-width: 768px), print {
        #content-bottom .logo .sand {
          width: 420rem; } }
    #content-bottom .logo .people1 {
      position: absolute;
      top: 30%;
      left: 1%;
      width: 59rem; }
      @media screen and (min-width: 768px), print {
        #content-bottom .logo .people1 {
          width: 95rem;
          top: 30%;
          left: -2%; } }
    #content-bottom .logo .people2 {
      position: absolute;
      top: 70%;
      left: 36%;
      width: 28rem; }
      @media screen and (min-width: 768px), print {
        #content-bottom .logo .people2 {
          width: 44rem;
          top: 60%;
          left: 12%; } }
    #content-bottom .logo .anime > div {
      position: absolute; }
    #content-bottom .logo .anime .car1 {
      top: 50rem;
      right: -19rem;
      width: 82rem;
      z-index: 15; }
      @media screen and (min-width: 768px), print {
        #content-bottom .logo .anime .car1 {
          width: 212rem;
          top: 77rem;
          right: calc(50% - 510rem); } }
    #content-bottom .logo .anime .car2 {
      top: -70rem;
      left: 0rem;
      width: 75rem; }
      @media screen and (min-width: 768px), print {
        #content-bottom .logo .anime .car2 {
          width: 149rem;
          top: -30rem;
          left: calc(50% - 540rem); } }
  #content-bottom p {
    font-weight: bold;
    position: relative;
    z-index: 2;
    margin: 0; }
  #content-bottom .ss4 {
    display: grid;
    grid-gap: 16rem; }
    @media screen and (min-width: 768px), print {
      #content-bottom .ss4 {
        grid-template-columns: repeat(2, 1fr); } }
    #content-bottom .ss4 a {
      border: 1rem solid #ED1C24;
      color: #060808;
      aspect-ratio: 616/360; }
      @media screen and (min-width: 768px), print {
        #content-bottom .ss4 a:hover figure {
          transform: scale(1.05); } }
      #content-bottom .ss4 a figure {
        transition: transform 0.5s cubic-bezier(0.17, 0.67, 0.49, 1);
        transform-origin: right bottom; }
      #content-bottom .ss4 a h2 {
        font-size: 16rem;
        margin: 0 0 8rem; }
        @media screen and (min-width: 768px), print {
          #content-bottom .ss4 a h2 {
            font-size: 22rem;
            margin: 0 0 16rem; } }
  #content-bottom .training figure {
    text-align: right; }
  #content-bottom .training img {
    width: 80%;
    object-fit: contain;
    object-position: right bottom; }
    @media screen and (min-width: 768px), print {
      #content-bottom .training img {
        width: 100%; } }

@keyframes slideBackgroundSp {
  0% {
    background-position: 0% 0%; }
  100% {
    background-position: -765rem 0%; } }
@keyframes slideBackgroundPc {
  0% {
    background-position: 0% 0%; }
  100% {
    background-position: -1530rem 0%; } }
/*------------------------------------------*/
#pagetitle {
  background: linear-gradient(180deg, #FFFFFE 70%, rgba(220, 221, 222, 0.7) 100%);
  overflow: hidden; }
  #pagetitle .inner-narrow {
    position: relative; }
  #pagetitle .label {
    border-color: #004AFF;
    color: #004AFF; }
    @media screen and (min-width: 768px), print {
      #pagetitle .label {
        margin-top: 175rem; } }
  #pagetitle .text {
    position: relative;
    z-index: 5; }
  #pagetitle h1 {
    margin: 0rem 0 24rem; }
    @media screen and (min-width: 768px), print {
      #pagetitle h1 {
        margin: 180rem 0 200rem;
        padding: 50rem 0 0;
        height: 140rem; } }
    #pagetitle h1 .sub {
      font-size: 16rem;
      display: block; }
      @media screen and (min-width: 768px), print {
        #pagetitle h1 .sub {
          font-size: 22rem; } }
    #pagetitle h1 .main {
      font-size: 23rem;
      display: block;
      line-height: 1.2;
      margin-top: 0.3em; }
      @media screen and (min-width: 768px), print {
        #pagetitle h1 .main {
          font-size: 36rem; } }
  #pagetitle .photo {
    position: relative; }
    @media screen and (max-width: 767.98px) {
      #pagetitle .photo {
        aspect-ratio: 77/51;
        width: 100%;
        margin-bottom: -20rem; } }
    @media screen and (min-width: 768px), print {
      #pagetitle .photo {
        position: absolute;
        top: -70rem;
        right: 0;
        width: 1152rem; } }
    #pagetitle .photo .copy {
      position: absolute;
      width: 100%; }
      @media screen and (max-width: 767.98px) {
        #pagetitle .photo .copy {
          top: 0;
          left: 0;
          bottom: 50rem; } }
      @media screen and (min-width: 768px), print {
        #pagetitle .photo .copy {
          width: 1135rem;
          height: 430rem;
          top: -75rem;
          right: -100rem; } }
      #pagetitle .photo .copy img {
        display: block;
        width: calc(var(--imgwidth) / 2.6);
        opacity: 0;
        position: relative; }
        @media screen and (min-width: 768px), print {
          #pagetitle .photo .copy img {
            width: var(--imgwidth); } }
        #pagetitle .photo .copy img:nth-of-type(1) {
          transform: translateX(-10%);
          transition: opacity 2s,transform 2s;
          z-index: 1; }
        #pagetitle .photo .copy img:nth-of-type(2) {
          transform: translateX(10%);
          transition: opacity 2s 0.5s,transform 2s 0.5s;
          z-index: 3;
          position: absolute;
          bottom: 0;
          right: 0; }
          @media screen and (min-width: 768px), print {
            #pagetitle .photo .copy img:nth-of-type(2) {
              margin: 0; } }
    #pagetitle .photo figure {
      border-radius: 4rem;
      position: absolute;
      right: 0;
      top: 13%;
      z-index: 2;
      width: 80%;
      opacity: 0;
      transition: opacity 2s 1s;
      overflow: hidden; }
      @media screen and (min-width: 768px), print {
        #pagetitle .photo figure {
          width: 695rem;
          border-radius: 8rem; } }
    #pagetitle .photo .sub {
      position: absolute;
      z-index: 4;
      opacity: 0;
      transform: translateX(20%);
      transition: opacity 2s 1s,transform 2s 1s; }
      @media screen and (max-width: 767.98px) {
        #pagetitle .photo .sub {
          bottom: 0;
          right: 20rem;
          width: calc(var(--imgwidth) / 2); } }
      @media screen and (min-width: 768px), print {
        #pagetitle .photo .sub {
          width: var(--imgwidth);
          bottom: -390rem;
          right: 50rem; } }
  #pagetitle.is-show * {
    opacity: 1 !important;
    transform: none !important; }

ul.bread {
  margin: 16rem 0;
  padding: 0;
  display: flex;
  list-style: none;
  font-size: 10rem;
  font-weight: 700; }
  @media screen and (min-width: 768px), print {
    ul.bread {
      font-size: 12rem;
      margin: 0 0 24rem; } }
  ul.bread li {
    margin: 0;
    padding: 0; }
    ul.bread li::after {
      content: "─";
      display: inline-block;
      margin: 0 5rem; }
    ul.bread li:last-child::after {
      display: none; }
    ul.bread li:last-child a {
      color: #060808; }
  ul.bread a {
    color: #ED1C24; }

/*------------------------------------------*/
#lptitle-newgraduate {
  margin: -80rem 0 0;
  position: relative;
  color: #FFFFFE;
  aspect-ratio: 192/265; }
  @media screen and (min-width: 768px), print {
    #lptitle-newgraduate {
      aspect-ratio: 635/324;
      margin: -100rem 0 0; } }
  #lptitle-newgraduate .slideshow {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url("../images/newgraduate/kv_01_sp.webp") no-repeat center center/100% auto; }
    @media screen and (min-width: 768px), print {
      #lptitle-newgraduate .slideshow {
        background-image: url("../images/newgraduate/kv_01_pc.webp"); } }
    #lptitle-newgraduate .slideshow .slide {
      position: absolute;
      inset: 0;
      opacity: 0; }
      #lptitle-newgraduate .slideshow .slide img {
        width: 100%; }
  #lptitle-newgraduate .inner-narrow {
    position: relative;
    height: 100%;
    box-sizing: border-box;
    padding: 100rem 16rem 0; }
    @media screen and (min-width: 768px), print {
      #lptitle-newgraduate .inner-narrow {
        padding: 0;
        display: flex;
        align-items: center; } }
  @media screen and (min-width: 768px), print {
    #lptitle-newgraduate .label {
      margin-top: 175rem; } }
  #lptitle-newgraduate h1 {
    margin: 30rem 0 24rem; }
    @media screen and (min-width: 768px), print {
      #lptitle-newgraduate h1 {
        margin: 240rem 0 80rem; } }
    #lptitle-newgraduate h1 .sub {
      font-size: 16rem;
      display: block;
      margin: 0 0 8rem; }
      @media screen and (min-width: 768px), print {
        #lptitle-newgraduate h1 .sub {
          font-size: 22rem;
          margin-bottom: 16rem; } }
    #lptitle-newgraduate h1 .main {
      font-size: 23rem;
      display: block;
      line-height: 1.3; }
      @media screen and (min-width: 768px), print {
        #lptitle-newgraduate h1 .main {
          font-size: 36rem;
          line-height: 1.4; } }
      #lptitle-newgraduate h1 .main small {
        display: block;
        margin-top: 4rem;
        font-size: 13rem; }
        @media screen and (min-width: 768px), print {
          #lptitle-newgraduate h1 .main small {
            margin-top: 8rem;
            font-size: 22rem;
            line-height: 1.5; } }
  #lptitle-newgraduate a {
    color: #FFFFFE; }
  #lptitle-newgraduate .bread {
    position: absolute;
    bottom: 0;
    left: 16rem; }
    @media screen and (min-width: 768px), print {
      #lptitle-newgraduate .bread {
        left: 0; } }

/*------------------------------------------*/
@keyframes slide-bg_sp {
  0% {
    background-position: 0 0; }
  100% {
    background-position: -895rem 0; } }
@keyframes slide-bg_pc {
  0% {
    background-position: 0 0; }
  100% {
    background-position: -1819rem 0; } }
#lptitle-career {
  margin: -80rem 0 0;
  position: relative;
  background: #DCDDDE; }
  @media screen and (max-width: 767.98px) {
    #lptitle-career {
      aspect-ratio: 768/1060; } }
  @media screen and (min-width: 768px), print {
    #lptitle-career {
      margin: -100rem 0 0;
      height: 648rem; } }
  #lptitle-career .photo {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-gap: 4rem; }
    @media screen and (max-width: 767.98px) {
      #lptitle-career .photo {
        grid-template-rows: 1fr 278rem; } }
    @media screen and (min-width: 768px), print {
      #lptitle-career .photo {
        grid-template-columns: calc(50% - 200rem) 1fr;
        top: 84rem; } }
    #lptitle-career .photo::after {
      content: "";
      background: linear-gradient(rgba(255, 255, 254, 0) 0%, #004aff 100%);
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 124rem;
      opacity: .3; }
    #lptitle-career .photo .photo1 {
      display: flex;
      justify-content: flex-end;
      align-items: flex-end; }
      @media screen and (min-width: 768px), print {
        #lptitle-career .photo .photo1 {
          align-items: flex-start; } }
      #lptitle-career .photo .photo1 img {
        width: 115rem; }
        @media screen and (min-width: 768px), print {
          #lptitle-career .photo .photo1 img {
            width: 484rem; } }
    #lptitle-career .photo .photo2 {
      background: url("../images/career/kv2.webp") repeat-x 0 0/895rem;
      animation: slide-bg_sp 30s linear infinite; }
      @media screen and (min-width: 768px), print {
        #lptitle-career .photo .photo2 {
          background-size: 1819rem;
          animation: slide-bg_pc 60s linear infinite; } }
  #lptitle-career .inner-narrow {
    position: relative;
    height: 100%;
    box-sizing: border-box;
    padding: 100rem 16rem 0; }
    @media screen and (min-width: 768px), print {
      #lptitle-career .inner-narrow {
        padding: 0;
        display: flex;
        align-items: center; } }
  #lptitle-career .label {
    border-color: #004AFF;
    color: #004AFF; }
    @media screen and (min-width: 768px), print {
      #lptitle-career .label {
        margin-top: 175rem; } }
  #lptitle-career h1 {
    margin: 30rem 0 24rem; }
    @media screen and (min-width: 768px), print {
      #lptitle-career h1 {
        margin: 150rem 0 0; } }
    #lptitle-career h1 .sub {
      font-size: 16rem;
      display: block;
      margin: 0 0 8rem; }
      @media screen and (min-width: 768px), print {
        #lptitle-career h1 .sub {
          font-size: 22rem;
          margin-bottom: 16rem; } }
    #lptitle-career h1 .main {
      font-size: 23rem;
      display: block;
      line-height: 1.3; }
      @media screen and (min-width: 768px), print {
        #lptitle-career h1 .main {
          font-size: 36rem;
          line-height: 1.4; } }
      #lptitle-career h1 .main small {
        display: block;
        margin-top: 4rem;
        font-size: 13rem; }
        @media screen and (min-width: 768px), print {
          #lptitle-career h1 .main small {
            margin-top: 8rem;
            font-size: 22rem;
            line-height: 1.5; } }
  #lptitle-career a {
    color: #FFFFFE; }
  #lptitle-career .bread {
    position: absolute;
    bottom: 0;
    left: 16rem; }
    @media screen and (min-width: 768px), print {
      #lptitle-career .bread {
        left: 0; } }

/*------------------------------------------*/
#lptitle-highschool {
  margin: -80rem 0 0;
  overflow: hidden;
  background: url("../images/highschool/grid.webp") repeat center top/20rem #ED1C24;
  color: #FFFFFE;
  height: 700rem; }
  @media screen and (min-width: 768px), print {
    #lptitle-highschool {
      margin: -100rem 0 0;
      height: 1130rem;
      background-size: 39rem; } }
  #lptitle-highschool .inner-narrow {
    position: relative; }
  #lptitle-highschool a {
    color: #FFFFFE; }
  #lptitle-highschool .label {
    color: #004AFF;
    border-color: #004AFF; }
  #lptitle-highschool .copy {
    font-weight: 900;
    line-height: 1.2;
    font-size: 26rem;
    white-space: nowrap; }
    @media screen and (min-width: 768px), print {
      #lptitle-highschool .copy {
        position: absolute;
        top: 180rem;
        left: 40%;
        font-size: 50rem; } }
  #lptitle-highschool .text {
    padding-top: 80rem; }
    @media screen and (min-width: 768px), print {
      #lptitle-highschool .text {
        padding-top: 180rem; } }
    #lptitle-highschool .text h1 {
      margin: 20rem 0 20rem; }
      @media screen and (min-width: 768px), print {
        #lptitle-highschool .text h1 {
          margin: 50rem 0 80rem; } }
  #lptitle-highschool .photos.pcOnly .photo {
    position: absolute; }
    #lptitle-highschool .photos.pcOnly .photo:nth-of-type(1) {
      top: 250rem;
      left: -50rem; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(1) .car {
        width: 481rem; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(1) .kv-slideshow {
        aspect-ratio: 156/150;
        top: 45%;
        left: 29%;
        width: 31.18%; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(1) .person {
        width: 165rem;
        top: 49%;
        left: 13%; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(1) .fukidashi {
        top: 73%;
        left: 42%; }
    #lptitle-highschool .photos.pcOnly .photo:nth-of-type(2) {
      top: 340rem;
      left: 340rem; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(2) .car {
        width: 471rem; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(2) .kv-slideshow {
        aspect-ratio: 95/106;
        top: 2.1%;
        left: 61%;
        width: 20.17647%; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(2) .person {
        width: 300rem;
        top: 53%;
        left: 2%; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(2) .fukidashi._bl {
        top: 170%;
        left: 16%; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(2) .fukidashi._gr {
        top: 131%;
        left: 50%; }
    #lptitle-highschool .photos.pcOnly .photo:nth-of-type(3) {
      top: 190rem;
      left: 780rem; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(3) .car {
        width: 379rem; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(3) .kv-slideshow {
        aspect-ratio: 114/128;
        top: 60.6%;
        left: 44%;
        width: 30.18%; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(3) .person {
        width: 123rem;
        top: 58%;
        left: 21%; }
      #lptitle-highschool .photos.pcOnly .photo:nth-of-type(3) .fukidashi {
        top: 78%;
        left: -8%;
        border-radius: 500rem 0 500rem 500rem; }
  #lptitle-highschool .photos.pcOnly .car svg {
    fill: #FFFFFE;
    width: 100%;
    opacity: .3; }
  #lptitle-highschool .photos.pcOnly .kv-slideshow {
    position: absolute; }
    #lptitle-highschool .photos.pcOnly .kv-slideshow .slide {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0; }
  #lptitle-highschool .photos.pcOnly .person {
    position: absolute; }
  #lptitle-highschool .photos.pcOnly .fukidashi {
    position: absolute;
    font-size: 16rem;
    font-weight: bold;
    will-change: transform;
    backface-visibility: hidden; }
  #lptitle-highschool .photos.spOnly .photo {
    position: absolute;
    opacity: 0; }
    #lptitle-highschool .photos.spOnly .photo:nth-of-type(1) {
      top: 230rem;
      left: 100rem; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(1) .car {
        width: 300rem; }
        #lptitle-highschool .photos.spOnly .photo:nth-of-type(1) .car .window {
          aspect-ratio: 156/150;
          top: 45%;
          left: 29%;
          width: 31.18%; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(1) .person {
        width: 150rem;
        top: 18%;
        left: -29%; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(1) .fukidashi {
        top: 81%;
        left: -5%; }
    #lptitle-highschool .photos.spOnly .photo:nth-of-type(2) {
      top: 300rem;
      left: 50rem; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(2) .car {
        width: 320rem; }
        #lptitle-highschool .photos.spOnly .photo:nth-of-type(2) .car .window {
          aspect-ratio: 95/106;
          top: 2.1%;
          left: 61%;
          width: 20.17647%; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(2) .person {
        width: 205rem;
        top: 0%;
        left: -10%; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(2) .fukidashi._bl {
        top: 160%;
        left: 6%; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(2) .fukidashi._gr {
        top: 105%;
        left: 36%; }
    #lptitle-highschool .photos.spOnly .photo:nth-of-type(3) {
      top: 70rem;
      left: 110rem; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(3) .car {
        width: 270rem; }
        #lptitle-highschool .photos.spOnly .photo:nth-of-type(3) .car .window {
          aspect-ratio: 114/128;
          top: 60.6%;
          left: 44%;
          width: 30.18%; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(3) .person {
        width: 110rem;
        top: 54%;
        left: 14%; }
      #lptitle-highschool .photos.spOnly .photo:nth-of-type(3) .fukidashi {
        top: 85%;
        left: -25%;
        border-radius: 500rem 0 500rem 500rem; }
  #lptitle-highschool .photos.spOnly .car {
    position: relative; }
    #lptitle-highschool .photos.spOnly .car .window {
      position: absolute; }
  #lptitle-highschool .photos.spOnly .person {
    position: absolute; }
  #lptitle-highschool .photos.spOnly .fukidashi {
    position: absolute;
    font-size: 13rem;
    font-weight: bold; }
  #lptitle-highschool + #contents {
    padding-top: 0;
    margin-top: -60rem; }
    @media screen and (min-width: 768px), print {
      #lptitle-highschool + #contents {
        margin-top: -200rem; } }
    #lptitle-highschool + #contents #float-index-wrap {
      position: relative; }
      #lptitle-highschool + #contents #float-index-wrap::before {
        content: "";
        position: absolute;
        top: -60rem;
        left: 0;
        right: 0;
        bottom: 0;
        background: #FFFFFE;
        border-radius: 0 60rem 0 0; }
        @media screen and (min-width: 768px), print {
          #lptitle-highschool + #contents #float-index-wrap::before {
            border-radius: 0 200rem 0 0;
            top: -80rem; } }
    #lptitle-highschool + #contents #float-contents {
      position: relative; }

/*------------------------------------------*/
.interview-profile {
  font-weight: bold;
  position: relative;
  border-bottom: 1rem solid #DCDDDE;
  margin: 0 0 10rem;
  padding: 0 0 4rem; }
  .interview-profile::after {
    content: "";
    width: 40rem;
    height: 3rem;
    background: #ED1C24;
    display: block;
    position: absolute;
    bottom: -1rem;
    left: 0;
    transform: translateY(50%); }
    @media screen and (min-width: 768px), print {
      .interview-profile::after {
        width: 56rem; } }
  .interview-profile .position {
    font-size: 16rem; }
    @media screen and (min-width: 768px), print {
      .interview-profile .position {
        font-size: 22rem; } }
  .interview-profile .name {
    font-size: 10rem; }
    @media screen and (min-width: 768px), print {
      .interview-profile .name {
        font-size: 14rem; } }
  .interview-profile .icon-cross {
    position: absolute;
    bottom: 5rem;
    right: 0; }
    @media screen and (min-width: 768px), print {
      .interview-profile .icon-cross {
        bottom: 10rem; } }

ul.interview-list {
  margin: 0;
  padding: 0;
  display: grid;
  grid-gap: 16rem;
  list-style: none; }
  @media screen and (min-width: 768px), print {
    ul.interview-list {
      grid-gap: 16rem;
      grid-template-columns: repeat(2, 1fr); } }
  ul.interview-list li {
    margin: 0;
    padding: 20rem 20rem 20rem 60rem;
    position: relative;
    cursor: pointer;
    border: 1px solid #ED1C24;
    border-radius: 4rem; }
    @media screen and (min-width: 768px), print {
      ul.interview-list li {
        padding: 40rem 40rem 40rem 128rem; }
        ul.interview-list li:hover figure img {
          transform: scale(1.05); } }
    ul.interview-list li.blank {
      pointer-events: none;
      border: none;
      padding: 0;
      display: flex;
      justify-content: center;
      align-items: flex-end; }
      @media screen and (min-width: 768px), print {
        ul.interview-list li.blank {
          padding-bottom: 50rem; } }
      ul.interview-list li.blank img {
        width: 55%; }
  ul.interview-list .label {
    position: absolute;
    top: 20rem;
    left: 20rem;
    border-color: #004AFF;
    color: #004AFF; }
    @media screen and (min-width: 768px), print {
      ul.interview-list .label {
        font-size: 12rem;
        top: 40rem;
        left: 40rem; } }
  ul.interview-list h3 {
    font-size: 16rem;
    margin: 0 0 16rem; }
    @media screen and (min-width: 768px), print {
      ul.interview-list h3 {
        font-size: 22rem;
        margin: -3rem 0 16rem -40rem; } }
  ul.interview-list figure {
    border-radius: 4rem;
    overflow: hidden; }
    ul.interview-list figure img {
      transition: transform 0.5s cubic-bezier(0.17, 0.67, 0.49, 1); }

@media screen and (min-width: 768px), print {
  #interview ul.interview-list {
    margin-top: 64rem; } }
#interview [data-modal] {
  transition: background .5s; }
  @media screen and (min-width: 768px), print {
    #interview [data-modal]:hover {
      background: #DCDDDE; } }

/*------------------------------------------*/
#modal article.interview {
  background: #DCDDDE;
  padding: 20rem;
  border-radius: 4rem;
  max-width: 1090rem;
  margin: 0 auto;
  position: relative; }
  @media screen and (min-width: 768px), print {
    #modal article.interview {
      border-radius: 8rem;
      padding: 40rem 48rem; } }
  #modal article.interview .label {
    border-color: #004AFF;
    color: #004AFF; }
  #modal article.interview h2 {
    font-size: 23rem; }
    @media screen and (min-width: 768px), print {
      #modal article.interview h2 {
        margin-right: 50%;
        font-size: 36rem;
        min-height: 172rem; } }
  #modal article.interview .interview-profile {
    border-bottom-color: #FFFFFE; }
  @media screen and (min-width: 768px), print {
    #modal article.interview .mainphoto {
      position: absolute;
      right: 0;
      top: 73rem;
      width: 40%; } }
  #modal article.interview .mainphoto img {
    border-radius: 4rem; }
    @media screen and (min-width: 768px), print {
      #modal article.interview .mainphoto img {
        border-radius: 8rem 0 0 8rem; } }
  #modal article.interview .highschool-mainphoto {
    position: relative; }
    @media screen and (min-width: 768px), print {
      #modal article.interview .highschool-mainphoto {
        position: absolute;
        right: 0;
        top: 73rem;
        width: 50%; } }
    #modal article.interview .highschool-mainphoto img {
      height: 206rem;
      object-fit: cover;
      object-position: top center; }
      @media screen and (min-width: 768px), print {
        #modal article.interview .highschool-mainphoto img {
          height: 310rem; } }
    #modal article.interview .highschool-mainphoto .fukidashi {
      position: absolute;
      top: 60%;
      left: 45%;
      transform: translateY(-50%); }
  #modal article.interview ul.timeline {
    margin: 32rem 0;
    padding: 0;
    list-style: none;
    color: #ED1C24;
    display: grid;
    grid-gap: 40rem; }
    @media screen and (min-width: 768px), print {
      #modal article.interview ul.timeline {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        justify-content: center;
        align-items: flex-start;
        overflow: hidden;
        grid-gap: 0;
        margin: 64rem 0; }
        #modal article.interview ul.timeline._2col {
          grid-template-columns: repeat(2, 1fr);
          margin: 64rem auto;
          width: 66%; }
        #modal article.interview ul.timeline._1col {
          grid-template-columns: repeat(1, 1fr);
          margin: 64rem auto;
          width: 33%; } }
    #modal article.interview ul.timeline li {
      margin: 0;
      padding: 0;
      display: grid;
      grid-template-columns: 90rem 1fr;
      align-items: center;
      position: relative;
      grid-gap: 20rem; }
      @media screen and (min-width: 768px), print {
        #modal article.interview ul.timeline li {
          grid-template-columns: 144rem 1fr;
          grid-gap: 20rem;
          align-items: flex-start;
          padding-right: 20rem; } }
      #modal article.interview ul.timeline li::after {
        content: "";
        width: 1px;
        height: 40rem;
        position: absolute;
        bottom: 0;
        left: 45rem;
        transform: translateY(100%);
        background: #ED1C24; }
        @media screen and (min-width: 768px), print {
          #modal article.interview ul.timeline li::after {
            display: none; } }
      @media screen and (min-width: 768px), print {
        #modal article.interview ul.timeline li:last-child {
          padding-right: 0; } }
      #modal article.interview ul.timeline li:last-child::after {
        display: none; }
        @media screen and (min-width: 768px), print {
          #modal article.interview ul.timeline li:last-child::after {
            display: block;
            width: 100vw;
            height: 1px;
            left: 0;
            top: 72rem;
            transform: translateX(-100%); } }
    #modal article.interview ul.timeline .year {
      border: 1px solid #ED1C24;
      border-radius: 100rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      width: 90rem;
      aspect-ratio: 1;
      line-height: 1.6;
      font-size: 10rem;
      font-family: "Overpass", sans-serif;
      background: #DCDDDE;
      position: relative;
      z-index: 2; }
      @media screen and (min-width: 768px), print {
        #modal article.interview ul.timeline .year {
          font-size: 12rem;
          width: 144rem; } }
    @media screen and (min-width: 768px), print {
      #modal article.interview ul.timeline .text {
        position: relative;
        padding-top: 80rem; } }
    #modal article.interview ul.timeline h4 {
      font-weight: 700;
      margin: 0 0 5rem;
      font-size: 10rem; }
      @media screen and (min-width: 768px), print {
        #modal article.interview ul.timeline h4 {
          font-size: 14rem;
          position: absolute;
          top: 0;
          height: 69rem;
          display: flex;
          align-items: flex-end; } }
    #modal article.interview ul.timeline p {
      margin: 0;
      font-size: 10rem;
      line-height: 1.4; }
      @media screen and (min-width: 768px), print {
        #modal article.interview ul.timeline p {
          font-size: 14rem; } }
  #modal article.interview ul.interview {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-gap: 32rem; }
    @media screen and (min-width: 768px), print {
      #modal article.interview ul.interview {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 64rem 40rem; } }
    #modal article.interview ul.interview li {
      margin: 0;
      padding: 0; }
    #modal article.interview ul.interview h3 {
      margin: 0;
      font-size: 16rem; }
      @media screen and (min-width: 768px), print {
        #modal article.interview ul.interview h3 {
          font-size: 22rem; } }
    #modal article.interview ul.interview p {
      margin: 10rem 0 0; }
      @media screen and (min-width: 768px), print {
        #modal article.interview ul.interview p {
          margin: 16rem 0 0; } }
  #modal article.interview .message {
    margin: 40rem 0 0; }
    @media screen and (min-width: 768px), print {
      #modal article.interview .message {
        margin: 80rem 0 0; } }
    #modal article.interview .message h3 {
      font-size: 23rem;
      margin: 0 0 10rem; }
    #modal article.interview .message figure {
      border-radius: 4rem 4rem 0 0;
      background: #343D52;
      position: relative;
      text-align: center;
      overflow: hidden; }
      #modal article.interview .message figure img {
        position: relative;
        z-index: 2; }
        @media screen and (min-width: 768px), print {
          #modal article.interview .message figure img {
            max-width: 563rem; } }
        #modal article.interview .message figure img:first-child {
          display: none; }
          @media screen and (min-width: 768px), print {
            #modal article.interview .message figure img:first-child {
              display: block;
              position: absolute;
              top: 0;
              left: 0;
              object-fit: cover;
              filter: blur(10rem);
              opacity: .5;
              max-width: 100%;
              width: 100%;
              height: 100%; } }
    #modal article.interview .message .text {
      background: #FFFFFE;
      border-radius: 0 0 4rem 4rem;
      padding: 20rem; }
    #modal article.interview .message h4 {
      font-size: 16rem;
      margin: 0; }
      @media screen and (min-width: 768px), print {
        #modal article.interview .message h4 {
          font-size: 22rem; } }
    #modal article.interview .message p {
      margin: 10rem 0 0; }
  #modal article.interview .highschool-message {
    margin: 40rem 0 0; }
    @media screen and (min-width: 768px), print {
      #modal article.interview .highschool-message {
        margin: 80rem 0 0; } }
    #modal article.interview .highschool-message h3 {
      font-size: 23rem;
      margin: 0 0 10rem; }
    #modal article.interview .highschool-message figure {
      position: relative;
      text-align: center;
      overflow: hidden;
      margin: 0 -20rem; }
      @media screen and (min-width: 768px), print {
        #modal article.interview .highschool-message figure {
          margin: 0; } }
      @media screen and (max-width: 767.98px) {
        #modal article.interview .highschool-message figure img {
          height: 180rem;
          object-fit: cover; } }
    #modal article.interview .highschool-message .text {
      background: #FFFFFE;
      padding: 20rem;
      border-radius: 0 40rem 40rem 40rem; }
      @media screen and (min-width: 768px), print {
        #modal article.interview .highschool-message .text {
          padding: 32rem 100rem;
          border-radius: 0 500rem 500rem 500rem; } }
    #modal article.interview .highschool-message h4 {
      font-size: 16rem;
      margin: 0; }
      @media screen and (min-width: 768px), print {
        #modal article.interview .highschool-message h4 {
          font-size: 22rem; } }
    #modal article.interview .highschool-message p {
      margin: 10rem 0 0; }
#modal article.day {
  background: #DCDDDE;
  padding: 20rem;
  border-radius: 4rem;
  max-width: 1090rem;
  margin: 0 auto;
  position: relative; }
  @media screen and (min-width: 768px), print {
    #modal article.day {
      border-radius: 8rem;
      padding: 40rem 48rem;
      display: grid;
      grid-template-columns: 1fr 1fr; }
      #modal article.day::before {
        content: "";
        display: block;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 50%;
        height: calc(100% - 250rem);
        background: linear-gradient(90deg, #bcbec0 0%, #e50d0b 100%);
        border-bottom-left-radius: 8rem; } }
  #modal article.day .label {
    border-color: #004AFF;
    color: #004AFF; }
  #modal article.day h2 {
    font-size: 23rem; }
    @media screen and (min-width: 768px), print {
      #modal article.day h2 {
        font-size: 36rem; } }
  #modal article.day .title figure {
    position: relative;
    color: #FFFFFE;
    margin: 0 -20rem 48rem;
    padding: 0 20rem 32rem; }
    @media screen and (min-width: 768px), print {
      #modal article.day .title figure {
        margin: 0 0 0 -48rem;
        padding: 0;
        position: sticky;
        top: -30rem; } }
    @media screen and (max-width: 767.98px) {
      #modal article.day .title figure::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(90deg, #bcbec0 0%, #e50d0b 100%); } }
    #modal article.day .title figure img {
      position: relative;
      display: block;
      margin: 0 auto; }
      @media screen and (max-width: 767.98px) {
        #modal article.day .title figure img {
          width: 90%; } }
    #modal article.day .title figure figcaption {
      position: relative;
      font-weight: 700;
      border-bottom: 1px solid #DCDDDE;
      padding: 48rem 0 0; }
      @media screen and (min-width: 768px), print {
        #modal article.day .title figure figcaption {
          padding: 32rem 0 0;
          margin: 0 100rem; } }
      #modal article.day .title figure figcaption::after {
        content: "";
        background: #FFFFFE;
        width: 40rem;
        height: 3rem;
        transform: translateY(2px);
        display: block; }
        @media screen and (min-width: 768px), print {
          #modal article.day .title figure figcaption::after {
            width: 56rem; } }
      #modal article.day .title figure figcaption .en {
        font-size: 32rem;
        font-weight: 900;
        font-family: "Overpass", sans-serif;
        line-height: 1;
        position: absolute;
        top: -48rem;
        left: 30rem; }
        @media screen and (min-width: 768px), print {
          #modal article.day .title figure figcaption .en {
            font-size: 64rem;
            top: -108rem;
            left: -80rem;
            white-space: nowrap; } }
      #modal article.day .title figure figcaption .position {
        font-size: 16rem; }
        @media screen and (min-width: 768px), print {
          #modal article.day .title figure figcaption .position {
            font-size: 22rem; } }
      #modal article.day .title figure figcaption .name {
        font-size: 10rem;
        margin: 8rem 0; }
        @media screen and (min-width: 768px), print {
          #modal article.day .title figure figcaption .name {
            font-size: 14rem; } }
      #modal article.day .title figure figcaption .profile {
        font-size: 10rem;
        margin: 8rem 0; }
        @media screen and (min-width: 768px), print {
          #modal article.day .title figure figcaption .profile {
            font-size: 14rem; } }
  @media screen and (max-width: 767.98px) {
    #modal article.day .timetable {
      overflow: hidden; } }
  #modal article.day .timetable .time {
    position: relative; }
    @media screen and (max-width: 767.98px) {
      #modal article.day .timetable .time {
        padding: 0 0 0 100rem; }
        #modal article.day .timetable .time:last-child::before {
          content: "";
          width: 1px;
          height: 5000rem;
          position: absolute;
          bottom: 100%;
          left: 42rem;
          background: #ED1C24; } }
    @media screen and (min-width: 768px), print {
      #modal article.day .timetable .time {
        padding: 0 0 0 88rem; } }
    #modal article.day .timetable .time .hm {
      width: 84rem;
      aspect-ratio: 1;
      box-sizing: border-box;
      border: 1px solid #ED1C24;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ED1C24;
      font-family: "Overpass", sans-serif;
      font-size: 10rem;
      font-weight: 900;
      border-radius: 100rem;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 2;
      background: #DCDDDE; }
      @media screen and (min-width: 768px), print {
        #modal article.day .timetable .time .hm {
          font-size: 12rem;
          width: 144rem;
          left: -72rem; } }
    #modal article.day .timetable .time .text {
      padding: 30rem 0 0; }
      @media screen and (min-width: 768px), print {
        #modal article.day .timetable .time .text {
          padding: 53rem 0 48rem; } }
      #modal article.day .timetable .time .text h3 {
        font-size: 16rem;
        display: grid;
        grid-template-columns: 16rem 1fr;
        grid-gap: 4rem;
        align-items: center;
        font-weight: bold;
        margin: 0; }
        @media screen and (min-width: 768px), print {
          #modal article.day .timetable .time .text h3 {
            font-size: 22rem; } }
      #modal article.day .timetable .time .text p {
        margin: 1em 0; }
      #modal article.day .timetable .time .text figure {
        margin: 1em 0; }
#modal .sibling-link {
  border-radius: 4rem;
  border: 1px solid #FFFFFE;
  background: #414042;
  max-width: 1090rem;
  margin: 16rem auto 0;
  padding: 20rem; }
  @media screen and (min-width: 768px), print {
    #modal .sibling-link {
      padding: 40rem;
      border-radius: 8rem; } }
  #modal .sibling-link ul.interview-list {
    grid-gap: 0; }
    @media screen and (min-width: 768px), print {
      #modal .sibling-link ul.interview-list {
        grid-gap: 40rem;
        margin: 32rem 0 0; } }
    #modal .sibling-link ul.interview-list li {
      border: none;
      padding: 24rem 0 0 50rem;
      color: #FFFFFE !important; }
      @media screen and (min-width: 768px), print {
        #modal .sibling-link ul.interview-list li {
          padding: 0; } }
    #modal .sibling-link ul.interview-list .label {
      left: 0;
      top: 24rem;
      color: #FFFFFE;
      border-color: #FFFFFE; }
      @media screen and (min-width: 768px), print {
        #modal .sibling-link ul.interview-list .label {
          position: static; } }
    @media screen and (min-width: 768px), print {
      #modal .sibling-link ul.interview-list h3 {
        margin: 0; } }
    #modal .sibling-link ul.interview-list figure {
      margin: 0 0 0 auto; }
      @media screen and (min-width: 768px), print {
        #modal .sibling-link ul.interview-list figure {
          width: 60%; } }
      #modal .sibling-link ul.interview-list figure.highschool {
        width: 100%;
        position: relative; }
        @media screen and (min-width: 768px), print {
          #modal .sibling-link ul.interview-list figure.highschool {
            width: 80%; } }
        #modal .sibling-link ul.interview-list figure.highschool img {
          object-fit: cover;
          object-position: top center;
          height: 150rem;
          aspect-ratio: 12/10; }
          @media screen and (min-width: 768px), print {
            #modal .sibling-link ul.interview-list figure.highschool img {
              height: 230rem; } }
        #modal .sibling-link ul.interview-list figure.highschool .fukidashi {
          position: absolute;
          bottom: 15%;
          left: 30%; }
          @media screen and (min-width: 768px), print {
            #modal .sibling-link ul.interview-list figure.highschool .fukidashi {
              bottom: 20%;
              left: 45%; } }
  #modal .sibling-link .back {
    margin: 24rem -20rem 0;
    border-top: 1px solid #FFFFFE;
    border-bottom: 1px solid #FFFFFE;
    font-size: 16rem;
    font-weight: 700;
    padding: 10rem;
    text-align: center;
    color: #FFFFFE;
    cursor: pointer;
    text-decoration-line: underline;
    text-decoration-color: transparent;
    text-decoration-style: dotted;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.8em;
    transition: text-decoration-color 0.3s, text-underline-offset 0.3s; }
    #modal .sibling-link .back:hover {
      text-decoration-color: #ED1C24;
      text-underline-offset: 0.5em; }
    @media screen and (min-width: 768px), print {
      #modal .sibling-link .back {
        margin: 48rem -40rem 0;
        font-size: 22rem;
        padding: 32rem; } }

/*------------------------------------------*/
#float-index-wrap {
  position: relative; }
  @media screen and (min-width: 768px), print {
    #float-index-wrap {
      width: 1280rem;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 950rem 1fr;
      align-items: stretch; }
      #float-index-wrap #float-index {
        order: 2;
        position: relative; }
        #float-index-wrap #float-index nav {
          position: sticky;
          top: 120rem;
          right: 0;
          width: 180rem;
          margin: 0 67rem 100rem auto;
          z-index: 10; }
      #float-index-wrap .inner {
        width: 932rem;
        margin: 0 0 0 auto; }
      #float-index-wrap .inner-narrow {
        width: 853rem;
        margin: 0 0 0 auto; } }
  #float-index-wrap section {
    margin: 0 0 64rem; }
    @media screen and (min-width: 768px), print {
      #float-index-wrap section {
        margin: 0 0 100rem; } }

@media screen and (max-width: 767.98px) {
  #sp-index,
  #float-index {
    padding: 0 16rem 48rem; }
    #sp-index nav,
    #float-index nav {
      border: 1px solid #ED1C24;
      border-radius: 4rem;
      padding: 16rem;
      filter: drop-shadow(0rem 1rem 4rem rgba(0, 0, 0, 0.12)); } }
#sp-index .entry,
#float-index .entry {
  background: #ED1C24;
  color: #FFFFFE;
  filter: drop-shadow(0rem 1rem 4rem rgba(0, 0, 0, 0.12));
  border-radius: 4rem;
  display: inline-grid;
  grid-template-columns: 1fr 40rem;
  align-items: center;
  padding: 0 0 0 16rem;
  font-weight: 700;
  font-size: 10rem;
  margin: 0 0 4rem; }
  @media screen and (min-width: 768px), print {
    #sp-index .entry,
    #float-index .entry {
      filter: drop-shadow(0rem 2rem 8rem rgba(0, 0, 0, 0.12));
      border: 1px solid #FFFFFE;
      font-size: 14rem;
      margin: 0 -57rem 8rem 0;
      transition: background .5s , color .5s; }
      #sp-index .entry:hover,
      #float-index .entry:hover {
        background: #FFFFFE;
        color: #ED1C24;
        border-color: #ED1C24; } }
  #sp-index .entry .icon-arrow,
  #float-index .entry .icon-arrow {
    border: none;
    background: none; }
  #sp-index .entry span,
  #float-index .entry span {
    display: block;
    transform: translateY(1rem);
    line-height: 1.2; }
  #sp-index .entry b,
  #float-index .entry b {
    font-size: 14rem; }
    @media screen and (min-width: 768px), print {
      #sp-index .entry b,
      #float-index .entry b {
        font-size: 18rem; } }
@media screen and (min-width: 768px), print {
  #sp-index .is-overlapping,
  #float-index .is-overlapping {
    color: #FFFFFE; }
    #sp-index .is-overlapping::after,
    #float-index .is-overlapping::after {
      background: #FFFFFE; }
    #sp-index .is-overlapping .icon-car svg,
    #float-index .is-overlapping .icon-car svg {
      fill: #FFFFFE; }
    #sp-index .is-overlapping a,
    #float-index .is-overlapping a {
      color: #FFFFFE; }
      #sp-index .is-overlapping a::before,
      #float-index .is-overlapping a::before {
        background: #FFFFFE; }
      #sp-index .is-overlapping a em,
      #float-index .is-overlapping a em {
        color: #FFFFFE; } }
#sp-index h2,
#float-index h2 {
  border-bottom: 1px solid #DCDDDE;
  font-size: 14rem;
  margin: 16rem 0;
  padding: 0 0 8rem;
  position: relative; }
  @media screen and (min-width: 768px), print {
    #sp-index h2,
    #float-index h2 {
      margin: 16rem -67rem 24rem 0; } }
  #sp-index h2::after,
  #float-index h2::after {
    content: "";
    display: block;
    width: 56rem;
    height: 3px;
    transform: translateY(calc(50% + 8rem + 0.5px));
    background: #ED1C24; }
  #sp-index h2 .icon-car svg,
  #float-index h2 .icon-car svg {
    position: absolute;
    bottom: 0;
    right: 10rem;
    fill: #ED1C24;
    width: 38rem;
    height: 23rem; }
#sp-index ul,
#float-index ul {
  margin: 0;
  padding: 0;
  list-style: none;
  white-space: nowrap; }
  #sp-index ul li,
  #float-index ul li {
    margin: 0 0 8rem;
    padding: 0;
    line-height: 1.3; }
    @media screen and (min-width: 768px), print {
      #sp-index ul li,
      #float-index ul li {
        margin: 0 0 16rem; } }
    #sp-index ul li:has(em) a > span,
    #float-index ul li:has(em) a > span {
      display: block;
      padding-left: 1.5em;
      text-indent: -1.5em; }
    #sp-index ul li.sub,
    #float-index ul li.sub {
      padding-left: 1.5em; }
  #sp-index ul a,
  #float-index ul a {
    display: grid;
    grid-template-columns: 0 1fr;
    grid-gap: 0;
    align-items: flex-start;
    transition: all 0s,grid-template-columns .5s,grid-gap .5s; }
    #sp-index ul a:before,
    #float-index ul a:before {
      content: "";
      display: block;
      color: #ED1C24;
      width: 100%;
      height: 1rem;
      background: #ED1C24;
      transform: translateY(8rem); }
      @media screen and (min-width: 768px), print {
        #sp-index ul a:before,
        #float-index ul a:before {
          transform: translateY(9rem); } }
    #sp-index ul a.active,
    #float-index ul a.active {
      grid-template-columns: 10rem 1fr;
      grid-gap: 8rem; }
    #sp-index ul a em,
    #float-index ul a em {
      font-weight: 900;
      color: #ED1C24;
      margin-right: 0.5em;
      text-indent: 0;
      padding: 0; }
      #sp-index ul a em.hide,
      #float-index ul a em.hide {
        opacity: 0;
        pointer-events: none; }

#sp-index {
  position: fixed;
  bottom: 0;
  right: 0rem;
  padding: 0;
  z-index: 100; }
  #sp-index nav {
    background: #FFFFFE;
    padding: 4rem; }
  #sp-index .entry {
    display: grid; }
  #sp-index #scroll-navi-sp {
    padding: 8rem; }
  #sp-index #sp-index-acc {
    display: none; }
  #sp-index #sp-index-btn {
    display: flex;
    align-items: center;
    grid-gap: 16rem;
    font-weight: bold;
    padding: 0 0 0 8rem;
    justify-content: flex-end; }
    #sp-index #sp-index-btn.open svg {
      transform: rotate(45deg); }

.scroll-navi-tour {
  width: 100%;
  height: 92rem;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #ED1C24;
  border-radius: 4rem;
  border: 1px solid #FFFFFE;
  margin: 24rem 0 16rem; }
  @media screen and (min-width: 768px), print {
    .scroll-navi-tour {
      height: 96rem;
      width: 208rem;
      border-radius: 6rem; } }
  .scroll-navi-tour img {
    width: 130rem; }
  .scroll-navi-tour i {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    border: none;
    background: none; }
    .scroll-navi-tour i svg {
      fill: #fff; }
  @media screen and (min-width: 768px), print {
    .scroll-navi-tour:hover i {
      background: none; }
      .scroll-navi-tour:hover i svg {
        fill: #fff; } }

.scroll-navi-tour-cs {
  display: block;
  width: 150rem; }
  #sp-index .scroll-navi-tour-cs {
    margin: 0 0 10rem; }
  @media screen and (min-width: 768px), print {
    .scroll-navi-tour-cs {
      width: 208rem; } }
  .scroll-navi-tour-cs img {
    width: 100%; }

#newgrad-lead {
  font-weight: bold;
  font-size: 16rem; }
  @media screen and (min-width: 768px), print {
    #newgrad-lead {
      font-size: 21rem; } }

#day .interview-list li {
  padding-left: 40rem; }
  #day .interview-list li h3 {
    margin-left: 50rem; }

#internship {
  position: relative;
  padding: 0 0 40rem 0; }
  @media screen and (min-width: 768px), print {
    #internship {
      padding: 0 0 100rem 0; } }
  #internship::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(-90deg, #ebecec 50%, #e50d0b 150%);
    border-radius: 4rem; }
    @media screen and (min-width: 768px), print {
      #internship::before {
        right: -330rem;
        border-radius: 8rem; } }
  #internship > * {
    position: relative; }
  #internship .title {
    margin: 0 0 32rem;
    overflow: hidden;
    border-radius: 4rem 4rem 0 0;
    background: #343D52;
    height: 175rem;
    color: #FFFFFE; }
    @media screen and (min-width: 768px), print {
      #internship .title {
        margin: 0 -330rem 64rem 0;
        border-radius: 8rem 8rem 0 0;
        height: 352rem; } }
    #internship .title .photo {
      position: absolute;
      text-align: center;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
      #internship .title .photo img {
        width: 774rem;
        height: 100%;
        position: relative;
        object-fit: cover; }
      #internship .title .photo img.pcOnly {
        width: 100%;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        filter: blur(12rem);
        opacity: .5; }
    #internship .title .inner-narrow {
      margin: 0 auto;
      position: relative;
      width: 1090rem;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start; }
    #internship .title h2 {
      margin-bottom: 0;
      position: relative; }
      #internship .title h2 i {
        position: absolute;
        font-size: 80rem;
        font-family: "Overpass", sans-serif;
        top: 50%;
        left: 0;
        color: rgba(255, 226, 227, 0.5);
        font-style: normal;
        line-height: 1;
        transform: translate(-15rem, -40%); }
        @media screen and (min-width: 768px), print {
          #internship .title h2 i {
            font-size: 160rem;
            transform: translate(-100rem, -64%); } }
      #internship .title h2 span {
        position: relative; }
  #internship .courses {
    display: grid;
    grid-gap: 8rem; }
    #internship .courses .course {
      overflow: hidden;
      border-radius: 4rem;
      background: #FFFFFE;
      color: #060808;
      box-shadow: 0rem 1rem 4rem rgba(0, 0, 0, 0.12); }
    #internship .courses .course-title {
      padding: 16rem;
      margin: 0;
      display: grid;
      align-items: center;
      font-size: 14rem;
      line-height: 1.4;
      cursor: pointer;
      font-weight: 900;
      grid-template-columns: 80rem 1fr 40rem; }
      @media screen and (min-width: 768px), print {
        #internship .courses .course-title {
          padding: 16rem 16rem 16rem 40rem;
          font-size: 18rem;
          grid-template-columns: 120rem 1fr 48rem; }
          #internship .courses .course-title:hover .icon-arrow {
            background: #FFFFFE;
            color: #ED1C24 !important; }
            #internship .courses .course-title:hover .icon-arrow svg {
              fill: #ED1C24; } }
      #internship .courses .course-title em {
        font-size: 10rem;
        color: #ED1C24;
        font-weight: 700; }
        @media screen and (min-width: 768px), print {
          #internship .courses .course-title em {
            font-size: 14rem; } }
      #internship .courses .course-title .icon-arrow {
        transform: rotate(90deg);
        grid-row: 1/3;
        grid-column: 3/4; }
      #internship .courses .course-title .ttl {
        grid-column: 1/3;
        font-size: 18rem;
        margin: 0.3em 1em 0 0; }
        @media screen and (min-width: 768px), print {
          #internship .courses .course-title .ttl {
            font-size: 24rem; } }
      #internship .courses .course-title.open .icon-arrow {
        transform: rotate(-90deg); }
    #internship .courses .course-detail {
      padding: 0 16rem 16rem;
      display: none; }
      @media screen and (min-width: 768px), print {
        #internship .courses .course-detail {
          padding: 0 40rem 40rem; } }
      #internship .courses .course-detail h5 {
        margin: 0 0 32rem;
        font-size: 23rem; }
        @media screen and (min-width: 768px), print {
          #internship .courses .course-detail h5 {
            font-size: 36rem; } }
      #internship .courses .course-detail dl {
        margin: 8rem 0 0;
        font-size: 12rem; }
        @media screen and (min-width: 768px), print {
          #internship .courses .course-detail dl {
            font-size: 14rem;
            display: grid;
            grid-template-columns: 1fr 1fr;
            grid-gap: 24rem;
            margin: 32rem 0 0; } }
        #internship .courses .course-detail dl > div {
          border-bottom: 1px solid #DCDDDE;
          padding: 14rem 0 12rem;
          display: grid;
          grid-template-columns: 64rem 1fr;
          grid-gap: 16rem;
          position: relative; }
          @media screen and (min-width: 768px), print {
            #internship .courses .course-detail dl > div {
              grid-template-columns: 118rem 1fr;
              padding: 0 0 10rem; }
              #internship .courses .course-detail dl > div.wide {
                grid-column: 1/3;
                display: block;
                border: none;
                padding: 0; }
                #internship .courses .course-detail dl > div.wide dt {
                  border-bottom: 1px solid #DCDDDE;
                  position: relative;
                  padding: 10rem 0 10rem;
                  margin: 0 0 14rem; }
                  #internship .courses .course-detail dl > div.wide dt::after {
                    width: 260rem; }
                #internship .courses .course-detail dl > div.wide dd {
                  min-height: 1px; } }
          #internship .courses .course-detail dl > div dt {
            margin: 0;
            padding: 0;
            font-weight: 700;
            line-height: 1.7; }
            #internship .courses .course-detail dl > div dt::after {
              content: "";
              position: absolute;
              left: 0;
              bottom: 0;
              display: block;
              width: 64rem;
              height: 3px;
              transform: translateY(calc(50% + 0.5px));
              background: #ED1C24; }
              @media screen and (min-width: 768px), print {
                #internship .courses .course-detail dl > div dt::after {
                  width: 118rem; } }
          #internship .courses .course-detail dl > div dd {
            margin: 0;
            padding: 0;
            line-height: 1.7; }
            @media screen and (min-width: 768px), print {
              #internship .courses .course-detail dl > div dd {
                min-height: 2.8em; } }
    #internship .courses .indent {
      text-indent: -1em;
      padding-left: 1em; }
  #internship .entry {
    background: #414042;
    padding: 16rem;
    border: 1px solid #FFFFFE;
    border-radius: 4rem;
    margin: 16rem 0 0;
    color: #FFFFFE;
    filter: drop-shadow(0rem 1rem 4rem rgba(0, 0, 0, 0.12)); }
    @media screen and (min-width: 768px), print {
      #internship .entry {
        border-radius: 8rem;
        padding: 40rem; } }
    #internship .entry a {
      width: 100%;
      height: 92rem;
      position: relative;
      font-size: 18rem;
      font-weight: bold;
      display: flex;
      justify-content: center;
      align-items: center;
      color: #FFFFFE;
      background: #ED1C24;
      border-radius: 4rem;
      border: 1px solid #FFFFFE;
      margin: 24rem 0 16rem; }
      @media screen and (min-width: 768px), print {
        #internship .entry a {
          font-size: 22rem;
          height: 136rem; } }
      #internship .entry a .en {
        font-family: "Overpass", sans-serif;
        font-size: 32rem;
        opacity: .3;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -43%);
        width: 100%;
        line-height: 1;
        text-align: center; }
        @media screen and (min-width: 768px), print {
          #internship .entry a .en {
            font-size: 64rem; } }
      #internship .entry a .ja {
        position: relative; }
      #internship .entry a i {
        position: absolute;
        top: 50%;
        right: 16rem;
        transform: translateY(-50%);
        border: none;
        background: none; }
      @media screen and (min-width: 768px), print {
        #internship .entry a:hover {
          background: #FFFFFE;
          color: #ED1C24; }
          #internship .entry a:hover .icon-arrow svg {
            fill: #ED1C24; } }
    #internship .entry p {
      text-align: center;
      font-size: 10rem;
      margin: 0; }
      @media screen and (min-width: 768px), print {
        #internship .entry p {
          font-size: 14rem; } }

/*------------------------------------------*/
.gray-bg {
  position: relative;
  margin: 0 0 64rem;
  padding: 0 0 1rem; }
  @media screen and (min-width: 768px), print {
    .gray-bg {
      padding: 80rem 0 1rem;
      margin: 0 0 80rem; } }
  .gray-bg::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #DCDDDE;
    border-radius: 4rem; }
    @media screen and (min-width: 768px), print {
      .gray-bg::before {
        right: -330rem;
        border-radius: 8rem; } }
  .gray-bg > * {
    position: relative; }

#contract-employment .photo,
#disability-employment .photo {
  position: relative;
  text-align: center;
  overflow: hidden; }
  @media screen and (min-width: 768px), print {
    #contract-employment .photo,
    #disability-employment .photo {
      border-radius: 0 8rem 8rem 0;
      margin: 0 -80rem 0 0; } }
  #contract-employment .photo img,
  #disability-employment .photo img {
    width: 774rem;
    height: 100%;
    position: relative;
    object-fit: cover; }
  #contract-employment .photo img.pcOnly,
  #disability-employment .photo img.pcOnly {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    filter: blur(12rem);
    opacity: .5; }

@media screen and (max-width: 767.98px) {
  #contract-employment {
    padding-top: 32rem; } }

/*------------------------------------------*/
/*------------------------------------------*/
#career-lead {
  font-weight: bold;
  font-size: 16rem; }
  @media screen and (min-width: 768px), print {
    #career-lead {
      font-size: 21rem;
      white-space: nowrap; } }

/*------------------------------------------*/
#job-openings {
  position: relative;
  padding: 40rem 0 1px; }
  @media screen and (min-width: 768px), print {
    #job-openings {
      padding: 60rem 0 1px; } }
  #job-openings::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(-90deg, #ebecec 50%, #e50d0b 150%);
    border-radius: 4rem; }
    @media screen and (min-width: 768px), print {
      #job-openings::before {
        right: -330rem;
        border-radius: 8rem; } }
  #job-openings > * {
    position: relative; }
  #job-openings .sort {
    background: #DCDDDE;
    border-radius: 4rem;
    padding: 16rem;
    margin: 32rem 0; }
    @media screen and (min-width: 768px), print {
      #job-openings .sort {
        border-radius: 8rem;
        padding: 32rem; } }
    #job-openings .sort h3 {
      margin: 0 0 10rem; }
    #job-openings .sort ul {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      margin: 0;
      padding: 0;
      list-style: none;
      grid-gap: 24rem; }
      #job-openings .sort ul li {
        margin: 0;
        padding: 0 0 0 38rem;
        background: url(../images/career/select.svg) no-repeat left center/28rem;
        font-size: 10rem;
        line-height: 28rem; }
        @media screen and (min-width: 768px), print {
          #job-openings .sort ul li {
            padding: 0 0 0 42rem;
            background-size: 32rem;
            line-height: 32rem; } }
        #job-openings .sort ul li.active {
          background-image: url("../images/career/selected.svg"); }
  #job-openings .job-list {
    display: grid;
    grid-gap: 8rem; }
    #job-openings .job-list .job {
      overflow: hidden;
      border-radius: 4rem;
      background: #FFFFFE;
      color: #060808;
      box-shadow: 0rem 1rem 4rem rgba(0, 0, 0, 0.12); }
    #job-openings .job-list .job-title {
      padding: 16rem;
      margin: 0;
      display: grid;
      align-items: center;
      font-size: 16rem;
      line-height: 1.4;
      cursor: pointer;
      font-weight: 900;
      grid-template-columns: auto 1fr 40rem;
      grid-gap: 16rem; }
      @media screen and (min-width: 768px), print {
        #job-openings .job-list .job-title {
          padding: 16rem 16rem 16rem 40rem;
          font-size: 22rem;
          grid-template-columns: auto 1fr 48rem; } }
      #job-openings .job-list .job-title em {
        font-size: 10rem;
        color: #ED1C24;
        font-weight: 700; }
        @media screen and (min-width: 768px), print {
          #job-openings .job-list .job-title em {
            font-size: 14rem; } }
      #job-openings .job-list .job-title .icon-arrow {
        transform: rotate(90deg); }
      #job-openings .job-list .job-title.open .icon-arrow {
        transform: rotate(-90deg); }
    #job-openings .job-list .job-detail {
      padding: 0 16rem 16rem;
      display: none; }
      @media screen and (min-width: 768px), print {
        #job-openings .job-list .job-detail {
          padding: 0 40rem 40rem; } }
      #job-openings .job-list .job-detail .common-dl {
        margin-top: 0; }

/*------------------------------------------*/
#faq {
  position: relative;
  z-index: 4; }
  #faq dl {
    margin: 0;
    padding: 0;
    display: grid;
    grid-gap: 8rem; }
    #faq dl > div {
      border: 1px solid #ED1C24;
      border-radius: 4rem;
      box-shadow: 0rem 1rem 4rem rgba(0, 0, 0, 0.12); }
    #faq dl dt {
      padding: 16rem;
      margin: 0;
      display: grid;
      align-items: center;
      font-size: 16rem;
      line-height: 1.4;
      cursor: pointer;
      font-weight: bold;
      grid-template-columns: 24rem 1fr 40rem; }
      @media screen and (min-width: 768px), print {
        #faq dl dt {
          font-size: 22rem;
          grid-template-columns: 40rem 1fr 48rem;
          padding: 16rem 16rem 16rem 40rem; }
          #faq dl dt:hover .icon-arrow {
            background: #FFFFFE;
            color: #ED1C24 !important; }
            #faq dl dt:hover .icon-arrow svg {
              fill: #ED1C24; } }
      #faq dl dt em {
        font-size: 10rem;
        color: #ED1C24; }
        @media screen and (min-width: 768px), print {
          #faq dl dt em {
            font-size: 14rem; } }
      #faq dl dt span {
        display: block;
        padding-right: 8rem; }
      #faq dl dt .icon-arrow {
        transform: rotate(90deg); }
      #faq dl dt.open .icon-arrow {
        transform: rotate(-90deg); }
    #faq dl dd {
      padding: 16rem;
      margin: 0;
      display: none; }
      @media screen and (min-width: 768px), print {
        #faq dl dd {
          font-size: 14rem;
          padding: 16rem 40rem 40rem 40rem; } }
      #faq dl dd p:first-child {
        margin-top: 0; }
      #faq dl dd p:last-child {
        margin-bottom: 0; }
      #faq dl dd .photos {
        margin: 20rem 0 0;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        grid-gap: 10rem; }
        #faq dl dd .photos > div {
          width: 70%; }
          @media screen and (min-width: 768px), print {
            #faq dl dd .photos > div {
              width: calc((100% - 20rem ) / 3 ); } }

/*------------------------------------------*/
#highschool-lead {
  position: relative;
  margin: 0 !important;
  padding: 0 0 120rem; }
  @media screen and (min-width: 768px), print {
    #highschool-lead {
      margin: 0 !important;
      padding: 0rem 0 280rem; } }
  #highschool-lead .frame {
    position: relative;
    padding: 16rem;
    font-weight: bold; }
    @media screen and (min-width: 768px), print {
      #highschool-lead .frame {
        padding: 32rem; } }
    #highschool-lead .frame .frame-inner {
      border: 1px solid rgba(237, 28, 36, 0.4);
      padding: 16rem;
      font-size: 16rem; }
      @media screen and (min-width: 768px), print {
        #highschool-lead .frame .frame-inner {
          font-size: 22rem;
          padding: 48rem; }
          #highschool-lead .frame .frame-inner p {
            display: table;
            margin: 0 auto; } }
    #highschool-lead .frame .kakko {
      position: absolute;
      width: 110rem;
      height: 110rem;
      display: block; }
      #highschool-lead .frame .kakko::before, #highschool-lead .frame .kakko::after {
        content: "";
        position: absolute;
        background: #ED1C24;
        display: block; }
      #highschool-lead .frame .kakko::before {
        width: 100%;
        height: 1px;
        top: 8rem;
        left: 0; }
        @media screen and (min-width: 768px), print {
          #highschool-lead .frame .kakko::before {
            top: 16rem; } }
      #highschool-lead .frame .kakko::after {
        height: 100%;
        width: 1px;
        left: 8rem;
        top: 0; }
        @media screen and (min-width: 768px), print {
          #highschool-lead .frame .kakko::after {
            left: 16rem; } }
      #highschool-lead .frame .kakko:nth-of-type(1) {
        top: 0;
        left: 0; }
      #highschool-lead .frame .kakko:nth-of-type(2) {
        bottom: 0;
        right: 0;
        transform: rotate(180deg); }

/*------------------------------------------*/
#highschool-look {
  position: relative;
  margin: -60rem 0 0 !important;
  padding: 50rem 0 120rem;
  overflow: hidden; }
  @media screen and (min-width: 768px), print {
    #highschool-look {
      margin: -200rem 0 0 !important;
      padding: 80rem 0 320rem;
      overflow: visible; } }
  #highschool-look::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #FFE2E3;
    border-radius: 0 60rem 0 0; }
    @media screen and (min-width: 768px), print {
      #highschool-look::before {
        border-radius: 0 200rem 0 0;
        right: -330rem; } }
  #highschool-look::after {
    content: "01";
    font-size: 80rem;
    font-family: "Overpass", sans-serif;
    font-weight: 900;
    position: absolute;
    top: 24rem;
    left: 3rem;
    color: rgba(255, 255, 254, 0.5);
    line-height: 1; }
    @media screen and (min-width: 768px), print {
      #highschool-look::after {
        font-size: 160rem;
        top: 40rem;
        left: 16rem; } }
  #highschool-look > * {
    position: relative;
    z-index: 3; }
  #highschool-look h2 {
    margin-top: 0; }
  #highschool-look .bg,
  #highschool-look .bg2 {
    position: absolute;
    top: 260rem;
    left: -45rem;
    height: 800rem;
    width: 570rem;
    z-index: 2;
    overflow: hidden; }
    @media screen and (min-width: 768px), print {
      #highschool-look .bg,
      #highschool-look .bg2 {
        height: 1519rem;
        width: 1075rem;
        top: 0;
        left: 0; } }
    #highschool-look .bg svg,
    #highschool-look .bg2 svg {
      width: 100%;
      height: 100%;
      fill: #ED1C24; }
      @media screen and (min-width: 768px), print {
        #highschool-look .bg svg,
        #highschool-look .bg2 svg {
          transform: translateY(-30rem); } }
  #highschool-look .bg2 {
    transform: translate(-120rem, calc(100% + 310rem)) scaleX(-1); }
  #highschool-look ul.look-list {
    margin: 0;
    padding: 0;
    list-style: none; }
    @media screen and (min-width: 768px), print {
      #highschool-look ul.look-list {
        position: relative;
        height: 1100rem; } }
    #highschool-look ul.look-list li {
      margin: 0;
      padding: 5rem;
      border-radius: 500rem;
      aspect-ratio: 1;
      position: relative;
      transform: scale(0.9);
      transition: transform 1s;
      text-align: center;
      cursor: pointer;
      filter: drop-shadow(0rem 2rem 8rem rgba(0, 0, 0, 0.12)); }
      @media screen and (min-width: 768px), print {
        #highschool-look ul.look-list li {
          position: absolute;
          padding: 8rem; } }
      #highschool-look ul.look-list li::after {
        background: url("../images/highschool/zoom.svg") no-repeat center center/contain;
        width: 80rem;
        display: block;
        aspect-ratio: 104/98;
        position: absolute;
        top: 5%;
        right: 5%;
        opacity: 0;
        transition: opacity .5s; }
        @media screen and (min-width: 768px), print {
          #highschool-look ul.look-list li::after {
            width: 104rem; } }
      #highschool-look ul.look-list li:nth-of-type(1) {
        background: #FF8DEC; }
        @media screen and (min-width: 768px), print {
          #highschool-look ul.look-list li:nth-of-type(1) {
            width: 400rem;
            top: 50rem;
            left: 90rem; } }
        #highschool-look ul.look-list li:nth-of-type(1) .anime {
          transform: scaleX(-1); }
        #highschool-look ul.look-list li:nth-of-type(1) .default h3 {
          background: #FF8DEC; }
      #highschool-look ul.look-list li:nth-of-type(2) {
        background: #B8C736; }
        @media screen and (min-width: 768px), print {
          #highschool-look ul.look-list li:nth-of-type(2) {
            width: 350rem;
            top: 0rem;
            left: 510rem; } }
        #highschool-look ul.look-list li:nth-of-type(2) .default h3 {
          background: #B8C736; }
      #highschool-look ul.look-list li:nth-of-type(3) {
        background: #36C7BC; }
        @media screen and (min-width: 768px), print {
          #highschool-look ul.look-list li:nth-of-type(3) {
            width: 430rem;
            top: 360rem;
            left: 390rem; } }
        #highschool-look ul.look-list li:nth-of-type(3) .anime {
          transform: rotate(80deg); }
        #highschool-look ul.look-list li:nth-of-type(3) .default h3 {
          background: #36C7BC; }
      #highschool-look ul.look-list li:nth-of-type(4) {
        background: #9F8DFF; }
        @media screen and (min-width: 768px), print {
          #highschool-look ul.look-list li:nth-of-type(4) {
            width: 350rem;
            top: 450rem;
            left: 0rem; } }
        #highschool-look ul.look-list li:nth-of-type(4) .default h3 {
          background: #9F8DFF; }
      #highschool-look ul.look-list li:nth-of-type(5) {
        background: #B8C736; }
        @media screen and (min-width: 768px), print {
          #highschool-look ul.look-list li:nth-of-type(5) {
            width: 350rem;
            top: 750rem;
            left: 210rem; } }
        #highschool-look ul.look-list li:nth-of-type(5) .anime {
          transform: rotate(280deg); }
        #highschool-look ul.look-list li:nth-of-type(5) .default h3 {
          background: #B8C736; }
      #highschool-look ul.look-list li.active {
        transform: scale(1); }
        #highschool-look ul.look-list li.active::after,
        #highschool-look ul.look-list li.active .hover {
          opacity: 1; }
      #highschool-look ul.look-list li .anime {
        position: absolute;
        top: -11%;
        left: -11%;
        right: -11%;
        bottom: -11%; }
        #highschool-look ul.look-list li .anime svg {
          fill: #ED1C24; }
      #highschool-look ul.look-list li .circle-inner {
        filter: drop-shadow(0rem 2rem 8rem rgba(0, 0, 0, 0.12));
        position: relative;
        width: 100%;
        height: 100%;
        overflow: hidden;
        border-radius: 500rem; }
      #highschool-look ul.look-list li .icon-cross {
        position: absolute;
        bottom: 20rem;
        left: 50%;
        transform: translateX(-50%); }
      #highschool-look ul.look-list li .default,
      #highschool-look ul.look-list li .hover {
        background: #FFFFFE;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        display: flex;
        justify-content: center;
        align-items: center; }
      #highschool-look ul.look-list li .default figure {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        opacity: .24; }
        #highschool-look ul.look-list li .default figure img {
          width: 100%;
          height: 100%;
          object-fit: cover; }
      #highschool-look ul.look-list li .default h3 {
        position: relative;
        z-index: 2;
        font-size: 40rem;
        color: #fff;
        border-radius: 100rem;
        padding: 0 20rem; }
      #highschool-look ul.look-list li .hover {
        opacity: 0;
        transition: opacity 1s;
        z-index: 3;
        flex-direction: column;
        grid-gap: 10rem; }
        #highschool-look ul.look-list li .hover figure {
          width: 125rem;
          overflow: hidden;
          border-radius: 500rem; }
          @media screen and (min-width: 768px), print {
            #highschool-look ul.look-list li .hover figure {
              width: 144rem; } }
          #highschool-look ul.look-list li .hover figure.noround {
            border-radius: 0;
            width: 140rem; }
            @media screen and (min-width: 768px), print {
              #highschool-look ul.look-list li .hover figure.noround {
                width: 170rem; } }
        #highschool-look ul.look-list li .hover h3, #highschool-look ul.look-list li .hover p {
          margin: 0;
          line-height: 1.4; }
        #highschool-look ul.look-list li .hover h3 {
          font-size: 18rem; }
        #highschool-look ul.look-list li .hover p {
          font-size: 14rem; }
          @media screen and (min-width: 768px), print {
            #highschool-look ul.look-list li .hover p {
              font-size: 14rem; } }
        #highschool-look ul.look-list li .hover .close {
          color: #ED1C24; }

/*------------------------------------------*/
@keyframes slideBackgroundSp2 {
  0% {
    background-position: 0% 0%; }
  100% {
    background-position: -855rem 0%; } }
@keyframes slideBackgroundPc2 {
  0% {
    background-position: 0% 0%; }
  100% {
    background-position: -1141rem 0%; } }
#highschool-interview {
  position: relative;
  z-index: 2;
  margin: -60rem 0 0 !important;
  padding: 50rem 0 120rem; }
  @media screen and (min-width: 768px), print {
    #highschool-interview {
      margin: -200rem 0 0 !important;
      padding: 80rem 0 280rem; } }
  #highschool-interview::before {
    content: "";
    position: absolute;
    top: 0rem;
    left: 0;
    right: 0;
    bottom: 0;
    background: #DCDDDE;
    border-radius: 0 60rem 0 0; }
    @media screen and (min-width: 768px), print {
      #highschool-interview::before {
        border-radius: 0 200rem 0 0;
        right: -330rem; } }
  #highschool-interview::after {
    content: "02";
    font-size: 80rem;
    font-family: "Overpass", sans-serif;
    font-weight: 900;
    position: absolute;
    top: 24rem;
    left: 3rem;
    color: rgba(255, 255, 254, 0.5);
    line-height: 1; }
    @media screen and (min-width: 768px), print {
      #highschool-interview::after {
        font-size: 160rem;
        top: 40rem;
        left: 16rem; } }
  #highschool-interview > * {
    position: relative;
    z-index: 2; }
  #highschool-interview h2 {
    margin-top: 0; }
  #highschool-interview ul.interview-list2 {
    margin: 0;
    padding: 0;
    display: grid;
    grid-gap: 16rem;
    list-style: none; }
    @media screen and (min-width: 768px), print {
      #highschool-interview ul.interview-list2 {
        grid-gap: 16rem;
        grid-template-columns: repeat(2, 1fr); } }
    #highschool-interview ul.interview-list2 li {
      margin: 0;
      padding: 20rem 20rem 100rem 150rem;
      position: relative;
      cursor: pointer;
      background: #FFFFFE;
      border-radius: 40rem;
      overflow: hidden; }
      @media screen and (min-width: 768px), print {
        #highschool-interview ul.interview-list2 li {
          padding: 40rem 40rem 140rem 230rem;
          overflow: hidden; }
          #highschool-interview ul.interview-list2 li:hover figure img {
            transform: scale(1.05); } }
      #highschool-interview ul.interview-list2 li.all {
        padding: 20rem;
        background: #414042;
        color: #FFFFFE;
        cursor: auto; }
        #highschool-interview ul.interview-list2 li.all h3 {
          margin: 0; }
          @media screen and (min-width: 768px), print {
            #highschool-interview ul.interview-list2 li.all h3 {
              margin: 50rem 0; } }
        #highschool-interview ul.interview-list2 li.all a .icon-arrow {
          position: static;
          margin: 0 0 16rem auto;
          white-space: nowrap;
          width: auto;
          font-style: normal;
          font-size: 14rem;
          font-weight: bold;
          width: 110rem;
          grid-gap: 15rem;
          padding-left: 5rem;
          line-height: 1; }
        #highschool-interview ul.interview-list2 li.all .photo {
          background: url("../images/top/people.webp") repeat-x top left/855rem auto;
          opacity: .5; }
          @media screen and (max-width: 767.98px) {
            #highschool-interview ul.interview-list2 li.all .photo {
              height: 165rem;
              margin: 0 -20rem 0;
              animation: slideBackgroundSp2 40s linear infinite;
              transform: translateY(1rem); } }
          @media screen and (min-width: 768px), print {
            #highschool-interview ul.interview-list2 li.all .photo {
              background-size: 1141rem auto;
              height: 220rem;
              margin: 0 -40rem;
              animation: slideBackgroundPc2 80s linear infinite; } }
    #highschool-interview ul.interview-list2 .label {
      position: absolute;
      top: 20rem;
      left: 20rem;
      border-color: #004AFF;
      color: #004AFF; }
      @media screen and (min-width: 768px), print {
        #highschool-interview ul.interview-list2 .label {
          font-size: 12rem;
          top: 40rem;
          left: 40rem; } }
    #highschool-interview ul.interview-list2 h3 {
      font-size: 16rem;
      margin: -3rem 0 16rem -80rem; }
      @media screen and (min-width: 768px), print {
        #highschool-interview ul.interview-list2 h3 {
          font-size: 22rem;
          margin: -3rem 0 68rem -140rem; } }
    #highschool-interview ul.interview-list2 .interview-profile {
      border: none;
      position: relative;
      z-index: 2; }
      #highschool-interview ul.interview-list2 .interview-profile::after {
        display: none; }
      #highschool-interview ul.interview-list2 .interview-profile .position {
        line-height: 1.5; }
    #highschool-interview ul.interview-list2 .icon-cross {
      position: absolute;
      bottom: 24rem;
      right: 24rem; }
    #highschool-interview ul.interview-list2 figure {
      border-radius: 4rem;
      overflow: hidden;
      position: absolute;
      bottom: -20rem;
      left: -40rem;
      width: 260rem;
      height: 260rem; }
      @media screen and (min-width: 768px), print {
        #highschool-interview ul.interview-list2 figure {
          bottom: -70rem;
          left: -80rem;
          width: 430rem;
          height: 430rem; } }
      #highschool-interview ul.interview-list2 figure img {
        transition: transform 0.5s cubic-bezier(0.17, 0.67, 0.49, 1);
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        object-position: top center; }

.fukidashi {
  border-radius: 0 100rem 100rem 100rem;
  padding: 8rem 16rem;
  line-height: 1.4;
  color: #FFFFFE;
  position: relative;
  z-index: 2;
  display: table;
  font-size: 12rem; }
  @media screen and (min-width: 768px), print {
    .fukidashi {
      font-size: 13rem; } }
  .fukidashi._pk {
    background: #FF8DEC; }
  .fukidashi._gr {
    background: #B8C736; }
  .fukidashi._bl {
    background: #36C7BC; }
  .fukidashi._pp {
    background: #9F8DFF; }

/*------------------------------------------*/
#highschool-recommend {
  position: relative;
  z-index: 2;
  margin: -60rem 0 0 !important;
  padding: 50rem 0 80rem;
  color: #FFFFFE; }
  @media screen and (min-width: 768px), print {
    #highschool-recommend {
      margin: -200rem 0 0 !important;
      padding: 80rem 0 210rem; } }
  #highschool-recommend::before {
    content: "";
    position: absolute;
    top: 0rem;
    left: 0;
    right: 0;
    bottom: -60rem;
    background: url("../images/highschool/grid.webp") repeat center top/20rem #ED1C24;
    border-radius: 0 60rem 0 0; }
    @media screen and (min-width: 768px), print {
      #highschool-recommend::before {
        background-size: 39rem;
        border-radius: 0 200rem 0 0;
        right: -330rem;
        bottom: -200rem; } }
  #highschool-recommend::after {
    content: "03";
    font-size: 80rem;
    font-family: "Overpass", sans-serif;
    font-weight: 900;
    position: absolute;
    top: 24rem;
    left: 3rem;
    color: rgba(255, 255, 254, 0.3);
    line-height: 1; }
    @media screen and (min-width: 768px), print {
      #highschool-recommend::after {
        font-size: 160rem;
        top: 40rem;
        left: 16rem; } }
  #highschool-recommend > * {
    position: relative;
    z-index: 2; }
  #highschool-recommend h2 {
    margin: 0; }
    #highschool-recommend h2::after {
      background: #FFFFFE; }
  @media screen and (max-width: 767.98px) {
    #highschool-recommend .comment .scrollable {
      padding-top: 10rem; } }
  #highschool-recommend .comment ul {
    position: relative;
    width: 750rem;
    aspect-ratio: 2 /1;
    margin: 0;
    padding: 0;
    background: url("../images/highschool/comment_bg.svg") no-repeat center 12%/contain;
    list-style: none; }
    @media screen and (min-width: 768px), print {
      #highschool-recommend .comment ul {
        width: 1000rem;
        padding: 0; } }
    #highschool-recommend .comment ul li {
      margin: 0;
      padding: 0 2em;
      position: absolute;
      display: flex;
      justify-content: center;
      align-items: center;
      border-radius: 1000rem;
      color: #FFFFFE;
      line-height: 1.4;
      overflow: hidden;
      will-change: transform; }
      #highschool-recommend .comment ul li:nth-of-type(1) {
        top: 6%;
        left: 8%; }
      #highschool-recommend .comment ul li:nth-of-type(2) {
        top: 69%;
        left: 46%; }
      #highschool-recommend .comment ul li:nth-of-type(3) {
        top: 0%;
        left: 66%;
        z-index: 2; }
      #highschool-recommend .comment ul li:nth-of-type(4) {
        top: 33%;
        left: 17%; }
      #highschool-recommend .comment ul li:nth-of-type(5) {
        top: 69%;
        left: 22%; }
      #highschool-recommend .comment ul li:nth-of-type(6) {
        top: 27%;
        left: 48%; }
      #highschool-recommend .comment ul li:nth-of-type(7) {
        top: 57%;
        left: 8%; }
      #highschool-recommend .comment ul li:nth-of-type(8) {
        top: 50%;
        left: 41%; }
      #highschool-recommend .comment ul li:nth-of-type(9) {
        top: 42%;
        left: 75%; }
      #highschool-recommend .comment ul li._large {
        width: 46.4%;
        aspect-ratio: 464/152; }
      #highschool-recommend .comment ul li._medium1 {
        width: 26.4%;
        aspect-ratio: 264/152; }
      #highschool-recommend .comment ul li._medium2 {
        width: 30.4%;
        aspect-ratio: 304/128; }
      #highschool-recommend .comment ul li._small {
        width: 19.2%;
        aspect-ratio: 192/104; }
      #highschool-recommend .comment ul li._yl {
        background: #B8C736; }
      #highschool-recommend .comment ul li._pk {
        background: #FF8DEC; }
      #highschool-recommend .comment ul li._gr {
        background: #36C7BC; }
      #highschool-recommend .comment ul li._bl {
        background: #9F8DFF; }
  #highschool-recommend .photo {
    position: absolute;
    bottom: -100rem;
    left: 0;
    right: 0;
    pointer-events: none;
    overflow: hidden; }
    @media screen and (min-width: 768px), print {
      #highschool-recommend .photo {
        bottom: -230rem; } }
    #highschool-recommend .photo img {
      margin: 0 0 0 -20rem;
      max-width: calc(100% + 40rem); }
      @media screen and (min-width: 768px), print {
        #highschool-recommend .photo img {
          margin: 0 0 0 -18rem;
          max-width: calc(100% + 100rem); } }

/*------------------------------------------*/
#requirements.highschool {
  position: relative;
  z-index: 3;
  margin: 0 !important;
  padding: 60rem 0; }
  @media screen and (min-width: 768px), print {
    #requirements.highschool {
      padding: 80rem 0 80rem; } }
  #requirements.highschool::before {
    content: "";
    position: absolute;
    top: 0rem;
    left: 0;
    right: 0;
    bottom: 0;
    background: #FFFFFE;
    border-radius: 0 60rem 0 0; }
    @media screen and (min-width: 768px), print {
      #requirements.highschool::before {
        border-radius: 0 200rem 0 0;
        right: -330rem; } }
  #requirements.highschool > * {
    position: relative; }

/*------------------------------------------*/
.grad-bg {
  position: relative;
  padding: 40rem 0 1px;
  margin: 0 0 40rem; }
  @media screen and (min-width: 768px), print {
    .grad-bg {
      padding: 60rem 0 1px;
      margin: 0 0 60rem; } }
  .grad-bg::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(-90deg, #ebecec 50%, #e50d0b 150%);
    border-radius: 4rem; }
    @media screen and (min-width: 768px), print {
      .grad-bg::before {
        right: -330rem;
        border-radius: 8rem; } }
  .grad-bg > * {
    position: relative; }
  .grad-bg .label {
    color: #004AFF;
    border-color: #004AFF; }

/*------------------------------------------*/
.jobs .job {
  background: #FFFFFE;
  border-radius: 4px;
  background: #FFFFFE;
  box-shadow: 0px 2rem 8rem rgba(0, 0, 0, 0.16);
  margin: 16rem 0 0;
  padding: 20rem; }
  @media screen and (min-width: 768px), print {
    .jobs .job {
      border-radius: 8rem;
      padding: 40rem 80rem 20rem; } }
  .jobs .job h3 {
    display: grid;
    grid-template-columns: 35rem 1fr;
    font-size: 23rem;
    align-items: center;
    grid-gap: 12rem;
    line-height: 1.3;
    margin: 0; }
    @media screen and (min-width: 768px), print {
      .jobs .job h3 {
        font-size: 36rem;
        grid-template-columns: 53rem 1fr; } }
    .jobs .job h3 .label {
      font-size: 10rem;
      text-align: center; }
      @media screen and (min-width: 768px), print {
        .jobs .job h3 .label {
          font-size: 20rem; } }
  .jobs .job h4 {
    font-size: 16rem;
    margin: 10rem 0 20rem 0; }
    @media screen and (min-width: 768px), print {
      .jobs .job h4 {
        font-size: 22rem;
        margin: 16rem 0 32rem; } }
  .jobs .job .frame {
    border-radius: 4rem;
    padding: 20rem;
    border: 1px solid #DCDDDE;
    margin: 0 0 20rem; }
    @media screen and (min-width: 768px), print {
      .jobs .job .frame {
        border-radius: 8rem; } }
    .jobs .job .frame h5 {
      font-size: 16rem;
      margin: 0 0 4rem; }
    .jobs .job .frame p {
      margin: 0; }
  .jobs .job .message {
    background: #FFE2E3;
    border-radius: 4rem;
    overflow: hidden; }
    @media screen and (min-width: 768px), print {
      .jobs .job .message {
        border-radius: 8rem; } }
    .jobs .job .message figure {
      position: relative;
      text-align: center;
      background: #343D52;
      overflow: hidden; }
      .jobs .job .message figure img {
        position: relative;
        object-fit: cover; }
        @media screen and (min-width: 768px), print {
          .jobs .job .message figure img {
            width: 488rem; } }
      .jobs .job .message figure img.pcOnly {
        width: 120%;
        max-width: 120%;
        height: 120%;
        position: absolute;
        top: -10%;
        left: -10%;
        filter: blur(12rem);
        opacity: .5; }
    .jobs .job .message .text {
      padding: 20rem; }
      @media screen and (min-width: 768px), print {
        .jobs .job .message .text {
          padding: 24rem 32rem; } }
      .jobs .job .message .text h5 {
        font-size: 16rem;
        margin: 0 0 4rem; }
      .jobs .job .message .text p {
        margin: 0; }
  .jobs .job .btns {
    text-align: right;
    margin: 16rem 0 0; }
  .jobs .job .job-accordion-body {
    display: none;
    padding-bottom: 66rem; }
  .jobs .job .job-accordion-btn {
    position: relative;
    display: flex;
    justify-content: center;
    margin-top: -50rem; }
    .jobs .job .job-accordion-btn::before {
      content: "";
      background: linear-gradient(rgba(255, 255, 254, 0), #fffffe 90%);
      height: 150rem;
      width: 100%;
      position: absolute;
      bottom: -16rem;
      left: 0;
      pointer-events: none; }
    .jobs .job .job-accordion-btn.open::before {
      height: 60rem; }
    .jobs .job .job-accordion-btn.open i {
      transform: rotate(-90deg); }
    .jobs .job .job-accordion-btn i {
      cursor: pointer;
      position: relative;
      transform: rotate(90deg); }

/*------------------------------------------*/
#about-business .box {
  padding: 16rem 16rem 0;
  margin: 0 0 24rem;
  overflow: hidden;
  border-radius: 8rem;
  box-shadow: 0rem 0 4rem rgba(0, 0, 0, 0.26); }
  @media screen and (min-width: 768px), print {
    #about-business .box {
      display: grid;
      grid-template-columns: 1fr 379rem;
      padding: 40rem 0 40rem 64rem;
      grid-gap: 64rem; } }
  #about-business .box h3 {
    display: grid;
    grid-template-columns: 35rem 1fr;
    font-size: 23rem;
    align-items: center;
    grid-gap: 12rem;
    line-height: 1.3;
    margin: 0; }
    @media screen and (min-width: 768px), print {
      #about-business .box h3 {
        font-size: 36rem;
        grid-template-columns: 53rem 1fr; } }
    #about-business .box h3 .label {
      font-size: 10rem;
      text-align: center;
      color: #004AFF;
      border-color: #004AFF;
      white-space: nowrap; }
      @media screen and (min-width: 768px), print {
        #about-business .box h3 .label {
          font-size: 20rem; } }
  #about-business .box .sub {
    border: 1px solid #ED1C24;
    padding: 16rem;
    border-radius: 4rem;
    color: #ED1C24; }
    @media screen and (min-width: 768px), print {
      #about-business .box .sub {
        border-radius: 8rem;
        padding: 16rem 24rem; } }
    #about-business .box .sub h5 {
      margin: 0 0 8rem;
      font-size: 16rem; }
      @media screen and (min-width: 768px), print {
        #about-business .box .sub h5 {
          font-size: 14rem; } }
  #about-business .box picture {
    display: block;
    margin: 16rem -16rem 0; }
    @media screen and (min-width: 768px), print {
      #about-business .box picture {
        margin: -40rem 0; }
        #about-business .box picture img {
          width: 100%;
          height: 100%;
          object-fit: cover; } }

#about-dna dl {
  margin: 0;
  padding: 0; }
  @media screen and (min-width: 768px), print {
    #about-dna dl {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      margin-top: 64rem; } }
  #about-dna dl > div {
    width: 300rem;
    margin: 0 auto;
    box-sizing: border-box;
    aspect-ratio: 1;
    border: 6rem solid #ED1C24;
    border-radius: 1000rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    background: #FFE2E3;
    box-shadow: 0rem 1rem 4rem rgba(0, 0, 0, 0.12);
    font-weight: 700;
    overflow: hidden;
    position: relative; }
    @media screen and (min-width: 768px), print {
      #about-dna dl > div {
        width: 100%;
        box-shadow: 0rem 2rem 8rem rgba(0, 0, 0, 0.12); } }
    #about-dna dl > div::before {
      content: "DNA";
      position: absolute;
      top: 55%;
      left: 50%;
      transform: translate(-50%, -50%);
      color: #FFF1F1;
      font-size: 140rem;
      white-space: nowrap;
      font-family: "Overpass", sans-serif;
      font-weight: 900;
      line-height: 1; }
      @media screen and (min-width: 768px), print {
        #about-dna dl > div::before {
          font-size: 155rem; } }
  #about-dna dl dt {
    position: relative;
    font-size: 23rem;
    margin: 0 0 16rem;
    padding: 0;
    line-height: 1; }
    @media screen and (min-width: 768px), print {
      #about-dna dl dt {
        font-size: 36rem; } }
  #about-dna dl dd {
    position: relative;
    font-size: 16rem;
    margin: 0;
    padding: 0; }

#about-number dl {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  grid-gap: 8rem; }
  @media screen and (min-width: 768px), print {
    #about-number dl {
      grid-gap: 16rem; } }
  #about-number dl > div {
    background: #fff;
    border-radius: 4rem;
    padding: 16rem 16rem 20rem;
    text-align: center;
    width: 100%;
    position: relative; }
    @media screen and (max-width: 767.98px) {
      #about-number dl > div.sphalf {
        width: calc(50% - 4rem); } }
    @media screen and (min-width: 768px), print {
      #about-number dl > div {
        border-radius: 8rem;
        padding: 32rem 48rem; }
        #about-number dl > div.half {
          width: calc(50% - 8rem); }
        #about-number dl > div.third {
          width: calc((100% - 32rem) / 3); } }
  #about-number dl dt {
    margin: 0 0 8rem;
    padding: 0;
    font-size: 16rem;
    font-weight: 700;
    position: relative; }
    @media screen and (min-width: 768px), print {
      #about-number dl dt {
        font-size: 22rem; } }
    #about-number dl dt small {
      font-size: 10rem;
      font-weight: 400;
      position: absolute;
      right: 0;
      bottom: 0; }
      @media screen and (min-width: 768px), print {
        #about-number dl dt small {
          right: 230rem;
          font-size: 12rem; } }
  #about-number dl dd {
    margin: 0;
    padding: 0;
    color: #ED1C24;
    line-height: 1;
    font-weight: 700;
    position: relative; }
    @media screen and (min-width: 768px), print {
      #about-number dl dd {
        font-size: 22rem; } }
    #about-number dl dd > * {
      position: relative; }
    #about-number dl dd.staff em {
      width: 2.65em;
      display: inline-flex;
      justify-content: space-between; }
    #about-number dl dd em {
      font-size: 32rem;
      font-weight: 900;
      font-family: "Overpass", sans-serif; }
      @media screen and (min-width: 768px), print {
        #about-number dl dd em {
          font-size: 56rem; } }
      #about-number dl dd em.huge {
        font-size: 60rem; }
        @media screen and (min-width: 768px), print {
          #about-number dl dd em.huge {
            font-size: 120rem; } }
    #about-number dl dd i {
      position: absolute;
      inset: -10rem; }
      #about-number dl dd i img {
        object-fit: contain;
        width: 100%;
        height: 100%; }
  @media screen and (max-width: 767.98px) {
    #about-number dl > div:nth-of-type(1) dd {
      padding-top: 17rem; } }
  #about-number dl > div:nth-of-type(2) {
    padding-left: 0;
    padding-right: 0; }
    @media screen and (max-width: 767.98px) {
      #about-number dl > div:nth-of-type(2) span {
        display: table;
        margin: 0 auto;
        text-align: left; } }
    #about-number dl > div:nth-of-type(2) small {
      position: absolute;
      bottom: -4rem;
      transform: translateY(100%);
      right: 4rem;
      color: #060808;
      font-weight: 400;
      font-size: 10rem; }
      @media screen and (min-width: 768px), print {
        #about-number dl > div:nth-of-type(2) small {
          right: 24rem; } }
  #about-number dl > div:nth-of-type(3) dd {
    display: grid;
    grid-gap: 24rem;
    margin-top: 24rem; }
    @media screen and (min-width: 768px), print {
      #about-number dl > div:nth-of-type(3) dd {
        grid-template-columns: 1fr 1fr; } }
  @media screen and (min-width: 768px), print {
    #about-number dl > div:nth-of-type(4) dd {
      padding: 0 64rem; } }
  #about-number dl > div:nth-of-type(5) dd {
    padding: 16rem 0 0; }
    #about-number dl > div:nth-of-type(5) dd span {
      display: block;
      margin: 0 0 4rem; }
  @media screen and (min-width: 768px), print {
    #about-number dl > div:nth-of-type(6) dd {
      padding: 40rem 0 0; } }
  @media screen and (min-width: 768px), print {
    #about-number dl > div:nth-of-type(7) dd, #about-number dl > div:nth-of-type(8) dd {
      padding: 14rem 0 0; } }
  @media screen and (min-width: 768px), print {
    #about-number dl > div:nth-of-type(9) dd img {
      max-width: 642rem; } }
  #about-number dl > div:nth-of-type(10) dd {
    padding: 10rem 0 6rem; }
    @media screen and (min-width: 768px), print {
      #about-number dl > div:nth-of-type(10) dd {
        padding: 24rem 0; } }
  #about-number dl > div:nth-of-type(11) dd {
    padding: 16rem 0 10rem; }
    @media screen and (min-width: 768px), print {
      #about-number dl > div:nth-of-type(11) dd {
        padding: 24rem 0; } }

/*------------------------------------------*/
#training-policy .white-box,
#training-system .white-box {
  padding: 16rem;
  margin: 0 0 24rem;
  overflow: hidden;
  border-radius: 8rem;
  box-shadow: 0rem 0 4rem rgba(0, 0, 0, 0.12);
  background: #fff; }
  @media screen and (min-width: 768px), print {
    #training-policy .white-box,
    #training-system .white-box {
      padding: 32rem 48rem 48rem;
      box-shadow: 0rem 0 8rem rgba(0, 0, 0, 0.12); } }
  #training-policy .white-box h3,
  #training-system .white-box h3 {
    font-size: 23rem;
    margin: 0 0 16rem; }
    @media screen and (min-width: 768px), print {
      #training-policy .white-box h3,
      #training-system .white-box h3 {
        font-size: 36rem;
        margin: 10rem 0 24rem; } }

#training-policy h3 {
  font-size: 23rem;
  margin: 0 0 16rem; }
  @media screen and (min-width: 768px), print {
    #training-policy h3 {
      font-size: 36rem;
      margin: 10rem 0 24rem; } }

#training-system dl {
  display: grid;
  margin: 24rem 0 0;
  padding: 0;
  grid-gap: 16rem; }
  @media screen and (min-width: 768px), print {
    #training-system dl {
      grid-template-columns: 1fr 1fr;
      margin: 32rem 0 0; } }
  #training-system dl > div {
    border: 1px solid #DCDDDE;
    border-radius: 4rem;
    padding: 16rem; }
  #training-system dl dt {
    font-size: 16rem;
    font-weight: 700;
    margin: 0;
    padding: 0; }
  #training-system dl dd {
    margin: 0;
    padding: 0; }

/*------------------------------------------*/
#environment .ikiiki_icon {
  text-align: center;
  margin: -15rem 0 30rem; }
  @media screen and (min-width: 768px), print {
    #environment .ikiiki_icon {
      margin: 0 0 70rem; } }
  #environment .ikiiki_icon img {
    max-width: 230rem; }
    @media screen and (min-width: 768px), print {
      #environment .ikiiki_icon img {
        max-width: 554rem; } }
#environment .tour {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 120rem;
  position: relative;
  border-radius: 4rem;
  overflow: hidden;
  border: 1px solid #ED1C24; }
  @media screen and (min-width: 768px), print {
    #environment .tour {
      height: 240rem;
      border-radius: 8rem; }
      #environment .tour:hover .bg img {
        transform: scale(1.05); } }
  #environment .tour .bg {
    position: absolute;
    inset: 0; }
    #environment .tour .bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .5s; }
  #environment .tour .logo {
    position: relative;
    width: 155rem; }
    @media screen and (min-width: 768px), print {
      #environment .tour .logo {
        width: 307rem; } }
  #environment .tour i {
    position: absolute;
    right: 8rem;
    bottom: 8rem; }
    @media screen and (min-width: 768px), print {
      #environment .tour i {
        right: 16rem;
        bottom: 16rem; } }

/*------------------------------------------*/
.environment-content {
  padding-bottom: 64rem; }
  .environment-content .box {
    background: #fff;
    padding: 24rem 16rem;
    border-radius: 4rem;
    margin: 0 0 8rem;
    box-shadow: 0rem 0 4rem rgba(0, 0, 0, 0.12); }
    @media screen and (min-width: 768px), print {
      .environment-content .box {
        box-shadow: 0rem 0 8rem rgba(0, 0, 0, 0.12);
        padding: 48rem 64rem;
        border-radius: 8rem; } }
    .environment-content .box h3 {
      display: grid;
      grid-template-columns: 35rem 1fr;
      font-size: 23rem;
      align-items: center;
      grid-gap: 12rem;
      line-height: 1.3;
      margin: 0; }
      @media screen and (min-width: 768px), print {
        .environment-content .box h3 {
          font-size: 36rem;
          grid-template-columns: 53rem 1fr; } }
      .environment-content .box h3 .label {
        font-size: 10rem;
        text-align: center;
        color: #004AFF;
        border-color: #004AFF;
        white-space: nowrap; }
        @media screen and (min-width: 768px), print {
          .environment-content .box h3 .label {
            font-size: 20rem; } }
    .environment-content .box .frame {
      border-radius: 4rem;
      padding: 16rem;
      background: #FFE2E3; }
      @media screen and (min-width: 768px), print {
        .environment-content .box .frame {
          padding: 40rem;
          border-radius: 8rem; } }
      .environment-content .box .frame .comment {
        margin: 0 0 24rem;
        padding: 0;
        position: relative;
        list-style: none; }
        .environment-content .box .frame .comment li {
          background: #fff;
          padding: 8rem 16rem;
          display: table;
          font-size: 12rem;
          line-height: 1.4; }
          @media screen and (max-width: 767.98px) {
            .environment-content .box .frame .comment li {
              margin-bottom: 10rem !important; } }
          @media screen and (min-width: 768px), print {
            .environment-content .box .frame .comment li {
              padding: 12rem 32rem;
              font-size: 16rem;
              position: absolute; } }
          .environment-content .box .frame .comment li.r {
            border-radius: 100rem 100rem 0 100rem; }
          .environment-content .box .frame .comment li.l {
            border-radius: 100rem 100rem 100rem 0; }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment1 li:nth-of-type(1) {
            margin: 0 auto; }
          .environment-content .box .frame .comment.comment1 li:nth-of-type(2) {
            margin: 0 0 0 auto; }
          .environment-content .box .frame .comment.comment1 li:nth-of-type(4) {
            margin: 0 0 0 20rem; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment1 {
            height: 145rem; }
            .environment-content .box .frame .comment.comment1 li:nth-of-type(1) {
              left: -10rem;
              top: 0; }
            .environment-content .box .frame .comment.comment1 li:nth-of-type(2) {
              left: 115rem;
              top: 90rem; }
            .environment-content .box .frame .comment.comment1 li:nth-of-type(3) {
              right: -10rem;
              top: 0; }
            .environment-content .box .frame .comment.comment1 li:nth-of-type(4) {
              right: 100rem;
              top: 90rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment2 li:nth-of-type(1) {
            margin: 0 0 0 20rem; }
          .environment-content .box .frame .comment.comment2 li:nth-of-type(2) {
            margin: 0 0 0 auto; }
          .environment-content .box .frame .comment.comment2 li:nth-of-type(3) {
            margin: 0 0 0 40rem; }
          .environment-content .box .frame .comment.comment2 li:nth-of-type(4) {
            margin: 0; }
          .environment-content .box .frame .comment.comment2 li:nth-of-type(5) {
            margin: 0 60rem 0 auto; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment2 {
            height: 155rem; }
            .environment-content .box .frame .comment.comment2 li:nth-of-type(1) {
              left: 0;
              top: 0; }
            .environment-content .box .frame .comment.comment2 li:nth-of-type(2) {
              left: 280rem;
              top: 10rem; }
            .environment-content .box .frame .comment.comment2 li:nth-of-type(3) {
              right: 0;
              top: 20rem; }
            .environment-content .box .frame .comment.comment2 li:nth-of-type(4) {
              left: 40rem;
              top: 90rem; }
            .environment-content .box .frame .comment.comment2 li:nth-of-type(5) {
              left: 350rem;
              top: 100rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment3 li:nth-of-type(1) {
            margin: 0 0 0 20rem; }
          .environment-content .box .frame .comment.comment3 li:nth-of-type(2) {
            margin: 0 30rem 0 auto; }
          .environment-content .box .frame .comment.comment3 li:nth-of-type(3) {
            margin: 0; }
          .environment-content .box .frame .comment.comment3 li:nth-of-type(4) {
            margin: 0 30rem 0 auto; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment3 {
            height: 155rem; }
            .environment-content .box .frame .comment.comment3 li:nth-of-type(1) {
              left: 40rem;
              top: 0; }
            .environment-content .box .frame .comment.comment3 li:nth-of-type(2) {
              left: 300rem;
              top: 0; }
            .environment-content .box .frame .comment.comment3 li:nth-of-type(3) {
              left: 130rem;
              top: 90rem; }
            .environment-content .box .frame .comment.comment3 li:nth-of-type(4) {
              right: 40rem;
              top: 30rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment4 li:nth-of-type(1) {
            margin: 0; }
          .environment-content .box .frame .comment.comment4 li:nth-of-type(2) {
            margin: 0 0 0 auto; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment4 {
            height: 125rem; }
            .environment-content .box .frame .comment.comment4 li:nth-of-type(1) {
              left: 50rem;
              top: 0; }
            .environment-content .box .frame .comment.comment4 li:nth-of-type(2) {
              right: 50rem;
              top: 20rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment5 li:nth-of-type(1) {
            margin: 0 0 0 40rem; }
          .environment-content .box .frame .comment.comment5 li:nth-of-type(2) {
            margin: 0 0 0 auto; }
          .environment-content .box .frame .comment.comment5 li:nth-of-type(3) {
            margin: 0; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment5 {
            height: 155rem; }
            .environment-content .box .frame .comment.comment5 li:nth-of-type(1) {
              left: 0;
              top: 0; }
            .environment-content .box .frame .comment.comment5 li:nth-of-type(2) {
              right: 0;
              top: 0; }
            .environment-content .box .frame .comment.comment5 li:nth-of-type(3) {
              left: 160rem;
              top: 90rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment6 li:nth-of-type(1) {
            margin: 0 0 0 30rem; }
          .environment-content .box .frame .comment.comment6 li:nth-of-type(2) {
            margin: 0 30rem 0 auto; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment6 {
            height: 85rem; }
            .environment-content .box .frame .comment.comment6 li:nth-of-type(1) {
              left: 100rem;
              top: 0; }
            .environment-content .box .frame .comment.comment6 li:nth-of-type(2) {
              right: 90rem;
              top: 20rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment7 li:nth-of-type(1) {
            margin: 0 0 0 20rem; }
          .environment-content .box .frame .comment.comment7 li:nth-of-type(2) {
            margin: 0 30rem 0 auto; }
          .environment-content .box .frame .comment.comment7 li:nth-of-type(3) {
            margin: 0 60rem 0 auto; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment7 {
            height: 140rem; }
            .environment-content .box .frame .comment.comment7 li:nth-of-type(1) {
              left: 70rem;
              top: 0; }
            .environment-content .box .frame .comment.comment7 li:nth-of-type(2) {
              left: 140rem;
              top: 90rem; }
            .environment-content .box .frame .comment.comment7 li:nth-of-type(3) {
              right: 120rem;
              top: 20rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment8 {
            margin-bottom: 0; }
            .environment-content .box .frame .comment.comment8 li:nth-of-type(1) {
              margin: 0 0 0 20rem; }
            .environment-content .box .frame .comment.comment8 li:nth-of-type(2) {
              margin: 0 30rem 0 auto; }
            .environment-content .box .frame .comment.comment8 li:nth-of-type(3) {
              margin: 0 0 0 10rem; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment8 {
            height: 100rem; }
            .environment-content .box .frame .comment.comment8 li:nth-of-type(1) {
              left: 50rem;
              top: 0; }
            .environment-content .box .frame .comment.comment8 li:nth-of-type(2) {
              right: 40rem;
              top: 60rem; }
            .environment-content .box .frame .comment.comment8 li:nth-of-type(3) {
              left: 0;
              top: 80rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment9 li:nth-of-type(1) {
            margin: 0 0 0 20rem; }
          .environment-content .box .frame .comment.comment9 li:nth-of-type(2) {
            margin: 0 30rem 0 auto; }
          .environment-content .box .frame .comment.comment9 li:nth-of-type(3) {
            margin: 0 0 0 60rem; }
          .environment-content .box .frame .comment.comment9 li:nth-of-type(4) {
            margin: 0 60rem 0 auto; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment9 {
            height: 170rem; }
            .environment-content .box .frame .comment.comment9 li:nth-of-type(1) {
              left: 70rem;
              top: 0; }
            .environment-content .box .frame .comment.comment9 li:nth-of-type(2) {
              left: 140rem;
              top: 90rem; }
            .environment-content .box .frame .comment.comment9 li:nth-of-type(3) {
              right: 30rem;
              top: 10rem; }
            .environment-content .box .frame .comment.comment9 li:nth-of-type(4) {
              right: 120rem;
              top: 70rem; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .frame .comment.comment10 li:nth-of-type(1) {
            margin: 0 0 0 20rem; }
          .environment-content .box .frame .comment.comment10 li:nth-of-type(2) {
            margin: 0 30rem 0 auto; }
          .environment-content .box .frame .comment.comment10 li:nth-of-type(3) {
            margin: 0 0 0 60rem; }
          .environment-content .box .frame .comment.comment10 li:nth-of-type(4) {
            margin: 0 60rem 0 auto; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .comment.comment10 {
            height: 170rem; }
            .environment-content .box .frame .comment.comment10 li:nth-of-type(1) {
              left: 30rem;
              top: 0; }
            .environment-content .box .frame .comment.comment10 li:nth-of-type(2) {
              left: 110rem;
              top: 110rem; }
            .environment-content .box .frame .comment.comment10 li:nth-of-type(3) {
              right: 30rem;
              top: 10rem; }
            .environment-content .box .frame .comment.comment10 li:nth-of-type(4) {
              right: 120rem;
              top: 70rem; } }
      .environment-content .box .frame .photo {
        position: relative;
        text-align: center;
        margin: 0 -16rem 16rem;
        overflow: hidden;
        background: #343D52; }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .photo {
            margin: 0 -40rem 40rem; } }
        .environment-content .box .frame .photo:first-child {
          margin-top: -16rem;
          border-radius: 4rem 4rem 0 0; }
          @media screen and (min-width: 768px), print {
            .environment-content .box .frame .photo:first-child {
              margin-top: -40rem;
              border-radius: 8rem 8rem 0 0; } }
        .environment-content .box .frame .photo:last-child {
          margin-bottom: -16rem;
          border-radius: 0 0 4rem 4rem; }
          @media screen and (min-width: 768px), print {
            .environment-content .box .frame .photo:last-child {
              margin-bottom: -40rem;
              border-radius: 0 0 8rem 8rem; } }
        .environment-content .box .frame .photo img {
          width: 488rem;
          height: 100%;
          position: relative;
          object-fit: cover; }
        .environment-content .box .frame .photo img.pcOnly {
          width: 100%;
          position: absolute;
          inset: 0;
          filter: blur(12rem);
          opacity: .5; }
      .environment-content .box .frame p {
        margin: 0; }
      .environment-content .box .frame dl {
        margin: 0;
        padding: 0;
        display: grid;
        grid-gap: 16rem; }
        .environment-content .box .frame dl dt {
          font-size: 16rem;
          margin: 0;
          padding: 0;
          font-weight: 700; }
        .environment-content .box .frame dl dd {
          margin: 0;
          padding: 0; }
      .environment-content .box .frame .kurumin {
        background: #fff;
        border-radius: 4rem;
        display: grid;
        grid-template-columns: 60rem 1fr;
        padding: 16rem 24rem;
        align-items: center;
        grid-gap: 24rem;
        margin: 16rem 0 0; }
        @media screen and (min-width: 768px), print {
          .environment-content .box .frame .kurumin {
            margin: 32rem auto 0;
            border-radius: 8rem;
            max-width: 488rem; } }
    .environment-content .box .slideshow {
      margin: 0 -32rem;
      padding: 0 0 64rem;
      position: relative; }
      @media screen and (min-width: 768px), print {
        .environment-content .box .slideshow {
          margin: 0 -80rem;
          padding: 0; } }
      .environment-content .box .slideshow::before, .environment-content .box .slideshow::after {
        content: "";
        width: 16rem;
        height: 100%;
        position: absolute;
        top: 0;
        background: linear-gradient(90deg, white 20%, rgba(255, 255, 255, 0));
        display: block;
        z-index: 10; }
        @media screen and (min-width: 768px), print {
          .environment-content .box .slideshow::before, .environment-content .box .slideshow::after {
            width: 40rem;
            background: linear-gradient(90deg, white 50%, rgba(255, 255, 255, 0)); } }
      .environment-content .box .slideshow::before {
        left: 0rem; }
      .environment-content .box .slideshow::after {
        right: 0rem;
        transform: scaleX(-1); }
      .environment-content .box .slideshow .slide {
        padding: 0 8rem; }
        .environment-content .box .slideshow .slide figcaption {
          font-size: 12rem;
          margin: 8rem 0 0;
          line-height: 1.4; }
          @media screen and (min-width: 768px), print {
            .environment-content .box .slideshow .slide figcaption {
              font-size: 14rem;
              margin: 16rem 0 0; } }
      .environment-content .box .slideshow .slick-arrow {
        position: absolute;
        border: none;
        background: none;
        padding: 0;
        cursor: pointer;
        appearance: none;
        z-index: 20; }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .slideshow .slick-arrow {
            bottom: 10rem; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .slideshow .slick-arrow {
            top: 60rem; } }
        .environment-content .box .slideshow .slick-arrow.slick-prev {
          transform: scaleX(-1); }
          @media screen and (max-width: 767.98px) {
            .environment-content .box .slideshow .slick-arrow.slick-prev {
              right: 55%; } }
          @media screen and (min-width: 768px), print {
            .environment-content .box .slideshow .slick-arrow.slick-prev {
              left: 0; } }
        @media screen and (max-width: 767.98px) {
          .environment-content .box .slideshow .slick-arrow.slick-next {
            left: 55%; } }
        @media screen and (min-width: 768px), print {
          .environment-content .box .slideshow .slick-arrow.slick-next {
            right: 0; } }
  .environment-content .environment-comment ul {
    width: 770rem;
    height: 340rem;
    margin: 0 auto;
    padding: 0;
    position: relative;
    list-style: none;
    background: url("../images/environment/comment_bg.svg") no-repeat center center/contain; }
    .environment-content .environment-comment ul li {
      background: #fff;
      padding: 12rem 24rem;
      display: table;
      font-size: 16rem;
      line-height: 1.4;
      margin: 0 0 10rem;
      position: absolute; }
      .environment-content .environment-comment ul li.r {
        border-radius: 100rem 100rem 0 100rem; }
      .environment-content .environment-comment ul li.l {
        border-radius: 100rem 100rem 100rem 0; }
      .environment-content .environment-comment ul li:nth-of-type(1) {
        top: 0;
        left: 50rem; }
      .environment-content .environment-comment ul li:nth-of-type(2) {
        top: 90rem;
        left: 80rem; }
      .environment-content .environment-comment ul li:nth-of-type(3) {
        top: 200rem;
        left: 130rem; }
      .environment-content .environment-comment ul li:nth-of-type(4) {
        top: 0;
        right: 0rem; }
      .environment-content .environment-comment ul li:nth-of-type(5) {
        top: 150rem;
        right: 70rem; }

/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
/*------------------------------------------*/
