/* Escala comum; ficheiro separado para acompanhar a implementação em curso. */
@media screen {
  :root {
    --type-hero: clamp(2.25rem, 4.375vw, 3.5rem);
    --type-page: clamp(2.25rem, 3.75vw, 3rem);
    --type-section: clamp(1.875rem, 3.125vw, 2.5rem);
    --type-subsection: clamp(1.5rem, 2.2vw, 1.75rem);
    --type-card: clamp(1.375rem, 1.875vw, 1.5rem);
    --type-block: 1.25rem;
    --type-lead: 1.125rem;
    --type-body: 1rem;
    --type-ui: .9375rem;
    --type-support: .875rem;
    --type-note: .75rem;
  }

  body { font-size: var(--type-body); line-height: 1.65; }
  body h1, body h2, body h3 { font-weight: 700; text-wrap: balance; }
  body h2 { font-size: var(--type-section); line-height: 1.2; letter-spacing: -.03em; }
  body h3 { font-size: var(--type-block); line-height: 1.35; letter-spacing: -.015em; }
  body .hero h1 {
    font-size: var(--type-hero); line-height: 1.14;
    letter-spacing: -.03em; font-weight: 700;
  }
  body .page-intro h1, body .editorial-intro h1,
  body .booking-page > div > h1, body .course-intro h1, body .proposal-hero h1 {
    font-size: var(--type-page); line-height: 1.18; letter-spacing: -.03em;
  }
  body .hero-description, body .page-intro > p:not(.eyebrow),
  body .editorial-intro > div > p:not(.eyebrow),
  body .course-intro > div > p:not(.eyebrow):not(.sample-label),
  body .proposal-hero > div > p:not(.eyebrow) {
    font-size: var(--type-lead); line-height: 1.55; max-width: 50ch;
  }
  body .hero-description { max-width: 38ch; }

  body .eyebrow, body .hero .eyebrow, body .course-category {
    font-size: var(--type-note); line-height: 1.5;
    font-weight: 600; letter-spacing: .08em;
  }
  body .concept-bar, body .context-label, body .breadcrumb,
  body .catalog-note, body .sample-label, body .course-price small,
  body .detail-note, body .proposal-source, body .proposal-disclosure,
  body .booking-summary .summary-note, body .footer-bottom {
    font-size: var(--type-note); line-height: 1.6; letter-spacing: 0;
  }
  body .context-grid strong { font-size: var(--type-body); font-weight: 600; }

  body .button, body .button-small, body .hero .button,
  body .text-link, body .hero .text-link, body .course-card-footer .text-link,
  body .course-row .button, body .course-booking-card .button,
  body .detail-sidebar .button, body .wizard-actions .button,
  body .wizard-actions > .text-link, body .booking-summary > .text-link,
  body .proposal-feature > a, body .back-link, body .print-link,
  body .site-header nav > a, body .menu-toggle {
    font-size: var(--type-ui); line-height: 1.45; font-weight: 600;
  }
  body .button { white-space: normal; text-align: center; }
  body .hero-actions { flex-wrap: wrap; gap: 20px 24px; }
  body .hero-actions .text-link { padding-block: 8px; }

  body .section-heading > p:not(.eyebrow), body .course-description,
  body .course-grid-three .course-description, body .academy-copy > p:not(.eyebrow),
  body .academy-values p, body .participation-steps p, body .questions-grid > div > p,
  body .faq-list details > p, body .closing-section p,
  body .course-reading > section > p, body .syllabus p,
  body .editorial-reading p, body .location-section > div > p:not(.eyebrow),
  body .trainers-lead p, body .profile-outline p, body .contact-information > p,
  body .booking-step > p, body .booking-step > div > p:not(.field-helper),
  body .privacy-reading p, body .proposal-intro > p, body .proposal-feature p,
  body .journey-list p, body .architecture-list p,
  body .proposal-architecture > div > p, body .proposal-included ul,
  body .proposal-steps p, body .catalog-help p, body .empty-state p,
  body .detail-description, body .detail-section p, body .program-list,
  body .booking-course-title, body .booking-summary > p,
  body .confirmation > p:not(.eyebrow), body .confirmation-details {
    font-size: var(--type-body); line-height: 1.65;
  }
  body .course-reading > section > p, body .privacy-reading p { max-width: 65ch; }
  body .course-card h3, body .course-grid-three h3, body .course-row h3 {
    font-size: var(--type-card); line-height: 1.3; letter-spacing: -.02em;
  }
  body .academy-values h3, body .participation-steps h3,
  body .profile-outline h3, body .proposal-feature h3,
  body .proposal-included h3, body .proposal-steps h3,
  body .journey-list h3, body .syllabus h3,
  body .booking-summary h2, body .booking-summary h3, body .message-result h3 {
    font-size: var(--type-block); line-height: 1.35; letter-spacing: -.015em;
  }
  body .course-reading h2, body .editorial-reading h2,
  body .contact-information h2, body .contact-form-card h2,
  body .booking-step h2, body .privacy-reading h2, body .catalog-help h2,
  body .detail-grid h2, body .empty-state h1, body .empty-state h2 {
    font-size: var(--type-subsection); line-height: 1.25; letter-spacing: -.02em;
  }
  body .academy-copy h2, body .closing-section h2, body .trainers-lead h2,
  body .confirmation h2 { font-size: var(--type-section); line-height: 1.2; }
  body .faq-list summary { font-size: var(--type-body); line-height: 1.5; font-weight: 600; }

  body .course-meta, body .course-grid-three .course-meta, body .course-intro-meta,
  body .course-availability, body .course-count, body .filter, body .course-row-date,
  body .course-row-status, body .course-booking-card dl > div,
  body .booking-summary dl > div, body .detail-sidebar dl,
  body .contact-information dl, body .contact-information dt,
  body .field label, body .catalog-search .field label,
  body .field .field-error, body .field-error, body .field-helper,
  body .form-error-summary, body .consent, body .wizard-steps li,
  body .review-data > div, body .demo-notice, body .booking-page .demo-notice,
  body .contact-form-card > p, body .message-result p, body .copy-status,
  body .location-panel > span, body .architecture-list strong {
    font-size: var(--type-support); line-height: 1.5;
  }
  body .field input, body .field select, body .catalog-search .field select,
  body .field textarea, body .message-result textarea {
    font-size: var(--type-body); line-height: 1.5;
  }
  body .payment-choice strong { font-size: var(--type-body); line-height: 1.5; font-weight: 600; }
  body .payment-choice small, body .summary-due { font-size: var(--type-support); line-height: 1.5; }
  body .summary-due strong { font-size: 2.25rem; line-height: 1.2; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
  body .summary-due small { font-size: var(--type-note); }
  body .location-panel p, body .confirmation .confirmation-footnote {
    font-size: var(--type-note) !important;
  }
  body .course-price, body .course-grid-three .course-price {
    font-size: 1.75rem; line-height: 1.2; font-weight: 700;
    letter-spacing: -.02em; font-variant-numeric: tabular-nums;
  }
  body .course-booking-card .course-price, body .detail-sidebar .course-price { font-size: 2.25rem; }
  body .footer-directory h2 {
    font-size: var(--type-support); line-height: 1.5; letter-spacing: 0; font-weight: 700;
  }
  body .footer-directory p, body .footer-directory > div > a:not(.brand) {
    font-size: var(--type-support); line-height: 1.65;
  }
  body .course-card-footer { flex-wrap: wrap; gap: 16px; }
  body .course-meta { row-gap: 8px; }
  body .course-grid-three .course-meta span + span { border: 0; padding-left: 0; }
  body .course-booking-card, body .booking-summary { min-width: 0; }
  body .course-booking-card dl > div, body .booking-summary dl > div { gap: 16px; }
  body .course-booking-card dd, body .booking-summary dd { overflow-wrap: anywhere; }

  @media (max-width: 1100px) {
    body .course-grid-three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .course-grid-three .course-card-footer { flex-direction: row; align-items: center; }
    body .course-grid-three .course-meta { flex-direction: row; gap: 8px 16px; }
    body .site-header nav { gap: 20px; }
  }
  @media (max-width: 800px) {
    body .course-layout { grid-template-columns: minmax(0, 1fr) minmax(285px, .9fr); }
    body .contact-information dl { grid-template-columns: 1fr; }
  }
  @media (max-width: 600px) {
    body .course-grid-three { grid-template-columns: 1fr; }
    body .catalog-search { grid-template-columns: 1fr; }
    body .catalog-search .search-field { grid-column: auto; }
    body .hero h1 { font-size: clamp(2.25rem, 9.2vw, 2.5rem); letter-spacing: -.025em; }
    body .hero-description { font-size: var(--type-body); }
    body .hero-actions { gap: 12px 20px; }
    body .hero-actions .button { gap: 18px; padding-inline: 18px; }
    body .context-grid strong { font-size: var(--type-support); }
    body .context-label { font-size: var(--type-note); }
    body .wizard-steps { flex-wrap: wrap; gap: 12px; }
    body .wizard-steps li { gap: 6px; }
    body .wizard-steps li > span:first-child { flex-shrink: 0; }
    body .course-booking-card .course-price, body .summary-due strong { font-size: 2rem; }
    body .review-data > div { grid-template-columns: minmax(80px, .7fr) minmax(0, 1fr); }
    body .closing-section .button { flex-shrink: 0; }
  }
}
