/* =========================================================
   WIZZIOSOFT SOLUTIONS — TYPOGRAPHY REFINEMENT
   Loaded after all existing styles. Layout and visual system
   remain unchanged; only readability and type scale are refined.
   ========================================================= */

:root {
  --type-section-desktop: 80px;
  --type-section-tablet: 64px;
  --type-section-mobile: 44px;
  --type-hero-desktop: 96px;
  --type-hero-tablet: 72px;
  --type-hero-mobile: 50px;
  --type-body: 17px;
  --type-tag: 14px;
  --type-small: 11px;
  --type-strong: 16px;
}

body {
  font-size: var(--type-body);
  line-height: 1.68;
}

/* Main content headings */
.main-section-heading,
.display-heading,
.section-title {
  font-size: var(--type-section-desktop) !important;
  line-height: .98 !important;
  letter-spacing: -.052em !important;
}

.page-hero-heading {
  font-size: min(var(--type-hero-desktop), 7vw) !important;
  line-height: .94 !important;
}

/* Paragraphs and descriptions */
.readable-paragraph {
  font-size: var(--type-body) !important;
  line-height: 1.68 !important;
}

.readable-strong {
  font-size: var(--type-strong) !important;
  line-height: 1.5 !important;
}

.readable-tag {
  font-size: var(--type-tag) !important;
  line-height: 1.35 !important;
}

.readable-small {
  font-size: var(--type-small) !important;
  line-height: 1.4 !important;
}

/* Shared navigation and calls to action */
.desktop-nav a,
.ad-nav a {
  font-size: 16px !important;
}

.button,
.button-large,
.button-small,
.text-link {
  font-size: 16px !important;
}

.mobile-menu-meta,
.mobile-menu-meta a,
.mobile-menu-meta p {
  font-size: 16px !important;
}

.mobile-menu nav a span {
  font-size: 13px !important;
}

/* Common labels, tags, filters and metadata */
.eyebrow,
.section-kicker,
.availability,
.footer-label,
.page-breadcrumb,
.quote-label,
.shopify-offer-badge,
.filter-button,
.blog-filter,
.portfolio-filter,
.category-tag,
.article-category,
.project-tag,
.service-tag,
.tag,
.badge,
.pill,
.chip {
  font-size: 14px !important;
  line-height: 1.35 !important;
}

.section-number {
  font-size: 11px !important;
}

button,
input,
select,
textarea {
  font-size: 16px;
}

label,
.field-group > label:not(.consent-check),
.order-field > label:not(.order-consent) {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* Footer readability */
.footer-brand p,
.footer-col a,
.footer-bottom,
.footer-bottom p,
.footer-bottom a,
.ad-footer p,
.ad-footer a {
  font-size: 16px !important;
  line-height: 1.6 !important;
}

.footer-label {
  font-size: 13px !important;
}

.footer-bottom {
  gap: 22px;
}

/* Cards and component descriptions */
.service-card > p,
.price-description,
.problem-cards p,
.included-item p,
.process-card p,
.risk-board p,
.expectations-grid p,
.quote-submit-notice p,
.shopify-faq-answer p,
.quote-faq-answer p,
.article-body p,
.legal-content p,
.utility-content p {
  font-size: 17px !important;
  line-height: 1.68 !important;
}

.service-card li,
.price-includes span,
.checkbox-grid span,
.order-checkbox-grid span,
.order-trust span,
.shopify-hero-points span {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

/* Give enlarged copy enough room without changing the visual language. */
.shopify-hero-meta article,
.quote-trust-row article {
  min-height: 165px;
}

.price-card,
.price-card:last-child {
  min-height: 1040px;
}

.process-card {
  min-height: 370px;
}

.problem-cards article {
  min-height: 480px;
}

.expectations-grid article {
  min-height: 350px;
}

/* Legal/article content uses a smaller heading hierarchy than campaign sections. */
.article-body h2,
.legal-content h2,
.utility-content h2,
.policy-content h2 {
  font-size: clamp(30px, 3vw, 44px) !important;
  line-height: 1.16 !important;
}

.article-body h3,
.legal-content h3,
.utility-content h3,
.policy-content h3 {
  font-size: clamp(23px, 2.2vw, 32px) !important;
  line-height: 1.22 !important;
}

/* Tablet */
@media (max-width: 980px) {
  .main-section-heading,
  .display-heading,
  .section-title {
    font-size: var(--type-section-tablet) !important;
    line-height: 1 !important;
  }

  .page-hero-heading {
    font-size: min(var(--type-hero-tablet), 9vw) !important;
    line-height: .96 !important;
  }

  .desktop-nav,
  .ad-nav {
    font-size: 16px;
  }

  .price-card,
  .price-card:last-child {
    min-height: 980px;
  }
}

/* Mobile */
@media (max-width: 680px) {
  body {
    font-size: 16px;
  }

  .main-section-heading,
  .display-heading,
  .section-title {
    font-size: var(--type-section-mobile) !important;
    line-height: 1.03 !important;
    letter-spacing: -.045em !important;
  }

  .page-hero-heading {
    font-size: min(var(--type-hero-mobile), 13vw) !important;
    line-height: .98 !important;
  }

  .readable-paragraph {
    font-size: 16px !important;
    line-height: 1.65 !important;
  }

  .readable-tag {
    font-size: 13px !important;
  }

  .readable-small {
    font-size: 11px !important;
  }

  .button,
  .button-large,
  .button-small,
  .text-link {
    font-size: 15px !important;
  }

  .mobile-menu nav a {
    font-size: clamp(34px, 10vw, 52px) !important;
  }

  .footer-top {
    gap: 42px;
  }

  .price-card,
  .price-card:last-child {
    min-height: 1020px;
  }

  .process-card,
  .problem-cards article,
  .expectations-grid article {
    min-height: auto;
  }
}
