/* ==========================================================================
  Reset
  ========================================================================== */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 100%;
  font-weight: normal;
  font-style: normal;
  vertical-align: baseline; }

article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display: block; }

ul, ol {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote::before, blockquote::after, q::before, q::after {
  content: "";
  content: none; }

img {
  font-size: 0;
  line-height: 0; }

a {
  margin: 0;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  font-size: 100%;
  vertical-align: baseline; }

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

mark {
  background-color: #ff9;
  font-weight: bold;
  font-style: italic;
  color: #000; }

del {
  text-decoration: line-through; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help; }

table {
  border-spacing: 0;
  border-collapse: collapse; }

fieldset, img {
  line-height: 0;
  vertical-align: top; }

hr {
  display: none; }

input, select {
  vertical-align: middle; }

html {
  overflow-y: scroll;
  *zoom: 1;
  /* firefox */ }

* {
  margin: 0;
  padding: 0; }

img {
  vertical-align: bottom; }

html, body {
  width: 100%;
  height: 100%; }

ul, li {
  list-style: none; }

b {
  font-weight: bold; }

iframe {
  border: none;
  outline: none; }

p {
  margin: 0; }

/* ==========================================================================
  Base
========================================================================== */
* {
  box-sizing: border-box; }

body {
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Meiryo", sans-serif;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.02em; }

h1 {
  font-weight: 700;
  letter-spacing: 0.06em; }

h2 {
  font-weight: 600; }

.small,
.caption {
  font-size: 0.85rem;
  font-weight: 300;
  letter-spacing: 0.03em;
  color: #666; }

.pc {
  display: block; }
  @media screen and (max-width: 767px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media screen and (max-width: 767px) {
    .sp {
      display: block; } }

 /* ==========================================================================
  Main
========================================================================== */
.hero {
  min-height: 100vh;
  min-height: 100svh;
  height: auto; }
  @media screen and (min-width: 768px) {
    .hero {
      height: 100vh; } }
  .hero__inner {
    display: flex;
    min-height: calc(100vh - 53px);
    height: auto; }
    @media (max-width: 768px) {
      .hero__inner {
        flex-direction: column; } }
  .hero__left {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: #383737;
    padding-left: 8%; }
    @media screen and (max-width: 767px) {
      .hero__left {
        flex: none;
        padding: 50px 20px; } }
    .hero__left .hero__content-wrapper {
      position: relative;
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: center; }
    @media screen and (max-width: 767px) {
      .hero__left .hero__logo-area {
        width: 100%;
        width: -webkit-fill-available;
        max-width: 200px;
        margin: 0 auto 30px; } }
    .hero__left .hero__text-area {
      color: #fff;
      margin-top: 30px;
      text-align: center;
      line-height: 2rem; }
      @media screen and (max-width: 767px) {
        .hero__left .hero__text-area {
          margin-top: 0; } }
      .hero__left .hero__text-area .hero__lead {
        font-size: clamp(1rem, 3vw, 2.3rem);
        margin-bottom: 40px;
        font-weight: 700;
        line-height: 1.5em; }
        .hero__left .hero__text-area .hero__lead span {
          font-weight: 700;
          font-size: clamp(1rem, 3vw, 2.7rem); }
        @media screen and (max-width: 767px) {
          .hero__left .hero__text-area .hero__lead {
            font-size: 1.2em;
            margin-bottom: 30px;
            line-height: 1em; }
            .hero__left .hero__text-area .hero__lead span {
              font-size: 1.2em;
              line-height: 2em; } }
    .hero__left .hero__footer_pc {
      display: block;
      position: absolute;
      bottom: 8px;
      color: #fff;
      font-size: 12px;
      left: 50%;
      transform: translate(-50%); }
      @media screen and (max-width: 767px) {
        .hero__left .hero__footer_pc {
          display: none; } }
  .hero__right {
    flex: 0.5;
    background-color: #383737;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 8%;
    min-height: 100%;
    height: auto; }
    @media (max-width: 768px) {
      .hero__right {
        border-left: none;
        flex: 1;
        padding: 20px 10% 40px; } }
  .hero__visual-wrapper {
    width: 100%;
    max-width: 350px;
    display: flex;
    flex-direction: column;
    height: auto; }
    .hero__visual-wrapper .lead {
      color: #fff;
      text-align: center;
      padding: 0 0 13px;
      font-weight: 700;
      font-size: 1.3em;
      line-height: 1.3em;
      border-bottom: 1px solid #fff; }
    .hero__visual-wrapper .title-center-bar {
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      color: #fff;
      font-weight: bold;
      margin-top: 70px;
      letter-spacing: 0.1em; }
    .hero__visual-wrapper .title-center-bar::before,
    .hero__visual-wrapper .title-center-bar::after {
      content: "";
      flex-grow: 1;
      height: 1px;
      background: #fff; }
    .hero__visual-wrapper .title-center-bar::before {
      margin-right: 10px; }
    .hero__visual-wrapper .title-center-bar::after {
      margin-left: 10px; }
  .hero__visual-title {
    font-size: 1.2rem;
    color: #fff;
    text-align: center;
    margin-top: 20px; }
    @media screen and (max-width: 767px) {
      .hero__visual-title {
        font-size: 1rem; } }
  .hero__caption {
    letter-spacing: 0.05em;
    color: #fff;
    text-align: center;
    margin: 15px 0;
    line-height: 1.3em; }
  .hero__image-container {
    width: 100%; }
  .hero__image img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1000 / 1415; }
  .hero__btn-area {
    z-index: 10;
    width: 100%;
    text-align: center;
    margin-top: 20px;
    min-width: 300px; }
    .hero__btn-area a {
      border: 1px solid #fff;
      padding: 8px 50px;
      text-decoration: none;
      color: #fff; }
      .hero__btn-area a:hover {
        background-color: #fff;
        color: #000;
        transition: .7s; }

.hero__footer_sp {
  display: block;
  width: 100%;
  bottom: 0;
  font-size: 12px;
  padding: 7px 0;
  text-align: center;
  background-color: #2a2a2a;
  color: #fff; }
  @media screen and (max-width: 767px) {
    .hero__footer_sp {
      display: block;
      width: 100%;
      padding: 10px;
      text-align: center;
      font-size: 0.8rem;
      z-index: 10;
      color: #fff; } }
  .hero__footer_sp a {
    color: #fff;
    text-decoration: none; }
    .hero__footer_sp a:hover {
      opacity: 0.7;
      transition: 0.3s; }
