/* トップページ専用。共通部品の定義は common.css に置く。 */
.page-home .ae-hero { padding: 88px 0 80px; }
.page-home .ae-hero-grid { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); gap: 6%; align-items: end; margin-top: 29px; }
.page-home .ae-hero h1 { font-size: clamp(35px, 4.05vw, 52px); line-height: 1.46; font-weight: 700; letter-spacing: .035em; }
.page-home .ae-hero h1 span { white-space: nowrap; }
.page-home .ae-hero-copy { padding-bottom: 7px; }
.page-home .ae-hero-copy p { font-size: 15px; line-height: 2; }
.page-home .ae-hero-copy .ae-text-link { margin-top: 23px; }
.page-home .ae-hero-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 50px; padding-top: 20px; border-top: 1px solid var(--ae-line); font-size: 12px; letter-spacing: .12em; }
.page-home .ae-hero-bottom span:last-child { display: flex; align-items: center; gap: 10px; }
.page-home .ae-main-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6%; padding-bottom: var(--ae-space); }
.page-home .ae-service-list { margin: 27px 0 0; padding: 0; list-style: none; flex: 1; }
.page-home .ae-service-list li { border-top: 1px solid var(--ae-line); }
.page-home .ae-service-list li > :is(a, button) { display: flex; align-items: center; gap: 15px; width: 100%; text-align: left; background: none; border: 0; padding: 20px 0; line-height: 1.8; }
.page-home .ae-index { font-size: 12px; letter-spacing: .08em; font-weight: 400; flex-shrink: 0; }
.page-home .ae-service-title { font-size: 18px; font-weight: 700; flex: 1; min-width: 0; }
.page-home .ae-journal { border-top: 1px solid var(--ae-line); padding: var(--ae-space) 0; }
.page-home .ae-blog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6%; }
.page-home .ae-blog-grid > section { min-width: 0; }
.page-home .ae-blog-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin: 16px 0 25px; }
.page-home .ae-blog-description { min-height: 60px; margin-bottom: 30px; }
.page-home .ae-blog-more { display: flex; justify-content: flex-end; margin-top: 26px; }

@media (max-width: 1023px) {
  .page-home .ae-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .page-home .ae-hero h1 { font-size: 45px; }
  .page-home .ae-hero-copy { max-width: 580px; }
  .page-home .ae-main-grid, .page-home .ae-blog-grid { gap: 4%; }
  .page-home .ae-service-title { font-size: 16px; }
}

@media (max-width: 767px) {
  .page-home .ae-hero { padding: 50px 0; }
  .page-home .ae-hero h1 { font-size: 35px; }
  .page-home .ae-hero .ae-kicker { font-size: 12px; letter-spacing: .07em; line-height: 1.8; }
  .page-home .ae-hero-copy p br { display: none; }
  .page-home .ae-hero-bottom { margin-top: 30px; flex-direction: column; align-items: flex-start; gap: 15px; font-size: 11px; }
  .page-home .ae-main-grid, .page-home .ae-blog-grid { grid-template-columns: minmax(0, 1fr); gap: 37px; }
  .page-home .ae-service-title { font-size: 16px; }
  .page-home .ae-service-list li > :is(a, button) { gap: 10px; }
  .page-home .ae-blog-description { min-height: 0; }
  .page-home .ae-blog-description br { display: none; }
}
