/* Shared reading scale. Loaded after page styles so the same hierarchy applies
   to public information, forms, the news board and administrator screens. */
:root {
  --type-page: 2.125rem;
  --type-section: 1.5rem;
  --type-subsection: 1.25rem;
  --type-card: 1.125rem;
  --type-body: 1.0625rem;
  --type-lead: 1.125rem;
  --type-small: .9375rem;
  --type-heading-line: 1.55;
  --type-body-line: 1.9;
  --type-reading-width: 48rem;
}

/* Paragraphs wrap naturally; intentional line breaks in supplied content are preserved. */
span.sentence-text {
  display: inline;
  margin: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  white-space: pre-line;
}

/* Emphasis is semantic and shared across public copy and administration. */
.sentence-text strong {font-weight:700;color:inherit;}
.sentence-text .phrase-together {white-space:nowrap;word-break:keep-all;overflow-wrap:normal;}

.website-page,
.website-home,
.board-main,
.procedure-flow {
  font-size: var(--type-body);
  line-height: var(--type-body-line);
  text-align: left;
}

.website-page-heading h1,
.board-heading h1,
.board-article h1 {
  font-size: var(--type-page);
  font-weight: 700;
  line-height: var(--type-heading-line);
  letter-spacing: -.025em;
  text-align: left;
  text-wrap: balance;
}

.website-page-heading p,
.board-intro {
  max-width: var(--type-reading-width);
  margin-top: 14px;
  font-size: var(--type-lead);
  line-height: var(--type-body-line);
  text-align: left;
}

.website-page-document,
.legacy-content,
.application-intake,
.application-cta,
.board-article-body {
  font-size: var(--type-body);
  line-height: var(--type-body-line);
}

.legacy-content p,
.package-detail p,
.travel-partner-band,
.website-home-preapplication p,
.website-home-app-copy p,
.website-contact-panel > p,
.application-intro,
.application-cta p,
.application-success p,
.procedure-intro,
.procedure-details p,
.procedure-flow-description,
.procedure-flow-information li,
.procedure-flow-decision li p,
.procedure-flow-completion p,
.board-article-body p,
.board-excerpt,
.admin-card p,
.admin-login-card > p,
.admin-notice p,
.app-demo-video figcaption p {
  font-size: var(--type-body);
  line-height: var(--type-body-line);
  text-align: left;
  text-indent: 0;
  word-break: keep-all;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

/* Wide introductions and articles have a comfortable reading measure. */
.about-copy,
.partner-intro,
.application-cta p,
.application-intro,
.procedure-intro,
.website-home-preapplication p,
.board-article-body {
  max-width: var(--type-reading-width);
}

.board-article-body {
  margin-inline: 0;
  line-height: var(--type-body-line);
}

.legacy-content p + p,
.board-article-body p + p {
  margin-top: 1em;
}

.about-copy .lead,
.shopping-copy .lead {
  font-size: var(--type-lead);
  font-weight: 600;
  line-height: var(--type-body-line);
}

.legacy-content h3,
.feature-row h3,
.procedure-flow-heading h3,
.procedure-details h3 {
  font-size: var(--type-subsection);
  line-height: 1.6;
  letter-spacing: -.02em;
  text-align: left;
}

.legacy-content h4,
.package-detail h3,
.app-screen h4,
.procedure-icon-step h3,
.admin-card h2,
.application-repeat-heading h3,
.application-admin-support h3,
.application-review h3 {
  font-size: var(--type-card);
  line-height: 1.6;
  letter-spacing: -.015em;
}

.website-content-section > h2,
.website-section-heading h2,
.website-home-app-copy h2,
.subsection-heading > h3,
.indonesia-services h3,
.entry-block > h3,
.market-block > h3,
.application-form legend {
  font-size: var(--type-section);
  font-weight: 700;
  line-height: var(--type-heading-line);
  letter-spacing: -.025em;
}

.website-content-section > h2 {
  margin-bottom: 24px;
}

.website-content-section + .website-content-section {
  margin-top: 40px;
  padding-top: 34px;
}

/* Descriptions start at the same column across topic rows. */
.principles article,
.importance-grid article,
.service-card,
.entry-grid > div,
.shopping-features article {
  display: grid;
  grid-template-columns: minmax(0, 13.75rem) minmax(0, 1fr);
  align-items: start;
  column-gap: 24px;
  padding-block: 22px;
}

.principles h3,
.importance-grid h4,
.service-card h3,
.entry-grid h4,
.shopping-features h3 {
  margin: 0;
  font-size: var(--type-subsection);
  line-height: 1.6;
  text-align: left;
}

.principles article > *,
.importance-grid article > *,
.service-card > *,
.entry-grid > div > *,
.shopping-features article > *,
.feature-row > div,
.agreement-banner > div,
.official-mark-panel > div {
  min-width: 0;
}

.procedure-icon-step h3 {
  min-height: 3.2em;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 7px;
  text-align: center;
}

.procedure-icon-number {
  margin-right: 0;
}

.procedure-icon-step p {
  margin-top: 10px;
  max-width: none;
  font-size: 1rem;
  line-height: 1.85;
  text-align: left;
  text-wrap: pretty;
}

.procedure-details li > div,
.procedure-flow-information > div,
.procedure-flow-decision li,
.procedure-flow-completion > div {
  min-width: 0;
}

.procedure-flow-information dt,
.procedure-flow-decision h4,
.procedure-flow-completion h4 {
  font-size: var(--type-card);
  line-height: 1.7;
}

.procedure-flow-information ul {
  padding-inline-start: 1.25em;
}

.website-home-hero h1 {
  font-size: 2.625rem;
  line-height: 1.45;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.website-home-hero p {
  max-width: 36rem;
  font-size: var(--type-lead);
  line-height: var(--type-body-line);
  text-align: left;
  text-wrap: pretty;
}

.website-service-link h2,
.website-contact-panel h2 {
  font-size: var(--type-card);
  line-height: 1.6;
}

.website-service-link p {
  font-size: 1rem;
  line-height: 1.8;
  text-align: left;
}

/* Sources and small print remain smaller than the explanation, but readable. */
.legacy-content .source-link,
.legacy-content .text-link,
.legacy-content .service-note,
.legacy-content .gallery-heading > p,
.legacy-content .feature-footnote,
.legacy-content .shopping-note,
.legacy-content .market-data-note,
.legacy-content .metric-period,
.legacy-content .deadline-note,
.legacy-content .contact-hint,
.procedure-notes,
.procedure-flow .procedure-notes,
.procedure-flow-intro p + p,
.procedure-flow-participants,
.procedure-sources,
.website-media-note,
.application-documents > p,
.application-file-hint,
.application-file-error,
.application-required-note,
.application-payment-note,
.application-upload-limit,
.application-field small,
.application-information,
.application-consent,
.application-repeat-heading p,
.application-error,
.admin-hint,
.admin-save > span,
.slide-admin-hint,
.board-field-hint,
.board-language-note {
  font-size: var(--type-small);
  line-height: 1.85;
  text-align: left;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.legacy-content .gallery-heading > p,
.legacy-content .feature-footnote,
.legacy-content .shopping-note,
.legacy-content .deadline-note,
.legacy-content .contact-hint {
  max-width: var(--type-reading-width);
}

.app-screen figcaption > p {
  font-size: 1rem;
  line-height: 1.85;
}

.certificate-fields,
.application-record-details > div,
.application-receipt > div,
.application-admin-support,
.application-admin-files strong {
  font-size: 1rem;
  line-height: 1.85;
}

.certificate-fields > div,
.application-record-details > div,
.application-receipt > div {
  align-items: start;
  text-align: left;
}

.application-field,
.application-file-label,
.admin-form label,
.slide-admin-fields .application-field > span {
  font-size: 1rem;
  line-height: 1.7;
}

.application-form .application-repeat-item legend {
  font-size: var(--type-card);
}

.application-kind-copy > span {
  font-size: 1rem;
  line-height: 1.8;
}

.application-field input,
.application-field select,
.application-field textarea,
.admin-form input:not([type=checkbox]),
.admin-form select,
.admin-form textarea,
.board-field input,
.board-field select,
.board-field textarea {
  font-size: 1rem;
  line-height: 1.7;
}

.application-kind-copy small,
.application-selected-files li,
.application-admin-files li > span > span,
.application-admin-files a {
  font-size: var(--type-small);
  line-height: 1.8;
}

.application-record-company,
.admin-login-card h1 {
  line-height: 1.6;
  text-wrap: balance;
}

.website-media-heading h2,
.website-media[data-media-type=procedure] .website-media-heading h2,
.admin-video-grid h2 {
  font-size: var(--type-subsection);
  line-height: 1.6;
  text-wrap: balance;
}

.admin-copy-field summary strong {
  font-size: 1rem;
  line-height: 1.8;
}

.website-page p:lang(en),
.website-home p:lang(en),
.board-article-body p:lang(en),
.procedure-flow p:lang(en),
.procedure-flow li:lang(en) {
  word-break: normal;
  hyphens: auto;
}

@media (max-width: 1100px) and (min-width: 821px) {
  .principles article,
  .importance-grid article,
  .service-card,
  .entry-grid > div,
  .shopping-features article {
    grid-template-columns: minmax(0, 11.25rem) minmax(0, 1fr);
    column-gap: 22px;
  }
}

@media (max-width: 820px) {
  .principles article,
  .importance-grid article,
  .service-card,
  .entry-grid > div,
  .shopping-features article {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 10px;
    padding-block: 20px;
  }

  .service-card h3,
  .service-card > p,
  .service-card > a {
    grid-column: auto;
    grid-row: auto;
  }

  .service-card > a {
    margin-top: 0;
    justify-self: start;
  }

  .procedure-icon-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .procedure-flow-information,
  .procedure-flow-decision > ul {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}

@media (max-width: 680px) {
  :root {
    --type-page: 1.75rem;
    --type-section: 1.375rem;
    --type-subsection: 1.1875rem;
    --type-body: 1rem;
    --type-lead: 1.0625rem;
    --type-body-line: 1.85;
  }

  .website-page-heading,
  .board-heading {
    padding-bottom: 24px;
  }

  .website-content-section > h2 {
    margin-bottom: 19px;
  }

  .website-content-section + .website-content-section {
    margin-top: 30px;
    padding-top: 26px;
  }

  .website-home-hero h1 {
    font-size: 2rem;
  }

  .website-home-app-copy h2 {
    font-size: var(--type-section);
  }

  .website-home-preapplication p {
    font-size: var(--type-body);
  }

  .procedure-icon-step {
    padding: 22px;
  }

  .procedure-icon-step p {
    margin-inline: 0;
  }

  .certificate-fields > div {
    grid-template-columns: minmax(0, 5rem) minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .procedure-icon-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .procedure-icon-step h3 {
    min-height: 0;
  }
}


/* Give the company overview sentence the full desktop heading width. */
.website-page-heading .website-about-intro {max-width:none;}
@media(min-width:961px){
 .website-page-heading .website-about-intro[lang="ko"] > .sentence-text {white-space:nowrap;}
}
