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

html {
	height: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font-family);
	font-size: var(--font-size);
	font-weight: var(--font-weight);
	line-height: var(--font-line-height);
	color: var(--color-text);
	background-color: var(--color-bg);
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: rgba(#000, 0);
	overflow: auto;
	min-height: 100%;
}

@media (max-width: 750px) {
	body {
		font-size: var(--font-size-mobile);
	}
}

footer,
header {
	background-color: var(--color-gray-5);
	padding: 20px 0;
}

footer {
	font-size: 14px;
}

main {
	min-height: 84vh;
}


hr {
	margin: 1rem 0;
	color: inherit;
	border: 0;
	border-top: 1px solid var(--color-text);
	opacity: .25;
}


/*
	headings
*/
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
	color: var(--color-heading);
	line-height: var(--heading-line-height);
	font-weight: var(--heading-font-weight);
	padding: 0 0 10px 0;
	margin: 0;
}

h1, .h1 {
	font-size: var(--h1-font-size);
	line-height: var(--h1-line-height);
	font-weight: var(--h1-font-weight);
}
@media (max-width: 750px) {
	h1, .h1 {
		font-size: var(--h1-font-size-mobile);
	}
}

h2, .h2 {
	font-size: var(--h2-font-size);
	line-height: var(--h2-line-height);
	font-weight: var(--h2-font-weight);
}
@media (max-width: 750px) {
	h2, .h2 {
		font-size: var(--h2-font-size-mobile);
	}
}

h3, .h3 {
	font-size: var(--h3-font-size);
	line-height: var(--h3-line-height);
	font-weight: var(--h3-font-weight);
}
@media (max-width: 750px) {
	h3, .h3 {
		font-size: var(--h3-font-size-mobile);
	}
}

h4, .h4 {
	font-size: var(--h4-font-size);
	line-height: var(--h4-line-height);
	font-weight: var(--h4-font-weight);
}
@media (max-width: 750px) {
	h4, .h4 {
		font-size: var(--h4-font-size-mobile);
	}
}

h5, .h5 {
	font-size: var(--h5-font-size);
	line-height: var(--h5-line-height);
	font-weight: var(--h5-font-weight);
}
@media (max-width: 750px) {
	h5, .h5 {
		font-size: var(--h5-font-size-mobile);
	}
}

h6, .h6 {
	font-size: var(--h6-font-size);
	line-height: var(--h6-line-height);
	font-weight: var(--h6-font-weight);
}
@media (max-width: 750px) {
	h6, .h6 {
		font-size: var(--h6-font-size-mobile);
	}
}

/*
	Text, Link
*/
p {
	margin-top: 0;
	margin-bottom: 20px;
}

.link,
a {
	font-weight: 700;
	color: var(--color-primary);
	text-decoration: none;
	cursor: pointer;
}

.link:hover,
a:hover {
	color: var(--color-primary-hover);
}

a.disabled,
a[disabled],
a[readonly] {
	pointer-events: none;
	color: var(--color-disabled);
	opacity: 1;
}


abbr[title] {
	text-decoration: underline dotted;
	text-decoration-skip-ink: none;
	cursor: help;
}

address {
	margin-bottom: 20px;
	font-style: normal;
	line-height: inherit;
}

dt {
	font-weight: 700;
}


dd {
	margin-bottom: .5rem;
	margin-left: 0;
}

blockquote {
	margin: 0 0 1rem;
}


b,
strong {
	font-weight: 700;
}

small {
	font-size: .8em;
}

mark {
	padding: .1875em;
	background-color: var(--color-primary);
}


em {
	font-style: italic;

}

sub,
sup {
	position: relative;
	font-size: .75em;
	line-height: 0;
	vertical-align: baseline;
}

sub { bottom: -.25em; }
sup { top: -.5em; }

/*
	List
*/
ol,
ul {
	padding: 0;
	margin: 0;
	margin-left: 20px;
}

ol,
ul,
dl {
	margin-top: 0;
	margin-bottom: 20px;
}

ol ol,
ul ul,
ol ul,
ul ol {
	padding-left: var(--font-size);
	margin-bottom: 0;
}


pre,
code,
kbd,
samp {
	font-size: 1em;
}

pre {
	display: block;
	margin-top: 0;
	margin-bottom: 20px;
	overflow: auto;
	font-size: .875em;
}

pre code {
	font-size: inherit;
	color: inherit;
	word-break: normal;
}

code {
	font-size: .875em;
	word-wrap: break-word;
}

code a > code {
	color: inherit;
}

figure {
	margin: 0 0 1rem;
}


img,
svg {
	vertical-align: middle;
}

table {
	caption-side: bottom;
	border-collapse: collapse;
}

caption {
	padding-top: .5rem;
	padding-bottom: .5rem;
	text-align: left;
}

th {
	font-weight: none;
	text-align: inherit;
	text-align: -webkit-match-parent;
}

thead,
tbody,
tfoot,
tr,
td,
th {
	border-color: inherit;
	border-style: solid;
	border-width: 0;
}

label {
	display: inline-block;
}

button:focus:not(:focus-visible) {
	outline: 0;
}


input,
button,
select,
optgroup,
textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

button,
select {
	text-transform: none;
}

[role="button"] {
	cursor: pointer;
}


[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
	display: none !important;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

::-moz-focus-inner {
	padding: 0;
	border-style: none;
}

textarea {
	resize: vertical;
}

fieldset {
	min-width: 0;
	padding: 0;
	margin: 0;
	border: 0;
}

legend {
	float: left;
	width: 100%;
	padding: 0;
	margin-bottom: .5rem;
	font-size: 1.5rem;
	font-weight: none;
	line-height: inherit;
}

::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
	padding: 0;
}

::-webkit-inner-spin-button {
	height: auto;
}

[type="search"] {
	outline-offset: -2px;
	-webkit-appearance: textfield;
}

::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-color-swatch-wrapper {
	padding: 0;
}

::file-selector-button {
	font: inherit;
	-webkit-appearance: button;
}

output {
	display: inline-block;
}

iframe {
	border: 0;
}

summary {
	display: list-item;
	cursor: pointer;
}

progress {
	vertical-align: baseline;
}

[hidden] {
	display: none !important;
}
