:root {
  --font-size-base: 1;
  --text-size-scale: 1.2;
}

.c-main.sh-12 {
  position: relative;
}
.c-main.sh-12::before {
  display: block;
  content: "";
  background: url(../images/SH12/mv-bg_a.png) no-repeat top center/100% auto;
  width: 65.1rem;
  height: 45.6rem;
  position: absolute;
  top: -3rem;
  left: -2rem;
  right: 0;
  margin: 0 auto;
  z-index: -1;
}
@media only screen and (max-width: 768px) {
  .c-main.sh-12::before {
    height: 40rem;
    top: -10rem;
    margin-bottom: 3rem;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-mv {
    height: 52rem;
    margin-bottom: 4rem;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-mv__inner {
    width: 110rem;
    margin: 0 auto;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-mv__inner .c-main__title.hc-mv {
    padding-top: 3rem;
    height: 27rem;
    margin-bottom: 2rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-mv__inner .c-main__title.hc-mv {
    margin-bottom: 3rem;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-mv__inner .c-main__title {
    margin-bottom: 2.5rem;
  }
}

.SH12-mv__inner .hc-lead {
  font-weight: 400;
}
@media not screen and (max-width: 768px), print {
  .SH12-mv__inner .hc-lead {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
    margin-bottom: 2rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-mv__inner .hc-lead {
    text-align: left;
    margin-bottom: 10rem;
  }
}
.SH12-mv__inner .hc-lead span {
  font-weight: 700;
}
@media not screen and (max-width: 768px), print {
  .SH12-mv__inner .hc-lead span {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-nav {
    height: 40rem;
    margin-top: 3rem;
    margin-bottom: 13rem;
    overflow: hidden;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav {
    padding-top: 4rem;
    margin-bottom: 13rem;
  }
}

.SH12-nav__inner {
  display: flex;
  align-items: stretch;
  justify-content: center;
}
@media only screen and (max-width: 768px) {
  .SH12-nav__inner {
    flex-direction: column;
    align-items: center;
  }
}

.SH12-nav__link {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link {
    width: 50%;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__link {
    width: 100%;
    height: 50rem;
    padding-top: 3rem;
  }
  .SH12-nav__link + .SH12-nav__link {
    margin-top: 5rem;
  }
}

.SH12-nav__link__main {
  display: flex;
  align-items: center;
  flex-direction: column;
  position: relative;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link__main {
    height: 40.2rem;
    padding-top: 4rem;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link__main.is-left {
    align-items: flex-end;
    padding: 3rem 11rem 0 11rem;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link__main.is-right {
    align-items: flex-start;
    padding: 3rem 11rem 0 11rem;
  }
}
.SH12-nav__link__main:hover .SH12-nav__title,
.SH12-nav__link__main:hover .SH12-nav__text {
  color: #fff;
}
.SH12-nav__link__main:hover .SH12-nav__sub {
  background: #fff;
}
.SH12-nav__link__main:hover .SH12-nav__sub p {
  color: #00bfb3;
}
.SH12-nav__link__main.is-left::before {
  background: url(../images/SH12/SH12-nav-bg_left.png) no-repeat right bottom/cover;
  display: block;
  content: "";
  position: absolute;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link__main.is-left::before {
    width: 55vw;
    height: 40.2rem;
    top: 0;
    right: -2rem;
    z-index: -1;
    opacity: 1;
    transition: all 0.15s ease-in-out;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__link__main.is-left::before {
    width: 100%;
    height: 120%;
    right: 0;
    top: -3rem;
    z-index: -1;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link__main.is-left::after {
    background: url(../images/SH12/SH12-nav-bg_left_b.png) no-repeat right bottom/cover;
    display: block;
    content: "";
    width: 55vw;
    height: 40.2rem;
    position: absolute;
    top: 0;
    right: -2rem;
    z-index: -1;
    opacity: 0;
    transition: all 0.15s ease-in-out;
  }
}
.SH12-nav__link__main.is-right::before {
  background: url(../images/SH12/SH12-nav-bg_right.png) no-repeat left bottom/cover;
  display: block;
  content: "";
  position: absolute;
  z-index: -1;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link__main.is-right::before {
    width: 55vw;
    height: 40.2rem;
    top: 0;
    left: -2rem;
    opacity: 1;
    transition: all 0.15s ease-in-out;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__link__main.is-right::before {
    width: 100%;
    height: 40rem;
    top: -3rem;
    left: 0;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__link__main.is-right::after {
    background: url(../images/SH12/SH12-nav-bg_right_b.png) no-repeat left bottom/cover;
    display: block;
    content: "";
    width: 55vw;
    height: 40.2rem;
    position: absolute;
    top: 0;
    left: -2rem;
    z-index: -1;
    opacity: 0;
    transition: all 0.15s ease-in-out;
  }
}

.SH12-nav__link__main.is-left:hover::before {
  opacity: 0;
}
.SH12-nav__link__main.is-left:hover::after {
  opacity: 1;
}

.SH12-nav__link__main.is-right:hover::before {
  opacity: 0;
}
.SH12-nav__link__main.is-right:hover::after {
  opacity: 1;
}

.SH12-nav__title {
  transition: all 0.15s ease-in-out;
  font-weight: 500;
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  position: relative;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__title {
    font-size: calc(39 * var(--font-size-base) * 0.1rem);
    margin-bottom: 2rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__title {
    font-size: calc(40 * var(--font-size-base) * 0.1rem);
    margin-bottom: 2rem;
  }
}
.SH12-nav__title::before {
  display: block;
  content: "";
  background: url(../images/SH12/SH12-nav-arrow.jpg) no-repeat center center/100% auto;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__title::before {
    width: 2.7rem;
    height: 2.7rem;
    margin-right: 1.3rem;
    opacity: 1;
    transition: opacity 0.15s ease-in-out;
    position: absolute;
    top: 2rem;
    left: -4rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__title::before {
    width: 2.7rem;
    height: 2.7rem;
    margin-right: 1.3rem;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__title::after {
    display: block;
    content: "";
    background: url(../images/SH12/SH12-nav-arrow__w.jpg) no-repeat center center/100% auto;
    width: 2.7rem;
    height: 2.7rem;
    margin-right: 1.3rem;
    opacity: 0;
    transition: opacity 0.15s ease-in-out;
    position: absolute;
    top: 2rem;
    left: -4rem;
  }
}

.SH12-nav__link__main:hover .SH12-nav__title::before {
  opacity: 0;
}

.SH12-nav__link__main:hover .SH12-nav__title::after {
  opacity: 1;
}

.SH12-nav__text {
  transition: all 0.15s ease-in-out;
  font-weight: 500;
  text-align: center;
  line-height: 1.2;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__text {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
    margin-bottom: 2rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__text {
    font-size: calc(30 * var(--font-size-base) * 0.1rem);
    margin-bottom: 2rem;
  }
}

.SH12-nav__sub {
  transition: all 0.15s ease-in-out;
  background: #00bfb3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__sub {
    border-radius: 1.7rem;
    padding: 1.5rem 3.5rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__sub {
    border-radius: 1.7rem;
    padding: 1.5rem 0;
    width: 70%;
  }
}

.SH12-nav__sub p {
  transition: all 0.15s ease-in-out;
  color: #fff;
  font-weight: 500;
  text-align: center;
}
@media not screen and (max-width: 768px), print {
  .SH12-nav__sub p {
    font-size: calc(18 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .SH12-nav__sub p {
    font-size: calc(27 * var(--font-size-base) * 0.1rem);
    line-height: 2;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-section {
    width: 110rem;
    margin-right: auto;
    margin-left: auto;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-section {
    padding: 0 4rem;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-section + .SH12-section {
    margin-top: 14rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-section + .SH12-section {
    margin-top: 10rem;
  }
}

.SH12-cate__title {
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__title {
    font-size: calc(30 * var(--font-size-base) * 0.1rem);
    background: url(../images/SH12/SH12-ttl-bg.png) no-repeat center center/100% auto;
    width: 100%;
    height: 7.1rem;
    margin-bottom: 6rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__title {
    font-size: calc(39 * var(--font-size-base) * 0.1rem);
    background: url(../images/SH12/SH12-ttl-bg.png) no-repeat center center/auto 100%;
    width: 100%;
    height: 10rem;
    margin-bottom: 6rem;
  }
}

.SH12-cate__block {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__block {
    padding-bottom: 5rem;
    border-bottom: 3px solid #53565a;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__block {
    padding-bottom: 8rem;
    border-bottom: 1px solid #53565a;
    flex-direction: column;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__block + .SH12-cate__block {
    margin-top: 5rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__block + .SH12-cate__block {
    margin-top: 5rem;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-cate__left {
    width: 31.6rem;
  }
}
.SH12-cate__left p {
  font-weight: 500;
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__left p {
    font-size: calc(22 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__left p {
    text-align: center;
    font-size: calc(33 * var(--font-size-base) * 0.1rem);
    margin-bottom: 1rem;
  }
}
.SH12-cate__left h3 {
  font-weight: 500;
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__left h3 {
    font-size: calc(26 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__left h3 {
    text-align: center;
    font-size: calc(36 * var(--font-size-base) * 0.1rem);
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-cate__right {
    width: calc(100% - 31.6rem);
    padding-left: 5rem;
    border-left: 1px solid #d9d9d6;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__right {
    border-top: 1px solid #d9d9d6;
    padding-top: 3rem;
    margin-top: 3rem;
  }
}

.SH12-cate__text {
  line-height: 1.8;
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__text {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
    margin-bottom: 2rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__text {
    font-size: calc(24 * var(--font-size-base) * 0.1rem);
    margin-bottom: 5rem;
  }
}
.SH12-cate__text strong {
  display: block;
}
@media only screen and (max-width: 768px) {
  .SH12-cate__text strong {
    text-align: center;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-cate__right .c-button {
    width: 35rem;
    height: 7rem;
    padding: 0 3rem;
    margin-left: auto;
    margin-right: 0;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__right .c-button {
    width: 60rem;
    height: 12rem;
    margin: 0 auto;
    padding: 0 3rem;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__right .c-button span {
    font-size: calc(16 * var(--font-size-base) * 0.1rem);
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__right .c-button span {
    font-size: calc(27 * var(--font-size-base) * 0.1rem);
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-cate__right .c-button svg {
    width: 4.6rem;
    height: auto;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__right .c-button svg {
    width: 5.6rem;
    height: auto;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__right .c-button + .c-button {
    margin-top: 3rem;
  }
}

.SH12-links {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media only screen and (max-width: 768px) {
  .SH12-links {
    flex-direction: column;
  }
}
@media not screen and (max-width: 768px), print {
  .SH12-links .c-button {
    margin: 0;
  }
}

@media not screen and (max-width: 768px), print {
  .SH12-cate__box + .SH12-cate__box {
    margin-top: 5rem;
  }
}
@media only screen and (max-width: 768px) {
  .SH12-cate__box + .SH12-cate__box {
    margin-top: 5rem;
  }
}

.SH12-cate__block:last-child {
  border: none;
}/*# sourceMappingURL=SH12.css.map */