/* REMONTARY — site-wide design system.
   Loaded after every page-specific stylesheet. The homepage is the visual reference. */
:root {
  --rm-font: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --rm-ink: #17241d;
  --rm-heading: #173c2a;
  --rm-muted: #657169;
  --rm-green: #087a52;
  --rm-green-dark: #07583d;
  --rm-line: #e2e9e2;
  --rm-paper: #ffffff;
  --rm-soft: #f7f8f4;
  --rm-container: 1240px;
  --rm-section-gap: clamp(54px, 5.4vw, 78px);
  --rm-h1: clamp(36px, 4.4vw, 62px);
  --rm-h2: clamp(29px, 3vw, 42px);
  --rm-h3: clamp(16px, 1.35vw, 19px);
  --rm-copy: 15px;
  --rm-card-copy: 13px;
  --rm-small: 11px;
  --rm-radius: 16px;
}

html { font-family: var(--rm-font); text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body.remontary-system {
  margin: 0;
  color: var(--rm-ink);
  font-family: var(--rm-font) !important;
  font-size: var(--rm-copy);
  line-height: 1.55;
  font-synthesis: weight style;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
.remontary-system :where(h1,h2,h3,h4,p,li,label,button,input,select,textarea,summary) {
  font-family: var(--rm-font);
  word-break: normal;
  overflow-wrap: break-word;
}
.remontary-system :where(button,input,select,textarea) { font-size: inherit; }
.remontary-system :where(main,section,article,aside,header,footer,div,form,fieldset) { min-width: 0; }
.remontary-system img { max-width: 100%; }
.remontary-system :where(h1,h2,h3) { color: var(--rm-heading); font-weight: 800; text-wrap: balance; }
.remontary-system :where(p,li) { text-wrap: pretty; }

/* The same content width and gutters as the home page. */
.remontary-system .container {
  width: min(var(--rm-container), calc(100% - 48px)) !important;
  max-width: var(--rm-container);
  margin-inline: auto;
  box-sizing: border-box;
}
.remontary-system .section { padding-block: var(--rm-section-gap); }
.remontary-system .section-heading {
  width: 100%;
  max-width: 810px;
  min-width: 0;
}
.remontary-system .section-heading h2,
.remontary-system .calc-section-heading h2,
.remontary-system .calc-consider-copy h2,
.remontary-system .calc-how-section .section-heading h2,
.remontary-system .calc-city-layout h2,
.remontary-system .calc-commercial-card h2,
.remontary-system .calc-quiz-intro h2,
.remontary-system .calc-faq-section .section-heading h2,
.remontary-system .calc-growth-heading h2,
.remontary-system .fr-section-heading h2,
.remontary-system .fr-benefit-copy h2,
.remontary-system .fr-fit-grid h2,
.remontary-system .fr-faq-layout h2,
.remontary-system .fr-form-copy h2,
.remontary-system .work-section-head h2,
.remontary-system .work-culture-copy h2,
.remontary-system .work-process-head h2,
.remontary-system .work-application-aside h2,
.remontary-system .rc-heading h2,
.remontary-system .home-new-articles-head h2,
.remontary-system .home-blog-heading h2,
.remontary-system .blog-catalog-head h2 {
  font-size: var(--rm-h2) !important;
  line-height: 1.12 !important;
  letter-spacing: -.04em !important;
  font-weight: 800 !important;
}

/* Hero title scale: one shared display scale across the home and inner pages. */
.remontary-system .federal-hero h1,
.remontary-system .calc-hero-copy h1,
.remontary-system .hero-copy h1,
.remontary-system .fr-hero h1 {
  font-size: var(--rm-h1) !important;
  line-height: 1.035 !important;
  letter-spacing: -.052em !important;
  font-weight: 800 !important;
  text-wrap: balance;
}
.remontary-system .blog-hero h1,
.remontary-system .catalog-hero h1,
.remontary-system .work-hero h1,
.remontary-system .staging-wrap h1 {
  font-size: clamp(36px, 4.1vw, 56px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.045em !important;
  font-weight: 800 !important;
}
.remontary-system .article-main h1 {
  font-size: clamp(32px, 3.8vw, 50px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.04em !important;
  font-weight: 800 !important;
}
.remontary-system .section-heading p,
.remontary-system .calc-section-heading p,
.remontary-system .calc-growth-heading p,
.remontary-system .fr-section-heading > p,
.remontary-system .fr-benefit-copy > p,
.remontary-system .fr-fit-grid > div > p,
.remontary-system .fr-faq-layout > div > p,
.remontary-system .fr-form-copy > p,
.remontary-system .home-new-articles-head p,
.remontary-system .work-section-head p {
  font-size: var(--rm-copy) !important;
  line-height: 1.65 !important;
}
.remontary-system .centered-heading,
.remontary-system .calc-section-heading,
.remontary-system .calc-growth-heading,
.remontary-system .faq-section .section-heading,
.remontary-system .calc-faq-section .section-heading {
  margin-inline: auto;
  text-align: center;
}
.remontary-system .centered-heading p,
.remontary-system .calc-section-heading p,
.remontary-system .calc-growth-heading p { margin-inline: auto; }

/* Shared component title/body rhythm. Keep dense catalogue cells separate. */
.remontary-system :where(
  .how-card h3,.fr-model-card h3,.calc-journal-card h3,
  .home-new-article-card h3,.home-blog-card h3,.work-role-card h3,
  .work-process-grid h3,.customer-benefit-card h3,.partner-value-grid h3,
  .comparison-points h3,.calc-panel-header h3,.rc-panel-head h3
) {
  font-size: var(--rm-h3) !important;
  line-height: 1.3 !important;
  letter-spacing: -.025em;
  font-weight: 800;
}
.remontary-system :where(
  .how-card p,.fr-model-card p,.calc-journal-card p,
  .home-new-article-card p,.home-blog-card p,.work-role-card p,
  .work-process-grid p,.customer-benefit-card p,.partner-value-grid p,
  .comparison-points p
) {
  font-size: var(--rm-card-copy) !important;
  line-height: 1.6 !important;
}
.remontary-system :where(.eyebrow,.calc-growth-heading .eyebrow,.fr-section-heading .eyebrow) {
  font-family: var(--rm-font);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 800;
}
.remontary-system :where(.faq-list summary,.article-faq summary) {
  font-family: var(--rm-font);
  font-size: 15px !important;
  line-height: 1.45 !important;
  font-weight: 750;
}
.remontary-system :where(.faq-list details p,.article-faq details p) {
  font-size: 14px !important;
  line-height: 1.7 !important;
}
.remontary-system :where(.btn,.work-btn,.shop-primary-btn) {
  font-family: var(--rm-font);
  font-weight: 750;
  line-height: 1.25;
  text-wrap: balance;
}
.remontary-system :where(.calc-private-badge,.calc-options-count,.partner-income-figure,.fr-economics-result > strong) {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  font-variant-numeric: tabular-nums;
}
.remontary-system :where(.calc-field label,.calc-field legend,.calc-field > strong) {
  font-size: 13px !important;
  line-height: 1.4 !important;
}
.remontary-system .calc-field small { font-size: 11px !important; line-height: 1.5 !important; }
.remontary-system .calc-panel-kicker { font-size: 10px !important; letter-spacing: .1em; }
.remontary-system .calc-type-option strong { font-size: 12px !important; line-height: 1.3 !important; }
.remontary-system .calc-type-option small { font-size: 10.5px !important; line-height: 1.4 !important; }
.remontary-system .calc-grade-switch strong { font-size: 12px !important; line-height: 1.3 !important; }
.remontary-system .calc-grade-switch small { font-size: 10.5px !important; line-height: 1.4 !important; }
.remontary-system .calc-check b { font-size: 12px !important; line-height: 1.35 !important; }
.remontary-system .calc-check small { font-size: 10.5px !important; line-height: 1.4 !important; }
.remontary-system .calc-benefits-grid strong { font-size: 12px !important; line-height: 1.4 !important; }
.remontary-system .calc-benefits-grid small { font-size: 10.5px !important; line-height: 1.4 !important; }
.remontary-system .calc-input-actions span { font-size: 10.5px !important; line-height: 1.45 !important; }
.remontary-system .fr-model-card p { font-size: 13px !important; }
.remontary-system .fr-model-card h3 { font-size: 17px !important; }
.remontary-system .fr-hero-footnote,
.remontary-system .fr-countdown p,
.remontary-system .fr-economics-result > p,
.remontary-system .fr-economics-result > span { font-size: 11px !important; line-height: 1.55 !important; }
.remontary-system .fr-range-labels,
.remontary-system .fr-countdown-digits span { font-size: 10px !important; }
.remontary-system .blog-card p,.remontary-system .blog-card-meta { font-size: 12px; }
.remontary-system .blog-card-category { font-size: 10px; }
.remontary-system .article-content p,
.remontary-system .article-content-section p { font-size: 16px; line-height: 1.75; }

/* Consistent border, radius and vertical spacing for the primary content surface. */
.remontary-system :where(
  .calc-input-panel,.calc-result-panel,.calc-quiz-card,.calc-commercial-card,
  .fr-model-card,.fr-form-card,.work-form-card,.article-toc,
  .article-checklist,.article-side-card,.customer-benefit-card,.partner-value-grid article
) { border-radius: var(--rm-radius); }
.remontary-system :where(.calc-input-panel,.calc-result-panel,.calc-quiz-card,.fr-form-card,.work-form-card) {
  border-color: var(--rm-line);
}
.remontary-system :where(.calc-section-heading,.calc-growth-heading,.section-heading,.fr-section-heading) { min-width: 0; }
.remontary-system :where(.calc-journal-card,.home-new-article-card,.fr-model-card,.work-role-card,.customer-benefit-card,.partner-value-grid article) { min-width: 0; }

@media (max-width: 780px) {
  .remontary-system .container {
    width: min(620px, calc(100% - 32px)) !important;
    max-width: 620px;
  }
  .remontary-system .section { padding-block: 54px; }
  .remontary-system .federal-hero h1,
  .remontary-system .calc-hero-copy h1,
  .remontary-system .hero-copy h1,
  .remontary-system .fr-hero h1 {
    font-size: clamp(36px, 8.8vw, 52px) !important;
    line-height: 1.06 !important;
  }
  .remontary-system .blog-hero h1,
  .remontary-system .catalog-hero h1,
  .remontary-system .work-hero h1,
  .remontary-system .staging-wrap h1 {
    font-size: clamp(34px, 7.8vw, 46px) !important;
  }
  .remontary-system .article-main h1 { font-size: clamp(30px, 7vw, 40px) !important; }
  .remontary-system .section-heading p,
  .remontary-system .calc-section-heading p,
  .remontary-system .calc-growth-heading p,
  .remontary-system .fr-section-heading > p,
  .remontary-system .fr-benefit-copy > p,
  .remontary-system .fr-fit-grid > div > p,
  .remontary-system .fr-faq-layout > div > p,
  .remontary-system .fr-form-copy > p,
  .remontary-system .home-new-articles-head p,
  .remontary-system .work-section-head p { font-size: 14px !important; }
  .remontary-system .calc-section-heading,
  .remontary-system .calc-growth-heading,
  .remontary-system .faq-section .section-heading,
  .remontary-system .calc-faq-section .section-heading { text-align: center !important; }
  .remontary-system .calc-field label,
  .remontary-system .calc-field legend,
  .remontary-system .calc-field > strong { font-size: 12.5px !important; }
  .remontary-system .calc-field small { font-size: 11px !important; }
  .remontary-system .calc-check b,.remontary-system .calc-type-option strong { font-size: 11.5px !important; }
  .remontary-system .calc-check small,.remontary-system .calc-type-option small { font-size: 10px !important; }
  .remontary-system .fr-model-card p { font-size: 12.5px !important; }
  .remontary-system .blog-card p { font-size: 12px !important; }
}
@media (max-width: 420px) {
  .remontary-system .container { width: calc(100% - 32px) !important; }
  .remontary-system :where(.calc-section-heading h2,.calc-growth-heading h2,.section-heading h2,.fr-section-heading h2,.fr-benefit-copy h2,.fr-fit-grid h2,.fr-faq-layout h2,.fr-form-copy h2) {
    font-size: clamp(27px, 7.2vw, 30px) !important;
    line-height: 1.15 !important;
  }
  .remontary-system .faq-list summary,
  .remontary-system .article-faq summary { font-size: 14px !important; }
  .remontary-system .fr-model-card h3,
  .remontary-system .calc-journal-card h3 { font-size: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .remontary-system *, .remontary-system *::before, .remontary-system *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Final role normalization: all public hero pages share the homepage scale. */
.remontary-system .inv-hero-copy h1,
.remontary-system .cities-hero-copy h1,
.remontary-system .shop-hero h1,
.remontary-system .work-hero-copy h1,
.remontary-system .blog-hero-inner h1,
.remontary-system .catalog-hero h1,
.remontary-system .catalog-hero-layout h1 {
  font-size: var(--rm-h1) !important;
  line-height: 1.035 !important;
  letter-spacing: -.052em !important;
  font-weight: 800 !important;
  text-wrap: balance;
}
.remontary-system .shop-shell {
  width: min(var(--rm-container), calc(100% - 48px)) !important;
  max-width: var(--rm-container) !important;
  margin-inline: auto;
  box-sizing: border-box;
}
.remontary-system .shop-section-head h2,
.remontary-system .shop-catalog-head h2,
.remontary-system .shop-feature-copy h2,
.remontary-system .shop-trust-card h2 {
  font-size: clamp(27px, 2.9vw, 38px) !important;
  line-height: 1.13 !important;
  letter-spacing: -.04em !important;
  font-weight: 800 !important;
}
.remontary-system .shop-how-grid h3,
.remontary-system .shop-feature-copy h3 {
  font-size: 16px !important;
  line-height: 1.3 !important;
}
.remontary-system .legal-content h1,
.remontary-system .error-card h1 {
  font-size: clamp(30px, 3.2vw, 44px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.04em !important;
}
.remontary-system :where(.federal-hero .hero-lead,.calc-hero-copy > p,.hero-copy > p,.fr-hero-copy > p,.inv-hero-copy > p,.cities-hero-copy > p,.shop-hero-copy > p,.work-hero-copy > p,.blog-hero-inner > p) {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
@media (max-width: 780px) {
  .remontary-system .inv-hero-copy h1,
  .remontary-system .cities-hero-copy h1,
  .remontary-system .shop-hero h1,
  .remontary-system .work-hero-copy h1,
  .remontary-system .blog-hero-inner h1,
  .remontary-system .catalog-hero h1,
  .remontary-system .catalog-hero-layout h1 {
    font-size: clamp(36px, 8.8vw, 52px) !important;
    line-height: 1.06 !important;
  }
  .remontary-system .shop-shell { width: min(620px, calc(100% - 32px)) !important; }
  .remontary-system .shop-section-head h2,
  .remontary-system .shop-catalog-head h2,
  .remontary-system .shop-feature-copy h2,
  .remontary-system .shop-trust-card h2 { font-size: 29px !important; }
  .remontary-system :where(.federal-hero .hero-lead,.calc-hero-copy > p,.hero-copy > p,.fr-hero-copy > p,.inv-hero-copy > p,.cities-hero-copy > p,.shop-hero-copy > p,.work-hero-copy > p,.blog-hero-inner > p) { font-size: 15px !important; }
  .remontary-system .legal-content h1,
  .remontary-system .error-card h1 { font-size: clamp(29px, 7.4vw, 36px) !important; }
}
@media (max-width: 420px) {
  .remontary-system .container,
  .remontary-system .shop-shell { width: calc(100% - 32px) !important; }
  .remontary-system .shop-section-head h2,
  .remontary-system .shop-catalog-head h2,
  .remontary-system .shop-feature-copy h2,
  .remontary-system .shop-trust-card h2 { font-size: 27px !important; }
}

/* Section-heading roles on secondary sections use the same scale as the homepage. */
.remontary-system .cities-section-heading h2,
.remontary-system .city-detail-copy h2,
.remontary-system .city-franchise-cta-copy h2,
.remontary-system .cities-bottom-cta h2,
.remontary-system .inv-section h2,
.remontary-system .inv-contact-copy h2,
.remontary-system .inv-section-head h2,
.remontary-system .work-section-head h2,
.remontary-system .work-process-head h2,
.remontary-system .work-culture-copy h2,
.remontary-system .work-application-aside h2,
.remontary-system .shop-section-head h2,
.remontary-system .shop-catalog-head h2,
.remontary-system .shop-feature-copy h2,
.remontary-system .shop-trust-card h2 {
  font-size: var(--rm-h2) !important;
  line-height: 1.12 !important;
  letter-spacing: -.04em !important;
  font-weight: 800 !important;
}
.remontary-system .inv-section-head > p,
.remontary-system .cities-section-heading > p,
.remontary-system .shop-section-head > p,
.remontary-system .work-section-head > p,
.remontary-system .work-culture-copy > p,
.remontary-system .city-detail-copy > p {
  font-size: var(--rm-copy) !important;
  line-height: 1.65 !important;
}
@media (max-width: 780px) {
  .remontary-system .cities-section-heading h2,
  .remontary-system .city-detail-copy h2,
  .remontary-system .city-franchise-cta-copy h2,
  .remontary-system .cities-bottom-cta h2,
  .remontary-system .inv-section h2,
  .remontary-system .inv-contact-copy h2,
  .remontary-system .inv-section-head h2,
  .remontary-system .work-section-head h2,
  .remontary-system .work-process-head h2,
  .remontary-system .work-culture-copy h2,
  .remontary-system .work-application-aside h2,
  .remontary-system .shop-section-head h2,
  .remontary-system .shop-catalog-head h2,
  .remontary-system .shop-feature-copy h2,
  .remontary-system .shop-trust-card h2 {
    font-size: 29px !important;
    line-height: 1.15 !important;
  }
  .remontary-system .inv-section-head > p,
  .remontary-system .cities-section-heading > p,
  .remontary-system .shop-section-head > p,
  .remontary-system .work-section-head > p,
  .remontary-system .work-culture-copy > p,
  .remontary-system .city-detail-copy > p { font-size: 14px !important; }
}

/* Typography must not silently change between templates or OS fallback stacks. */
.remontary-system :where(
  h1,h2,h3,h4,p,li,a,label,button,input,select,textarea,summary,
  small,strong,em,span,legend,dt,dd,th,td,blockquote,cite
) {
  font-family: var(--rm-font) !important;
  font-kerning: normal;
  font-optical-sizing: auto;
}
.remontary-system .legal-content h1,
.remontary-system .error-card h1,
.remontary-system .article-main h1 { font-weight: 800 !important; }

/* Align custom page shells and the editorial journal to the homepage grid. */
.remontary-system .inv-container {
  width: min(var(--rm-container), calc(100% - 48px)) !important;
  max-width: var(--rm-container) !important;
  margin-inline: auto;
  box-sizing: border-box;
}
.remontary-system .blog-hero {
  padding-inline: max(0px, calc((100vw - var(--rm-container)) / 2)) !important;
}
.remontary-system .blog-catalog {
  width: min(var(--rm-container), calc(100% - 48px)) !important;
  max-width: var(--rm-container) !important;
  padding-inline: 0 !important;
  box-sizing: border-box;
}
.remontary-system .blog-footer-inner {
  width: min(var(--rm-container), calc(100% - 48px)) !important;
  max-width: var(--rm-container) !important;
  padding-inline: 0 !important;
  box-sizing: border-box;
}
@media (max-width: 780px) {
  .remontary-system .inv-container,
  .remontary-system .blog-catalog,
  .remontary-system .blog-footer-inner {
    width: min(620px, calc(100% - 32px)) !important;
    max-width: 620px !important;
  }
  .remontary-system .blog-hero { padding-inline: 16px !important; }
}
@media (max-width: 420px) {
  .remontary-system .inv-container,
  .remontary-system .blog-catalog,
  .remontary-system .blog-footer-inner { width: calc(100% - 32px) !important; }
}
