div { background-color: aquamarine; }

@media (min-width: 300px) and (max-width: 500px) {
	div:first-child { background-color: orange; }
}

@media (min-width: 300px) and (min-height: 300px) {
	div:last-child { background-color: gold; }
}
body {
	font-family: sans-serif;
	padding: 20px;
}

div { padding: 10px; }

div:not(:first-child) { margin-top: 10px; }
<!DOCTYPE html>
<html>
	<head>
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<link href="/assets/styles/reset.css" rel="stylesheet">
		<link href="setup.css" rel="stylesheet">
		<link href="style.css" rel="stylesheet">
	</head>
	<body>
		<div>
			<p>This element is responsive. I’ll add some text here so we have something to look at and so that it wraps, but the text itself isn’t important, at the moment.</p>
		</div>
		<div>
			<p>This is another responsive element, with some more text in it. Again the text doesn’t really matter, I just want a bit of stuff in here. A few lines, is all.</p>
		</div>
	</body>
</html>