@charset "UTF-8";
/*!
foundation > breakpoint
------------------------------
*/
/*!
foundation > color
------------------------------
*/
:root {
  --fonts-color-base: #323232;
  --fonts-color-green: #00b7a4;
  --fonts-color-blue: #00a3e5;
  --fonts-color-purple: #6d74d2;
  --background-color-base: #ffffff;
  --background-color-gray: #f8f8f8;
  --background-color-green: #f0fbf8;
  --background-color-blue: #f0faff;
  --background-color-purple: #f0f0fa;
  --background-footer: #686868;
  --background-copy: #515151;
  --button-color-orange: #ff8c00;
  --button-color-gray: #fafafa;
  --button-border-color: #909090;
  --color-icon-background: #FEF08A;
  --color-icon-text: #CA8A04;
  --border-color: #e6e6e6;
  --color-blue01: #2563EB;
  --color-blue02: #1e40af;
  --color-red: #ff5455;
  --color-gray01: #bbbbbb;
}

/*!
foundation > content-width
------------------------------
*/
:root {
  --layout-width-inner: 1295px;
}

/*!
foundation > typography
------------------------------
*/
:root {
  --font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  --font-size-base: 1.8rem;
  --font-weight-base: 600;
}

/*!
foundation > base
------------------------------
*/
html {
  font-size: 62.5%;
  line-height: 1.46;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-base);
  color: var(--fonts-color);
  background-color: var(--background-color-base);
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: var(--fonts-color);
  text-decoration: none;
  cursor: pointer;
}

/* 共通
========================================================== */
.main {
  position: relative;
  background: var(--background-color-base);
  overflow: hidden;
  padding-top: 65px;
}
@media screen and (max-width: 580px) {
  .main {
    padding-top: 0px;
  }
}
/* fade-in-animation
========================================================== */
.animation-up {
  opacity: 0;
  perspective: 1000;
  -webkit-perspective: 1000;
  visibility: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: all 1.2s;
  -webkit-transition: -webkit-transform all 1.2s;
  transform: translateY(70px);
}

.active {
  opacity: 1;
  perspective: 1000;
  -webkit-perspective: 1000;
  visibility: visible;
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  transform: translateY(0);
}

/*!
foundation > reset
------------------------------
*/
html {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
}

*,
::before,
::after {
  box-sizing: inherit;
}

h1, h2, h3, h4, h5, h6, a, p, span, em, small, strong, sub, sup, mark, del, ins, strike, abbr, dfn, blockquote, q, cite, code, pre, ol, ul, li, dl, dt, dd, div, section, article, main, aside, nav, header, hgroup, footer, img, figure, figcaption, address, time, audio, video, canvas, iframe, details, summary, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
  border: 0;
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

article, aside, footer, header, nav, section, main, figure, figcaption {
  display: block;
}

ul, ol {
  list-style: none;
  list-style-type: none;
}

code, kbd, pre, samp {
  font-family: monospace, sans-serif;
  font-size: inherit;
}

blockquote, q {
  quotes: none;
}

blockquote::after, blockquote::before, q::after, q::before {
  content: "";
  content: none;
}

address {
  font-style: normal;
}

/*!
utility > only
------------------------------
*/
/* only
========================================================== */
.pc-up-only {
  display: none;
}
@media screen and (max-width: 1140px) {
  .pc-up-only {
    display: block;
  }
}

.pc-only {
  display: none;
}
@media screen and (max-width: 1025px) {
  .pc-only {
    display: block;
  }
}

.pc-down-only {
  display: none;
}
@media screen and (max-width: 920px) {
  .pc-down-only {
    display: block;
  }
}

.tab-up-only {
  display: none;
}
@media screen and (max-width: 820px) {
  .tab-up-only {
    display: block;
  }
}

.tab-only {
  display: none;
}
@media screen and (max-width: 799px) {
  .tab-only {
    display: block;
  }
}

.tab-down-only {
  display: none;
}
@media screen and (max-width: 720px) {
  .tab-down-only {
    display: block;
  }
}

.sp-up-only {
  display: none;
}
@media screen and (max-width: 580px) {
  .sp-up-only {
    display: block;
  }
}

.sp-only {
  display: none;
}
@media screen and (max-width: 450px) {
  .sp-only {
    display: block;
  }
}

.sp-down-only {
  display: none;
}
@media screen and (max-width: 376px) {
  .sp-down-only {
    display: block;
  }
}

/* none
========================================================== */
@media screen and (max-width: 1140px) {
  .pc-up-none {
    display: none;
  }
}

@media screen and (max-width: 1025px) {
  .pc-none {
    display: none;
  }
}

@media screen and (max-width: 920px) {
  .pc-down-none {
    display: none;
  }
}

@media screen and (max-width: 820px) {
  .tab-up-none {
    display: none;
  }
}

@media screen and (max-width: 799px) {
  .tab-none {
    display: none;
  }
}

@media screen and (max-width: 720px) {
  .tab-down-none {
    display: none;
  }
}

@media screen and (max-width: 580px) {
  .sp-up-none {
    display: none;
  }
}

@media screen and (max-width: 450px) {
  .sp-none {
    display: none;
  }
}

@media screen and (max-width: 376px) {
  .sp-down-none {
    display: none;
  }
}

/*!
foundation > c-button
------------------------------
*/
.util_button {
  position: relative;
  display: inline-block;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  text-decoration: none;
  text-align: center;
  box-shadow: 0px 6px 0px 0 rgb(220, 220, 220);
  padding: 3rem;
  width: 100%;
  max-width: 48rem;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.util_button:focus, .util_button:hover {
  box-shadow: none;
  opacity: 0.8;
}

.button_orange {
  background-color: var(--button-color-orange);
}

.button_gray {
  background-color: var(--button-color-gray);
  border: 1px solid var(--button-border-color);
}

.button__text_top {
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: 2px;
  color: var(--background-color-base);
}
@media screen and (max-width: 580px) {
  .button__text_top {
    font-size: 2rem;
  }
}

.button__text_down {
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: 1.67px;
  color: var(--fonts-color-base);
}
@media screen and (max-width: 580px) {
  .button__text_down {
    font-size: 2rem;
  }
}

.button_more {
  padding: 1rem;
}

.button__text_more {
  font-size: 2.4rem;
  font-weight: 600;
  letter-spacing: 1.67px;
  color: var(--background-color-base);
}
@media screen and (max-width: 450px) {
  .button__text_more {
    font-size: 2.2rem;
  }
}

/*!
foundation > c-title
------------------------------
*/
/* c-section-title
========================================================== */
.c-section-title__unit {
  text-align: center;
}

.c-section-title {
  position: relative;
  font-size: 3.2rem;
  font-weight: 600;
  font-family: var(--font-family);
  color: var(--fonts-color-green);
  letter-spacing: 0.384rem;
}
@media screen and (max-width: 580px) {
  .c-section-title {
    font-size: 2.8rem;
    letter-spacing: 0.3rem;
  }
}
@media screen and (max-width: 450px) {
  .c-section-title {
    font-size: 2.4rem;
    letter-spacing: 0.1rem;
  }
}
.c-section-title::before {
  position: absolute;
  content: "";
  background-color: var(--fonts-color-green);
  width: 4.1rem;
  height: 0.4rem;
  top: 7.5rem;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 580px) {
  .c-section-title::before {
    width: 3.7rem;
    height: 0.2rem;
    top: 5rem;
  }
}
@media screen and (max-width: 450px) {
  .c-section-title::before {
    width: 2.8rem;
  }
}

/* c-subtitle
========================================================== */
.c-sub-title__unit {
  text-align: center;
}

.c-sub-title {
  font-size: 3.2rem;
  font-weight: 600;
}
@media screen and (max-width: 720px) {
  .c-sub-title {
    font-size: 3rem;
  }
}
@media screen and (max-width: 580px) {
  .c-sub-title {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 450px) {
  .c-sub-title {
    font-size: 2rem;
  }
}

/*!
layout > l-copyright
------------------------------
*/
.l-copyright {
  background: var(--background-copy);
}

.l-copyright__container {
  text-align: center;
  padding: 3rem;
}
.l-copyright__container small {
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--background-color-base);
}

.copyright-link__unit {
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--background-color-base);
  margin-top: 0.5rem;
}

.copyright-link {
  position: relative;
}
.copyright-link::after {
  position: absolute;
  content: "";
  display: none;
  bottom: -20%;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background: var(--background-color-base);
}
.copyright-link:focus::after, .copyright-link:hover::after {
  display: block;
  width: 100%;
}

/*!
layout > l-footer
------------------------------
*/
.l-footer {
  background: var(--background-footer);
  padding: 2.8rem 0 0;
}
.l-footer_secondary {
  font-size: 12px;
}
.l-footer-nav__unit {
  padding-top: 2.1rem;
}

.l-footer-nav__list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  color: var(--background-color-base);
}
@media screen and (max-width: 1025px) {
  .l-footer-nav__list {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .l-footer-nav__list::after {
    content: "";
    display: block;
    width: 30%;
  }
}

.l-footer-nav__item {
  display: inline-block;
  width: 18rem;
  text-align: left;
}
.l-footer-nav__item:not(:last-child) {
  margin-right: 1.6rem;
}

.l-footer-nav__item_category {
  font-size: 1.5rem;
  font-weight: 400;
}

.l-footer-menu__list {
  margin-top: 1.8rem;
}

.l-footer-menu__item {
  font-size: 1.2rem;
  font-weight: 400;
}
.l-footer-menu__item:nth-child(n+2) {
  margin-top: 0.8rem;
}
.l-footer-menu__item a {
  position: relative;
}
.l-footer-menu__item a::after {
  position: absolute;
  content: "";
  display: none;
  bottom: -20%;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background: var(--background-color-base);
}
.l-footer-menu__item a:focus::after, .l-footer-menu__item a:hover::after {
  display: block;
  width: 100%;
}

/* sp-footer
========================================================== */
.l-footer-sp-nav__unit {
  text-align: center;
}

.l-footer-sp-nav__list_up {
  display: inline-block;
  color: var(--background-color-base);
}

.l-footer-sp-nav__item {
  width: 25rem;
}
.l-footer-sp-nav__item:nth-child(n+2) {
  margin-top: 1.8rem;
}

.l-footer-sp-nav__item_category {
  font-size: 1.4rem;
  font-weight: 400;
  border-bottom: 1px solid var(--background-color-base);
}

.l-footer-sp-menu__list {
  margin-top: 1.5rem;
}

.l-footer-sp-menu__item {
  font-size: 1.2rem;
  font-weight: 400;
}
.l-footer-sp-menu__item:nth-child(n+2) {
  margin-top: 0.8rem;
}
.l-footer-sp-menu__item a {
  position: relative;
}
.l-footer-sp-menu__item a::after {
  position: absolute;
  content: "";
  display: none;
  bottom: -20%;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background: var(--background-color-base);
}
.l-footer-sp-menu__item a:focus::after, .l-footer-sp-menu__item a:hover::after {
  display: block;
  width: 100%;
}

.l-footer-sp-nav__list_down {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 35rem;
  margin-top: 2rem;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--background-color-base);
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.l-footer-sp-nav__list_down::after {
  content: "";
  display: block;
  width: 30%;
}

.l-footer-sp-nav__item_down:nth-child(n+2):nth-child(-n+3) {
  margin-left: 3.2rem;
}
.l-footer-sp-nav__item_down:nth-child(n+4) {
  margin-top: 1.5rem;
}
.l-footer-sp-nav__item_down:nth-child(n+5):nth-child(-n+6) {
  margin-left: 3.2rem;
}
.l-footer-sp-nav__item_down:nth-child(n+7) {
  margin-left: 3.2rem;
}
.l-footer-sp-nav__item_down:nth-child(9) {
  margin-left: 10.5rem;
}
.l-footer-sp-nav__item_down a {
  position: relative;
}
.l-footer-sp-nav__item_down a::after {
  position: absolute;
  content: "";
  display: none;
  bottom: -20%;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background: var(--background-color-base);
}
.l-footer-sp-nav__item_down a:focus::after, .l-footer-sp-nav__item_down a:hover::after {
  display: block;
  width: 100%;
}

/*!
layout > l-header
------------------------------
*/
.l-header {
  background-color: var(--background-color-base);
  border-bottom: 2px solid var(--color-gray01);
  top: 0;
  z-index: 100;
}

.l-header__inner {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  height: 6rem;
}

.l-header-logo__unit {
  display: flex;
  align-items: center;
}

.l-header__logo_img {
  width: 12.2rem;
  object-fit: cover;
}

.l-header-nav__list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.l-header-nav__item {
  display: flex;
  align-items: center;
}
.l-header-nav__item a {
  display: flex;
  align-items: center;
}
.l-header-nav__item p {
  position: relative;
  margin-left: 0.3rem;
  margin-right: 0.3rem;
}
.l-header-nav__item p::after {
  position: absolute;
  content: "";
  display: none;
  bottom: -1%;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background: var(--fonts-color-base);
}
.l-header-nav__item p:focus::after, .l-header-nav__item p:hover::after {
  display: block;
  width: 100%;
}

.global-header__item {
  font-size: 1.2rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  margin-left: auto;
}

.global-header__item > :not(:last-child) {
  margin-right: 1.2rem;
}

.global-header__utilities {
  position: relative;
}

.global-header__tool-tip {
  -webkit-transition: all 0.125s ease-in-out;
  transition: all 0.125s ease-in-out;
  font-size: 1.8rem;
  cursor: pointer;
}
.global-header__tool-tip:focus, .global-header__tool-tip:hover {
  opacity: 0.8;
}

.global-header__list {
  position: absolute;
  background-color: var(--background-color-base);
  border: 2px solid #ddd;
  border-radius: 0.5rem;
  width: 16rem;
  overflow: hidden;
  top: 3rem;
  left: -14rem;
  display: none;
  text-align: center;
}
.global-header__list li:not(:last-child) {
  border-bottom: 1px solid #eee;
}
.global-header__list a {
  -webkit-transition: all 0.125s ease-in-out;
  transition: all 0.125s ease-in-out;
  display: block;
  color: #444;
  font-weight: 400;
  padding: 0.8rem;
}
.global-header__list a:focus, .global-header__list a:hover {
  background-color: #ddd;
}

.global-header__login_link {
  position: relative;
}
.global-header__login_link::after {
  position: absolute;
  content: "";
  display: none;
  bottom: 0.2rem;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background: var(--fonts-color-base);
}
.global-header__login_link:focus::after, .global-header__login_link:hover::after {
  display: block;
  width: 100%;
}

.global-header__register_link {
  background: var(--color-blue01);
  padding: 0.6rem 1rem 0.5rem 1rem;
  border-radius: 0.3rem;
}
.global-header__register_link p {
  color: var(--background-color-base);
  font-size: 1.1rem;
  font-weight: 600;
  position: relative;
}
.global-header__register_link p::after {
  position: absolute;
  content: "";
  display: none;
  bottom: 0.1rem;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background: var(--background-color-base);
}
.global-header__register_link p:focus::after, .global-header__register_link p:hover::after {
  display: block;
  width: 100%;
}

/*!
layout > l-inner
------------------------------
*/
.l-inner {
  width: 100%;
  max-width: var(--layout-width-inner);
  height: 100%;
  margin: 0 auto;
  padding-left: 4.75rem;
  padding-right: 4.75rem;
}
@media screen and (max-width: 820px) {
  .l-inner {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}
@media screen and (max-width: 450px) {
  .l-inner {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/*!
layout > l-to-top
------------------------------
*/
.to-top__unit {
  background: #5d5d5d;
}

.to-top {
  text-align: center;
}

.to-top_link {
  display: inline-block;
  padding: 1.8rem 8rem;
  transition: all 0.3s ease 0s;
}
.to-top_link:focus, .to-top_link:hover {
  opacity: 0.6;
}

.to-top__text {
  color: var(--background-color-base);
  font-size: 1.2rem;
  font-weight: 400;
}

/*!
project > p-cases
------------------------------
*/
.p-cases {
  padding: 9.6rem 0 12rem;
}
@media screen and (max-width: 580px) {
  .p-cases {
    padding: 7.6rem 0 10rem;
  }
}
@media screen and (max-width: 450px) {
  .p-cases {
    padding: 6.6rem 0 8rem;
  }
}

.p-cases-card__unit {
  margin-top: 10.5rem;
}
@media screen and (max-width: 580px) {
  .p-cases-card__unit {
    margin-top: 6.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-cases-card__unit {
    margin-top: 5.5rem;
  }
}

.p-cases-card__list {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 920px) {
  .p-cases-card__list {
    flex-direction: column;
    align-items: center;
  }
}

.p-cases-card__item {
  width: 30%;
  text-align: center;
}
@media screen and (max-width: 920px) {
  .p-cases-card__item {
    width: 80%;
  }
  .p-cases-card__item:nth-child(n+2) {
    margin-top: 5.8rem;
  }
}

.p-cases-card__image img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}
.p-cases-card__body {
  margin-top: 1.6rem;
}
@media screen and (max-width: 450px) {
  .p-cases-card__body {
    margin-top: 1.4rem;
  }
}

.p-cases-card__body_heading {
  font-size: 1.9rem;
  line-height: 1.54;
}
@media screen and (max-width: 450px) {
  .p-cases-card__body_heading {
    font-size: 1.8rem;
  }
}

.p-cases-card__body_name {
  font-size: 2rem;
  line-height: 1.54;
  color: var(--fonts-color-green);
  margin-top: 2.3rem;
}
@media screen and (max-width: 450px) {
  .p-cases-card__body_name {
    font-size: 1.8rem;
    margin-top: 1rem;
  }
}

.p-cases-card__body_text {
  font-weight: 400;
  text-align: left;
  margin-top: 2.5rem;
}
@media screen and (max-width: 450px) {
  .p-cases-card__body_text {
    font-size: 1.6rem;
    margin-top: 1rem;
  }
}

/*!
project > p-cloud
------------------------------
*/
.p-cloud {
  background: var(--background-color-base);
  padding: 13rem 0 0;
}
@media screen and (max-width: 720px) {
  .p-cloud {
    padding: 9rem 0 0;
  }
}
@media screen and (max-width: 450px) {
  .p-cloud {
    padding: 5rem 0 0;
  }
}

.p-cloud__container {
  background: var(--background-color-blue);
  padding: 9.8rem 0 7rem;
  margin-top: 4rem;
}
@media screen and (max-width: 720px) {
  .p-cloud__container {
    padding: 6.8rem 0 6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-cloud__container {
    padding: 3.8rem 0 6rem;
  }
}

.p-cloud__unit {
  max-width: 120rem;
  width: 100%;
  margin: 0 auto;
}

.p-cloud__list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.p-cloud__item {
  text-align: center;
}
.p-cloud__item:first-child {
  margin-left: 1.5rem;
}
.p-cloud__item:nth-child(3n) {
  margin-left: -3rem;
}

.p-cloud__item_heading {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.8;
  margin-top: 3.6rem;
}

.p-cloud__item_img {
  margin-top: 2.2rem;
}

.p-cloud__item_text {
  line-height: 1.78;
  margin-top: 1.8rem;
}

.p-cloud__item_text_down {
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.67;
  margin-top: 0.6rem;
}

.p-cloud-button__unit {
  text-align: center;
  margin-top: 1.8rem;
}
@media screen and (max-width: 1140px) {
  .p-cloud-button__unit {
    margin-top: 6.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-cloud-button__unit {
    margin-top: 5.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-cloud-button__unit {
    margin-top: 4.5rem;
  }
}

/* pc-up-only
========================================================== */
.p-sp-cloud__item {
  text-align: center;
}
.p-sp-cloud__item:nth-child(n+2) {
  margin-top: 7rem;
}
@media screen and (max-width: 720px) {
  .p-sp-cloud__item:nth-child(n+2) {
    margin-top: 4.5rem;
  }
}

.p-sp-cloud__item__wrap {
  width: 100%;
  background: var(--background-color-base);
  border: 1px solid var(--border-color);
  border-radius: 1rem;
  padding: 0 2rem 2rem;
}

@media screen and (max-width: 920px) {
  .p-sp-cloud__item_step_icon img {
    width: 24.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-cloud__item_step_icon img {
    width: 22.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-cloud__item_step_icon img {
    width: 20.5rem;
  }
}

.p-sp-cloud__item_heading {
  font-size: 3.2rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 2.3px;
  margin-top: 3rem;
}
@media screen and (max-width: 920px) {
  .p-sp-cloud__item_heading {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-cloud__item_heading {
    font-size: 2.2rem;
    margin-top: 2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-cloud__item_heading {
    font-size: 2rem;
  }
}

.p-sp-cloud__item_text__body {
  margin-top: 2rem;
}
@media screen and (max-width: 720px) {
  .p-sp-cloud__item_text__body {
    margin-top: 1rem;
  }
}

.p-sp-cloud__item_text {
  font-size: 2.6rem;
  font-weight: 400;
  line-height: 1.54;
  letter-spacing: 2.2px;
}
@media screen and (max-width: 920px) {
  .p-sp-cloud__item_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-cloud__item_text {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-cloud__item_text {
    font-size: 1.6rem;
  }
}

.p-sp-cloud__item_text_down {
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 1.6px;
  margin-top: 1rem;
}
@media screen and (max-width: 920px) {
  .p-sp-cloud__item_text_down {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-cloud__item_text_down {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-cloud__item_text_down {
    font-size: 1.4rem;
  }
}

/*!
project > p-faq
------------------------------
*/
.p-faq {
  background: var(--background-color-gray);
  padding: 13rem 0 15rem;
}
@media screen and (max-width: 580px) {
  .p-faq {
    padding: 10rem 0 12rem;
  }
}
@media screen and (max-width: 450px) {
  .p-faq {
    padding: 7rem 0 9rem;
  }
}

.p-faq__unit {
  margin-top: 8.2rem;
}
@media screen and (max-width: 450px) {
  .p-faq__unit {
    margin-top: 5.2rem;
  }
}

.p-faq__list {
  width: 100%;
}

.p-faq__item {
  background: var(--background-color-base);
  border-radius: 2rem;
  cursor: pointer;
  font-size: 2.4rem;
  font-weight: 400;
}
.p-faq__item:nth-child(n+2) {
  margin-top: 4.4rem;
}
@media screen and (max-width: 580px) {
  .p-faq__item:nth-child(n+2) {
    margin-top: 3rem;
  }
}
@media screen and (max-width: 820px) {
  .p-faq__item {
    border-radius: 1rem;
  }
}

.p-faq__item_question {
  display: flex;
  align-items: center;
  padding: 2rem 3rem;
}
@media screen and (max-width: 580px) {
  .p-faq__item_question {
    padding: 1.6rem 2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-faq__item_question {
    padding: 1.6rem;
  }
}
.p-faq__item_question::before {
  content: "Q";
  display: inline-block;
  color: var(--fonts-color-green);
  font-size: 4rem;
  font-weight: 600;
}
@media screen and (max-width: 720px) {
  .p-faq__item_question::before {
    font-size: 3rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_question::before {
    font-size: 2.2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-faq__item_question::before {
    font-size: 1.8rem;
  }
}

.p-faq__item_question_text {
  flex: 0 1 100%;
  position: relative;
  margin-left: 6rem;
  font-size: 2.4rem;
  font-weight: 400;
}
@media screen and (max-width: 799px) {
  .p-faq__item_question_text {
    margin-left: 2.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-faq__item_question_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_question_text {
    font-size: 1.6rem;
    margin-left: 1.8rem;
  }
}
@media screen and (max-width: 450px) {
  .p-faq__item_question_text {
    font-size: 1.4rem;
    margin-left: 1rem;
  }
}
.p-faq__item_question_text:before {
  content: "";
  display: block;
  position: absolute;
  width: 2.7rem;
  height: 0.3rem;
  background: var(--fonts-color-base);
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s;
  letter-spacing: normal;
}
@media screen and (max-width: 720px) {
  .p-faq__item_question_text:before {
    width: 2rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_question_text:before {
    width: 1.6rem;
    height: 0.2rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_question_text:before {
    right: -0.5rem;
  }
}
.p-faq__item_question_text:after {
  content: "";
  position: absolute;
  display: block;
  width: 0.3rem;
  height: 2.7rem;
  background: var(--fonts-color-base);
  right: 1.2rem;
  top: 50%;
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform 0.3s;
}
@media screen and (max-width: 720px) {
  .p-faq__item_question_text:after {
    height: 2rem;
    right: 0.9rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_question_text:after {
    width: 0.2rem;
    height: 1.6rem;
    right: 0.2rem;
  }
}

.p-faq__item.add-active .p-faq__item_question_text::after {
  transform: translateY(-50%) rotate(0deg);
}

.p-faq__item_answer {
  display: flex;
  align-items: flex-start;
  background-color: var(--background-color-gray);
  padding: 3rem 6rem 3rem 3rem;
}
@media screen and (max-width: 720px) {
  .p-faq__item_answer {
    padding: 3rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_answer {
    padding: 1.6rem 2rem 0.5rem 2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-faq__item_answer {
    padding: 1.6rem 1.6rem 0.5rem;
  }
}
.p-faq__item_answer::before {
  content: "A";
  display: inline-block;
  color: var(--color-red);
  height: 4.5rem;
  line-height: 4.5rem;
  font-size: 4rem;
  font-weight: 600;
}
@media screen and (max-width: 720px) {
  .p-faq__item_answer::before {
    height: 3.6rem;
    line-height: 3.6rem;
    font-size: 3rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_answer::before {
    height: 3rem;
    line-height: 3rem;
    font-size: 2.2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-faq__item_answer::before {
    height: 2.5rem;
    line-height: 2.5rem;
    font-size: 1.8rem;
  }
}

.p-faq__item_answer_text {
  line-height: 1.75;
  font-size: 2.4rem;
  margin-left: 6rem;
}
@media screen and (max-width: 799px) {
  .p-faq__item_answer_text {
    margin-left: 2.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-faq__item_answer_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 580px) {
  .p-faq__item_answer_text {
    font-size: 1.6rem;
    margin-left: 1.8rem;
  }
}
@media screen and (max-width: 450px) {
  .p-faq__item_answer_text {
    font-size: 1.4rem;
    margin-left: 1rem;
  }
}

/*!
project > p-feature
------------------------------
*/
.p-feature {
  background: var(--background-color-gray);
  padding: 18rem 0 8rem;
}
@media screen and (max-width: 1025px) {
  .p-feature {
    padding: 14rem 0 12rem;
  }
}
@media screen and (max-width: 799px) {
  .p-feature {
    padding: 10rem 0;
  }
}
@media screen and (max-width: 580px) {
  .p-feature {
    padding: 8rem 0;
  }
}
@media screen and (max-width: 450px) {
  .p-feature {
    padding: 5rem 0 8rem;
  }
}

.p-feature-heading {
  text-align: center;
  margin-top: 7.5rem;
}
@media screen and (max-width: 580px) {
  .p-feature-heading {
    margin-top: 6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-feature-heading {
    margin-top: 4.5rem;
  }
}

.p-feature-heading__text {
  line-height: 1.89;
}
@media screen and (max-width: 580px) {
  .p-feature-heading__text {
    font-size: 1.7rem;
  }
}

.p-feature__unit {
  margin-top: 11rem;
}
@media screen and (max-width: 799px) {
  .p-feature__unit {
    margin-top: 6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-feature__unit {
    margin-top: 4rem;
  }
}

.p-feature__list {
  display: flex;
  justify-content: space-between;
  text-align: center;
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
@media screen and (max-width: 1025px) {
  .p-feature__list {
    flex-direction: column;
    align-items: center;
  }
}

.p-feature__item {
  background: var(--background-color-base);
  border-radius: 2rem;
  padding: 3.8rem 3.2rem 6rem;
  width: 30.3%;
}
@media screen and (max-width: 1025px) {
  .p-feature__item {
    width: 100%;
    border-radius: 1rem;
    border: 1px solid var(--border-color);
    padding: 3rem 3.2rem 3rem;
  }
  .p-feature__item:nth-child(n+2) {
    margin-top: 4.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-feature__item {
    padding: 2rem;
  }
  .p-feature__item_icon > img {
    width: 50%;
  }
}

.p-feature-title__unit {
  margin-top: 1.8rem;
}

.p-feature-title {
  position: relative;
  font-size: 2.4rem;
  font-weight: 600;
  font-family: var(--font-family);
  color: var(--fonts-color-green);
  line-height: 1.54;
}
@media screen and (max-width: 450px) {
  .p-feature-title {
    font-size: 2rem;
  }
}
.p-feature-title::before {
  position: absolute;
  content: "";
  background: var(--fonts-color-green);
  width: 4.1rem;
  height: 0.4rem;
  top: 6.5rem;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 799px) {
  .p-feature-title::before {
    top: 4.5rem;
    height: 0.25rem;
  }
}
@media screen and (max-width: 450px) {
  .p-feature-title::before {
    top: 4rem;
    width: 2.8rem;
  }
}

.p-feature__text {
  font-weight: 400;
  line-height: 1.78;
  text-align: left;
  margin-top: 6rem;
}
@media screen and (max-width: 799px) {
  .p-feature__text {
    margin-top: 4rem;
  }
}
@media screen and (max-width: 450px) {
  .p-feature__text {
    font-size: 1.6rem;
    margin-top: 3rem;
  }
}

.p-feature-system__wrap {
  margin-top: 7.6rem;
}

@media screen and (max-width: 720px) {
  .p-feature-system-sp__body {
    margin-top: 5.6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-feature-system-sp__body {
    margin-top: 3.6rem;
  }
}

.p-feature-system__body {
  background: var(--background-color-base);
  border-radius: 2rem;
  padding: 2.5rem 3.7rem;
  margin-top: 4.7rem;
}
@media screen and (max-width: 1140px) {
  .p-feature-system__body {
    padding: 2.5rem 2rem;
  }
}
@media screen and (max-width: 1025px) {
  .p-feature-system__body {
    border: 1px solid var(--border-color);
    border-radius: 1rem;
  }
}
@media screen and (max-width: 450px) {
  .p-feature-system__body {
    margin-top: 2.6rem;
  }
}

.p-feature-system__heading__wrap {
  width: 100%;
  border-bottom: 3px solid var(--fonts-color-green);
  padding: 0 0 1.5rem;
}

.p-feature-system__item__wrap {
  width: 100%;
}
@media screen and (max-width: 920px) {
  .p-feature-system__item__wrap {
    padding: 0 0 0.8rem;
    border-bottom: 1px solid var(--fonts-color-base);
  }
}

.p-feature-system__dlist {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 0;
  margin-right: 2.5rem;
}
.p-feature-system__dlist:last-child {
  padding-bottom: 0;
}
@media screen and (max-width: 920px) {
  .p-feature-system__dlist {
    padding: 0.8rem 0;
  }
}

.heading_dlist {
  padding: 0 0 1.5rem;
  margin-right: 3rem;
}
@media screen and (max-width: 920px) {
  .heading_dlist {
    padding: 0.8rem 0;
    border-bottom: none;
    margin-right: 2.5rem;
  }
}

.p-feature-system__term {
  min-width: 35.1rem;
  text-align: center;
}
@media screen and (max-width: 1140px) {
  .p-feature-system__term {
    min-width: 26rem;
  }
}
@media screen and (max-width: 920px) {
  .p-feature-system__term {
    min-width: 16rem;
  }
}

.p-feature-system__term__text {
  line-height: 1.89;
  letter-spacing: 0.18rem;
  background: var(--background-color-gray);
  padding: 0.5rem 0;
}
@media screen and (max-width: 920px) {
  .p-feature-system__term__text {
    font-size: 1.6rem;
    padding: 2.5rem 0;
  }
}

.p-feature-system__desc {
  min-width: 20rem;
  text-align: center;
}
@media screen and (max-width: 1140px) {
  .p-feature-system__desc {
    min-width: 16.5rem;
  }
}
@media screen and (max-width: 920px) {
  .p-feature-system__desc {
    min-width: 15rem;
  }
}

.p-feature-system__desc_heading_text {
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--fonts-color-green);
}
@media screen and (max-width: 920px) {
  .p-feature-system__desc_heading_text {
    font-size: 2.4rem;
  }
}

.p-feature-system__desc_heading_img {
  margin-left: 2rem;
}

.p-feature-system__desc_text {
  font-weight: 400;
}
@media screen and (max-width: 920px) {
  .p-feature-system__desc_text {
    font-size: 2.4rem;
  }
}

.p-feature-system__accent_text {
  font-size: 4rem;
  font-weight: 700;
  color: var(--fonts-color-green);
  margin-left: 2.3rem;
}
@media screen and (max-width: 920px) {
  .p-feature-system__accent_text {
    font-size: 3.6rem;
  }
}

/*!
project > p-info
------------------------------
*/
.p-info {
  padding: 11rem 0 15rem;
}
@media screen and (max-width: 580px) {
  .p-info {
    padding: 9rem 0 14rem;
  }
}
@media screen and (max-width: 450px) {
  .p-info {
    padding: 5rem 0 12rem;
  }
}

.p-info-card__unit {
  margin-top: 10.5rem;
}
@media screen and (max-width: 580px) {
  .p-info-card__unit {
    margin-top: 6.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-info-card__unit {
    margin-top: 5.5rem;
  }
}

.p-info-card__list {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 920px) {
  .p-info-card__list {
    flex-direction: column;
    align-items: center;
  }
}

.p-info-card__item {
  width: 29.5%;
  text-align: center;
}
@media screen and (max-width: 920px) {
  .p-info-card__item {
    width: 85%;
  }
  .p-info-card__item:nth-child(n+2) {
    margin-top: 6.5rem;
  }
}

.p-info-card__image img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}
.p-info-card__image img:hover {
  opacity: 0.9;
}
.p-info-card__body {
  margin-top: 2.2rem;
}
@media screen and (max-width: 450px) {
  .p-info-card__body {
    margin-top: 1.8rem;
  }
}

.p-info-card__body_heading {
  font-size: 2rem;
  line-height: 1.54;
}
@media screen and (max-width: 450px) {
  .p-info-card__body_heading {
    font-size: 1.8rem;
  }
}

.p-info-card__body_text {
  font-weight: 400;
  line-height: 1.78;
  text-align: left;
  margin-top: 1.1rem;
}
@media screen and (max-width: 450px) {
  .p-info-card__body_text {
    font-size: 1.6rem;
  }
}

/*!
project > p-intro
------------------------------
*/
.p-intro {
  background: var(--background-color-gray);
}

.p-intro__container {
  padding-top: 6rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 799px) {
  .p-intro__container {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-intro__container {
    padding-top: 4rem;
    padding-bottom: 6rem;
  }
}

.p-intro-heading {
  text-align: center;
}

.p-intro-heading__title {
  font-size: 4.6rem;
  font-weight: 800;
  line-height: 1.46;
}
@media screen and (max-width: 799px) {
  .p-intro-heading__title {
    font-size: 4rem;
  }
}
@media screen and (max-width: 720px) {
  .p-intro-heading__title {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 580px) {
  .p-intro-heading__title {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-intro-heading__title {
    font-size: 1.8rem;
  }
}

.p-intro-heading__text {
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1.71;
  margin-top: 7.8rem;
}
@media screen and (max-width: 799px) {
  .p-intro-heading__text {
    font-size: 2.4rem;
    margin-top: 7rem;
  }
}
@media screen and (max-width: 580px) {
  .p-intro-heading__text {
    font-size: 2rem;
    margin-top: 4rem;
  }
}
@media screen and (max-width: 450px) {
  .p-intro-heading__text {
    font-size: 1.8rem;
  }
}

.p-intro-body {
  margin-top: 4.6rem;
}

.p-intro-body__list {
  display: flex;
  justify-content: space-between;
  text-align: center;
}
@media screen and (max-width: 1025px) {
  .p-intro-body__list {
    flex-direction: column;
    align-items: center;
  }
}

.p-intro-body__item {
  background: var(--background-color-base);
  border-radius: 2rem;
  padding: 3rem 1.2rem;
  width: 33%;
}
.p-intro-body__item:nth-child(2) {
  margin-left: 10px;
  margin-right: 10px;
}
@media screen and (max-width: 1025px) {
  .p-intro-body__item {
    width: 100%;
    border: 1px solid var(--border-color);
    border-radius: 1rem;
  }
  .p-intro-body__item:nth-child(n+2) {
    margin-top: 4rem;
  }
}
@media screen and (max-width: 720px) {
  .p-intro-body__item {
    padding: 3rem 1.5rem;
  }
}

.p-intro-body__item_heading {
  white-space: nowrap;
  font-size: 2.8rem;
  font-weight: 600;
  color: var(--fonts-color-blue);
}
@media screen and (max-width: 580px) {
  .p-intro-body__item_heading {
    font-size: 2.2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-intro-body__item_heading {
    font-size: 1.7rem;
  }
}

.font_green {
  color: var(--fonts-color-green);
}
.font_purple {
  color: var(--fonts-color-purple);
}

.p-intro-body__item_text {
  height: 110px;
  line-height: 1.78;
  margin-top: 1.5rem;
  margin-bottom: 2.6rem;
}
@media screen and (max-width: 1150px) {
  .p-intro-body__item_text {
    height: 125px;
  }
}
@media screen and (max-width: 580px) {
  .p-intro-body__item_text {
    height: auto;
    font-size: 1.4rem;
    margin-top: 1.2rem;
    margin-bottom: 1.8rem;
  }
}

/*!
project > p-kv
------------------------------
*/
.p-kv {
  position: relative;
  width: 100%;
}
@media screen and (min-width: 580px) {
  .p-kv {
    height: 45.2rem;
    background: url(/app/assets/images/top/worker/pc-top-img.jpg) no-repeat center center/cover;
  }
}
@media screen and (max-width: 580px) {
  .p-kv {
    height: 65.2rem;
    background: url(/app/assets/images/top/worker/sp-top-img.jpg) no-repeat center center/cover;
  }
}

.p-kv-container {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
@media screen and (max-width: 820px) {
  .p-kv-container {
    justify-content: center;
  }
}

.p-kv-body {
  position: relative;
  display: inline-block;
  margin-top: 1.8rem;
  margin-left: 3.4rem;
  font-family: var(--font-family);
  padding: 2rem 1.5rem 0.8rem 2rem;
}
.p-kv-body::before {
  content: "";
  position: absolute;
  display: block;
  background: rgba(0, 0, 0, 0.2);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 799px) {
  .p-kv-body {
    margin: 1.8rem auto 0;
    width: 100%;
  }
}
@media screen and (max-width: 580px) {
  .p-kv-body {
    margin-top: -16.5rem;
  }
}
@media screen and (max-width: 520px) {
  .p-kv-body {
    margin-top: -19.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-kv-body {
    margin-top: -20.5rem;
  }
}
@media screen and (max-width: 376px) {
  .p-kv-body {
    margin-top: -24.5rem;
  }
}

.p-kv-body__inner {
  position: relative;
}

@media screen and (max-width: 820px) {
  .p-kv-body__titles_image {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}

@media screen and (max-width: 920px) {
  .p-kv-body__image {
    width: 54rem;
  }
}
@media screen and (max-width: 799px) {
  .p-kv-body__image {
    width: 46rem;
  }
}
@media screen and (max-width: 580px) {
  .p-kv-body__image {
    margin: 0 auto;
  }
}
@media screen and (max-width: 520px) {
  .p-kv-body__image {
    width: 40rem;
  }
}
@media screen and (max-width: 450px) {
  .p-kv-body__image {
    width: 36rem;
  }
}

.p-kv-body__title {
  font-size: 4.74rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.3rem;
  text-align: left;
  color: var(--background-color-base);
  filter: drop-shadow(0px 0px 4px #000);
  margin-top: 2.6rem;
}
@media screen and (max-width: 920px) {
  .p-kv-body__title {
    font-size: 4.4rem;
    margin-top: 2.4rem;
  }
}
@media screen and (max-width: 799px) {
  .p-kv-body__title {
    font-size: 3.8rem;
    margin-top: 2.2rem;
    text-align: center;
  }
}
@media screen and (max-width: 580px) {
  .p-kv-body__title {
    font-size: 3.4rem;
  }
}
@media screen and (max-width: 520px) {
  .p-kv-body__title {
    font-size: 2.8rem;
    margin-top: 1rem;
  }
}
@media screen and (max-width: 450px) {
  .p-kv-body__title {
    font-size: 2.4rem;
  }
}

.p-kv-body__text {
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1.63;
  text-align: center;
  color: var(--background-color-base);
  filter: drop-shadow(0px 0px 4px #000);
  margin-top: 2.6rem;
}
@media screen and (max-width: 920px) {
  .p-kv-body__text {
    font-size: 2.6rem;
    margin-top: 2.4rem;
  }
}
@media screen and (max-width: 799px) {
  .p-kv-body__text {
    font-size: 2rem;
    margin-top: 2rem;
  }
}
@media screen and (max-width: 580px) {
  .p-kv-body__text {
    font-size: 1.9rem;
  }
}
@media screen and (max-width: 520px) {
  .p-kv-body__text {
    font-size: 1.6rem;
    margin-top: 1rem;
  }
}
@media screen and (max-width: 450px) {
  .p-kv-body__text {
    font-size: 1.3rem;
  }
}

.p-kv-button__unit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 5.8rem;
  margin-bottom: 10.4rem;
}
@media screen and (max-width: 1140px) {
  .p-kv-button__unit {
    flex-direction: column;
    margin-bottom: 5.8rem;
  }
}
@media screen and (max-width: 580px) {
  .p-kv-button__unit {
    height: 15rem;
    margin-top: 0;
    margin-bottom: 0;
  }
}

.position_left {
  margin-left: 5.3rem;
  margin-right: 2rem;
}
@media screen and (max-width: 1140px) {
  .position_left {
    margin-left: 0;
    margin-right: 0;
  }
}
@media screen and (max-width: 580px) {
  .position_left {
    position: absolute;
    top: 54rem;
    padding: 2rem 3rem;
    width: 100%;
  }
}
@media screen and (max-width: 520px) {
  .position_left {
    width: 95%;
  }
}

.position_right {
  margin-right: 5.3rem;
  margin-left: 2rem;
}
@media screen and (max-width: 1140px) {
  .position_right {
    margin-right: 0;
    margin-left: 0;
    margin-top: 4rem;
  }
}
@media screen and (max-width: 580px) {
  .position_right {
    position: absolute;
    top: 65.5rem;
    padding: 2rem 3rem;
    width: 100%;
  }
}
@media screen and (max-width: 520px) {
  .position_right {
    width: 95%;
  }
}

/*!
project > p-skill
------------------------------
*/
.p-skill {
  background: var(--background-color-base);
  padding: 13rem 0 0;
}
@media screen and (max-width: 720px) {
  .p-skill {
    padding: 9rem 0 0;
  }
}
@media screen and (max-width: 450px) {
  .p-skill {
    padding: 5rem 0 0;
  }
}

.p-skill__container {
  background: var(--background-color-green);
  padding: 9.8rem 0 7rem;
  margin-top: 4rem;
}
@media screen and (max-width: 720px) {
  .p-skill__container {
    padding: 6.8rem 0 6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-skill__container {
    padding: 3.8rem 0 6rem;
  }
}

.p-skill__unit {
  max-width: 120rem;
  width: 100%;
  margin: 0 auto;
}

.p-skill__list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.p-skill__item {
  text-align: center;
}
.p-skill__item:first-child {
  margin-left: 1.5rem;
}
.p-skill__item:nth-child(3n) {
  margin-left: -2.5rem;
}

.p-skill__item_heading {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.8;
  margin-top: 3.6rem;
}

.p-skill__item_img {
  margin-top: 2.2rem;
}

.p-skill__item_text {
  line-height: 1.78;
  margin-top: 1.8rem;
}

.p-skill-button__unit {
  text-align: center;
  margin-top: 3rem;
}
@media screen and (max-width: 1140px) {
  .p-skill-button__unit {
    margin-top: 7.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-skill-button__unit {
    margin-top: 5.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-skill-button__unit {
    margin-top: 4.5rem;
  }
}

/* pc-up-only
========================================================== */
.p-sp-skill__item {
  width: 100%;
  background: var(--background-color-base);
  border: 1px solid var(--border-color);
  border-radius: 1rem;
  text-align: center;
  padding: 0 2rem 2rem;
}
.p-sp-skill__item:nth-child(n+2) {
  margin-top: 7rem;
}
@media screen and (max-width: 720px) {
  .p-sp-skill__item:nth-child(n+2) {
    margin-top: 4.5rem;
  }
}

@media screen and (max-width: 920px) {
  .p-sp-skill__item_step_icon img {
    width: 24.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-skill__item_step_icon img {
    width: 22.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-skill__item_step_icon img {
    width: 20.5rem;
  }
}

.p-sp-skill__item_heading {
  font-size: 3.2rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 2.3px;
  margin-top: 3rem;
}
@media screen and (max-width: 920px) {
  .p-sp-skill__item_heading {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-skill__item_heading {
    font-size: 2.2rem;
    margin-top: 2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-skill__item_heading {
    font-size: 2rem;
  }
}

.p-sp-skill__item_text__body {
  margin-top: 2rem;
}
@media screen and (max-width: 720px) {
  .p-sp-skill__item_text__body {
    margin-top: 1rem;
  }
}

.p-sp-skill__item_text {
  font-size: 2.6rem;
  font-weight: 400;
  line-height: 1.54;
  letter-spacing: 2.2px;
}
@media screen and (max-width: 920px) {
  .p-sp-skill__item_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-skill__item_text {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-skill__item_text {
    font-size: 1.6rem;
  }
}

/*!
project > p-pro
------------------------------
*/
.p-pro {
  background: var(--background-color-base);
  padding: 13rem 0 0;
}
@media screen and (max-width: 720px) {
  .p-pro {
    padding: 9rem 0 0;
  }
}
@media screen and (max-width: 450px) {
  .p-pro {
    padding: 5rem 0 0;
  }
}

.p-pro__container {
  background: var(--background-color-purple);
  padding: 9.8rem 0 7rem;
  margin-top: 4rem;
}
@media screen and (max-width: 720px) {
  .p-pro__container {
    padding: 6.8rem 0 6rem;
  }
}
@media screen and (max-width: 450px) {
  .p-pro__container {
    padding: 3.8rem 0 6rem;
  }
}

.p-pro__unit {
  max-width: 120rem;
  width: 100%;
  margin: 0 auto;
}

.p-pro__list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.p-pro__item {
  text-align: center;
}
.p-pro__item:first-child {
  margin-left: 1.5rem;
}
.p-pro__item:nth-child(3n) {
  margin-left: -2.5rem;
}

.p-pro__item_heading {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.8;
  margin-top: 3.6rem;
}

.p-pro__item_img {
  margin-top: 2.2rem;
}

.p-pro__item_text {
  line-height: 1.78;
  margin-top: 1.8rem;
}

.p-pro-button__unit {
  text-align: center;
  margin-top: 3rem;
}
@media screen and (max-width: 1140px) {
  .p-pro-button__unit {
    margin-top: 7.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-pro-button__unit {
    margin-top: 5.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-pro-button__unit {
    margin-top: 4.5rem;
  }
}

/* pc-up-only
========================================================== */
.p-sp-pro__item {
  width: 100%;
  background: var(--background-color-base);
  border: 1px solid var(--border-color);
  border-radius: 1rem;
  text-align: center;
  padding: 0 2rem 2rem;
}
.p-sp-pro__item:nth-child(n+2) {
  margin-top: 7rem;
}
@media screen and (max-width: 720px) {
  .p-sp-pro__item:nth-child(n+2) {
    margin-top: 4.5rem;
  }
}

@media screen and (max-width: 920px) {
  .p-sp-pro__item_step_icon img {
    width: 24.5rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-pro__item_step_icon img {
    width: 22.5rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-pro__item_step_icon img {
    width: 20.5rem;
  }
}

.p-sp-pro__item_heading {
  font-size: 3.2rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 2.3px;
  margin-top: 3rem;
}
@media screen and (max-width: 920px) {
  .p-sp-pro__item_heading {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-pro__item_heading {
    font-size: 2.2rem;
    margin-top: 2rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-pro__item_heading {
    font-size: 2rem;
  }
}

.p-sp-pro__item_text__body {
  margin-top: 2rem;
}
@media screen and (max-width: 720px) {
  .p-sp-pro__item_text__body {
    margin-top: 1rem;
  }
}

.p-sp-pro__item_text {
  font-size: 2.6rem;
  font-weight: 400;
  line-height: 1.54;
  letter-spacing: 2.2px;
}
@media screen and (max-width: 920px) {
  .p-sp-pro__item_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 720px) {
  .p-sp-pro__item_text {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 450px) {
  .p-sp-pro__item_text {
    font-size: 1.6rem;
  }
}

.util_link:hover {
  text-decoration: none; !important;
}

@media screen and (max-width: 450px) {
  .header_logo {
    margin: 0 0 9px 6px;
  }
  .header_nav {
    height: 40px;
  }
  .header_nav ul li a {
    margin: 0;
  }
  .header_nav ul .nav-menu a::before {
    margin-top: -3px;
  }
  .home {
    overflow: initial;
  }
  footer {
    font-size: 1.2rem;
  }
}

.right-banner {
  box-shadow: 0 0 1.25rem 0 rgb(0 104 181 / 20%);
  padding: 10px 12px;
  border-radius: 5px 0px 0px 5px;
  letter-spacing: 4px;
  display: inline-block;
  line-height: 23px;
  position: fixed;
  top: 30%;
  right: 0;
  font-size: 15px;
  background-color: white;
  writing-mode: vertical-rl;
}

.right-banner:hover {
  text-decoration: none;
  background-color: #fafafa;
}

@media screen and (max-width: 450px) {
  .right-banner {
    display: none;
  }
}

.sp-show {
  display: none;
}
@media screen and (max-width: 450px) {
  .sp-show {
    display: block;
  }
}

.information-box {
  width: 1200px;
  border: solid 1px #adacac;
  padding: 20px 40px;
  border-radius: 5px;
  background-color: white;
}
.information-row {
  display: flex;
  padding: 5px 0;
}
.information-date {
  width: 150px;
  color: #4d4d4d;
}
@media screen and (max-width: 580px) {
  .information-box {
    border: solid 1px #adacac;
    border-radius: 5px;
    margin: 10px;
    padding: 15px;
  }
  .information-row {
    display: block;
    padding: 5px 0;
  }
}
.footer-black {
  background: #515151;
}
.mfro-services {
  width: 865px;
  margin: 0 auto;
  padding-top: 2rem;
  font-size: 12px;
}
.mfro-services .title {
  padding-bottom: 0.5rem;
}
.mfro-services .menuList li {
  display: inline-block;
  padding-right: 2rem;
}
@media screen and (max-width: 865px) {
  .mfro-services {
    width: 100%;
    padding: 1rem;
    text-align: center;
  }
}

/* ============================================================
   Laravel版追加: 最上部の帯（左: SEO用h1 / 右: サイトマップ(PCのみ)）
   帯の高さ = 12px(文字) + 上下余白5pxずつ = 22px
   PCでは帯とヘッダーを固定表示し、その分 .main の上余白を増やす
   ============================================================ */
.top-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 6px; /* SPヘッダーのロゴ(margin-left: 6px)と左端を揃える */
  background: var(--background-color-base);
}

.top-strip__tagline {
  min-width: 0;
  margin: 0;
  padding: 5px 0;
  overflow: hidden;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0;
  color: #6b7280;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.top-strip__sitemap {
  display: none;
  flex: none;
  padding: 5px 0;
  font-size: 10px;
  line-height: 1.2;
  color: #6b7280;
  text-decoration: none;
}

.top-strip__sitemap:hover {
  color: #2563eb;
  text-decoration: underline;
}

/* PC用ヘッダー(固定)が出ない幅では上余白は不要 */
@media screen and (max-width: 639px) {
  .main {
    padding-top: 0;
  }
}

@media screen and (min-width: 640px) {
  .top-strip {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 101;
    padding: 0 1.25rem; /* ヘッダーの px-5 と同じ単位(rem)で揃える */
  }

  .top-strip__sitemap {
    display: block;
  }

  .l-header {
    top: 22px;
  }

  .main {
    padding-top: 87px;
  }
}

/* ============================================================
   Laravel版追加: 右端の「仕事を依頼したい方はこちら」を元デザインの青文字に
   （Laravel側はtailwindのリセットでaの文字色が継承色(黒)になるため明示する）
   ============================================================ */
.right-banner {
  color: #0068b5;
  font-weight: 700;
}
