/* 髪質改善ページ。文字サイズは共通クラスを使用 */
.improvement-page .page-column {
  background: #f4f1ea url('https://famillehair.com/system_panel/uploads/images/bg1.png') left top/auto repeat
}
.improvement-page .about-hero, .improvement-page .bg1 {
  background: transparent
}
.improve-lead {
  width: 100%;
  margin-bottom: 32px
}
.improve-soft {
  background: #f1eeeb
}
.improve-cards, .process-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px
}
.improve-card {
  background: white;
  border: 1px solid #e7e2dc;
  border-radius: 8px;
  padding: 24px 22px;
  text-align: center
}
.improve-card > img {
  width: 100px;
  height: 110px;
  object-fit: contain;
  margin: 20px auto
}
.improve-card h3 {
  margin-bottom: 20px
}
.improve-card h3:after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: #c0a16a;
  margin: 15px auto
}
.improve-card > p:last-child {
  text-align: left
}
.care-comparison {
  border-radius: 10px;
  overflow: hidden;
  background: white;
  margin-top: 28px
}
.care-comparison h3 {
  background: #aaa;
  color: white;
  padding: 12px 22px
}
.care-comparison.is-gold h3 {
  background: #cbb58c
}
.care-comparison > p {
  padding: 16px 22px;
  border-bottom: 1px solid #eee;
  display: flex;
  gap: 18px
}
.hair-explain {
  margin: 45px 20px
}
.hair-explain-row {
  display: grid;
  grid-template-columns: 42% 1fr;
  gap: 20px;
  align-items: center;
  margin: 24px 0
}
.hair-explain-row > img {
  height: 290px;
  width: 100%;
  object-fit: contain
}
.hair-explain-row p {
  margin: 28px 0
}
.emf-box {
  border: double 5px #e6dacb;
  border-radius: 14px;
  padding: 28px;
  margin: 30px 15px;
  background: #faf7f2
}
.emf-box h3 {
  border-bottom: 1px solid #ddd;
  padding-bottom: 15px;
  margin-bottom: 20px
}
.emf-box img {
  width: 100%;
  margin-top: 20px
}
.process-grid > div {
  position: relative
}
.process-grid img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 15px
}
.process-grid h3 {
  text-align: center;
  margin: 18px 0
}
.process-grid > div > p:first-child {
  margin-bottom: -12px;
  position: relative;
  z-index: 1
}
.concern-card {
  border: 1px solid #cfb586;
  border-radius: 6px;
  padding: 25px 30px;
  margin-top: 30px;
  background: #faf8f4
}
.concern-card > div {
  display: flex;
  align-items: center;
  gap: 25px;
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ddd
}
.concern-card h3 {
  flex: 1
}
.result-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  margin-bottom: 25px
}
.result-pair img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover
}
.result-pair p {
  text-align: center;
  background: #c1ab80;
  color: white;
  padding: 5px
}
.improvement-page .improve-results {
  padding-bottom: 130px
}
@media(max-width:576px) {
  .improve-cards, .process-grid {
    gap: 12px
  }
  .improve-card {
    padding: 18px 12px
  }
  .improve-card > img {
    width: 75px;
    height: 85px
  }
  .hair-explain {
    margin: 35px 0
  }
  .hair-explain-row {
    gap: 10px
  }
  .hair-explain-row > img {
    height: 230px
  }
  .emf-box {
    margin: 25px 0;
    padding: 22px
  }
  .concern-card {
    padding: 20px
  }
  .concern-card > div {
    gap: 15px
  }
  .improvement-page .about-hero-title .entitle1 {
    font-size: clamp(26px, 7vw, 42px)
  }
}
/* 追加された専用イラストを使用 */
.improve-card > img {
  width: 150px;
  height: 135px;
  max-width: 100%;
  object-fit: contain;
  margin: 20px auto
}
.care-comparison > p {
  align-items: center
}
.comparison-icon {
  width: 44px;
  height: 44px;
  object-fit: contain;
  flex-shrink: 0;
  border-radius: 50%;
  padding: 8px;
  background: #f0eeeb
}
.hair-explain-row {
  display: block;
  margin: 24px 0
}
.hair-explain-row > .hair-diagram {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain
}
.concern-card > div {
  display: grid;
  grid-template-columns: 1fr 130px;
  gap: 8px 20px
}
.concern-card > div > .concern-age {
  grid-column: 1;
  grid-row: 1
}
.concern-card > div > h3 {
  grid-column: 1;
  grid-row: 2
}
.concern-portrait {
  grid-column: 2;
  grid-row: 1 / 3;
  width: 130px;
  height: 150px;
  object-fit: contain
}
@media(max-width:576px) {
  .improve-card > img {
    width: 110px;
    height: 105px
  }
  .comparison-icon {
    width: 36px;
    height: 36px;
    padding: 6px
  }
  .concern-card > div {
    grid-template-columns: 1fr 100px;
    gap: 8px 12px
  }
  .concern-portrait {
    width: 100px;
    height: 130px
  }
}
/* 比較表のアイコンを大きく表示 */
.care-comparison .comparison-icon {
  width: 64px;
  height: 64px;
  padding: 3px
}
@media(max-width:576px) {
  .care-comparison .comparison-icon {
    width: 54px;
    height: 54px;
    padding: 2px
  }
}
/* 年代別カード：見出しとイラストの高さを揃える */
.concern-card {
  padding: 24px 28px;
  margin-top: 24px
}
.concern-card > div {
  grid-template-columns: minmax(0, 1fr) 120px;
  grid-template-rows: auto auto;
  column-gap: 20px;
  row-gap: 8px;
  align-items: start;
  padding-bottom: 20px;
  margin-bottom: 20px
}
.concern-card > div > .concern-age {
  align-self: end;
  margin: 0;
  line-height: 1.15
}
.concern-card > div > h3 {
  align-self: start;
  margin: 0;
  line-height: 1.65;
  min-width: 0
}
.concern-card .concern-portrait {
  width: 120px;
  height: 120px;
  align-self: center;
  justify-self: end
}
.concern-card > p {
  margin: 0;
  line-height: 2
}
@media(max-width:576px) {
  .concern-card {
    padding: 22px 20px;
    margin-top: 20px
  }
  .concern-card > div {
    grid-template-columns: minmax(0, 1fr) 88px;
    column-gap: 12px;
    row-gap: 10px;
    padding-bottom: 16px;
    margin-bottom: 16px
  }
  .concern-card .concern-portrait {
    width: 88px;
    height: 110px
  }
}
/* 年代別のイラストを大きく表示 */
.concern-card > div {
  grid-template-columns: minmax(0, 1fr) 160px
}
.concern-card .concern-portrait {
  width: 160px;
  height: 160px
}
@media(max-width:576px) {
  .concern-card > div {
    grid-template-columns: minmax(0, 1fr) 120px
  }
  .concern-card .concern-portrait {
    width: 120px;
    height: 140px
  }
}

.care-comparison {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 30px;
}

.care-comparison h3 {
  margin: 0;
  padding: 14px 22px;
  background: #aaa;
  color: #fff;
}

.care-comparison .care-item {
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 0 36px;
  padding: 18px 0;
  border-bottom: 1px solid #ddd;
}

.care-comparison .care-item:last-child {
  border-bottom: none;
}

.care-comparison .comparison-icon {
  width: 60px;
  height: 60px;
  object-fit: contain;
  flex-shrink: 0;
}

.care-comparison .care-item p {
  margin: 0;
}

/* FAMILLE側 */
.care-comparison.is-gold h3 {
  background: #cdb486;
}


/* =========================
   576px以下
========================= */

@media screen and (max-width: 576px) {

  .care-comparison {
    flex-direction: column;
    border-radius: 14px;
  }

  .care-comparison h3 {
    padding: 13px 20px;
  }

  .care-comparison .care-item {
    display: flex;
    flex-direction: row;
    width: auto;
    gap: 20px;
    margin: 0 25px;
    padding: 16px 0;
  }

  .care-comparison .comparison-icon {
    width: 58px;
    height: 58px;
  }
}

/* Smooooth / GrapesJS対応：サイドメニュー */
.improvement-page .side-link-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.65;
  text-wrap: balance
}
.improvement-page .side-link-text > p,
.improvement-page .side-links > a > p {
  margin: 0
}
.improvement-page .side-link-text > p {
  white-space: nowrap
}
.improvement-page .circle-arrow {
  margin: 0
}

/* Smooooth / GrapesJS対応：年代表示 */
.concern-age {
  grid-column: 1;
  grid-row: 1;
  align-items: baseline
}
.concern-age > p {
  margin: 0
}
.concern-card > div > .concern-age {
  align-self: end;
  line-height: 1.15
}
