@charset "UTF-8";
/* ================================================================
   p-service : SERVICEページ専用スタイル
================================================================ */

/* このページに限りページヘッダーのタイトル部分も最大幅1440pxに */
.c-page-header .l-page-inner {
  max-width: 1440px;
}

.p-service-item {
  padding: 0 0 96px;
}

.p-service-item--alt {
  background: var(--color-cream);
}

/* SP */
@media (max-width: 767px) {
  .p-service-item {
    padding: 48px 0 56px;
  }
}

/* 見出し行(番号+タイトル)。グリッドの1マスとして配置される */
.p-service-item__head {
  display: flex;
  align-items: stretch;
}

.p-service-item__num {
  flex-shrink: 0;
  width: 64px;
  background: var(--color-primary);
  color: var(--color-white);
  font-family: "Playfair Display", "Times New Roman", serif;
  font-weight: 500;
  font-size: 36px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-service-item__num span {
  display: inline-block;
  transform: translateY(-11px);
}

@media (max-width: 767px) {
  .p-service-item__num span {
    height: 64px;
    font-size: 48px;
    transform: translateY(0);
  }
}

@media (min-width: 768px) {
  .p-service-item__num {
    width: 90px;
    height: 100px;
    flex: 0 0 auto;
    font-size: 72px;
  }
}

.p-service-item__title {
  display: flex;
  align-items: center;
  padding-left: 20px;
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 600;
  color: var(--color-primary);
}

/* 見出し・テキスト・イメージをグリッドで配置。
   SP: 見出し→テキスト→イメージの縦積み(全項目共通)。
   PC(通常項目): 見出しが全幅、その下でテキスト(左)+イメージ(右、端に隙間なく)。
   PC(--reverseな項目=2): イメージが左側で2行分を占め、
     見出しはテキスト列の中だけで左寄せになる。 */
.p-service-item__inner {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "head"
    "text"
    "media";
  row-gap: 32px;
}

@media (min-width: 768px) {
  .p-service-item__inner {
    grid-template-columns: 1fr 44%;
    grid-template-areas:
      "head  head"
      "text  media";
    column-gap: 60px;
    row-gap: 32px;
    align-items: center;
    padding-left: clamp(24px, 5.7vw, 110px);
    padding-right: 0;
  }

  .p-service-item--reverse .p-service-item__inner {
    grid-template-columns: 44% 1fr;
    grid-template-areas:
      "media head"
      "media text";
    padding-left: 0;
    padding-right: clamp(24px, 5.7vw, 110px);
  }

  /* 「2」の上端をアイテム上端(headの行の上端)に揃える */
  .p-service-item--reverse .p-service-item__head {
    align-self: start;
  }

  /* テキストは画像の高さに合わせて中央寄せにせず、上揃えにする(--reverseのみ) */
  .p-service-item--reverse .p-service-item__text {
    align-self: start;
  }
}

.p-service-item__head {
  grid-area: head;
}

.p-service-item__text {
  grid-area: text;
}

.p-service-item__media {
  grid-area: media;
  width: 100%;
}

.p-service-item--reverse .p-service-item__media {
  margin-top: 0;
}

@media (min-width: 768px) {
  .p-service-item--reverse .p-service-item__media {
    margin-top: 100px;
  }
}

.p-service-item__media img {
  width: 100%;
  display: block;
}

.p-service-item__desc {
  font-size: 18px;
  line-height: 1.5;
  color: var(--color-text);
}
