@charset "UTF-8";

/* CSS RESET */
/* http://meyerweb.com/eric/tools/css/reset */
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}

/* keep sizes the same, even with borders */
*, *:after, *:before {
	-webkit-box-sizing:	border-box;
 	-moz-box-sizing: 	border-box;
 	box-sizing: 		border-box;
}

/* basics */
html, body {
	background-color: 	white;

	font-family: 		'Fira Sans', sans-serif;
	font-size: 			18px;
}
strong {
	font-weight: 		700;
}
em {
	font-style: 		italic;
}

/* section dividers */
section {
	margin-bottom: 		2em;
}

/* recipe image */
#image {
	display:			flex;
	justify-content:	center;
	margin: 			2em 0;
}
.recipe-image {
	max-width: 			300px;
	max-height: 		300px;
	width: 				auto;
	height: 			auto;
	display: 			block;
	margin: 			0 auto;
	border-radius: 		8px;
	box-shadow: 		0 2px 8px rgba(0,0,0,0.1);
}

/* recipe title */
h1 {
	font-size: 			2.5em;
	font-weight: 		900;
	text-transform: 	uppercase;
	margin-top:         1em;
}
#mainTitle {
	text-align:         center;
}

/* section headers */
h2 {
	font-size: 			1.5em;
	font-weight: 		700;
	text-transform: 	uppercase;

	margin-bottom: 		0.6em;
}
#info h2 {
	display: 			none;
}

/* all other text */
p, ul, ol {
	font-size: 			1em;
	line-height: 		1.3em;
}
p {
	/*font-style: 		italic;*/
}
p::first-letter, #ingredients li::first-letter, #steps li::first-letter, #notes li::first-letter, #time::first-letter, #makes::first-letter {
	text-transform: 	uppercase;
}
#ingredients p, #steps p, #notes p, #basedon p {
	font-weight: 		700;
	margin: 			1.1em 0 0.6em 0;
}
#toc li {
	text-transform: 	capitalize;
}

/* list styling */
ol {
	list-style: 		decimal outside;
}
ol li {
	margin-left: 		1.05em;
}

#notes ul, #help ul, #basedon ul {
	list-style: 		square outside;
}
#notes ul li, #help ul li, #basedon ul li {
	margin-left: 		1em;
}
#notes ul li {
	margin-bottom: 		0.4em;
}

#toc ul {
	margin-top: 		1em;
	list-style: 		none;
}
#toc ul li {
	margin-left: 		0;
}
#toc li {
	margin-bottom:					1em;
	
	-webkit-column-break-inside:	avoid;				/* avoid splitting a single item into cols */
	page-break-inside:				avoid;
	break-inside:					avoid-column;
}

/* recipe thumbnails */
.recipe-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	text-decoration: none;
	color: black;
}

.recipe-thumb {
	width: 45px;
	height: 45px;
	object-fit: cover;
	border-radius: 3px;
	flex-shrink: 0;
}

.recipe-name {
	display: inline;
}

.recipe-subtitle {
	display: block;
	font-size: 0.75em;
	color: #999;
	font-weight: 400;
	margin-top: 0.2em;
}

#navigation {
	margin:       0.7em 0 2.6em 0;
	line-height:  1.7em;
	text-align:   center;
}
#navigation a {
	margin-right: 1.1em;
	color:        rgb(180,180,180);
}

/* tag filters */
#tag-filters {
	margin: 0.5em 0 1.5em 0;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.3em;
	font-size: 0.85em;
}
#tag-filters strong {
	margin-right: 0.6em;
	font-size: 0.9em;
}
.tag-btn {
	padding: 0.25em 0.5em;
	background-color: rgb(240, 240, 240);
	border: 1px solid rgb(200, 200, 200);
	border-radius: 3px;
	cursor: pointer;
	font-size: 0.85em;
	font-family: 'Fira Sans', sans-serif;
	transition: all 0.2s ease;
}
.tag-btn:hover {
	background-color: rgb(220, 220, 220);
	border-color: rgb(150, 150, 150);
}
.tag-btn.active {
	background-color: rgb(255, 255, 0);
	border-color: rgb(200, 200, 0);
	font-weight: 700;
}

:target {
	background-color: rgba(255,255,0, 0.25);
}

/* links and letter list highlight */
a, a:link, a:visited {
	color: 			 	black;
	text-decoration: 	none;
	background-color:	transparent;
}
a:active, a:hover {
	color:				black !important;
	background-color:	rgba(255,255,0, 0.5);
}

/* make sure long urls split at slashes */
#basedon a {
	white-space: 		pre-wrap; 		/* css-3 */
    white-space: 		-moz-pre-wrap; 	/* mozilla, since 1999 */
    white-space: 		-pre-wrap; 		/* opera 4-6 */
    white-space: 		-o-pre-wrap; 	/* opera 7 */
    word-wrap: 			break-word; 	/* ie 5.5+ */ 
}

/* specific sections/objects */
#wrapper {
	width:     			90%;
	max-width: 			700px;
	margin:    			1em auto 4em auto;
}
.paren {
	color: 				rgb(170,170,170);
	font-style:			italic;
}
#back {
	margin-top: 		-0.6em;
	margin-bottom: 		0.6em;
	font-style: 		normal;
}
#title {
	text-align: 		center;
	padding-bottom: 	1.3em;
	border-bottom: 		1px solid gray;
}
#footer {
	color: 				rgb(170,170,170);
	text-align: 	    center;
	width:              80%;
	margin:             0 auto;
}
#footer li {
	margin-bottom:      0.6em;
}
#footer a, #footer a:link, #footer a:visited {
	color:				rgb(180,180,180);
}

#back a:hover {
	background:         none;
}
#back svg {
	display:            none;
	width:              24px;
	color: 				rgb(200,200,200);
}
#back svg:hover {
	color:              black;
}

svg.linkIcon, #footer svg {
	width:              14px;
	margin-left:        0.3em;
}

#info li {
	margin-left: 		4em;
	text-indent: 		-2em;
	margin-bottom: 		0.6em;
}
#time, #makes {
	display: 			inline-block;
	width: 				2em;
	font-weight: 		700;
}

.externalArrow {
	height: 			0.8em;
	margin: 			0 0 -0.08em 0.1em;
}
.highlight {
	background-color: 	rgba(255,255,0, 0.5);
}
hr {
	clear: 				both;
	border:				none;
	border-top:  		1px solid gray;
}

/* larger screen: ingredients and steps as two columns */
@media screen and (min-width: 820px) {
	#wrapper {
		margin-top:	 	2em;
	}

	h1 {
		font-size:		3em;
		margin-top:     0;
	}
	h2 {
		font-size:		1.15em;
	}
	
	#toc ul, #help ul {
		column-count: 		2;
		-webkit-column-gap:	4em;
		-moz-column-gap:    4em;
		column-gap: 		4em;
	}

	#back {
		margin-bottom: 	1.3em;
	}
	#back svg {
		display:        block;
	}
	#title {
		text-align: 	left;
		padding-bottom: 0;
		border-bottom:  none;
	}
	#ingredients, #steps {
		float: 			left;
	}
	#ingredients {
		width: 			33%;
		padding-right: 	2em;
	}
	#ingredients li {
		margin-bottom: 	0.4em;
	}
	#steps {
		width: 			66%;
	}
}

/* print is not dead */
@media print {
	#title {
		text-align: 	left !important;
	}
	#back, #help {
		display: 		none;
	}
}



