:root {
  --color-white-100: white;
  --color-white-90: #e6e6e6;
  --color-white-80: #cccccc;
  --color-white-70: #b3b3b3;
  --color-white-10: #191919;
  --color-choriosity-red: #be181c;
  --color-choriosity-red--medium: #991416; /* HSV value reduced by 15% */
  --color-choriosity-red--darker: #660d0f; /* HSV value reduced by 35% */
  --color-choriosity-red--rgba: 190, 24, 28;
  --color-choriosity-red--light: #faeaea;
  --color-background: #fffffa;
  --color-tap: var(--color-choriosity-red--darker);
  --color-callout-bg: var(--color-background);
}


/* -----  1.1 Font Definitions  --------------------------------------------- */

/* Fira Sans */
@font-face {
  font-family: 'Fira Sans';
  src: url(../static/fira-sans/FiraSans-Regular.woff2) format("woff2");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'Fira Sans';
  src: url(../static/fira-sans/FiraSans-Italic.woff2) format("woff2");
  font-weight: 400;
  font-style: italic;
}

@font-face {
  font-family: 'Fira Sans';
  src: url(../static/fira-sans/FiraSans-Medium.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'Fira Sans';
  src: url(../static/fira-sans/FiraSans-SemiBold.woff2) format("woff2");
  font-weight: 600;
  font-style: normal;
}

/* -----  1.2 Reset & Normalization  ---------------------------------------- */

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  border: none;
  box-sizing: border-box;
}

html {
  background: var(--color-background);
  color: var(--color-white-10);
  font: normal 400 1.5em/1.5 "Fira Sans", Helvetica, Arial, sans-serif;
  /* Always show the vertical scrollbar to prevent `jumps`
     of page content after navigating from a very short page
     that does not scroll to a long pager */
  overflow-y: scroll;
  /* Neccessary for sticky footer. */
  position: relative;
  min-height: 100%;
  /* Prevent adjustments of font size after orientation
     changes in IE and iOS. */
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  /* Highlight color for WebKit-bases touch devices. */
  -webkit-tap-highlight-color: var(--color-tap);
}

body {
  padding: 16px;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
figure,
pre {
  /* Reset font-sizes and normalize margins */
  font-size: inherit;
  line-height: inherit;
  margin: 0 0 .6rem;
}

/* Headings */
h1,
h2,
h3 {
  font-family: Fira Sans, Helvetica, Arial, sans-serif;
  clear: both;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  text-align: center;
}

h1 {
  font-weight: 500;
  font-size: 2.5rem;
  line-height: 1.25;
  text-shadow: 1px 1px 0px var(--color-choriosity-red);
}

h2 {
  font-size: 1.75rem;
  line-height: 2.2rem;
}

h3 {
  font-size: 1.25em;
  line-height: 1.2;
}

h2,
h3 {
  font-weight: 600;
  margin-top: 2.5rem;
}

h4 {
  font-size: 1em;
}

p {
  line-height: 1.45;
}

/* Vertical lines around headings */
h1:before,
h1:after,
h2:before,
h2:after,
h3:before,
h3:after {
  content: '';
  border-top: 2px solid var(--color-choriosity-red);
  flex: 1 0 20px;
}

h1:before {
  margin: 0 20px 0 0;
}

h2:before,
h3:before {
  margin: 0 15px 0 0;
}

h1:after {
  margin: 0 0 0 20px;
}

h2:after,
h3:after {
  margin: 0 0 0 15px;
}

/* Links */
a {
  color: inherit;
  text-decoration: none;
  border-bottom: 2px solid var(--color-choriosity-red);
}

a.vbox-item {
  border-bottom: none;
}

a:hover,
a:focus,
a:active {
  color: var(--color-choriosity-red);
}

/* Misc */

b,
strong {
  font-weight: 600;
}

p {
  hyphens: auto;
}

header {
    background-color: var(--color-choriosity-red);
    margin: -16px;
    margin-bottom: 16px;
}

fieldset+fieldset {
  margin-top: 25px;
}

input[type="radio"] {
    -webkit-appearance: none;
    width: 1.5em;
    height: 1.5em;
    border-radius: 50%;
    outline: none;
    border: 2px solid var(--color-choriosity-red);
    background-color: var(--color-white-100);
}

input[type="radio"]:checked {
    background-color: var(--color-choriosity-red);
}

.btn {
  display: inline-block;
  border-radius: 3px;
  padding: .6em .75em;
  white-space: nowrap;
  font-size: .8em;
  background: var(--color-choriosity-red);
  color: var(--color-white-100);
  box-shadow: 2px 2px 5px var(--color-white-70);
  text-shadow: 1px 1px 2px var(--color-choriosity-red--medium);
  border-bottom: none;
  cursor: pointer;
}

.btn:hover,
.btn:focus {
  color: var(--color-white-100);
  background: var(--color-choriosity-red--medium);
}

.btn:active {
  background: var(--color-choriosity-red--darker);
  box-shadow: 2px 2px 3px var(--color-white-70);
}

.inp {
  box-sizing: border-box;
  display: block;
  color: var(--color-white-10);
  width: 50%;
  padding: 7px;
  border: 1px solid var(--color-white-10);
  border-radius: 2px;
  background: transparent;
  margin-bottom: 20px;
  height: 45px;
  font-size: .9rem;
}

@media all and (max-width: 800px) {
  .inp {
    width: 100%;
  }
}

.inp:focus {
  border: 1px solid var(--color-choriosity-red);
  outline: none;
}