/* Shared homepage sections; future page templates reuse these components. */
.hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr); min-height: var(--hero-min-height); background: var(--color-surface); border-radius: var(--radius-lg); overflow: hidden; }
.hero__content { position: relative; z-index: 1; padding: clamp(2rem, 4.2vw, 3.75rem); display: flex; align-items: flex-start; justify-content: center; flex-direction: column; }
.hero h1 { max-width: 17ch; line-height: 1.09; letter-spacing: -.035em; }
.hero h1 .text-primary { display: block; color: var(--color-accent); margin-top: var(--space-2); }
.hero__text { max-width: 42ch; margin: var(--space-6) 0; color: var(--color-text-muted); line-height: 1.7; }
.hero-offer { display: flex; align-items: flex-start; gap: var(--space-2); margin-bottom: var(--space-6); color: var(--color-primary-dark); }
.hero-offer > .cdi-icon { margin-top: var(--space-1); width: var(--icon-sm); height: var(--icon-sm); }
.hero-offer p { font-weight: var(--font-weight-semibold); margin-bottom: 0; }
.hero-offer span { display: block; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.hero > .cdi-media { height: auto; min-height: 0; align-self: stretch; aspect-ratio: auto; }
.hero > .cdi-media:not(.media-placeholder)::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, var(--color-surface), transparent 17%); }
.hero .cdi-media__image { position: absolute; inset: 0; object-position: 50% 22%; }
.hero .media-placeholder__frame { width: 64%; aspect-ratio: .85; }
.hero .media-placeholder__frame::before { inset: var(--space-6); }
.services { margin-top: var(--section-space-comfortable); }
.pricing-section { margin-top: var(--section-space-feature); padding-block: var(--section-space-comfortable); background: var(--color-surface); }
.pricing-consultation { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); margin-top: var(--space-8); padding: var(--space-8); border: 1px solid var(--color-placeholder-line); border-radius: var(--radius-md); background: var(--color-primary-light); }
.pricing-consultation h3 { margin-bottom: var(--space-3); font-size: var(--font-size-2xl); color: var(--color-primary-dark); }
.pricing-consultation p { color: var(--color-text-muted); max-width: 68ch; margin: 0; }
.pricing-consultation .button { flex-shrink: 0; }
.reviews { margin-top: var(--section-space-comfortable); }
.expertise { margin-top: var(--section-space-feature); }
.contact-section { margin-top: var(--section-space-compact); }
.reviews-empty { padding-block: var(--space-2); }
.reviews-empty__card { display: grid; gap: var(--space-6); padding: var(--space-6); min-height: 11rem; }
.reviews-empty__header { display: flex; align-items: center; gap: var(--space-3); color: var(--color-text-muted); font-size: var(--font-size-sm); }
.reviews-empty__header > .cdi-icon { color: var(--color-accent); }
.reviews-empty__lines { display: grid; align-content: start; gap: var(--space-3); }
.reviews-empty__lines span { display: block; height: var(--space-2); background: var(--color-primary-light); border-radius: var(--radius-sm); }
.reviews-empty__lines span:last-child { width: 55%; }
.feature-banner { display: grid; grid-template-columns: 1fr 1fr; min-height: 25rem; overflow: hidden; border-radius: var(--radius-lg); border: 1px solid var(--color-border); background: var(--color-surface); }
.feature-banner__content { padding: var(--space-10); align-self: center; }
.feature-banner__content .section-heading { margin-bottom: var(--space-6); }
.feature-banner__content h2 { max-width: 17ch; font-size: clamp(2rem, 3vw, 2.625rem); }
.feature-banner__points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); margin-block: var(--space-6); }
.feature-banner > .cdi-media { height: auto; min-height: 0; align-self: stretch; aspect-ratio: auto; }
.feature-banner .cdi-media__image { position: absolute; inset: 0; object-position: center; }
.contact-panel { display: grid; grid-template-columns: 1fr 1fr 1.12fr; gap: var(--space-6); padding: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.contact-panel > * { min-width: 0; }
.contact-panel .section-heading { margin-bottom: var(--space-6); }
.contact-panel h2 { font-size: var(--font-size-xl); line-height: 1.3; }
.contact-panel h2 .text-primary { display: block; }
.contact-panel .section-heading__text { font-size: var(--font-size-sm); }
.contact-panel__details > .button { margin-top: var(--space-6); }
.contact-form { display: grid; align-content: start; gap: var(--space-3); background: var(--color-surface); padding: var(--space-5); border: var(--card-border); border-radius: var(--card-radius); box-shadow: var(--card-shadow); }
.contact-form > .button { justify-self: start; }
.contact-map { position: relative; min-height: 100%; }
.contact-map__link { position: absolute; bottom: var(--space-4); left: var(--space-4); right: var(--space-4); }
.contact-map--ready { display: flex; flex-direction: column; gap: var(--space-3); }
.contact-map__preview { display: block; flex: 1; min-height: 0; border-radius: var(--radius-md); overflow: hidden; background: var(--color-surface); }
.contact-map--ready .cdi-media--map { height: 100%; min-height: 0; aspect-ratio: 600 / 680; }
.contact-map--ready .cdi-media__image { object-fit: contain; }
.contact-map--ready .contact-map__actions { display: grid; gap: var(--space-2); }
.contact-map--ready .contact-map__link { position: static; }
.contact-map__profile { display: block; font-size: var(--font-size-sm); text-align: center; text-decoration: underline; text-underline-offset: .2em; }
.home-editorial .entry-content { margin-inline: auto; }
.entry-content { max-width: var(--content-width); }
.entry-content > * { max-width: 100%; }
.entry-content > * + * { margin-top: var(--space-5); }
.entry-content .alignwide { width: min(var(--container-width), calc(100vw - var(--page-gutter) * 2)); max-width: none; }
.entry-content .alignfull { max-width: 100%; }
.entry-header { margin-bottom: var(--space-8); }
.posts-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: var(--space-8); }
.post-card { min-width: 0; padding-bottom: var(--space-6); border-bottom: 1px solid var(--color-border); }
.post-thumbnail img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-md); }
.entry-meta { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); color: var(--color-text-muted); font-size: var(--font-size-sm); }
.featured-image, .search-form { margin-block: var(--space-8); }
.pagination, .post-navigation, .comments-area { margin-top: var(--space-8); }
.nav-links { display: flex; flex-wrap: wrap; gap: var(--space-4); justify-content: space-between; }
.page-numbers { padding: var(--space-2) var(--space-3); }
.search-form { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.search-form label { flex-basis: 100%; }
.comment-list { padding-left: var(--space-6); }
.comment-form textarea { width: 100%; }
@media (max-width: 70rem) {
	.hero__content { padding: var(--space-8); }
	.hero h1 { font-size: clamp(2.375rem, 4vw, 3rem); }
	.hero .button-group { gap: var(--space-2); }
	.contact-panel { grid-template-columns: 1fr 1fr; }
	.contact-map { grid-column: 1 / -1; }
	.cdi-media--map { aspect-ratio: 2.5; min-height: 20rem; }
	.cdi-media--map .media-placeholder__frame { width: var(--space-24); }
	.cdi-media--map .media-placeholder__caption { left: 50%; right: var(--space-8); bottom: 45%; }
	.contact-map__link { left: auto; width: auto; }
	.feature-banner { grid-template-columns: 1.1fr 1fr; }
	.feature-banner__content { padding: var(--space-8); }
	.pricing-consultation { align-items: flex-start; flex-direction: column; gap: var(--space-5); }
}
@media (max-width: 47.99rem) {
	.hero { grid-template-columns: 1fr; min-height: 0; }
	.hero__content { padding: var(--space-8) var(--space-6); }
	.hero h1 { font-size: var(--font-size-hero); max-width: 16ch; }
	.hero__text { font-size: var(--font-size-md); }
	.hero > .cdi-media { aspect-ratio: 1.3; min-height: 0; }
	.hero > .cdi-media:not(.media-placeholder)::after { background: linear-gradient(180deg, var(--color-surface), transparent 18%); }
	.hero .media-placeholder__frame { width: 45%; aspect-ratio: 1; }
	.hero .media-placeholder__frame::before { inset: var(--space-3); }
	.hero .media-placeholder__caption { bottom: var(--space-4); }
	.hero .button-group { display: grid; width: 100%; gap: var(--space-3); }
	.reviews-empty { gap: var(--space-4); }
	.reviews-empty__card { padding: var(--space-6); }
	.feature-banner { grid-template-columns: 1fr; }
	.feature-banner__content { padding: var(--space-8) var(--space-6); }
	.feature-banner > .cdi-media { min-height: 0; aspect-ratio: 1.5; }
	.feature-banner .media-placeholder__frame { width: 40%; }
	.feature-banner__points { gap: var(--space-5) var(--space-3); }
	.icon-text { align-items: flex-start; flex-direction: column; }
	.contact-panel { grid-template-columns: 1fr; padding: var(--space-6); gap: var(--space-8); }
	.contact-map { grid-column: auto; }
	.cdi-media--map { aspect-ratio: 1; min-height: 21rem; }
	.cdi-media--map .media-placeholder__caption { left: var(--space-4); right: var(--space-4); bottom: var(--space-20); }
	.contact-map__link { left: var(--space-4); right: var(--space-4); }
	.contact-panel__details > .button { width: 100%; }
	.card-price { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:var(--space-2) var(--space-3); padding:var(--space-4); }
	.card-price h3 { margin:0; font-size:var(--font-size-card-title-mobile); }
	.card-price__amount { grid-column:2; grid-row:1; margin:0; font-size:var(--font-size-price-mobile); letter-spacing:-.035em; }
	.card-price__prefix { font-size:var(--font-size-sm); margin-bottom:var(--space-1); }
	.card-price__unit { font-size:var(--font-size-md); }
	.card-price__text { grid-column:1 / -1; margin:0; font-size:var(--font-size-md); line-height:1.4; }
	.card-price__disclaimer { grid-column:1 / -1; margin:0; padding-top:var(--space-2); font-size:var(--font-size-sm); line-height:1.4; }
	.card-price > .button { grid-column:1 / -1; min-height:var(--target-size); padding-block:var(--space-2); }
	.pricing-grid { gap:var(--space-3); }
	.card-review blockquote p, .card-service p { font-size:var(--font-size-md); }
	.pricing-consultation { padding: var(--space-6); }
	.pricing-consultation .button { width: 100%; }
	.contact-form { padding: var(--space-4); }
}
