/* Jerarquía compartida. Este archivo se carga después de los estilos de composición. */
:root {
  --font-body: Arial, Helvetica, sans-serif;
  --text-display: clamp(2.625rem, 1.7rem + 3.2vw, 4.25rem);
  --text-section: clamp(1.875rem, 1.5rem + 1.25vw, 2.5rem);
  --text-section-compact: clamp(1.75rem, 1.5rem + .65vw, 2rem);
  --text-subtitle: 1.375rem;
  --text-lead: clamp(1.125rem, 1rem + .35vw, 1.375rem);
  --text-body: 1rem;
  --text-small: .875rem;
  --text-caption: .75rem;
}
body {font-family:var(--font-body);font-size:var(--text-body);font-weight:400;line-height:1.65;letter-spacing:normal}
h1,h2,h3 {font-family:var(--font-body);font-weight:700;text-wrap:balance}
h1 {font-size:var(--text-display);line-height:1.07;letter-spacing:-.035em}
h2,.contact h2,.contact-banner h2 {font-size:var(--text-section);line-height:1.18;letter-spacing:-.025em}
.solutions h2 {font-size:var(--text-section-compact);line-height:1.3;letter-spacing:-.025em}
.solutions h2 em {line-height:1.3}
h3,.solutions .benefits h3 {font-size:var(--text-subtitle);line-height:1.18;letter-spacing:-.015em;font-weight:700}
form h3 {font-size:1.75rem;line-height:1.2;letter-spacing:-.02em}
p {text-wrap:pretty}
.hero-description {font-size:1.125rem;line-height:1.65;max-width:48ch}
.intro-grid p:not(.eyebrow),.contact-intro {font-size:var(--text-body);line-height:1.7;max-width:60ch}
.contact-banner p {font-size:var(--text-lead);line-height:1.55;max-width:72ch}
.eyebrow,.solutions .benefits-eyebrow {font-size:var(--text-caption);font-weight:700;line-height:1.5;letter-spacing:.14em}
.eyebrow {margin-bottom:18px}
nav {font-size:var(--text-small);font-weight:600;line-height:1.4}
.button,.button.small,.contact-banner .button {font-size:var(--text-small);font-weight:700;line-height:1.4;letter-spacing:.01em}
.menu-toggle {font-size:var(--text-small);line-height:1.4;font-weight:600}
.topbar {font-size:var(--text-caption);line-height:1.5;letter-spacing:.025em}
.hero-bottom {font-size:var(--text-small);line-height:1.5}
.hero-note {font-size:var(--text-caption);letter-spacing:.12em}
.photo-caption span,dt {font-size:var(--text-caption);font-weight:700;line-height:1.5;letter-spacing:.12em}
.photo-caption strong {font-size:clamp(1.375rem,1.2rem + .55vw,1.75rem);line-height:1.3;letter-spacing:-.015em}
.stats-grid>p {font-size:1.25rem;line-height:1.45;letter-spacing:-.01em}
.stats-grid .stat-value {font-size:clamp(3rem,5.3vw,4.75rem);font-weight:700;line-height:1;letter-spacing:-.04em}
.stats-grid .stat-value .stat-count {font:inherit;font-variant-numeric:tabular-nums;letter-spacing:inherit}
.stats-grid .stat-value .stat-plus {font-size:.52em;line-height:1;letter-spacing:0}
.stats-grid>.stat p {font-size:var(--text-small);font-weight:600;line-height:1.45}
.solutions .benefits p {font-size:var(--text-small);font-weight:400;line-height:1.55}
.section-heading>p,.brand-footnote {font-size:var(--text-small);line-height:1.6}
.brand-name {font-size:1rem;line-height:1.3;font-weight:600}
.contact-intro {max-width:42ch}
dd {font-size:var(--text-body);line-height:1.6;overflow-wrap:anywhere}
.map-link {font-size:var(--text-small);line-height:1.5}
form>p,label {font-size:var(--text-small);line-height:1.5}
label {font-weight:600}
label small {font-size:var(--text-caption);font-weight:400}
input,textarea {font-size:var(--text-body);line-height:1.5;font-weight:400}
form .form-note,#form-status {font-size:var(--text-caption);line-height:1.6}
.footer-row p,.footer-row>a:last-child,.copyright {font-size:var(--text-caption);line-height:1.6}
/* Two columns give longer benefit descriptions room at intermediate widths. */
@media(min-width:701px) and (max-width:1050px) {
  .solutions .benefits {grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .benefits-photo {height:100%;min-height:540px;max-height:680px;align-self:stretch}
}
@media(max-width:700px) {
  .topbar {font-size:.6875rem;letter-spacing:0}
  .hero-description {font-size:var(--text-body)}
  .hero-bottom {font-size:var(--text-caption);gap:10px;flex-wrap:wrap}
  .hero-bottom span+span {padding-left:10px}
  .solutions .benefits h3 {font-size:1.25rem}
  .stats-grid .stat-value {font-size:clamp(1.75rem,7.8vw,3.25rem);letter-spacing:-.04em}
  .stats-grid>.stat p {font-size:var(--text-caption);line-height:1.45}
  .contact-banner p br {display:none}
  .section-heading>p br {display:none}
}
