/* contact-wizard only: compact layout without reducing tap targets or hiding conditions. */
.page-contact-wizard .confirmed-school-nav[hidden],
.page-contact-wizard .testmail-note:empty { display: none !important; }
.page-contact-wizard .wizard-example { margin: 14px 0; }
.page-contact-wizard .wizard-example > summary,
.page-contact-wizard .wizard-mail-help > summary { cursor: pointer; min-height: 44px; padding: 10px 0; box-sizing: border-box; font-size: 1.4rem; line-height: 24px; color: #245b79; }
.page-contact-wizard .wizard-mail-help { margin-top: 8px; }
.page-contact-wizard .wizard-mail-help p { margin: 0 0 10px; font-size: 1.4rem; line-height: 1.7; }
.page-contact-wizard :is(.form-row-content,.form-step-content):has(> .testmail-result:not([hidden])) > .testmail-explainer,
.page-contact-wizard :is(.form-row-content,.form-step-content):has(> .testmail-result .testmail-success) > .wizard-mail-help { display: none; }
#wizard-mobile-step { display: none; }
@media (min-width: 601px) {
  .page-contact-wizard .wizard-example > summary { display: none; }
}
@media (max-width: 600px) {
  body.page-contact-wizard { padding-bottom: 0; }
  .page-contact-wizard .wizard-inline-help { display: flex; justify-content: center; margin: 8px 0 20px; }
  body.page-contact-wizard a.form-line-help { position: static; min-height: 44px; visibility: visible; padding: 10px 16px; box-shadow: none; font-size: 12px; z-index: auto; }
  .page-contact-wizard .form-step-label { flex-direction: row; align-items: center; flex-wrap: nowrap; gap: 8px; padding: 12px; }
  .page-contact-wizard .form-step-label .step-badge { flex: 0 0 auto; }
  .page-contact-wizard .form-step-label .form-step-title { min-width: 0; margin: 0; font-size: 1.6rem; line-height: 1.5; }
  .page-contact-wizard #confirmed-school-insurance .form-step-label { padding: 12px; }
  .page-contact-wizard #hoikuen-confirmed > .form-row-label { display: none; }
  .page-contact-wizard .hoikuen-confirmed-group:only-child > .hoikuen-confirmed-header { display: none; }
  .page-contact-wizard #confirmed-school-insurance .if-card-name { min-height: 0; }
  .page-contact-wizard #confirmed-school-insurance .if-card { min-height: 44px; }
  .page-contact-wizard .if-example-row > span:empty { display: none; }
  .page-contact-wizard .wizard-example { padding: 0 10px; border: 1px solid #d4dfe8; border-radius: 8px; background: #f8fafc; }
  .page-contact-wizard .wizard-example .if-example-box { margin: 0 0 10px; }
  .page-contact-wizard .testmail-explainer { margin: 8px 0; padding: 8px 10px; }
  .page-contact-wizard .wizard-progress__list { display: none; }
  .page-contact-wizard .wizard-progress__counter { font-size: 1.5rem; line-height: 1.6; color: #344454; margin: 0; }
  .page-contact-wizard #wizard-mobile-step:not([hidden]) { display: block; width: 100%; max-width: 320px; min-height: 44px; margin: 8px auto 0; padding: 8px 32px 8px 12px; font-size: 1.4rem; color: #344454; background-color: #fff; border: 1px solid #cbd5df; border-radius: 8px; }
}
@media print {
  .page-contact-wizard .wizard-inline-help, #wizard-mobile-step { display: none !important; }
}

/* Mobile typography belongs to this wizard; shared forms and OTP styles stay reusable. */
@media (max-width: 600px) {
  body.page-contact-wizard {
    --wizard-font: "M PLUS Rounded 1c", "Noto Sans JP", "Hiragino Maru Gothic ProN", Meiryo, sans-serif;
    --wizard-text: 1.6rem;
    --wizard-description: 1.5rem;
    --wizard-caption: 1.4rem;
    --wizard-muted: #526078;
  }
  .page-contact-wizard #requestForm :is(button, input, select, textarea),
  .page-contact-wizard #wizard-mobile-step,
  body.page-contact-wizard a.form-line-help {
    font-family: var(--wizard-font);
  }
  .page-contact-wizard #requestForm button {
    font-size: var(--wizard-text);
    font-weight: 700;
    line-height: 1.5;
  }
  .page-contact-wizard #requestForm .form-step-title {
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.5;
  }
  .page-contact-wizard #requestForm .form-step-label { flex-wrap: wrap; }
  .page-contact-wizard #requestForm .form-step-label > .form-step-title { flex: 1; }
  .page-contact-wizard #requestForm .form-step-label > .step-hint { flex-basis: 100%; margin: 0; }
  .page-contact-wizard #requestForm .step-badge {
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.4;
  }

  /* Keep badge/counter on row one and all school identity text on row two. */
  .page-contact-wizard #confirmed-school-insurance .form-step-label {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 8px;
    align-items: center;
  }
  .page-contact-wizard #confirmed-school-insurance .confirmed-school-counter {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    font-size: var(--wizard-caption);
    line-height: 1.5;
    font-weight: 600;
    color: var(--wizard-muted);
  }
  .page-contact-wizard #confirmed-school-insurance .form-step-label .confirmed-school-title {
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
    margin: 0;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: normal;
    overflow-wrap: anywhere;
    color: #263445;
  }
  .page-contact-wizard #confirmed-school-insurance .confirmed-school-name { display: block; }
  .page-contact-wizard #confirmed-school-insurance :is(.confirmed-school-facility-type, .confirmed-school-title-suffix) {
    font-size: var(--wizard-description);
    font-weight: 400;
    color: var(--wizard-muted);
  }

  .page-contact-wizard #requestForm :is(.form-row-label, .confirmed-field-label, .if-label, .if-card-name, .customer-type-card__title, .customer-type-group__legend, .needs-detail__label, .if-product-group-title) {
    font-size: var(--wizard-text);
    font-weight: 700;
    line-height: 1.5;
  }
  .page-contact-wizard #requestForm .if-section-title { font-size: 1.8rem; line-height: 1.5; }
  .page-contact-wizard #requestForm :is(.step-hint, .shoukibo-notice-paragraph, .form-step-help-note, .if-note, .if-lead, .if-card-lock-note, .testmail-explainer, .testmail-result, .if-facility-guide-lead, .if-facility-guide-subtitle, .if-facility-guide-price, .if-facility-guide li) {
    font-size: var(--wizard-description);
    line-height: 1.7;
  }
  .page-contact-wizard #requestForm .step-hint { font-weight: 400; }
  .page-contact-wizard #requestForm :is(.if-product-group-caveat, .if-unavailable-summary-text, .if-unavailable-summary-count, #submit-usage-note) {
    font-size: var(--wizard-description);
    line-height: 1.7;
    color: var(--wizard-muted);
  }
  .page-contact-wizard #requestForm :is(.example, .checkbox-sub, .needs-detail__optional, .wizard-mail-help p, .if-product-group-note, .small) {
    font-size: var(--wizard-caption);
    line-height: 1.7;
    color: var(--wizard-muted);
  }
  .page-contact-wizard #requestForm :is(.wizard-example > summary, .wizard-mail-help > summary, .if-facility-guide-summary) {
    font-size: var(--wizard-description);
    line-height: 1.6;
  }
  /* These legacy explanation classes carry !important from former inline styles. */
  .page-contact-wizard #requestForm :is(.cws-18b9c3, .cws-53946a, .cws-9dfcdb, .cws-aae766, .cws-beea36, .cws-4f1adf, .cws-7ebe16, .cws-b0d74d, .cws-e60cba, .cws-5b3942) {
    font-size: var(--wizard-description) !important;
    line-height: 1.7 !important;
  }
  .page-contact-wizard #requestForm :is(.cws-aae766, .cws-a1cd83) { color: var(--wizard-muted) !important; }
  .page-contact-wizard #requestForm :is(.cws-eeebb1, .cws-37e93e, .cws-e1f155) {
    font-size: 1.2rem !important;
    line-height: 1.4 !important;
  }
  .page-contact-wizard #wizard-mobile-step:not([hidden]) { font-size: var(--wizard-text); line-height: 1.5; }
  body.page-contact-wizard a.form-line-help { font-size: var(--wizard-caption); line-height: 1.5; }

  .page-contact-wizard .otp-ui:is(#email-verification-dialog, .otp-ui),
  .page-contact-wizard .otp-ui:is(#email-verification-dialog, .otp-ui) :is(.otp-title, .otp-primary, .otp-secondary, .otp-resend) {
    font-family: var(--wizard-font);
  }
  .page-contact-wizard .otp-ui:is(#email-verification-dialog, .otp-ui) .otp-title { font-size: 2rem; line-height: 1.5; }
  .page-contact-wizard .otp-ui:is(#email-verification-dialog, .otp-ui) :is(.otp-description, .otp-address) { font-size: var(--wizard-description); line-height: 1.7; }
  .page-contact-wizard .otp-ui:is(#email-verification-dialog, .otp-ui) :is(.otp-label, .otp-status, .otp-help, .otp-resend) { font-size: var(--wizard-caption); line-height: 1.7; }
  .page-contact-wizard .otp-ui:is(#email-verification-dialog, .otp-ui) :is(.otp-primary, .otp-secondary) { font-size: var(--wizard-text); font-weight: 700; line-height: 1.5; }
}
