/* Treatment guides: core blocks, shared across the non-emergency service pages. */
.crystal-service-guide-intro { padding-bottom: 2.5rem; }
.crystal-service-guide-intro .crystal-structure-lead { max-width: 60ch; }
.crystal-service-guide-intro > .crystal-structure-inner > .wp-block-buttons { margin-top: 1.5rem; }
.crystal-service-guide-hero { box-sizing: border-box; margin-top: 0; padding: calc(var(--crystal-header-height) + 3rem) clamp(1.1rem,4vw,2.5rem) 3.25rem; background: #173e51; color: #fff; }
.crystal-service-guide-hero .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(92deg,rgba(7,29,40,.94) 0%,rgba(10,38,50,.84) 43%,rgba(13,45,59,.38) 72%,rgba(13,45,59,.18) 100%) !important; }
.crystal-service-guide-hero .wp-block-cover__image-background { object-position: center 52%; }
.crystal-service-guide-hero-inner { width: 100%; max-width: 1240px; margin-inline: auto; }
.crystal-service-guide-hero-inner > * { max-width: 680px; }
.crystal-service-guide-hero h1 {
	max-width: 18ch;
	margin-block: 1rem 1.25rem;
	font-size: clamp(2.7rem,5vw,4.7rem);
	font-weight: 550;
	line-height: 1.08;
	letter-spacing: -.045em;
	color: #fff;
}
.crystal-service-guide-hero .crystal-eyebrow { color: #c9eaf4; }
.crystal-service-guide-hero .crystal-eyebrow::before { background: #a8d8e8; }
.crystal-service-guide-hero .crystal-breadcrumb,
.crystal-service-guide-hero .crystal-breadcrumb a { color: #d5e8ef; }
.crystal-service-guide-hero .crystal-structure-lead { color: #e3eef2; }
.crystal-service-guide-hero .wp-block-buttons { margin-top: 1.5rem; }
.crystal-service-guide-hero .crystal-service-jump-links { border-top-color: rgba(202,230,240,.42); }
.crystal-service-guide-hero .crystal-service-jump-links a { color: #d8f0f7; }
.crystal-childrens-dentistry-hero .wp-block-cover__image-background { object-position: 58% 52%; }
.crystal-sports-mouthguards-hero .wp-block-cover__image-background { object-position: 54% center; }
.crystal-night-guards-hero .wp-block-cover__image-background { object-position: 52% center; }
@media (min-width: 783px) {
	/* These scenes place the smile and radiograph higher in the original photo. */
	.crystal-whitening-hero .wp-block-cover__image-background,
	.crystal-root-canals-hero .wp-block-cover__image-background { object-position: center top; }
}
.crystal-service-jump-links { display: flex; flex-wrap: wrap; gap: .6rem 1.65rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid #b9d2dd; }
.crystal-service-jump-links p { margin: 0; font-size: .88rem; }
.crystal-service-jump-links a { color: #275c71; font-weight: 650; text-underline-offset: .2em; }
.crystal-service-guide-section { padding-block: clamp(2.5rem, 4.5vw, 4rem); }
.crystal-service-guide-section p { line-height: 1.7; }
.crystal-service-guide-section h2 { margin-block: .7rem 1.25rem; }
.crystal-service-overview-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); align-items: center; gap: clamp(2rem,5vw,4.5rem); }
.crystal-service-overview-grid > *, .crystal-service-candidate-grid > * { min-width: 0; margin: 0; }
.crystal-service-overview-copy > :last-child { margin-bottom: 0; }
.crystal-service-guide-image { margin: 0; border-radius: 1.25rem; overflow: hidden; background: #e9f1f5; box-shadow: 0 14px 36px #183b4c12; }
.crystal-service-guide-image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.crystal-service-candidates { background: #edf5f8; }
.crystal-service-candidate-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(2rem,5vw,4.5rem); align-items: start; }
.crystal-service-candidate-copy p:last-child { margin-bottom: 0; color: #456573; }
.crystal-service-candidate-list { padding: 1.25rem 1.5rem 1.25rem 2.75rem; border: 1px solid #d1e1e8; border-radius: 1.15rem; background: #fff; list-style-type: disc; }
.crystal-service-candidate-list li { padding: .55rem 0 .55rem .3rem; line-height: 1.65; }
.crystal-service-candidate-list li::marker { color: #31718a; }
.crystal-service-info-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 1.3rem; margin-top: 1.75rem; }
.crystal-service-info-grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2,minmax(0,1fr)); }
.crystal-service-info-card { box-sizing: border-box; min-width: 0; height: 100%; margin: 0; padding: 1.5rem; border: 1px solid #d8e6ec; border-radius: 1.1rem; background: #f8fbfc; }
.crystal-service-info-card h3 { margin-block: 0 .7rem; }
.crystal-service-info-card p { margin-block: .5rem 0; font-size: .95rem; color: #456270; }
/* An open white section with fine dividers contrasts with adjacent blue sections. */
:is(.crystal-checkups-benefits, .crystal-service-options) { background: #fff; }
:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-grid {
	gap: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
}
:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-card {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr);
	grid-template-rows: minmax(3.75rem, max-content) 1fr;
	gap: .85rem .65rem;
	align-content: start;
	padding: clamp(1.25rem, 2.4vw, 1.9rem);
	border: 0;
	border-radius: 0;
	background: #fff;
	box-shadow: none;
}
:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-card h3 {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
	margin: 0;
}
:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-card p {
	grid-column: 1 / -1;
	align-self: start;
	margin: 0;
}
:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-card + .crystal-service-info-card { border-inline-start: 1px solid #cadde5; }
/* Existing checkups art is decorative; other topics use editable core image blocks. */
.crystal-checkups-benefits .crystal-service-info-card::before {
	content: "";
	display: block;
	width: 104px;
	height: 73px;
	margin: 0 0 .85rem;
	background: var(--crystal-benefit-art) left center / contain no-repeat;
	pointer-events: none;
}
.crystal-checkups-benefits .crystal-service-info-card::before,
.crystal-service-options .crystal-service-option-art {
	grid-column: 1;
	grid-row: 1;
	align-self: center;
	width: 100%;
	height: 3.75rem;
	margin: 0;
	background-position: center;
}
.crystal-service-option-art img { display: block; width: 100%; height: 100%; object-fit: contain; }
/* Share the heading row height even when topic titles wrap onto different lines. */
@supports (grid-template-rows: subgrid) {
	.crystal-service-options .crystal-service-info-grid { row-gap: .85rem; }
	.crystal-service-options .crystal-service-info-card { grid-row: span 2; grid-template-rows: subgrid; }
}
.crystal-checkups-benefits .crystal-service-info-card:nth-child(1) { --crystal-benefit-art: url('../images/checkups-inspection.svg'); }
.crystal-checkups-benefits .crystal-service-info-card:nth-child(2) { --crystal-benefit-art: url('../images/checkups-cleaning.svg'); }
.crystal-checkups-benefits .crystal-service-info-card:nth-child(3) { --crystal-benefit-art: url('../images/checkups-prevention.svg'); }
.crystal-service-process { background: linear-gradient(130deg,#eaf3f7,#dfedf3); }
.crystal-service-process-grid { gap: 2rem; }
.crystal-service-process-grid .crystal-service-info-card {
	position: relative;
	display: grid;
	grid-template-columns: 2.15rem minmax(0,1fr);
	grid-template-rows: auto 1fr;
	gap: .85rem .75rem;
	align-content: start;
	background: #fff;
}
.crystal-service-process-grid .crystal-service-step-number { grid-column: 1; grid-row: 1; align-self: center; display: grid; place-items: center; width: 2.15rem; height: 2.15rem; margin: 0; border-radius: 50%; background: #245c73; color: #fff; font-size: .75rem; font-weight: 700; }
.crystal-service-process-grid .crystal-service-info-card h3 { grid-column: 2; grid-row: 1; align-self: center; margin: 0; }
.crystal-service-process-grid .crystal-service-info-card p:not(.crystal-service-step-number) { grid-column: 1 / -1; grid-row: 2; align-self: start; margin: 0; }
/* Keep descriptions aligned when one title wraps onto an extra line. */
@supports (grid-template-rows: subgrid) {
	.crystal-service-process-grid { row-gap: .85rem; }
	.crystal-service-process-grid .crystal-service-info-card { grid-row: span 2; grid-template-rows: subgrid; }
}
.crystal-service-process-grid .crystal-service-info-card:not(:last-child)::after { content: "→"; position: absolute; top: 50%; right: -1.55rem; color: #356e83; font-size: 1.2rem; transform: translateY(-50%); }
.crystal-service-why-grid .crystal-service-info-card { padding: 0 1.4rem 0 0; border: 0; border-radius: 0; border-right: 1px solid #d5e4ea; background: none; }
.crystal-service-why-grid .crystal-service-info-card:last-child { border: 0; }
.crystal-service-team { margin-top: 2.5rem; padding-top: 2.5rem; border-top: 1px solid #d5e4ea; }
.crystal-service-team h2 { font-size: clamp(1.8rem,2.7vw,2.5rem); }
.crystal-service-team .crystal-doctor-grid { max-width: none !important; margin-top: 1.5rem !important; }
.crystal-service-team .wp-block-buttons { justify-content: center; margin-top: 1.75rem; }
.crystal-service-faq { background: #f0f6f9; }
.crystal-service-faq-grid { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); align-items: start; gap: clamp(2rem,5vw,4.5rem); }
.crystal-service-faq-grid > * { min-width: 0; margin: 0; }
.crystal-service-faq-heading h2 { max-width: 20ch; }
.crystal-service-faq-list .crystal-faq-item { max-width: none; margin-top: 0; border-color: #cedee6; }
.crystal-service-faq-list .crystal-faq-item + .crystal-faq-item { margin-top: .6rem; }
.crystal-service-faq-list .crystal-faq-item summary { font-weight: 650; }
.crystal-service-reading { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid #d0e1e8; color: #506d7b; font-size: .78rem; }
.crystal-service-reading a { color: #356477; }
@media (min-width: 783px) and (max-width: 1100px) {
	:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-card {
		grid-template-columns: 3.5rem minmax(0, 1fr);
		grid-template-rows: minmax(4.5rem, max-content) 1fr;
	}
	@supports (grid-template-rows: subgrid) {
		.crystal-service-options .crystal-service-info-card { grid-template-rows: subgrid; }
	}
}
@media (max-width: 900px) {
	.crystal-service-team .crystal-doctor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 782px) {
	.crystal-service-guide-intro { padding-top: calc(var(--crystal-header-height) + 2rem); padding-bottom: 2rem; }
	.crystal-service-guide-hero h1 { font-size: clamp(2.5rem,10vw,3.7rem); }
	.crystal-service-guide-hero { min-height: 520px !important; padding-top: calc(var(--crystal-header-height) + 2rem); padding-bottom: 2.25rem; }
	.crystal-service-guide-hero .wp-block-cover__background { background: linear-gradient(180deg,rgba(7,29,40,.86),rgba(7,29,40,.78) 54%,rgba(7,29,40,.94)) !important; }
	.crystal-service-guide-hero .wp-block-cover__image-background { object-position: 61% center; }
	.crystal-childrens-dentistry-hero .wp-block-cover__image-background { object-position: 69% center; }
	.crystal-sports-mouthguards-hero .wp-block-cover__image-background { object-position: 72% center; }
	.crystal-night-guards-hero .wp-block-cover__image-background { object-position: 72% center; }
	/* Keep each approved model in view when a wide hero is cropped for a phone. */
	.crystal-model-service-hero .wp-block-cover__image-background { object-position: 78% center; }
	.crystal-service-overview-grid, .crystal-service-candidate-grid, .crystal-service-faq-grid { grid-template-columns: 1fr; gap: 1.5rem; }
	.crystal-service-info-grid, .crystal-service-info-grid:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; gap: 1rem; }
	:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-grid { gap: 0; }
	:is(.crystal-checkups-benefits, .crystal-service-options) .crystal-service-info-card + .crystal-service-info-card { border-inline-start: 0; border-top: 1px solid #cadde5; }
	.crystal-service-process-grid { gap: 1.8rem; }
	.crystal-service-process-grid .crystal-service-info-card:not(:last-child)::after { content: "↓"; top: auto; right: 50%; bottom: -1.55rem; transform: translateX(50%); }
	.crystal-service-info-card { padding: 1.25rem; }
	.crystal-service-why-grid .crystal-service-info-card { padding: 0 0 1rem; border-right: 0; border-bottom: 1px solid #d5e4ea; }
	.crystal-service-team .crystal-doctor-copy { padding: .8rem; }
	.crystal-service-team .crystal-doctor-copy h3 { font-size: .9rem !important; overflow-wrap: normal; }
	.crystal-service-team .crystal-doctor-role { font-size: .61rem; letter-spacing: 0; }
	.crystal-service-team .crystal-doctor-grid { gap: .85rem; }
	.crystal-service-team .crystal-doctor-photo { aspect-ratio: 4 / 5; }
	.crystal-service-faq-heading h2 { max-width: none; }
}
@media (max-width: 359px) {
	.crystal-service-team .crystal-doctor-grid { grid-template-columns: 1fr; max-width: 260px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.crystal-service-team .crystal-doctor-photo a { transition: none; }
}
