@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap');

:root{
  --font:'Roboto',Arial,sans-serif;

  /* Fluid type scale — derived from the same base, not new sizes pulled
     from nowhere. Grows smoothly between mobile and desktop viewports. */
  --fs-h1: clamp(2rem, 1.6rem + 2vw, 3rem);
  --fs-h2: clamp(1.6rem, 1.35rem + 1.2vw, 2.25rem);
  --fs-h3: clamp(1.3rem, 1.15rem + .75vw, 1.75rem);
  --fs-h4: clamp(1.15rem, 1.05rem + .5vw, 1.4rem);
  --fs-h5: 1.1rem;
  --fs-h6: 1rem;
  --fs-body: 1rem;
  --fs-small: .85rem;
}

body,
input,
textarea,
select,
button{
  font-family:var(--font);
  font-size:var(--fs-body);
  font-synthesis:none; /* prevents the browser faking bold/italic if a weight is missing */
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6{
  font-family:var(--font);
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.01em;
}
h1{ font-size:var(--fs-h1); letter-spacing:-.02em; }
h2{ font-size:var(--fs-h2); letter-spacing:-.015em; }
h3{ font-size:var(--fs-h3); }
h4{ font-size:var(--fs-h4); }
h5{ font-size:var(--fs-h5); }
h6{ font-size:var(--fs-h6); }

strong,
b{
  font-weight:700;
}

small{
  font-size:var(--fs-small);
}

/* ----- Weight utility classes, matching the loaded font weights ----- */
.fw-light{    font-weight:300; }
.fw-regular{  font-weight:400; }
.fw-medium{   font-weight:500; }
.fw-bold{     font-weight:700; }
.fw-black{    font-weight:900; }

/* ----- Common text treatments ----- */
.text-lead{
  font-size:1.2rem;
  line-height:1.6;
  font-weight:400;
}
.text-caps{
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:600;
}
.text-muted{
  opacity:.7;
}

/* Text selection styled to match the theme's primary color, if defined */
::selection{
  background:var(--primary, #333);
  color:#fff;
}