@import url("storyi-sub-20260909.css");

/* The contact form sits outside main in its source document. */
#contact-form p {
  text-wrap: pretty;
}

.sub-service h2 .sub-nowrap,
.sub-pathway strong .sub-nowrap {
  display: block;
  overflow-wrap: normal;
  text-wrap: balance;
}

.sub-service h2 .sub-nowrap + br {
  display: none;
}

/* 20260916 CTA heading narrow fix (ticket 20260916-storyi-cta-heading-narrow):
   narrow widths split the first 11-char span and orphan a 2-char line ("の、").
   Balance the wrap inside each block-level span so the shortest line stays
   >= 3 chars. Same technique as .sub-nowrap above; font-size untouched so
   the passing >= 480px appearance is unchanged. */
#contact-title span {
  overflow-wrap: normal;
  text-wrap: balance;
}

.sub-voice-heading {
  margin: 0 0 16px;
  color: var(--navy);
  font-family: YakuHanMP, "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 20px;
  line-height: 1.5;
}


/* v8: Mieli-specified phrase units; only .ph-target text is affected. */
.ph-target, .ph-target * { text-wrap: wrap !important; }
.ph-target .ph { display: inline-block !important; max-width: 100%; }
/* Contact: .c16-role-option is a grid label, so .ph-run is its one text grid
   item; the phrase spans inside it retain their inline-block computed display. */
.subpage .c16-role-option.ph-target .ph { display: inline-block !important; max-width: 100%; }

#voices .sub-voice-card blockquote p {
  text-align: justify;
  line-break: strict;
  word-break: auto-phrase;
}

@media (max-width: 760px) {
  #voices .sub-voice-card blockquote p {
    text-align: left;
  }
}


/* Approved 2026-09-29 revision */
.site-header a.logo img { display: block; height: 40px; width: auto; }
.sub-service-body p { text-align: start; line-break: strict; word-break: auto-phrase; }
.sub-story-link { display: inline-block; margin-top: .5rem; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.sub-icf-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1rem; }
.sub-icf-logos img { display: block; width: auto; height: 72px; object-fit: contain; }
.sub-aamc-logo { display: block; width: 112px; height: auto; margin-block: 1rem; }
@media (max-width: 760px) { .sub-service-body p { text-align: left; } }
@media (max-width: 390px) { .sub-icf-logos { gap: .5rem; } .sub-icf-logos img { height: 56px; } }


/* 20260929 new program pages */
.sub-program-page .sub-program-index { margin: 3rem auto; max-width: 72rem; padding-inline: 1.5rem; }
.sub-program-page .sub-program-index ul { margin: 1rem 0; padding-left: 1.5rem; }
.sub-program-page .sub-program-index li { margin-block: .5rem; }
.sub-program-page .sub-program-tagline { margin: .5rem 0 1rem; color: var(--copy-navy); font-weight: 700; }
.sub-program-page .sub-service-body h3 { margin: 1.5rem 0 .5rem; color: var(--copy-navy); }
.sub-program-page .sub-service-body ul { margin: 1rem 0; padding-left: 1.5rem; }
.sub-program-page .sub-service-body li { margin-block: .35rem; }


/* 20260929 fix3: align program page cards with services grid */
@media (min-width: 761px) {
  .sub-program-page .sub-service { row-gap: 0; }
  .sub-program-page .sub-service h2 { grid-column: 1; grid-row: 2; }
  .sub-program-page .sub-service .sub-program-tagline { grid-column: 1; grid-row: 3; }
  .sub-program-page .sub-service .sub-service-body { grid-column: 2; grid-row: 2 / 4; }
}

/* 20260929 fix4: keep program taglines close to headings */
@media (min-width: 761px) {
  .sub-program-page .sub-service { grid-template-rows: auto auto auto 1fr; }
  .sub-program-page .sub-service .sub-service-body { grid-row: 2 / 5; }
  .sub-program-page .sub-service .sub-num { margin-bottom: 48px; }
}
