@charset "UTF-8";

@media (max-width: 1140px) {
  /* 1140px
------------------------------------------------------ */

  /* ----------------------- */
  /* base (1140px)
  /* ----------------------- */
  .inner {
    padding: 0 20px;
  }

}


@media (max-width: 1024px) {
  /* 1024px
------------------------------------------------------ */

  .pageHeading__ttl {
    top: 35%;
  }

  .pageHeading__ttl-en {
    font-size: 32px;
  }


}

@media (max-width: 786px) {

  /* 共通 sp
------------------------------------------------------ */
  /* ----------------------- */
  /* base_sp
  /* ----------------------- */

  body {
    font-size: 14px;
    letter-spacing: 0.13em;
  }

  .spBlock {
    display: block;
  }

  .pcBlock {
    display: none !important;
  }

  .btn {
    font-size: 14px;
    line-height: 55px;
    width: 225px;
    height: 55px;
    border-radius: 27px;
  }


  .btn--lg {
    width: 308px;
  }

  .btn--sm {
    width: 214.5px;
  }

  .pageTtl {
    font-size: 24px;
  }

  /* ----------------------- */
  /* header_sp
  /* ----------------------- */

  .header {
    height: 65px;
    transition: 0.3s ease;
  }

  .header-inner {
    align-items: center;
    display: flex;
    padding: 15px 0 0 15px;
  }

  .logo {
    width: 40%;
    height: 100%;
    margin-right: auto;
    position: relative;
    z-index: 3;
  }

  .nav-list {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #fff;

  }

  .nav-item {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 30%;

  }

  .nav-item li:not(:last-child) {
    margin-right: 0px;
    border-bottom: 1px solid #adadad;
    padding: 15px 0;
    width: 90%;
    margin-left: 20px;
  }

  .nav-item li:last-child {
    width: 100%;
    margin-top: 40px;
    text-align: center;
  }


  .nav-item .contact-btn {
    width: 59%;
    position: relative;
  }

  .nav-item .contact-btn:after {
    content: "→";
    position: absolute;
    top: 0;
    right: 20px;
    font-weight: normal;
    font-size: 14px;
  }

  .burger-btn {
    display: block;
    position: absolute;
    top: 19px;
    right: 20px;
    border: none;
    cursor: pointer;
    z-index: 10;
  }

  .bar {
    margin: 0 auto;
    display: block;
    height: 3px;
    width: 37px;
    border-radius: 5px;
    background-color: #000;
    transition: transform 0.5s ease;
  }

  .bar_top,
  .bar_mid {
    margin-bottom: 6px;
  }


  /* ハンバーガーメニューが開いたとき */
  body.noscroll {
    overflow: hidden;
  }

  .burger-btn.cross .bar_top {
    transition-delay: 100ms;
    transform: translateY(10px) rotate(135deg);
  }

  .burger-btn.cross .bar_mid {
    transition-delay: 0s;
    transform: translateX(-18px) scaleX(0);
  }

  .burger-btn.cross .bar_bottom {
    transition-delay: 10ms;
    transform: translateY(-8px) rotate(-135deg);
  }


  /* ----------------------- */
  /* footer_sp
  /* ----------------------- */

  .footer {
    padding: 43px 0 60px;
  }

  /* ----------------------- */
  /* pageHeading_sp
  /* ----------------------- */

  .pageHeading {
    margin: 85px 0 31px;
    height: 200px;
  }

  .servicePage .pageHeading {
    margin: 85px 0 0;
  }

  /* ----------------------- */
  /* message_sp
  /* ----------------------- */

  .message {
    margin-bottom: 60px;
  }

  .recruitPage .message {
    margin-bottom: 70px;
  }

  .message__ttl {
    font-size: 24px;
    line-height: 1.7;
  }

  .message__txt {
    font-size: 16px;
    line-height: 1.84;
    text-align: left;
    letter-spacing: 0.1em;
    margin-top: 35px;
  }

  .message .btn {
    margin: 30px auto 0;
  }

  /* ----------------------- */
  /* state_sp
  /* ----------------------- */

  .state1 {
    padding: 40px 0 60px;
    background-color: #f5fafa;
  }

  .state2 {
    background-image: url(../img/state-bg_sp.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    padding: 40px 0 85px;
    margin-bottom: 47px;
  }

  .state__ttl {
    font-size: 28px;
    max-width: 342px;
    margin: 0 auto 25px;
  }

  .state__ttl--sm {
    font-size: 15px;
  }

  .state__list {
    display: block;
    margin-bottom: 40px;
  }

  .state__item {
    flex: 0 1 auto;
    max-width: 342px;
    margin: 0 auto 25px;
  }

  .state__item:last-child {
    margin-bottom: 0;
  }

  .state__itemImg {
    height: 218px;
    margin-bottom: 19px;
  }

  .state__date {
    font-size: 10px;
    margin-bottom: 9px;
  }





  /* トップページ sp
------------------------------------------------------ */

  /* ----------------------- */
  /* mv_sp
  /* ----------------------- */

  .mv {
    height: 70vh;
  }

  .mv-slider li {
    height: 70vh;
  }

  .mv-slider li img {
    object-position: 90% 0;
  }

  .main-ttl {
    bottom: 1%;
    transform: translateX(-50%);
    left: 50%;
    width: 85%;
  }

  .mv-bg {
    position: absolute;
    bottom: -2px;
    right: 0;
    width: 100%;
    height: 230px;
  }

  .mv-bg img {
    position: absolute;
    bottom: 0;
    height: 100%;
  }

  /* ----------------------- */
  /* concept_sp
  /* ----------------------- */

  .concept-wrapper {
    margin: 40px 0 80px;
  }

  .concept-bg {
    top: 18px;
  }

  .concept-content {
    flex-direction: column;
    padding: 0 4vw;
  }

  .concept-txt {
    margin-top: 10px;
    margin-right: 0;
  }

  .concept-txt .sec-ttl-en {
    margin-left: 20px;
  }

  .concept-txt p {
    font-size: 14px;
    line-height: 1.9;
  }

  .concept-txt p:first-of-type {
    margin: 20px 0 25px;
  }

  .concept-img {
    margin: 35px auto 0;
    width: 68%;
    height: 100%;
  }

  .concept-img-wrapper .team {
    top: 182px;
    right: 160px;
  }

  .concept-img-wrapper .name {
    top: 207px;
    right: 263px;
    font-size: 18px;
  }


  /* ----------------------- */
  /* research_sp
  /* ----------------------- */

  .research-wrapper {
    margin-bottom: 83px;
  }

  .research-bg {
    width: 60%;
  }

  .research-ttl-wrapper {
    flex-direction: column;
    align-items: flex-start;
    margin-left: 4vw;
    margin-bottom: 20px;
  }

  .research-ttl-ja {
    font-size: 16px;
    margin-right: 0;
    margin-bottom: 10px;
  }

  .research-ttl-ja span {
    font-size: 32px;
    font-weight: 600;
  }

  .research-ttl-wrapper .sec-ttl-en {
    margin-left: 4vw;
  }

  .research-slider {
    width: 100%;
    position: relative;
    background-color: transparent;
  }

  .slide-area {
    margin-left: 0px;
    overflow: hidden;
    height: 550px;
    padding: 10px 4vw 10px 1vw;
  }

  .prev-arrow,
  .next-arrow {
    width: 42px;
    height: 42px;
    top: 500px;
    transform: translateX(-50%);
  }

  .prev-arrow {
    left: 34%;
    transform: rotate(180deg);
  }


  .next-arrow {
    left: 66%;
  }

  .research-card {
    width: 6.45% !important;
    height: 470px;
    margin: 5px 15px 5px 5px;
  }

  .card-thumb {
    width: 100%;
    height: 161px;
  }

  .card-detail {
    padding: 10px 9px 7px;
  }

  .card-date {
    font-size: 12px;
  }

  .card-ttl {
    line-height: 1.3;
    margin: 15px 0;
  }

  .card-description {
    font-size: 12px;
    line-height: 1.3;
  }

  .readmore {
    margin-top: 70px;
  }

  .research-btn {
    width: 60%;
    max-width: 250px;
    height: 58px;
    line-height: 58px;
    margin: 43px auto 0;
    ;
  }

  .research-btn:after {
    content: "→";
    position: absolute;
    top: 0;
    right: 22px;
    font-size: 14px;
  }

  .research-btn:hover {
    background-color: #429c9d;
    transition: 0.4s;
  }

  /* ----------------------- */
  /* service_sp
  /* ----------------------- */

  .service-wrapper {
    margin-bottom: 160px;
    height: 810px;
  }

  .service-bg {
    height: 170px;
  }

  .service-bg img {
    height: 100%;
    object-fit: cover;
    object-position: 0 0;
  }

  .service-img1 {
    top: 105px;
    right: 0;
    width: 75%;
  }

  .service-img2 {
    top: 35px;
    right: 0px;
    left: 0%;
    height: 140px;
  }

  .service-img2 img {
    height: 100%;
    object-fit: contain;
    object-position: 83% 0;
  }

  .service-img3 {
    width: 90%;
    margin-top: 30px;
    margin-left: 0;
  }

  .service-content {
    margin-left: 0px;
    padding: 66px 4vw 0;
    overflow: hidden;
  }

  .service-content .sec-ttl-en {
    margin-left: 5vw;
    margin-top: 36px;
  }

  .service-ttl {
    font-size: 22px;
    margin: 18px 0 32px;
  }

  .service-txt {
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 25px;
  }

  .service-list {
    width: 100%;
    height: 100%;
    padding: 20px 0px 20px 10px;
    line-height: 1.7;
  }

  .service-list li {
    margin-right: auto;
    width: 100%;
  }


  /* ----------------------- */
  /* company_sp
  /* ----------------------- */

  .company-wrapper {
    margin-bottom: 60px;
    position: relative;
    overflow: hidden;
  }

  .company-inner {
    padding: 0 4vw;
    flex-direction: column;
  }

  .company-logo {
    width: 51%;
    height: 100%;
    margin: 0 auto;
  }

  .company-content:after {
    top: 143px;
    right: -50px;
    background-image: none;
    background-color: #fcf6df;
    border-radius: 50%;
    width: 55%;
    height: 68%;
  }

  .company-content .sec-ttl-en {
    margin-top: 40px;
  }

  .company-detail {
    margin-top: 45px;
  }

  .company-detail dt {
    float: none;
    color: #75c0c1;
    margin-bottom: 5px;
  }

  .company-detail dd {
    margin-left: 0;
  }

  /* ----------------------- */
  /* contact us_sp
  /* ----------------------- */

  .contact-wrapper {
    width: 100%;
    height: 335px;
    background-image: url(../img/contact_sp.png);
    background-size: cover;
    background-position: center;
  }

  .contact-inner {
    padding: 56px 4vw 54px;
  }

  .contact-inner p {
    margin: 30px 0 40px;
    line-height: 1.72;
  }

  .contact-btn-lg {
    width: 100%;
    max-width: 329px;
  }

  /* ----------------------- */
  /* floating_sp
  /* ----------------------- */

  .floating {
    display: none !important;
  }

  /* --------------------------------------------------- */



  /* コンタクトページ sp
------------------------------------------------------ */

  /* ----------------------- */
  /* contactForm_sp
  /* ----------------------- */

  .contactForm-wrapper {
    margin: 100px 0 70px;
  }

  .contactForm-ttl-en {
    font-size: 28px;
    padding: 20px 0 10px;
  }

  .contactForm-ttl-ja {
    font-size: 13px;
    margin-bottom: 31px;
  }

  .contactForm-ttl-ja+P {
    padding: 0 4vw;
    line-height: 2;
    text-align: left;
  }

  .form-inner {
    margin: 50px auto 0;
    padding: 0 4vw;
  }

  .form-item {
    flex-direction: column;
    border-bottom: none;
  }

  .form-item:last-child {
    margin-bottom: 50px;
  }

  .form-ttl {
    width: 100%;
    padding-top: 0px;
  }

  .form-ttl.required:after {
    content: "※";
    margin-left: 4px;
    font-size: 14px;
    color: #f64e99;
    font-weight: bold;
    letter-spacing: 0.13em;
  }

  .form-box {
    width: 100%;
    margin: 7px 0 20px;
  }

  .form-box input {
    height: 50px;
    padding: 19px 17px 14px;
    box-sizing: border-box;
  }

  .form-box select {
    height: 50px;
    padding-left: 17px;
  }

  .select-box::after {
    top: 19px;
    width: 10px;
    height: 17px;
  }

  .form-box textarea {
    width: 100%;
    height: 200px;
    padding: 19px 16px;
  }

  .form-btn-wrapper:after {
    right: 30%;
  }


  /* ----------------------- */
  /* company-link_sp
  /* ----------------------- */
  .company-link {
    height: 300px;
    padding: 55px 0 30px;
    box-sizing: border-box;

  }

  .company-link-logo {
    width: 144px;
    height: 102px;
    margin: 0 auto 30px;
  }

  .company-btn {
    width: 220px;
    height: 50px;
    line-height: 50px;
    border-radius: 55px;
  }

  .company-btn:after {
    right: 15px;
  }





  /* 採用ページ
------------------------------------------------------ */

  /* ----------------------- */
  /* features_sp
  /* ----------------------- */

  .features {
    margin-bottom: 66px;
  }

  .features__ttl-en {
    max-width: 174px;
    margin: 0 auto 20px;
  }

  .features__list {
    margin-top: 39px;
  }

  .features__item {
    flex-direction: column;
  }

  .features__item:not(:last-child) {
    margin-bottom: 30px;
  }

  .features__img {
    flex: 0 1 100%;
    height: 227px;
    order: -1;
    padding: 0 20px;
  }

  .features__txtArea {
    flex: 0 1 100%;
    padding: 0 20px;
    padding-top: 50px;
  }

  .features__txtArea--odd {
    padding-left: 20px;
  }

  .features__txtArea--even {
    padding-left: 20px;
  }

  .features__decoration1 {
    top: -45px;
    left: 20px;
    max-width: 187px;
  }

  .features__decoration2 {
    top: -40px;
    left: 25px;
    right: auto;
    max-width: 172px;
  }

  .features__decoration3 {
    top: -50px;
    left: 25px;
    max-width: 242px;
  }

  .features__itemTtl {
    font-size: 24px;
    line-height: 1.39;
    margin-bottom: 14px;
  }

  .features__itemTtl3 {
    padding-top: 15px;
  }

  .features__txt {
    line-height: 1.62;
    letter-spacing: 0.13em;
  }

  /* ----------------------- */
  /* cherish_sp 
  /* ----------------------- */

  .cherish {
    margin-bottom: 48px;
  }

  .cherish__list {
    display: block;
    margin: 55px auto 0;
    max-width: 256px;
  }

  .cherish__item:not(:last-child) {
    margin-bottom: 43px;
  }

  .cherish__img {
    height: auto;
    margin: 0 auto 25px;
  }

  .cherish__img1 {
    max-width: 125px;
  }

  .cherish__itemTtl {
    font-size: 21px;
    margin-bottom: 10px;
  }

  .cherish__txt {
    line-height: 1.62;
  }

  /* ----------------------- */
  /* recruitmentType_sp
  /* ----------------------- */

  .recruitmentType {
    padding: 67px 0 62px;
  }

  .tableWrapper {
    margin-top: 32px;
  }

  .tableBox:not(:last-child) {
    margin-bottom: 40px;
  }

  .tableHeading {
    margin-bottom: 7px;
  }

  .tableBullet {
    flex: 0 0 11px;
    height: 11px;
    margin-right: 7px;
    margin-top: 8px;
  }

  .tableTtl {
    font-size: 16px;
    line-height: 1.65;
  }

  .table__item {
    display: block;
  }

  .table__itemTtl {
    display: block;
    padding: 12px 15px;
    border-bottom: 1px solid #ccc;
    border-right: none;
  }

  .table__txtArea {
    padding: 12px 15px;
  }


  /* ----------------------- */
  /* essentials_sp
  /* ----------------------- */
  .essentials {
    padding: 50px 0 55px;
  }

  .essentials__btn {
    font-size: 14px;
    line-height: 55px;
    max-width: 275px;
    height: 55px;
    border-radius: 27px;
    margin: 38px auto 0;
  }

  


  /* サービス・プロダクトページ
------------------------------------------------------ */
  /* ----------------------- */
  /* common_sp
  /* ----------------------- */

  .secHeading {
    height: 210px;
  }

  .secHeading__ttl-en {
    padding-top: 98px;
    font-size: 26px;
    margin-bottom: 12px;
  }

  .secHeading__ttl-ja {
    font-size: 12px;
  }

  /* ----------------------- */
  /* serviceContents_sp
  /* ----------------------- */

  .serviceContents {
    margin-bottom: 67px;
  }


  .mediaWrapper {
    margin-top: 43px;
  }

  .media {
    flex-direction: column;
    margin: 0 auto;
    max-width: 340px;
  }

  .media:not(:last-of-type) {
    margin-bottom: 67px;
  }

  .media__img {
    max-width: 340px;
    height: 225px;
    order: -1;
  }

  .media:nth-child(even) .media__img {
    order: -1;
  }

  .media__body {
    max-width: 340px;
    padding-top: 21px;
    box-sizing: border-box;
  }

  .media:nth-child(odd) .media__body {
    padding-left: 0;
  }

  .media:nth-child(even) .media__body {
    padding-right: 0;
  }

  .media__ttl {
    font-size: 20px;
    margin-bottom: 32px;
  }

  .media__ttl:after {
    bottom: -12px;
    width: 100%;
    height: 2px;
  }

  .media:nth-child(odd) .media__ttl:after {
    left: 0%;
  }

  .media:nth-child(even) .media__ttl:after {
    right: 0%;
  }

  .media__txt {
    line-height: 1.84;
  }

  .media__btn {
    margin: 20px auto 0;
  }

  /* ----------------------- */
  /* products_sp
  /* ----------------------- */

  .products {
    margin-bottom: 83px;
  }

  .cardWrapper {
    display: block;
    margin-top: 42px;
  }

  .card {
    display: block;
    max-width: 340px;
    margin: 0 auto;
  }

  .card:first-child,
  .card:nth-child(2),
  .card:nth-child(3) {
    margin-bottom: 70px;
  }

  .card__img {
    max-width: 340px;
    height: 210px;
  }

  .card__headding {
    padding: 15px 0 5px;
    border-bottom: 2px solid #f5c92c;
    margin-bottom: 20px;
    flex-wrap: wrap;
    width: 100%;
  }

  .card__ttl {
    font-size: 20px;
    margin-right: 8px;
    line-height: 1.5;
  }

  .card__category {
    font-size: 10px;
    line-height: 16px;
    height: 17px;
  }

  .card__txt {
    line-height: 1.93;
    letter-spacing: 0.13em;
    margin-bottom: 15px;
  }

  .card__btnWrapper {
    display: block;
  }

  .card__btnWrapper .btn:first-child {
    margin: 0 auto 19px;
  }

  .card__btn {
    max-width: 225px;
    height: 55px;
    line-height: 55px;
    margin: 0 auto;
  }




}














/* 微調整  --------------------------------------- */

/* ----------------------- */
/* sp(max-width:767px)
/* ----------------------- */
@media (max-width:767px) {

  .service-wrapper {
    margin-bottom: 60px;
  }


  .pageHeading {
    height: 78px;
  }

  .servicePage .pageHeading {
    margin: 85px 0 38px;
    height: 180px;
  }

  .pageHeading__bg {
    height: 78px;
  }

  .recruitPage .pageHeading__bg {
    width: 95.33%;
  }

  .pageHeading__ttl {
    top: 50%;
  }

  .pageHeading__ttl-en {
    font-size: 26px;
    margin-bottom: 8px;
    line-height: 1.13;
  }

  .pageHeading__ttl-ja {
    font-size: 12px;
  }


  .recruitLink {
    flex-wrap: wrap;
    justify-content: center;
    margin: 33px auto 0;
  }

  .recruitLink__item {
    margin-bottom: 5px;
  }

  .recruitLink__item:first-child {
    flex: 0 1 42%;
    text-align: right;
  }

  .recruitLink__item:nth-child(2) {
    flex: 0 1 50%;
  }

  .recruitLink__item a {
    font-size: 12px;
  }

  .recruitLink__item:not(:last-child) a:after {
    padding: 0 10px;
  }


  .recruitLink__item:nth-child(2) a:after {
    content: "";
  }

}


/* ----------------------- */
/* sp(max-width: 550px)　
/* ----------------------- */
@media (max-width: 550px) {
  .servicePage .pageHeading {
    margin: 85px 0 38px;
    height: 100px;
  }
}

/* ----------------------- */
/* sp(max-width: 414px)　
/* ----------------------- */
@media (max-width: 414px) {

  /* ----------------------- */
  /* concept sp(414px)
  /* ----------------------- */
  .concept-img-wrapper .team {
    top: 102px;
    right: 7px;
    font-size: 13px;
  }

  .concept-img-wrapper .name {
    top: 122px;
    right: 100px;
    font-size: 18px;
  }

  /* ----------------------- */
  /* research sp(414px)
  /* ----------------------- */

  .research-card {
    width: 7.55% !important;
    height: 470px;
    margin: 5px 15px 5px 5px;
  }

  .next-arrow {
    left: 62%;
  }

  /* ----------------------- */
  /* service sp(414px)
  /* ----------------------- */
  .service-wrapper {
    height: 715px;
    margin-bottom: 140px;
  }

  .service-bg {
    height: 80px;
  }


  /* ----------------------- */
  /* company sp(414px)
  /* ----------------------- */

  .company-content:after {
    top: 213px;
    right: -50px;
    width: 71%;
    height: 43%;
  }

  /* ----------------------- */
  /* contact-form sp(414px)
  /* ----------------------- */
  .form-btn-wrapper:after {
    right: 15%;
  }

  /* ----------------------- */
  /* servicePage sp(414px)
  /* ----------------------- */
  .servicePage .pageHeading {
    margin: 85px 0 20px;
    height: 100px;
  }

  .servicePage .pageHeading__ttl {
    top: 40%;
    margin-bottom: 5px;
  } 


}