:root {
  --orange: #f67206;
  --orange-hover: #e06500;
  --orange-active: #d45f00;
  --dark: #161710;
  --white: white;
  --gray: #f5f5f5;
}

html {
  box-sizing: border-box;
}

/* Rubber/fluid layout from 1024px up: the root font-size is set in vw
   (a relative unit, % of viewport width), so every rem-based size
   (fonts, paddings, gaps, radii, the .container max-width itself)
   stays in the same proportion to the viewport at any screen size -
   no fixed floor/ceiling, no breakpoint jumps. 0.8333vw == 16px at the
   1920px design width; it keeps scaling linearly past that in both
   directions. */
@media (min-width: 1024px) {
  html {
    font-size: 0.8333vw;
  }
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  font-family: "Inter", sans-serif;
  color: var(--dark);
}

.container {
  max-width: 104rem;
  width: 100%;
  margin: 0 auto;
  padding: 0 1rem;
}

/* Shared "Druk, bold, uppercase" section heading */
.section-title {
  margin: 0;
  font-family: "Druk", sans-serif;
  font-weight: 700;
  font-size: clamp(1.125rem, 2vw, 2.25rem);
  line-height: 1;
  text-transform: uppercase;
}

/* Shared bold uppercase sub-heading used inside cards */
.block-title {
  margin: 0;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

/* Shared light card surface (gray background) */
.surface-card {
  background-color: var(--gray);
}

.button {
  cursor: pointer;
  display: block;
  border: none;
  border-radius: 0.5rem;
  background-color: var(--orange);
  border: 1px solid transparent;
  color: var(--white);
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  transition:
    background-color 0.2s ease,
    border 0.2s ease,
    transform 0.15s ease;
}
.button:hover {
  background-color: var(--orange-hover);
  border: 1px solid #f67206;
}
.button:active {
  background-color: var(--orange-active);
  border: 1px solid #f9770c;
  transform: scale(0.97);
}
