/* Homepage compositions share the foundation's semantic palette and native blocks. */
.homepage-content > * { margin-block: 0; }
.rd-home-main { padding: 0; }
.rd-home-section { padding-block: clamp(3.5rem, 7vw, 6rem); }
.rd-home-section + .rd-home-section { border-block-start: 1px solid var(--rd-color-divider); }
.rd-home-section h2 { max-width: 24ch; }
.rd-home-section h3 { font-size: 1.25rem; }
.rd-home-kicker { font-family: var(--rd-font-mono); color: var(--rd-color-accent); font-size: 0.75rem; letter-spacing: 0.07em; line-height: 1.6; margin-block: 0 1rem; }
.rd-home-intro { max-width: 58ch; color: var(--rd-color-muted); }
.rd-home-section-head { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-block-end: 2rem; }
.rd-home-section-head > * { min-width: 0; }
.rd-home-section-head p { margin-block-end: 0; }
.rd-home-section-head h2 { margin-block-end: 0.75rem; }

.rd-home-hero { padding-block: clamp(3rem, 6vw, 5.5rem); }
.rd-hero-grid { display: grid; gap: 3rem; align-items: center; }
.rd-hero-grid > * { min-width: 0; }
.rd-hero-copy h1 { font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem); line-height: 1.12; max-width: 17ch; margin-block-end: 1.5rem; text-wrap: initial; }
.rd-hero-copy .rd-lead { font-size: clamp(1.0625rem, 1rem + 0.2vw, 1.1875rem); max-width: 51ch; margin-block-end: 1.75rem; }
.rd-hero-copy .wp-block-buttons { margin-block-end: 1.5rem; }
.rd-hero-availability { font-size: 0.8125rem; color: var(--rd-color-muted); margin-block: 0; display: flex; gap: 0.5rem; align-items: baseline; }
.rd-hero-availability::before { content: ""; display: block; width: 0.375rem; height: 0.375rem; flex: 0 0 0.375rem; background: var(--rd-color-accent); }

.rd-service-map { border: 1px solid var(--rd-color-divider); border-radius: var(--rd-radius-lg); padding: clamp(1.25rem, 3vw, 2rem); background: var(--rd-color-surface); }
.rd-map-header { display: flex; justify-content: space-between; gap: 1rem; border-block-end: 1px solid var(--rd-color-divider); padding-block-end: 1rem; margin-block-end: 1.5rem; }
.rd-map-header p { margin: 0; font-size: 0.6875rem; letter-spacing: 0.07em; font-family: var(--rd-font-mono); color: var(--rd-color-muted); }
.rd-map-header p:last-child { color: var(--rd-color-accent); }
.rd-map-step { position: relative; padding-inline-start: 3.25rem; padding-block: 0 1.75rem; }
.rd-map-step::before { position: absolute; content: ""; inset-inline-start: 0.9375rem; inset-block: 1.75rem 0; width: 1px; background: var(--rd-color-divider); }
.rd-map-step:last-of-type { padding-block-end: 0; }
.rd-map-step:last-of-type::before { display: none; }
.rd-map-number { position: absolute; inset-inline-start: 0; inset-block-start: 0; width: 2rem; height: 2rem; display: grid; place-items: center; border: 1px solid var(--rd-color-border); border-radius: var(--rd-radius-sm); font-family: var(--rd-font-mono); font-size: 0.75rem; color: var(--rd-color-accent); margin: 0; }
.rd-map-title { font-size: 1.25rem; font-weight: 600; line-height: 1.4; margin-block: 0 0.25rem; }
.rd-map-detail { font-size: 0.8125rem; color: var(--rd-color-muted); margin: 0; }
.rd-map-footnote { border-block-start: 1px solid var(--rd-color-divider); padding-block-start: 1rem; margin-block: 1.5rem 0; font-size: 0.75rem; color: var(--rd-color-muted); }
.rd-map-footnote strong { color: var(--rd-color-accent); font-weight: 500; }

.rd-expertise { padding-block: 1.5rem; border-block: 1px solid var(--rd-color-divider); }
.rd-expertise-list { list-style: none; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 1.5rem; padding: 0; margin: 0; font-size: 0.8125rem; font-weight: 600; color: var(--rd-color-muted); }
.rd-expertise-list li { margin: 0; }

.rd-services-grid { display: grid; gap: 0 2.5rem; }
.rd-service { min-width: 0; padding-block: 1.75rem; border-block-start: 1px solid var(--rd-color-divider); }
.rd-service-top { display: flex; align-items: baseline; gap: 1rem; }
.rd-service-top p { font-family: var(--rd-font-mono); font-size: 0.75rem; color: var(--rd-color-accent); margin-block-end: 0.75rem; }
.rd-service-top h3 { margin-block-end: 0.75rem; }
.rd-service-benefit { font-weight: 500; margin-block-end: 0.5rem; }
.rd-service-description { font-size: 1rem; color: var(--rd-color-muted); max-width: 53ch; margin-block-end: 0.75rem; }
.rd-service details { border: none; font-size: 0.9375rem; }
.rd-service summary { color: var(--rd-color-primary); font-size: 0.875rem; min-height: 2.75rem; font-weight: 600; }
.rd-service details p { color: var(--rd-color-muted); }
.rd-service-page-link { font-size: .875rem; margin-block: .5rem 0; }
.rd-service-page-link a { display: inline-block; padding-block: .5rem; }

.rd-approach-grid { display: grid; gap: 2rem 5rem; }
.rd-approach-list { counter-reset: approach; }
.rd-approach-item { padding-block: 0 1.5rem; margin-block-end: 1.5rem; border-block-end: 1px solid var(--rd-color-divider); }
.rd-approach-item:last-child { margin: 0; padding: 0; border: none; }
.rd-approach-item h3 { margin-block-end: 0.5rem; }
.rd-approach-item p { color: var(--rd-color-muted); font-size: 1rem; margin: 0; }
.rd-tools { margin-block-start: 3rem; padding-block-start: 1.5rem; border-block-start: 1px solid var(--rd-color-divider); }
.rd-tools-label { color: var(--rd-color-muted); font-size: 0.8125rem; margin-block-end: 1rem; }
.rd-tool-list { list-style: none; display: flex; flex-wrap: wrap; gap: 0.75rem 1.75rem; margin: 0; padding: 0; }
.rd-tool-list li { font-size: 0.9375rem; font-weight: 500; }

.rd-work-grid { display: grid; gap: 1.5rem; }
.rd-work-slot { min-width: 0; }
.rd-work-frame { display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 16 / 10; padding: 1.5rem; border: 1px dashed var(--rd-color-border); border-radius: var(--rd-radius-md); background: var(--rd-color-surface); margin-block-end: 1rem; }
.rd-work-frame p:first-child { font-family: var(--rd-font-mono); font-size: 0.6875rem; letter-spacing: 0.08em; color: var(--rd-color-muted); margin: 0; }
.rd-work-frame p:last-child { font-family: var(--rd-font-mono); font-size: 2rem; line-height: 1; color: var(--rd-color-border); margin: 0; }
.rd-work-slot h3 { font-size: 1.0625rem; margin-block-end: 0.5rem; }
.rd-work-slot > p { font-size: 0.875rem; color: var(--rd-color-muted); margin: 0; }
.rd-placeholder-note { color: var(--rd-color-muted); font-size: 0.875rem; max-width: 58ch; }
.rd-proof-grid { display: grid; gap: 3rem; }
.rd-proof-grid h2 { font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2rem); }
.rd-proof-placeholder { border-inline-start: 2px solid var(--rd-color-accent); padding-inline-start: 1.25rem; }
.rd-proof-placeholder p { font-size: 1rem; color: var(--rd-color-muted); margin-block-end: 0.75rem; }
.rd-proof-placeholder p:last-child { font-family: var(--rd-font-mono); font-size: 0.6875rem; letter-spacing: 0.04em; margin: 0; }

.rd-process-list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; padding: 0; margin: 2rem 0 0; counter-reset: process; }
.rd-process-list > li { min-width: 0; border-block-start: 1px solid var(--rd-color-border); padding-block-start: 1rem; counter-increment: process; font-size: 0.875rem; color: var(--rd-color-muted); }
.rd-process-list > li::before { content: "0" counter(process); display: block; font-family: var(--rd-font-mono); color: var(--rd-color-accent); font-size: 0.75rem; margin-block-end: 1.25rem; }
.rd-process-list strong { display: block; font-size: 1.0625rem; font-weight: 600; color: var(--rd-color-text); margin-block-end: 0.5rem; }

.rd-insights-query .wp-block-post-template { gap: 1.5rem; }
.rd-insights-query .wp-block-post { padding-block-start: 1.5rem; border-block-start: 1px solid var(--rd-color-divider); min-width: 0; }
.rd-insights-query .wp-block-post-title { font-size: 1.25rem; }
.rd-insights-query .wp-block-post-date { color: var(--rd-color-muted); font-size: 0.8125rem; margin-block-end: 0.75rem; }
.rd-insights-query .wp-block-post-excerpt { font-size: 1rem; color: var(--rd-color-muted); }
.rd-insights-query .wp-block-post-featured-image { aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--rd-radius-md); }
.rd-insights-query .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.rd-insights-empty { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 2rem; border: 1px solid var(--rd-color-divider); border-radius: var(--rd-radius-md); background: var(--rd-color-surface); }
.rd-insights-empty p { margin: 0; color: var(--rd-color-muted); font-size: 1rem; max-width: 48ch; }
.rd-insights-empty .rd-topic-label { color: var(--rd-color-accent); font-family: var(--rd-font-mono); font-size: 0.75rem; }

.rd-home-faq { display: grid; gap: 2rem 4rem; }
.rd-home-faq h2 { font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2rem); }
.rd-home-faq summary { font-size: 1rem; }
.rd-home-faq details p { font-size: 1rem; color: var(--rd-color-muted); }
.rd-final-cta-wrap { padding-block-end: clamp(3rem, 6vw, 5rem); }
.rd-final-cta { background: var(--rd-color-accent-surface); padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--rd-radius-lg); display: grid; gap: 2rem; }
.rd-final-cta h2 { font-size: clamp(1.875rem, 1.25rem + 2vw, 2.75rem); max-width: 22ch; }
.rd-final-cta .rd-home-intro { color: var(--rd-color-text); margin-block-end: 0; font-size: 1rem; }
.rd-contact-state { align-self: center; border: 1px dashed var(--rd-color-border); border-radius: var(--rd-radius-md); padding: 1.5rem; background: var(--rd-color-canvas); }
.rd-contact-state p { font-size: 0.875rem; color: var(--rd-color-muted); margin-block-end: 1rem; }
.rd-contact-state p:first-child { color: var(--rd-color-text); font-size: 1rem; font-weight: 600; }
.rd-contact-state p:last-child { margin: 0; }

@media (min-width: 48rem) {
	.rd-services-grid, .rd-proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rd-service:last-child { grid-column: 1 / -1; }
	.rd-service:last-child .rd-service-description { max-width: 75ch; }
	.rd-work-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rd-process-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rd-proof-grid > :last-child { border-inline-start: 1px solid var(--rd-color-divider); padding-inline-start: 3rem; }
}

@media (min-width: 64rem) {
	.rd-hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 4rem; }
	.rd-approach-grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
	.rd-process-list { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.rd-home-faq { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
	.rd-final-cta { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 4rem; }
}

@media (max-width: 37.5rem) {
	.rd-insights-query .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr; }
	.rd-insights-empty { padding: 1.25rem; }
}

/* Match the composition in Gutenberg without affecting other page types. */
.editor-styles-wrapper .rd-container { width: 100%; max-width: 72rem; margin-inline: auto; }
.editor-styles-wrapper .rd-home-hero, .editor-styles-wrapper .rd-home-section, .editor-styles-wrapper .rd-expertise, .editor-styles-wrapper .rd-final-cta-wrap { max-width: 72rem; }
.editor-styles-wrapper .rd-home-hero .wp-block, .editor-styles-wrapper .rd-home-section .wp-block, .editor-styles-wrapper .rd-final-cta .wp-block { max-width: none; }
