@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700&display=swap");
html {
  line-height: 1; }

body {
  font-family: 'Noto Sans JP', sans-serif; }

a {
  display: inline-block; }
  a:hover {
    opacity: 0.6; }

img {
  vertical-align: top; }

.wrapper {
  max-width: 980px;
  margin: 0 auto; }

@media (max-width: 980px) {
  .wrapper {
    padding: 0 30px; } }

.is-noto {
  font-family: 'Noto Sans JP', sans-serif; }

@media (min-width: 415px) {
  .br_sp {
    display: none; } }

.is-pc {
  display: block; }
  @media (max-width: 768px) {
    .is-pc {
      display: none; } }

.is-sp {
  display: none; }
  @media (max-width: 768px) {
    .is-sp {
      display: block; } }

.is-title {
  font-size: 43px;
  font-size: 2.6875rem;
  padding-left: 33px;
  line-height: 1.488;
  font-weight: normal;
  margin-bottom: 13px;
  position: relative; }
  .is-title:after {
    content: url(../images/top/exclamation.png);
    position: absolute;
    left: 0;
    top: 13px; }

@media (max-width: 768px) {
  .is-title {
    font-size: 38px;
    font-size: 2.375rem; } }

.header__pc {
  position: absolute;
  top: 59px;
  background-color: #fff;
  padding: 21px 44px 22px 37px;
  width: 100%;
  max-width: 975px;
  box-shadow: 5px 5px rgba(0, 0, 0, 0.16);
  display: flex;
  justify-content: space-between;
  z-index: 5; }
  @media (max-width: 980px) {
    .header__pc {
      display: none; } }

.header__logo {
  max-width: 188px;
  display: flex;
  align-items: center; }
  .header__logo img {
    width: 100%; }

.header__nav {
  list-style: none;
  display: flex; }

.header__list {
  text-align: center;
  padding: 0 53px 0;
  position: relative; }
  .header__list a {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.5;
    letter-spacing: 0.03em;
    color: #000;
    text-decoration: none;
    display: block; }
    .header__list a span {
      display: block;
      font-size: 10px;
      font-size: 0.625rem;
      line-height: 1.5;
      color: #888888; }
  .header__list::after {
    content: '';
    height: 8px;
    width: 1px;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(-50%, -50%);
    background-color: #000; }
  .header__list:last-child {
    padding-right: 0; }
    .header__list:last-child::after {
      display: none; }

@media (min-width: 769px) {
  .header_sp {
    display: none; } }

@media (max-width: 980px) {
  .header_sp {
    display: block;
    position: absolute;
    z-index: 10;
    top: 25px;
    width: calc(100% - 60px);
    height: 28px; }
  .header__menu_sp {
    position: fixed;
    align-items: center;
    cursor: pointer;
    top: 33px;
    z-index: 30; }
  .header__menu_bar {
    width: 34px;
    height: 5px;
    background-color: #D4004E;
    position: relative; }
    .header__menu_bar::before {
      content: '';
      width: 34px;
      height: 5px;
      position: absolute;
      top: -10px;
      background-color: #D4004E; }
    .header__menu_bar::after {
      content: '';
      width: 34px;
      height: 5px;
      position: absolute;
      top: 10px;
      background-color: #D4004E; }
  .header__logo_sp {
    width: 138px;
    display: flex;
    align-items: center;
    margin-right: 0;
    margin-left: auto; }
    .header__logo_sp img {
      width: 100%; } }

.header_bg {
  height: 361px;
  width: 100%;
  background-image: url("../images/common/header_bg.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat; }
  .header_bg__ttl {
    font-size: 46px;
    font-size: 2.875rem;
    font-weight: bold;
    line-height: 1.478;
    text-align: center;
    padding-top: 229px; }

@media (max-width: 768px) {
  .header_bg {
    height: 199px;
    background-image: url("../images/common/header_bg_sp.jpg"); }
    .header_bg__ttl {
      padding-top: 105px;
      font-size: 35px;
      font-size: 2.1875rem;
      line-height: 1.228;
      letter-spacing: .02em; }
      .header_bg__ttl_service {
        padding-top: 75px; } }

.modal {
  background-color: #fff;
  width: 100vw;
  height: 100vh;
  position: fixed;
  z-index: 8;
  top: 0;
  right: 0;
  justify-content: center;
  align-items: center;
  text-align: center;
  display: none; }
  .modal__menus {
    list-style: none;
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
  .modal__menu {
    margin-bottom: 34px; }
    .modal__menu:last-child {
      margin-bottom: 0; }
  .modal__menu a {
    font-size: 26px;
    font-size: 1.625rem;
    line-height: 1.461;
    text-decoration: none;
    color: #000;
    font-weight: bold; }

.modal-active {
  background-color: #fff; }
  .modal-active:before {
    top: 0;
    transform: rotate(45deg);
    transition: 0.2s; }
  .modal-active:after {
    top: 0;
    transform: rotate(-45deg);
    transition: 0.2s; }

.footer {
  padding: 32px 0 28px;
  background-color: #333333; }
  .footer__nav {
    color: #fff;
    display: flex;
    justify-content: center;
    list-style: none; }
  .footer__list {
    padding: 0 34px;
    position: relative; }
    .footer__list a {
      font-size: 10px;
      font-size: 0.625rem;
      line-height: 1.8;
      color: #fff;
      text-decoration: none; }
    .footer__list::after {
      content: '';
      height: 10px;
      width: 2px;
      background-color: #fff;
      position: absolute;
      right: 0;
      top: 10px; }
    .footer__list:first-child {
      padding-left: 0; }
    .footer__list:last-child {
      padding-right: 0; }
      .footer__list:last-child::after {
        display: none; }

@media (max-width: 768px) {
  .footer {
    padding: 0 0 49px; }
    .footer__nav {
      justify-content: space-between;
      flex-wrap: wrap; }
    .footer__list {
      padding: 0;
      text-align: center;
      width: 50%;
      border-bottom: 1px solid #fff; }
      .footer__list a {
        display: block;
        font-size: 12px;
        font-size: 0.75rem;
        padding: 15px 0 17px; }
      .footer__list::after {
        display: none; }
      .footer__list:nth-child(odd) {
        border-right: 1px solid #fff; } }

.sns {
  text-align: center;
  margin-top: 24px; }
  .sns__ttl {
    font-size: 10px;
    font-size: 0.625rem;
    font-weight: bold;
    color: #fff; }
  .sns__list {
    display: flex;
    justify-content: center;
    list-style: none;
    margin-top: 17px; }
  .sns__icon {
    margin-right: 20px; }
    .sns__icon:last-child {
      margin-right: 0; }
    .sns__icon a {
      text-decoration: none;
      color: #fff; }
      .sns__icon a i {
        font-size: 24px;
        font-size: 1.5rem; }
  .sns__btn {
    margin-top: 25px;
    text-align: center; }
    .sns__btn a {
      text-decoration: none;
      color: #333333;
      background-color: #fff;
      font-size: 13px;
      font-size: 0.8125rem;
      line-height: 1.461;
      padding: 8px 31px 8px 17px;
      position: relative; }
      .sns__btn a::after {
        content: '';
        position: absolute;
        top: 13px;
        right: 13px;
        width: 8px;
        height: 8px;
        border-top: 2px solid #333;
        border-right: 2px solid #333;
        transform: rotate(45deg); }

@media (max-width: 768px) {
  .sns {
    margin-top: 34px; }
    .sns__btn {
      display: none; } }

.copy {
  color: #fff;
  text-align: center;
  margin-top: 32px;
  font-size: 9px;
  font-size: 0.5625rem;
  line-height: 3.111;
  font-weight: bold; }

iframe .place-card, .place-card-large {
  display: none; }

.wrapper_top {
  padding: 203px 0 96px; }

@media (max-width: 980px) {
  .wrapper_top {
    padding: 203px 30px 96px; } }

@media (max-width: 768px) {
  .wrapper_top {
    padding: 108px 30px 55px; } }

.mainvisual {
  background-color: #F2F3F7;
  position: relative; }
  .mainvisual img {
    width: 100%; }
  .mainvisual::after {
    content: url("../images/top/scroll.png");
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%); }
  .mainvisual__wrapper {
    position: relative; }
  .mainvisual__name {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #D4004E; }
    @media (max-width: 980px) {
      .mainvisual__name {
        padding: 0 30px; } }
  .mainvisual__ttl {
    font-size: 76px;
    font-size: 4.75rem;
    line-height: 1.144;
    font-family: 'ITC Avant Garde Gothic Demi', 'Noto Sans JP', sans-serif;
    margin-bottom: 23px;
    font-weight: 600; }
  .mainvisual__txt {
    font-size: 16px;
    font-size: 1rem;
    font-weight: bold;
    padding-left: 20px;
    letter-spacing: 0.4em;
    line-height: 1.875;
    position: relative; }
    .mainvisual__txt::before {
      content: '';
      position: absolute;
      width: 5px;
      height: 2px;
      top: 50%;
      left: 0;
      background-color: #D4004E; }
    .mainvisual__txt::after {
      content: '';
      position: absolute;
      width: 5px;
      height: 2px;
      top: 50%;
      left: 160px;
      background-color: #D4004E; }
  .mainvisual__add {
    font-size: 12px;
    font-size: 0.75rem;
    font-weight: bold;
    padding-left: 20px;
    letter-spacing: 0.4em;
    line-height: 1.875; }

@media (min-width: 769px) {
  .mainvisual_sp {
    display: none; } }

@media (max-width: 768px) {
  .mainvisual {
    display: none; }
  .mainvisual_sp {
    display: block;
    background-color: #F2F3F7;
    position: relative; }
    .mainvisual_sp__wrapper {
      position: relative; }
    .mainvisual_sp img {
      width: 100%; }
    .mainvisual_sp::after {
      content: url("../images/top/scroll.png");
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%); }
    .mainvisual_sp__name {
      position: absolute;
      left: 0;
      color: #D4004E;
      padding: 0 30px; } }
    @media (max-width: 768px) and (max-width: 768px) {
      .mainvisual_sp__name {
        top: 17%; } }
    @media (max-width: 768px) and (max-width: 414px) {
      .mainvisual_sp__name {
        top: 117px; } }

@media (max-width: 768px) {
    .mainvisual_sp__ttl {
      font-size: 69px;
      font-size: 4.3125rem;
      line-height: 1.13;
      font-family: 'ITC Avant Garde Gothic', 'Noto Sans JP', sans-serif;
      margin-bottom: 20px;
      font-weight: 600; }
    .mainvisual_sp__txt {
      font-size: 19px;
      font-size: 1.1875rem;
      font-weight: bold;
      line-height: 1.578;
      padding-left: 30px;
      position: relative;
      letter-spacing: 0.4em; }
      .mainvisual_sp__txt::before {
        position: absolute;
        left: 0;
        top: 50%;
        content: "";
        width: 5px;
        height: 2px;
        background-color: #D4004E; }
      .mainvisual_sp__txt::after {
        position: absolute;
        left: 195px;
        top: 50%;
        content: "";
        width: 5px;
        height: 2px;
        background-color: #D4004E; }
    .mainvisual_sp__add {
      font-size: 12px;
      font-size: 0.75rem;
      font-weight: bold;
      line-height: 2.5;
      padding-left: 40px;
      letter-spacing: 0.4em; } }

@media (max-width: 414px) {
  .mainvisual_sp {
    height: 100vh; } }

.about__inner {
  position: relative;
  top: -41px;
  margin-left: 24px;
  background-color: #F2F3F7;
  padding: 66px 55px 63px 66px;
  z-index: -1;
  margin-bottom: -41px; }

.about__txt {
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: 2.3529;
  letter-spacing: 0.02em; }

.about__btn {
  position: relative;
  top: -18px;
  text-align: center;
  margin-bottom: -18px; }
  .about__btn a {
    background-color: #D4004E;
    text-decoration: none;
    color: #fff;
    font-size: 13px;
    font-size: 0.8125rem;
    font-weight: bold;
    padding: 8px 58px 8px 47px;
    line-height: 1.461;
    position: relative; }
    .about__btn a::after {
      content: url("../images/top/arrow.png");
      position: absolute;
      right: 12px;
      top: 9px; }

@media (max-width: 768px) {
  .about__inner {
    padding: 56px 23px 55px 32px;
    margin-left: 0; }
  .about__txt {
    font-size: 16px;
    font-size: 1rem;
    line-height: 2.187;
    letter-spacing: 0.018em; }
  .about__btn a {
    padding: 11px 73px 9px 66px;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.428; }
    .about__btn a::after {
      content: url("../images/top/arrow_sp.png");
      top: 12px;
      right: 11px; } }

.service {
  margin-top: 119px; }
  .service__inner {
    margin-top: 60px; }
  .service__list {
    display: flex;
    margin-bottom: 74px; }
  .service__box {
    width: 50%;
    border: 1px solid #707070;
    display: flex;
    justify-content: center;
    align-items: center; }
  .service__box_reverce {
    order: 2; }
  .service__img {
    max-width: 267px; }
    .service__img img {
      width: 100%; }
    .service__img_switch {
      max-width: 280px; }
    .service__img_iot {
      max-width: 100px; }
  .service__content {
    width: 50%;
    max-width: 333px;
    margin: 0 auto; }
  .service__content_reverce {
    order: 1; }
  .service__name {
    color: #D4004E;
    font-size: 20px;
    font-size: 1.25rem;
    line-height: 1.774;
    font-weight: bold;
    margin-top: 26px;
    letter-spacing: 0.04em; }
  .service__txt {
    font-size: 13px;
    font-size: 0.8125rem;
    font-weight: bold;
    line-height: 2.384;
    margin-top: 40px;
    letter-spacing: 0.055em; }
  .service__btn {
    margin-top: 40px;
    margin-bottom: 34px;
    text-align: center; }
    .service__btn a {
      background-color: #D4004E;
      color: #fff;
      padding: 8px 33px 8px 20px;
      text-decoration: none;
      line-height: 1.461;
      font-size: 13px;
      font-size: 0.8125rem;
      font-weight: bold;
      position: relative; }
      .service__btn a::after {
        content: url("../images/top/arrow.png");
        position: absolute;
        right: 12px;
        top: 10px; }
  .service__btn_sp {
    display: none; }

@media (max-width: 768px) {
  .service {
    margin-top: 79px; }
    .service__ttl {
      line-height: 1.21 !important; }
    .service__inner {
      margin-top: 34px; }
    .service__list {
      flex-direction: column;
      margin-bottom: 57px; }
    .service__box {
      width: 100%;
      height: 169px;
      order: 2; }
    .service__box_reverce {
      order: 2; }
    .service__img_switch {
      max-width: 234px;
      position: relative;
      top: -10px; }
    .service__img_unko {
      max-width: 181px;
      position: relative;
      top: -5px; }
    .service__content {
      width: 100%;
      order: 1;
      max-width: none; }
    .service__content_reverce {
      order: 1; }
    .service__name {
      margin-top: 0;
      font-size: 20px;
      font-size: 1.25rem;
      line-height: 1.55; }
    .service__txt {
      margin-top: 19px;
      margin-bottom: 24px;
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 2.214; }
    .service__btn {
      display: none; }
    .service__btn_sp {
      display: block;
      order: 3;
      text-align: center;
      position: relative;
      top: -21px;
      margin-bottom: -21px; }
      .service__btn_sp a {
        padding: 11px 57px 9px 39px;
        background-color: #D4004E;
        color: #fff;
        text-decoration: none;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 1.428;
        position: relative; }
        .service__btn_sp a::after {
          content: url("../images/top/arrow_sp.png");
          position: absolute;
          top: 12px;
          right: 11px; } }

.news {
  position: relative; }
  .news__ttl {
    position: absolute;
    z-index: 3; }
  .news__inner {
    list-style: none;
    padding-top: 34px;
    margin-left: 24px;
    margin-bottom: 49px;
    position: relative;
    z-index: 1; }
  .news__list {
    list-style: none;
    margin-bottom: 12px; }
    .news__list:last-child {
      margin-bottom: 0; }
  .news__lists {
    display: block;
    padding: 33px 46px 27px 20px;
    background-color: #F2F3F7;
    display: flex;
    justify-content: space-between;
    position: relative;
    color: #000;
    text-decoration: none; }
    .news__lists::after {
      content: url(../images/top/arrow_news.png);
      position: absolute;
      top: 55%;
      right: 29px;
      transform: translateY(-50%); }
  .news__info {
    width: 258px;
    margin-right: 53px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative; }
    .news__info:after {
      content: '';
      width: 1px;
      height: 20px;
      background-color: #707070;
      position: absolute;
      top: 50%;
      right: -30px;
      transform: translateY(-50%); }
  .news__category {
    font-size: 11px;
    font-size: 0.6875rem;
    line-height: 1.20;
    padding: 7px 7px 7px 10px;
    border: 1px solid #707070;
    margin-right: 23px;
    width: 159px;
    text-align: center;
    color: #707070; }
    @media (max-width: 768px) {
      .news__category {
        font-size: 13px;
        font-size: 0.8125rem;
        width: 190px; } }
  .news__date {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: 2.384;
    letter-spacing: 0.015em; }
  .news__content {
    flex: 1 1 0%;
    max-width: 577px; }
  .news__txt {
    font-size: 13px;
    font-size: 0.8125rem;
    line-height: 2.384;
    letter-spacing: 0.015em; }
  .news__btn {
    text-align: center; }
    .news__btn a {
      background-color: #D4004E;
      text-decoration: none;
      color: #fff;
      font-size: 13px;
      font-size: 0.8125rem;
      line-height: 1.461;
      padding: 9px 75px 7px 59px;
      font-weight: bold;
      position: relative; }
      .news__btn a::after {
        content: url("../images/top/arrow.png");
        position: absolute;
        right: 12px;
        top: 10px; }

@media (max-width: 768px) {
  .news__ttl {
    position: static; }
  .news__inner {
    position: static;
    padding-top: 0;
    margin-top: 57px;
    margin-left: 0;
    margin-bottom: 27px; }
  .news__list {
    margin-bottom: 21px; }
  .news__lists {
    padding: 18px 45px 14px 20px;
    flex-direction: column; }
    .news__lists::after {
      top: 51%;
      right: 20px; }
  .news__info {
    width: 100%;
    justify-content: flex-start;
    padding-bottom: 17px;
    align-self: flex-end;
    margin-right: 0; }
    .news__info:after {
      width: 100%;
      height: 1px;
      top: 100%;
      right: 0; }
  .news__category {
    font-size: 13px;
    font-size: 0.8125rem;
    margin-right: 27px !important; }
  .news__date {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 2.21; }
  .news__txt {
    margin-top: 19px;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.928; }
  .news__btn a {
    font-size: 14px;
    font-size: 0.875rem;
    padding: 11px 97px 9px 70px; }
    .news__btn a::after {
      content: url("../images/top/arrow_sp.png");
      top: 12px;
      right: 11px; } }

.category_yellow {
  font-size: 11px;
  font-size: 0.6875rem;
  line-height: 1.20;
  padding: 7px 7px 7px 10px;
  border: 1px solid #E5A31C;
  margin-right: 23px;
  width: 159px;
  text-align: center;
  color: #E5A31C; }
  @media (max-width: 768px) {
    .category_yellow {
      font-size: 13px;
      font-size: 0.8125rem;
      width: 190px; } }

.category_pink {
  font-size: 11px;
  font-size: 0.6875rem;
  line-height: 1.20;
  padding: 7px 7px 7px 10px;
  border: 1px solid #D4004E;
  margin-right: 23px;
  width: 159px;
  text-align: center;
  color: #D4004E; }
  @media (max-width: 768px) {
    .category_pink {
      font-size: 13px;
      font-size: 0.8125rem;
      width: 190px; } }

.category_green {
  font-size: 11px;
  font-size: 0.6875rem;
  line-height: 1.20;
  padding: 7px 7px 7px 10px;
  border: 1px solid #5FA153;
  margin-right: 23px;
  width: 159px;
  text-align: center;
  color: #5FA153; }
  @media (max-width: 768px) {
    .category_green {
      font-size: 13px;
      font-size: 0.8125rem;
      width: 190px; } }

.category_blue {
  font-size: 11px;
  font-size: 0.6875rem;
  line-height: 1.20;
  padding: 7px 7px 7px 10px;
  border: 1px solid #50BBF4;
  margin-right: 23px;
  width: 159px;
  text-align: center;
  color: #50BBF4; }
  @media (max-width: 768px) {
    .category_blue {
      font-size: 13px;
      font-size: 0.8125rem;
      width: 190px; } }
