/*
 * NETSENSE TYPOGRAPHY CONTRACT
 * Global readable scale. Loaded after page-specific CSS on purpose.
 *
 * 16px — body / paragraphs / meaningful explanatory copy
 * 15px — secondary copy / cards / lists
 * 14px — minimum for meaningful compact text
 * 13px — labels, kickers, breadcrumbs, technical metadata only
 */

:root {
  --ns-text-base: 16px;
  --ns-text-secondary: 15px;
  --ns-text-small: 14px;
  --ns-text-label: 13px;
  --ns-text-button: 15px;
  --ns-leading-base: 1.62;
  --ns-leading-secondary: 1.55;
  --ns-leading-compact: 1.45;
}

html {
  font-size: 16px;
}

body {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Shared navigation, actions and forms. */
.main-nav a,
.mobile-menu a:not(.button),
.button,
.header-cta {
  font-size: var(--ns-text-button);
}

.contact-form input,
.contact-form textarea,
.contact-form select,
.contact-form button {
  font-size: var(--ns-text-base);
  line-height: 1.45;
}

.file-control,
.consent,
.form-error {
  font-size: var(--ns-text-small);
  line-height: var(--ns-leading-compact);
}

.file-control small,
.contact-form .smartcaptcha-notice {
  font-size: var(--ns-text-label);
  line-height: var(--ns-leading-compact);
}

/* Footer remains compact, but not micro-sized. */
.site-footer .footer-brand p,
.site-footer .footer-contacts p,
.site-footer .footer-accordion-panel a,
.site-footer .footer-accordion-panel p {
  font-size: var(--ns-text-small);
  line-height: 1.55;
}

.site-footer .footer-copyright,
.site-footer .footer-privacy,
.site-footer .footer-brand > span {
  font-size: var(--ns-text-label);
  line-height: 1.45;
}

/* Breadcrumb is metadata, so 13px is deliberate. */
.site-breadcrumbs,
.site-breadcrumbs a,
.site-breadcrumbs span {
  font-size: var(--ns-text-label);
  line-height: 1.45;
}

/* =========================
   HOME PAGE
   ========================= */
body .accordion-panel p,
body .split-heading p,
body .service-featured .service-copy > p,
body .service-card .accordion-panel p,
body .additional-grid p,
body .integration-copy > p,
body .other-card p,
body .principles li,
body .adv-grid p,
body .process-grid p,
body .ai-copy p,
body .contact-copy > p,
body .contact-copy li {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

body .external-systems > div,
body .flow,
body .flow li,
body .project-card .check-list li,
body .ai-steps p {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

body .service-featured .text-link,
body .service-card .text-link,
body .hero-actions .button,
body .ai-copy .button {
  font-size: var(--ns-text-button);
}

body .eyebrow,
body .metric span,
body .tags span,
body .project-type,
body .project-role,
body .slider-ui span {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

/* =========================
   SERVICES LISTING
   ========================= */
.services-page .services-hero__copy p,
.services-page .services-section__head p,
.services-page .ai-services__intro p,
.services-page .services-platforms__intro p,
.services-page .services-contact__copy p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.services-page .build-row__lead p,
.services-page .build-option p,
.services-page .build-row__description,
.services-page .service-list__item p,
.services-page .integration-list p,
.services-page .platform-card p,
.services-page .platform-benefits {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.services-page .service-list__price,
.services-page .integration-list strong,
.services-page .additional-services__grid strong,
.services-page .ai-stage__title {
  font-size: var(--ns-text-secondary);
  line-height: 1.4;
}

.services-page .service-list__price small,
.services-page .build-option__label,
.services-page .ai-stage__steps span,
.services-page .additional-services__grid small {
  font-size: var(--ns-text-small);
  line-height: 1.4;
}

.services-page .services-kicker,
.services-page .services-hero__nav a {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

/* =========================
   STANDARD SERVICE DETAIL
   ========================= */
.service-standard-page .ss-hero__copy > p,
.service-standard-page .ss-about p,
.service-standard-page .ss-editorial p,
.service-standard-page .services-contact__copy p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.service-standard-page .ss-work__grid span,
.service-standard-page .ss-result__lead p,
.service-standard-page .ss-check-list li,
.service-standard-page .ss-process__row p,
.service-standard-page .ss-check-list--compact li,
.service-standard-page .ss-related__list a,
.service-standard-page .ss-commercial__text {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.service-standard-page .ss-work__grid strong,
.service-standard-page .ss-process__row h3,
.service-standard-page .ss-commercial h3 {
  font-size: 17px;
  line-height: 1.35;
}

.service-standard-page .ss-facts span,
.service-standard-page .ss-trust span,
.service-standard-page .ss-price-note,
.service-standard-page .ss-inline-link {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

.service-standard-page .ss-kicker {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

/* =========================
   AUDIT DETAIL
   ========================= */
.service-detail-page .sd-audit-hero__copy > p,
.service-detail-page .sd-editorial p,
.service-detail-page .sd-editorial-pair p,
.service-detail-page .service-detail-contact__copy > p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.service-detail-page .sd-reasons p,
.service-detail-page .sd-checks-grid p,
.service-detail-page .sd-check-list li,
.service-detail-page .sd-neutral-list li,
.service-detail-page .sd-process p,
.service-detail-page .sd-priorities > p,
.service-detail-page .sd-excluded > p {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.service-detail-page .sd-fact span,
.service-detail-page .sd-transfer-note,
.service-detail-page .sd-priority-scale span,
.service-detail-page .service-detail-contact__links a,
.service-detail-page .sd-audit-hero__copy .sd-price-note {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

.service-detail-page .sd-priority-scale b,
.service-detail-page .audit-problem__meta b {
  font-size: var(--ns-text-secondary);
}

.service-detail-page .sd-eyebrow,
.service-detail-page .sd-result-anchor {
  font-size: var(--ns-text-label);
}

/* The report preview is a dense visual artefact, but must still be readable. */
.service-detail-page .audit-demo__head span,
.service-detail-page .audit-demo__summary small,
.service-detail-page .audit-demo > p,
.service-detail-page .audit-problem__tag {
  font-size: 11px;
  line-height: 1.35;
}

.service-detail-page .audit-demo__list b,
.service-detail-page .audit-demo__list em,
.service-detail-page .audit-problem__details dt,
.service-detail-page .audit-problem__details dd {
  font-size: 12px;
  line-height: 1.4;
}

.service-detail-page .audit-demo__total span,
.service-detail-page .audit-status,
.service-detail-page .audit-problem__meta small {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

/* =========================
   DEVELOPMENT DETAIL
   ========================= */
.service-development-page .dev-hero__copy > p,
.service-development-page .dev-about__text p,
.service-development-page .dev-editorial p,
.service-development-page .ss-editorial p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.service-development-page .dev-model__body li,
.service-development-page .dev-model__body p,
.service-development-page .dev-core .dev-model__body li,
.service-development-page .dev-core .dev-model__body p,
.service-development-page .dev-core__result .ss-result__lead p,
.service-development-page .dev-core__result .ss-result__points li,
.service-development-page .dev-scope-group__items p,
.service-development-page .dev-process__grid p,
.service-development-page .ss-check-list--compact li,
.service-development-page .ss-commercial__text,
.service-development-page .ss-related__list a {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.service-development-page .dev-scope-group__items h4,
.service-development-page .dev-core .dev-model h3,
.service-development-page .ss-commercial h3 {
  font-size: 17px;
  line-height: 1.35;
}

.service-development-page .dev-scope-group > header h3,
.service-development-page .dev-process__grid h3 {
  font-size: 19px;
  line-height: 1.3;
}

.service-development-page .dev-price-note,
.service-development-page .dev-project-passport .dev-facts span,
.service-development-page .dev-facts span,
.service-development-page .dev-inline-link,
.service-development-page .dev-process__marker small {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

.service-development-page .dev-kicker,
.service-development-page .dev-project-passport__header span,
.service-development-page .dev-project-passport__header small,
.service-development-page .dev-model__head small,
.service-development-page .dev-scope-group > header span {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

/* Do not shrink meaningful copy on narrow screens. */
@media (max-width: 767px) {
  body {
    font-size: var(--ns-text-base);
  }

  .contact-form input,
  .contact-form textarea,
  .contact-form select,
  .contact-form button {
    font-size: var(--ns-text-base);
  }

  .site-footer .footer-brand p,
  .site-footer .footer-contacts p,
  .site-footer .footer-accordion-panel a,
  .site-footer .footer-accordion-panel p {
    font-size: var(--ns-text-small);
  }
}

/* =========================
   SHARED SERVICE COMPONENTS
   =========================
   These components are reused by several detail templates. Their readable
   type scale belongs to the typography contract, not to STANDARD. */
.ss-editorial p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.ss-check-list--compact li,
.ss-commercial__text,
.ss-related__list a {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.ss-commercial h3 {
  font-size: 17px;
  line-height: 1.35;
}

.ss-trust span {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

/* =========================
   INTEGRATION DETAIL
   ========================= */
.service-integration-page .int-hero__lead,
.service-integration-page .int-prose p,
.service-integration-page .int-editorial .int-prose p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.service-integration-page .int-schema-node p,
.service-integration-page .int-data__grid p,
.service-integration-page .int-scope__grid p,
.service-integration-page .int-exchange__grid p,
.service-integration-page .int-engineering__grid p,
.service-integration-page .int-result__lead p,
.service-integration-page .int-result__box li,
.service-integration-page .int-process__grid p,
.service-integration-page .int-faq summary,
.service-integration-page .int-faq details p {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.service-integration-page .int-summary li b,
.service-integration-page .int-summary li span,
.service-integration-page .int-metrics span,
.service-integration-page .int-pricing > small {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

.service-integration-page .int-kicker,
.service-integration-page .int-pricing__meta span,
.service-integration-page .int-exchange__num,
.service-integration-page .int-process__marker {
  font-size: var(--ns-text-label);
}

/* =========================
   AI DETAIL
   ========================= */
.service-ai-page .ai-hero__lead,
.service-ai-page .ai-about .ai-prose p,
.service-ai-page .ai-section__lead,
.service-ai-page .ai-editorial .ai-prose p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.service-ai-page .ai-summary__timeline p,
.service-ai-page .ai-data__grid p,
.service-ai-page .ai-scope__grid p,
.service-ai-page .ai-human__flow p,
.service-ai-page .ai-quality__grid p,
.service-ai-page .ai-considerations__grid p,
.service-ai-page .ai-result__card p,
.service-ai-page .ai-result__list li,
.service-ai-page .ai-process__card p,
.service-ai-page .ai-inline-cta span {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.service-ai-page .ai-summary__facts span,
.service-ai-page .ai-metrics span {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

.service-ai-page .ai-kicker,
.service-ai-page .ai-human__flow article.is-optional::after,
.service-ai-page .ai-process__num {
  font-size: var(--ns-text-label);
}

/* =========================
   BITRIX24 DETAIL
   ========================= */
.service-bitrix24-page .b24-hero .ss-hero__copy > p,
.service-bitrix24-page .b24-section-lead,
.service-bitrix24-page .b24-result .b24-result__card p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.service-bitrix24-page .b24-summary__grid p,
.service-bitrix24-page .b24-feature-grid p,
.service-bitrix24-page .b24-comparison__lead,
.service-bitrix24-page .b24-comparison__grid li,
.service-bitrix24-page .b24-scope__grid p,
.service-bitrix24-page .b24-integrations__node,
.service-bitrix24-page .b24-result .ai-result__list li,
.service-bitrix24-page .b24-project-process__grid p {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.service-bitrix24-page .b24-system-card span,
.service-bitrix24-page .b24-hero-diagram__systems > div,
.service-bitrix24-page .b24-integrations__note span,
.service-bitrix24-page .b24-comparison__result strong {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

.service-bitrix24-page .b24-hero .ss-kicker,
.service-bitrix24-page .b24-hero-diagram__systems-label,
.service-bitrix24-page .b24-integrations__mobile-label {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

.service-bitrix24-page .b24-summary__grid h3,
.service-bitrix24-page .b24-feature-grid h3,
.service-bitrix24-page .b24-scope__grid h3,
.service-bitrix24-page .b24-project-process__grid h3 {
  font-size: 17px;
  line-height: 1.35;
}

/* =========================
   GLOBAL MOBILE READABILITY
   =========================
   390px design previews masked how small 10–14px copy feels on an actual
   phone. Meaningful mobile text now has a single site-wide scale. */
@media (max-width: 767px) {
  :root {
    --ns-text-base: 17px;
    --ns-text-secondary: 16px;
    --ns-text-small: 15px;
    --ns-text-label: 14px;
    --ns-text-button: 15px;
    --ns-leading-base: 1.58;
    --ns-leading-secondary: 1.52;
    --ns-leading-compact: 1.45;
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    font-size: var(--ns-text-base);
    line-height: var(--ns-leading-base);
  }

  /* Keep the header compact enough for a 360–390px viewport. */
  .header-cta {
    font-size: 14px;
  }

  .mobile-menu a:not(.button),
  .mobile-menu .button,
  .button:not(.header-cta) {
    font-size: var(--ns-text-button);
  }

  /* Shared service headings: these were frequently 12–14px in old mobile
     patches and looked like metadata rather than actual card titles. */
  .service-standard-page .ss-work__grid strong,
  .service-standard-page .ss-process__row h3,
  .service-standard-page .ss-commercial h3,
  .service-development-page .dev-scope-group__items h4,
  .service-development-page .dev-core .dev-model h3,
  .service-development-page .ss-commercial h3,
  .service-integration-page .int-schema-node h3,
  .service-integration-page .int-data__grid h3,
  .service-integration-page .int-exchange__grid h3,
  .service-integration-page .int-engineering__grid h3,
  .service-integration-page .int-process__grid h3,
  .service-ai-page .ai-summary__timeline h3,
  .service-ai-page .ai-data__grid h3,
  .service-ai-page .ai-human__flow h3,
  .service-ai-page .ai-quality__grid h3,
  .service-ai-page .ai-considerations__grid h3,
  .service-ai-page .ai-process__grid h3,
  .service-bitrix24-page .b24-summary__grid h3,
  .service-bitrix24-page .b24-feature-grid h3,
  .service-bitrix24-page .b24-scope__grid h3,
  .service-bitrix24-page .b24-project-process__grid h3 {
    font-size: 17px;
    line-height: 1.32;
  }

  .ss-commercial h3 {
    font-size: 18px;
  }

  /* Bitrix24 diagram copy is functional content, not micro-labels. */
  .service-bitrix24-page .b24-hero-diagram h2 {
    font-size: 18px;
    line-height: 1.25;
  }

  .service-bitrix24-page .b24-hero-diagram__audience,
  .service-bitrix24-page .b24-system-card span,
  .service-bitrix24-page .b24-hero-diagram__systems > div,
  .service-bitrix24-page .b24-integrations__node {
    font-size: 15px;
    line-height: 1.4;
  }

  .service-bitrix24-page .b24-integrations__note strong {
    font-size: 16px;
    line-height: 1.4;
  }

  .service-bitrix24-page .b24-integrations__note span {
    font-size: 15px;
  }

  .service-bitrix24-page .b24-comparison__result strong {
    font-size: 15px;
  }

  /* AI compact cards were another source of 10–12px text. */
  .service-ai-page .ai-summary__facts b,
  .service-ai-page .ai-summary__timeline h3,
  .service-ai-page .ai-data__grid h3,
  .service-ai-page .ai-human__flow h3,
  .service-ai-page .ai-quality__grid h3,
  .service-ai-page .ai-considerations__grid h3,
  .service-ai-page .ai-process__grid h3 {
    font-size: 17px;
  }

  .service-ai-page .ai-summary__facts span,
  .service-ai-page .ai-summary__timeline p,
  .service-ai-page .ai-metrics span {
    font-size: 15px;
  }

  /* Integration compact process/data blocks. */
  .service-integration-page .int-summary li b,
  .service-integration-page .int-summary li span,
  .service-integration-page .int-metrics span {
    font-size: 15px;
  }

  .service-integration-page .int-schema-node p,
  .service-integration-page .int-data__grid p,
  .service-integration-page .int-exchange__grid p,
  .service-integration-page .int-engineering__grid p,
  .service-integration-page .int-process__grid p {
    font-size: 16px;
  }
}

@media (max-width: 767px) {
  /* Historical DEVELOPMENT patch uses !important; keep the global mobile
     readability floor authoritative there as well. */
  .service-development-page .dev-price-note {
    font-size: var(--ns-text-small) !important;
    line-height: var(--ns-leading-compact) !important;
  }
}

/* =========================
   COMPETENCY DETAIL
   ========================= */
.service-competency-page .cp-hero__lead,
.service-competency-page .cp-section-lead,
.service-competency-page .cp-foundation__note,
.service-competency-page .cp-editorial p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.service-competency-page .cp-areas__grid p,
.service-competency-page .cp-foundation li,
.service-competency-page .cp-comparison li,
.service-competency-page .cp-existing__flow p,
.service-competency-page .cp-capabilities__grid p,
.service-competency-page .cp-routing__desc,
.service-competency-page .cp-approach__grid p {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.service-competency-page .cp-tech__aspro,
.service-competency-page .cp-routing__price small {
  font-size: var(--ns-text-small);
  line-height: 1.45;
}

.service-competency-page .cp-kicker {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

@media (max-width: 767px) {
  .service-competency-page .cp-areas__grid h3,
  .service-competency-page .cp-existing__flow h3,
  .service-competency-page .cp-capabilities__grid h3,
  .service-competency-page .cp-approach__grid h3,
  .service-competency-page .cp-routing__row strong {
    font-size: 17px;
    line-height: 1.32;
  }

  .service-competency-page .cp-tech__branches span,
  .service-competency-page .cp-tech__services span,
  .service-competency-page .cp-routing__more {
    font-size: var(--ns-text-secondary);
    line-height: var(--ns-leading-secondary);
  }
}

/* =========================
   PROJECT DETAIL
   Typography lives in the global contract, never in project-detail.css.
   ========================= */
.project-detail .pd-hero h1 {
  font-size: clamp(44px, 3.8vw, 60px);
  line-height: 1.03;
}

.project-detail .pd-hero__lead,
.project-detail .pd-about > p {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}


.project-detail .pd-starting__lead p {
  font-size: clamp(18px, 1.55vw, 22px);
  line-height: 1.45;
}

.project-detail .pd-starting__lead > span {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

.project-detail .pd-feature-marker {
  font-size: clamp(24px, 2.15vw, 34px);
  line-height: 1;
}

.project-detail .pd-starting__grid p,
.project-detail .pd-check-list li,
.project-detail .pd-scope__grid p,
.project-detail .pd-features__grid p,
.project-detail .pd-integrations p,
.project-detail .pd-tech p,
.project-detail .pd-logic__flow p,
.project-detail .pd-logic__reverse {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.project-detail .pd-section h3,
.project-detail .pd-starting__grid h3,
.project-detail .pd-features__grid h3,
.project-detail .pd-tech h3,
.project-detail .pd-logic__flow h3 {
  font-size: 17px;
  line-height: 1.35;
}

.project-detail .pd-about h2,
.project-detail .pd-commercial h2,
.project-detail .pd-related-projects h2,
.project-detail .pd-testimonial h2 {
  font-size: 24px;
  line-height: 1.15;
}

.project-detail .pd-kicker,
.project-detail .pd-hero-facts dt,
.project-detail .pd-about__facts dt,
.project-detail .pd-tags > span,
.project-detail .pd-side-card__head > a {
  font-size: var(--ns-text-label);
  line-height: 1.4;
}

.project-detail .pd-hero-facts dd,
.project-detail .pd-about__facts dd,
.project-detail .pd-integrations small,
.project-detail .pd-related-services .sd-related-service small,
.project-detail .pd-testimonial figcaption span {
  font-size: var(--ns-text-small);
  line-height: var(--ns-leading-compact);
}

.project-detail .pd-integrations strong,
.project-detail .pd-evidence-card figcaption strong,
.project-detail .pd-related-project > span,
.project-detail .pd-testimonial figcaption strong {
  font-size: var(--ns-text-secondary);
  line-height: 1.4;
}

.project-detail .pd-evidence-card figcaption span,
.project-detail .pd-evidence-card figcaption small,
.project-detail .pd-testimonial blockquote,
.project-detail .pd-cta-wrap .site-project-cta p {
  font-size: var(--ns-text-small);
  line-height: var(--ns-leading-compact);
}

.project-detail .pd-related-services .sd-related-service,
.project-detail .pd-related-services .sd-related-service b {
  font-size: var(--ns-text-secondary);
  line-height: 1.4;
}

.project-detail .pd-lightbox__dialog figcaption strong {
  font-size: var(--ns-text-secondary);
  line-height: 1.4;
}

.project-detail .pd-lightbox__dialog figcaption span {
  font-size: var(--ns-text-small);
  line-height: var(--ns-leading-compact);
}

.project-detail .pd-lightbox__counter {
  font-size: var(--ns-text-small);
  line-height: 1;
}

@media (max-width: 767px) {
  .project-detail .pd-hero h1 {
    font-size: 32px;
    line-height: 1.04;
  }

  .project-detail .pd-about h2,
  .project-detail .pd-commercial h2,
  .project-detail .pd-related-projects h2,
  .project-detail .pd-testimonial h2 {
    font-size: 24px;
    line-height: 1.15;
  }


  .project-detail .pd-starting__lead p {
    font-size: 17px;
    line-height: 1.5;
  }

  .project-detail .pd-feature-marker {
    font-size: 22px;
    line-height: 1;
  }

  .project-detail .pd-section h3,
  .project-detail .pd-starting__grid h3,
  .project-detail .pd-features__grid h3,
  .project-detail .pd-tech h3,
  .project-detail .pd-logic__flow h3 {
    font-size: 16px;
    line-height: 1.35;
  }
}

/* Shared Netsense technical kicker pattern for system/editorial pages. */
.ns-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  color: var(--text);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ns-kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  flex: 0 0 28px;
  background: var(--green);
}
@media (max-width: 620px) {
  .ns-kicker {gap: 9px;margin-bottom: 12px;font-size: 11px;}
  .ns-kicker::before {width: 22px;flex-basis: 22px;}
}

/* =========================
   BLOG
   Typography lives here, never in blog.css.
   ========================= */
.blog-hero h1 {
  font-size: clamp(42px, 4.8vw, 66px);
}

.blog-hero p,
.blog-hero__description,
.blog-article__body,
.blog-comment__text,
.blog-comment-form input,
.blog-comment-form textarea {
  font-size: var(--ns-text-base);
  line-height: var(--ns-leading-base);
}

.blog-sidebar__section > h2,
.blog-index__main > h2,
.blog-publication h3,
.blog-article__body h2,
.blog-article__body h3,
.blog-comments__head h2,
.blog-comment-form-wrap > h2 {
  line-height: 1.2;
}

.blog-sidebar__section > h2 {
  font-size: 17px;
}

.blog-index__main > h2 {
  font-size: 27px;
}

.blog-publication h3 {
  font-size: 21px;
}

.blog-article__header h1 {
  font-size: clamp(34px, 3.6vw, 52px);
}

.blog-article__body h2 {
  font-size: 25px;
}

.blog-article__body h3 {
  font-size: 20px;
}

.blog-comments__head h2 {
  font-size: 30px;
}

.blog-comment-form-wrap > h2 {
  font-size: 29px;
}

.blog-sidebar__categories a,
.blog-sidebar__latest strong,
.blog-publication > p,
.blog-read-link,
.blog-article-nav strong,
.blog-comment-form__reply,
.blog-comment-form .button {
  font-size: var(--ns-text-secondary);
  line-height: var(--ns-leading-secondary);
}

.blog-sidebar__latest span,
.blog-meta,
.blog-comments__head > span,
.blog-comment > header time,
.blog-comment__reply-meta,
.blog-article-nav span,
.blog-code__head {
  font-size: var(--ns-text-label);
  line-height: var(--ns-leading-compact);
}

.blog-comment-form__consent,
.blog-pagination > a,
.blog-pagination > span {
  font-size: var(--ns-text-small);
  line-height: var(--ns-leading-compact);
}

/* Code is meaningful content: never use the old 11–12px scale. */
.blog-code code,
.blog-code__numbers {
  font-size: var(--ns-text-small);
}

.blog-code__copy {
  font-size: var(--ns-text-small);
}

.blog-article__body :not(pre) > code {
  font-size: .92em;
}

/* =========================
   BLOG END
   ========================= */

/* BLOG COMMENT VALIDATION */
.blog-comment-field-error {
  font-size: var(--ns-text-small);
}

/* BLOG PLAIN PRE */
.blog-article__body > pre {
  font-size: var(--ns-text-secondary);
}
