.pt-sec {
	margin-top: 3.75rem;
}

.pt-sec-head {
	font-size: clamp(25px, 3.2vw, 34px);
	line-height: 1.25;
	margin: 0 0 4px;
	color: var(--pt-ink-900);
}

.pt-sec-sub {
	font-size: 17px;
	color: var(--pt-ink-600);
	margin: 0 0 22px;
	max-width: 62ch;
}

/* Shared tile ------------------------------------------------------- */

.pt-steps,
.pt-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 560px) {
	.pt-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 700px) {
	.pt-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
	.pt-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.pt-step,
.pt-card {
	margin: 0;
	border-radius: 18px;
}

/* Icon medallion ----------------------------------------------------- */

.pt-ico {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	margin-bottom: 16px;
}

.pt-ico svg {
	width: 32px;
	height: 32px;
	display: block;
}

.pt-c1 .pt-ico { background: var(--pt-c1-bg); color: var(--pt-c1); }
.pt-c2 .pt-ico { background: var(--pt-c2-bg); color: var(--pt-c2); }
.pt-c3 .pt-ico { background: var(--pt-c3-bg); color: var(--pt-c3); }
.pt-c4 .pt-ico { background: var(--pt-c4-bg); color: var(--pt-c4); }

/* Steps -------------------------------------------------------------- */

.pt-step {
	padding: 24px;
}

.pt-c1.pt-step { background: var(--pt-c1-bg); }
.pt-c2.pt-step { background: var(--pt-c2-bg); }
.pt-c3.pt-step { background: var(--pt-c3-bg); }

/* On a tinted card the medallion needs to sit above the tint, not vanish
   into it. */
.pt-step .pt-ico { background: #fff; }

.pt-step h3 {
	font-size: 20px;
	line-height: 1.35;
	margin: 0 0 6px;
	color: var(--pt-ink-900);
}

.pt-step p {
	font-size: 16.5px;
	line-height: 1.6;
	color: var(--pt-ink-600);
	margin: 0;
}

/* Link cards --------------------------------------------------------- */

.pt-card {
	background: #fff;
	border: 1px solid #E2E7EF;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.pt-card > a {
	display: block;
	padding: 24px;
	text-decoration: none;
	color: inherit;
	border-radius: inherit;
}

.pt-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(20, 33, 61, 0.09);
}

.pt-c1.pt-card:hover { border-color: var(--pt-c1); }
.pt-c2.pt-card:hover { border-color: var(--pt-c2); }
.pt-c3.pt-card:hover { border-color: var(--pt-c3); }
.pt-c4.pt-card:hover { border-color: var(--pt-c4); }

.pt-card:focus-within {
	box-shadow: 0 0 0 3px #D7E2F5;
	border-color: var(--pt-brand-500);
}

@media (prefers-reduced-motion: reduce) {
	.pt-card { transition: none; }
	.pt-card:hover { transform: none; }
}

.pt-card__t {
	display: block;
	font-size: 19px;
	font-weight: 600;
	color: var(--pt-ink-900);
	margin-bottom: 6px;
}

.pt-card__d {
	display: block;
	font-size: 16px;
	line-height: 1.55;
	color: var(--pt-ink-600);
}

/* Query Loop results ------------------------------------------------- */

.pt-loop .wp-block-post-template {
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pt-loop .wp-block-post {
	background: #fff;
	border: 1px solid #E2E7EF;
	border-radius: 18px;
	padding: 20px;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.pt-loop .wp-block-post:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(20, 33, 61, 0.09);
	border-color: var(--pt-brand-500);
}

@media (prefers-reduced-motion: reduce) {
	.pt-loop .wp-block-post { transition: none; }
	.pt-loop .wp-block-post:hover { transform: none; }
}

.pt-loop .wp-block-post-title {
	font-size: 19px;
	line-height: 1.35;
	margin: 0 0 6px;
}

.pt-loop .wp-block-post-title a {
	color: var(--pt-ink-900);
	text-decoration: none;
}

.pt-loop .wp-block-post-title a:hover { color: var(--pt-brand-700); }

.pt-loop .wp-block-post-excerpt {
	font-size: 16px;
	line-height: 1.55;
	color: var(--pt-ink-600);
	margin: 0;
}

.pt-loop .wp-block-post-excerpt__more-text { display: none; }

.pt-empty {
	background: #F5F8FD;
	border: 1px dashed #C9D6EC;
	border-radius: 18px;
	padding: 20px 22px;
	font-size: 16.5px;
	color: var(--pt-ink-600);
	margin: 0;
}

/* Disclaimer --------------------------------------------------------- */

.pt-note {
	background: var(--pt-c2-bg);
	border-radius: 18px;
	padding: 20px 24px;
	margin: 3.75rem 0 0;
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.pt-note svg {
	width: 22px;
	height: 22px;
	flex: none;
	color: var(--pt-c2);
	margin-top: 1px;
}

.pt-note p {
	margin: 0;
	font-size: 16.5px;
	line-height: 1.6;
	color: #5A3418;
}
