/* WordPress / Gutenberg wrappers for the Dearness design.
   Loaded after styles.css. */

.wp-site-blocks,
.wp-block-post-content,
main.wp-block-group {
	margin: 0;
	padding: 0;
}

/* Template-part wrappers would trap the sticky header inside their own height. */
.wp-site-blocks > .wp-block-template-part {
	display: contents;
}

/* Buttons and text links are paragraphs in the editor; on the page the
   paragraph steps aside so the button sits in its row exactly as designed. */
p.btn-wrap,
p.span-wrap {
	display: contents;
}

/* Whole-card links: the heading carries the link and stretches over the card.
   Turned off in the editor (editor.css) so the text stays clickable there. */
.is-card-link {
	position: relative;
}

.is-card-link a.card-link {
	color: inherit;
	text-decoration: none;
}

.is-card-link a.card-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* FAQ: core Details blocks styled like the design's accordion. */
.wp-block-details.accordion-item {
	border-bottom: 1px solid var(--color-line);
}

.wp-block-details.accordion-item > summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.1rem 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--font-body);
	font-weight: 600;
	color: var(--color-navy);
	font-size: 1rem;
}

.wp-block-details.accordion-item > summary::-webkit-details-marker {
	display: none;
}

.wp-block-details.accordion-item > summary::after {
	content: "+";
	font-size: 1.3rem;
	line-height: 1;
	color: var(--color-accent-dark);
	transition: transform 0.2s ease;
}

.wp-block-details.accordion-item[open] > summary::after {
	transform: rotate(45deg);
}

.wp-block-details.accordion-item > :not(summary) {
	color: var(--color-ink-muted);
	margin: 0 0 1.1rem;
}

/* Hours: a core Table block. */
.wp-block-table.hours-table {
	margin: 0;
}

.wp-block-table.hours-table table {
	width: 100%;
	border-collapse: collapse;
}

.wp-block-table.hours-table td,
.wp-block-table.hours-table th {
	border: 0;
	border-bottom: 1px solid var(--color-line);
	padding: 0.55rem 0;
}

.wp-block-table.hours-table tr:last-child td {
	border-bottom: none;
}

/* Lists made of cards keep the design's bare list. */
ul.wp-block-group,
ol.wp-block-group {
	list-style: none;
}

/* Appointment form. */
.contact-form {
	max-width: 640px;
	margin: 0 auto;
}

.form-status {
	max-width: 640px;
	margin: 0 auto 1.5rem;
	padding: 1rem 1.25rem;
	border-radius: 8px;
	font-weight: 600;
}

.form-status.is-sent {
	background: #e6f4ea;
	color: #1e5631;
}

.form-status.is-error {
	background: #fdecea;
	color: #8a1c1c;
}

.form-privacy {
	margin: 0;
	font-size: 0.85rem;
	color: var(--color-ink-muted);
}

.hp {
	position: absolute !important;
	left: -9999px;
	height: 0;
	overflow: hidden;
}

/* Utilities that replace the static pages' inline styles. */
.u-justify-center { justify-content: center !important; }
.u-bg-cream-soft { background: var(--color-cream-soft) !important; }
.u-mt-xl { margin-top: var(--space-xl) !important; }
.u-mt-lg { margin-top: var(--space-lg) !important; }
.u-mb-lg { margin-bottom: var(--space-lg) !important; }
.u-mb-2 { margin-bottom: 2rem !important; }
.u-mb-125 { margin-bottom: 1.25rem !important; }
.u-mt-125 { margin-top: 1.25rem !important; }
.u-text-center { text-align: center !important; }
.u-pt-0 { padding-top: 0 !important; }
.u-objpos-32 { object-position: 32% center !important; }
.u-objpos-28 { object-position: 28% center !important; }
.u-objpos-22 { object-position: 22% center !important; }
.u-intro-640 { max-width: 640px; margin: 0 auto 1.5rem !important; color: var(--color-ink-muted); }
.u-intro-620 { max-width: 620px; margin: 0 auto 0.5rem !important; color: var(--color-ink-muted); }
.u-cols-1 { grid-template-columns: 1fr !important; }
.u-fs-108 { font-size: 1.08rem !important; }
.u-fs-092 { font-size: 0.92rem !important; }
.u-muted { color: var(--color-ink-muted) !important; }
.u-m-0 { margin: 0 !important; }
