/* LUAN 16/14: shared by public pages, admin and the inherited board module.
   Font-only priority keeps old mobile and inline board rules from shrinking text.
   Headings, prominent figures, logos and SVG/icon dimensions keep their hierarchy. */
:root {
  --ec-text-body: 16px;
  --ec-text-meta: 14px;
}

body { font-size: var(--ec-text-body); }

/* Reading and operating the site: 16px, including mobile form controls. */
:is(button, input, select, textarea, label),
.btn, .hero-carousel .hero-content .btn,
.nav-dropdown a, .header-contact, .mobile-nav a, .lnb a, .pill-tabs > a,
.footer-links, .euro-footer-nav a, .footer-email, .euro-footer-bottom a,
.summary-card p, .connection-list p, .product-intro, .product-card .text-link,
.case-card a > p, .euro-product-card a > p, .process-card-copy p,
.resource-card p, .euro-banner-grid .resource-card p, .resource-bottom,
.network-node p, .checklist-card p, .application-card p,
.sub-intro, .history-row ul, .company-intro-grid p, .euro-article-body,
.euro-contact-panel dl > div, .advisor-description, .form-result,
.contact-advisor .advisor-description, .contact-advisor .advisor-copy .btn,
.consultation-band p:last-child, .field label, .optional-fields summary,
.consent-row, .document-row, .notice-list > a,
.sidebar nav a, .view-site, .primary, .secondary, .field > span,
.login-brand div > p:last-child, .quick-grid strong, .list-row strong,
.inquiry-meta strong, .message-body, .attachment-list a,
.gboard-btn, .gboard-input, .gboard-textarea, .gboard-file,
.gboard-form-label, .gboard-row, .gboard-col-title, .gboard-empty,
.gboard-content, .gboard-view-content, .gboard-view-body,
.gboard-search-select, .gboard-search-input, .gboard-search-btn,
.gboard-page-num, .gboard-page-btn, .gboard-file-delete-btn,
.gboard-label, .gboard-submit, .gboard-view-attach-name, .gboard-view-attach-down,
.note-editable, .note-editable p, .note-editable li {
  font-size: var(--ec-text-body) !important;
}

/* Supporting information: 14px minimum, with the same rule on every viewport. */
small, .eyebrow, .overline, .source-note, .info-note, .form-intro,
.hero-scroll, .hero-image-label, .hero-product-name strong, .hero-product-name > span,
.feature-index, .floating-label, .sensing-art > p, .product-top .eyebrow,
.product-spec-chips span, .screen-topline, .monitoring-art figcaption,
.application-card > div > span, .application-card > small,
.case-meta, .resource-index, .process-card-copy > span,
.footer-label, .footer-fax, .euro-footer-brand > p,
.euro-footer-legal, .euro-footer-legal address, .euro-footer-bottom small,
.footer-bottom p, .footer-meta, .footer-copyright, .preview-status, .back-top,
.breadcrumbs, .image-credit, .result-count, .article-label, .article-row time,
.article-title small, .detail-toolbar time, .document-row small,
.download-meta, .detail-meta dt, .company-facts dt, .faq-category,
.field small, .field label span, .network-node .tag,
.login-brand small, .login-foot, .login-status, .muted-link,
.sidebar-caption, .admin-top > div > span, .admin-top form > span,
.page-heading p:last-child:not(.overline), .stat-card > span, .stat-card small,
.quick-grid span, .list-row small, .tag, .status, .image-grid span,
.header-card small, .header-card p, .inquiry-meta span, .admin-footer,
.gboard-kicker, .gboard-admin-badge, .gboard-total, .gboard-count,
.gboard-col-num, .gboard-col-date, .gboard-pagination-info,
.gboard-form-help, .gboard-current-file, .gboard-current-file-label,
.gboard-meta, .gboard-view-meta, .gboard-file-info, .gboard-file-size {
  font-size: var(--ec-text-meta) !important;
}

.gboard-head, .gboard-admin-desc, .gboard-alert,
.gboard-parent-label, .gboard-parent-meta, .gboard-view-section-desc,
.gboard-view-attach-meta, .gboard-error-box p {
  font-size: var(--ec-text-meta) !important;
}

.admin-app h3 { font-size: var(--ec-text-body); }
.field input::placeholder, .field textarea::placeholder,
.catalog-search input::placeholder { font-size: var(--ec-text-meta); }

/* Larger type must reflow rather than force horizontal or nested scrolling. */
.euro-footer-email, .footer-email, .euro-footer-legal,
.euro-footer-nav a, .hero-product-name, .process-card-copy,
.gboard-current-file { min-width: 0; overflow-wrap: anywhere; }
.hero-carousel .hero-content .button-row { flex-wrap: wrap; }
.admin-top { min-height: 78px; height: auto; }
.admin-top form { flex-wrap: wrap; }
.stat-card > span { display: block; padding-right: 48px; }
.list-row { flex-wrap: wrap; }
.list-row small { white-space: normal; overflow-wrap: anywhere; }

@media (max-width: 767px) {
  .hero-carousel .hero-content .btn { padding-inline: 14px; }
  .hero-carousel .hero-product-name { max-width: 100%; }
  .euro-footer-nav a { line-height: 1.65; }
  .admin-top { flex-wrap: wrap; gap: 10px; }
  .stat-card { min-height: 128px; }
  .quick-grid { grid-template-columns: 1fr; }
  .inquiry-meta > div { grid-template-columns: minmax(0, 90px) minmax(0, 1fr); }
}
