:root {
	--bg-primary: #f9f6ad;
	--bg-secondary: #f9d3c8;
	--primary: #ce0000;
	--primary-dark: #870000;
	--secondary: #400000;
	--secondary-trans: rgba(64, 0, 0, 0.3125);
}
@font-face {
	font-family: AtkinsonMono;
	src: url(AtkinsonHyperlegibleMono-VariableFont_wght.ttf);
}
@font-face {
	font-family: DMSerif;
	src: url(DMSerifText-Regular.ttf);
}
html,
body {
	border: none;
	box-sizing: border-box;
	font-family: DMSerif;
	margin: 0;
	padding: 0;
	width: 100%;
}
html.kid-theme {
	background: linear-gradient(-20deg, fuchsia, #0ebcbc);
}

body { padding: 2.5vw 1.75vw 3.5vw 1.75vw; }
body * { box-sizing: border-box; }

html.kid-theme body > p {
	color: white;
	font-size: 112%;
	margin: 0;
	padding: 1vw;
	text-shadow: 0 0 1.5px black;
}

body > h2 {
	color: #ffffff;
	margin-bottom: 0;
	text-shadow: 0px 1.5px 4.5px black;
}

nav {
	align-items: center;
	color: var(--secondary);
	display: flex;
	justify-content: flex-start;
	margin: 0 0 0 2.5vw;
	padding: 0;
}
html.kid-theme nav {
	color: white;
	text-shadow: 0 0 2.5px var(--secondary);
}

#logo {
	align-items: center;
	background: var(--bg-primary);
	background: linear-gradient(55deg, var(--bg-primary), var(--bg-secondary));
	border: 1px solid var(--secondary-trans);
	border-radius: 200px;
	box-shadow: 0 3px 7px 0 var(--secondary-trans);
	display: flex;
	height: 140px;
	min-height: 140px;
	min-width: 140px;
	padding: 10px;
	width: 140px;
}
#logo > img { width: 100%; }
#nav { margin: 0 0 0 18px; }
#nav > h1 { margin: 0 0 1vw 0; }
#nav > a {
	color: var(--secondary);
	text-shadow: 0 2px 3px 0 black;
	display: inline-block;
	font-size: 115%;
	margin: 0 10px 0 0;
	padding: 0 1.5vw 0 0;
	text-decoration: none;
	transition: all 0.25s;
}
#nav > a:hover {
	color: var(--primary-dark);
	transform: scale(1.07);
}
html.kid-theme #nav > a {
	color: var(--bg-primary);
}
#nav > p {
	font-size: 115%;
	margin: 0;
}
nav > h1 {
	font-size: 1.5vw;
	margin: 0;
	padding: 0.2vw 0 0.5vw 2vw;
}

#summer-camps-highlight {
	align-items: center;
	color: var(--primary);
	display: flex;
	font-family: AtkinsonMono, monospace;
	font-weight: bold;
	font-size: 12px;
	justify-content: center;
	position: absolute;
	right: 2.5vw;
	transition: all 0.5s;
	text-align: center;
	text-decoration: none;
	top: 1.5vw;
	width: 225px;
}
#summer-camps-highlight:hover {	transform: scale(1.1) rotate(-7deg); }
#summer-camps-highlight > img {
	transition: all 0.5s;
	width: 225px;
}
#summer-camps-highlight:hover > img { transform: scale(1.15); }
#summer-camps-highlight > p {
	left: 42px;
	margin: 0;
	position: absolute;
	top: 76px;
	transform: rotate(8.5deg);
	transition: all 0.5s;
	width: 57%;
}
#summer-camps-highlight:hover > p { transform: rotate(8.5deg) scale(1.1); }

html.kid-theme h2 + img {
	filter: drop-shadow(0 0 5px black);
	padding: 2vw;
	width: 300px;
}

div#services {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
section.service {
	background: var(--bg-primary);
	background: linear-gradient(-137deg, var(--bg-primary), #fff 20% 80%, var(--bg-secondary));
	border: 1px solid var(--secondary-trans);
	border-radius: 0 50px 0 50px;
	box-sizing: border-box;
	box-shadow: 0 5px 10px 0 var(--secondary-trans);
	margin: 2.5%;
	max-width: 480px;
	min-width: 290px;
	padding: 3vw;
	width: 45%;
}
section > h2 {
	color: var(--secondary);
	margin-top: 0;
}
section > p {
	display: block;
	font-family: AtkinsonMono;
}
section > img {
	display: block;
	margin: 0 auto 1.75vw auto;
	width: 70%;
}
html.kid-theme section > img { filter: drop-shadow(0 0 5px black); }
a.CTA,
section > a.CTA {
	background: linear-gradient(-20deg, fuchsia, #0ebcbc);
	border-radius: 7px;
	box-shadow: 0 2px 2px 0 #333;
	color: white;
	display: block;
	margin: 0 auto 5px 0;
	max-width: 450px;
	padding: 1vw 1.75vw;
	text-align: center;
	text-decoration: none;
	transition: all 0.33s;
}
a.CTA:hover,
section > a.CTA:hover { transform: scale(1.033); }

@media (max-width: 440px) {
	html.kid-theme h2 + img {
		display: block;
		float: inherit !important;
		margin: 0 auto;
	}
}

@media (max-width: 680px) {
	nav {
		flex-direction: column;
		font-size: 90%;
		margin: 0 0 17px 0;
		text-align: center;
	}
	#logo { margin-bottom: 12px; }
	div#nav { margin: 0; }
	div#nav > * { display: block; }
	section.service {
		font-size: 90%;
		margin: 5%;
		width: 90%;
	}
}

@media (min-width: 1150px) {
	section.service {
		margin: 1.75%;
		width: 28%;
	}
}

@media (min-width: 1500px) {
	body { padding: 1.2vw 8vw 5vw 8vw; }
}

@media (max-width: 1000px) {
	#summer-camps-highlight {
		margin: 0 auto;
		position: sticky;
	}
}
