/* media query
**************************************************************************************************/
body {
  font: 16px YakuHanJP,'Noto Sans JP', sans-serif;
  font-weight: 500;
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
  background: #fff;
  color: #000;
  font-feature-settings: "palt";
  font-optical-sizing: auto;
  letter-spacing: .5px;
  -webkit-font-smoothing: antialiased; }

.en {
  font-family: "Sen", serif; }

img {
  width: 100%;
  height: auto; }

a {
  transition: all 0.5s; }
  a:hover {
    opacity: 0.65; }

/* font
**************************************************************************************************************************/
/* animation
**************************************************************************************************************************/
/* layout
**************************************************************************************************************************/
.is_tb {
  display: none !important; }

.is_tb_inline {
  display: none !important; }

.is_pc {
  display: none !important; }

.is_pc_inline {
  display: none !important; }

/* status
**************************************************************************************************************************/
.is-hide {
  display: none; }

.is-flex {
  display: flex; }
  .is-flex > * {
    margin: 0 !important; }
  .is-flex > *:first-of-type {
    margin-right: 10px !important; }
  .is-flex .is-flex-fix {
    flex-flow: 0;
    flex-shrink: 0; }

.is-primary {
  color: #E30C0C; }

.is-alert {
  color: #E30C0C; }

/* common
**************************************************************************************************************************/
body {
  transition: all 0.5s; }
  body .wrap {
    overflow: clip;
    margin-top: 143px;
    transition: all 0.5s; }
  body.has-mininav .wrap {
    /* margin-top: 81px; */ }
  body.recruit-top {
    background: url(/asset/img/recruit/top/bg_blur_kv_sp.png) 0 0 no-repeat;
    background-size: 100% auto; }
    body.recruit-top .wrap {
      padding-top: 30px; }
  @media only screen and (min-width: 1025px) {
    body .wrap {
      margin-top: 199px; }
    body.has-mininav .wrap {
      /* argin-top: 137px; */ }
    body.recruit-top {
      background: url(/asset/img/recruit/top/bg_blur_kv_pc.png) 50% 0 no-repeat;
      background-size: 100% auto; }
      body.recruit-top .wrap {
        padding-top: 50px; } }

header.common {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 50;
  max-height: 100dvh;
  overflow-y: clip; }
  .is-open header.common {
    overflow-y: scroll; }
  header.common .group {
    border-top: 4px solid #E30C0C;
    background: #faf7df;
    padding: 15px 10px;
    border-bottom: 1px solid rgba(150, 150, 153, 0.4);
    position: relative;
    top: 0;
    transition: all 0.5s; }
    header.common .group ul {
      display: flex;
      justify-content: space-between;
      align-items: center; }
      header.common .group ul .logo {
        width: 250px;
        margin-left: -10px; }
      header.common .group ul .link {
        font-size: 11px; }
        header.common .group ul .link a {
          text-decoration: underline; }
  header.common .inner {
    transition: all 0.5s; }
  header.common.is-mini .group {
    top: -62px;
    margin-bottom: -62px; }
  header.common.is-mini .inner {
    top: -67px;
    margin-bottom: -67px; }
  header.common.is-mini .si-nav.first .tgl {
    top: 16px; }
  header.common .si-nav.first {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    background: #fff; }
    .recruit-top header.common .si-nav.first {
      background: none; }
    .recruit-top.is-back header.common .si-nav.first {
      background: rgba(255, 255, 255, 0.8); }
    .is-open header.common .si-nav.first {
      background: #fff; }
    header.common .si-nav.first .si {
      width: 200px;
      margin-right: 20px; }
    header.common .si-nav.first .nav {
      display: none; }
    header.common .si-nav.first .tgl {
      width: 45px;
      position: fixed;
      top: 70px;
      right: 16px;
      transition: all 0.5s; }
      header.common .si-nav.first .tgl p {
        width: 45px;
        height: 45px;
        background: #EE0000;
        border-radius: 50%;
        text-indent: -9999px;
        position: relative;
        cursor: pointer;
        transition: all 0.5s; }
        header.common .si-nav.first .tgl p span {
          display: block;
          border-top: 1px solid #fff;
          width: 21px;
          height: 12px;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%); }
          header.common .si-nav.first .tgl p span::before {
            content: '';
            display: block;
            width: 21px;
            height: 1px;
            background: #fff;
            position: absolute;
            top: 5px;
            transition: all 0.5s; }
          header.common .si-nav.first .tgl p span::after {
            content: '';
            display: block;
            width: 21px;
            height: 1px;
            background: #fff;
            position: absolute;
            top: 11px;
            transition: all 0.5s; }
        header.common .si-nav.first .tgl p.is-open span {
          border: 0; }
          header.common .si-nav.first .tgl p.is-open span::before {
            top: 5px;
            transform: rotate(-155deg); }
          header.common .si-nav.first .tgl p.is-open span::after {
            top: 5px;
            transform: rotate(-25deg); }
      header.common .si-nav.first .tgl.has-animation p {
        transform: scale(0); }
      header.common .si-nav.first .tgl.has-animation.is-animated p {
        transform: scale(100%); }
  header.common .megamenu {
    padding: 20px;
    display: none;
    background: #fff; }
    header.common .megamenu .si-nav {
      display: flex;
      flex-wrap: wrap; }
    header.common .megamenu .si {
      width: 100%;
      order: 2; }
      header.common .megamenu .si .logo {
        display: none; }
      header.common .megamenu .si .name {
        display: none; }
      header.common .megamenu .si .address {
        display: none; }
      header.common .megamenu .si .utilities {
        margin-top: 24px; }
        header.common .megamenu .si .utilities li {
          margin-bottom: 8px; }
          header.common .megamenu .si .utilities li a {
            display: block;
            border: 1px solid rgba(150, 150, 153, 0.4);
            border-radius: 100px;
            text-align: center;
            font-size: 14px;
            font-weight: bold;
            padding: 0.8em; }
    header.common .megamenu .nav {
      width: 100%;
      order: 1;
      flex-shrink: 0; }
      header.common .megamenu .nav nav .pages > li {
        font-size: 18px; }
        header.common .megamenu .nav nav .pages > li > a {
          border-bottom: 1px solid #CCC;
          position: relative;
          display: block;
          padding: 12px 0;
          background: url(/asset/img/common/arw-r01-red.svg) 100% 50% no-repeat; }
        header.common .megamenu .nav nav .pages > li.has-children > a {
          background: none;
          position: relative; }
          header.common .megamenu .nav nav .pages > li.has-children > a::before {
            content: '';
            display: block;
            width: 16px;
            height: 2px;
            background: #E30C0C;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            right: 0;
            transition: all 0.5s; }
          header.common .megamenu .nav nav .pages > li.has-children > a::after {
            content: '';
            display: block;
            width: 16px;
            height: 2px;
            background: #E30C0C;
            position: absolute;
            top: 50%;
            transform: translateY(-50%) rotate(-90deg);
            right: 0;
            transition: all 0.5s; }
        header.common .megamenu .nav nav .pages > li.has-children.is-open > a::before {
          opacity: 0; }
        header.common .megamenu .nav nav .pages > li.has-children.is-open > a::after {
          transform: translateY(-50%) rotate(0deg);
          right: 0;
          transition: all 0.5s; }
      header.common .megamenu .nav nav .pages .label {
        font-size: 10px;
        margin-top: 0.2em;
        display: block;
        color: #EE0000;
        font-family: "Sen", serif; }
      header.common .megamenu .nav nav .children {
        padding-left: 16px;
        display: none; }
        header.common .megamenu .nav nav .children .page {
          font-size: 13px; }
          header.common .megamenu .nav nav .children .page li {
            margin-bottom: 0.5em;
            font-size: 14px;
            font-weight: 500; }
          header.common .megamenu .nav nav .children .page a {
            padding: 12px 0;
            display: block;
            border-bottom: 1px solid #CCC;
            background: url(/asset/img/common/arw-r01-red.svg) 100% 50% no-repeat; }
    header.common .megamenu .close {
      font-family: "Sen", serif;
      font-size: 14px;
      text-align: center;
      margin: 24px 0;
      cursor: pointer; }
    header.common .megamenu .ticker p img {
      width: 50%; }
  @media only screen and (min-width: 1025px) {
    header.common {
      max-height: none; }
      .is-open header.common {
        overflow: visible; }
      header.common .group {
        padding: 15px 20px; }
        header.common .group ul .logo {
          width: 351px;
          margin-left: -20px; }
        header.common .group ul .link {
          font-size: 14px; }
      header.common.is-mini .inner {
        top: -125px;
        margin-bottom: -125px; }
      header.common.is-mini .si-nav.first .tgl {
        top: 16px; }
      header.common .si-nav.first {
        padding: 24px 32px; }
        header.common .si-nav.first .si {
          width: 300px;
          margin-right: 30px; }
        header.common .si-nav.first .nav {
          display: block;
          flex: 1;
          padding-right: 120px; }
          header.common .si-nav.first .nav .utilities {
            display: flex;
            justify-content: flex-end;
            margin-bottom: 15px; }
            header.common .si-nav.first .nav .utilities li {
              width: 110px;
              margin-left: 6px; }
              header.common .si-nav.first .nav .utilities li a {
                display: block;
                border: 1px solid rgba(150, 150, 153, 0.4);
                border-radius: 100px;
                text-align: center;
                font-size: 12px;
                font-weight: bold;
                padding: 0.8em;
                background: #fff; }
          header.common .si-nav.first .nav .pages {
            display: flex;
            justify-content: flex-end; }
            header.common .si-nav.first .nav .pages li {
              font-size: 16px;
              margin-left: 2em;
              font-weight: 500; }
        header.common .si-nav.first .tgl {
          width: 90px;
          margin-left: 0;
          top: 80px;
          right: 32px; }
          header.common .si-nav.first .tgl p {
            width: 90px;
            height: 90px; }
            header.common .si-nav.first .tgl p span {
              width: 42px;
              height: 22px; }
              header.common .si-nav.first .tgl p span::before {
                width: 42px;
                top: 10px; }
              header.common .si-nav.first .tgl p span::after {
                width: 42px;
                top: 21px; }
            header.common .si-nav.first .tgl p.is-open span {
              border: 0; }
              header.common .si-nav.first .tgl p.is-open span::before {
                top: 10px; }
              header.common .si-nav.first .tgl p.is-open span::after {
                top: 10px; }
      header.common .megamenu {
        padding: 60px 100px 130px 100px; }
        header.common .megamenu .si-nav {
          display: flex;
          flex-wrap: nowrap;
          max-width: 1110px;
          margin: 0 auto; }
          .is-open header.common .megamenu .si-nav {
            height: calc(100vh - 62px - 125px - 60px);
            max-height: 530px;
            overflow-y: scroll; }
        header.common .megamenu .si {
          width: 320px;
          text-align: center;
          margin-right: 10%; }
          header.common .megamenu .si .logo {
            padding: 0;
            margin-bottom: 32px;
            display: block; }
            header.common .megamenu .si .logo img {
              width: 153px; }
          header.common .megamenu .si .name {
            display: block;
            font-size: 20px;
            font-weight: 500; }
          header.common .megamenu .si .address {
            display: block;
            font-size: 14px;
            margin-top: 0.5em; }
          header.common .megamenu .si .utilities {
            max-width: 240px;
            margin: 0 auto;
            margin-top: 20px; }
            header.common .megamenu .si .utilities li {
              margin-bottom: 12px; }
              header.common .megamenu .si .utilities li a {
                font-size: 14px;
                font-weight: bold;
                padding: 0.8em; }
        header.common .megamenu .nav {
          width: auto;
          order: 2;
          flex: 1; }
          header.common .megamenu .nav nav {
            padding-bottom: 60px; }
            header.common .megamenu .nav nav .pages > li {
              font-size: 20px;
              margin-bottom: 1.5em; }
              header.common .megamenu .nav nav .pages > li > a {
                border-bottom: 0;
                padding: 0;
                background: none; }
              header.common .megamenu .nav nav .pages > li.has-children > a {
                background: none;
                position: relative; }
                header.common .megamenu .nav nav .pages > li.has-children > a::before {
                  display: none; }
                header.common .megamenu .nav nav .pages > li.has-children > a::after {
                  display: none; }
            header.common .megamenu .nav nav .pages .label {
              font-size: 12px;
              display: block; }
            header.common .megamenu .nav nav .pages .arw {
              position: relative; }
              header.common .megamenu .nav nav .pages .arw::after {
                content: '';
                display: block;
                position: absolute;
                top: 9px;
                right: -20px;
                width: 13px;
                height: 13px;
                background: url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat;
                background-size: contain; }
            header.common .megamenu .nav nav .children {
              display: block;
              margin-top: 0.5em;
              padding: 0; }
              header.common .megamenu .nav nav .children .page {
                display: flex;
                flex-wrap: wrap;
                font-size: 13px;
                margin-bottom: -0.5em; }
                header.common .megamenu .nav nav .children .page li {
                  margin-bottom: 0.5em; }
                  header.common .megamenu .nav nav .children .page li.parent {
                    display: none; }
                  header.common .megamenu .nav nav .children .page li::after {
                    content: '/';
                    display: inline;
                    margin: 0 1em; }
                  header.common .megamenu .nav nav .children .page li:last-of-type::after {
                    display: none; }
                header.common .megamenu .nav nav .children .page a {
                  color: #5D5D5D;
                  background: none;
                  border: 0;
                  display: inline;
                  padding: 0; }
        header.common .megamenu .close {
          display: none; }
        header.common .megamenu .ticker {
          margin-top: 0px;
          position: absolute;
          bottom: 0;
          left: 0; }
          header.common .megamenu .ticker p img {
            width: 100%; } }

.is-open .wrap {
  height: 0;
  overflow: hidden; }

main.has-bg {
  background: #F5F5F5;
  padding-bottom: 64px; }
  main.has-bg .block:last-of-type {
    margin-bottom: 0; }

@media only screen and (min-width: 1025px) {
  main.has-bg {
    padding-bottom: 128px; } }

footer.common {
  border-top: 4px solid #E30C0C;
  background: #000; }
  .is-home footer.common {
    border: 0; }
  footer.common .main {
    padding: 50px 20px;
    background: #fff;
    border-bottom-left-radius: 40px;
    border-bottom-right-radius: 40px; }
    footer.common .main .si-nav {
      display: flex;
      justify-content: space-between; }
    footer.common .main .si {
      width: 46%; }
      footer.common .main .si .logo {
        padding: 0 25%;
        margin-bottom: 25px; }
      footer.common .main .si .name {
        display: none; }
      footer.common .main .si .address {
        display: none; }
      footer.common .main .si .utilities li {
        margin-bottom: 6px; }
        footer.common .main .si .utilities li:last-of-type {
          margin-bottom: 0; }
        footer.common .main .si .utilities li a {
          display: block;
          border: 1px solid rgba(150, 150, 153, 0.4);
          border-radius: 100px;
          text-align: center;
          font-size: 14px;
          font-weight: bold;
          padding: 0.8em; }
    footer.common .main .nav {
      width: 46%; }
      footer.common .main .nav nav .pages > li {
        font-size: 16px;
        font-weight: bold;
        margin-bottom: 0.8em; }
      footer.common .main .nav nav .pages .label {
        color: #e30c0c;
        font-family: "Sen", serif;
        font-weight: normal;
        font-size: 12px;
        display: block; }
      footer.common .main .nav nav .children {
        display: none; }
  footer.common .sub {
    padding: 20px;
    color: #fff; }
    footer.common .sub .copyright-pagetop {
      display: flex;
      justify-content: space-between; }
    footer.common .sub .copyright ul {
      font-size: 9px;
      display: flex;
      flex-wrap: wrap; }
      footer.common .sub .copyright ul li {
        margin-right: 1em; }
      footer.common .sub .copyright ul a {
        color: #fff; }
    footer.common .sub .copyright p {
      font-size: 9px;
      margin-top: 1em; }
    footer.common .sub .pagetop p {
      width: 20px; }
  @media only screen and (min-width: 1025px) {
    footer.common .main {
      padding: 88px 100px; }
      footer.common .main .inner {
        max-width: 1100px;
        margin: 0 auto; }
      footer.common .main .si-nav {
        display: flex;
        justify-content: space-between; }
      footer.common .main .si {
        width: 320px;
        text-align: center;
        margin-right: 10%; }
        footer.common .main .si .logo {
          padding: 0;
          margin-bottom: 32px; }
          footer.common .main .si .logo img {
            width: 153px; }
        footer.common .main .si .name {
          display: block;
          font-size: 20px;
          font-weight: 500; }
        footer.common .main .si .address {
          display: block;
          font-size: 14px;
          margin-top: 0.5em; }
        footer.common .main .si .utilities {
          max-width: 240px;
          margin: 0 auto;
          margin-top: 20px; }
          footer.common .main .si .utilities li {
            margin-bottom: 12px; }
            footer.common .main .si .utilities li a {
              font-size: 14px;
              font-weight: bold;
              padding: 0.8em; }
      footer.common .main .nav {
        width: auto;
        flex: 1; }
        footer.common .main .nav nav .pages > li {
          font-size: 20px;
          margin-bottom: 1.5em; }
        footer.common .main .nav nav .pages a {
          position: relative; }
        footer.common .main .nav nav .pages .label {
          font-size: 13px;
          margin-top: 0.2em; }
        footer.common .main .nav nav .pages .arw {
          position: relative; }
          footer.common .main .nav nav .pages .arw::after {
            content: '';
            display: block;
            position: absolute;
            top: 9px;
            right: -20px;
            width: 13px;
            height: 13px;
            background: url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat;
            background-size: contain; }
        footer.common .main .nav nav .children {
          display: block;
          margin-top: 0.5em; }
          footer.common .main .nav nav .children .page {
            display: flex;
            flex-wrap: wrap;
            font-size: 13px;
            margin-bottom: -0.5em; }
            footer.common .main .nav nav .children .page li {
              margin-bottom: 0.5em; }
              footer.common .main .nav nav .children .page li::after {
                content: '/';
                display: inline;
                margin: 0 1em; }
              footer.common .main .nav nav .children .page li:last-of-type::after {
                display: none; }
            footer.common .main .nav nav .children .page a {
              color: #5D5D5D; }
    footer.common .sub {
      padding: 52px 100px; }
      footer.common .sub .inner {
        max-width: 1192px;
        margin: 0 auto; }
      footer.common .sub .copyright-pagetop {
        display: flex;
        justify-content: space-between; }
      footer.common .sub .copyright ul {
        font-size: 14px; }
        footer.common .sub .copyright ul li {
          margin-right: 2em; }
        footer.common .sub .copyright ul a {
          color: #fff; }
      footer.common .sub .copyright p {
        font-size: 14px;
        margin-top: 1.5em; }
      footer.common .sub .pagetop p {
        width: 33px; } }

.page-header {
  background: #fff; }
  .recruit-top .page-header {
    background: none; }
  .page-header .topicpath ol {
    display: flex;
    font-size: 13px;
    align-items: center; }
    .page-header .topicpath ol li {
      position: relative;
      margin-right: 20px; }
      .page-header .topicpath ol li::after {
        content: '';
        width: 16px;
        height: 16px;
        background: url(/asset/img/common/arw-topicpath.svg) 0 0 no-repeat;
        background-size: 8px 8px;
        display: block;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: -22px;
        top: 15px; }
      .page-header .topicpath ol li:last-of-type::after {
        display: none; }
      .page-header .topicpath ol li a {
        color: #E30C0C;
        text-decoration: underline; }
      .page-header .topicpath ol li.home::after {
        top: 10px; }
      .page-header .topicpath ol li.home a {
        width: 11px;
        height: 11px;
        background: url(/asset/img/common/icn-home.svg) 50% 50% no-repeat;
        background-size: contain;
        text-indent: -9999px;
        display: block; }
  .page-header.second {
    background: url(/asset/img/common/bg-pagetitle-sp.svg) 0 0 no-repeat;
    background-size: 95% auto;
    padding: 12px 20px;
    margin-bottom: 40px; }
    .page-header.second .pagetitle {
      margin-top: 20px;
      background: url(/asset/img/common/blt-pagetitle.svg) 0 0 no-repeat;
      background-size: 134px 180px;
      min-height: 180px;
      padding: 50px 0 0 20px; }
      .page-header.second .pagetitle .title {
        font-size: 32px;
        font-weight: 500; }
      .page-header.second .pagetitle .label {
        font-size: 14px;
        font-family: "Sen", serif; }
  .page-header.third {
    padding: 0px 20px;
    margin-bottom: 40px; }
    .page-header.third .pagetitle {
      margin: 40px 0 20px 0; }
      .page-header.third .pagetitle .label {
        font-size: 26px;
        font-weight: 500; }
      .page-header.third .pagetitle .title {
        font-size: 32px;
        font-weight: 500; }
    .page-header.third .pageimg {
      width: 100vw;
      margin-left: calc(-50vw + 50%); }
  .page-header.fourth {
    padding: 0px 20px;
    margin-bottom: 40px; }
    .page-header.fourth .pagetitle {
      margin: 40px 0 0 0; }
      .page-header.fourth .pagetitle .label {
        font-size: 20px;
        font-weight: 500;
        text-decoration: underline; }
      .page-header.fourth .pagetitle .parent span {
        display: inline-block;
        background: #F0ECE9;
        font-size: 14px;
        padding: 0.2em 0.5em;
        margin-top: 16px;
        margin-bottom: 3px; }
      .page-header.fourth .pagetitle .title {
        font-size: 32px;
        font-weight: 500; }
        .page-header.fourth .pagetitle .title.has-bd {
          border-bottom: 4px solid #F5F5F5;
          padding-bottom: 0.2em;
          position: relative; }
          .page-header.fourth .pagetitle .title.has-bd::before {
            content: '';
            display: block;
            width: 92px;
            height: 4px;
            background: #E30C0C;
            position: absolute;
            bottom: -4px;
            left: 0; }
  .page-header.no-margin {
    margin: 0; }
  @media only screen and (min-width: 1025px) {
    .page-header {
      padding: 12px 100px; }
      .page-header .topicpath {
        max-width: 1040px;
        margin: 0 auto; }
        .page-header .topicpath ol {
          font-size: 14px; }
          .page-header .topicpath ol li::after {
            right: -22px; }
          .page-header .topicpath ol li.home::after {
            top: 11px; }
          .page-header .topicpath ol li.home a {
            width: 13px;
            height: 13px; }
      .page-header.second {
        background: url(/asset/img/common/bg-pagetitle-pc.svg) 0 0 no-repeat;
        background-size: 90% auto;
        padding: 12px 100px;
        margin-bottom: 60px; }
        .page-header.second .pagetitle {
          background-size: 195px 262px;
          min-height: 262px;
          padding: 60px 0 0 60px;
          max-width: 1040px;
          margin: 10px auto 0 auto; }
          .page-header.second .pagetitle .title {
            font-size: 54px; }
          .page-header.second .pagetitle .label {
            font-size: 16px; }
      .page-header.third {
        padding: 0px 100px; }
        .page-header.third .pagetitle {
          max-width: 1040px;
          margin: 40px auto 24px auto; }
          .page-header.third .pagetitle .label {
            font-size: 30px; }
          .page-header.third .pagetitle .title {
            font-size: 64px; }
        .page-header.third .pageimg {
          width: 100vw;
          margin-left: calc(-50vw + 50%); }
      .page-header.fourth {
        padding: 0px 100px;
        margin-bottom: 40px; }
        .page-header.fourth .pagetitle {
          max-width: 1040px;
          margin: 40px auto 24px auto; }
          .page-header.fourth .pagetitle .label {
            font-size: 30px; }
          .page-header.fourth .pagetitle .parent span {
            font-size: 17px; }
          .page-header.fourth .pagetitle .title {
            font-size: 54px; }
            .page-header.fourth .pagetitle .title.has-bd::before {
              width: 183px; } }

.contents {
  padding: 0 20px; }
  @media only screen and (min-width: 1025px) {
    .contents {
      padding: 0 100px;
      max-width: 1240px;
      margin: 0 auto; } }

/* parts
**************************************************************************************************************************/
.ticker {
  overflow: hidden;
  display: flex;
  width: 100vw;
  margin-inline: calc(50% - 50vw); }
  .ticker p {
    flex-shrink: 0;
    white-space: nowrap; }
    .ticker p:nth-child(odd) {
      animation: MoveLeft 120s -60s infinite linear; }
    .ticker p:nth-child(even) {
      animation: MoveLeft2 120s infinite linear; }

@keyframes MoveLeft {
  from {
    transform: translateX(100%); }
  to {
    transform: translateX(-100%); } }

@keyframes MoveLeft2 {
  from {
    transform: translateX(0); }
  to {
    transform: translateX(-200%); } }

/* headline */
.hl-main {
  margin-bottom: 1em; }
  .hl-main .en {
    font-size: 44px; }
  .hl-main .name {
    font-size: 14px;
    color: #e30000;
    display: block;
    font-weight: 500; }
  @media only screen and (min-width: 1025px) {
    .hl-main {
      margin-bottom: 1em; }
      .hl-main .en {
        font-size: 80px; }
      .hl-main .name {
        font-size: 24px; } }

.hl01 {
  font-size: 26px;
  color: #E30C0C;
  text-align: center;
  font-weight: 500;
  margin-bottom: 1.3em; }
  .hl01 br {
    display: none; }
  @media only screen and (min-width: 1025px) {
    .hl01 {
      font-size: 30px; }
      .hl01 br {
        display: block; } }

.hl02 {
  font-size: 26px;
  font-weight: 500;
  margin-bottom: 1.3em; }
  .hl02::before {
    content: '';
    display: block;
    width: 56px;
    height: 4px;
    background: #E30C0C;
    margin-bottom: 12px; }

.hl03 {
  font-size: 22px;
  color: #E30C0C;
  font-weight: 500;
  margin-bottom: 1em; }
  @media only screen and (min-width: 1025px) {
    .hl03 {
      font-size: 26px; } }

.hl04 {
  text-align: center;
  margin-bottom: 0.3em; }
  .hl04 span {
    font-size: 52px;
    color: #fff;
    background: #E30C0C;
    padding: 0.2em 0.5em;
    display: inline-block; }
  @media only screen and (min-width: 1025px) {
    .hl04 span {
      font-size: 80px; } }

.hl05 {
  font-size: 26px;
  margin-bottom: 0.5em; }
  @media only screen and (min-width: 1025px) {
    .hl05 {
      font-size: 30px;
      margin-bottom: 0.5em; } }

.hl06 {
  text-align: center;
  margin-bottom: 2em; }
  .hl06 .label {
    font-size: 60px;
    color: #F0ECE9;
    font-family: "Sen", serif;
    display: block;
    font-weight: 500;
    margin-bottom: -0.5em; }
  .hl06 .title {
    display: block;
    font-size: 26px;
    font-weight: 500; }
  @media only screen and (min-width: 1025px) {
    .hl06 .label {
      font-size: 100px;
      margin-bottom: -0.5em; }
    .hl06 .title {
      font-size: 42x; } }

.hl07 {
  font-weight: bold;
  margin-bottom: 1em; }

.hl08 {
  font-size: 20px;
  margin-bottom: 0.5em; }
  @media only screen and (min-width: 1025px) {
    .hl08 {
      font-size: 26px;
      margin-bottom: 0.5em; } }

.hl09 {
  margin-bottom: 1em; }
  .hl09 .label {
    font-weight: bold;
    font-size: 26px; }
  .hl09 small {
    font-size: 16px;
    font-weight: bold;
    margin-left: 0.5em; }
  .hl09 .title {
    display: block;
    font-size: 22px;
    font-weight: 500;
    color: #E30C0C;
    margin-top: 1.1em; }
  .hl09::before {
    content: '';
    display: block;
    width: 56px;
    height: 4px;
    background: #E30C0C;
    margin-bottom: 12px; }
  @media only screen and (min-width: 1025px) {
    .hl09 .label {
      font-size: 30px; }
    .hl09 small {
      font-size: 17px; }
    .hl09 .title {
      font-size: 26px; } }

.hl10 {
  font-size: 22px;
  font-weight: 500;
  color: #E30C0C;
  margin-bottom: 0.8em; }
  @media only screen and (min-width: 1025px) {
    .hl10 {
      font-size: 17px; } }

.hl11 {
  margin-bottom: 0.5em; }
  .hl11 span {
    font-size: 13px;
    display: inline-block;
    border: 1px solid #000;
    padding: 0.2em 0.5em; }

.hl12 {
  font-size: 20px;
  font-weight: 500;
  padding-bottom: 0.3em;
  margin-bottom: 0.5em;
  border-bottom: 1px solid #E30C0C; }
  @media only screen and (min-width: 1025px) {
    .hl12 {
      font-size: 22px; } }

.hl13 {
  display: flex;
  color: #E30C0C;
  font-weight: bold;
  flex: 1;
  align-items: center; }
  .hl13::after {
    content: '';
    display: block;
    flex-grow: 1;
    height: 1px;
    background: #E30C0C;
    margin-left: 0.5em; }

.hl14 {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 0.8em; }
  .hl14 .en {
    display: block;
    font-size: 12px;
    color: #ee0000;
    margin-top: 0.3em; }
  @media only screen and (min-width: 1025px) {
    .hl14 {
      font-size: 38px; }
      .hl14 .en {
        font-size: 14px; } }

.hl15 {
  font-size: 26px;
  color: #E30C0C;
  margin-bottom: 0.5em; }
  @media only screen and (min-width: 1025px) {
    .hl15 {
      font-size: 30px;
      margin-bottom: 0.5em; } }

.hl-serial {
  text-align: center;
  margin-bottom: 0.5em; }
  .hl-serial .serial {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #DF141D;
    position: relative;
    margin-inline: auto;
    display: block; }
    .hl-serial .serial span {
      font-size: 24px;
      font-weight: 500;
      color: #fff;
      font-family: "Sen", serif;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 100%; }
  .hl-serial .title {
    display: block;
    font-size: 24px;
    font-weight: 500;
    margin-top: 5px; }

/* btn */
.btn {
  cursor: pointer; }
  .btn.btn-dflt {
    display: inline-block;
    border: 1px solid #E30C0C;
    border-radius: 100px;
    color: #E30C0C;
    font-size: 16px;
    font-weight: 500;
    padding: 0.3em 3em; }
  .btn.btn-primary {
    display: inline-block;
    border-radius: 100px;
    color: #fff;
    background: #E30C0C;
    font-size: 16px;
    font-weight: 500;
    padding: 0.8em 3em;
    max-width: 378px;
    text-align: center; }
  .btn.btn-secondary {
    display: inline-block;
    border: 1px solid #E30C0C;
    border-radius: 100px;
    color: #E30C0C;
    font-size: 16px;
    font-weight: 500;
    padding: 0.8em 3em;
    max-width: 378px;
    text-align: center; }
    .btn.btn-secondary.has-arw {
      text-decoration: none;
      transition: 0.5s;
      position: relative; }
      .btn.btn-secondary.has-arw::after {
        transition: 0.5s;
        content: "\e5c8";
        font-family: "Material Icons";
        color: #E30C0C;
        position: absolute;
        top: 50%;
        right: 1.6em;
        transform: translateY(-50%); }
      .btn.btn-secondary.has-arw:hover::after {
        transform: translate(5px, -50%); }

/* link */
.link.link01 {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #000; }
  .alr .link.link01 {
    justify-content: flex-end; }
  .link.link01::after {
    content: '';
    display: inline-block;
    width: 47px;
    height: 47px;
    margin-left: 8px;
    border-radius: 50%;
    background: #F0ECE9 url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat; }
  @media only screen and (min-width: 1025px) {
    .link.link01::after {
      width: 64px;
      height: 64px; } }

.link.link02 {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #000; }
  .link.link02::after {
    content: '';
    display: inline-block;
    width: 47px;
    height: 47px;
    margin-left: 8px;
    border-radius: 50%;
    background: #F0ECE9 url(/asset/img/common/icn-nwin-red.svg) 50% 50% no-repeat; }
  @media only screen and (min-width: 1025px) {
    .link.link02::after {
      width: 64px;
      height: 64px; } }

.link.link03 {
  color: #E30C0C;
  text-decoration: underline; }

.link.link04 {
  display: flex;
  align-items: center;
  justify-content: center; }
  .alr .link.link04 {
    justify-content: flex-end; }
  .link.link04::before {
    content: '';
    display: inline-block;
    width: 47px;
    height: 47px;
    margin-right: 8px;
    border-radius: 50%;
    background: #F0ECE9 url(/asset/img/common/arw-l01-red.svg) 50% 50% no-repeat; }
  @media only screen and (min-width: 1025px) {
    .link.link04::before {
      width: 64px;
      height: 64px; } }

.bdrs20 {
  border-radius: 20px;
  overflow: hidden; }

/* for animation */
.masked {
  overflow: hidden;
  opacity: 0; }
  .masked .box_mask {
    display: block;
    opacity: 0;
    transform: matrix(1, 0, 0, 1, 0, 100);
    transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
  .masked.is-animated {
    opacity: 1; }
    .masked.is-animated .box_mask {
      opacity: 1;
      transform: matrix(1, 0, 0, 1, 0, 0); }

/* area
**************************************************************************************************************************/
/* top */
.area-kv {
  margin-bottom: 30px; }
  .area-kv .title {
    padding: 30px;
    text-align: center; }
    .area-kv .title h1 {
      padding: 0px; }
      .area-kv .title h1 img {
        width: 100%; }
    .area-kv .title .en {
      font-size: 12px;
      font-weight: 400;
      color: #EE0000;
      margin-top: 0.5em; }
  .area-kv .body .slider {
    width: 190px;
    margin: 0 auto;
    margin-top: 20px;
    margin-bottom: 160px;
    position: relative;
    z-index: 2; }
    .area-kv .body .slider ul {
      opacity: 0;
      transition: opacity .3s linear; }
      .area-kv .body .slider ul.slick-initialized {
        opacity: 1; }
      .area-kv .body .slider ul li {
        position: relative; }
        .area-kv .body .slider ul li picture img {
          border-radius: 190px 190px 190px 190px;
          transition: all 1s; }
          .area-kv .body .slider ul li picture img.img01 {
            border-top-left-radius: 0; }
          .area-kv .body .slider ul li picture img.img02 {
            border-top-right-radius: 0; }
          .area-kv .body .slider ul li picture img.img03 {
            border-bottom-right-radius: 0; }
          .area-kv .body .slider ul li picture img.img04 {
            border-bottom-left-radius: 0; }
    .area-kv .body .slider .slick-list {
      overflow: visible; }
    .area-kv .body .slider .slick-slide {
      padding: 0 10px; }
      .area-kv .body .slider .slick-slide:nth-of-type(odd) {
        transform: translateY(-20px); }
      .area-kv .body .slider .slick-slide:nth-of-type(even) {
        transform: translateY(20px); }
  .area-kv .body .lead {
    text-align: center;
    margin-bottom: 80px;
    position: relative;
    margin-top: -50px; }
    .area-kv .body .lead::before {
      content: '';
      display: block;
      width: 120vw;
      height: 120vw;
      background: #fff;
      border: 35vw solid #EFECE8;
      border-radius: 50%;
      position: absolute;
      left: 50%;
      transform: translateX(-50%) rotate(0);
      top: -41vw;
      z-index: -1;
      transition: all 2s; }
    .area-kv .body .lead::after {
      content: '';
      display: block;
      width: 140vw;
      height: 140vw;
      background: url(/asset/img/top/typo.svg) 50% 50% no-repeat;
      background-size: contain;
      position: absolute;
      left: 50%;
      transform: translateX(-50%) rotate(0);
      top: -16.5vw;
      transition: all 0.5s;
      /* animation:rotate_typo 15s linear infinite; */ }
    .area-kv .body .lead.has-animation::before {
      transform: translateX(-50%) rotate(0) scale(0); }
    .area-kv .body .lead.has-animation.is-animated::before {
      transform: translateX(-50%) rotate(0) scale(100%); }
    .area-kv .body .lead h2 {
      margin-bottom: 20px; }
      .area-kv .body .lead h2 img {
        width: 70px; }
    .area-kv .body .lead h3 {
      margin-bottom: 20px; }
      .area-kv .body .lead h3 img {
        width: 240px; }
    .area-kv .body .lead .descript {
      font-size: 14px;
      line-height: 2;
      margin-bottom: 20px; }
    .area-kv .body .lead .more {
      font-size: 14px;
      position: relative;
      z-index: 2; }
  .area-kv .body .profile {
    padding: 0 20px;
    position: relative;
    z-index: 2;
    margin-top: -20px; }
    .area-kv .body .profile .page {
      margin-bottom: 12px; }
      .area-kv .body .profile .page:last-of-type {
        margin-bottom: 0; }
      .area-kv .body .profile .page a {
        color: #fff; }
      .area-kv .body .profile .page .imgtxt {
        position: relative; }
        .area-kv .body .profile .page .imgtxt::after {
          content: '';
          display: block;
          width: 47px;
          height: 47px;
          border-radius: 50%;
          background: #fff url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat;
          position: absolute;
          right: 10px;
          bottom: 10px; }
      .area-kv .body .profile .page .img {
        border-radius: 20px; }
      .area-kv .body .profile .page .txt {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        padding: 30px 20px; }
        .area-kv .body .profile .page .txt p {
          font-size: 18px;
          font-weight: 500; }
        .area-kv .body .profile .page .txt .en {
          display: block;
          font-size: 11px;
          margin-top: 0.5em; }
  @media only screen and (min-width: 1025px) {
    .area-kv {
      margin-bottom: 125px; }
      .area-kv .title {
        padding: 80px; }
        .area-kv .title h1 {
          padding: 0; }
          .area-kv .title h1 img {
            width: 656px; }
        .area-kv .title .en {
          font-size: 24px;
          margin-top: 0.8em; }
      .area-kv .body .slider {
        width: 267px;
        margin-top: 0px;
        margin-bottom: 0px; }
        .area-kv .body .slider ul li {
          position: relative; }
          .area-kv .body .slider ul li picture img {
            border-radius: 170px 170px 170px 170px; }
        .area-kv .body .slider .slick-list {
          overflow: visible; }
        .area-kv .body .slider .slick-slide {
          padding: 0 18px; }
          .area-kv .body .slider .slick-slide:nth-of-type(odd) {
            transform: translateY(-40px); }
          .area-kv .body .slider .slick-slide:nth-of-type(even) {
            transform: translateY(40px); }
      .area-kv .body .lead {
        margin-bottom: 120px;
        margin-top: 80px; }
        .area-kv .body .lead::before {
          width: 890px;
          height: 890px;
          border: 272px solid #EFECE8;
          top: -400px;
          z-index: -1; }
        .area-kv .body .lead::after {
          width: 1058px;
          height: 1058px;
          top: -220px; }
        .area-kv .body .lead h2 {
          margin-bottom: 36px; }
          .area-kv .body .lead h2 img {
            width: 120px; }
        .area-kv .body .lead h3 {
          margin-bottom: 16px; }
          .area-kv .body .lead h3 img {
            width: 353px; }
        .area-kv .body .lead .descript {
          font-size: 16px;
          margin-bottom: 24px; }
        .area-kv .body .lead .more {
          font-size: 16px; }
      .area-kv .body .profile {
        padding: 0 100px; }
        .area-kv .body .profile .pages {
          display: grid;
          grid-gap: 32px;
          grid-template-columns: repeat(2, 1fr); }
        .area-kv .body .profile .page {
          margin-bottom: 0; }
          .area-kv .body .profile .page a:hover img {
            transform: scale(1.1); }
          .area-kv .body .profile .page .imgtxt {
            position: relative; }
            .area-kv .body .profile .page .imgtxt::after {
              width: 64px;
              height: 64px;
              right: 24px;
              bottom: 24px; }
          .area-kv .body .profile .page .img {
            overflow: hidden;
            border-radius: 40px; }
            .area-kv .body .profile .page .img img {
              transition: all 0.5s; }
          .area-kv .body .profile .page .txt {
            padding: 72px 35px; }
            .area-kv .body .profile .page .txt p {
              font-size: 26px; }
            .area-kv .body .profile .page .txt .en {
              font-size: 16px; } }

.area-news-top {
  padding: 0px 20px;
  margin-bottom: 48px; }
  .area-news-top .body .type {
    margin-bottom: 20px; }
    .area-news-top .body .type .carousel {
      display: flex;
      overflow-x: scroll;
      width: 100vw;
      margin-left: calc(-50vw + 50%); }
    .area-news-top .body .type ul {
      display: flex;
      font-size: 14px;
      font-weight: 500;
      padding-left: 20px; }
      .area-news-top .body .type ul li {
        flex-shrink: 0; }
        .area-news-top .body .type ul li a {
          background: #fff;
          display: block;
          padding: 0.8em 2em; }
        .area-news-top .body .type ul li.is-active a {
          background: #efece8;
          border-radius: 100px; }
  .area-news-top .body .list .articles {
    margin-bottom: 15px; }
  .area-news-top .body .list .article {
    border-bottom: 1px solid #D5D5D5; }
    .area-news-top .body .list .article a {
      display: block;
      padding: 12px 40px 12px 0;
      background: url(/asset/img/common/arw-r01-red.svg) 100% 50% no-repeat; }
      .area-news-top .body .list .article a[href$=".pdf"] {
        background: url(/asset/img/common/icn-pdf.svg) 100% 50% no-repeat; }
    .area-news-top .body .list .article .summary {
      display: flex;
      align-items: center;
      margin-bottom: 6px; }
      .area-news-top .body .list .article .summary .date {
        font-size: 13px;
        font-weight: 500;
        font-family: "Sen", serif;
        color: #929292;
        margin-right: 0.5em; }
      .area-news-top .body .list .article .summary .tags {
        font-size: 11px;
        color: #e30000; }
        .area-news-top .body .list .article .summary .tags li {
          border: 1px solid #e30000;
          border-radius: 100px;
          padding: 0 0.5em;
          margin-right: 0.5em; }
      .area-news-top .body .list .article .summary .status {
        font-family: "Sen", serif;
        font-weight: bold;
        color: #e30000;
        font-size: 13px; }
    .area-news-top .body .list .article .title p {
      font-size: 14px; }
  .area-news-top .body .more a {
    justify-content: flex-end; }
  @media only screen and (min-width: 1025px) {
    .area-news-top {
      padding: 0px 100px;
      margin-bottom: 100px; }
      .area-news-top .inner {
        position: relative; }
      .area-news-top .body {
        margin-top: 48px; }
        .area-news-top .body .type-list {
          display: flex; }
        .area-news-top .body .type {
          margin-bottom: 0px;
          width: 240px;
          margin-right: 100px; }
          .area-news-top .body .type .carousel {
            display: flex;
            overflow-x: visible;
            width: 100%;
            margin-left: 0; }
          .area-news-top .body .type ul {
            display: block;
            padding-left: 0px; }
            .area-news-top .body .type ul li {
              margin-bottom: 0.5em; }
              .area-news-top .body .type ul li a {
                padding: 0.8em 2em; }
        .area-news-top .body .list {
          flex: 1; }
          .area-news-top .body .list .articles {
            margin-bottom: 0; }
          .area-news-top .body .list .article a {
            padding: 26px 60px 26px 0; }
          .area-news-top .body .list .article .summary {
            display: flex;
            align-items: center;
            margin-bottom: 10px; }
            .area-news-top .body .list .article .summary .date {
              font-size: 16px; }
            .area-news-top .body .list .article .summary .tags {
              font-size: 13px; }
            .area-news-top .body .list .article .summary .status {
              font-size: 14px; }
          .area-news-top .body .list .article .title p {
            font-size: 16px; }
        .area-news-top .body .more {
          position: absolute;
          top: 0;
          right: 0; }
          .area-news-top .body .more a {
            justify-content: flex-end; } }

.area-business {
  padding: 60px 20px;
  margin-bottom: 60px;
  position: relative; }
  .area-business::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    background: #EFECE8;
    border-top-left-radius: 180px; }
  .area-business .title {
    margin-bottom: 20px; }
    .area-business .title .lead {
      font-size: 14px;
      line-height: 1.8; }
  .area-business .body .domains .domain {
    border-top: 4px solid #DDDAD7;
    padding: 25px 0;
    position: relative; }
    .area-business .body .domains .domain::before {
      content: '';
      display: block;
      width: 92px;
      height: 4px;
      background: #E30C0C;
      position: absolute;
      top: -4px;
      left: 0; }
    .area-business .body .domains .domain .img {
      border-radius: 16px;
      overflow: hidden;
      margin-bottom: 15px; }
      .area-business .body .domains .domain .img a:hover img {
        transform: scale(1.1); }
      .area-business .body .domains .domain .img img {
        transition: all 0.5s; }
    .area-business .body .domains .domain .txt {
      position: relative; }
      .area-business .body .domains .domain .txt::after {
        content: '';
        display: block;
        width: 47px;
        height: 47px;
        border-radius: 50%;
        background: #fff url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat;
        position: absolute;
        right: 0px;
        top: 5px; }
      .area-business .body .domains .domain .txt a {
        position: relative;
        z-index: 2; }
      .area-business .body .domains .domain .txt .serial {
        font-family: "Sen", serif;
        font-size: 20px;
        font-weight: 500;
        color: #e30000; }
      .area-business .body .domains .domain .txt h3 {
        font-size: 18px;
        font-weight: 500; }
      .area-business .body .domains .domain .txt .lead {
        font-size: 14px;
        line-height: 1.8;
        margin-top: 1em; }
      .area-business .body .domains .domain .txt p.store {
        margin-top: 1em; }
  .area-business .body .more {
    display: none; }
  @media only screen and (min-width: 1025px) {
    .area-business {
      padding: 118px 100px;
      margin-bottom: 160px; }
      .area-business::after {
        border-top-left-radius: 40vw; }
      .area-business .inner {
        position: relative; }
      .area-business .title {
        margin-bottom: 56px; }
        .area-business .title .lead {
          font-size: 16px;
          margin-top: 72px; }
      .area-business .body .domains .domain {
        padding: 40px 0; }
        .area-business .body .domains .domain::before {
          width: 180px; }
        .area-business .body .domains .domain a {
          display: block; }
        .area-business .body .domains .domain .imgtxt {
          display: flex;
          justify-content: space-between;
          align-items: center; }
        .area-business .body .domains .domain .img {
          margin-bottom: 0;
          width: 40%; }
          .area-business .body .domains .domain .img picture img {
            transition: all 0.5s;
            width: 100%; }
        .area-business .body .domains .domain .txt {
          width: 52%; }
          .area-business .body .domains .domain .txt::after {
            width: 64px;
            height: 64px;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            right: 0px; }
          .area-business .body .domains .domain .txt a {
            display: block;
            padding-right: 130px; }
          .area-business .body .domains .domain .txt .serial {
            font-size: 40px; }
          .area-business .body .domains .domain .txt h3 {
            font-size: 28px; }
          .area-business .body .domains .domain .txt .lead {
            font-size: 16px; }
      .area-business .body .more {
        display: block;
        position: absolute;
        top: 20px;
        right: 0; }
        .area-business .body .more a {
          justify-content: flex-end; }
          .area-business .body .more a::after {
            background: #fff url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat; } }

.bg-top {
  position: relative; }
  .bg-top::after {
    content: '';
    display: block;
    position: absolute;
    top: 150px;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    background: #EFECE8;
    border-radius: 100vw 100vw 0 0; }

.area-topimg {
  margin-bottom: 60px; }
  .area-topimg .body .slider {
    width: 190px;
    margin: 0 auto;
    margin-top: 0px; }
    .area-topimg .body .slider ul {
      opacity: 0;
      transition: opacity .3s linear; }
      .area-topimg .body .slider ul.slick-initialized {
        opacity: 1; }
      .area-topimg .body .slider ul li {
        position: relative; }
        .area-topimg .body .slider ul li picture img {
          border-radius: 190px 190px 190px 190px;
          transition: all 1s; }
          .area-topimg .body .slider ul li picture img.img01 {
            border-top-left-radius: 0; }
          .area-topimg .body .slider ul li picture img.img02 {
            border-top-right-radius: 0; }
          .area-topimg .body .slider ul li picture img.img03 {
            border-bottom-right-radius: 0; }
          .area-topimg .body .slider ul li picture img.img04 {
            border-bottom-left-radius: 0; }
    .area-topimg .body .slider .slick-list {
      overflow: visible; }
    .area-topimg .body .slider .slick-slide {
      padding: 0 10px; }
      .area-topimg .body .slider .slick-slide:nth-of-type(odd) {
        transform: translateY(-20px); }
      .area-topimg .body .slider .slick-slide:nth-of-type(even) {
        transform: translateY(20px); }
  @media only screen and (min-width: 1025px) {
    .area-topimg {
      margin-bottom: 114px; }
      .area-topimg .body .slider {
        width: 267px;
        margin-top: 0px;
        margin-bottom: 0px; }
        .area-topimg .body .slider ul li {
          position: relative; }
          .area-topimg .body .slider ul li picture img {
            border-radius: 170px 170px 170px 170px; }
        .area-topimg .body .slider .slick-list {
          overflow: visible; }
        .area-topimg .body .slider .slick-slide {
          padding: 0 18px; }
          .area-topimg .body .slider .slick-slide:nth-of-type(odd) {
            transform: translateY(-40px); }
          .area-topimg .body .slider .slick-slide:nth-of-type(even) {
            transform: translateY(40px); } }

.area-responsibility {
  padding: 0 20px;
  margin-bottom: 25px;
  position: relative;
  z-index: 2; }
  .area-responsibility .body a {
    color: #fff; }
  .area-responsibility .body .imgtxt {
    position: relative; }
    .area-responsibility .body .imgtxt::after {
      content: '';
      display: block;
      width: 47px;
      height: 47px;
      border-radius: 50%;
      background: #fff url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat;
      position: absolute;
      right: 10px;
      bottom: 10px; }
  .area-responsibility .body .img {
    border-radius: 20px;
    overflow: hidden; }
  .area-responsibility .body .txt {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 25px 20px; }
    .area-responsibility .body .txt .en {
      font-size: 32px;
      line-height: 1; }
    .area-responsibility .body .txt .title {
      font-size: 14px; }
  @media only screen and (min-width: 1025px) {
    .area-responsibility {
      padding: 0 100px;
      margin-bottom: 180px; }
      .area-responsibility .body a {
        color: #fff; }
      .area-responsibility .body .imgtxt {
        position: relative; }
        .area-responsibility .body .imgtxt::after {
          width: 64px;
          height: 64px;
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: 56px;
          bottom: auto; }
      .area-responsibility .body .img {
        border-radius: 20px; }
      .area-responsibility .body .txt {
        width: 100%;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        padding: 0 72px; }
        .area-responsibility .body .txt .en {
          font-size: 56px; }
        .area-responsibility .body .txt .title {
          font-size: 24px; } }

.area-recruit-top {
  padding: 0 20px 40px 20px;
  position: relative;
  margin-top: 25vw; }
  .area-recruit-top::after {
    content: '';
    display: block;
    width: 140vw;
    height: 140vw;
    background: url(/asset/img/top/typo.svg) 50% 50% no-repeat;
    background-size: contain;
    position: absolute;
    left: 50%;
    transform: translateX(-50%) rotate(0);
    top: -20vw;
    /* animation:rotate_typo 15s linear infinite; */ }
  .area-recruit-top .inner {
    position: relative;
    z-index: 2; }
  .area-recruit-top .title {
    text-align: center;
    margin-bottom: 20px; }
    .area-recruit-top .title .hl-main {
      margin-bottom: 0.5em; }
    .area-recruit-top .title .lead {
      font-size: 14px; }
    .area-recruit-top .title .more {
      font-size: 14px;
      margin-top: 10px; }
      .area-recruit-top .title .more a::after {
        background: #fff url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat; }
  .area-recruit-top .body .job {
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 12px;
    background: #fff; }
    .area-recruit-top .body .job:last-of-type {
      margin-bottom: 0; }
    .area-recruit-top .body .job .txt {
      padding: 25px 20px;
      position: relative; }
      .area-recruit-top .body .job .txt::after {
        content: '';
        display: block;
        width: 47px;
        height: 47px;
        border-radius: 50%;
        background: #efece8 url(/asset/img/common/arw-r01-red.svg) 50% 50% no-repeat;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 10px; }
      .area-recruit-top .body .job .txt h3 {
        font-size: 20px;
        font-weight: 500; }
        .area-recruit-top .body .job .txt h3 .en {
          font-size: 10px;
          display: block;
          color: #fd2805;
          margin-top: 0.5em; }
      .area-recruit-top .body .job .txt ul {
        margin-top: 10px; }
        .area-recruit-top .body .job .txt ul li {
          border-bottom: 1px solid #D5D5D5;
          font-size: 14px; }
          .area-recruit-top .body .job .txt ul li:last-of-type {
            border-bottom: 0; }
          .area-recruit-top .body .job .txt ul li a {
            display: block;
            padding: 10px 0;
            background: url(/asset/img/common/arw-r01-red.svg) 100% 50% no-repeat; }
    .area-recruit-top .body .job:first-of-type .txt::after {
      display: none; }
  @media only screen and (min-width: 1025px) {
    .area-recruit-top {
      padding: 0 100px 100px 100px;
      margin-top: 200px; }
      .area-recruit-top::after {
        content: '';
        display: block;
        width: 1000px;
        height: 1000px;
        top: -230px;
        /* animation:rotate_typo 15s linear infinite; */ }
      .area-recruit-top .title {
        margin-bottom: 54px; }
        .area-recruit-top .title .hl-main {
          margin-bottom: 2em; }
        .area-recruit-top .title .lead {
          font-size: 20px; }
        .area-recruit-top .title .more {
          font-size: 16px;
          margin-top: 40px; }
      .area-recruit-top .body .jobs {
        display: grid;
        grid-row: 2;
        grid-column: 3;
        grid-column-gap: 33px;
        grid-row-gap: 20px; }
      .area-recruit-top .body .job {
        margin-bottom: 0;
        border-radius: 40px; }
        .area-recruit-top .body .job:last-of-type {
          margin-bottom: 0; }
        .area-recruit-top .body .job:nth-of-type(1) {
          grid-row: 1 / 3;
          grid-column: 1 / 2; }
          .area-recruit-top .body .job:nth-of-type(1) .txt {
            padding: 50px 40px; }
            .area-recruit-top .body .job:nth-of-type(1) .txt h3 {
              text-align: center; }
        .area-recruit-top .body .job:nth-of-type(2) {
          position: relative;
          grid-row: 1 / 3;
          grid-column: 2 / 3; }
          .area-recruit-top .body .job:nth-of-type(2) .txt {
            position: static;
            padding: 50px 40px; }
            .area-recruit-top .body .job:nth-of-type(2) .txt h3 {
              text-align: center; }
            .area-recruit-top .body .job:nth-of-type(2) .txt::after {
              position: absolute;
              left: 50%;
              transform: translateX(-50%) translateY(0);
              right: auto;
              top: auto;
              bottom: 40px; }
        .area-recruit-top .body .job:nth-of-type(3) {
          grid-row: 1 / 2;
          grid-column: 3 / 4; }
          .area-recruit-top .body .job:nth-of-type(3) .txt {
            padding-right: 80px; }
        .area-recruit-top .body .job:nth-of-type(4) {
          grid-row: 2 / 3;
          grid-column: 3 / 4; }
          .area-recruit-top .body .job:nth-of-type(4) .txt {
            padding-right: 80px; }
        .area-recruit-top .body .job .txt {
          padding: 25px 20px;
          position: relative; }
          .area-recruit-top .body .job .txt::after {
            width: 64px;
            height: 64px;
            right: 16px; }
          .area-recruit-top .body .job .txt h3 {
            font-size: 26px; }
            .area-recruit-top .body .job .txt h3 .en {
              font-size: 16px;
              margin-top: 0.2em; }
          .area-recruit-top .body .job .txt ul {
            margin-top: 16px; }
            .area-recruit-top .body .job .txt ul li {
              font-size: 16px;
              font-weight: 500; }
              .area-recruit-top .body .job .txt ul li a {
                padding: 16px 0;
                padding-right: 30px; }
        .area-recruit-top .body .job:first-of-type .txt::after {
          display: none; } }

/* recruit */
.area-recruit-kv {
  position: relative;
  z-index: 2; }
  .area-recruit-kv .title {
    padding: 0 20px;
    margin-bottom: -100px; }
    .area-recruit-kv .title hgroup .tagline img {
      width: 60vw; }
    .area-recruit-kv .title hgroup h1 {
      font-size: 20px;
      font-weight: bold;
      margin-top: 0.8em; }
  @media only screen and (min-width: 1025px) {
    .area-recruit-kv .title-body {
      display: flex;
      justify-content: space-between;
      max-width: 1200px;
      margin: 0 auto; }
    .area-recruit-kv .title {
      padding: 0 0 0 80px;
      margin-bottom: 0px;
      width: 40%;
      margin-right: 50px; }
      .area-recruit-kv .title hgroup .tagline img {
        width: 100%; }
      .area-recruit-kv .title hgroup h1 {
        font-size: 20px;
        font-weight: bold;
        margin-top: 0.8em; }
    .area-recruit-kv .body {
      flex: 1; }
      .area-recruit-kv .body picture img {
        transform: scale(1.3);
        transform-origin: top left; } }

.area-recruit-lead {
  margin-bottom: 50px;
  background: url(/asset/img/recruit/top/bg_blur_lead1_sp.png) 100% 50% no-repeat;
  background-size: contain; }
  .area-recruit-lead .title {
    padding: 0 20px; }
    .area-recruit-lead .title h2 {
      text-align: center;
      margin-bottom: 20px; }
      .area-recruit-lead .title h2 img {
        width: 80px; }
    .area-recruit-lead .title h3 {
      text-align: center;
      margin-bottom: 15px; }
      .area-recruit-lead .title h3 img {
        width: 300px; }
    .area-recruit-lead .title .lead {
      line-height: 2;
      font-size: 14px; }
    .area-recruit-lead .title .more {
      margin-top: 10px; }
      .area-recruit-lead .title .more .link.link01 {
        justify-content: flex-end; }
  .area-recruit-lead .body picture img {
    width: 70vw; }
  @media only screen and (min-width: 1025px) {
    .area-recruit-lead {
      margin-bottom: 90px;
      background: none; }
      .area-recruit-lead .title-body {
        display: flex;
        justify-content: space-between;
        max-width: 1000px;
        margin: 0 auto; }
      .area-recruit-lead .title {
        padding: 0;
        order: 2;
        width: 50%;
        padding-top: 5vw; }
        .area-recruit-lead .title h2 {
          text-align: center;
          margin-bottom: 40px; }
          .area-recruit-lead .title h2 img {
            width: 120px; }
        .area-recruit-lead .title h3 {
          text-align: left;
          margin-bottom: 25px; }
          .area-recruit-lead .title h3 img {
            width: 360px; }
        .area-recruit-lead .title .more {
          margin-top: 10px; }
          .area-recruit-lead .title .more .link.link01 {
            justify-content: flex-start; }
      .area-recruit-lead .body {
        order: 1;
        flex: 1; }
        .area-recruit-lead .body picture {
          position: relative;
          top: -13vw; }
          .area-recruit-lead .body picture img {
            width: 100%;
            transform: scale(1.8);
            transform-origin: top right; } }

.area-recruit-page {
  padding: 0 20px;
  margin-bottom: 50px;
  background: url(/asset/img/recruit/top/bg_blur_lead2_sp.png) 100% 50% no-repeat;
  background-size: 100% 100%; }
  .area-recruit-page .body .first li {
    margin-bottom: 12px;
    background: #efece8;
    border-radius: 150px;
    padding-top: 10px; }
    .area-recruit-page .body .first li .imgtxt {
      display: flex;
      justify-content: space-between;
      align-items: center; }
    .area-recruit-page .body .first li .txt {
      padding-left: 32px;
      flex: 1;
      font-size: 20px;
      font-weight: 600; }
      .area-recruit-page .body .first li .txt small {
        display: block;
        color: #ee0000;
        font-size: 12px;
        font-family: "Sen", serif; }
      .area-recruit-page .body .first li .txt::after {
        content: '';
        display: block;
        width: 47px;
        height: 47px;
        background: url(/asset/img/recruit/top/arw01.svg) 0 0 no-repeat;
        background-size: contain;
        margin-top: 8px; }
    .area-recruit-page .body .first li .img {
      width: 150px; }
  .area-recruit-page .body .second {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    margin-top: 50px; }
    .area-recruit-page .body .second li {
      background: #efece8;
      border-radius: 28px;
      width: 48%;
      margin-bottom: calc(2% + 30px); }
      .area-recruit-page .body .second li .txt {
        font-size: 16px;
        font-weight: 600;
        text-align: center; }
        .area-recruit-page .body .second li .txt small {
          display: block;
          color: #ee0000;
          font-size: 12px;
          font-family: "Sen", serif; }
        .area-recruit-page .body .second li .txt::after {
          content: '';
          display: block;
          width: 47px;
          height: 47px;
          background: url(/asset/img/recruit/top/arw01.svg) 0 0 no-repeat;
          background-size: contain;
          margin: 8px auto; }
      .area-recruit-page .body .second li .img {
        text-align: center; }
        .area-recruit-page .body .second li .img picture {
          position: relative;
          top: -30px;
          margin-bottom: -20px; }
        .area-recruit-page .body .second li .img img {
          height: 70px;
          width: auto; }
  @media only screen and (min-width: 1025px) {
    .area-recruit-page {
      padding: 0 100px;
      margin-bottom: 150px;
      background: none; }
      .area-recruit-page .inner {
        max-width: 1060px;
        margin: 0 auto; }
      .area-recruit-page .body .first {
        display: flex;
        justify-content: space-between; }
        .area-recruit-page .body .first li {
          margin-bottom: 0;
          padding-top: 10px;
          width: 49%; }
          .area-recruit-page .body .first li .imgtxt {
            display: flex;
            justify-content: space-between;
            align-items: center; }
          .area-recruit-page .body .first li .txt {
            padding-left: 64px;
            padding-top: 16px;
            font-size: 22px; }
            .area-recruit-page .body .first li .txt::after {
              width: 64px;
              height: 64px;
              margin-top: 10px; }
          .area-recruit-page .body .first li .img {
            width: 240px; }
      .area-recruit-page .body .second {
        display: flex;
        justify-content: space-between;
        flex-wrap: nowrap;
        margin-top: 130px; }
        .area-recruit-page .body .second li {
          border-radius: 40px;
          width: 32%;
          margin-bottom: calc(2% + 30px);
          padding-bottom: 20px; }
          .area-recruit-page .body .second li .txt {
            font-size: 18px; }
            .area-recruit-page .body .second li .txt::after {
              width: 64px;
              height: 64px;
              margin-top: 10px; }
          .area-recruit-page .body .second li .img {
            text-align: center; }
            .area-recruit-page .body .second li .img picture {
              position: relative;
              top: -50px;
              margin-bottom: -40px; }
            .area-recruit-page .body .second li .img img {
              height: 122px; } }

@media only screen and (min-width: 1025px) {
  .bg-blur {
    background: url(/asset/img/recruit/top/bg_blur_lead_pc.png) 100% 100% no-repeat;
    background-size: contain;
    padding-bottom: 50px; } }

.bg-recruit {
  background: url(/asset/img/recruit/top/bg_repeat_y_sp.png) 50% 0 repeat-y;
  background-size: 100% auto; }
  .bg-recruit .top {
    position: relative;
    top: -3vw; }
  .bg-recruit .bg-inner {
    padding: 0 20px; }
  @media only screen and (min-width: 1025px) {
    .bg-recruit {
      background: url(/asset/img/recruit/top/bg_repeat_y_pc.png) 50% 0 repeat-y;
      background-size: 100% auto; }
      .bg-recruit .top {
        position: relative;
        top: -3vw; }
      .bg-recruit .bg-inner {
        padding: 0; } }

.area-recruit-entry {
  margin-bottom: 40px; }
  .area-recruit-entry .title {
    margin-bottom: 1em; }
    .area-recruit-entry .title p {
      font-size: 14px;
      line-height: 1.8; }
  .area-recruit-entry .body dl .row {
    background: #fff url(/asset/img/recruit/top/arw02.svg) calc(100% - 14px) 50% no-repeat;
    background-size: 47px 47px;
    border-radius: 18px;
    overflow: hidden;
    position: relative;
    padding: 28px 24px;
    margin-bottom: 10px; }
    .area-recruit-entry .body dl .row::before {
      content: '';
      display: block;
      width: 8px;
      height: 57px;
      background: #ff1111;
      border-top-right-radius: 8px;
      border-bottom-right-radius: 8px;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      left: 0; }
    .area-recruit-entry .body dl .row dt {
      font-size: 18px;
      font-weight: bold; }
      .area-recruit-entry .body dl .row dt a {
        display: block; }
    .area-recruit-entry .body dl .row.has-child {
      display: flex;
      align-items: center;
      padding: 14px 14px 14px 24px;
      background: #fff; }
      .area-recruit-entry .body dl .row.has-child dt {
        flex-shrink: 0;
        margin-right: 2em; }
      .area-recruit-entry .body dl .row.has-child dd ul {
        font-size: 14px; }
        .area-recruit-entry .body dl .row.has-child dd ul li {
          margin-bottom: 4px; }
          .area-recruit-entry .body dl .row.has-child dd ul li:last-of-type {
            margin-bottom: 0; }
          .area-recruit-entry .body dl .row.has-child dd ul li a {
            display: block;
            border: 1px solid #d5d5d5;
            border-radius: 100px;
            padding: 1em;
            padding-right: 3em;
            background: url(/asset/img/common/arw-r01-red.svg) calc(100% - 14px) 50% no-repeat; }
  .area-recruit-entry .body dl .double ul {
    display: flex;
    justify-content: space-between; }
    .area-recruit-entry .body dl .double ul li {
      background: #fff url(/asset/img/recruit/top/arw02.svg) 50% calc(100% - 14px) no-repeat;
      background-size: 47px 47px;
      border-radius: 18px;
      overflow: hidden;
      padding: 12px;
      text-align: center;
      line-height: 1.2;
      padding-bottom: 70px;
      width: 48.5%; }
      .area-recruit-entry .body dl .double ul li img {
        margin-bottom: 10px;
        margin-top: 10px; }
      .area-recruit-entry .body dl .double ul li small {
        font-size: 10px; }
  @media only screen and (min-width: 1025px) {
    .area-recruit-entry {
      margin-bottom: 50px;
      padding: 0 100px; }
      .area-recruit-entry .inner {
        max-width: 1200px;
        margin: 0 auto; }
      .area-recruit-entry .title-body {
        display: flex;
        justify-content: space-between; }
      .area-recruit-entry .title {
        margin-bottom: 0;
        width: 320px;
        margin-right: 90px; }
      .area-recruit-entry .body {
        flex: 1; }
        .area-recruit-entry .body dl .row {
          background: #fff url(/asset/img/recruit/top/arw02.svg) calc(100% - 20px) 50% no-repeat;
          background-size: 64px 64px;
          padding: 40px; }
          .area-recruit-entry .body dl .row dt {
            font-size: 20px; }
          .area-recruit-entry .body dl .row.has-child {
            padding: 18px 18px 18px 40px;
            justify-content: space-between; }
            .area-recruit-entry .body dl .row.has-child dt {
              flex-shrink: 0; }
            .area-recruit-entry .body dl .row.has-child dd {
              flex: 1;
              max-width: 70%; }
              .area-recruit-entry .body dl .row.has-child dd ul {
                font-size: 16px; }
                .area-recruit-entry .body dl .row.has-child dd ul li {
                  margin-bottom: 10px; }
                  .area-recruit-entry .body dl .row.has-child dd ul li:last-of-type {
                    margin-bottom: 0; }
                  .area-recruit-entry .body dl .row.has-child dd ul li a {
                    padding: 1.3em;
                    padding-right: 3em;
                    background: url(/asset/img/common/arw-r01-red.svg) calc(100% - 20px) 50% no-repeat; }
        .area-recruit-entry .body dl .double ul li {
          background: #fff url(/asset/img/recruit/top/arw02.svg) calc(100% - 20px) 50% no-repeat;
          background-size: 64px 64px;
          padding: 34px 20px;
          text-align: left;
          line-height: 1.2;
          width: 49.5%; }
          .area-recruit-entry .body dl .double ul li img {
            margin-bottom: 10px;
            margin-top: 0px;
            width: 60%; }
          .area-recruit-entry .body dl .double ul li small {
            font-size: 14px;
            display: block; } }

.area-recruit-initiative {
  margin-bottom: 50px; }
  .area-recruit-initiative .body ul {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: repeat(2, 1fr); }
    .area-recruit-initiative .body ul li {
      background: #fff;
      border-radius: 28px;
      overflow: hidden;
      text-align: center; }
      .area-recruit-initiative .body ul li a {
        display: block; }
      .area-recruit-initiative .body ul li .img {
        padding-top: 20px; }
        .area-recruit-initiative .body ul li .img img {
          height: 38px;
          width: auto; }
      .area-recruit-initiative .body ul li .txt {
        padding: 10px; }
        .area-recruit-initiative .body ul li .txt h3 {
          font-size: 16px;
          font-weight: bold; }
      .area-recruit-initiative .body ul li .more {
        background: #efece8;
        padding: 10px; }
        .area-recruit-initiative .body ul li .more p img {
          width: 47px; }
  @media only screen and (min-width: 1025px) {
    .area-recruit-initiative {
      margin-bottom: 50px;
      padding: 0 100px; }
      .area-recruit-initiative .inner {
        max-width: 1200px;
        margin: 0 auto; }
      .area-recruit-initiative .body ul {
        display: grid;
        grid-gap: 36px;
        grid-template-columns: repeat(4, 1fr); }
        .area-recruit-initiative .body ul li {
          background: #fff;
          border-radius: 28px;
          overflow: hidden;
          text-align: center; }
          .area-recruit-initiative .body ul li a {
            display: block; }
          .area-recruit-initiative .body ul li .img {
            padding-top: 30px; }
            .area-recruit-initiative .body ul li .img img {
              height: 38px;
              width: auto; }
          .area-recruit-initiative .body ul li .txt {
            padding: 10px 10px 20px 10px; }
            .area-recruit-initiative .body ul li .txt h3 {
              font-size: 20px; }
          .area-recruit-initiative .body ul li .more {
            padding: 14px; }
            .area-recruit-initiative .body ul li .more p img {
              width: 56px; } }

.area-recruit-news {
  padding: 0px 20px;
  margin-bottom: 20px; }
  .area-recruit-news .body .list .articles {
    margin-bottom: 15px; }
  .area-recruit-news .body .list .article {
    border-bottom: 1px solid #D5D5D5; }
    .area-recruit-news .body .list .article a {
      display: block;
      padding: 12px 40px 12px 0;
      background: url(/asset/img/common/arw-r01-red.svg) 100% 50% no-repeat; }
      .area-recruit-news .body .list .article a[href$=".pdf"] {
        background: url(/asset/img/common/icn-pdf.svg) 100% 50% no-repeat; }
    .area-recruit-news .body .list .article .summary {
      display: flex;
      align-items: center;
      margin-bottom: 6px; }
      .area-recruit-news .body .list .article .summary .date {
        font-size: 13px;
        font-weight: 500;
        font-family: "Sen", serif;
        color: #929292;
        margin-right: 0.5em; }
      .area-recruit-news .body .list .article .summary .tags {
        font-size: 11px;
        color: #e30000; }
        .area-recruit-news .body .list .article .summary .tags li {
          border: 1px solid #e30000;
          border-radius: 100px;
          padding: 0 0.5em;
          margin-right: 0.5em; }
      .area-recruit-news .body .list .article .summary .status {
        font-family: "Sen", serif;
        font-weight: bold;
        color: #e30000;
        font-size: 13px; }
    .area-recruit-news .body .list .article .title p {
      font-size: 14px; }
  .area-recruit-news .body .more a {
    justify-content: flex-end; }
  @media only screen and (min-width: 1025px) {
    .area-recruit-news {
      padding: 0px 100px; }
      .area-recruit-news .inner {
        position: relative; }
      .area-recruit-news .title-body {
        display: flex;
        justify-content: space-between; }
      .area-recruit-news .title {
        width: 360px; }
      .area-recruit-news .body {
        margin-top: 0;
        flex: 1; }
        .area-recruit-news .body .type-list {
          display: flex; }
        .area-recruit-news .body .type {
          margin-bottom: 0px;
          width: 240px;
          margin-right: 100px; }
          .area-recruit-news .body .type .carousel {
            display: flex;
            overflow-x: visible;
            width: 100%;
            margin-left: 0; }
          .area-recruit-news .body .type ul {
            display: block;
            padding-left: 0px; }
            .area-recruit-news .body .type ul li {
              margin-bottom: 0.5em; }
              .area-recruit-news .body .type ul li a {
                padding: 0.8em 2em; }
        .area-recruit-news .body .list {
          flex: 1; }
          .area-recruit-news .body .list .articles {
            margin-bottom: 0; }
          .area-recruit-news .body .list .article a {
            padding: 26px 60px 26px 0; }
          .area-recruit-news .body .list .article .summary {
            display: flex;
            align-items: center;
            margin-bottom: 10px; }
            .area-recruit-news .body .list .article .summary .date {
              font-size: 16px; }
            .area-recruit-news .body .list .article .summary .tags {
              font-size: 13px; }
            .area-recruit-news .body .list .article .summary .status {
              font-size: 14px; }
          .area-recruit-news .body .list .article .title p {
            font-size: 16px; }
        .area-recruit-news .body .more {
          position: absolute;
          top: 0;
          right: 0; }
          .area-recruit-news .body .more a {
            justify-content: flex-end; } }

/* other */
.area-onlineshop {
  margin-top: 80px; }
  .area-onlineshop .title-body {
    position: relative; }
  .area-onlineshop .title {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    z-index: 2; }
    .area-onlineshop .title h2 {
      text-align: center; }
      .area-onlineshop .title h2 .en {
        font-size: 56px;
        display: block;
        line-height: 1; }
      .area-onlineshop .title h2 small {
        font-size: 18px; }
    .area-onlineshop .title .more {
      background: #fff;
      border-radius: 10px;
      max-width: 324px;
      margin: 0 auto;
      margin-top: 1em;
      padding: 16px; }
  .area-onlineshop .body picture {
    position: relative; }
    .area-onlineshop .body picture::after {
      background: rgba(0, 0, 0, 0.4);
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      content: ' ';
      display: block; }
  @media only screen and (min-width: 1025px) {
    .area-onlineshop {
      margin-top: 120px; }
      .area-onlineshop .title h2 .en {
        font-size: 64px; }
      .area-onlineshop .title h2 small {
        font-size: 24px; }
      .area-onlineshop .title .more {
        max-width: 360px; } }

.area-itemlist {
  margin-bottom: 20px; }
  .area-itemlist .body .items {
    display: grid;
    grid-gap: 20px;
    grid-template-columns: repeat(2, 1fr); }
  .area-itemlist .item {
    position: relative; }
    .area-itemlist .item .label {
      position: absolute;
      top: 8px;
      left: 8px;
      z-index: 2; }
      .area-itemlist .item .label li {
        color: #fff;
        border-radius: 100px;
        background: #E30C0C;
        font-size: 12px;
        padding: 0.3em 1.5em; }
    .area-itemlist .item picture {
      margin-bottom: 8px; }
      .area-itemlist .item picture img {
        border-radius: 10px; }
    .area-itemlist .item .name {
      font-size: 16px; }
  @media only screen and (min-width: 1025px) {
    .area-itemlist {
      margin-bottom: 40px; }
      .area-itemlist .body .items {
        grid-template-columns: repeat(5, 1fr); }
      .area-itemlist .item .label li {
        font-size: 15px; } }

.area-voice {
  margin-bottom: 5em; }
  .area-voice .body .voice {
    border: 2px solid #E30C0C;
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 70px; }
    .area-voice .body .voice .imgtxt {
      position: relative; }
    .area-voice .body .voice .img {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      top: -70px; }
      .area-voice .body .voice .img picture {
        width: 92px;
        height: 92px;
        background: #fff;
        border-radius: 50%;
        border: 2px solid #E30C0C;
        position: relative; }
      .area-voice .body .voice .img img {
        width: 60px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); }
    .area-voice .body .voice .txt {
      padding-top: 30px; }
      .area-voice .body .voice .txt h3 {
        text-align: center;
        font-size: 16px;
        margin-bottom: 0.5em; }
      .area-voice .body .voice .txt ul {
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 2px; }
        .area-voice .body .voice .txt ul li {
          font-size: 16px;
          border-radius: 100px;
          color: #fff;
          background: #E30C0C;
          padding: 0.1em 0.4em 0.5em 0.2em;
          line-height: 1;
          margin: 0 8px 8px 0; }
          .area-voice .body .voice .txt ul li::before {
            content: '';
            width: 20px;
            height: 20px;
            background: url(/asset/img/common/icn-check.svg) 0 0 no-repeat;
            background-size: contain;
            display: inline-block;
            position: relative;
            top: 3px;
            margin-right: 3px; }
      .area-voice .body .voice .txt p {
        font-size: 16px;
        line-height: 1.8; }
  @media only screen and (min-width: 1025px) {
    .area-voice .body .voices {
      display: grid;
      grid-column-gap: 40px;
      grid-row-gap: 70px;
      grid-template-columns: repeat(3, 1fr); }
    .area-voice .body .voice {
      border: 2px solid #E30C0C;
      padding: 20px;
      border-radius: 10px;
      margin-bottom: 0px; }
      .area-voice .body .voice .imgtxt {
        position: relative; }
      .area-voice .body .voice .img {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        top: -70px; }
        .area-voice .body .voice .img picture {
          width: 92px;
          height: 92px;
          background: #fff;
          border-radius: 50%;
          border: 2px solid #E30C0C;
          position: relative; }
        .area-voice .body .voice .img img {
          width: 60px;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%); }
      .area-voice .body .voice .txt {
        padding-top: 30px; }
        .area-voice .body .voice .txt h3 {
          text-align: center;
          font-size: 16px;
          margin-bottom: 0.5em; }
        .area-voice .body .voice .txt ul {
          display: flex;
          flex-wrap: wrap;
          margin-bottom: 2px; }
          .area-voice .body .voice .txt ul li {
            font-size: 16px;
            border-radius: 100px;
            color: #fff;
            background: #E30C0C;
            padding: 0.1em 0.4em 0.5em 0.2em;
            line-height: 1;
            margin: 0 8px 8px 0; }
            .area-voice .body .voice .txt ul li::before {
              content: '';
              width: 20px;
              height: 20px;
              background: url(/asset/img/common/icn-check.svg) 0 0 no-repeat;
              background-size: contain;
              display: inline-block;
              position: relative;
              top: 3px;
              margin-right: 3px; }
        .area-voice .body .voice .txt p {
          font-size: 16px;
          line-height: 1.8; } }

.history_img {
  position: relative;
  z-index: 1;
  overflow-x: scroll;
  margin-bottom: 3em; }
  .history_img img {
    width: 1494px;
    height: auto; }
    @media only screen and (max-width: 900px) {
      .history_img img {
        width: 1119px;
        width: 298.4vw; } }
  .history_img .anc {
    display: block;
    position: absolute;
    z-index: 1;
    width: 100%;
    top: 0;
    left: 0; }
    .history_img .anc .anc_list ul li {
      width: 150px;
      height: 60px; }
      @media only screen and (max-width: 900px) {
        .history_img .anc .anc_list ul li {
          width: 29.333vw;
          height: 10.667vw; } }
      .history_img .anc .anc_list ul li a {
        color: #fff;
        display: block;
        height: 100%; }
        .history_img .anc .anc_list ul li a > span {
          opacity: 0; }
      .history_img .anc .anc_list ul li.year {
        position: absolute;
        z-index: 2; }
      .history_img .anc .anc_list ul li.year01 {
        top: 462px;
        left: 13px; }
        @media only screen and (max-width: 900px) {
          .history_img .anc .anc_list ul li.year01 {
            top: 92.8vw;
            left: 3.467vw; } }
      .history_img .anc .anc_list ul li.year02 {
        top: 423px;
        left: 245px; }
        @media only screen and (max-width: 900px) {
          .history_img .anc .anc_list ul li.year02 {
            top: 85.067vw;
            left: 49.067vw; } }
      .history_img .anc .anc_list ul li.year03 {
        top: 377px;
        left: 444px; }
        @media only screen and (max-width: 900px) {
          .history_img .anc .anc_list ul li.year03 {
            top: 75.2vw;
            left: 88.8vw; } }
      .history_img .anc .anc_list ul li.year04 {
        top: 327px;
        left: 635px; }
        @media only screen and (max-width: 900px) {
          .history_img .anc .anc_list ul li.year04 {
            top: 66.4vw;
            left: 126.933vw; } }
      .history_img .anc .anc_list ul li.year05 {
        top: 414px;
        left: 854px; }
        @media only screen and (max-width: 900px) {
          .history_img .anc .anc_list ul li.year05 {
            top: 82.933vw;
            left: 170.133vw; } }
      .history_img .anc .anc_list ul li.year06 {
        top: 183px;
        left: 988px; }
        @media only screen and (max-width: 900px) {
          .history_img .anc .anc_list ul li.year06 {
            top: 36.8vw;
            left: 196.8vw; } }
      .history_img .anc .anc_list ul li.year07 {
        top: 265px;
        left: 1297px; }
        @media only screen and (max-width: 900px) {
          .history_img .anc .anc_list ul li.year07 {
            top: 53.333vw;
            left: 258.667vw; } }

/* block
**************************************************************************************************************************/
.bg.type-a {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  background: #F5F5F5;
  padding: 40px 20px; }

.bg.type-b {
  position: relative;
  padding: 0 20px; }
  .bg.type-b::before {
    content: '';
    display: block;
    width: 112px;
    height: 300px;
    background: url(/asset/img/business/common/bg01.svg) 0 0 no-repeat;
    background-size: contain;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1; }
  .bg.type-b::after {
    content: '';
    display: block;
    width: 112px;
    height: 300px;
    background: url(/asset/img/business/common/bg02.svg) 0 0 no-repeat;
    background-size: contain;
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: -1; }

@media only screen and (min-width: 1025px) {
  .bg.type-a {
    width: 100%;
    margin-left: 0;
    padding: 80px 120px;
    border-radius: 20px; }
  .bg.type-b {
    position: relative; }
    .bg.type-b::before {
      width: 291px;
      height: 776px; }
    .bg.type-b::after {
      width: 291px;
      height: 776px; }
    .bg.type-b .block {
      max-width: 1040px;
      margin: 0 auto; } }

.block {
  margin-bottom: 32px; }
  .block.has-error {
    border: 1px solid #E30C0C;
    background: #FFF2F2;
    padding: 18px;
    padding-left: 54px;
    color: #E30C0C;
    background: url(/asset/img/common/icn-error.svg) 16px 16px no-repeat; }
    .block.has-error ul {
      margin-bottom: 0;
      margin-bottom: -2px; }
  .block p {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 2em; }
    .block p a {
      text-decoration: underline;
      color: #E30C0C;
      word-break: break-all; }
    .block p.form-label {
      margin: 1em 0; }
    .block p.submit .btn {
      display: block;
      margin: 10px auto; }
    .block p.error {
      margin-top: 0.5em;
      margin-bottom: 0;
      font-size: 12px;
      color: #E30C0C; }
  .block span.separater {
    display: inline-block;
    width: 1px;
    height: 80%;
    background: #ccc;
    margin: 0 2em;
    vertical-align: middle; }
  .block picture {
    margin-bottom: 3em; }
    .block picture.has-bd {
      border-radius: 20px;
      border: 1px solid #E30C0C; }
    .block picture.has-pd {
      padding: 50px 20px;
      aspect-ratio: 1/1;
      position: relative; }
      .block picture.has-pd img {
        max-height: 200px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); }
  .block .imgtxt {
    margin-bottom: 2em; }
    .block .imgtxt .img img {
      border-radius: 20px; }
    .block .imgtxt .img p {
      margin-top: 0.8em; }
    .block .imgtxt.img-l.type-a .img {
      text-align: center; }
      .block .imgtxt.img-l.type-a .img img {
        width: 160px; }
    .block .imgtxt.img-up {
      display: flex;
      flex-wrap: wrap; }
      .block .imgtxt.img-up .txt {
        width: 100%;
        order: 2; }
      .block .imgtxt.img-up .img {
        width: 100%;
        order: 1;
        margin-bottom: 20px; }
        .block .imgtxt.img-up .img picture {
          margin-bottom: 0; }
  .block ul {
    margin-bottom: 2em; }
    .block ul.type-a a {
      text-decoration: underline;
      color: #E30C0C;
      word-break: break-all; }
    .block ul.type-a li {
      margin-bottom: 0.5em;
      display: flex;
      flex-wrap: wrap; }
      .block ul.type-a li::before {
        content: '';
        display: block;
        width: 6px;
        height: 6px;
        background: #E30C0C;
        border-radius: 50%;
        flex-shrink: 0;
        margin-top: 0.55em;
        margin-right: 5px; }
      .block ul.type-a li div {
        width: 100%;
        margin: 1em 0 1em 0.8em; }
    .block ul.type-b li {
      margin-bottom: 0.5em;
      display: flex; }
    .block ul.type-b.w140 li span {
      width: 140px;
      margin-right: 5px; }
    .block ul.type-c {
      margin-bottom: 2em; }
      .block ul.type-c li {
        margin-bottom: 0.8em;
        display: flex; }
        .block ul.type-c li span {
          margin-top: -4px;
          margin-right: 8px; }
    .block ul.sp-col02 {
      display: grid;
      grid-gap: 20px;
      grid-template-columns: repeat(2, 1fr); }
      .block ul.sp-col02 li img {
        border-radius: 0 !important; }
    .block ul.btns {
      text-align: center; }
      .block ul.btns li {
        margin-bottom: 16px; }
  .block ol {
    margin-bottom: 2em; }
    .block ol.type-a {
      margin: 1em 0; }
      .block ol.type-a li {
        margin-bottom: 0.5em;
        display: flex;
        flex-wrap: nowrap; }
        .block ol.type-a li span:nth-of-type(1) {
          flex-shrink: 0;
          margin-right: 5px; }
        .block ol.type-a li span:nth-of-type(2) {
          flex: 1; }
        .block ol.type-a li div {
          width: 100%;
          margin: 1em 0;
          padding-left: 1.3em; }
      .block ol.type-a.is-wrap li {
        flex-wrap: wrap; }
    .block ol.type-b a {
      text-decoration: underline;
      color: #E30C0C;
      word-break: break-all; }
    .block ol.type-b > li {
      margin-bottom: 1em;
      list-style-type: decimal;
      margin-left: 1.1em; }
    .block ol.type-c {
      display: grid;
      grid-gap: 15px;
      grid-template-columns: repeat(2, 1fr);
      list-style: none;
      counter-reset: type-c-counter; }
      .block ol.type-c li {
        word-break: break-all; }
        .block ol.type-c li a {
          position: relative;
          text-decoration: underline;
          color: #E30C0C;
          padding-left: 1.8em; }
          .block ol.type-c li a::before {
            content: counter(type-c-counter);
            counter-increment: type-c-counter;
            background-color: #E30C0C;
            border-radius: 50%;
            box-sizing: border-box;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 22px;
            width: 22px;
            color: #ffffff;
            font-size: 85%;
            line-height: 1;
            position: absolute;
            top: 2px;
            left: 0; }
  .block dl {
    margin-bottom: 2em; }
    .block dl.type-a .row {
      margin-bottom: 40px; }
      .block dl.type-a .row:last-of-type {
        margin-bottom: 0; }
    .block dl.type-a dt {
      display: flex;
      margin-bottom: 10px; }
      .block dl.type-a dt .serial {
        position: relative;
        width: 36px;
        height: 36px;
        background: #E30C0C;
        border-radius: 50%;
        color: #fff;
        margin-right: 5px; }
        .block dl.type-a dt .serial span {
          font-size: 16px;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%); }
      .block dl.type-a dt .title {
        flex: 1;
        font-size: 22px;
        font-weight: 500;
        color: #E30C0C; }
    .block dl.type-a dd {
      font-size: 16px;
      line-height: 1.8; }
    .block dl.type-b {
      border-top: 1px solid #E30C0C; }
      .block dl.type-b .row {
        border-bottom: 1px solid #E30C0C;
        padding: 20px 0; }
      .block dl.type-b dt {
        margin-bottom: 1em; }
        .block dl.type-b dt h3 span {
          background: #E30C0C;
          color: #Fff;
          font-size: 22px;
          padding: 0.2em 0.5em; }
        .block dl.type-b dt p {
          font-size: 16px;
          margin: 0;
          margin-top: 0.5em; }
      .block dl.type-b dd {
        font-size: 16px;
        line-height: 1.8; }
    .block dl.type-c {
      border-top: 1px solid #ccc;
      font-size: 16px; }
      .block dl.type-c .row {
        border-bottom: 1px solid #ccc;
        padding: 20px 0; }
      .block dl.type-c dt {
        color: #E30C0C;
        font-weight: 600;
        margin-bottom: 0.43em; }
        .block dl.type-c dt a {
          text-decoration: underline;
          color: #E30C0C; }
    .block dl.type-d {
      border: 2px solid #F0ECE9;
      border-bottom: 0;
      font-size: 14px;
      margin: 2em 0; }
      .block dl.type-d dt {
        border-bottom: 2px solid #F0ECE9;
        background: #FFFFEB;
        font-weight: bold;
        padding: 1em; }
        .block dl.type-d dt .require {
          display: inline-block;
          background: #E30C0C;
          color: #fff;
          font-size: 10px;
          padding: 0.3em 1.6em;
          margin-left: 5px; }
      .block dl.type-d dd {
        border-bottom: 2px solid #F0ECE9;
        padding: 1em; }
        .block dl.type-d dd a {
          text-decoration: underline;
          color: #E30C0C; }
        .block dl.type-d dd img.logo {
          height: 60px;
          width: auto;
          margin: 0.8em 0; }
    .block dl.type-e .row {
      margin-bottom: 2.5em; }
      .block dl.type-e .row:last-of-type {
        margin-bottom: 0; }
    .block dl.type-e dt {
      font-size: 22px;
      font-weight: 500;
      color: #E30C0C;
      margin-bottom: 0.5em; }
    .block dl.type-f {
      font-size: 16px; }
      .block dl.type-f .row {
        border-top: 1px solid #ccc;
        padding: 20px 0; }
      .block dl.type-f dt {
        font-weight: 500;
        margin-bottom: 0.43em;
        font-size: 16px;
        padding-top: 0.2em;
        line-height: 1.2; }
        .block dl.type-f dt .date {
          font-size: 16px; }
        .block dl.type-f dt a {
          text-decoration: underline; }
      .block dl.type-f dd {
        font-size: 16px;
        line-height: 1.8; }
        .block dl.type-f dd .note {
          color: #E30C0C; }
      .block dl.type-f + .hl15 {
        margin-top: 1.5em; }
  .block table.type-a {
    border-top: 2px solid #E30C0C;
    border-left: 2px solid #E30C0C;
    width: 600px;
    font-size: 16px;
    margin-bottom: 2em; }
    .block table.type-a th {
      border-right: 2px solid #E30C0C;
      border-bottom: 2px solid #E30C0C;
      background: #FFFFEB;
      color: #E30C0C;
      padding: 0.6em 1em; }
    .block table.type-a td {
      border-right: 2px solid #E30C0C;
      border-bottom: 2px solid #E30C0C;
      padding: 1em; }
  .block .pagelist {
    display: grid;
    grid-gap: 16px;
    grid-template-columns: repeat(2, 1fr); }
    .block .pagelist li a {
      display: block;
      position: relative; }
    .block .pagelist li picture {
      margin: 0;
      background: #FFFFEB; }
      .block .pagelist li picture img {
        opacity: 0.3; }
    .block .pagelist li .title {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 100%;
      text-align: center;
      font-size: 16px; }
      .block .pagelist li .title:before {
        content: '';
        display: block;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: #000;
        margin: 0 auto;
        margin-bottom: 8px; }
    .block .pagelist li:nth-of-type(odd) picture {
      border-radius: 100% 100% 100% 0;
      overflow: hidden; }
    .block .pagelist li:nth-of-type(even) picture {
      border-radius: 100% 0 100% 100%;
      overflow: hidden; }
  .block .anchors .anchor {
    margin-bottom: 20px; }
    .block .anchors .anchor:last-of-type {
      margin-bottom: 0; }
    .block .anchors .anchor a {
      display: block; }
    .block .anchors .anchor .img picture {
      background: #FFFFEB;
      border-radius: 50%;
      width: 200px;
      height: 200px;
      border: 5px solid #E30C0C;
      position: relative;
      margin: 0 auto;
      margin-bottom: -30px; }
    .block .anchors .anchor .img img {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 50%; }
    .block .anchors .anchor .txt {
      background: #E30C0C;
      border-radius: 20px;
      padding: 16px;
      text-align: center;
      color: #fff;
      position: relative;
      z-index: 2; }
      .block .anchors .anchor .txt p {
        font-size: 20px;
        line-height: 1.8;
        margin: 0; }
        .block .anchors .anchor .txt p::after {
          content: '';
          display: block;
          width: 20px;
          height: 20px;
          background: url(/asset/img/common/arw-d02-white.svg) 0 0 no-repeat;
          background-size: contain;
          margin: 0 auto;
          margin-top: 5px; }
  .block .anchorlist ul {
    font-size: 16px;
    font-weight: bold; }
    .block .anchorlist ul li a {
      color: #E30C0C;
      display: block;
      border-bottom: 1px solid #E30C0C;
      padding: 1em 0.5em;
      padding-right: 3em;
      position: relative; }
      .block .anchorlist ul li a::after {
        content: '';
        display: block;
        height: calc(tan(60deg) * 20px / 2);
        width: 20px;
        clip-path: polygon(0 0, 100% 0, 50% 100%);
        background: #E30C0C;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 0.5em; }
  .block .points .point .img {
    margin-bottom: 20px; }
    .block .points .point .img picture {
      border-radius: 10px;
      border: 1px solid #E30C0C;
      text-align: center;
      background: #fff;
      padding: 12px;
      margin: 0; }
    .block .points .point .img img {
      width: 160px; }
  .block .points .point .txt {
    display: flex; }
    .block .points .point .txt .serial {
      font-family: "Sen", serif;
      margin: 0;
      margin-right: 8px;
      flex-shrink: 0; }
      .block .points .point .txt .serial span {
        font-size: 60px;
        color: #FFC9C9;
        line-height: 1; }
        .block .points .point .txt .serial span small {
          font-size: 15px;
          color: #E30C0C;
          display: block;
          margin-bottom: -0.5em; }
    .block .points .point .txt .descript {
      flex: 1;
      font-size: 22px;
      line-height: 1.6; }
  .block .steps {
    display: flex;
    justify-content: space-between;
    max-width: 600px;
    margin: 0 auto; }
    .block .steps li {
      font-size: 12px;
      text-align: center;
      flex: 1;
      position: relative; }
      .block .steps li::before {
        content: '';
        display: block;
        width: 16px;
        height: 16px;
        background: #D9D9D9;
        border-radius: 50%;
        margin: 0 auto;
        margin-bottom: 10px; }
      .block .steps li::after {
        content: '';
        display: block;
        width: 100%;
        height: 2px;
        background: #D9D9D9;
        position: absolute;
        top: 8px;
        z-index: -1; }
      .block .steps li.is-current {
        font-weight: bold; }
        .block .steps li.is-current::before {
          width: 8px;
          height: 8px;
          background: #fff;
          border: 6px solid #EE0000;
          margin-top: -2px; }
      .block .steps li:first-of-type::after {
        width: 50%;
        right: 0; }
      .block .steps li:last-of-type::after {
        width: 50%;
        left: 0; }
  .block .imgs {
    margin: 2em 0; }
    .block .imgs .img {
      text-align: center;
      margin-bottom: 20px; }
      .block .imgs .img .has-bd {
        border-radius: 20px;
        border: 1px solid #E30C0C; }
      .block .imgs .img:last-of-type {
        margin-bottom: 0; }
      .block .imgs .img picture {
        margin: 0;
        padding: 20px 0; }
        .block .imgs .img picture img {
          max-width: 80px; }
        .block .imgs .img picture span {
          display: block;
          font-size: 13px;
          margin-top: 5px; }
      .block .imgs .img p {
        margin: 0;
        margin-top: 8px;
        font-size: 13px; }
      .block .imgs .img ul.is-flex {
        display: flex;
        justify-content: center; }
    .block .imgs.sp-col02 {
      display: grid;
      grid-gap: 10px;
      grid-template-columns: repeat(2, 1fr);
      align-items: center; }
  .block .sdgs {
    margin-bottom: 3em; }
    .block .sdgs:last-of-type {
      margin-bottom: 0; }
    .block .sdgs .sdg {
      border: 2px solid #E30C0C;
      border-radius: 10px;
      overflow: hidden;
      margin-bottom: 20px; }
      .block .sdgs .sdg:last-of-type {
        margin-bottom: 0; }
      .block .sdgs .sdg .imgtxt {
        margin: 0; }
      .block .sdgs .sdg .img {
        padding: 35px; }
        .block .sdgs .sdg .img picture {
          text-align: center;
          margin: 0; }
        .block .sdgs .sdg .img img {
          width: 50%; }
      .block .sdgs .sdg .txt {
        background: #E30C0C;
        color: #fff;
        text-align: center;
        padding: 1em; }
        .block .sdgs .sdg .txt p {
          font-size: 16px;
          margin: 0; }
  .block .numbers .number {
    background: #fff;
    border-radius: 20px;
    padding: 0 12px;
    margin-bottom: 20px;
    text-align: center; }
    .block .numbers .number h2 {
      font-size: 16px;
      font-weight: bold;
      color: #E30C0C;
      padding: 1em 0; }
    .block .numbers .number .imgtxt {
      margin: 0; }
    .block .numbers .number .img picture {
      margin: 0; }
    .block .numbers .number .img img {
      width: 50%; }
    .block .numbers .number .txt p {
      font-size: 16px;
      font-weight: bold;
      color: #E30C0C;
      padding: 1em 0;
      margin: 0; }
  .block .applications .application {
    border: 2px solid #E30C0C;
    border-radius: 20px;
    background: #FFFFEB;
    padding: 20px 26px;
    margin-bottom: 20px; }
    .block .applications .application h2 {
      font-size: 17px;
      font-weight: bold;
      color: #E30C0C;
      padding-bottom: 0.4em;
      border-bottom: 2px solid #E30C0C;
      margin-bottom: 1em; }
    .block .applications .application .more {
      margin: 0;
      text-align: center; }
      .block .applications .application .more a img {
        height: 64px;
        width: auto; }
  .block .scrollimg {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    padding-left: 20px;
    overflow: scroll; }
    .block .scrollimg img {
      width: 800px; }
  .block .scrollmap {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    padding-left: 20px;
    overflow: scroll; }
    .block .scrollmap img {
      width: 1040px; }
  .block .is-error {
    border: 1px solid #E30C0C;
    background: #FFF2F2; }
  @media only screen and (min-width: 1025px) {
    .block {
      margin-bottom: 64px; }
      .block p.error {
        font-size: 14px; }
      .block picture.is-half {
        text-align: center; }
        .block picture.is-half img {
          width: 60%; }
      .block picture.is-90 {
        text-align: center; }
        .block picture.is-90 img {
          width: 90%; }
      .block picture.has-pd {
        padding: 50px; }
        .block picture.has-pd img {
          width: 90%; }
      .block .imgtxt.img-r {
        display: flex;
        justify-content: space-between; }
        .block .imgtxt.img-r .txt {
          width: 54%;
          order: 1; }
        .block .imgtxt.img-r .img {
          width: 40%;
          order: 2; }
          .block .imgtxt.img-r .img picture {
            margin-bottom: 0; }
      .block .imgtxt.img-l {
        display: flex;
        justify-content: space-between; }
        .block .imgtxt.img-l .txt {
          width: 54%;
          order: 2; }
        .block .imgtxt.img-l .img {
          width: 40%;
          order: 1; }
          .block .imgtxt.img-l .img picture {
            margin-bottom: 0; }
        .block .imgtxt.img-l.img-320 .txt {
          flex: 1; }
        .block .imgtxt.img-l.img-320 .img {
          width: 320px;
          margin-right: 35px; }
        .block .imgtxt.img-l.type-a .txt {
          width: auto;
          order: 2;
          flex: 1; }
        .block .imgtxt.img-l.type-a .img {
          width: 200px;
          order: 1;
          margin-right: 40px; }
          .block .imgtxt.img-l.type-a .img img {
            width: 100%; }
        .block .imgtxt.img-l.img-map {
          align-items: center; }
          .block .imgtxt.img-l.img-map .txt {
            flex: 1; }
          .block .imgtxt.img-l.img-map .img {
            width: 400px;
            margin-right: 35px; }
      .block .imgtxt.img-up .txt {
        width: 54%; }
      .block .imgtxt.img-up .img {
        width: 40%;
        margin-bottom: 20px; }
        .block .imgtxt.img-up .img picture {
          margin-bottom: 0; }
      .block .imgtxt.img30 .img {
        width: 30%;
        margin-right: 4%; }
      .block .imgtxt.img30 .txt {
        width: auto;
        flex: 1; }
      .block ul.pc-col06 {
        grid-template-columns: repeat(6, 1fr); }
      .block dl.type-b .row {
        padding: 40px 0;
        display: flex;
        justify-content: space-between; }
      .block dl.type-b dt {
        margin-bottom: 0;
        width: 48%; }
        .block dl.type-b dt h3 {
          padding-top: 5px; }
          .block dl.type-b dt h3 span {
            font-size: 26px;
            padding: 0.2em 0.5em; }
        .block dl.type-b dt p {
          font-size: 17px; }
      .block dl.type-b dd {
        width: 48%;
        font-size: 17px; }
      .block dl.type-c .row {
        padding: 20px 0;
        display: flex;
        justify-content: space-between; }
      .block dl.type-c dt {
        margin-bottom: 0;
        width: 180px;
        margin-right: 10px; }
      .block dl.type-c dd {
        flex: 1; }
      .block dl.type-c.with-link dt {
        width: 240px; }
      .block dl.type-d {
        font-size: 16px; }
        .block dl.type-d .row {
          display: flex;
          justify-content: space-between; }
        .block dl.type-d dt {
          width: 320px;
          display: flex;
          align-items: center;
          padding: 1.6em;
          border-right: 2px solid #F0ECE9; }
          .block dl.type-d dt .require {
            font-size: 12px;
            padding: 0.1em 1.6em;
            margin-left: 10px;
            flex-shrink: 0; }
        .block dl.type-d dd {
          flex: 1;
          padding: 1.6em; }
      .block dl.type-e .row {
        margin-bottom: 2.5em;
        display: flex; }
        .block dl.type-e .row:last-of-type {
          margin-bottom: 0; }
      .block dl.type-e dt {
        font-size: 26px;
        margin-bottom: 0;
        width: 100px; }
      .block dl.type-e dd {
        flex: 1; }
      .block dl.type-f .row {
        padding: 20px 0;
        display: flex;
        justify-content: space-between; }
      .block dl.type-f dt {
        margin-bottom: 0;
        width: 140px;
        margin-right: 10px; }
      .block dl.type-f dd {
        flex: 1; }
      .block dl.type-f.with-link dt {
        width: 240px; }
      .block table.type-a {
        width: 100%;
        font-size: 17px; }
      .block .pagelist {
        display: grid;
        grid-gap: 40px;
        grid-template-columns: repeat(3, 1fr); }
        .block .pagelist li .title {
          font-size: 30px; }
          .block .pagelist li .title:before {
            width: 15px;
            height: 15px;
            margin-bottom: 8px; }
      .block .anchors {
        display: grid;
        grid-gap: 40px;
        grid-template-columns: repeat(3, 1fr); }
        .block .anchors .anchor {
          margin-bottom: 0px; }
      .block .anchorlist ul {
        font-size: 17px;
        display: grid;
        grid-gap: 40px;
        grid-template-columns: repeat(3, 1fr); }
        .block .anchorlist ul li a {
          padding: 1em 0.5em; }
      .block .points .point {
        margin-bottom: 40px; }
        .block .points .point .imgtxt {
          display: flex;
          justify-content: space-between;
          align-items: center; }
        .block .points .point .img {
          margin-bottom: 0px;
          margin-right: 40px;
          width: 260px; }
          .block .points .point .img picture {
            padding: 30px; }
        .block .points .point .txt {
          display: block;
          flex: 1; }
          .block .points .point .txt .serial span {
            font-size: 100px; }
            .block .points .point .txt .serial span small {
              font-size: 20px; }
          .block .points .point .txt .descript {
            font-size: 26px;
            margin: 0; }
      .block .steps li {
        font-size: 16px; }
      .block .imgs .img {
        margin-bottom: 0px; }
        .block .imgs .img picture {
          padding: 35px 0;
          position: relative; }
          .block .imgs .img picture img {
            max-width: auto;
            height: 132px;
            width: auto; }
          .block .imgs .img picture span {
            display: block; }
        .block .imgs .img p {
          text-align: left; }
        .block .imgs .img ul {
          width: 100%; }
      .block .imgs.pc-col02 {
        display: flex;
        justify-content: space-between; }
        .block .imgs.pc-col02 .img:nth-of-type(1) {
          width: 40%; }
          .block .imgs.pc-col02 .img:nth-of-type(1) img {
            height: 158px;
            max-width: none; }
        .block .imgs.pc-col02 .img:nth-of-type(2) {
          width: 58%; }
      .block .imgs.pc-col04 {
        display: grid;
        grid-gap: 20px;
        grid-template-columns: repeat(4, 1fr);
        align-items: center; }
      .block .sdgs {
        margin-bottom: 3em;
        display: grid;
        grid-gap: 20px;
        grid-template-columns: repeat(4, 1fr); }
        .block .sdgs:last-of-type {
          margin-bottom: 0; }
        .block .sdgs .sdg {
          margin-bottom: 0;
          display: grid;
          grid-row: span 2;
          grid-template-rows: subgrid; }
          .block .sdgs .sdg:last-of-type {
            margin-bottom: 0; }
          .block .sdgs .sdg .imgtxt {
            margin: 0;
            display: grid;
            grid-row: span 2;
            grid-template-rows: subgrid; }
          .block .sdgs .sdg .img img {
            width: 100%; }
          .block .sdgs .sdg .txt {
            padding: 0.6em;
            display: grid;
            grid-row: span 2;
            grid-template-rows: subgrid;
            align-items: center; }
            .block .sdgs .sdg .txt p {
              font-size: 17px; }
      .block .numbers {
        display: grid;
        grid-gap: 20px;
        grid-template-columns: repeat(4, 1fr); }
        .block .numbers .number {
          margin-bottom: 0px; }
          .block .numbers .number h2 {
            font-size: 17px; }
          .block .numbers .number .img picture {
            margin: 0; }
          .block .numbers .number .img img {
            width: 60%; }
          .block .numbers .number .txt p {
            font-size: 17px; }
          .block .numbers .number:last-of-type {
            grid-column: 1/5; }
            .block .numbers .number:last-of-type .imgtxt {
              display: flex;
              justify-content: center;
              align-items: center;
              padding: 0 25%;
              padding-bottom: 24px; }
            .block .numbers .number:last-of-type .img {
              margin-right: 15px; }
              .block .numbers .number:last-of-type .img picture {
                margin: 0; }
              .block .numbers .number:last-of-type .img img {
                width: 240px; }
            .block .numbers .number:last-of-type .txt {
              text-align: left; }
      .block .applications {
        display: grid;
        grid-gap: 40px;
        grid-template-columns: repeat(3, 1fr); }
        .block .applications .application {
          margin-bottom: 0px; }
          .block .applications .application .more a img {
            height: 50px; }
      .block .scrollimg {
        width: 100%;
        margin-left: 0;
        padding-left: 0px;
        overflow: visible; }
        .block .scrollimg img {
          width: 100%; }
      .block .scrollmap {
        width: 100%;
        margin-left: 0;
        padding-left: 0px;
        overflow: visible; }
        .block .scrollmap img {
          width: 100%; }
      .block.narrow-pc {
        padding: 0 120px; } }

.wysiwyg *:first-child {
  margin-top: 0; }

.wysiwyg h2 {
  font-size: 20px;
  color: #000;
  font-weight: bold;
  margin-bottom: 0.8em; }

.wysiwyg h3 {
  font-size: 18px;
  color: #000;
  font-weight: bold;
  margin-bottom: 0.8em; }

.wysiwyg p {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 1.5em; }

.wysiwyg picture {
  margin: 1.5em 0; }
  .wysiwyg picture img {
    width: 100%;
    height: auto;
    border-radius: 12px; }
  .wysiwyg picture.is-half {
    text-align: center; }
    .wysiwyg picture.is-half img {
      width: 50%;
      margin: 0 auto; }

.wysiwyg .list-dflt li::before {
  top: 1em; }

.wysiwyg a {
  text-decoration: underline; }

.wysiwyg .imgtxt {
  margin-bottom: 2em; }

@media only screen and (min-width: 1025px) {
  .wysiwyg h2 {
    font-size: 24px; }
  .wysiwyg h3 {
    font-size: 22px; }
  .wysiwyg p {
    font-size: 16px; }
  .wysiwyg .imgtxt.img-r {
    display: flex;
    justify-content: space-between; }
    .wysiwyg .imgtxt.img-r .img {
      order: 2;
      width: 48%; }
    .wysiwyg .imgtxt.img-r .txt {
      order: 1;
      width: 48%; }
  .wysiwyg .imgtxt.img-l {
    display: flex;
    justify-content: space-between; }
    .wysiwyg .imgtxt.img-l .img {
      order: 1;
      width: 48%; }
    .wysiwyg .imgtxt.img-l .txt {
      order: 2;
      width: 48%; } }

.modal {
  width: 100%;
  height: 100dvh;
  background: rgba(0, 0, 0, 0.5);
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  display: none; }
  .modal .modal-body {
    background: #fff;
    border-radius: 20px;
    padding: 20px;
    width: calc(100% - 24px);
    max-width: 862px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    .modal .modal-body > .close {
      width: 32px;
      margin-bottom: 12px;
      margin-left: auto;
      cursor: pointer; }
    .modal .modal-body .inner {
      max-height: 80dvh;
      overflow-y: scroll;
      padding: 0; }
      .modal .modal-body .inner .close {
        text-align: center;
        margin-top: 30px; }
      .modal .modal-body .inner .block {
        margin: 0; }
      .modal .modal-body .inner .more_map {
        display: none; }
  @media only screen and (min-width: 1025px) {
    .modal .modal-body .inner {
      padding: 20px; }
      .modal .modal-body .inner .imgtxt {
        margin-bottom: 0; }
      .modal .modal-body .inner .img p {
        margin-bottom: 0; }
      .modal .modal-body .inner .more_map {
        display: block; } }

.boxes .box {
  margin-bottom: 1.5em; }
  .boxes .box p {
    font-size: 10px;
    line-height: 1.8; }

@media only screen and (min-width: 1025px) {
  .boxes.is-2 {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: repeat(2, 1fr); }
  .boxes .box {
    margin-bottom: 0; }
    .boxes .box p {
      font-size: 13px;
      line-height: 1.8; } }

.box-scroll {
  height: 300px;
  overflow: scroll;
  border: 2px solid #F0ECE9;
  padding: 1em;
  margin-bottom: 2em; }
  @media only screen and (min-width: 1025px) {
    .box-scroll {
      padding: 3em; } }

/* modal
**************************************************************************************************************************/
@media screen and (min-width: 769px) {
  .is_sp {
    display: none !important; }
  .is_tb {
    display: block !important; }
  .is_tb_inline {
    display: inline-block !important; } }

@media screen and (min-width: 1024px) {
  .is_pc {
    display: block !important; }
  .is_pc_inline {
    display: inline-block !important; } }

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