/* VISTRUBA v1.5 — Readable at 100% browser zoom.
   Responsive system-font typography, deliberately not dependent on third-party font CDNs.
   These overrides load last to take precedence over the decorative design layer.
*/
:root {
  font-family: "Segoe UI Variable", "Segoe UI", Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-optical-sizing: auto;
}
body { font-size: 17px; line-height: 1.65; }
p { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
.nav-link { font-size: 15px; font-weight: 650; }
.nav-cta { font-size: 15px; }
.eyebrow { font-size: 13px; letter-spacing: .17em; }
.hero h1 { font-size: clamp(52px, 5.25vw, 78px); line-height: 1.09; letter-spacing: -.058em; }
.hero-desc { font-size: 19px; line-height: 1.65; max-width: 610px; }
.hero-kicker { font-size: 15px; letter-spacing: .19em; }
.hero-overline { font-size: 12px; letter-spacing: .09em; }
.hero-trust { font-size: 14px; }
.btn { font-size: 16px; min-height: 54px; }
.strip-label { font-size: 12px; letter-spacing: .15em; }
.ticker-track span { font-size: 13px; }
.section h2 { font-size: clamp(38px, 3.5vw, 52px); line-height: 1.13; }
.section-summary { font-size: 17px; line-height: 1.65; max-width: 450px; }
.service-inner { padding: 22px 25px 28px; min-height: 230px; }
.service-inner h3 { font-size: 23px; font-weight: 760; line-height: 1.25; }
.service-inner p { font-size: 17px; line-height: 1.55; color: #3c4a64; margin-right: 32px; }
.visual-tag { font-size: 11px; letter-spacing: .04em; padding: 7px 9px; }
.values-intro h2 { font-size: clamp(33px, 2.8vw, 43px); }
.value h3 { font-size: 19px; }
.value p { font-size: 15.5px; line-height: 1.6; max-width: 210px; }
.solution-content { padding: 24px 23px 34px; min-height: 205px; }
.solution-content h3 { font-size: 22px; font-weight: 730; }
.solution-content p { font-size: 16.5px; line-height: 1.56; color: #3d4c66; padding-right: 24px; }
.approach-steps b { font-size: 16px; }
.approach-steps h3 { font-size: 21px; }
.approach-steps p { font-size: 16px; line-height: 1.6; }
.contact-copy > p:not(.eyebrow) { font-size: 18px; line-height: 1.65; }
.contact-copy .small-note { font-size: 15px!important; }
.contact-form h3 { font-size: 32px; }
.contact-form > p { font-size: 16px; }
.form-badge { font-size: 12px; }
.contact-form label:not(.checkbox-label) { font-size: 15px; }
.contact-form input:not([type=checkbox]),
.contact-form select,
.contact-form textarea { font-size: 16px; min-height: 50px; }
.checkbox-label { font-size: 15px; }
.form-note { font-size: 14px!important; }
.form-footer #form-status { font-size: 15px; }
.footer-brand > p { font-size: 14px; }
.footer-brand small { font-size: 14px; }
.footer-links a, .footer-contact a, .footer-contact p { font-size: 15px; }
.footer-statement { font-size: 14px; }
.footer-bottom { font-size: 14px; }
/* Prevent narrow tablet navigation and card copy from getting cramped. */
@media (max-width: 960px) {
  .nav-link { font-size: 14px; }
  .service-inner p { font-size: 16.5px; }
  .section-summary { font-size: 16.5px; }
  .value p { font-size: 15.5px; }
}
@media (max-width: 720px) {
  .nav-link { font-size: 17px; line-height: 1.5; }
  .hero h1 { font-size: clamp(42px, 8vw, 58px); line-height: 1.13; }
  .hero-desc { font-size: 17px; line-height: 1.65; }
  .hero-kicker { font-size: 13px; }
  .hero-trust { font-size: 13px; }
  .section h2 { font-size: clamp(32px, 6vw, 42px); }
  .section-summary { font-size: 16.5px; }
  .service-inner h3 { font-size: 21px; }
  .service-inner p { font-size: 16px; margin-right: 20px; }
  .solution-content h3 { font-size: 21px; }
  .solution-content p { font-size: 16px; }
  .contact-copy h1 { font-size: clamp(38px, 7vw, 54px); }
  .contact-copy > p:not(.eyebrow) { font-size: 17px; }
  .contact-form h3 { font-size: 29px; }
}
@media (max-width: 600px) {
  .service-grid { grid-template-columns: 1fr; }
  .service-card, .service-card:nth-child(n+4) { grid-column: 1; min-height: 0; }
  .card-visual { height: 205px; }
  .service-inner { min-height: 0; padding: 22px 23px 60px; }
  .service-inner h3 { font-size: 23px; }
  .service-inner p { font-size: 16px; margin-right: 0; }
  .solution-content { min-height: 0; padding: 22px 23px 68px; }
  .value p { font-size: 15px; }
}
@media (max-width: 480px) {
  .hero-overline { font-size: 11px; }
  .hero h1 { font-size: clamp(40px, 10vw, 48px); }
  .hero-desc { font-size: 17px; }
  .section h2 { font-size: clamp(32px, 8.4vw, 39px); }
  .service-inner h3 { font-size: 23px; }
  .service-inner p { font-size: 16px; }
  .solution-content h3 { font-size: 22px; }
  .solution-content p { font-size: 16px; }
  .approach-steps p { font-size: 16px; }
  .contact-copy h1 { font-size: clamp(36px, 9.4vw, 45px); }
  .contact-copy > p:not(.eyebrow) { font-size: 17px; }
  .contact-form > p { font-size: 16px; }
  .footer-links a, .footer-contact a, .footer-contact p { font-size: 14.5px; }
  .footer-bottom { font-size: 14px; }
}
