/* Shared typography: Globosoft's Poppins family, with bold product headings,
   natural body tracking and measured spacing inspired by Samsung's product pages.
   Loaded last across the full site. Keep product-preview text at its UI scale. */
:root {
  --type-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --type-display: clamp(2.25rem, 1.55rem + 2.7vw, 3.75rem);
  --type-section: clamp(1.875rem, 1.35rem + 2vw, 3rem);
  --type-card: 1.25rem;
  --type-body: 1rem;
  --type-lead: 1.125rem;
  --type-small: .875rem;
  --type-label: .75rem;
  --type-heading-tracking: -.025em;
  --space-section: 6rem;
  --space-heading: 1.5rem;
  --space-copy: 1rem;
  --space-card: 2rem;
  --bs-body-font-family: var(--type-family);
}
body.type-system {
  font-family: var(--type-family);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
  word-spacing: normal;
  font-kerning: normal;
}
.type-system :is(button, input, select, textarea) { font-family: var(--type-family); letter-spacing: 0; }
.type-system main :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--type-family);
  text-wrap: balance;
  overflow-wrap: break-word;
}
.type-system main h1,
.type-system.product-site :where(main) h1 {
  font-size: var(--type-display);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: var(--type-heading-tracking);
  margin-bottom: var(--space-heading);
}
.type-system main h2,
.type-system.product-site :where(main) h2 {
  font-size: var(--type-section);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: var(--type-heading-tracking);
  margin-bottom: var(--space-heading);
}
.type-system main h3,
.type-system.product-site :where(main) h3 {
  font-size: var(--type-card);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.015em;
  margin-bottom: .75rem;
}
.type-system main :is(h4, h5, h6) { font-weight: 600; line-height: 1.4; letter-spacing: -.01em; }
.type-system main p { letter-spacing: 0; line-height: 1.65; }
.type-system :is(.lead-text, .lead-copy, .lead, .pr-hero-lead, .pr-brand-lead, .sec-intro) {
  font-size: var(--type-lead);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
  max-width: 62ch;
}
.type-system :is(.pr-heading, .pr-section-top) .pr-heading>p:last-child:not(.pr-eyebrow),
.type-system .pr-heading>p:last-child:not(.pr-eyebrow) {
  font-size: var(--type-body); line-height: 1.65; letter-spacing: 0;
}
.type-system :is(.pr-module, .pr-mapping, .pr-industry-card, .pr-policy-card, .pr-local, .feature-card, .pain-card) p,
.type-system .pr-brand-benefits p,
.type-system .pr-answer-grid>div>p,
.type-system .prose :is(p, li) {
  font-size: var(--type-body); line-height: 1.65; letter-spacing: 0;
}
.type-system .pr-mapping .pr-pain { font-size: var(--type-small); line-height: 1.5; }
.type-system .pr-module-features li { font-size: var(--type-small); line-height: 1.65; letter-spacing: 0; }
.type-system .pr-module-features li+li { margin-top: .5rem; }
.type-system .pr-sector-heading h3 { font-size: 1.5rem; line-height: 1.35; }
.type-system .pr-step-copy h3 { font-size: clamp(1.5rem, 1rem + 1.5vw, 2rem); line-height: 1.25; }
.type-system .pr-step-copy p { font-size: var(--type-body); line-height: 1.65; }
.type-system :is(.pr-eyebrow, .eyebrow, .sales-kicker) {
  font-size: var(--type-label); font-weight: 600; line-height: 1.5;
  letter-spacing: .1em; margin-bottom: 1rem;
}
.type-system :is(.pr-hero-notes, .hero-note, .pr-close-note, .pr-brand-caption, .pr-preview-caption) {
  font-size: .8125rem; line-height: 1.5; letter-spacing: 0;
}
.type-system :is(.pr-button, .pr-secondary, .pr-text-link, .btn, .pr-mapping>a, .pr-module-note) {
  font-family: var(--type-family); font-size: var(--type-small);
  font-weight: 600; line-height: 1.4; letter-spacing: 0;
}
.type-system :is(.pr-button, .btn-brand, .btn-outline-brand, .nav-cta) { padding: .875rem 1.5rem; }
.type-system .site-nav :is(.nav-link, .dropdown-item) { font-size: var(--type-small); line-height: 1.5; letter-spacing: 0; }
.type-system .site-nav .nav-link { font-weight: 600; }
.type-system .pr-sector-tabs button { font-size: var(--type-small); font-weight: 500; line-height: 1.5; letter-spacing: 0; }
.type-system .pr-feature-nav a { font-size: var(--type-small); line-height: 1.5; letter-spacing: 0; }
.type-system .faq-accordion .accordion-button { font-size: 1.0625rem; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; padding-block: 1.5rem; }
.type-system .faq-accordion .accordion-body { font-size: var(--type-body); line-height: 1.75; letter-spacing: 0; }
.type-system .faq-accordion h3 { margin-bottom: 0; }
.type-system :is(.form-control, .form-select) { font-size: var(--type-body); line-height: 1.5; }
.type-system .form-label { font-size: var(--type-small); font-weight: 500; letter-spacing: 0; }
.type-system :is(.section, .pr-section) { padding-block: var(--space-section); }
.type-system :is(.pr-close, .pr-hub-hero, .pr-sector-hero, .hero) { padding-block: var(--space-section); }
.type-system :is(.pr-heading, .sec-head) { margin-bottom: 2.5rem; }
.type-system :is(.pr-module, .pr-mapping, .pr-industry-card) { padding: var(--space-card); }
.type-system .pr-module { padding-top: 2.5rem; }
.type-system :is(.pr-module, .pr-mapping) p { margin-bottom: 1.5rem; }
.type-system .pr-mapping .pr-pain { margin-bottom: .75rem; }
.type-system .pr-policy-intro>div>.pr-policy-lead { font-size: clamp(1.125rem, 1rem + .5vw, 1.375rem)!important; line-height: 1.6!important; }
.type-system .pr-policy-price { font-weight: 700; letter-spacing: var(--type-heading-tracking); }
.type-system .pr-policy-price>span { font-weight: 500; letter-spacing: 0; }
.type-system .pr-policy-intro>div>p:not(.pr-eyebrow) { line-height: 1.65; }
.type-system .pr-brand-benefits h3 { font-size: 1.125rem; }
.type-system .pr-brand-benefits li { margin-bottom: 1.5rem; }
.type-system :is(.pr-dashboard, .pr-brand-phone) { font-family: var(--type-family); letter-spacing: 0; }
.type-system .pr-dashboard p { line-height: 1.4; }
.type-system .pr-app-greeting p { font-weight: 600; letter-spacing: -.015em; }
.type-system .pr-phone-welcome strong { font-weight: 600; letter-spacing: -.015em; }
.type-system .pr-floating strong { letter-spacing: 0; }
.type-system .site-footer { font-size: var(--type-small); line-height: 1.65; letter-spacing: 0; }
.type-system .site-footer :is(h2, h3) { font-family: var(--type-family); font-size: .8125rem; line-height: 1.5; letter-spacing: .06em; font-weight: 600; }
@media(max-width:991px) {
  :root { --space-section: 4.5rem; --space-card: 1.5rem; }
  .type-system .pr-policy-intro, .type-system .pr-branded-grid { gap: 3rem; }
  .type-system .pr-hero-grid { padding-block: 3rem; }
}
@media(max-width:767px) {
  :root { --type-display: 2.25rem; --type-section: 1.875rem; --type-card: 1.25rem; --type-lead: 1rem; --space-section: 3.5rem; --space-heading: 1.25rem; }
  .type-system :is(.pr-hero, .pr-hub-hero, .pr-sector-hero) h1 { line-height: 1.15; }
  .type-system .pr-heading, .type-system .sec-head { margin-bottom: 2rem; }
  .type-system .pr-hero-notes { gap: .625rem 1rem; }
  .type-system .pr-actions { gap: 1rem 1.5rem; }
  .type-system .pr-sector-heading h3 { font-size: 1.375rem; }
  .type-system .pr-policy-intro, .type-system .pr-branded-grid { gap: 2rem; }
  .type-system .pr-paperless-policy h2 { font-size: var(--type-section); }
  .type-system .faq-accordion .accordion-button { font-size: var(--type-body); padding-block: 1.25rem; }
}
@media(max-width:359px) {
  :root { --type-display: 2rem; --type-section: 1.75rem; --space-card: 1.25rem; }
  .type-system .pr-button { padding-inline: 1.125rem; }
  .type-system .pr-brand-phone { padding-inline: .625rem; }
}
