/* Roles shared by ES, EN, FR and DE. Values in rem respect the reader's size. */
:root {
	--dreamsun-font-body: "Montserrat", Arial, sans-serif;
	--dreamsun-font-display: "Libre Caslon Text", Georgia, serif;
	--dreamsun-type-hero: 3.75rem;
	--dreamsun-type-title: 3rem;
	--dreamsun-type-article-title: 3.25rem;
	--dreamsun-type-section: 2rem;
	--dreamsun-type-home-section: 2.5rem;
	--dreamsun-type-subheading: 1.5rem;
	--dreamsun-type-card: 1.25rem;
	--dreamsun-type-body: 1rem;
	--dreamsun-type-reading: 1.0625rem;
	--dreamsun-type-meta: .875rem;
}
body, button, input, select, textarea {
	font-family: var(--dreamsun-font-body);
}
body { font-size: var(--dreamsun-type-body); line-height: 1.75; }
body #content :is(p, li) { overflow-wrap: break-word; }
body #content p { font-size: inherit; }
body #content :is(h1, h2) {
	font-family: var(--dreamsun-font-display);
	font-weight: 400;
	letter-spacing: -.025em;
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: auto;
}
body #content h1 { font-size: var(--dreamsun-type-title); line-height: 1.2; }
body #content h2 { font-size: var(--dreamsun-type-section); line-height: 1.25; }
body #content h3 {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-subheading);
	font-weight: 500;
	letter-spacing: -.015em;
	line-height: 1.4;
	overflow-wrap: break-word;
	hyphens: auto;
}
body #content :is(h4, h5, h6) { font-family: var(--dreamsun-font-body); font-weight: 500; line-height: 1.5; }
body #content :is(h1, h2, h3) :is(strong, b, a) { font-family: inherit; font-weight: inherit; }
body #content :is(p, li, label) :is(strong, b) { font-weight: 600; }
body #content :is(input, select, textarea) {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-body);
}
body #content :is(.dreamsun-button, .wp-block-button__link, button, input[type="submit"]) {
	font-family: var(--dreamsun-font-body);
	font-weight: 600;
	line-height: 1.5;
}
body #content :is(.dreamsun-button, .wp-block-button__link, input[type="submit"]) {
	font-size: var(--dreamsun-type-meta);
	white-space: normal;
	overflow-wrap: break-word;
}
body #content .dreamsun-lightbox__control { line-height: 1; }
body #content .ds-hero__stage::after { background: rgb(0 0 0 / .56); }
body #content .ds-hero h1 { font-size: var(--dreamsun-type-hero); line-height: 1.2; }
body.home #content h2 { font-size: var(--dreamsun-type-home-section); }
body.dreamsun-catalogue-page #content h1 { font-size: var(--dreamsun-type-title); }
body.dreamsun-legal-page #content .entry-title { font-size: var(--dreamsun-type-title); font-weight: 400; }
body #content .dreamsun-service-page h2 { font-weight: 400; }
body #content :is(.dreamsun-service-page, .dreamsun-local-copy, .dreamsun-legal) :is(p, li),
body #content .dreamsun-property-detail__content {
	font-size: var(--dreamsun-type-body);
	line-height: 1.8;
}
body #content :is(.dreamsun-service-page, .dreamsun-local-copy, .dreamsun-legal) p { max-width: 72ch; }
body #content .dreamsun-property-detail__content h2 { margin-block: 2.5rem 1rem; }
body #content .dreamsun-property-detail__content h3 { margin-block: 2rem .75rem; }
body #content .dreamsun-property-detail__content h4 {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-body);
	font-weight: 400;
	line-height: 1.8;
	margin-block: 1.5em;
}
body #content .dreamsun-property-overview > * { min-width: 0; max-width: 100%; }
body #content .dreamsun-property-detail__content { width: 100%; max-width: 70ch; }
body #content .dreamsun-properties__actions .dreamsun-button { min-width: min(12.5rem, 100%); max-width: 100%; }
body #content .dreamsun-property-card__price { font-size: 1.125rem; font-weight: 500; }
body #content .dreamsun-property-detail__price { font-size: clamp(1.75rem, 3vw, 2.35rem); font-weight: 600; }
body #content :is(.dreamsun-property-overview .dreamsun-form h2, .dreamsun-form h2) {
	font-size: 1.625rem;
	line-height: 1.3;
}
/* Cards use a compact sans role even when rendered as Astra blog titles. */
body #content .dreamsun-properties .dreamsun-property-card h3,
body.dreamsun-blog-index #content #primary .entry-title,
body.dreamsun-blog-entry #content .ast-related-post .entry-title {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-card);
	font-weight: 500;
	letter-spacing: -.015em;
	line-height: 1.35;
	text-wrap: pretty;
}
/* Reading surfaces retain a stable, bounded measure. */
body.dreamsun-blog-entry #content #primary .ast-article-single .entry-header h1 {
	font-size: var(--dreamsun-type-article-title);
	line-height: 1.2;
}
body.dreamsun-blog-entry #content #primary .entry-content {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-reading);
	line-height: 1.85;
	max-width: 70ch;
}
body.dreamsun-blog-entry #content #primary .entry-content :is(p, ul, ol, blockquote) { margin-bottom: 1.65em; }
body.dreamsun-blog-entry #content #primary .entry-content h2 { font-size: var(--dreamsun-type-section); line-height: 1.3; }
body.dreamsun-blog-entry #content #primary .entry-content h3 { font-size: var(--dreamsun-type-subheading); }
/* Legacy long introductory h4 blocks already function as prose. */
body.dreamsun-blog-entry #content #primary .entry-content h4 {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-reading);
	font-weight: 500;
	line-height: 1.85;
}
body.dreamsun-blog-index #content #primary .ast-excerpt-container { font-size: var(--dreamsun-type-body); line-height: 1.75; }
body.dreamsun-blog-entry #content #primary .post-navigation p { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
/* One legible metadata role for filters, references, notes and privacy text. */
body #content .dreamsun-property-search label,
body #content .dreamsun-property-search label > span,
body #content .dreamsun-properties__filters label > span:not(.screen-reader-text),
body #content .dreamsun-property-detail__facts strong,
body #content .dreamsun-property-detail__details dt,
body #content .dreamsun-property-card .dreamsun-property-card__reference,
body #content :is(.dreamsun-property-card__meta, .dreamsun-property-status, .dreamsun-image-caption, .dreamsun-blog-image-note, .dreamsun-reading-time),
body #content .dreamsun-form :is(label, .dreamsun-form__information, .dsl-privacy-info, .dsl-privacy-link, .wpcf7-not-valid-tip, .dsl-error, .dsl-property-context),
body #content .entry-meta,
body.dreamsun-blog-entry #content #primary .ast-article-single .entry-meta,
body.dreamsun-blog-entry #content #primary .entry-content :is(figcaption, .wp-element-caption),
body #content .dreamsun-service-page :is(figcaption, .wp-element-caption),
body #content .post-navigation .ast-post-nav {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-meta);
	line-height: 1.6;
}
body #content .dreamsun-property-detail__facts strong { font-weight: 500; letter-spacing: .015em; }
body #content .dreamsun-property-detail__details dt { font-weight: 600; }
body #content .dreamsun-property-detail__details :is(dt, dd) { overflow-wrap: anywhere; hyphens: auto; }
body #content .dreamsun-property-search label > span { overflow-wrap: anywhere; hyphens: auto; }
body #content .dreamsun-form .dsl-trap label { font-size: inherit; }
body #content .dreamsun-form .dsl-privacy-link { max-width: 100%; overflow-wrap: anywhere; hyphens: auto; }
body #masthead :is(button, .menu-link) { font-family: var(--dreamsun-font-body); }
body #masthead :is(.main-header-menu > .menu-item > .menu-link, .dreamsun-language-switcher a) {
	font-family: var(--dreamsun-font-body);
	font-size: var(--dreamsun-type-meta);
	font-weight: 500;
}
body .site-footer { font-family: var(--dreamsun-font-body); font-size: var(--dreamsun-type-body); }
body .site-footer p { font-size: inherit; }
body .site-footer :is(.menu-link, .ast-footer-copyright) { font-size: var(--dreamsun-type-meta); line-height: 1.6; }
body .site-footer .dreamsun-footer__label { font-size: var(--dreamsun-type-meta); font-weight: 600; line-height: 1.6; }
body .site-footer .dreamsun-footer__name { font-family: var(--dreamsun-font-display); font-weight: 400; }
body #content :is(.dreamsun-property-detail__price, .dreamsun-property-card__price, .dreamsun-property-card__reference, .dreamsun-properties__count) {
	font-variant-numeric: lining-nums tabular-nums;
}
body ::selection { background: #e5dbc4; color: #171513; }
/* Let enlarged text determine the stage height without clipping the search. */
@media (min-width: 768px) {
	body #content .ds-hero .ds-hero__stage { height: auto; min-height: 100svh; }
}
@media (max-width: 1024px) {
	:root {
		--dreamsun-type-hero: 2.875rem;
		--dreamsun-type-title: 2.75rem;
		--dreamsun-type-article-title: 2.75rem;
		--dreamsun-type-home-section: 2.125rem;
	}
}
@media (max-width: 767px) {
	:root {
		--dreamsun-type-hero: 2.25rem;
		--dreamsun-type-title: 2.125rem;
		--dreamsun-type-article-title: 2.125rem;
		--dreamsun-type-section: 1.75rem;
		--dreamsun-type-home-section: 1.75rem;
		--dreamsun-type-subheading: 1.3125rem;
		--dreamsun-type-card: 1.125rem;
		--dreamsun-type-reading: 1rem;
	}
	body #content .ds-hero .dreamsun-property-search label { padding: .75rem; }
	body #content .ds-hero .dreamsun-property-search label > span { display: block; margin-bottom: .25rem; }
	body #content .dreamsun-property-overview { grid-template-columns: minmax(0, 1fr); }
}

/* The confirmed corporate byline follows the existing article metadata scale. */
body.dreamsun-blog-entry #content #primary .entry-meta .dreamsun-corporate-author,
body.dreamsun-blog-entry #content #primary .entry-meta .dreamsun-corporate-author a {
	font: inherit;
	color: inherit;
}
