<!doctype html>
<html lang="en">
	<head>
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<link href="/assets/reset.css" rel="stylesheet">
		<link href="setup.css" rel="stylesheet">
		<link href="style.css" rel="stylesheet">
	</head>
	<body>
		<section>
			<h2>“Big quotes”</h2>
			<p>This is just another paragraph again, so we have some other text to align to.</p>
		</section>
		<section>
			<h2>“Big quotes”</h2>
			<p>This is just another paragraph again, so we have some other text to align to.</p>
		</section>
		<section>
			<h2>Big quotes</h2>
			<p>This is just another paragraph again, so we have some other text to align to.</p>
		</section>
	</body>
</html>

		
index.html
			body {
	--base: 1rem;

	display: grid;
	font-family: 'Helvetica', sans-serif;
	gap: calc(2 * var(--base));
	padding: var(--base);
}

section {
	background-color: gold;
	padding: calc(var(--base) / 2);
}

h2 { font-size: calc(var(--base) * 3); }

		
setup.css
			section { padding: calc(3 * var(--base)); }

p { margin-block-start: var(--base); }

section:nth-child(2) h2::first-letter { /* Target via pseudo-element. */
	color: tomato; /* There is no `last-letter`, unforunately. */
	margin-inline-start: -0.4em; /* Adjusted to the width of the `“` */
}

section:nth-child(3) h2 {
	/* Nested `&` selector again for less repetition. */
	&::before {
		content: '“'; /* Add the quotes themselves via pseudo-elements. */
		margin-inline-start: -0.5em; /* Manually adjust this. */
	}

	&::after { content: '”'; }

	&::before,
	&::after {
		color: tomato;
		font-family: serif; /* You have much more control this way! */
	}
}

		
style.css