.wp-site-blocks > .cheerer-page,
.wp-site-blocks > .cheerer-page + .wp-block-template-part {
	margin-block-start: 0;
}

.cheerer-page .is-layout-flow > * + *,
.cheerer-page .is-layout-constrained > * + *,
.cheerer-page-hero__layout > * + *,
.cheerer-chapter__body > * + *,
.cheerer-chapter__items > * + *,
.cheerer-contact__layout > * + *,
.cheerer-contact__facts > * + * {
	margin-block-start: 0;
}

.cheerer-page :is(h1, h2, h3) {
	font-feature-settings: "palt";
	word-break: keep-all;
}

.cheerer-page .wp-element-button {
	border-radius: 2px;
	font-size: 0.875rem;
	letter-spacing: 0.04em;
	min-height: 44px;
	padding: 0.65rem 1.1rem;
}

/* One header for 案例, 服務, 關於趣兒 and 聯絡我們: Chinese title with the English
   page name beneath it, one sentence beside it, closed by a hairline. The
   element name is in the selectors so the rules also win outside .cheerer-page,
   which is what the about page uses. */
.cheerer-page-hero {
	padding-top: var(--wp--preset--spacing--l);
	padding-bottom: var(--wp--preset--spacing--3-xl);
}

.cheerer-page-hero__layout {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--xl);
}

h1.cheerer-page-hero__title,
.cheerer-prose > h1.cheerer-page-hero__title {
	font-size: clamp(2rem, 6vw, 2.75rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0;
}

h1.cheerer-page-hero__title::before,
.cheerer-prose > h1.cheerer-page-hero__title::before {
	background-color: var(--wp--preset--color--primary);
	content: "";
	display: block;
	height: 2px;
	margin-bottom: 1.15rem;
	width: 1.75rem;
}

.cheerer-page-hero__intro > h1.cheerer-page-hero__title {
	margin-block-end: 0.85rem;
}

.cheerer-page-hero__label {
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	margin: 0;
}

.cheerer-page-hero__lead {
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--large);
	line-break: strict;
	line-height: 1.85;
	margin: 0;
	max-width: 22em;
	word-break: keep-all;
}

.cheerer-page-hero__mark {
	color: var(--wp--preset--color--warm);
	font-weight: 500;
}

/* The closing hairline sits on the section that follows the header */
.cheerer-page-hero + .cheerer-chapter,
.cheerer-page-hero + .cheerer-contact,
.cheerer-page-hero + .cheerer-philosophy,
.cheerer-page-hero + .cheerer-work__list,
.cheerer-page-hero + .cheerer-notes__list {
	border-top: 1px solid var(--wp--preset--color--border);
}

.cheerer-chapter {
	display: grid;
	gap: 0.75rem 1.5rem;
	padding-top: var(--wp--preset--spacing--2-xl);
	padding-bottom: var(--wp--preset--spacing--2-xl);
	scroll-margin-top: 6.5rem;
}

.cheerer-chapter > .cheerer-chapter__index,
.cheerer-chapter > .cheerer-chapter__body {
	margin-left: 0;
	margin-right: 0;
	max-width: none;
	width: 100%;
}

.cheerer-chapter__index {
	color: var(--wp--preset--color--primary);
	font-size: 0.75rem;
	font-variant-numeric: tabular-nums;
	font-weight: 500;
	letter-spacing: 0.14em;
	margin: 0;
}

/* Kept clearly below the page title so a chapter never competes with the H1 */
.cheerer-chapter__body > h2.cheerer-chapter__title {
	font-size: clamp(1.6rem, 3.1vw, 2.125rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.3;
	margin: 0;
	margin-block-end: 0.4rem;
}

/* The English service name annotates the Chinese title, so it sits under it and
   stays quiet */
.cheerer-chapter__body > .cheerer-chapter__en {
	color: var(--wp--preset--color--muted);
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	margin: 0 0 var(--wp--preset--spacing--s);
}

/* The chapter group carries blockGap 0, which makes WordPress zero the margins
   of every direct child. Spacing inside a chapter therefore has to be set on
   the child itself, the same way the title above already does. */
.cheerer-chapter__body > .cheerer-chapter__problem {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.75;
	margin: 0 0 1.75rem;
	max-width: 32em;
	word-break: keep-all;
}

.cheerer-chapter__body > .cheerer-chapter__purpose {
	color: var(--wp--preset--color--text-secondary);
	line-height: 1.85;
	margin: 0 0 var(--wp--preset--spacing--l);
	max-width: 36em;
	word-break: keep-all;
}

.cheerer-chapter__body > .cheerer-chapter__items {
	border-top: 1px solid var(--wp--preset--color--border);
	margin-bottom: 0;
}

.cheerer-chapter__item {
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin: 0;
	padding: 0.85rem 0;
	word-break: keep-all;
}

.cheerer-chapter__item span {
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}

/* The button closes the chapter, so it needs to sit clear of the list rule
   above it rather than reading as the last row of the list */
.cheerer-chapter__body > .cheerer-chapter__cta {
	margin-top: var(--wp--preset--spacing--l);
}

.cheerer-contact {
	padding-top: var(--wp--preset--spacing--2-xl);
	padding-bottom: var(--wp--preset--spacing--section);
}

.cheerer-contact__layout {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--xl);
}

.cheerer-contact__facts {
	background-color: var(--wp--preset--color--background-dark);
	color: var(--wp--preset--color--text-on-dark);
	order: -1;
	padding: 1.1rem 1.2rem 1.2rem;
}

.cheerer-contact__facts > .cheerer-contact__kicker {
	color: var(--wp--custom--color--text-on-dark-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	margin: 0 0 1.15rem;
}

/* Each label belongs to the value under it, so it needs clear space above and
   almost none below. The parent is in the selector because the card sets
   blockGap 0, which would otherwise zero both margins. */
.cheerer-contact__facts > .cheerer-contact__label {
	color: var(--wp--custom--color--text-on-dark-muted);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	margin: var(--wp--preset--spacing--s) 0 0.15rem;
}

.cheerer-contact__facts > .cheerer-contact__label:first-of-type {
	margin-top: 0.85rem;
}

.cheerer-contact__facts p {
	margin: 0;
}

.cheerer-contact__facts a {
	align-items: center;
	color: var(--wp--preset--color--text-on-dark);
	display: inline-flex;
	font-size: 1.05rem;
	min-height: 2.25rem;
	text-decoration: none;
}

.cheerer-contact__facts a:hover {
	color: var(--wp--preset--color--accent);
}

.cheerer-contact__address {
	color: var(--wp--custom--color--text-on-dark-muted);
	line-height: 1.7;
}

.cheerer-contact__facts > .cheerer-contact__social {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	margin-top: var(--wp--preset--spacing--m);
	padding-top: 0.75rem;
}

.cheerer-contact__social a {
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	margin-right: 1.15rem;
}

#cheerer-form {
	scroll-margin-top: 6.5rem;
}

.cheerer-form {
	max-width: 40rem;
}

.cheerer-form input:not([type="radio"]):not([type="hidden"]):not([type="checkbox"]),
.cheerer-form textarea {
	background-color: var(--wp--preset--color--background);
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 2px;
	box-sizing: border-box;
	color: var(--wp--preset--color--text);
	font-family: inherit;
	font-size: 0.9375rem;
	line-height: 1.4;
	min-height: 44px;
	padding: 0.4rem 0.7rem;
	width: 100%;
}

.cheerer-form textarea {
	min-height: 5.5rem;
	resize: vertical;
}

.cheerer-form__alert {
	background-color: var(--wp--preset--color--background-muted);
	border-left: 2px solid var(--wp--preset--color--warm);
	color: var(--wp--preset--color--text);
	margin: 0 0 1.5rem;
	padding: 0.9rem 1rem;
}

.cheerer-form__alert:focus {
	outline: 3px solid var(--wp--custom--color--focus-ring);
	outline-offset: 3px;
}

/* The closing rule sits on the fieldset so it stays full width whatever the
   option count and column count are */
.cheerer-form__needs {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin: 0 0 1.75rem;
	min-width: 0;
	padding: 0;
}

.cheerer-form__needs legend {
	font-size: 0.875rem;
	font-weight: 500;
	margin-bottom: 0.35rem;
	padding: 0;
}

.cheerer-form__choice {
	align-items: center;
	border-top: 1px solid var(--wp--preset--color--border);
	cursor: pointer;
	display: flex;
	font-weight: 400;
	gap: 0.75rem;
	margin: 0;
	min-height: 44px;
	padding: 0.35rem 0;
}

.cheerer-form__choice:hover {
	color: var(--wp--preset--color--primary);
}

.cheerer-form__choice:has(:focus-visible) {
	outline: 3px solid var(--wp--custom--color--focus-ring);
	outline-offset: 3px;
}

.cheerer-form__choice:has(:checked) {
	font-weight: 500;
}

/* The whole label row is the click target, so the control itself only needs
   to stay visually legible */
.cheerer-form__choice input {
	accent-color: var(--wp--preset--color--primary);
	flex: 0 0 auto;
	height: 1.25rem;
	margin: 0;
	min-height: 0;
	width: 1.25rem;
}

.cheerer-form__choice input:focus {
	outline: none;
}

.cheerer-form__field {
	margin: 0 0 1.15rem;
}

.cheerer-form__row,
.cheerer-form__foot {
	display: flex;
	flex-direction: column;
}

.cheerer-form label {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
	margin-bottom: 0.45rem;
}

.cheerer-form .cheerer-form__req {
	color: var(--wp--preset--color--primary);
}

.cheerer-form input:not([type="radio"]):not([type="hidden"]):focus-visible,
.cheerer-form textarea:focus-visible {
	border-color: var(--wp--preset--color--primary);
	outline: 3px solid var(--wp--custom--color--focus-ring);
	outline-offset: 3px;
}

.cheerer-form__hp {
	left: -9999px;
	position: absolute;
}

.cheerer-form__foot {
	border-top: 1px solid var(--wp--preset--color--border);
	margin-top: 0.5rem;
	padding-top: 1.5rem;
}

.cheerer-form__submit {
	margin: 0;
}

.cheerer-form .wp-element-button,
.cheerer-form button[type="submit"] {
	background-color: var(--wp--preset--color--primary);
	border: 0;
	border-radius: 2px;
	color: var(--wp--preset--color--text-on-dark);
	cursor: pointer;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	min-height: 44px;
	padding: 0.65rem 1.1rem;
}

.cheerer-form button[type="submit"]:hover {
	background-color: var(--wp--preset--color--secondary);
}

.cheerer-form button[type="submit"][aria-busy="true"],
.cheerer-form button[type="submit"]:disabled {
	background-color: var(--wp--preset--color--secondary);
	cursor: wait;
	opacity: 0.72;
}

.cheerer-notice,
.cheerer-notice-page {
	padding-top: var(--wp--preset--spacing--l);
	padding-bottom: var(--wp--preset--spacing--section-large);
}

.cheerer-notice .cheerer-page-hero__lead,
.cheerer-notice-page .cheerer-page-hero__lead {
	margin-top: 1.25rem;
	margin-bottom: 1.75rem;
}

.cheerer-notice__cluster {
	column-gap: var(--wp--preset--spacing--l);
	row-gap: 0;
}

/* The section carries the hairline that closes the page header, so the space
   below that line belongs here rather than to the first row */
.cheerer-work__list {
	padding-top: var(--wp--preset--spacing--2-xl);
	padding-bottom: var(--wp--preset--spacing--section-large);
}

.cheerer-work__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Case index rows: a hairline above each row, facts in a narrow rail and the
   story on the right. Works whether or not a case has a cover image. */
.cheerer-work__items .wp-block-post {
	border-top: 1px solid var(--wp--preset--color--border);
	margin: 0;
	padding: var(--wp--preset--spacing--l) 0;
}

/* The section already carries the line that closes the page header, and its
   padding provides the space under it */
.cheerer-work__items .wp-block-post:first-child {
	border-top: 0;
	padding-top: 0;
}

.cheerer-work__items .wp-block-post:last-child {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

/* Narrow screens read the facts as one line; the rail becomes a column beside
   the copy once there is room */
.cheerer-work-card__rail {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.7rem;
	margin-bottom: 0.85rem;
}

.cheerer-work-card .wp-block-post-title {
	font-size: clamp(1.5rem, 3vw, 2.15rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.25;
	margin: 0 0 0.6rem;
}

.cheerer-work-card .wp-block-post-title a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.cheerer-work-card .wp-block-post-title a:hover,
.cheerer-work-card:hover .wp-block-post-title a {
	color: var(--wp--preset--color--primary);
}

.cheerer-work-card__excerpt {
	margin: 0 0 1rem;
	max-width: 40em;
}

.cheerer-work-card__excerpt p {
	color: var(--wp--preset--color--text-secondary);
	margin: 0;
}

a.cheerer-work-card__more {
	align-items: center;
	color: var(--wp--preset--color--primary);
	display: inline-flex;
	font-size: 0.9375rem;
	font-weight: 500;
	gap: 0.4em;
	min-height: 44px;
	text-decoration: none;
}

a.cheerer-work-card__more::after {
	content: "→";
	transition: transform var(--wp--custom--transition--duration) var(--wp--custom--transition--easing);
}

.cheerer-work-card:hover a.cheerer-work-card__more::after {
	transform: translateX(4px);
}

.cheerer-work-card__media {
	margin: 1.35rem 0 0;
}

.cheerer-work-card__media img {
	width: 100%;
}

.cheerer-work-meta {
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
	letter-spacing: 0.04em;
	margin: 0;
}

/* A case with no client, services or year leaves its bound paragraph empty */
.cheerer-work-card__rail .cheerer-work-meta:empty {
	display: none;
}

.cheerer-work-card__rail .cheerer-work-meta + .cheerer-work-meta::before {
	color: var(--wp--preset--color--border-strong);
	content: "·";
	margin-right: 0.7rem;
}

/* Three slots so missing prev/next does not yank the numbers to one side */
nav.cheerer-pagination.is-layout-flex {
	align-items: center;
	border-top: 1px solid var(--wp--preset--color--border);
	column-gap: 0.75rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	justify-content: unset;
	margin-top: var(--wp--preset--spacing--xl);
	padding-top: var(--wp--preset--spacing--l);
	row-gap: 0.5rem;
}

.cheerer-pagination .wp-block-query-pagination-previous {
	grid-column: 1;
	justify-self: start;
	margin-inline: 0;
}

.cheerer-pagination .wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.15rem;
	grid-column: 2;
	justify-content: center;
}

.cheerer-pagination .wp-block-query-pagination-next {
	grid-column: 3;
	justify-self: end;
	margin-inline: 0;
}

.cheerer-pagination .wp-block-query-pagination-previous,
.cheerer-pagination .wp-block-query-pagination-next {
	align-items: center;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	color: var(--wp--preset--color--text);
	display: inline-flex;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	min-height: 44px;
	text-decoration: none;
	transition: background-size var(--wp--custom--transition--duration) var(--wp--custom--transition--easing), color var(--wp--custom--transition--duration) var(--wp--custom--transition--easing);
}

.cheerer-pagination .wp-block-query-pagination-previous::before,
.cheerer-pagination .wp-block-query-pagination-next::after {
	display: inline-block;
	transition: transform var(--wp--custom--transition--duration) var(--wp--custom--transition--easing);
}

.cheerer-pagination .wp-block-query-pagination-previous::before {
	content: "←";
	margin-right: 0.4em;
}

.cheerer-pagination .wp-block-query-pagination-next::after {
	content: "→";
	margin-left: 0.4em;
}

.cheerer-pagination .wp-block-query-pagination-previous:hover,
.cheerer-pagination .wp-block-query-pagination-next:hover {
	background-size: 100% 1px;
	color: var(--wp--preset--color--primary);
}

.cheerer-pagination .wp-block-query-pagination-previous:hover::before {
	transform: translateX(-4px);
}

.cheerer-pagination .wp-block-query-pagination-next:hover::after {
	transform: translateX(4px);
}

.cheerer-pagination .page-numbers {
	align-items: center;
	color: var(--wp--preset--color--muted);
	display: inline-flex;
	font-size: 0.9375rem;
	font-weight: 500;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
	text-decoration: none;
	transition: color var(--wp--custom--transition--duration) var(--wp--custom--transition--easing);
}

.cheerer-pagination a.page-numbers:hover {
	color: var(--wp--preset--color--primary);
}

.cheerer-pagination .page-numbers.current {
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
	font-weight: 600;
}

.cheerer-pagination .page-numbers.dots {
	min-width: 1.25rem;
	pointer-events: none;
}

@media (max-width: 599px) {
	.cheerer-pagination .wp-block-query-pagination-previous,
	.cheerer-pagination .wp-block-query-pagination-next {
		font-size: 0.75rem;
		letter-spacing: 0.04em;
	}
}

.cheerer-notes__list {
	padding-top: var(--wp--preset--spacing--2-xl);
	padding-bottom: var(--wp--preset--spacing--section-large);
}

.cheerer-notes__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cheerer-notes__items .wp-block-post {
	border-top: 1px solid var(--wp--preset--color--border);
	margin: 0;
	padding: var(--wp--preset--spacing--l) 0;
}

.cheerer-notes__items .wp-block-post:first-child {
	border-top: 0;
	padding-top: 0;
}

.cheerer-note-card__date {
	color: var(--wp--preset--color--muted);
	display: block;
	font-size: 0.875rem;
	letter-spacing: 0.04em;
	margin: 0 0 0.7rem;
}

.cheerer-note-card .wp-block-post-title {
	font-size: clamp(1.5rem, 3vw, 2.15rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.25;
	margin: 0 0 0.6rem;
	max-width: 22em;
}

.cheerer-note-card .wp-block-post-title a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.cheerer-note-card .wp-block-post-title a:hover,
.cheerer-note-card:hover .wp-block-post-title a {
	color: var(--wp--preset--color--primary);
}

.cheerer-note-card__excerpt {
	margin: 0 0 1rem;
	max-width: 40em;
}

.cheerer-note-card__excerpt p {
	color: var(--wp--preset--color--text-secondary);
	margin: 0;
}

a.cheerer-note-card__more {
	align-items: center;
	color: var(--wp--preset--color--primary);
	display: inline-flex;
	font-size: 0.9375rem;
	font-weight: 500;
	gap: 0.4em;
	min-height: 44px;
	text-decoration: none;
}

a.cheerer-note-card__more::after {
	content: "→";
	transition: transform var(--wp--custom--transition--duration) var(--wp--custom--transition--easing);
}

.cheerer-note-card:hover a.cheerer-note-card__more::after {
	transform: translateX(4px);
}

.cheerer-stage--light {
	color: var(--wp--preset--color--text);
}

.cheerer-stage--light .cheerer-stage__wall {
	background-color: var(--wp--preset--color--background-soft);
	border-color: var(--wp--preset--color--border);
}

.cheerer-stage--light .cheerer-stage__wall::after {
	color: rgba(0, 110, 190, 0.22);
}

.cheerer-stage--light .cheerer-stage__wall::before {
	background-image: repeating-linear-gradient(
		90deg,
		rgba(0, 60, 120, 0.09) 0,
		rgba(0, 60, 120, 0.09) 1px,
		transparent 1px,
		transparent calc(100% / 12)
	);
}

.cheerer-stage--light .cheerer-stage__label {
	color: var(--wp--preset--color--muted);
}

.cheerer-stage--light .cheerer-stage__msg {
	color: var(--wp--preset--color--text);
	max-width: 22em;
}

.cheerer-case-article {
	padding-top: var(--wp--preset--spacing--l);
	padding-bottom: var(--wp--preset--spacing--section);
}

.cheerer-case-article > h1.cheerer-page-hero__title {
	margin-block-end: 0.85rem;
}

.cheerer-case-article .cheerer-work-meta {
	margin-bottom: 1.75rem;
}

.cheerer-case-article__cover {
	margin: 0 0 var(--wp--preset--spacing--2-xl);
}

/* The story keeps a reading measure but stays on the page's left edge, so the
   title, meta and body all start from the same line */
.cheerer-case-article__body {
	margin-bottom: var(--wp--preset--spacing--2-xl);
	max-width: 46rem;
}

.cheerer-case-article__body h2 {
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 2.5rem 0 0.85rem;
}

.cheerer-case-article__body > *:first-child {
	margin-top: 0;
}

.cheerer-case-article__body p {
	color: var(--wp--preset--color--text-secondary);
	line-height: 1.9;
	margin: 0 0 1.25rem;
}

.cheerer-case-article__body .wp-block-image {
	margin: 1.25rem 0 1.75rem;
}

/* Two case titles side by side are unreadable on a phone, so they stack until
   there is room for a row */
.cheerer-case-page .cheerer-case-article__next {
	align-items: flex-start;
	border-top: 1px solid var(--wp--preset--color--border);
	flex-direction: column;
	gap: var(--wp--preset--spacing--s);
	padding-top: 1.25rem;
	width: 100%;
}

.cheerer-case-article__next a {
	align-items: center;
	color: var(--wp--preset--color--text);
	display: inline-flex;
	min-height: 44px;
	text-decoration: none;
}

.cheerer-case-article__next a:hover {
	color: var(--wp--preset--color--primary);
}

/* Only one of the two links exists on the first and last case, so each keeps
   its own side of the row */

.cheerer-case-nav .post-navigation-link__label {
	color: var(--wp--preset--color--muted);
	display: block;
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	margin-bottom: 0.2rem;
}

.cheerer-case-nav a {
	font-size: 1.0625rem;
	font-weight: 500;
}

.cheerer-note-article {
	padding-top: var(--wp--preset--spacing--l);
	padding-bottom: var(--wp--preset--spacing--section);
}

.cheerer-note-article__date {
	color: var(--wp--preset--color--muted);
	display: block;
	font-size: 0.875rem;
	letter-spacing: 0.06em;
	margin: 0 0 1.25rem;
}

.cheerer-note-article > h1.cheerer-page-hero__title {
	margin-block-end: var(--wp--preset--spacing--xl);
	max-width: 18em;
}

.cheerer-note-article__cover {
	margin: 0 0 var(--wp--preset--spacing--2-xl);
	max-width: 46rem;
}

.cheerer-note-article__cover:not(:has(img)) {
	display: none;
}

.cheerer-note-article__cover img {
	width: 100%;
}

.cheerer-note-article__body {
	margin-bottom: var(--wp--preset--spacing--2-xl);
	max-width: 46rem;
}

.cheerer-note-article__body h2 {
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 2.5rem 0 0.85rem;
}

.cheerer-note-article__body h3 {
	font-size: 1.125rem;
	font-weight: 600;
	margin: 2rem 0 0.65rem;
}

.cheerer-note-article__body > *:first-child {
	margin-top: 0;
}

.cheerer-note-article__body p {
	color: var(--wp--preset--color--text-secondary);
	line-height: 1.9;
	margin: 0 0 1.25rem;
}

.cheerer-note-article__body :is(ul, ol) {
	color: var(--wp--preset--color--text-secondary);
	line-height: 1.9;
	margin: 0 0 1.25rem;
	padding-left: 1.35rem;
}

.cheerer-note-article__body li + li {
	margin-top: 0.5rem;
}

.cheerer-note-article__body blockquote {
	border-left: 2px solid var(--wp--preset--color--primary);
	color: var(--wp--preset--color--text);
	font-size: 1.125rem;
	line-height: 1.7;
	margin: 0 0 1.5rem;
	padding: 0.15rem 0 0.15rem 1.25rem;
}

.cheerer-note-article__body a {
	color: var(--wp--preset--color--primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
}

.cheerer-note-article__body .wp-block-image {
	margin: 1.25rem 0 1.75rem;
}

.cheerer-note-page .cheerer-note-article__next {
	align-items: flex-start;
	border-top: 1px solid var(--wp--preset--color--border);
	flex-direction: column;
	gap: var(--wp--preset--spacing--s);
	padding-top: 1.25rem;
	width: 100%;
}

.cheerer-note-article__next a {
	align-items: center;
	color: var(--wp--preset--color--text);
	display: inline-flex;
	min-height: 44px;
	text-decoration: none;
}

.cheerer-note-article__next a:hover {
	color: var(--wp--preset--color--primary);
}

/* Long-form prose pages: left aligned on the same grid as every other page,
   with the reading measure set on the text itself rather than by centring the
   whole column */
.cheerer-prose {
	padding-top: var(--wp--preset--spacing--l);
	padding-bottom: var(--wp--preset--spacing--section-large);
}

/* No reading measure here: a max-width would make the constrained layout
   centre the heading away from the body text */
.cheerer-prose > h1.cheerer-page-hero__title {
	margin-block-end: var(--wp--preset--spacing--l);
}

.cheerer-prose :is(h2, h3, p, ul, ol, blockquote, figure, table) {
	max-width: 46rem;
}

/* Headings belong to what follows them, so the space above is larger */
.cheerer-prose h2 {
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 3rem 0 0.85rem;
}

.cheerer-prose h3 {
	font-size: 1.125rem;
	font-weight: 600;
	margin: 2rem 0 0.65rem;
}

.cheerer-prose :is(p, li) {
	color: var(--wp--preset--color--text-secondary);
	line-height: 1.9;
}

.cheerer-prose .entry-content > p {
	margin: 0 0 var(--wp--preset--spacing--m);
}

.cheerer-prose .entry-content > p:last-child {
	margin-bottom: 0;
}

.cheerer-prose ul,
.cheerer-prose ol {
	margin: 0 0 1.35rem;
	padding-left: 1.35rem;
}

.cheerer-prose li + li {
	margin-top: 0.5rem;
}

.cheerer-prose a {
	color: var(--wp--preset--color--primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
}

@media (min-width: 782px) {
	.cheerer-form__row {
		display: grid;
		gap: 0 1.5rem;
		grid-template-columns: 1fr 1fr;
	}

	.cheerer-form__foot .cheerer-form__field {
		max-width: 14rem;
	}

	.cheerer-form__needs {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.cheerer-form__needs legend {
		grid-column: 1 / -1;
	}

	.cheerer-form__choice {
		padding-right: 1rem;
	}

	/* An odd number of options would leave a half-width row, so the last one
	   spans both columns */
	.cheerer-form__choice:last-of-type:nth-of-type(odd) {
		grid-column: 1 / -1;
	}

	.cheerer-chapter {
		align-items: start;
		display: grid;
		grid-template-columns: 3.25rem minmax(0, 1fr);
	}

	.cheerer-chapter > .cheerer-chapter__index,
	.cheerer-chapter > .cheerer-chapter__body {
		margin-left: 0;
		margin-right: 0;
		max-width: none;
	}

	.cheerer-chapter__index {
		grid-column: 1;
		padding-top: 0.55rem;
	}

	.cheerer-chapter__body {
		grid-column: 2;
	}

	.cheerer-chapter__items {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.cheerer-chapter__body > .cheerer-chapter__cta {
		margin-top: var(--wp--preset--spacing--xl);
	}

	.cheerer-chapter__item {
		padding-right: 1.5rem;
	}

	/* Keeps the closing rule full width when the list has an odd item count */
	.cheerer-chapter__item:last-of-type:nth-of-type(odd) {
		grid-column: 1 / -1;
	}

	.cheerer-work-card {
		column-gap: var(--wp--preset--spacing--xl);
		display: grid;
		grid-template-columns: minmax(0, 0.28fr) minmax(0, 1fr);
	}

	.cheerer-case-page .cheerer-case-article__next,
	.cheerer-note-page .cheerer-note-article__next {
		align-items: center;
		flex-direction: row;
		gap: var(--wp--preset--spacing--m);
	}

	.cheerer-case-nav--next {
		margin-left: auto;
		text-align: right;
	}

	.cheerer-work-card__rail {
		flex-direction: column;
		gap: 0.4rem;
		margin-bottom: 0;
	}

	.cheerer-work-card__rail .cheerer-work-meta + .cheerer-work-meta::before {
		content: none;
	}

	/* Cover images sit under the copy, on the copy column, so a case without
	   one leaves no empty cell behind */
	.cheerer-work-card__media {
		grid-column: 2;
	}
}

@media (min-width: 960px) {
	.cheerer-page-hero {
		padding-top: var(--wp--preset--spacing--xl);
		padding-bottom: var(--wp--preset--spacing--3-xl);
	}

	.cheerer-page-hero__layout {
		align-items: start;
		display: grid;
		gap: var(--wp--preset--spacing--4-xl);
		grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
	}

	.cheerer-chapter {
		padding-top: var(--wp--preset--spacing--section);
		padding-bottom: var(--wp--preset--spacing--section);
	}

	.cheerer-work__list,
	.cheerer-notes__list {
		padding-top: var(--wp--preset--spacing--section);
	}

	.cheerer-contact__layout {
		align-items: start;
		display: grid;
		gap: var(--wp--preset--spacing--3-xl);
		grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr);
	}

	.cheerer-contact__facts {
		order: 0;
		padding: 1.75rem 1.6rem 1.85rem;
		position: sticky;
		top: 6.5rem;
	}

	.cheerer-contact {
		padding-top: var(--wp--preset--spacing--section);
	}
}
