section {
  width: 100%; }
  section .inner {
    position: relative;
    z-index: 3; }

#basics_kv {
  position: relative;
  height: 32.2rem;
  background: #512D5D url("../images/kv_bg_pc.png") center top no-repeat;
  background-size: 220rem auto; }
  @media screen and (max-width: 768px) {
    #basics_kv {
      height: 53.8666666667vw;
      background: #512D5D url("../images/kv_bg_sp.png") center top no-repeat;
      background-size: 100% auto; } }

#basics_kv .kv_main {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding-top: 12rem;
  gap: 3rem; }
  @media screen and (max-width: 768px) {
    #basics_kv .kv_main {
      padding-top: 14.6666666667vw;
      gap: 4vw; } }
  #basics_kv .kv_main h1 {
    position: relative;
    color: #fff;
    font-weight: 700;
    font-size: 4.6rem;
    line-height: 1.29;
    padding: 0 10rem; }
    @media screen and (max-width: 768px) {
      #basics_kv .kv_main h1 {
        padding: 0 18.6666666667vw;
        font-size: 8.2666666667vw;
        white-space: nowrap; } }
  #basics_kv .kv_main p {
    position: relative;
    color: #fff;
    font-weight: 700;
    font-size: 2.4rem;
    line-height: 1; }
    @media screen and (max-width: 768px) {
      #basics_kv .kv_main p {
        font-size: 4.2666666667vw;
        line-height: 1.29; } }

#basics_kv .kv_main h1::before,
#basics_kv .kv_main h1::after {
  position: absolute;
  display: block;
  content: '';
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

#basics_kv .kv_main h1::before {
  background: url("../images/parts_h1.png") left 1.2rem no-repeat;
  background-size: 8rem auto; }
  @media screen and (max-width: 768px) {
    #basics_kv .kv_main h1::before {
      background: url("../images/parts_h1.png") left center no-repeat;
      background-size: 13.8666666667vw auto; } }

#basics_kv .kv_main h1::after {
  background: url("../images/parts_h1.png") right 1.2rem no-repeat;
  background-size: 8rem auto; }
  @media screen and (max-width: 768px) {
    #basics_kv .kv_main h1::after {
      background: url("../images/parts_h1.png") right center no-repeat;
      background-size: 13.8666666667vw auto; } }

.basics_inner {
  position: relative;
  z-index: 3;
  width: 100rem;
  margin: 0 auto; }
  @media screen and (max-width: 768px) {
    .basics_inner {
      width: 82.6666666667vw; } }

.read_txt {
  position: relative;
  text-align: center;
  color: #512D5D;
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.875;
  letter-spacing: 0.006em; }
  @media screen and (max-width: 768px) {
    .read_txt {
      text-align: justify;
      font-size: 3.7333333333vw;
      letter-spacing: 0.006em; } }

.cover_img {
  position: relative;
  overflow: hidden; }

.cover_img img {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; }

/**/
main {
  position: relative; }

#basics_main {
  position: relative;
  background: url("../images/bg_pc.png") center top no-repeat;
  background-size: 180rem auto; }
  @media screen and (max-width: 768px) {
    #basics_main {
      background: url("../images/bg_sp.png") center top no-repeat;
      background-size: 100% auto; } }

main::before {
  content: '';
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("../../../images/texture.webp") repeat;
  background-size: 100%;
  pointer-events: none;
  z-index: 1; }

#basics {
  position: relative;
  padding: 8rem 0 8rem; }
  @media screen and (max-width: 768px) {
    #basics {
      padding: 8vw 0 21.3333333333vw; } }

#basics .set {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  padding: 0 0 0; }
  @media screen and (max-width: 768px) {
    #basics .set {
      padding: 0vw 0 0;
      flex-direction: column;
      align-items: flex-start;
      gap: 20vw; } }

#basics .set a {
  position: relative;
  color: #512D5D;
  display: flex;
  flex-direction: column;
  width: 47.5rem; }
  @media screen and (max-width: 768px) {
    #basics .set a {
      width: 100%; } }
  #basics .set a figure {
    width: 100%;
    height: 32.9rem; }
    @media screen and (max-width: 768px) {
      #basics .set a figure {
        height: 64.8vw; } }
  #basics .set a h2 {
    position: relative;
    text-align: center;
    font-weight: 700;
    font-size: 3.5rem;
    line-height: 1;
    padding: 2.0rem 0;
    line-height: 1.45;
    margin-top: 4.0rem; }
    @media screen and (max-width: 768px) {
      #basics .set a h2 {
        padding: 4.6666666667vw 0;
        margin-top: 9.3333333333vw;
        font-size: 6.9333333333vw;
        white-space: nowrap; } }
  #basics .set a > p {
    position: relative;
    font-weight: 700;
    font-size: 1.8rem;
    line-height: 1.75;
    margin: 2.0rem 0 5.0rem; }
    @media screen and (max-width: 768px) {
      #basics .set a > p {
        margin: 4.6666666667vw 0;
        font-size: 3.7333333333vw; } }
  #basics .set a > span {
    position: relative;
    font-size: 1.0rem;
    line-height: 1.6;
    font-weight: 500;
    margin-top: .5rem; }
    @media screen and (max-width: 768px) {
      #basics .set a > span {
        font-size: 3.2vw;
        line-height: 1.6;
        margin-top: 0.6666666667vw; } }

#basics .set a.soon {
  pointer-events: none; }
  #basics .set a.soon > p {
    position: relative;
    text-align: center;
    font-weight: 700;
    font-size: 2.5rem;
    line-height: 1.75;
    margin: 3.0rem 0 0; }
    @media screen and (max-width: 768px) {
      #basics .set a.soon > p {
        margin: 4.6666666667vw 0 0;
        font-size: 5.2vw; } }

#basics .set a h2::before,
#basics .set a h2::after {
  position: absolute;
  display: block;
  content: '';
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

#basics .set a h2::before {
  background: url("../images/line.png") left top no-repeat;
  background-size: 100% auto; }

#basics .set a h2::after {
  background: url("../images/line.png") left bottom no-repeat;
  background-size: 100% auto; }

#basics .set a .arrow_txt {
  position: absolute;
  display: block;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center; }
  @media screen and (max-width: 768px) {
    #basics .set a .arrow_txt {
      position: relative !important; } }

#basics .set a .arrow_txt p {
  display: inline;
  margin: auto;
  padding-right: 1.5rem;
  font-size: 2rem;
  font-weight: 500;
  text-decoration: underline;
  background-image: url("../../../images/arrow_next.webp");
  background-repeat: no-repeat;
  background-size: 0.6666rem;
  background-position: top 1.1rem right;
  transition: all 0.4s ease;
  color: #512D5D; }
  @media screen and (max-width: 768px) {
    #basics .set a .arrow_txt p {
      font-size: 5vw;
      background-size: 1.6665333333vw;
      background-position: top 3vw right;
      padding-right: 1em; } }

/**/
#basics_kv .breadcrumb {
  width: 100%;
  height: 5.2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute !important;
  top: 0;
  left: 0;
  z-index: 3; }
  @media screen and (max-width: 768px) {
    #basics_kv .breadcrumb {
      min-height: 9.6vw;
      position: absolute;
      top: 2vw;
      left: 0; } }
  #basics_kv .breadcrumb ul {
    width: 100rem;
    margin: auto;
    height: 100%;
    padding: 0 4rem;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 1.5rem; }
    @media screen and (max-width: 768px) {
      #basics_kv .breadcrumb ul {
        width: 82.6666666667vw;
        padding: 0 0;
        flex-wrap: wrap;
        row-gap: 0.6vw;
        align-items: flex-start; } }
    #basics_kv .breadcrumb ul li {
      font-size: 1.3rem;
      font-weight: 700;
      color: #fff; }
      @media screen and (max-width: 768px) {
        #basics_kv .breadcrumb ul li {
          font-size: 2.9333333333vw; } }
      #basics_kv .breadcrumb ul li a {
        font-size: 1.3rem;
        font-weight: 700;
        color: #fff;
        text-decoration: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6.03 10.48'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:none;stroke:%23fff;stroke-miterlimit:10;stroke-width:.77px;%7D%3C/style%3E%3C/defs%3E%3Cpolyline class='cls-1' points='.27 .29 5.47 5.01 .27 10.21'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-size: 0.51969rem;
        background-position: center right;
        padding-right: 1.9rem; }
        @media screen and (max-width: 768px) {
          #basics_kv .breadcrumb ul li a {
            font-size: 2.9333333333vw;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6.03 10.48'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:none;stroke:%23fff;stroke-miterlimit:10;stroke-width:.77px;%7D%3C/style%3E%3C/defs%3E%3Cpolyline class='cls-1' points='.27 .29 5.47 5.01 .27 10.21'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-size: 0.97442rem;
            padding-right: 4vw; } }
