body {
	margin: 0;
	font: 120%/1.5 Baskerville, Adobe Caslon Pro, serif;
}

h1, h2, h3, h4, h5, h6 {
	font-family: Helvetica Neue, sans-serif;
	line-height: 1.2;
	font-weight: 300;
}

h3 {
	font-size: 200%;
	margin: .5em 0;
}

a {
	color: inherit;
	text-decoration: none
}

a:hover {
	text-decoration: underline;
}

select, input:where([type="text"], [type="number"]) {
	border: 1px solid hsla(0 0% 0% / .1);
	font: inherit;
	background: hsla(0,0%,100%,.6);
}

p:first-of-type {
	margin-top: 0;
}

p:last-of-type {
	margin-bottom: 0;
}

body > header {
	padding: 0;
	padding-top: 1.5em;
	background: hsl(25, 100%, 50%);
	color: white;
	overflow: hidden
}

body > header h1 {
	margin: 0;
	padding: 0 .5em;
	line-height: 1;
	font-weight: 600;
	font-style: italic;
}

body > header h1 img {
	display: block;
	margin: auto;
}

body > header h1 img[src*=logo] {
	width: 3em;
}

body > header h1 img[src*=wordmark] {
	height: 2.8em;
}

body > header p {
	margin: 0;
	text-align: center;
	font-family: Helvetica Neue, sans-serif;
	font-weight: 900;
	color: black;
}

body > header nav {
	margin: auto;
	margin-top: .5em;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	font-family: Helvetica Neue, sans-serif;
	font-weight: bold;
	background: #40060e;
	--secondary-color: hsl(25, 100%, 50%);
}

body > header nav a {
	padding: .5em;
	padding-bottom: .1em;
	text-decoration: none;
	border-bottom: .4em solid transparent;
}

body > header nav a:hover {
	border-bottom-color: var(--secondary-color);
	text-decoration: none;
}

body > header nav a sup {
	display: inline-block;
	vertical-align: .5em;
	font-size: 60%;
	color: var(--secondary-color);
}

@media (max-width: 600px) {

	body > header {
		position: relative;
		font-size: 90%;
	}

	body > header h1,
		body > header p,
		body > header nav {
		padding-left: 7rem;
	}

	body > header p {
		text-align: left;
	}

	body > header h1 img {
		margin: 0;
	}

	body > header h1 img[src*=logo] {
		position: absolute;
		top: .5em;
		bottom: 0;
		left: .5em;
		width: auto;
		height: calc(100% - .8em);
	}

	body > header nav {
		-webkit-box-pack: start;
		    -ms-flex-pack: start;
		        justify-content: flex-start;
	}
}

h3 {
	color: hsl(25, 100%, 50%);
}

[id="filters"] {
	display: grid;
	grid-template-rows: auto auto;
	padding: 1em 0;
	margin-top: -1em;
	background: hsl(25, 100%, 90%);
	-webkit-box-shadow: 50vw 0 hsl(25, 100%, 90%), -50vw 0 hsl(25, 100%, 90%);
	        box-shadow: 50vw 0 hsl(25, 100%, 90%), -50vw 0 hsl(25, 100%, 90%)
}

[id="filters"] select[property="countryFilter"] {
	background: var(--flag) no-repeat .3em 50% hsla(0,0%,100%,.6);
	text-indent: 1em;
}

[id="filters"] input[type=search] {
	grid-row: 1;
	grid-column-end: span 4;
	width: 100%;
	padding: .1em .5em .1em 1.4em;
	border: none;
	border-radius: 1em;
	margin: 0 0 .5em -.2em;
	background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">\
			<text y="1em" font-size="90">🔍</text>\
			</svg>') no-repeat .25em 50% / auto calc(100% - .3em), hsl(25, 100%, 96%);
	background-blend-mode: luminosity, normal;
	font-size: 200%;
}

[id="filters"] input[type=search]:focus {
	outline: none;
	background-color: white;
}

[id="filters"] input[type=search]::-webkit-input-placeholder {
	color: hsl(25, 100%, 50%);
	font-weight: 300;
}

[id="filters"] input[type=search]::-ms-input-placeholder {
	color: hsl(25, 100%, 50%);
	font-weight: 300;
}

[id="filters"] input[type=search]::placeholder {
	color: hsl(25, 100%, 50%);
	font-weight: 300;
}

[id="filters"] > label {
	grid-row: 2;
}

#award-filter select {
	display: block;
}

#award-filter option {
	background: var(--icon) right / auto .8em no-repeat;
	padding-right: 1.4em;
}

button.clear[mv-action] {
	background: hsl(0 0% 100% / .2);
	border: none;
	color: black;
	-webkit-filter: invert() contrast(2) brightness(1.5);
	        filter: invert() contrast(2) brightness(1.5);
	border-radius: 50%;
	cursor: pointer;
	width: 1.7em;
	height: 1.7em;
	line-height: 1.45;
	padding: .2em 0 0;
	font-size: .6em
}

button.clear[mv-action]:hover {
	background: hsl(0 0% 100% / .3);
}

body > main {
	margin: 1em 2em;
	padding: 0 calc(50% - 60em/2 - 1em)
}

body > main h2 {
	margin: 0;
	font-size: 250%;
	color: hsl(25, 100%, 50%);
}

body > main p[property=description] {
	margin-top: 0;
}

body > main .mv-login {
	position: absolute;
	top: .5em;
	right: .5em;
	padding: .3em .5em;
	border-radius: .3em;
	background: rgba(0,0,0,.4);
	color: white;
	font: bold 70% Helvetica Neue, sans-serif;
}

body > main .mv-login:hover {
	background: rgba(0,0,0,.6);
}

ol {
	padding: 0;
}

[mv-app]:not([mv-mode=edit]) .hide-on-read {
	display: none;
}

[property="recipe"] {
	margin-bottom: 1em
}

[property="recipe"] > .content {
	counter-reset: step;
}

@media (min-width: 800px) {

	[property="recipe"] > .content {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
	}

	[property="recipe"] .directions {
		margin-left: 3em;
	}
}

[property="recipe"] > footer {
	/* Forked */
	padding: .4em .8em .6em;
	margin-top: 1em;
	color: white;
	font-style: italic;
	font-size: 120%;
	--fork: url(logo.svg) right / contain no-repeat content-box;
	background: var(--fork) hsl(190, 67%, 42%);
}

@supports (background-blend-mode: inherit) {

	[property="recipe"] > footer {
		background:  var(--fork), var(--image) center / cover hsl(190, 67%, 42%);
		background-blend-mode: normal, multiply;
	}
}

[property="recipe"] > footer > span {
	font: bold 60%/1 Helvetica Neue, sans-serif;
}

.recipe-card {
	position: relative;
	overflow: hidden;
	text-align: center;
	color: white;
	padding: 2em
}

.recipe-card::before {
	content: "";
	position: absolute;
	top: -1em;
	right: -1em;
	bottom: -1em;
	left: -1em;
	z-index: -1;
	background: var(--image) center / cover hsl(190, 67%, 42%);
	-webkit-filter: blur(1em);
	        filter: blur(1em);
}

.recipe-card h2 {
	letter-spacing: -.02em;
	font-weight: bold;
	margin-bottom: .2em;
	color: white;
}

.recipe-card img {
	width: 10em;
	height: 10em;
	-o-object-fit: cover;
	   object-fit: cover;
	border-radius: 50%;
	border: .5em solid hsla(0,0%,100%,.3);
	margin: 0 0 1em;
}

.recipe-card img[mv-mode=edit] {
	background: hsl(25, 100%, 50%);
	background-clip: padding-box;
}

.recipe-card img[mv-mode=edit][src=""] {
	content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 100 100">\
		<rect width="100%" height="100%" fill="hsl(25, 100%, 50%)" />\
		<text x="19" y="1.25em" font-size="60">🍽</text>\
	</svg>');
	content: url("logo.svg");
	-o-object-fit: scale-down;
	   object-fit: scale-down;
}

.recipe-card span[property=tag] {
	padding: .3em .5em;
	border-radius: .3em;
	margin: 0 .2em;
	background: white;
	color: black;
	mix-blend-mode: screen;
	font: bold 80%/1 Helvetica Neue, sans-serif;
	text-transform: uppercase;
}

.recipe-card .mv-empty[mv-mode="edit"] {
	opacity: 1;
}

.ingredients {
	min-width: 15em
}

.ingredients ol {
	list-style: none;
}

.ingredients ol > li {
	margin-bottom: .5em;
}

.ingredients ol input[type=checkbox] {
	position: absolute;
	margin-left: -1.8em;
	margin-top: .5em;
}

.ingredients ol input[type=checkbox]:checked ~ span {
	text-decoration: line-through;
}

.ingredients h4 {
	font-weight: bold;
}

	[property="ingredient"] [property="preparation"] {
	opacity: .5;
	font-style: italic;
}

.directions {
	-webkit-box-flex: 1;
	    -ms-flex: 1;
	        flex: 1;
}

	[property="step"][mv-list-item] {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		position: relative;
		margin-bottom: .5em;
		counter-increment: step
	}

	[property="step"][mv-list-item]::before {
	content: counter(step);
	position: absolute;
	right: 100%;
	margin-right: .5em;
	color: hsl(190, 67%, 42%);
	font: bold 100% Helvetica Neue, sans-serif;
}

	[property="step"][mv-list-item] > div {
	-webkit-box-flex: 1;
	    -ms-flex: 1;
	        flex: 1;
}

	[property="step"][mv-list-item] p {
	margin: 0;
}

	[property="step"][mv-list-item] img {
	max-width: 100%;
}

@media (min-width: 700px) {

	.index [mv-app="recipes"] {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		    -ms-flex-flow: row wrap;
		        flex-flow: row wrap;
		-webkit-box-pack: justify;
		    -ms-flex-pack: justify;
		        justify-content: space-between;
	}

	.index [mv-app="recipes"] article[property="recipe"],
			.index [mv-app="recipes"] .mv-add-recipe {
		width: calc(50% - .5em);
	}

	.index [mv-app="recipes"] .mv-bar {
		width: 100%;
	}
}

.index [property=recipe] {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	font-size: 80%;
}

.index [property=recipe] h2 {
	font-size: 180%;
}

.mv-add-recipe {
	border: 2px dashed;
	background: transparent;
	font: bold 150% Helvetica Neue, sans-serif;
	margin-bottom: .66em;
	color: hsl(190, 67%, 42%);
}

[property="restaurant"][mv-list-item] {
	position: relative;
	border: 1px solid rgba(0,0,0,.2);
	margin: 1em 0
}

[property="restaurant"][mv-list-item] > header {
	padding: 1em;
	background: hsl(220, 10%, 95%);
}

[property="restaurant"][mv-list-item] > header > * {
	margin: 0;
}

[property="restaurant"][mv-list-item] > header h2 {
	font: bold 300%/1 Helvetica Neue, sans-serif;
	letter-spacing: -.05em;
	color: hsl(25, 100%, 50%);
}

[property="restaurant"][mv-list-item] > header [property=rating] {
	position: absolute;
	top: .5em;
	right: .5em;
	font-size: 150%;
	min-width: 2em;
	line-height: 2;
}

[property="restaurant"][mv-list-item] > header .avatar {
	width: 8em;
	height: 8em;
	-o-object-fit: cover;
	   object-fit: cover;
	margin-right: 1em;
	border-radius: 50%;
	-webkit-box-shadow: 0 0 0 .3em rgba(0,0,0,.15);
	        box-shadow: 0 0 0 .3em rgba(0,0,0,.15);
}

@media (min-width: 650px) {

	[property="restaurant"][mv-list-item] > header {
		padding-right: 4em;
		padding-left: 10em;
	}

	[property="restaurant"][mv-list-item] > header .avatar {
		position: absolute;
		top: 1em;
		left: 1em;
	}
}

[property="restaurant"][mv-list-item] > header .stats {
	margin: 0;
	font-style: italic;
	opacity: .6;
}

[property="restaurant"][mv-list-item] .location::before {
	content: var(--flag);
}

[property="restaurant"][mv-list-item] .awards {
	display: inline-block;
}

[property="restaurant"][mv-list-item] .awards img {
	height: 1.1ex;
}

.visits {
}

[property="visit"] {
	padding: 1em


}

[property="visit"] > header {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
}

[property="visit"] > header h3 {
	-webkit-box-flex: 1;
	    -ms-flex: 1;
	        flex: 1;
}

[property="visit"] > header [property=rating] {
}

.button {
	padding: .5em .5em;
	background: black;
	color: white;
	border-radius: .2em;
	font: bold 1.2rem/1 Helvetica Neue, sans-serif;
	text-transform: uppercase
}

.button:hover {
	text-decoration: none;
	background: hsl(190, 67%, 42%);
}

.close {
	position: fixed;
	bottom: 1em;
	right: 1em;
	z-index: 2
}

.close::after {
	content: ' Close';
}

.close:hover {
	background: #c00;
	text-decoration: none;
}

.previous,
.next {
	position: absolute;
	bottom: 1em;
}

.next {
	right: 7em
}

.next::after {
	content: " ▸";
}

.previous {
	right: 12em
}

.previous::before {
	content: "◂ ";
}

[mv-app]:not(.mv-target-within) .close {
	display: none;
}

.dishes {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
}

[property="dish"] {
	position: relative;
	margin: 1px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex
}

[property="dish"] img {
	display: block;
	--size: 11em;
	width: var(--size);
	height: var(--size);
	-o-object-fit: cover;
	   object-fit: cover;
	background: hsl(220, 10%, 95%);
}

.index [property="dish"] img {
	--size: 140px;
}

@media (max-width: 550px) {

	[property="dish"] img {
		--size: 140px;
	}
}

[property="dish"] [property=rating] {
	position: absolute;
	right: .5em;
	bottom: .5em;
}

[property="dish"] [property=rating] + [property=rating] {
	right: 2.8em;
}

[property="dish"] {

	[property=comment] {
		font-style: italic;
	}
}

[property="dish"]:not(:target):not(.mv-target-within) .content,
		[property="dish"]:not(:target):not(.mv-target-within) .next,
		[property="dish"]:not(:target):not(.mv-target-within) .previous {
	display: none;
}

[property="dish"]:target,
	[property="dish"].mv-target-within {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
	padding: 1em;
	overflow: auto;
	background: rgba(0,0,0,.85);
	-webkit-backdrop-filter: blur(10px);
	        backdrop-filter: blur(10px);
	color: white;
	font-size: 150%;
}

@media (max-aspect-ratio: 1/1) {

	[property="dish"]:target,
	[property="dish"].mv-target-within {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-flow: column;
		        flex-flow: column;
	}
}

[property="dish"]:target .content, [property="dish"].mv-target-within .content {
	overflow: auto;
}

[property="dish"]:target .content h4, [property="dish"].mv-target-within .content h4 {
	margin: 0;
}

@media (min-aspect-ratio: 1/1) {

	[property="dish"]:target .content, [property="dish"].mv-target-within .content {
		max-width: 30vw;
	}
}

@media (max-aspect-ratio: 1/1) {

	[property="dish"]:target .content, [property="dish"].mv-target-within .content {
		margin-top: .5em;
	}
}

[property="dish"]:target [property=rating], [property="dish"].mv-target-within [property=rating] {
	top: 1em;
	left: 1em;
	font-size: 150%;
	right: auto;
	bottom: auto;
}

[property="dish"]:target [property=rating] + [property=rating], [property="dish"].mv-target-within [property=rating] + [property=rating] {
	top: 3.5em;
}

[property="dish"]:target img, [property="dish"].mv-target-within img {
	--size: calc(100vmin - 2em);
	width: auto;
	min-width: var(--size);
	margin-right: 1em;
}

[property=rating] {
	display: inline-block;
	background: hsl(190, 67%, 42%);
	color: white;
	padding: .25em;
	min-width: 1.5em;
	border-radius: .3em;
	text-align: center;
	font: bold 100%/1.5 Helvetica Neue, sans-serif
}

[property=rating][data-class="10"] {
	--stripe: .2em;
	background: repeating-radial-gradient(hsl(330, 100%, 50%) 0, transparent var(--stripe),
		 hsl(330, 100%, 50%) calc(2 * var(--stripe))) hsl(330, 100%, 70%);
}

[property=rating][data-class="9"] {
	background: hsl(150, 100%, 35%);
}

[property=rating][data-class="8"] {
	background: hsl(100, 60%, 50%);
}

[property=rating][data-class="7"] {
	background: hsl(70, 70%, 50%);
}

[property=rating][data-class="6"] {
	background: hsl(50, 100%, 50%);
}

[property=rating][data-class="5"] {
	background: hsl(30, 100%, 50%);
}

[property=rating][data-class="4"],
	[property=rating][data-class="3"],
	[property=rating][data-class="2"],
	[property=rating][data-class="1"] {
	background: hsl(10, 100%, 45%);
}

[property=rating][data-class="0"] {
	display: none;
}

p.result-count {
	margin: 1em 0;
	font-style: italic;
	text-align: right;
}

.permanently-closed {
	display: inline-block;
	vertical-align: middle;
	font-size: 1rem;
	background: hsl(10, 100%, 45%);
	color: white;
	padding: .4em .5em .5em;
	border-radius: .2em;
	text-transform: uppercase;
	letter-spacing: normal;
	white-space: nowrap;
}