/**
 * Casa Terra Letter text (Figma Article body 7:6039): blocks 24px apart in a 792 column,
 * paragraphs 18/28, a serif pull quote with a 2px rule, figures (radius 12) with small
 * captions, a small note class, underlined links. A Group block with the class "ct-aside"
 * (the route facts: a small label, a two-column table, a photo) sits in a 384 column beside
 * the text on desktop.
 */

.ct-pcontent.ct-pad {
	padding-top: var(--ct-pad-t, 64px);
}

.ct-pcontent__body {
	max-width: 792px;
	font-size: var(--ct-fs-body-lg);
	line-height: var(--ct-lh-body-lg);
}

.ct-pcontent__body > * {
	margin: 0 0 24px;
}

.ct-pcontent__body > :last-child {
	margin-bottom: 0;
}

.ct-pcontent__body a {
	color: var(--ct-heading);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.ct-pcontent__body blockquote {
	margin-left: 0;
	padding: 8px 0 8px 24px;
	border-left: 2px solid var(--ct-line);
	color: var(--ct-heading);
	font-family: var(--ct-serif);
	font-size: var(--ct-fs-h3);
	line-height: var(--ct-lh-h3);
}

.ct-pcontent__body blockquote p {
	margin: 0;
}

.ct-pcontent__body figure {
	margin-right: 0;
	margin-left: 0;
}

.ct-pcontent__body img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--ct-radius);
}

.ct-pcontent__body figcaption,
.ct-pcontent__body .ct-note,
.ct-pcontent__body .has-small-font-size {
	color: var(--ct-muted);
	font-size: var(--ct-fs-small);
	line-height: var(--ct-lh-small);
}

.ct-pcontent__body figcaption {
	margin-top: 8px;
}

/* Route facts: label, two-column table, photo. */
.ct-pcontent__body .ct-aside > * {
	margin: 0 0 16px;
}

.ct-pcontent__body .ct-aside > :last-child {
	margin-bottom: 0;
}

.ct-pcontent__body .ct-aside .ct-label {
	color: var(--ct-muted);
	text-transform: none;
}

.ct-pcontent__body table {
	width: 100%;
	border-collapse: collapse;
}

.ct-pcontent__body td,
.ct-pcontent__body th {
	padding: 10px 16px 10px 0;
	border-bottom: 1px solid var(--ct-line);
	text-align: left;
	vertical-align: middle;
	font-size: var(--ct-fs-body);
	line-height: var(--ct-lh-body);
}

.ct-pcontent__body td:first-child,
.ct-pcontent__body th:first-child {
	width: 120px;
	color: var(--ct-muted);
	font-size: var(--ct-fs-small);
	line-height: var(--ct-lh-small);
	font-weight: 400;
}

/* Desktop: the aside beside the text. */
@media (min-width: 1025px) {
	.ct-pcontent__body--aside {
		display: grid;
		grid-template-columns: minmax(0, 792fr) minmax(0, 384fr);
		column-gap: 24px;
		max-width: none;
	}

	.ct-pcontent__body--aside > * {
		grid-column: 1;
	}

	.ct-pcontent__body--aside > .ct-aside {
		grid-column: 2;
		grid-row: 1 / span 40;
		align-self: start;
	}

	.ct-pcontent__body--aside > .ct-aside img {
		border-radius: var(--ct-radius-panel);
	}
}

@media (max-width: 1024px) {
	.ct-pcontent.ct-pad {
		padding-top: var(--ct-pad-t, 40px);
	}

	.ct-pcontent__body {
		max-width: none;
	}

	/* The aside photo is portrait beside the text; landscape once it joins the column. */
	.ct-pcontent__body .ct-aside img {
		aspect-ratio: 5 / 3;
		object-fit: cover;
	}

	.ct-pcontent__body td:first-child,
	.ct-pcontent__body th:first-child {
		width: 104px;
	}
}

@media (max-width: 767px) {
	.ct-pcontent__body blockquote {
		padding-left: 16px;
	}
}
