*, *::before, *::after { box-sizing: border-box; }

html, body { margin: 0; }

body {
	background: #fff;
	color: #3f3f3f;
	font: 400 15px/30px "PT Sans", sans-serif;
}

/* Photo panel: fixed on the left on wide screens, banner on top on narrow ones */
.photo {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: 44.5%;
	background: #888 url("../img/background.jpg") 63% 50% / cover no-repeat;
}

.content {
	margin-left: 44.5%;
	max-width: 900px;
	padding: 36px 80px 60px 66px;
}

a { color: #2a2a2a; }

.social {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.social a { color: #999; line-height: 0; }
.social a:hover, .social a:focus { color: #3f3f3f; }
.social svg { width: 20px; height: 20px; fill: currentColor; }

h1, .lead {
	font-family: "Montserrat", sans-serif;
	font-size: 23px;
	line-height: 1.05;
	color: #2a2a2a;
	margin: 14px 0 26px;
}

h1 { font-weight: 700; }

.lead {
	font-weight: 400;
	color: #000;
}

p { margin: 0 0 22px; }

ul { margin: 0 0 22px; padding-left: 41px; }
li { line-height: 26px; margin-bottom: 2px; }

hr {
	width: 70%;
	margin: 40px auto 24px;
	border: 0;
	border-top: 1px solid #ddd;
}

.columns {
	display: grid;
	grid-template-columns: 41% 1fr;
	gap: 25px;
	margin-bottom: 20px;
}

blockquote {
	margin: 0;
	padding: 12px 15px 12px 21px;
	background: #ccc;
	color: #333;
	font-size: 12px;
	line-height: 20px;
	align-self: start;
}

blockquote strong { display: block; font-size: 14px; }
blockquote em { display: block; }

.columns p { margin-bottom: 20px; }

.signoff { font-weight: 700; color: #222; }

@media (min-width: 1100px) {
	h1, .lead { font-size: 29px; }
}

@media (max-width: 767px) {
	.photo {
		position: static;
		width: 100%;
		height: 45vh;
	}

	.content {
		margin-left: 0;
		max-width: none;
		padding: 20px 16px 40px;
	}

	.columns { grid-template-columns: 1fr; }
}
