/* Faditec Protect global typography system v5.0.1
   One fluid scale for the marketing site, with a compact operational scale for app/admin views. */

:root {
  --fd-type-xs: clamp(.74rem, .72rem + .08vw, .80rem);
  --fd-type-sm: clamp(.82rem, .80rem + .10vw, .90rem);
  --fd-type-body: clamp(.94rem, .91rem + .14vw, 1.02rem);
  --fd-type-lead: clamp(1rem, .96rem + .22vw, 1.12rem);
  --fd-type-h3: clamp(1.08rem, 1.02rem + .28vw, 1.25rem);
  --fd-type-h2: clamp(1.65rem, 1.42rem + 1.08vw, 2.55rem);
  --fd-type-inner-h1: clamp(1.95rem, calc(2.75vw * var(--fd-heading-scale, 1)), 3.15rem);
  --fd-type-display: clamp(2.35rem, calc(3.55vw * var(--fd-heading-scale, 1)), 4.05rem);
  --fd-type-app-body: clamp(.86rem, .84rem + .07vw, .91rem);
  --fd-type-app-h1: clamp(1.48rem, 1.34rem + .70vw, 2rem);
  --fd-type-app-h2: clamp(1.12rem, 1.04rem + .34vw, 1.38rem);
  --fd-copy-line: 1.82;
  --fd-heading-line: 1.22;
  --fd-copy-measure: 68ch;
}

/* Arabic typography should breathe instead of using Latin-style negative tracking. */
html[dir="rtl"] body,
html[dir="rtl"] h1,
html[dir="rtl"] h2,
html[dir="rtl"] h3,
html[dir="rtl"] h4,
html[dir="rtl"] h5,
html[dir="rtl"] h6 {
  letter-spacing: 0 !important;
}

body.fd-public-body {
  font-size: var(--fd-type-body) !important;
  line-height: var(--fd-copy-line);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.fd-public-body.fd-local-font-enabled {
  font-size: var(--fd-public-font-size, 15px) !important;
}

.fd-public-body :where(h1, h2, h3, h4, h5, h6) {
  text-wrap: balance;
}

.fd-public-body :where(p, li, blockquote) {
  text-wrap: pretty;
}

/* Primary homepage display: premium, strong, but never billboard-sized. */
.fd-public-body .fd-premium-hero:not(.fd-premium-hero--inner) h1 {
  max-width: 680px;
  margin-block: 18px 17px;
  font-size: var(--fd-type-display) !important;
  line-height: 1.12 !important;
  font-weight: var(--fd-weight-bold, 800) !important;
}

.fd-public-body .fd-premium-hero:not(.fd-premium-hero--inner) .fd-premium-hero__content {
  max-width: 690px;
}

.fd-public-body .fd-premium-hero:not(.fd-premium-hero--inner) .fd-premium-hero__lead,
.fd-public-body .fd-premium-hero:not(.fd-premium-hero--inner) > .container p {
  max-width: 650px;
  font-size: var(--fd-type-lead) !important;
  line-height: 1.82 !important;
  font-weight: 500;
}

/* Inner marketing-page heroes use a deliberately smaller hierarchy. */
.fd-public-body .fd-premium-hero--inner h1,
.fd-public-body .fd-public-hero h1,
.fd-public-body .fd-service-hero h1 {
  max-width: 760px;
  font-size: var(--fd-type-inner-h1) !important;
  line-height: 1.20 !important;
  font-weight: var(--fd-weight-bold, 800) !important;
}

.fd-public-body .fd-premium-hero--inner p,
.fd-public-body .fd-public-lead,
.fd-public-body .fd-service-hero__copy > p {
  max-width: var(--fd-copy-measure);
  font-size: var(--fd-type-lead) !important;
  line-height: 1.82 !important;
}

/* One section-heading scale across home, plans, about, trust and services. */
.fd-public-body :is(
  .fd-premium-section__head,
  .fd-public-section__head,
  .fd-service-section__head,
  .fd-premium-proof__copy,
  .fd-premium-control__copy,
  .fd-premium-cta__box,
  .fd-service-final-cta__box
) h2 {
  font-size: var(--fd-type-h2) !important;
  line-height: var(--fd-heading-line) !important;
  font-weight: var(--fd-weight-bold, 800) !important;
}

.fd-public-body :is(
  .fd-premium-section__head,
  .fd-public-section__head,
  .fd-service-section__head,
  .fd-premium-proof__copy,
  .fd-premium-control__copy
) > p {
  max-width: var(--fd-copy-measure);
  font-size: var(--fd-type-body) !important;
  line-height: var(--fd-copy-line) !important;
}

/* Cards use a stable product-content scale instead of Bootstrap heading utilities. */
.fd-public-body :is(
  .fd-premium-services article,
  .fd-premium-steps article,
  .fd-premium-proof__cards article,
  .fd-premium-control__items > div,
  .fd-public-card,
  .fd-service-cards article,
  .fd-service-steps article,
  .fd-service-product-card,
  .fd-public-contact-card,
  .fd-premium-testimonial-card
) :is(h2, h3, .h4, .h5) {
  font-size: var(--fd-type-h3) !important;
  line-height: 1.40 !important;
  font-weight: var(--fd-weight-bold, 800) !important;
}

.fd-public-body :is(
  .fd-premium-services article,
  .fd-premium-steps article,
  .fd-premium-proof__cards article,
  .fd-premium-control__items > div,
  .fd-public-card,
  .fd-service-cards article,
  .fd-service-steps article,
  .fd-service-product-card,
  .fd-public-contact-card,
  .fd-premium-testimonial-card
) p,
.fd-public-body .fd-premium-testimonial-card blockquote {
  font-size: var(--fd-type-sm) !important;
  line-height: 1.78 !important;
}

.fd-public-body :is(.fd-premium-kicker, .fd-public-eyebrow, .fd-service-kicker) {
  font-size: var(--fd-type-xs) !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
}

.fd-public-body :is(.fd-premium-trust, .fd-hero-proof-strip, .fd-service-hero__meta) {
  font-size: var(--fd-type-sm);
}

.fd-public-body .fd-premium-trust span,
.fd-public-body .fd-hero-proof-strip span,
.fd-public-body .fd-service-hero__meta span {
  line-height: 1.45;
}

/* CTA controls should feel refined, not oversized. */
.fd-public-body .btn {
  font-size: clamp(.86rem, .84rem + .09vw, .94rem) !important;
  line-height: 1.25 !important;
}
.fd-public-body.fd-local-font-enabled .btn {
  font-size: var(--fd-control-font-size, 14px) !important;
}

.fd-public-body .btn-lg {
  min-height: 50px;
  padding-block: .70rem;
  padding-inline: 1.20rem;
  font-size: clamp(.90rem, .88rem + .10vw, .98rem) !important;
}
.fd-public-body.fd-local-font-enabled .btn-lg {
  font-size: max(var(--fd-control-font-size, 14px), .92rem) !important;
}

.fd-public-body .form-control,
.fd-public-body .form-select {
  font-size: clamp(.88rem, .86rem + .08vw, .94rem) !important;
  line-height: 1.55 !important;
}
.fd-public-body.fd-local-font-enabled .form-control,
.fd-public-body.fd-local-font-enabled .form-select {
  font-size: var(--fd-control-font-size, 14px) !important;
}

/* Navigation + footer hierarchy. */
.fd-public-body .fd-public-header--premium .fd-public-nav a {
  font-size: clamp(.84rem, .82rem + .07vw, .90rem) !important;
}

.fd-public-body .fd-public-footer--premium :is(p, a, li) {
  font-size: var(--fd-type-sm);
}

.fd-public-body .fd-public-footer--premium h4 {
  font-size: clamp(.90rem, .88rem + .08vw, .98rem) !important;
}

.fd-public-body .fd-public-footer__mini-cta strong {
  font-size: clamp(1.20rem, 1.08rem + .55vw, 1.62rem) !important;
  line-height: 1.35 !important;
}

/* Operational product UI stays compact: dashboards should not inherit marketing scale. */
body.fd-app-body {
  font-size: var(--fd-type-app-body) !important;
  line-height: 1.68;
}
body.fd-app-body.fd-local-font-enabled {
  font-size: var(--fd-app-font-size, 14.5px) !important;
}

.fd-app-body :is(.fd-page-header h1, .fd-admin-hero h1, .fd-platform-settings-hero h1) {
  font-size: var(--fd-type-app-h1) !important;
  line-height: 1.25 !important;
  font-weight: var(--fd-weight-bold, 800) !important;
}

.fd-app-body :is(.fd-panel__title, .fd-admin-panel__head h2, .fd-platform-settings-page .fd-admin-panel__head h2) {
  font-size: var(--fd-type-app-h2) !important;
  line-height: 1.35 !important;
}

.fd-app-body .btn,
.fd-app-body .form-control,
.fd-app-body .form-select {
  font-size: clamp(.82rem, .80rem + .06vw, .88rem) !important;
}
.fd-app-body.fd-local-font-enabled .btn,
.fd-app-body.fd-local-font-enabled .form-control,
.fd-app-body.fd-local-font-enabled .form-select,
.fd-app-body.fd-local-font-enabled .dropdown-menu,
.fd-app-body.fd-local-font-enabled .nav-link {
  font-size: var(--fd-control-font-size, 14px) !important;
}

@media (max-width: 991.98px) {
  .fd-public-body .fd-premium-hero:not(.fd-premium-hero--inner) h1 {
    max-width: 620px;
    font-size: clamp(2.20rem, 6.8vw, 3.45rem) !important;
    line-height: 1.15 !important;
  }

  .fd-public-body .fd-premium-hero--inner h1,
  .fd-public-body .fd-public-hero h1,
  .fd-public-body .fd-service-hero h1 {
    font-size: clamp(1.85rem, 5.6vw, 2.75rem) !important;
  }
}

@media (max-width: 575.98px) {
  :root {
    --fd-type-body: .94rem;
    --fd-type-lead: 1rem;
    --fd-type-h2: clamp(1.48rem, 7vw, 1.95rem);
  }

  .fd-public-body .fd-premium-hero:not(.fd-premium-hero--inner) h1 {
    max-width: 100%;
    margin-block: 15px;
    font-size: clamp(2.02rem, 10.6vw, 2.72rem) !important;
    line-height: 1.17 !important;
  }

  .fd-public-body .fd-premium-hero--inner h1,
  .fd-public-body .fd-public-hero h1,
  .fd-public-body .fd-service-hero h1 {
    font-size: clamp(1.72rem, 8.2vw, 2.22rem) !important;
    line-height: 1.22 !important;
  }

  .fd-public-body .fd-premium-hero__actions .btn,
  .fd-public-body .fd-public-hero__actions .btn,
  .fd-public-body .fd-service-hero__actions .btn {
    min-height: 47px;
  }
}


/* Public color semantics: keep dark marketing surfaces readable.
   This block intentionally lives in the global typography layer because older
   public CSS sets all public headings to dark ink. Without explicit on-dark
   rules, service heroes and dark CTAs can inherit the wrong color. */
.fd-public-body :is(
  .fd-premium-hero,
  .fd-public-hero.fd-public-hero--dark,
  .fd-service-hero,
  .fd-premium-cta__box,
  .fd-service-final-cta__box,
  .fd-public-footer--premium
) :is(h1, h2, h3, h4, h5, h6) {
  color: #ffffff !important;
}

.fd-public-body :is(.fd-premium-hero, .fd-service-hero) :is(p, .fd-public-lead, .fd-premium-hero__lead) {
  color: #dbe5f1 !important;
}

.fd-public-body .fd-service-hero .fd-service-kicker:not(.fd-service-kicker--light) {
  color: #ffffff !important;
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .20);
}

.fd-public-body .fd-service-hero__meta span {
  color: #f8fafc !important;
}

.fd-public-body .fd-service-quote {
  color: #ffffff !important;
}
.fd-public-body .fd-service-quote :is(strong, h2, h3) {
  color: #ffffff !important;
}
.fd-public-body .fd-service-quote p {
  color: #eef2f7 !important;
}
.fd-public-body .fd-service-quote span {
  color: #fecdd3 !important;
}

.fd-public-body .fd-service-final-cta__box :is(h1, h2, h3) {
  color: #ffffff !important;
}
.fd-public-body .fd-service-final-cta__box p {
  color: #e5e7eb !important;
}

.fd-public-body .fd-premium-cta__box :is(h1, h2, h3) {
  color: #ffffff !important;
}
.fd-public-body .fd-premium-cta__box p {
  color: #dbe5f1 !important;
}

.fd-public-body .fd-premium-hero h1 span {
  color: #ff3048 !important;
}
