@charset "UTF-8";
/* CSS Document */

/*
Theme Name: Heartful Home
Theme URI:
Author:
Author URI:
Description: ハートフルホーム用オリジナルテーマ
Version: 1.0
*/




/* =========================
   SOW page
   ========================= */

.p-sow {
  padding: 60px 0;
}

.l-container {
  width: min(1100px, 92%);
  margin: 0 auto;
}

/* hero */
.p-sow-hero {
  padding: 10px 0 40px;
  text-align: center;
}

.p-sow-hero__title {
  font-size: 28px;
  line-height: 1.5;
  margin: 0 0 16px 0;
  letter-spacing: 0.02em;
}

.p-sow-hero__lead {
  margin: 0 auto;
  font-size: 15px;
  line-height: 1.9;
  color: #444;
  max-width: 720px;
}



/* plans */
.p-sow-plans {
  padding: 30px 0 20px;
}

.p-sow-plan {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: center;
  padding: 26px 0;
  border-top: none;
  margin-bottom: 50px;
}

.p-sow-plan__media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

.p-sow-plan__label {
  font-size: 30px;
  margin: 0 0 10px;
  letter-spacing: 0.04em;
}

.p-sow-plan__subtitle {
  margin: 0 0 12px;
  font-size: 18px;
  color: #222;
}

.p-sow-plan__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
  color: #444;
}

/* examples */
.p-sow-examples {
  padding: 50px 20px;
}

.p-sow-examples__title {
  font-size: 22px;
  margin: 0 0 26px;
  letter-spacing: 0.03em;
  text-align: center;
}

.p-sow-example {
  padding: 60px 0 80px 0;
  border-top: 1px solid #333;
}

.p-sow-example:first-child {
  border-top: 0;
}

.p-sow-example__row {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 35px;
  align-items: start;
}

/* plans images area */
.p-sow-example__plans {
  width: 100%;
}


.p-sow-example__plan--main img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}


/* spec */

/* 右側全体の文字リズム */
.p-sow-example__spec {
  text-align: left;
  font-size: 14px;
  line-height: 1.6;
  margin-top: 8px;
}

/* 3行のブロック間隔を詰める */
.p-sow-example__speclist {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px; /* ここが肝。間延び防止 */
}

/* ラベルと値を横並び、ベースラインを揃える */
.p-sow-example__specitem {
  display: grid;
  grid-template-columns: 150px 1fr; /* 想定家族構成に合わせた固定幅 */
  column-gap: 26px;
  align-items: center; /* baselineはgridだと効きにくいのでcenterで見た目優先 */
  padding: 0;
}

/* 黒ベタラベル：高さを揃えて見た目を締める */
.p-sow-example__label {
  margin: 0;
  background: #000;
  color: #fff;
  text-align: center;

  font-size: 14px;
  font-weight: 400;

  padding: 0 10px;
  height: 40px;              /* 高さ固定で見た目を整える */
  display: flex;
  align-items: center;
  justify-content: center;

  white-space: nowrap;
}

/* 値：少しだけ大きく、行間を詰める */
.p-sow-example__value {
  margin: 0;
  font-size: 20px;
  line-height: 1.2;
  color: #111;
}

/* こだわりポイント：見出しと本文の間を短く */
.p-sow-example__points {
  margin-top: 28px;
}

.p-sow-example__pointsTitle {
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

/* 本文っぽく、行間は1.6で統一 */
.p-sow-example__pointsText {
  line-height: 1.6;
  color: #333;
  font-size: 15px;
}

/* 段落間を詰めて、間延びしないように */
.p-sow-example__pointsText p {
  margin: 0 0 12px;
}

.p-sow-example__pointsText p:last-child {
  margin-bottom: 0;
}

/* スマホ：ラベルと値を縦にしても“ダサくならない”余白に */
@media (max-width: 768px) {
  .p-sow-example__speclist {
    gap: 14px;
  }

  .p-sow-example__specitem {
    grid-template-columns: 1fr;
    row-gap: 10px;
  }

  .p-sow-example__label {
    width: 100%;
    height: 40px;
    font-size: 15px;
  }

  .p-sow-example__value {
    font-size: 18px;
  }

  .p-sow-example__pointsTitle {
    font-size: 18px;
  }

  .p-sow-example__pointsText {
    font-size: 14px;
  }
}

/* スマホ */
@media (max-width: 768px) {
  .p-sow-example__specitem {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
  .p-sow-example__label {
    font-size: 18px;
    padding: 14px 16px;
  }

  .p-sow-example__value {
    font-size: 18px;
  }

  .p-sow-example__pointsTitle {
    font-size: 18px;
  }
}
