/*
 * Signature Dental: visual service page components
 * ---------------------------------------------------------------------------
 * Loaded after main.css by inc/page-components.php, only on pages that use the [sd_*] shortcodes.
 * Reuses the design tokens in main.css (navy, mint, gold, serif headings, arched frames).
 * Mobile first. No JavaScript: accordions are native <details>.
 *
 *   A. Section shell and headings     F. Comparison table      K. FAQ accordions
 *   B. Hero                           G. Key facts strip       L. Related links
 *   C. Quick-check tiles              H. Photo + list split    M. Notes
 *   D. Stepper and timeline           I. Team portraits        N. Larger screens
 *   E. Option cards                   J. Call to action bands
 *
 * Contrast (WCAG AA): --ink, --muted and --gold-text on white and mint pass 4.5:1;
 * white and --gold-soft on --navy pass 7:1.
 */

/* A. Section shell and headings ------------------------------------------ */
.sd-pc-page {
	overflow-x: clip;
}

.sd-pc {
	position: relative;
	padding: 56px 0;
}

.sd-pc--bg-mint {
	background: var(--mint);
}

.sd-pc--bg-navy {
	background: var(--navy);
	color: #e3e9f2;
}

/* Two white sections in a row share one gap instead of two. */
.sd-pc--bg-white + .sd-pc--bg-white,
.sd-pc--bg-mint + .sd-pc--bg-mint {
	padding-top: 8px;
}

.sd-pc__head {
	max-width: 720px;
	margin: 0 0 32px;
}

.sd-pc__head--center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.sd-pc__head--center .sd-eyebrow {
	justify-content: center;
}

.sd-pc__head .sd-eyebrow {
	margin-bottom: 12px;
}

.sd-pc__title {
	margin: 0;
	font-size: clamp(1.875rem, 5.2vw, 2.625rem);
	text-wrap: balance;
}

.sd-pc--bg-navy .sd-pc__title {
	color: var(--white);
}

.sd-pc--bg-navy .sd-eyebrow {
	color: var(--gold-soft);
}

.sd-pc__intro {
	margin: 14px 0 0;
	font-size: 1.0625rem;
}

.sd-pc__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.sd-pc__call {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.sd-pc__call .sd-pc-icon {
	width: 16px;
	height: 16px;
}

.sd-pc-icon {
	display: block;
	width: 24px;
	height: 24px;
	flex: none;
}

/* Narrow phones: full-width, easy-to-tap buttons. */
@media (max-width: 479px) {
	.sd-pc__actions .sd-btn {
		flex: 1 1 100%;
	}
}

/* B. Hero ----------------------------------------------------------------- */
.sd-pc--hero {
	padding: 40px 0 56px;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 100% 0%, rgba(100, 201, 221, 0.10) 0%, rgba(100, 201, 221, 0) 55%),
		var(--mint);
	border-bottom: 1px solid var(--line);
}

.sd-pc-hero {
	display: grid;
	gap: 40px;
	align-items: center;
}

.sd-pc-hero__title {
	margin: 0;
	font-weight: 500;
}

.sd-pc-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--gold-text);
}

.sd-pc-hero__eyebrow::before {
	flex: none;
	width: 36px;
	height: 1px;
	background: var(--gold);
	content: "";
}

.sd-pc-hero__promise {
	display: block;
	font-size: clamp(2.375rem, 8.4vw, 4rem);
	line-height: 1.04;
	letter-spacing: -0.01em;
	color: var(--ink);
	text-wrap: balance;
}

.sd-pc-hero__intro {
	max-width: 34em;
	margin: 20px 0 28px;
	font-size: 1.125rem;
	line-height: 1.65;
}

.sd-pc-hero__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
	color: var(--ink);
}

.sd-pc-hero__chips li {
	display: flex;
	align-items: center;
	gap: 6px;
}

.sd-pc-hero__chips .sd-pc-icon {
	width: 18px;
	height: 18px;
	color: var(--gold-text);
	stroke-width: 2.2;
}

.sd-pc-hero__media {
	position: relative;
	width: min(100%, 340px);
	margin: 0 auto;
	padding: 18px 18px 0;
}

.sd-pc-hero__arch {
	position: relative;
	z-index: 2;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--mint-deep);
	border-radius: var(--sd-radius-media);
	box-shadow: var(--shadow);
}

.sd-pc-hero__arch img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sd-pc-hero__arch .sd-pc-art {
	width: 70%;
	height: 100%;
	margin: 0 auto;
}

/* Geometric accent: a fine gold outline that repeats the photo frame, a soft disc and a tooth mark. */
.sd-pc-hero__ring {
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;
	width: 82%;
	aspect-ratio: 4 / 5;
	border: 1px solid var(--gold);
	border-radius: var(--sd-radius-media);
}

.sd-pc-hero__disc {
	position: absolute;
	z-index: 1;
	bottom: -26px;
	left: -10px;
	width: 46%;
	aspect-ratio: 1;
	background: rgba(100, 201, 221, 0.18);
	border-radius: 50%;
}

.sd-pc-hero__mark {
	position: absolute;
	z-index: 3;
	bottom: 26px;
	left: 0;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	background: var(--navy);
	border: 3px solid var(--white);
	border-radius: 50%;
	color: var(--white);
	box-shadow: var(--shadow);
}

.sd-pc-hero__mark .sd-pc-icon {
	width: 28px;
	height: 28px;
}

/* C. Quick-check tiles ---------------------------------------------------- */
.sd-pc-checks {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sd-pc-checks__item {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 18px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 18px;
	color: var(--ink);
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.4;
}

.sd-pc--bg-white .sd-pc-checks__item {
	background: var(--mint);
	border-color: transparent;
}

.sd-pc-checks__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 52px;
	height: 52px;
	background: var(--mint);
	border-radius: 50%;
	color: var(--navy);
}

.sd-pc--bg-white .sd-pc-checks__icon {
	background: var(--white);
}

.sd-pc-checks__icon .sd-pc-icon {
	width: 26px;
	height: 26px;
}

/* Chip style: compact pills, for lists such as cost factors. */
.sd-pc--chips .sd-pc-checks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.sd-pc--chips .sd-pc-checks__item {
	gap: 10px;
	padding: 8px 18px 8px 8px;
	border-radius: 999px;
	font-size: 0.9375rem;
}

.sd-pc--chips .sd-pc-checks__icon {
	width: 36px;
	height: 36px;
}

.sd-pc--chips .sd-pc-checks__icon .sd-pc-icon {
	width: 20px;
	height: 20px;
}

/* D. Stepper and timeline ------------------------------------------------- */
.sd-pc-steps {
	position: relative;
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sd-pc-steps__item {
	position: relative;
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 0 18px;
	padding-bottom: 28px;
}

.sd-pc-steps__item:last-child {
	padding-bottom: 0;
}

/* The thin connecting line between steps. */
.sd-pc-steps__item::before {
	position: absolute;
	top: 56px;
	bottom: 4px;
	left: 27px;
	width: 2px;
	background: linear-gradient(var(--gold-soft), rgba(200, 168, 100, 0.25));
	content: "";
}

.sd-pc-steps__item:last-child::before {
	display: none;
}

/* Number badge: a small rounded square on the tile radius. */
.sd-pc-steps__badge {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	background: var(--navy);
	border-radius: var(--sd-radius-tile);
	color: var(--gold-soft);
	font-family: var(--font-serif);
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1;
}

.sd-pc-steps__badge--icon {
	color: var(--white);
}

.sd-pc-steps__badge--icon .sd-pc-icon {
	width: 26px;
	height: 26px;
}

.sd-pc-steps__label {
	grid-column: 2;
	grid-row: 1;
	align-self: start;
	justify-self: start;
	margin-top: 4px;
	padding: 3px 12px;
	background: var(--white);
	border: 1px solid var(--gold);
	border-radius: 999px;
	color: var(--gold-text);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sd-pc--timeline .sd-pc-steps__body {
	grid-column: 2;
	margin-top: 8px;
}

.sd-pc--timeline .sd-pc-steps__item {
	grid-template-rows: auto 1fr;
}

.sd-pc--timeline .sd-pc-steps__badge {
	grid-row: 1 / span 2;
}

.sd-pc-steps__body {
	padding-top: 6px;
}

.sd-pc-steps__icon {
	display: none;
}

.sd-pc-steps__title {
	margin: 0 0 4px;
	font-size: 1.5rem;
}

.sd-pc-steps__text {
	margin: 0;
}

/* E. Option cards --------------------------------------------------------- */
.sd-pc-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sd-pc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 24px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 22px;
	box-shadow: 0 1px 2px rgba(19, 41, 75, 0.04);
}

.sd-pc--bg-white .sd-pc-card {
	background: var(--white);
}

.sd-pc-card__art {
	display: grid;
	place-items: center;
	width: 92px;
	height: 92px;
	margin-bottom: 16px;
	background: var(--mint);
	border-radius: 22px;
}

.sd-pc--bg-mint .sd-pc-card__art {
	background: var(--mint);
}

.sd-pc-card__art .sd-pc-art {
	width: 76px;
	height: 66px;
}

.sd-pc-card__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin-bottom: 16px;
	background: var(--mint);
	border-radius: 50%;
	color: var(--navy);
}

.sd-pc-card__title {
	margin: 0 0 6px;
	font-size: 1.625rem;
}

.sd-pc-card__text {
	margin: 0;
	color: var(--muted);
}

.sd-pc-card__label {
	display: block;
	margin-bottom: 2px;
	color: var(--gold-text);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sd-pc-card__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 16px;
	color: var(--link);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
}

.sd-pc-card__link .sd-pc-icon {
	width: 18px;
	height: 18px;
	transition: transform 0.25s;
}

.sd-pc-card__link:hover {
	text-decoration: underline;
}

.sd-pc-card__link:hover .sd-pc-icon {
	transform: translateX(3px);
}

/* Ladder: a quiet "smaller to larger" scale above the cards. */
.sd-pc-scale {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 720px;
	margin: -8px auto 24px;
	color: var(--gold-text);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.sd-pc-scale__line {
	position: relative;
	flex: 1;
	height: 2px;
	background: linear-gradient(90deg, rgba(200, 168, 100, 0.25), var(--gold));
	border-radius: 2px;
}

.sd-pc-scale__line::after {
	position: absolute;
	top: -4px;
	right: -2px;
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--gold);
	border-right: 2px solid var(--gold);
	transform: rotate(45deg);
	content: "";
}

/* Phones: every card sits media-left to save height. Tablets: the small "tip" cards (cols="4") too. */
@media (max-width: 559px) {
	.sd-pc-card,
	.sd-pc-cards--4 .sd-pc-card {
		display: grid;
		grid-template-columns: 64px 1fr;
		gap: 2px 16px;
		align-content: start;
		padding: 18px;
	}

	.sd-pc-card > * {
		grid-column: 2;
	}

	.sd-pc-card > .sd-pc-card__art,
	.sd-pc-card > .sd-pc-card__icon {
		grid-column: 1;
		grid-row: 1 / span 3;
		margin: 0;
	}

	.sd-pc-card__art {
		width: 64px;
		height: 64px;
		border-radius: var(--sd-radius-tile);
	}

	.sd-pc-card__art .sd-pc-art {
		width: 52px;
		height: 46px;
	}

	.sd-pc-card__icon {
		width: 48px;
		height: 48px;
	}

	.sd-pc-card__title {
		margin: 0 0 4px;
		font-size: 1.375rem;
	}

	.sd-pc-card__link {
		padding-top: 8px;
	}
}

@media (min-width: 560px) and (max-width: 899px) {
	.sd-pc-cards--4 .sd-pc-card {
		display: grid;
		grid-template-columns: 48px 1fr;
		gap: 2px 16px;
		align-content: start;
		padding: 18px;
	}

	.sd-pc-cards--4 .sd-pc-card > * {
		grid-column: 2;
	}

	.sd-pc-cards--4 .sd-pc-card__icon {
		grid-column: 1;
		grid-row: 1 / span 2;
		width: 48px;
		height: 48px;
		margin: 0;
	}

	.sd-pc-cards--4 .sd-pc-card__title {
		margin: 0;
		font-size: 1.375rem;
	}
}

/* F. Comparison table ----------------------------------------------------- */
.sd-pc-compare {
	max-width: 900px;
	margin: 0 auto;
	overflow: hidden;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 22px;
}

.sd-pc-compare__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.sd-pc-compare__table thead th {
	padding: 20px 10px 14px;
	color: var(--ink);
	font-family: var(--font-serif);
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.15;
	text-align: center;
	vertical-align: bottom;
}

.sd-pc-compare__col--1 {
	background: rgba(100, 201, 221, 0.10);
}

.sd-pc-compare__col--2 {
	background: rgba(200, 168, 100, 0.10);
}

.sd-pc-compare__art {
	display: block;
	max-width: 120px;
	margin: 0 auto 8px;
}

.sd-pc-compare__art .sd-pc-art {
	display: block;
	width: 100%;
	height: auto;
}

.sd-pc-compare__table tbody th,
.sd-pc-compare__table tbody td {
	padding: 14px 12px;
	border-top: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
}

.sd-pc-compare__table tbody th {
	color: var(--ink);
	font-weight: 600;
}

.sd-pc-compare__table tbody td {
	color: var(--muted);
}

/* Phones: the row label spans the top, the two answers sit side by side beneath it. */
@media (max-width: 599px) {
	.sd-pc-compare__corner {
		display: none;
	}

	.sd-pc-compare__table thead tr,
	.sd-pc-compare__table tbody tr {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.sd-pc-compare__table tbody th {
		grid-column: 1 / -1;
		padding-bottom: 2px;
		background: var(--mint);
		font-size: 0.8125rem;
		letter-spacing: 0.06em;
		text-transform: uppercase;
	}

	.sd-pc-compare__table tbody td {
		border-top: 0;
		padding-top: 8px;
	}

	.sd-pc-compare__table tbody td + td {
		border-left: 1px solid var(--line);
	}

	.sd-pc-compare__table thead th {
		font-size: 1.125rem;
	}
}

.sd-pc-compare__col--3 {
	background: rgba(15, 42, 74, 0.05);
}

.sd-pc-compare__col--4 {
	background: rgba(100, 201, 221, 0.05);
}

.sd-pc-compare--3,
.sd-pc-compare--4 {
	max-width: 1040px;
}

.sd-pc-compare--3 .sd-pc-compare__art,
.sd-pc-compare--4 .sd-pc-compare__art {
	max-width: 96px;
}

@media (max-width: 599px) {
	.sd-pc-compare--3 .sd-pc-compare__table thead tr,
	.sd-pc-compare--3 .sd-pc-compare__table tbody tr {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sd-pc-compare--4 .sd-pc-compare__table thead tr,
	.sd-pc-compare--4 .sd-pc-compare__table tbody tr {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sd-pc-compare--3 .sd-pc-compare__table,
	.sd-pc-compare--4 .sd-pc-compare__table {
		font-size: 0.875rem;
	}

	.sd-pc-compare--3 .sd-pc-compare__table thead th,
	.sd-pc-compare--4 .sd-pc-compare__table thead th {
		padding: 14px 6px 10px;
		font-size: 1rem;
	}

	.sd-pc-compare--3 .sd-pc-compare__table tbody td,
	.sd-pc-compare--4 .sd-pc-compare__table tbody td {
		padding: 8px 8px 12px;
		overflow-wrap: anywhere;
	}

	.sd-pc-compare--3 .sd-pc-compare__art,
	.sd-pc-compare--4 .sd-pc-compare__art {
		max-width: 64px;
	}
}

/* G. Key facts strip ------------------------------------------------------ */
.sd-pc--facts {
	overflow: hidden;
}

/* A large faint rounded frame at the right edge of the facts band (wide screens only, so it never crosses the text). */
.sd-pc--facts::before {
	position: absolute;
	right: -190px;
	bottom: -160px;
	display: none;
	width: 340px;
	height: 460px;
	border: 1px solid rgba(217, 189, 126, 0.3);
	border-radius: 40px;
	content: "";
	pointer-events: none;
}

.sd-pc-facts {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px 20px;
	margin: 0;
}

.sd-pc-facts__item {
	padding-top: 16px;
	border-top: 1px solid rgba(217, 189, 126, 0.45);
}

.sd-pc-facts__big {
	margin: 0 0 6px;
	color: var(--gold-soft);
	font-family: var(--font-serif);
	font-size: clamp(1.875rem, 6vw, 2.75rem);
	font-weight: 500;
	line-height: 1.05;
}

.sd-pc-facts__small {
	margin: 0;
	color: #e3e9f2;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.sd-pc--facts .sd-pc__note {
	color: #c9d3e1;
	border-left-color: var(--gold-soft);
}

/* H. Photo + list split --------------------------------------------------- */
.sd-pc-split {
	display: grid;
	gap: 32px;
	align-items: center;
}

.sd-pc-split__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sd-pc-split__media--soft img {
	border-radius: var(--sd-radius-media);
	aspect-ratio: 4 / 3;
}

.sd-pc-split__media--arch {
	max-width: 380px;
	margin: 0 auto;
	overflow: hidden;
	border-radius: var(--sd-radius-media);
	aspect-ratio: 4 / 5;
}

.sd-pc-split__media figcaption {
	margin-top: 10px;
	color: var(--muted);
	font-size: 0.875rem;
}

.sd-pc-list {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sd-pc-list li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	color: var(--ink);
}

.sd-pc-list__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 40px;
	height: 40px;
	background: var(--mint);
	border-radius: 50%;
	color: var(--navy);
}

.sd-pc--bg-mint .sd-pc-list__icon {
	background: var(--white);
}

.sd-pc-list__icon .sd-pc-icon {
	width: 20px;
	height: 20px;
}

.sd-pc-list li > span:last-child {
	padding-top: 8px;
	line-height: 1.5;
}

/* I. Team portraits ------------------------------------------------------- */
.sd-pc-team {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	max-width: 640px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	text-align: center;
}

.sd-pc-team__arch {
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: var(--mint-deep);
	border-radius: 50%;
}

.sd-pc-team__arch img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sd-pc-team__name {
	margin: 12px 0 0;
	color: var(--ink);
	font-family: var(--font-serif);
	font-size: 1.375rem;
	line-height: 1.2;
}

.sd-pc-team__role {
	margin: 0;
	font-size: 0.8125rem;
}

/* J. Call to action bands ------------------------------------------------- */
.sd-pc--cta {
	padding: 24px 0;
}

.sd-pc-cta {
	position: relative;
	overflow: hidden;
	padding: 40px 24px;
	background: var(--navy);
	border-radius: 26px;
	color: #e3e9f2;
}

.sd-pc-cta__arch {
	position: absolute;
	top: 24px;
	right: -40px;
	width: 220px;
	height: 300px;
	border: 1px solid rgba(217, 189, 126, 0.45);
	border-radius: 36px;
	pointer-events: none;
}

.sd-pc-cta__arch::after {
	position: absolute;
	inset: 22px 22px 0;
	border: 1px solid rgba(217, 189, 126, 0.22);
	border-radius: 18px;
	content: "";
}

.sd-pc-cta__text {
	position: relative;
	max-width: 560px;
}

.sd-pc-cta__title {
	margin: 0 0 10px;
	color: var(--white);
	font-size: clamp(1.875rem, 5vw, 2.5rem);
	text-wrap: balance;
}

.sd-pc-cta__text p {
	margin: 0 0 24px;
}

.sd-pc-cta .sd-pc__actions {
	position: relative;
}

.sd-pc-cta a:focus-visible {
	outline-color: #ffd98a;
}

/* Closing CTA: pale green, navy text, with address and hours. */
.sd-pc--cta-closing {
	padding: 56px 0 24px;
}

.sd-pc--cta-closing .sd-pc-cta {
	background: var(--mint);
	border: 1px solid var(--line);
	color: var(--muted);
	text-align: center;
}

.sd-pc--cta-closing .sd-pc-cta__text {
	margin: 0 auto;
}

.sd-pc--cta-closing .sd-pc-cta__title {
	color: var(--ink);
}

.sd-pc--cta-closing .sd-pc__actions {
	justify-content: center;
}

.sd-pc--cta-closing .sd-pc-cta__arch {
	right: auto;
	left: -60px;
	border-color: rgba(200, 168, 100, 0.55);
}

.sd-pc--cta-closing .sd-pc-cta a:focus-visible {
	outline-color: #0b6bcb;
}

.sd-pc-cta__meta {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 24px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
	color: var(--ink);
	font-size: 0.875rem;
}

.sd-pc-cta__meta li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.sd-pc-cta__meta .sd-pc-icon {
	width: 18px;
	height: 18px;
	color: var(--gold-text);
}

/* K. FAQ accordions ------------------------------------------------------- */
.sd-pc-faq {
	max-width: 820px;
	margin: 0 auto;
	border-top: 1px solid var(--line);
}

.sd-pc-faq__item {
	border-bottom: 1px solid var(--line);
}

.sd-pc-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 4px;
	color: var(--ink);
	font-family: var(--font-serif);
	font-size: 1.375rem;
	font-weight: 500;
	line-height: 1.25;
	list-style: none;
	cursor: pointer;
}

.sd-pc-faq__q::-webkit-details-marker {
	display: none;
}

.sd-pc-faq__q:hover {
	color: var(--navy);
}

.sd-pc-faq__q:focus-visible {
	outline: var(--focus);
	outline-offset: 2px;
	border-radius: 6px;
}

.sd-pc-faq__toggle {
	display: grid;
	flex: none;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 8px;
	background: var(--mint);
	border-radius: 50%;
	color: var(--navy);
	transition: transform 0.25s, background-color 0.25s;
}

.sd-pc--bg-mint .sd-pc-faq__toggle {
	background: var(--white);
}

.sd-pc-faq .sd-pc-faq__item[open] .sd-pc-faq__toggle {
	background: var(--navy);
	color: var(--white);
	transform: rotate(45deg);
}

.sd-pc-faq__a {
	padding: 0 4px 20px;
}

.sd-pc-faq__a p {
	max-width: 44em;
	margin: 0;
}

/* L. Related links -------------------------------------------------------- */
.sd-pc-related {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sd-pc-related__link {
	display: flex;
	align-items: center;
	gap: 16px;
	height: 100%;
	padding: 16px 18px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 18px;
	color: var(--muted);
	text-decoration: none;
	transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s;
}

.sd-pc-related__link:hover {
	border-color: var(--gold);
	box-shadow: var(--shadow);
	transform: translateY(-2px);
}

.sd-pc-related__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 48px;
	height: 48px;
	background: var(--mint);
	border-radius: 14px;
	color: var(--navy);
}

.sd-pc-related__text {
	display: grid;
	flex: 1;
	gap: 2px;
}

.sd-pc-related__title {
	color: var(--ink);
	font-family: var(--font-serif);
	font-size: 1.375rem;
	line-height: 1.2;
}

.sd-pc-related__line {
	font-size: 0.875rem;
	line-height: 1.45;
}

.sd-pc-related__arrow {
	color: var(--gold-text);
}

/* M. Notes ---------------------------------------------------------------- */
.sd-pc--note {
	padding: 0 0 8px;
}

.sd-pc__note {
	max-width: 720px;
	margin: 28px auto 0;
	padding: 4px 0 4px 16px;
	border-left: 3px solid var(--gold);
	color: var(--muted);
	font-size: 0.9375rem;
	line-height: 1.6;
}

.sd-pc--note .sd-pc__note {
	margin-top: 0;
}

.sd-pc__note--left {
	margin-left: 0;
}

/* M2. Quick answer ---------------------------------------------------------- */
.sd-pc--answer {
	padding: 40px 0 8px;
}

.sd-pc-answer {
	max-width: 760px;
	margin: 0 auto;
	padding: 24px 24px 22px;
	background: var(--mint);
	border-left: 4px solid var(--gold);
	border-radius: 0 18px 18px 0;
}

.sd-pc-answer .sd-eyebrow {
	margin: 0 0 6px;
}

.sd-pc-answer__q {
	margin: 0 0 10px;
	color: var(--ink);
	font-family: var(--font-serif);
	font-size: clamp(1.375rem, 1.1rem + 1vw, 1.75rem);
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.sd-pc-answer__a {
	margin: 0;
	color: var(--ink);
	font-size: 1.0625rem;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

/* N. Larger screens ------------------------------------------------------- */
@media (min-width: 560px) {
	.sd-pc-checks {
		grid-template-columns: repeat(2, 1fr);
	}

	.sd-pc-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.sd-pc-related {
		grid-template-columns: repeat(2, 1fr);
	}

	.sd-pc-team {
		gap: 24px;
	}
}

@media (min-width: 640px) {
	.sd-pc-facts {
		grid-template-columns: repeat(4, 1fr);
	}

	.sd-pc-cta {
		padding: 56px 56px;
	}
}

@media (min-width: 900px) {
	.sd-pc {
		padding: 88px 0;
	}

	.sd-pc--bg-white + .sd-pc--bg-white,
	.sd-pc--bg-mint + .sd-pc--bg-mint {
		padding-top: 8px;
	}

	.sd-pc__head {
		margin-bottom: 44px;
	}

	.sd-pc--hero {
		padding: 64px 0 80px;
	}

	.sd-pc-hero {
		grid-template-columns: 1.15fr 0.85fr;
		gap: 64px;
	}

	.sd-pc-hero__media {
		width: min(100%, 420px);
		margin-right: 0;
	}

	.sd-pc-checks {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}

	.sd-pc-checks__item {
		padding: 20px 22px;
	}

	/* Horizontal stepper. */
	.sd-pc-steps {
		grid-template-columns: repeat(var(--sd-steps), minmax(0, 1fr));
		gap: 24px;
	}

	.sd-pc-steps__item {
		display: block;
		padding-bottom: 0;
	}

	.sd-pc-steps__item::before {
		top: 29px;
		right: -24px;
		bottom: auto;
		left: 72px;
		width: auto;
		height: 2px;
		background: linear-gradient(90deg, var(--gold-soft), rgba(200, 168, 100, 0.25));
	}

	.sd-pc-steps__body {
		padding-top: 18px;
	}

	.sd-pc-steps__label {
		display: inline-block;
		margin-top: 16px;
	}

	.sd-pc--timeline .sd-pc-steps__body {
		margin-top: 0;
		padding-top: 10px;
	}

	/* Six or more milestones: two rows of three. */
	.sd-pc--timeline .sd-pc-steps[style*="--sd-steps:6"] {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: 48px;
	}

	.sd-pc--timeline .sd-pc-steps[style*="--sd-steps:6"] .sd-pc-steps__item:nth-child(3n)::before {
		display: none;
	}

	.sd-pc--facts::before {
		display: block;
	}

	.sd-pc-cards--3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.sd-pc-cards--4 {
		grid-template-columns: repeat(4, 1fr);
	}

	.sd-pc-cards {
		gap: 20px;
	}

	.sd-pc-card {
		padding: 28px;
	}

	.sd-pc-split {
		grid-template-columns: 1fr 1fr;
		gap: 72px;
	}

	.sd-pc-split--reverse .sd-pc-split__media {
		order: -1;
	}

	.sd-pc-related {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}

	.sd-pc-cta {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 32px;
		align-items: center;
		padding: 64px 72px;
	}

	.sd-pc-cta__text p {
		margin-bottom: 0;
	}

	.sd-pc--cta-closing .sd-pc-cta {
		display: block;
		padding: 72px;
	}

	.sd-pc--cta-closing .sd-pc-cta__text p {
		margin-bottom: 28px;
	}

	.sd-pc-cta__arch {
		right: 30%;
		top: 30px;
		width: 260px;
		height: 380px;
	}

	.sd-pc--cta-closing .sd-pc-cta__arch {
		left: 6%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sd-pc-related__link,
	.sd-pc-faq__toggle,
	.sd-pc-card__link .sd-pc-icon {
		transition: none;
	}

	.sd-pc-related__link:hover {
		transform: none;
	}
}

/* O. Deck pages: hero photo caption, photo cards, before and after gallery ---------- */
.sd-pc-hero__caption {
	position: relative;
	z-index: 3;
	margin: 34px 0 0;
	padding-left: 48px;
	color: var(--muted);
	font-size: 0.8125rem;
	text-align: center;
}

.sd-pc-card--photo {
	padding: 0;
	overflow: hidden;
}

.sd-pc-card__photo {
	margin: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--mint-deep);
}

.sd-pc-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sd-pc-card--photo .sd-pc-card__title {
	margin: 20px 24px 6px;
}

.sd-pc-card--photo .sd-pc-card__text {
	margin: 0 24px 24px;
}

.sd-pc-gallery {
	margin-top: 8px;
}

.sd-pc-gallery .sd-case__title {
	margin: 12px 4px 4px;
	font-size: 1.375rem;
}

@media (max-width: 559px) {
	/* Photo cards keep the photo on top, but shorter, instead of the media-left layout. */
	.sd-pc-card.sd-pc-card--photo {
		display: flex;
		padding: 0;
	}

	.sd-pc-card--photo .sd-pc-card__photo {
		aspect-ratio: 2 / 1;
	}

	.sd-pc-card--photo .sd-pc-card__title {
		margin: 16px 18px 4px;
	}

	.sd-pc-card--photo .sd-pc-card__text {
		margin: 0 18px 18px;
	}

	.sd-pc-gallery .sd-case__photo {
		aspect-ratio: 1 / 1;
	}
}

/* Three key facts: the third spans the row on phones, three columns on larger screens. */
.sd-pc-facts--3 .sd-pc-facts__item:nth-child(3) {
	grid-column: 1 / -1;
}

/* Two key facts: one column on phones, a centred pair from 640px. */
.sd-pc-facts--2 {
	grid-template-columns: 1fr;
	max-width: 760px;
	margin-inline: auto;
}

@media (min-width: 640px) {
	.sd-pc-facts--2 {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px 48px;
	}
}

/* Phones: one fact per row instead of 2 + 1. */
@media (max-width: 599px) {
	.sd-pc-facts--3 {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 900px) {
	.sd-pc-facts--3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.sd-pc-facts--3 .sd-pc-facts__item:nth-child(3) {
		grid-column: auto;
	}
}

/* P. Quiet pages: text-only header, one person row, round-portrait roster, plain closing line -- */
.sd-pc--intro {
	padding: 64px 0 8px;
	text-align: center;
}

.sd-pc--intro .sd-eyebrow {
	justify-content: center;
}

.sd-pc-intro__title {
	max-width: 760px;
	margin: 0 auto 14px;
	font-size: clamp(2.25rem, 6vw, 3.5rem);
	line-height: 1.08;
	text-wrap: balance;
}

.sd-pc-intro__line {
	max-width: 560px;
	margin: 0 auto;
	color: var(--muted);
	font-size: 1.125rem;
	text-wrap: balance;
}

.sd-pc--person {
	padding: 40px 0 8px;
}

.sd-pc-person {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 20px;
	max-width: 620px;
	margin: 0 auto;
	padding: 16px 24px 16px 16px;
	border: 1px solid var(--line);
	border-radius: 999px;
}

.sd-pc-person__photo {
	flex: none;
	width: 72px;
	height: 72px;
}

.sd-pc-person__text {
	flex: 1 1 160px;
}

.sd-pc-person__name {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.2;
}

.sd-pc-person__role {
	margin: 2px 0 0;
	color: var(--muted);
	font-size: 0.9375rem;
}

.sd-pc-person__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--link);
	font-weight: 600;
	text-decoration: none;
}

.sd-pc-person__link:hover,
.sd-pc-person__link:focus-visible {
	text-decoration: underline;
}

.sd-pc-person__link .sd-pc-icon {
	width: 16px;
	height: 16px;
}

/* Round portraits: the 3:2 studio photos are zoomed so the face fills the circle. */
.sd-pc-person__photo,
.sd-pc-roster__photo {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--mint);
	border-radius: 50%;
}

.sd-pc-person__photo img,
.sd-pc-roster__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 15%;
	transform: scale(1.6);
	transform-origin: 50% 12%;
}

.sd-pc-monogram {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: var(--navy);
	font-family: var(--font-serif);
	font-size: 2.75rem;
}

.sd-pc--roster {
	padding-top: 48px;
}

.sd-pc-roster {
	display: grid;
	gap: 40px;
}

.sd-pc-roster__label {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 20px;
	color: var(--gold-text);
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sd-pc-roster__label::after {
	flex: 1;
	height: 1px;
	background: var(--line);
	content: "";
}

.sd-pc-roster__people {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sd-pc-roster__person {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}

.sd-pc-roster__photo {
	width: min(100%, 128px);
	aspect-ratio: 1;
}

.sd-pc-roster__name {
	color: var(--ink);
	font-family: var(--font-serif);
	font-size: 1.375rem;
	line-height: 1.2;
}

.sd-pc--cta-plain {
	padding: 24px 0 80px;
}

.sd-pc--cta-plain .sd-pc-cta {
	padding: 40px 0 0;
	background: none;
	border-top: 1px solid var(--line);
	border-radius: 0;
	color: var(--ink);
	text-align: center;
}

.sd-pc--cta-plain .sd-pc-cta__arch {
	display: none;
}

.sd-pc--cta-plain .sd-pc-cta__text {
	margin: 0 auto;
}

.sd-pc--cta-plain .sd-pc-cta__title {
	color: var(--navy);
	font-size: clamp(1.625rem, 4vw, 2rem);
}

.sd-pc--cta-plain .sd-pc-cta__text p {
	color: var(--muted);
}

.sd-pc--cta-plain .sd-pc__actions {
	justify-content: center;
}

.sd-pc--cta-plain .sd-pc-cta a:focus-visible {
	outline-color: #0b6bcb;
}

@media (max-width: 479px) {
	.sd-pc-person {
		border-radius: 24px;
	}
}

/* Wider screens: all groups sit side by side on one line when they fit. */
@media (min-width: 900px) {
	.sd-pc--intro {
		padding: 96px 0 8px;
	}

	.sd-pc-roster {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 40px;
	}

	.sd-pc-roster__people {
		grid-template-columns: repeat(var(--sd-people, 3), 132px);
		gap: 24px;
		justify-content: center;
	}

	.sd-pc-roster__photo {
		width: 132px;
	}
}
