/* Extend the original nicocare design without changing its palette or layout. */
.home-about-description { padding: 0 24px 24px; color: var(--color-text-secondary); font-size: 14px; line-height: 1.8; }
.home-functions .home-function-grid { align-items: stretch; }
.home-function-link { display: flex; flex-direction: column; height: 100%; }
.home-function-link:hover { opacity: 1; }
.home-function-visual { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; background: var(--color-bg-light-blue); overflow: hidden; padding: 0; border-bottom: 1px solid var(--color-bg-light-grey); }
.home-function-visual img { display: block; width: 100%; height: 100%; object-fit: contain; }
/* Crop the modal backdrop captured around these two app screens. */
.home-function-visual--dialog img { transform: scale(1.06); }
.home-function-link .text-area { display: flex; flex-direction: column; flex: 1; }
.home-function-link .text-area h3 { min-height: 1.48em; }
.home-function-lead { margin-top: 12px; margin-bottom: 8px; min-height: 3.6em; font-size: 14px; line-height: 1.8; color: var(--color-text-secondary); }
.home-function-link .point { margin-bottom: 20px; }
.home-detail-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; color: var(--color-text-accent); font-size: 14px; font-weight: 700; padding-top: 16px; border-top: 1px solid var(--color-border); margin-top: auto; }
.home-detail-link span { font-size: 20px; line-height: 1; }
.home-section-buttons { display: flex; justify-content: center; gap: 24px; margin-top: 40px; }
.home-note { max-width: 1120px; margin: 24px auto 0; font-size: 12px; line-height: 1.9; text-align: center; color: var(--color-text-secondary); }
.home-renkei-link { display: flex; justify-content: space-between; gap: 20px; align-items: center; max-width: 1120px; margin: 32px auto 0; padding: 24px 28px; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-bg-light-blue); color: var(--color-text-accent); }
.home-renkei-link > span:first-child { font-weight: 700; font-size: 17px; }
.home-renkei-link > span:last-child { font-size: 14px; white-space: nowrap; }
/* Balance the target-section button against the existing card-list spacing. */
.home-target { padding-block-end: var(--spacing-3xl); }
.home-target .home-section-buttons { margin-block-start: 0; }
.home-target .card > a { display: flex; flex-direction: column; height: 100%; }
.home-target .card > a:hover { opacity: 1; background: var(--color-bg-light-blue); }
.home-target-link { font-size: 13px; text-align: center; color: var(--color-text-accent); padding: 0 12px 18px; }
.home-ui .card figure { margin: 0; }
.home-ui .card figure img { display: block; width: 100%; height: auto; border: 1px solid var(--color-bg-light-grey); border-radius: 8px; }
.home-ui figcaption { color: var(--color-text-secondary); font-size: 11px; line-height: 1.8; text-align: center; margin-top: 10px; }
.home-ui .text-area .home-detail-link { margin-top: 24px; padding-top: 14px; }
.home-workflow { padding: 80px 40px; background: var(--color-bg-light-blue); }
.home-workflow-inner { max-width: 1120px; margin: 0 auto; }
.home-workflow .po-workflow { margin-top: 56px; }
.home-anchor-alias { display: block; height: 0; scroll-margin-top: 100px; }
.home-functions a:focus-visible, .home-target a:focus-visible, .home-renkei-link:focus-visible { outline: 3px solid var(--color-text-accent); outline-offset: 4px; }
#main-content:focus { outline: none; }
@media (max-width: 768px) {
  .home-about-description { padding: 0 20px 22px; font-size: 13px; }
  .home-function-lead { font-size: 13px; min-height: 0; }
  .home-function-link .text-area h3 { min-height: 0; }
  .home-functions .home-function-grid { gap: 24px; }
  .home-section-buttons { margin-top: 30px; }
  .home-section-buttons .btn { font-size: 16px; max-width: 100%; }
  .home-note { font-size: 11px; text-align: left; }
  .home-renkei-link { flex-direction: column; align-items: flex-start; padding: 20px; gap: 12px; }
  .home-renkei-link > span:first-child { font-size: 15px; }
  .home-renkei-link > span:last-child { font-size: 13px; }
  .home-workflow { padding: 64px 20px; }
  .home-workflow .po-workflow { margin-top: 36px; }
  .home-ui figcaption { font-size: 10px; }
}
.home-ui .cards .card figure { width: 50%; flex-shrink: 0; }
@media (max-width: 768px) { .home-ui .cards .card figure { width: 100%; } }
.home-section-buttons a.btn { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding-inline: 30px; min-height: 56px; text-align: center; }

@media (min-width: 1025px) and (max-width: 1200px) {
  .home-function-link .text-area h3 { min-height: 2.96em; }
  .home-function-lead { min-height: 5.4em; }
}
@media (min-width: 769px) and (max-width: 900px) {
  .home-function-lead { min-height: 5.4em; }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .home-functions .home-function-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
