.l-content {
  max-width: 1330px;
  margin: 0 auto;
  width: 90%; }

.p-business-desc {
  padding: 75px 0 85px;
  font-size: 1.7rem;
  line-height: 2;
  letter-spacing: 0.08em;
  font-weight: 500;
  text-align: center; }

.p-concept-wrap {
  background: #f5f5f5; }

.p-concept-top {
  padding: 50px 55px;
  display: grid;
  grid-template: "subttl ttl" 70px "subttl desc" auto "....   ...." 45px "img    img" auto/240px 980px; }

.p-concept-top {
  padding: min(50px,4%) min(55px,5%);
  display: grid;
  grid-template: "subttl ttl" 70px "subttl desc" auto "....   ...." 45px "img    img" auto/20% 80%; }

.p-concept-top-subttl {
  grid-area: subttl;
  font-size: 2rem;
  line-height: 1;
  letter-spacing: 0.06em;
  font-weight: 500;
  color: #a3a3a3;
  text-align: center;
  border-right: 1px solid #e5e5e5; }

.p-concept-top-ttl {
  grid-area: ttl;
  font-size: 3.8rem;
  line-height: 1;
  letter-spacing: 0.12em;
  font-weight: 700;
  padding-left: min(8%,90px); }

.p-concept-top-box {
  grid-area: desc;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  font-weight: 500;
  padding: 0 100px 0 90px;
  padding: 0 min(6%,100px) 0 min(8%,90px); }
  .p-concept-top-box span {
    position: relative;
    display: inline-block;
    margin-top: 10px; }
    .p-concept-top-box span > a {
      border-bottom: 2px solid #494949;
      position: relative;
      color: #292929;
      padding-right: 20px;
      padding-bottom: 5px; }

.p-concept-top-box span > a::before {
  position: absolute;
  z-index: 10;
  top: 50%;
  right: 3px;
  transform: translateY(-50%);
  content: "";
  display: block;
  width: 7px;
  height: 5px;
  background: #fafafa;
  border: 2px solid #2a2a2a; }

.p-concept-top-box span > a::after {
  position: absolute;
  top: calc(50% + 3px);
  right: 0px;
  transform: translateY(-50%);
  content: "";
  display: block;
  width: 7px;
  height: 5px;
  background: #fafafa;
  border: 2px solid #2a2a2a; }

.p-concept-top-img {
  grid-area: img;
  max-width: 1070px;
  margin: 0 auto;
  width: 100%; }

.p-business-wrap {
  padding: 115px 0 135px;
  text-align: center; }

.p-business-wrap-ttl {
  font-size: 3.8rem;
  line-height: 1;
  letter-spacing: 0.12em;
  font-weight: 700;
  margin-bottom: 50px;
  padding: 0 30px;
  border-right: 4px solid #d82122;
  border-left: 4px solid #d82122;
  display: inline-block; }

.p-business-wrap-desc {
  font-size: 1.6rem;
  line-height: 1.75;
  letter-spacing: 0.08em;
  font-weight: 500; }

.p-business-list {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 85px 2%;
  padding-top: 80px; }

.p-business-item {
  width: 31%; }

.p-business-item .p-viewbtn-border-link {
  text-align: left; }

.p-business-item-img {
  margin-bottom: 30px; }

.p-business-item-ttl {
  margin-bottom: 20px;
  text-align: left;
  font-size: 2.6rem;
  line-height: 1;
  letter-spacing: 0.12em;
  font-weight: 700; }

.p-business-item-desc {
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  font-weight: 500;
  margin-bottom: 25px;
  text-align: left; }

@media screen and (max-width: 1350px) {
  .l-content {
    max-width: 1200px; } }
@media screen and (max-width: 900px) {
  .p-business-item {
    width: 42%; } }
@media screen and (max-width: 767px) {
  .l-content {
    width: 92vw; }

  .p-business-desc {
    line-height: 1.5;
    padding: 8.66667vw 0 10vw;
    text-align: left; }

  .p-concept-top {
    grid-template: "subttl ttl" 12vw ".... ...." 6vw "desc desc" auto ".... ...." 9.33333vw "img img" auto/26vw auto;
    padding: 8vw 4vw 10.66667vw; }

  .p-concept-top-subttl {
    grid-area: subttl;
    font-size: 4.8vw;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    border-width: 0.26667vw; }

  .p-concept-top-ttl {
    grid-area: ttl;
    padding-left: 3.33333vw;
    font-size: 6.4vw;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center; }

  .p-concept-top-box {
    grid-area: desc;
    width: 100%;
    line-height: 1.6;
    padding: 0; }
    .p-concept-top-box span {
      margin-top: 2vw; }

  .p-concept-top-box span > a {
    padding-bottom: 1.06667vw;
    padding-right: 5.33333vw;
    border-bottom-width: 0.4vw;
    font-size: 14px; }

  .p-concept-top-box span > a::before {
    width: 1.93333vw;
    height: 1.46667vw;
    border-width: 0.53333vw;
    right: 0.9vw;
    top: 47%; }

  .p-concept-top-box span > a::after {
    width: 1.73333vw;
    height: 1.46667vw;
    border-width: 0.53333vw;
    right: 0;
    top: calc(48% + 0.8vw); }

  .p-concept-top-img {
    grid-area: img;
    width: 100%; }

  .p-business-wrap {
    padding: 13.33333vw 0 18.66667vw; }

  .p-business-wrap-ttl {
    font-size: 6.4vw;
    margin-bottom: 9.33333vw;
    padding: 0 4vw;
    border-width: 0.93333vw; }

  .p-business-wrap-desc {
    line-height: 1.6;
    text-align: left; }

  .p-business-list {
    padding: 0 4vw 0;
    flex-direction: column;
    gap: 11.33333vw 0; }

  .p-business-item {
    width: 100%; }

  .p-business-item-img {
    width: 100%;
    margin-bottom: 5.33333vw; }

  .p-business-item-ttl {
    font-size: 5.33333vw;
    margin-bottom: 3.33333vw; }

  .p-business-item-desc {
    font-size: 4vw;
    line-height: 1.6;
    text-align: left;
    margin-bottom: 4vw; }

  .p-business-item-desc-box {
    padding: 0 2.66667vw; } }
