/* Global typography scale tuned for readability */
:root {
  --vs-base-font-size: 106.25%; /* ~17px when browser default is 16px */
  --vs-font-family: 'Poppins', 'Open Sans', Arial, sans-serif;
  --vs-body-size: 1rem;
  --vs-body-line-height: 1.65;
  --vs-h1-size: clamp(2.35rem, 3.2vw, 3.6rem);
  --vs-h2-size: clamp(2.05rem, 2.7vw, 3rem);
  --vs-h3-size: clamp(1.75rem, 2.2vw, 2.4rem);
  --vs-h4-size: clamp(1.4rem, 1.8vw, 1.9rem);
  --vs-h5-size: clamp(1.16rem, 1.3vw, 1.42rem);
  --vs-h6-size: clamp(1rem, 1.05vw, 1.12rem);
}

html {
  font-size: var(--vs-base-font-size);
}

body {
  font-family: var(--vs-font-family) !important;
  font-size: var(--vs-body-size) !important;
  line-height: var(--vs-body-line-height) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
body,
.nav > li > a,
.navbar-nav > li > a,
.top-bar,
.footer,
.widget,
.section-header p,
.section-header h3 {
  font-family: var(--vs-font-family) !important;
}

p,
li,
a,
label,
button,
input,
textarea,
select,
td,
th,
.btn,
.nav > li > a,
.navbar-nav > li > a,
.top-bar,
.footer,
.widget,
.entry p,
.entry li,
.section-header p,
.contact-info li p,
.post-meta li,
.tp-caption {
  font-size: 0.96rem !important;
  line-height: 1.62 !important;
}

h1 {
  font-size: var(--vs-h1-size) !important;
  line-height: 1.18 !important;
}

h2 {
  font-size: var(--vs-h2-size) !important;
  line-height: 1.22 !important;
}

h3 {
  font-size: var(--vs-h3-size) !important;
  line-height: 1.28 !important;
}

h4 {
  font-size: var(--vs-h4-size) !important;
  line-height: 1.32 !important;
}

h5 {
  font-size: var(--vs-h5-size) !important;
  line-height: 1.38 !important;
}

h6 {
  font-size: var(--vs-h6-size) !important;
  line-height: 1.42 !important;
}

::placeholder {
  font-size: 0.94rem;
}
