/* Regionale Landingpages – Basis-Styles (erben vom Theme, über CSS-Editor anpassbar) */
.fomrl-landing {
	--fomrl-accent: #0a7c86;
	--fomrl-accent-text: #fff;
	--fomrl-soft: rgba(10, 124, 134, .07);
	--fomrl-soft: color-mix(in srgb, var(--fomrl-accent) 8%, transparent);
	--fomrl-radius: 8px;
	--fomrl-gap: 2rem;
	--fomrl-border: rgba(0, 0, 0, .1);
}
.fomrl-landing .fomrl-el { margin: 0 0 var(--fomrl-gap); }
.fomrl-landing .fomrl-el:last-child { margin-bottom: 0; }
.fomrl-hero { margin: 0; }
.fomrl-hero-img { display: block; width: 100%; height: auto; max-height: 520px; object-fit: cover; border-radius: var(--fomrl-radius); }
.fomrl-section + .fomrl-section { margin-top: 1.6rem; }
.fomrl-text img { max-width: 100%; height: auto; }

.fomrl-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .6rem; }
.fomrl-list-item { margin: 0; padding: .75rem 1rem; background: var(--fomrl-soft); border-radius: var(--fomrl-radius); border-left: 3px solid var(--fomrl-accent); }
.fomrl-list-item.has-sub a { display: block; text-decoration: none; font-weight: 600; }
.fomrl-list-item.has-sub a::after { content: " \2192"; }

.fomrl-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .75rem; }
.fomrl-gallery-item { margin: 0; }
.fomrl-gallery-item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--fomrl-radius); transition: transform .2s; }
.fomrl-gallery-item a:hover img { transform: scale(1.02); }

.fomrl-quote { margin: 0; padding: 1.2rem 1.5rem; border-left: 4px solid var(--fomrl-accent); background: var(--fomrl-soft); border-radius: 0 var(--fomrl-radius) var(--fomrl-radius) 0; font-size: 1.1em; font-style: italic; }
.fomrl-quote p { margin: 0 0 .4rem; }
.fomrl-quote cite { font-style: normal; font-size: .9em; opacity: .8; }
.fomrl-quote cite::before { content: "— "; }

.fomrl-faq-item { border: 1px solid var(--fomrl-border, rgba(0, 0, 0, .1)); border-radius: var(--fomrl-radius); margin: 0 0 .5rem; }
.fomrl-faq-item summary { cursor: pointer; padding: .85rem 1rem; font-weight: 600; list-style-position: inside; }
.fomrl-faq-item[open] summary { border-bottom: 1px solid var(--fomrl-border, rgba(0, 0, 0, .08)); }
.fomrl-faq-answer { padding: .5rem 1rem; }

.fomrl-contact { font-style: normal; }
.fomrl-contact p { margin: 0 0 .35rem; }
.fomrl-contact .dashicons, .fomrl-btn .dashicons { vertical-align: middle; }
.fomrl-hours { border-collapse: collapse; width: auto; min-width: 280px; }
.fomrl-hours th, .fomrl-hours td { text-align: left; padding: .3rem 1.5rem .3rem 0; border: 0; border-bottom: 1px solid var(--fomrl-border, rgba(0, 0, 0, .06)); font-weight: normal; }
.fomrl-hours th { font-weight: 600; }

.fomrl-buttons { display: flex; flex-wrap: wrap; gap: .6rem; }
.fomrl-btn { display: inline-flex; align-items: center; gap: .35rem; padding: .7rem 1.2rem; border-radius: var(--fomrl-radius); text-decoration: none !important; font-weight: 600; line-height: 1.2; border: 2px solid var(--fomrl-accent); cursor: pointer; }
.fomrl-btn-primary { background: var(--fomrl-accent); color: var(--fomrl-accent-text) !important; }
.fomrl-btn-secondary { background: transparent; color: var(--fomrl-accent) !important; }
.fomrl-btn:hover { filter: brightness(1.08); }
.fomrl-route { margin: 0; }

.fomrl-share, .fomrl-social { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.fomrl-share-label, .fomrl-social-label { font-weight: 600; margin-right: .4rem; }
.fomrl-share a, .fomrl-social a { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; background: var(--fomrl-soft); color: var(--fomrl-accent); text-decoration: none; }
.fomrl-share a:hover, .fomrl-social a:hover { background: var(--fomrl-accent); color: var(--fomrl-accent-text); }
.fomrl-back { margin-top: var(--fomrl-gap); }
.fomrl-landing .screen-reader-text, .fomrl-search .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }

/* Ortssuche */
.fomrl-search { --fomrl-accent: #0a7c86; --fomrl-accent-text: #fff; --fomrl-soft: rgba(10, 124, 134, .07); --fomrl-soft: color-mix(in srgb, var(--fomrl-accent) 8%, transparent); --fomrl-radius: 8px; }
.fomrl-search-form { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; padding: 1.2rem; background: var(--fomrl-soft); border-radius: var(--fomrl-radius); margin-bottom: 1.5rem; }
.fomrl-search-field { display: flex; flex-direction: column; gap: .25rem; flex: 1 1 200px; font-size: .9em; font-weight: 600; }
.fomrl-search-field input, .fomrl-search-field select { padding: .6rem; font-weight: normal; }
.fomrl-search-list { list-style: none; padding: 0; columns: 3 240px; column-gap: 2rem; }
.fomrl-search-list > li { break-inside: avoid; margin: 0 0 1rem; }
.fomrl-search-list ul { list-style: none; padding: 0; margin: .25rem 0 0; }
.fomrl-search-count { font-weight: 600; }
.fomrl-search-more { margin-top: 1rem; }
.fomrl-search-sort { flex: 0 1 160px; }

/* Tabelle */
.fomrl-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.fomrl-table { width: 100%; border-collapse: collapse; margin: 0; }
.fomrl-table th, .fomrl-table td { padding: .65rem .85rem; border: 1px solid var(--fomrl-border, rgba(0, 0, 0, .1)); text-align: left; vertical-align: top; }
.fomrl-table thead th { background: var(--fomrl-table-head, var(--fomrl-soft)); font-weight: 600; }
.fomrl-table tbody tr:nth-child(even) td { background: rgba(0, 0, 0, .02); }
.fomrl-table caption { caption-side: bottom; text-align: left; font-size: .9em; opacity: .8; padding-top: .4rem; }
.fomrl-hours-sep { white-space: pre; }
a.fomrl-imglink { display: inline-block; }

/* Teaser zu anderen Landingpages */
.fomrl-el-teasers { margin-top: calc(var(--fomrl-gap) * 1.5); padding-top: var(--fomrl-gap); border-top: 1px solid var(--fomrl-border, rgba(0, 0, 0, .1)); }
.fomrl-teaser-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.25rem; }
.fomrl-teaser { display: flex; flex-direction: column; gap: .5rem; background: var(--fomrl-soft); border-radius: var(--fomrl-radius); overflow: hidden; padding-bottom: 1rem; }
.fomrl-teaser-img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .2s; }
.fomrl-teaser-img:hover img { transform: scale(1.03); }
.fomrl-teaser-img { overflow: hidden; display: block; }
.fomrl-teaser > :not(.fomrl-teaser-img) { margin-left: 1rem; margin-right: 1rem; }
.fomrl-teaser-title { font-size: 1.1em; margin: .25rem 1rem 0; line-height: 1.3; }
.fomrl-teaser-title a { text-decoration: none; }
.fomrl-teaser-text { margin: 0; font-size: .95em; opacity: .9; }
.fomrl-teaser-more { margin-top: auto; font-weight: 600; text-decoration: none; color: var(--fomrl-accent); }

/* Anwendungsbeispiele */
.fomrl-cases { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.25rem; }
.fomrl-case { position: relative; border: 1px solid var(--fomrl-border, rgba(0, 0, 0, .1)); border-radius: var(--fomrl-radius); padding: 1.25rem; display: flex; flex-direction: column; gap: .6rem; }
.fomrl-case-label { align-self: flex-start; font-size: .75em; text-transform: uppercase; letter-spacing: .04em; background: var(--fomrl-soft); color: var(--fomrl-accent); padding: .15rem .55rem; border-radius: 99px; font-weight: 600; }
.fomrl-case-title { margin: 0; font-size: 1.15em; }
.fomrl-case-slogan { margin: 0; font-style: italic; color: var(--fomrl-accent); }
.fomrl-case-img { margin: 0; }
.fomrl-case-img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: calc(var(--fomrl-radius) / 1.5); }
.fomrl-case-text p { margin: 0; }
.fomrl-case-list { margin: 0; padding-left: 1.2em; }
.fomrl-video { position: relative; aspect-ratio: 16 / 9; }
.fomrl-video iframe, .fomrl-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: calc(var(--fomrl-radius) / 1.5); }
