/* Site-specific CSS for FHG5 (added by AG Media). */

/* ---------------------------------------------------------------------------
 * AG Media Property plugin inside Hendon: brand colours and theme fonts.
 * ------------------------------------------------------------------------- */

.agmp {
	--agmp-navy: var(--fhg-accent);
	--agmp-navy-hover: #013a70;
	--agmp-ink: #1a1a1a;
	--agmp-radius-photo: 0;
	--agmp-radius-ui: 0;
	font-family: "Raleway", sans-serif;
}

/* Titles in the theme's serif, like the other headings. */
.agmp .agmp-card__title,
.agmp .agmp-single__title,
.agmp .agmp-archive__title,
.agmp .agmp-section__title {
	font-family: "Cormorant Garamond", serif;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: none;
}

.agmp .agmp-card__title {
	font-size: 22px;
	line-height: 1.25;
}

.agmp .agmp-card__title a {
	color: #1a1a1a;
}

.agmp .agmp-card__title a:hover {
	color: var(--fhg-accent);
}

/* Hendon sets img { height: auto }: let card photos fill their frame. */
.agmp .agmp-card__media img,
.agmp .agmp-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Centre the "Alle Immobilien" button below the cards on the home page. */
.elementor-element.elementor-element-agmfhg5 {
	margin-inline: auto;
}

.elementor-element-agmfhg2 > .elementor-widget-wrap {
	justify-content: center;
}

/* ---------------------------------------------------------------------------
 * Contact Form 7: consent checkbox
 * ------------------------------------------------------------------------- */

.fhg-consent .wpcf7-list-item {
	margin: 0;
}

.fhg-consent label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 14px;
	line-height: 1.5;
}

.fhg-consent input[type="checkbox"] {
	flex: none;
	margin-top: 4px;
	accent-color: var(--fhg-accent);
}

.fhg-consent a {
	text-decoration: underline;
}

#qodef-page-footer .fhg-consent label {
	color: #b2b2b2;
	font-size: 13px;
}

#qodef-page-footer .fhg-consent input[type="checkbox"] {
	accent-color: var(--fhg-gold-light);
}

/* Footer contact: keep "A: Strozzigasse …" on one line. */
#qodef-page-footer .widget_text a[style*="inline-block"] {
	display: inline !important;
}

#qodef-page-footer a:hover {
	color: var(--fhg-gold-light);
}

/* ---------------------------------------------------------------------------
 * Copper hard-coded in Hendon's SVG icons (arrows, quotes, play button).
 * Presentation attributes lose against CSS, so these follow the brand colour.
 * ------------------------------------------------------------------------- */

svg [fill="#c28562" i] {
	fill: var(--fhg-accent);
}

svg [stroke="#c28562" i] {
	stroke: var(--fhg-accent);
}

svg [fill="#d7926b" i] {
	fill: var(--fhg-accent-hover);
}

svg [stroke="#d7926b" i] {
	stroke: var(--fhg-accent-hover);
}

/* ---------------------------------------------------------------------------
 * Dark and blue areas: the accent turns gold (like the flyer), so arrows,
 * subtitles and lines stay readable. Everything that uses --fhg-accent follows.
 * ------------------------------------------------------------------------- */

#qodef-page-footer,
.elementor-element-3e793e5,
.elementor-element-cc7e7de,
.elementor-element-e8cc071,
.elementor-element-cad0a01,
#qodef-side-area,
#qodef-fullscreen-area {
	--fhg-accent: var(--fhg-gold-light);
	--fhg-accent-rgb: 246, 193, 111;
	--fhg-accent-hover: #ffd893;
}

/* ---------------------------------------------------------------------------
 * Property pages inside Hendon: the theme banner already shows the title.
 * ------------------------------------------------------------------------- */

.agmp .agmp-archive__title,
.agmp .agmp-single__title {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Hendon styles all form fields uppercase with wide letter spacing; the property forms need plain fields. */
.agmp input[type="text"],
.agmp input[type="email"],
.agmp input[type="tel"],
.agmp select,
.agmp textarea {
	font-family: "Raleway", sans-serif;
	font-size: 15px;
	text-transform: none;
	letter-spacing: normal;
	color: #1a1a1a;
	border: 1px solid #c9ced6;
	padding: 10px 12px;
	margin: 0;
	background-color: #fff;
}

.agmp select {
	padding-right: 36px;
}

.agmp input::placeholder,
.agmp textarea::placeholder {
	text-transform: none;
	letter-spacing: normal;
	color: #7a8594;
}

.agmp .agmp-range label:has(.agmp-range__prefix) input {
	padding-left: 28px;
}

.agmp .agmp-button {
	font-family: "Raleway", sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 12px;
}

/* Phones: long German words in the letter-spaced subtitles must fit. */
@media (max-width: 680px) {
	.qodef-section-title .qodef-m-text {
		letter-spacing: 0.12em;
		overflow-wrap: anywhere;
	}
}

/* ---------------------------------------------------------------------------
 * Side area ("canvas" behind the header icon)
 * ------------------------------------------------------------------------- */

#qodef-side-area {
	background: var(--fhg-dark);
	background-image: linear-gradient(180deg, rgba(2, 73, 139, 0.35) 0%, rgba(11, 29, 51, 0) 55%);
}

#qodef-side-area .widget {
	margin-bottom: 34px;
}

#qodef-side-area .widget_media_image img {
	width: 110px;
	height: auto;
}

.fhg-side__claim {
	margin: 0 0 14px;
	font-family: "Cormorant Garamond", serif;
	font-size: 30px;
	line-height: 1.15;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
}

.fhg-side__lead {
	margin: 0 0 18px;
	color: #c9d3df;
	font-size: 17px;
	line-height: 1.55;
}

.fhg-side__facts {
	margin: 0;
	padding: 0;
	list-style: none;
	color: #fff;
	font-size: 16px;
}

.fhg-side__facts li {
	padding: 9px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.fhg-side__facts li:last-child {
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.fhg-side__label {
	margin: 0 0 10px;
	font-family: "Raleway", sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--fhg-gold-light);
}

.fhg-side__contact {
	margin: 0 0 22px;
	color: #c9d3df;
	font-size: 17px;
	line-height: 1.7;
}

.fhg-side__contact a {
	color: #fff;
}

.fhg-side__contact a:hover {
	color: var(--fhg-gold-light);
}

.fhg-side__rp img {
	display: block;
	width: 240px;
	max-width: 100%;
	height: auto;
	opacity: 0.9;
}

.fhg-side__rp:hover img {
	opacity: 1;
}

/* ---------------------------------------------------------------------------
 * Property showcase + floor-plan tabs in Hendon's typography
 * (same look as the theme's apartment list and "Apartment Plans").
 * ------------------------------------------------------------------------- */

.agmp .agmp-show__title {
	font-family: "Cormorant Garamond", serif;
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.25;
	text-transform: uppercase;
	color: #000;
}

.agmp .agmp-show__place {
	font-family: "Raleway", sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.5em;
	color: var(--fhg-accent);
}

.agmp .agmp-show__facts {
	font-family: "Raleway", sans-serif;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #615e5e;
}

.agmp .agmp-show__media {
	margin-bottom: 27px;
}

.agmp .agmp-pt__nav {
	background-image: url("../../../hendon/assets/img/pattern.png");
}

.agmp .agmp-pt__tab-title {
	font-family: "Raleway", sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.3em;
	color: #000;
}

.agmp .agmp-pt__tab-meta {
	font-family: "Cormorant Garamond", serif;
	font-size: 16px;
	color: #615e5e;
}

.agmp .agmp-pt__title {
	font-family: "Cormorant Garamond", serif;
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0.06em;
	color: #000;
}

.agmp .agmp-pt__facts dt,
.agmp .agmp-pt__facts dd {
	font-family: "Raleway", sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--fhg-accent);
}

.agmp .agmp-pt__facts dd {
	letter-spacing: 0.1em;
}

.agmp .agmp-pt__teaser {
	font-family: "Cormorant Garamond", serif;
	font-size: 18px;
	color: #615e5e;
}

/* "Details ansehen": Hendon's double-line outlined button. */
.agmp .agmp-pt__more {
	padding: 14px 34px;
	background: #fff;
	border: 1px solid rgba(var(--fhg-accent-rgb), 0.5);
	box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 4px rgba(var(--fhg-accent-rgb), 0.5);
	color: var(--fhg-accent);
	font-size: 11px;
	letter-spacing: 0.3em;
}

.agmp .agmp-pt__more:hover {
	background: var(--fhg-accent);
	color: #fff;
}

/* ---------------------------------------------------------------------------
 * Property pages (archive + detail) inside Hendon
 * ------------------------------------------------------------------------- */

/* Hendon's wrapper uses overflow:hidden, which disables position:sticky (contact box).
   overflow:clip looks the same but keeps sticky working. */
.single-agmp_property #qodef-page-wrapper,
.post-type-archive-agmp_property #qodef-page-wrapper,
.tax-agmp_ort #qodef-page-wrapper,
.tax-agmp_objektart #qodef-page-wrapper,
.tax-agmp_vermarktung #qodef-page-wrapper {
	overflow: clip;
}

.single-agmp_property #qodef-page-inner,
.post-type-archive-agmp_property #qodef-page-inner,
.tax-agmp_ort #qodef-page-inner,
.tax-agmp_objektart #qodef-page-inner,
.tax-agmp_vermarktung #qodef-page-inner {
	padding-top: 64px;
	padding-bottom: 110px;
}

/* The theme grid already provides the side gutters. */
main.agmp {
	padding-block: 0;
}

.agmp .agmp-wrap {
	max-width: none;
	padding-inline: 0;
}

/* Detail page: the real title is visible again (banner shows the short version). */
.agmp .agmp-single__title {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip: auto;
	white-space: normal;
	margin: 6px 0 2px;
	font-size: clamp(28px, 2.4vw, 40px);
	line-height: 1.15;
	letter-spacing: 0.02em;
	color: #000;
}

.agmp .agmp-single__head {
	gap: 14px;
}

.agmp .agmp-single__location {
	font-size: 15px;
}

/* Description and other long texts in the theme's reading font. */
.agmp .agmp-prose {
	font-family: "Cormorant Garamond", serif;
	font-size: 20px;
	line-height: 1.6;
	color: #3d3b3b;
}

.agmp .agmp-prose .agmp-prose__h,
.agmp .agmp-section__title {
	font-family: "Cormorant Garamond", serif;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #000;
}

.agmp .agmp-section__title {
	font-size: 26px;
	margin-bottom: 18px;
}

.agmp .agmp-prose .agmp-prose__h {
	font-size: 20px;
}

.agmp .agmp-prose__pairs,
.agmp .agmp-distances,
.agmp .agmp-prose .agmp-prose__fine,
.agmp .agmp-table,
.agmp .agmp-facts {
	font-family: "Raleway", sans-serif;
}

.agmp .agmp-prose .agmp-prose__fine {
	font-size: 13px;
}

.agmp .agmp-table {
	font-size: 15px;
}

/* Contact box: theme serif heading, a little more air. */
.agmp .agmp-contact__title {
	font-family: "Cormorant Garamond", serif;
	font-size: 22px;
	letter-spacing: 0.08em;
}

@media (max-width: 1024px) {
	.single-agmp_property #qodef-page-inner,
	.post-type-archive-agmp_property #qodef-page-inner {
		padding-top: 40px;
		padding-bottom: 80px;
	}
}

@media (max-width: 699px) {
	.agmp .agmp-prose {
		font-size: 18px;
	}

	/* No full-bleed gallery inside Hendon's gutters. */
	.agmp .agmp-gallery {
		margin-inline: 0;
	}

	.single-agmp_property .qodef-page-title {
		height: 260px !important;
	}

	.single-agmp_property .qodef-page-title .qodef-m-title {
		font-size: 30px;
		line-height: 1.15;
	}
}

.agmp .agmp-prose .agmp-distances__title {
	font-family: "Raleway", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #000;
}

.agmp .agmp-distances dl {
	font-size: 14px;
}

/* ---------------------------------------------------------------------------
 * Footer bottom line and call-back form
 * ------------------------------------------------------------------------- */

#qodef-page-footer .fhg-copy {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 28px;
	margin: 0;
	font-family: "Raleway", sans-serif;
	font-size: 13px;
	letter-spacing: 0.02em;
	text-transform: none;
	color: #8a96a8;
}

#qodef-page-footer .fhg-copy a {
	color: #c9d3df;
}

#qodef-page-footer .fhg-copy a:hover {
	color: var(--fhg-gold-light);
}

/* Rückruf: consent text in the footer's serif, readable size, aligned checkbox. */
#qodef-page-footer .fhg-consent {
	margin: 4px 0 6px;
}

#qodef-page-footer .fhg-consent label {
	font-family: "Cormorant Garamond", serif;
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	color: #b7c1ce;
}

#qodef-page-footer .fhg-consent input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin-top: 3px;
}

#qodef-page-footer .fhg-consent a {
	color: #fff;
}

/* Floor plans: Hendon's signature offset texture (blue copy) behind the plan sheet. */
.agmp .agmp-pt__plan {
	box-shadow: 12px 12px 0 0 rgba(var(--fhg-accent-rgb), 0.12);
}

.agmp .agmp-pt__zoom {
	font-family: "Raleway", sans-serif;
	font-size: 10px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

.agmp .agmp-pt__title {
	font-size: 24px;
	line-height: 1.25;
	text-transform: none;
	letter-spacing: 0.02em;
}

.agmp .agmp-pt__tab[aria-selected="true"] .agmp-pt__tab-title,
.agmp .agmp-pt__tab:hover .agmp-pt__tab-title {
	color: var(--fhg-accent);
}

#qodef-page-footer .qodef-footer-bottom-area .widget_text {
	padding: 22px 0 26px;
}

/* ---------------------------------------------------------------------------
 * Phones: Hendon's wide-spaced capitals are too long for German words.
 * Smaller size, tighter spacing and real hyphenation (page language is "de").
 * ------------------------------------------------------------------------- */

h1, h2, h3, h4,
.qodef-m-title,
.qodef-e-title {
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
	word-break: normal;
}

@media (max-width: 680px) {
	.qodef-page-title .qodef-m-title {
		font-size: 32px;
		line-height: 1.15;
		letter-spacing: 0.1em;
	}

	#qodef-page-inner h2,
	.qodef-section-title .qodef-m-title {
		font-size: 30px;
		line-height: 1.2;
		letter-spacing: 0.08em;
	}

	#qodef-page-inner h3 {
		font-size: 25px;
		letter-spacing: 0.06em;
	}

	.single-post .qodef-blog .qodef-e-title {
		font-size: 30px;
		letter-spacing: 0.08em;
	}

	#qodef-page-inner {
		padding-top: 60px;
	}
}

/* Blog posts: no author line (the posts are by the project, not a person). */
.qodef-blog .qodef-e-info-author,
.qodef-blog .qodef-e-info-author + .qodef-info-separator-end {
	display: none !important;
}

/* Lists in posts and legal pages: bullets aligned with the text. */
.qodef-blog .qodef-e-text ul,
.page #qodef-page-inner .wp-block-list {
	padding-left: 1.2em;
	list-style-position: outside;
}

.qodef-blog .qodef-e-text ul li,
.page #qodef-page-inner .wp-block-list li {
	padding-left: 0.3em;
	margin-bottom: 4px;
}

/* Dark badges inside light areas (blog date on the photo): accent turns gold for contrast. */
.qodef-blog .qodef-e-media .qodef-e-info-date {
	--fhg-accent: var(--fhg-gold-light);
	--fhg-accent-hover: var(--fhg-gold-light);
}

/* ---------------------------------------------------------------------------
 * Reading pages (blog posts, Impressum, Datenschutz): a calmer heading scale.
 * Hendon styles every h2 at 64px for Elementor section titles; inside text
 * that is far too loud. Scale here: title 44 → h2 30 → h3 23 → body 19.
 * ------------------------------------------------------------------------- */

.single-post .qodef-blog .qodef-e-title.entry-title {
	font-size: 44px;
	line-height: 1.15;
	letter-spacing: 0.08em;
	margin-bottom: 14px;
}

#qodef-page-inner h2.wp-block-heading {
	margin: 52px 0 16px;
	font-size: 30px;
	line-height: 1.2;
	letter-spacing: 0.08em;
}

#qodef-page-inner h3.wp-block-heading {
	margin: 36px 0 12px;
	font-size: 23px;
	line-height: 1.25;
	letter-spacing: 0.06em;
}

#qodef-page-inner .wp-block-heading:first-child {
	margin-top: 0;
}

.page #qodef-page-inner .qodef-page-content p,
.single-post .qodef-e-text p,
.single-post .qodef-e-text li,
.page #qodef-page-inner .wp-block-list li {
	font-size: 19px;
	line-height: 1.65;
}

/* Legal pages: comfortable reading width. */
.page:not(.home) #qodef-page-inner .qodef-page-content {
	max-width: 820px;
}

@media (max-width: 680px) {
	.single-post .qodef-blog .qodef-e-title.entry-title {
		font-size: 30px;
	}

	#qodef-page-inner h2.wp-block-heading {
		margin-top: 40px;
		font-size: 24px;
		letter-spacing: 0.06em;
	}

	#qodef-page-inner h3.wp-block-heading {
		font-size: 20px;
	}
}

/* Blog without sidebar: one calm reading column. */
.single-post #qodef-page-inner .qodef-grid-inner,
.blog #qodef-page-inner .qodef-grid-inner,
.archive.category #qodef-page-inner .qodef-grid-inner {
	max-width: 900px;
	margin-inline: auto;
}

/* Footer: link to the contact form instead of a second form. */
#qodef-page-footer .fhg-footer-cta {
	display: inline-block;
	margin-top: 6px;
	padding: 11px 22px;
	border: 1px solid rgba(246, 193, 111, 0.6);
	color: #fff;
	font-family: "Raleway", sans-serif;
	font-size: 11px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	transition: background-color 0.25s ease, color 0.25s ease;
}

#qodef-page-footer .fhg-footer-cta:hover {
	background: var(--fhg-gold-light);
	color: var(--fhg-dark);
}

/* Lage: map height in the theme's grid. */
.elementor-element-agmlage2 .agmp-map {
	--agmp-map-h: clamp(320px, 42vw, 520px);
}

/* Contact form title: long German word in a narrow column. */
.elementor-element-08dad18 .qodef-m-title {
	font-size: clamp(30px, 3vw, 44px);
	line-height: 1.15;
	letter-spacing: 0.08em;
	hyphens: manual;
}

/* ---------------------------------------------------------------------------
 * Footer: the address is the one large element; contact and pages stay quiet.
 * ------------------------------------------------------------------------- */

#qodef-page-footer-top-area {
	padding-block: clamp(56px, 7vw, 96px);
}

.fhg-foot {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 0.6fr);
	gap: 48px clamp(32px, 5vw, 80px);
	align-items: end;
	color: #b7c1ce;
	font-size: 19px;
	line-height: 1.55;
}

#qodef-page-footer .fhg-foot__place {
	margin: 0 0 32px;
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(34px, 4.2vw, 62px);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: 0.01em;
	color: #fff;
	hyphens: manual;
}

#qodef-page-footer .fhg-foot__cta {
	display: inline-block;
	padding: 14px 28px;
	border: 1px solid var(--fhg-gold-light);
	color: #fff;
	font-family: "Raleway", sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.3;
	text-transform: uppercase;
	transition: background-color 0.25s ease, color 0.25s ease;
}

#qodef-page-footer .fhg-foot__cta:hover,
#qodef-page-footer .fhg-foot__cta:focus-visible {
	background: var(--fhg-gold-light);
	color: var(--fhg-dark);
}

#qodef-page-footer .fhg-foot__title {
	margin: 0 0 12px;
	font-family: "Raleway", sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.3;
	text-transform: none;
	color: var(--fhg-gold-light);
}

#qodef-page-footer .fhg-foot p {
	margin: 0 0 10px;
}

#qodef-page-footer .fhg-foot ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#qodef-page-footer .fhg-foot a:not(.fhg-foot__cta) {
	color: #fff;
}

#qodef-page-footer .fhg-foot a:not(.fhg-foot__cta):hover {
	color: var(--fhg-gold-light);
}

#qodef-page-footer-bottom-area,
#qodef-page-footer .qodef-footer-bottom-area {
	padding-block: 0;
}

#qodef-page-footer .fhg-copy {
	display: block;
	margin: 0;
	padding: 24px 16px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-family: "Raleway", sans-serif;
	font-size: 13px;
	line-height: 1.5;
	letter-spacing: 0.01em;
	text-align: center;
	color: #a5b0bf;
}

@media (max-width: 860px) {
	.fhg-foot {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fhg-foot__lead {
		grid-column: 1 / -1;
	}
}

@media (max-width: 480px) {
	.fhg-foot {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------------------------------------------------------------------------
 * Lage: address on the left, the building (then the map) as a full-height panel.
 * ------------------------------------------------------------------------- */

.fhg-lage__text > .elementor-widget-wrap {
	padding: 60px clamp(24px, 6vw, 96px);
}

.fhg-lage__addr {
	margin: 18px 0 28px;
	font-size: clamp(24px, 2.2vw, 32px);
	line-height: 1.25;
	color: #1a1a1a;
}

.elementor-element-agmlage2 .agmp-map {
	--agmp-map-h: clamp(440px, 46vw, 700px);
	margin: 0;
	border: 0;
	border-radius: 0;
	background: var(--fhg-dark) url("../img/lage.jpg") center / cover no-repeat;
}

.elementor-element-agmlage2 .agmp-map__consent {
	position: absolute;
	inset: auto auto 28px 28px;
	display: block;
	width: min(380px, calc(100% - 56px));
	max-width: none;
	padding: 22px 24px;
	background: #fff;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	text-align: left;
}

.elementor-element-agmlage2 .agmp-map__consent p {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.5;
	color: #3d3b3b;
}

@media (max-width: 1024px) {
	.fhg-lage__text > .elementor-widget-wrap {
		padding: 56px 24px 40px;
	}

	.elementor-element-agmlage2 .agmp-map__consent {
		inset: auto 16px 16px 16px;
		width: auto;
	}
}

.fhg-foot {
	align-items: start;
}

#qodef-page-footer .fhg-foot p.fhg-foot__place {
	margin-bottom: 32px;
	font-size: clamp(28px, 3.2vw, 46px);
}

.elementor-element-agmlage2 .agmp-map__consent {
	background-image: none;
}

.elementor-element-agmlage2 .agmp-map__consent p {
	max-width: none;
	padding: 0;
	background: none;
}

/* ---------------------------------------------------------------------------
 * Hero slider: the diagonal photo always fills the slider's full height,
 * whatever the screen; the blue line stays at the photo's left edge.
 * ------------------------------------------------------------------------- */

sr7-module[data-alias="camden"] sr7-img {
	top: 0 !important;
	height: 100% !important;
	background-size: cover !important;
	background-position: left center !important;
}

/* ---------------------------------------------------------------------------
 * Page banners: darkened photo so title and menu stay readable.
 * ------------------------------------------------------------------------- */

.qodef-page-title {
	position: relative;
}

.qodef-page-title::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(11, 29, 51, 0.58);
	pointer-events: none;
}

.qodef-page-title > * {
	position: relative;
	z-index: 1;
}

.qodef-page-title .qodef-m-title {
	font-size: clamp(30px, 4vw, 56px);
	line-height: 1.15;
	letter-spacing: 0.1em;
}

/* Counters: "1020" stays on one line and fits its column at every width. */
.qodef-counter.qodef-layout--simple .qodef-m-digit {
	font-size: clamp(84px, 9vw, 150px);
	white-space: nowrap;
}

/* The theme sets its own title sizes per screen width: the banner scale wins here. */
#qodef-page-outer .qodef-page-title .qodef-m-title,
#qodef-page-wrapper .qodef-page-title .qodef-m-title {
	font-size: clamp(28px, 4vw, 56px);
	line-height: 1.15;
	letter-spacing: 0.08em;
}

/* All banners the same height. */
.qodef-page-title {
	height: 440px !important;
}

@media (max-width: 1024px) {
	.qodef-page-title {
		height: 340px !important;
	}
}

@media (max-width: 680px) {
	.qodef-page-title {
		height: 260px !important;
	}
}

/* Counters: label under the number, so neither covers the other. */
.qodef-counter.qodef-layout--simple .qodef-m-digit {
	font-size: clamp(64px, 6.5vw, 110px);
	line-height: 1;
}

.qodef-counter.qodef-layout--simple .qodef-m-title-holder {
	position: static;
	width: auto;
	margin-top: 14px;
	transform: none;
}

.qodef-counter.qodef-layout--simple .qodef-m-content {
	margin: 0;
}

/* Stacked photos: both share one grid cell, so the block is as tall as the facade photo really is.
   The section grows with it and the photo can never run over the numbers below. */
.elementor-element-2c41a7a .qodef-m-images {
	display: grid;
	padding-bottom: 0;
}

.elementor-element-2c41a7a .qodef-m-images > * {
	grid-area: 1 / 1;
	min-width: 0;
}

.elementor-element-2c41a7a .qodef-m-images .qodef-stack-image-holder {
	position: relative;
	inset: auto;
	align-self: start;
	justify-self: end;
	width: 60%;
	margin-top: 22%;
}

.elementor-element-2c41a7a .qodef-stack-image-holder img {
	display: block;
	width: 100%;
	height: auto;
}

.elementor-element-6c53bab {
	padding-bottom: clamp(48px, 6vw, 96px);
}

/* Cancel Hendon's offsets on the stacked photo (inline top/left, shifted inner holder, negative column margin). */
.elementor-element-2c41a7a .qodef-m-images .qodef-stack-image-holder {
	top: 0 !important;
	left: 0 !important;
	bottom: auto !important;
}

.elementor-element-2c41a7a .qodef-stack-image-img-holder {
	top: 0 !important;
	bottom: auto !important;
	transform: none !important;
}

.elementor-395 .elementor-element.elementor-element-844f5fc > .elementor-element-populated {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Space between the photos and the numbers band. */
.elementor-395 .elementor-element.elementor-element-6c53bab {
	padding-bottom: clamp(48px, 6vw, 96px) !important;
}

/* Numbers on tablet and phone: room between the rows. */
@media (max-width: 1024px) {
	.elementor-element-6386d90 .elementor-column {
		padding-block: 18px;
	}
}

/* Contact form honeypot: never visible, takes no space. */
.wpcf7-form-control-wrap[data-name="fhg-website"],
.wpcf7-form-control-wrap:has(> [name="fhg-website"]),
[name="fhg-website"] {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
}

/* Contact form: sending state on the button. */
.wpcf7-form[data-status="submitting"] .wpcf7-submit {
	pointer-events: none;
	cursor: progress;
	opacity: 0.85;
}

.wpcf7-form[data-status="submitting"] .wpcf7-submit::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 10px;
	vertical-align: -2px;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: fhg-spin 0.8s linear infinite;
}

@keyframes fhg-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wpcf7-form[data-status="submitting"] .wpcf7-submit::before {
		animation-duration: 3s;
	}
}

/* Result under the button: clearly visible. */
.wpcf7-form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 14px 18px;
	border: 1px solid currentColor;
	font-family: "Raleway", sans-serif;
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
}

.wpcf7-form.sent .wpcf7-response-output {
	border-color: #1b7a43;
	background: #edf7f1;
	color: #14633a;
}

.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.spam .wpcf7-response-output {
	border-color: #b3261e;
	background: #fdf0ef;
	color: #8c1d18;
}

/* Button stays inactive until the consent box is ticked: make that visible. */
.wpcf7-form .wpcf7-submit[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Spinner beside the text. */
.wpcf7-form[data-status="submitting"] .wpcf7-submit {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
}

.wpcf7-form[data-status="submitting"] .wpcf7-submit::before {
	flex: none;
}

.wpcf7-form[data-status="submitting"] .wpcf7-submit .qodef-m-text {
	width: auto;
}
