@charset "UTF-8";
/* =================================================================
		base setting
================================================================= */
html {
  font-size: 62.5%; }

body {
  width: 100%;
  background-color: #fff;
  color: #222;
  font-family: "游ゴシック体", Yu Gothic, YuGothic, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, sans-serif;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: .08em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-y: none;
  -webkit-transition: background-color .6s .2s;
  transition: background-color .6s .2s; }

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

img {
  height: auto; }

ul,
ol,
dl,
dt,
dd {
  margin: 0;
  padding: 0; }

ul {
  text-align: left; }
  ul li {
    list-style: none; }

ol {
  counter-reset: item;
  list-style-type: none;
  text-align: left; }
  ol li {
    padding-left: 1.3em;
    position: relative; }
    ol li::before {
      counter-increment: item;
      content: counter(item) ".";
      position: absolute;
      left: 0;
      top: 1em;
      -webkit-transform: translateY(-1em);
              transform: translateY(-1em); }

figure {
  margin: 0; }

table {
  border: none;
  border-spacing: 0; }

th,
td {
  vertical-align: top;
  text-align: left; }

.dd {
  position: absolute;
  left: 50%;
  top: 120%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%); }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  line-height: 1.6; }

em {
  font-weight: bold;
  font-style: normal; }

p {
  margin: 0; }

address {
  font-style: normal; }

a {
  outline: none; }
  a:link {
    color: #222;
    text-decoration: none; }
  a:visited {
    color: #222; }
  a:hover, a:focus, a:active {
    color: #222;
    text-decoration: none; }

@media screen and (max-width: 1024px) {
  body {
    min-width: 980px; } }
@media screen and (max-width: 47.9375em) {
  body {
    min-width: auto;
    line-height: 1.7; } }
/* =================================================================
		#display control
================================================================= */
@media print, screen and (min-width: 737px) {
  .pc {
    display: inline; }

  .sp {
    display: none !important; } }
@media screen and (max-width: 736px) {
  .pc {
    display: none !important; }

  .sp {
    display: inline; } }
/* =================================================================
		#common
================================================================= */
.wrap {
  margin-top: 130px;
  padding-top: 20px;
  overflow: hidden; }

@media screen and (max-width: 736px) {
  .wrap {
    margin-top: 120px;
    padding-top: 0; } }
.pct {
  line-height: 0; }
  .pct img {
    width: 100%; }

/* =================================================================
		#header
================================================================= */
.header {
  padding: 50px 40px 40px;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  background-color: #fff;
  z-index: 9999;
  -webkit-transition: padding 0.3s;
  transition: padding 0.3s; }

.header-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  position: relative; }

.header-logo {
  width: 320px;
  line-height: 0;
  padding-right: 24px;
  margin-right: 24px;
  position: relative;
  -webkit-transition: width 0.3s, opacity 0.3s;
  transition: width 0.3s, opacity 0.3s; }
  .header-logo a {
    display: block; }
    @media (hover: hover) {
      .header-logo a:hover {
        opacity: 0.8; } }
  .header-logo:before {
    content: "";
    display: block;
    width: 1px;
    height: 120%;
    background-color: #8e8e8e;
    position: absolute;
    right: 0;
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(25deg);
            transform: translateY(-50%) rotate(25deg); }
  .header-logo img {
    width: 100%; }

.header-tagline {
  font-size: 2.3rem;
  line-height: 1.4;
  font-family: "Zen Kaku Gothic New", sans-serif;
  text-align: center;
  -webkit-transition: 0.3s;
  transition: 0.3s; }

.pastsite {
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }
  .pastsite .lead {
    font-size: 1.4rem;
    letter-spacing: 0;
    position: absolute;
    left: 50%;
    bottom: calc(100% + 7px);
    white-space: nowrap;
    text-align: center;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    -webkit-transition: opacity 0.4s;
    transition: opacity 0.4s; }
    .pastsite .lead span {
      display: inline-block;
      position: relative; }
      .pastsite .lead span:before, .pastsite .lead span:after {
        content: "";
        display: block;
        background-color: #333;
        width: 1px;
        height: 1.1em;
        position: absolute;
        top: 50%; }
      .pastsite .lead span:before {
        left: -0.8em;
        -webkit-transform: translateY(-50%) rotate(-20deg);
                transform: translateY(-50%) rotate(-20deg); }
      .pastsite .lead span:after {
        right: -0.8em;
        -webkit-transform: translateY(-50%) rotate(20deg);
                transform: translateY(-50%) rotate(20deg); }
  .pastsite a {
    font-weight: bold;
    display: block;
    border: 1px solid #333;
    color: #333;
    font-size: 1.6rem;
    line-height: 1.4;
    padding: 0.4em 1.5em;
    text-align: center;
    border-radius: 999px; }
    @media (hover: hover) {
      .pastsite a {
        -webkit-transition: 0.2s;
        transition: 0.2s; }
        .pastsite a:hover {
          color: #fff;
          background-color: #333; } }

@media screen and (max-width: 736px) {
  .header {
    padding: 32px 30px; }

  .header-inner {
    display: block; }

  .header-logo {
    width: 200px;
    padding-right: 0;
    margin: 0 auto 6px; }
    .header-logo:before {
      content: none; }

  .header-tagline {
    font-size: 1.65rem; }

  .pastsite-info {
    padding: 0 30px 48px; }
    .pastsite-info.sp {
      display: block; }

  .pastsite {
    position: relative;
    right: auto;
    top: auto;
    -webkit-transform: none;
            transform: none; }
    .pastsite .lead {
      font-size: 1.5rem; }
    .pastsite a {
      width: 75%;
      margin: 0 auto;
      padding: 0.6em 1.5em; } }
.scrolled .header {
  padding: 26px 30px; }
.scrolled .header-logo {
  width: 230px;
  padding-right: 24px;
  margin-right: 24px; }
.scrolled .header-tagline {
  font-size: 1.9rem; }
@media print, screen and (min-width: 737px) {
  .scrolled .pastsite .lead {
    opacity: 0; } }

@media screen and (max-width: 736px) {
  .scrolled .header {
    padding: 16px 30px;
    overflow: hidden; }
  .scrolled .header-logo {
    width: 180px;
    margin: 0 auto 6px; }
  .scrolled .header-tagline {
    font-size: 1.3rem; } }
.fv {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-bottom: 0; }

.stack {
  padding: 0 30px;
  margin-bottom: 12vh; }

@media screen and (max-width: 736px) {
  .fv {
    display: block; }

  .stack {
    margin-bottom: 64px; } }
.container {
  max-width: 1400px;
  margin: 0 auto; }

.heading-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-bottom: 45px; }

.heading-txt {
  font-size: 4rem;
  line-height: 1.3;
  letter-spacing: -0.02em;
  font-family: "Zen Kaku Gothic New", sans-serif;
  margin-right: 30px; }
  .heading-txt .num {
    letter-spacing: 0.015em;
    font-size: 1.1em; }
  .heading-txt .punctuation {
    font-family: "游ゴシック体", Yu Gothic, YuGothic, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, sans-serif; }

.heading-en {
  font-family: "Poppins", sans-serif;
  font-size: 2.2rem;
  color: #c93e3e; }

@media screen and (max-width: 736px) {
  .heading-wrap {
    display: block;
    margin-bottom: 32px; }

  .heading-txt {
    font-size: 2.8rem;
    margin: 0 0 0.2em; }

  .heading-en {
    font-size: 1.7rem; } }
.color-wh .heading-en {
  color: #ff9393; }

.hero {
  font-size: 2.2rem;
  aspect-ratio: 1.2 / 1;
  width: 52%;
  height: 32em;
  overflow: hidden;
  margin-top: 8vh;
  margin-right: 5.5vw; }
  .hero img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover; }

.about {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-right: 40px; }

.about-catch {
  font-size: 5.8rem;
  line-height: 1.3;
  letter-spacing: -0.07em;
  font-family: "Zen Kaku Gothic New", sans-serif;
  margin-bottom: 0.8em;
  -webkit-transition: font-size 0.3s;
  transition: font-size 0.3s; }
  @media screen and (max-width: 1500px) {
    .about-catch {
      font-size: 4.8rem; } }
  @media screen and (max-width: 1300px) {
    .about-catch {
      font-size: 4.5rem; } }
  .about-catch em {
    position: relative;
    color: #fff;
    display: inline-block;
    margin-right: 0.2em; }
    .about-catch em:before {
      content: "";
      display: block;
      background-color: #ce3a3a;
      width: 105%;
      height: 102%;
      z-index: 0;
      position: absolute;
      left: 50%;
      top: 50%;
      -webkit-transform: translate(-50%, -50%) rotate(-3.5deg) skew(-6deg);
              transform: translate(-50%, -50%) rotate(-3.5deg) skew(-6deg);
      z-index: -1; }

.about-cont {
  position: relative;
  z-index: 2; }
  .about-cont p {
    font-size: 2.2rem;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.03em;
    margin-bottom: 1.2em; }
    @media screen and (max-width: 1500px) {
      .about-cont p {
        font-size: 2rem; } }
    @media screen and (max-width: 1300px) {
      .about-cont p {
        font-size: 1.9rem; }
        .about-cont p br.disp {
          display: none; } }
    .about-cont p em {
      color: #ce3a3a; }

@media screen and (max-width: 736px) {
  .hero {
    aspect-ratio: 1 / 1.2;
    width: 100%;
    height: auto;
    margin: 0 0 48px; }

  .about {
    padding: 0 6vw;
    margin-bottom: 80px; }

  .about-catch {
    font-size: 3.3rem; }

  .about-cont {
    position: relative;
    z-index: 2; }
    .about-cont p {
      font-size: 1.7rem; } }
.program {
  padding-top: 8vh;
  padding-bottom: 8vh;
  margin-bottom: 15vh;
  position: relative; }
  .program:before {
    content: "";
    display: block;
    background-color: #e14444;
    width: 150%;
    height: 108%;
    z-index: 0;
    position: absolute;
    left: 50%;
    top: 45%;
    -webkit-transform: translate(-50%, -50%) rotate(-5deg);
            transform: translate(-50%, -50%) rotate(-5deg); }
  .program * {
    position: relative;
    z-index: 1; }

.program-index {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.program-item {
  width: 47%;
  margin-bottom: 48px; }
  .program-item dt {
    color: #fff;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 2.8rem;
    letter-spacing: -0.02em;
    margin-bottom: 0.3em; }
  .program-item dd {
    font-size: 2rem;
    font-weight: bold; }

@media screen and (max-width: 736px) {
  .program {
    padding-top: 64px;
    padding-bottom: 64px;
    margin-bottom: 64px; }
    .program:before {
      width: 200%;
      height: 100%;
      z-index: 0;
      left: 50%;
      top: 50%;
      -webkit-transform: translate(-50%, -50%) rotate(-8deg);
              transform: translate(-50%, -50%) rotate(-8deg); }
    .program * {
      position: relative;
      z-index: 1; }

  .program-index {
    display: block; }

  .program-item {
    width: 100%;
    margin-bottom: 32px; }
    .program-item dt {
      font-size: 2.2rem; }
    .program-item dd {
      font-size: 1.7rem; }
    .program-item:last-child {
      margin-bottom: 0; } }
.partners {
  position: relative; }

@-webkit-keyframes floating-y {
  0% {
    -webkit-transform: translateY(-10%);
            transform: translateY(-10%); }
  100% {
    -webkit-transform: translateY(10%);
            transform: translateY(10%); } }

@keyframes floating-y {
  0% {
    -webkit-transform: translateY(-10%);
            transform: translateY(-10%); }
  100% {
    -webkit-transform: translateY(10%);
            transform: translateY(10%); } }
a.interview {
  position: absolute;
  right: -15em;
  top: 0;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #d43434;
  line-height: 1.4;
  aspect-ratio: 1;
  font-size: 2.2rem;
  width: 13.5em;
  overflow: hidden;
  text-align: center;
  -webkit-animation: floating-y 1.8s ease-in-out infinite alternate-reverse;
          animation: floating-y 1.8s ease-in-out infinite alternate-reverse;
  -webkit-transition: right 0.4s ease-in, background-color 0.3s;
  transition: right 0.4s ease-in, background-color 0.3s; }
  a.interview.is-show {
    right: 2vw; }
  @media (hover: hover) {
    a.interview:hover {
      background-color: #e14444; } }
  a.interview .ttl {
    position: relative;
    font-weight: bold;
    z-index: 1;
    color: #fff; }
    a.interview .ttl em {
      display: inline-block;
      font-size: 1.5em;
      font-family: "Zen Kaku Gothic New", sans-serif;
      line-height: 1.3;
      margin-top: 0.1em;
      letter-spacing: -0.02em; }
  a.interview .en {
    display: none;
    font-size: 4.8rem;
    color: #fff;
    font-family: "Poppins", sans-serif;
    opacity: 0.2;
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    z-index: 0; }
  a.interview .pct {
    width: 2.7em;
    margin: -10px auto 8px;
    -webkit-filter: invert(100%) sepia(0%) saturate(2%) hue-rotate(220deg) brightness(107%) contrast(101%);
            filter: invert(100%) sepia(0%) saturate(2%) hue-rotate(220deg) brightness(107%) contrast(101%); }

.partners-list {
  margin-bottom: 10vh;
  display: grid;
  grid-template-columns: repeat(3, 210px);
  gap: 0 40px; }

.partners-item {
  grid-row: span 3;
  display: grid;
  grid-template-rows: subgrid; }
  .partners-item .logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .partners-item .logo img {
      width: 100%; }
    .partners-item .logo.symenergy {
      width: 100%; }
    .partners-item .logo.rokko img {
      width: 85%; }
    .partners-item .logo.bender {
      width: 100%; }
  .partners-item .name {
    text-align: center;
    font-weight: bold;
    font-size: 1.7rem;
    margin-top: 0.6em; }

@media screen and (max-width: 736px) {
  a.interview {
    position: static;
    margin: 0 auto 48px;
    font-size: 1.6rem;
    width: 13em;
    overflow: hidden;
    text-align: center; }
    a.interview .ttl em {
      font-size: 1.4em; }

  .partners-list {
    margin-bottom: 64px;
    display: block; }

  .partners-item {
    width: 65%;
    margin: 0 auto 40px; }
    .partners-item .logo {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      .partners-item .logo.rokko img {
        width: 80%; }
    .partners-item .name {
      font-size: 1.6rem; } }
.collaboration-list {
  font-size: 1.8rem;
  font-weight: bold; }
  .collaboration-list li {
    margin-bottom: 0.4em; }

@media screen and (max-width: 736px) {
  .collaboration-list {
    font-size: 1.7rem; }
    .collaboration-list li {
      margin-bottom: 1em; } }
.contact {
  padding: 9vh 30px 8vh;
  background-color: #f0f0f0; }

.btn-contact {
  max-width: 460px;
  margin: 0 auto; }
  .btn-contact a {
    display: block;
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1.4;
    padding: 24px;
    border-radius: 999px;
    color: #c93e3e;
    border: 6px solid #c93e3e;
    text-align: center; }
    @media (hover: hover) {
      .btn-contact a {
        -webkit-transition: 0.2s;
        transition: 0.2s; }
        .btn-contact a:hover {
          color: #fff;
          background-color: #c93e3e; } }

.contact-exp {
  font-size: 2rem;
  margin-top: 24px;
  text-align: center; }

@media screen and (max-width: 736px) {
  .contact {
    padding: 40px 30px; }

  .btn-contact {
    max-width: 460px;
    margin: 0 auto; }
    .btn-contact a {
      font-size: 1.7rem;
      padding: 16px;
      border-width: 4px; }

  .contact-exp {
    font-size: 1.5rem;
    margin-top: 16px; } }
.footer {
  background-color: #333;
  padding: 64px; }

.copyright {
  color: #fff;
  font-size: 1.5rem;
  text-align: center; }

/* =================================================================
		#interview
================================================================= */
.interview {
  padding: 0 30px;
  margin-bottom: 10vh; }

.interview-hero {
  max-width: 1000px;
  margin: 0 auto 48px; }
  .interview-hero img {
    width: 100%; }

.interview-head {
  max-width: 660px;
  margin: 0 auto; }
  .interview-head .name {
    font-size: 1.8rem;
    font-weight: bold; }
  .interview-head .position {
    font-size: 1.7rem; }

.interview-content {
  max-width: 660px;
  margin: 0 auto 64px;
  font-size: 1.7rem;
  line-height: 1.9; }
  .interview-content .heading {
    font-size: 2.2rem;
    margin-top: 2.5em;
    margin-bottom: 1.2em;
    padding-left: 0.8em;
    border-left: 3px solid #ce3a3a;
    line-height: 1.6; }
  .interview-content p {
    margin: 1.2em 0;
    letter-spacing: 0.02em; }

.btn-tohome {
  max-width: 360px;
  margin: 0 auto; }
  .btn-tohome a {
    display: block;
    font-size: 1.8rem;
    font-weight: bold;
    line-height: 1.4;
    padding: 16px;
    border-radius: 999px;
    color: #c93e3e;
    border: 4px solid #c93e3e;
    text-align: center; }
    @media (hover: hover) {
      .btn-tohome a {
        -webkit-transition: 0.2s;
        transition: 0.2s; }
        .btn-tohome a:hover {
          color: #fff;
          background-color: #c93e3e; } }

@media screen and (max-width: 736px) {
  .interview {
    margin-bottom: 64px; }

  .interview-hero {
    margin-bottom: 40px; }

  .interview-head .name {
    font-size: 1.6rem; }
  .interview-head .position {
    font-size: 1.5rem; }

  .interview-content {
    margin-bottom: 40px;
    font-size: 1.5rem; }
    .interview-content .heading {
      font-size: 1.8rem; }

  .btn-tohome {
    width: 85%; }
    .btn-tohome a {
      font-size: 1.5rem;
      padding: 14px; } }

/*# sourceMappingURL=style.css.map */