/*
Theme Name: Karneol
Theme URI: https://www.tagungshaus-karneol.de
Author: Tagungshaus Karneol GmbH
Description: Block-Theme für das Tagungshaus Karneol in Steinfurt – ruhig, warm und naturnah. Self-hosted Schriften (Fraunces & Nunito Sans), keine externen Ressourcen.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: karneol
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, editor-style, wide-blocks
*/

/* ------------------------------------------------------------------
   Grundlagen
------------------------------------------------------------------ */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

:where(h1, h2, h3, h4) { text-wrap: balance; font-variation-settings: "SOFT" 50, "WONK" 0; }
:where(p, li) { text-wrap: pretty; }

/* Anker-Sprungziele nicht unter dem Sticky-Header verstecken */
:where([id]) { scroll-margin-top: calc(var(--karneol-header-h, 5rem) + 5rem); }

:focus-visible { outline: 3px solid var(--wp--preset--color--teal); outline-offset: 3px; border-radius: 4px; }

.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); }

/* Template-Teile ohne Lücken stapeln */
.wp-site-blocks > * { margin-block-start: 0; }

/* ------------------------------------------------------------------
   Header
------------------------------------------------------------------ */
.karneol-header-part { position: sticky; top: 0; z-index: 50; }
.admin-bar .karneol-header-part { top: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 600px) { .admin-bar .karneol-header-part { top: 0; } }
.karneol-topbar { font-size: var(--wp--preset--font-size--x-small); }
.karneol-topbar a { color: inherit; text-decoration: none; }
.karneol-topbar a:hover { text-decoration: underline; }
@media (max-width: 781px) {
	.karneol-topbar .karneol-topbar__hours, .karneol-topbar .karneol-topbar__address { display: none; }
	.karneol-topbar .wp-block-group { justify-content: center; }
}

.karneol-header { transition: box-shadow .25s ease; }
.karneol-header.is-scrolled { box-shadow: 0 6px 24px -12px rgba(30, 58, 49, .25); }
.karneol-header .wp-block-site-logo img { height: auto; }
.karneol-header .wp-block-navigation .wp-block-navigation-item__content { padding-block: .35em; border-bottom: 2px solid transparent; }
.karneol-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.karneol-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { border-bottom-color: var(--wp--preset--color--carnelian); text-decoration: none; }
.karneol-header .wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--50); }
.karneol-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--large); font-family: var(--wp--preset--font-family--serif); }
.karneol-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.karneol-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; }
@media (max-width: 599px) { .karneol-header .karneol-header__cta { display: none !important; } }
/* Untermenü (z. B. „Das Haus“): Creme statt Weiß, wie eine kleine Karte */
.karneol-header .wp-block-navigation .wp-block-navigation__submenu-container { background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--ink) !important; border: 1px solid var(--wp--preset--color--line) !important; border-radius: var(--wp--custom--radius--small); box-shadow: var(--wp--custom--shadow--soft); padding: .4rem 0; min-width: 15rem !important; }
.karneol-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .5rem 1rem; border-bottom: 0; }
.karneol-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--carnelian); }
.karneol-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 0 1rem !important; background: transparent !important; }
/* Mobiles Menü: Untermenü linksbündig wie die übrigen Punkte (sonst übernimmt es die Rechtsausrichtung des Menüs) */
.karneol-header .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation-item, .wp-block-navigation__submenu-container) { align-items: flex-start !important; text-align: left; }
.karneol-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--medium); font-family: var(--wp--preset--font-family--sans); padding: .25rem 0; }
/* Viele Menüpunkte brauchen Platz: Hamburger-Menü bis 1100 px Breite */
@media (min-width: 600px) and (max-width: 1099px) {
	.karneol-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.karneol-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ------------------------------------------------------------------
   Seitenkopf (Cover mit Beitragsbild)
------------------------------------------------------------------ */
.karneol-page-header.is-no-image { min-height: 0 !important; background: var(--wp--preset--color--sand); color: var(--wp--preset--color--ink); }
.karneol-page-header.is-no-image .wp-block-cover__background { opacity: 0 !important; }
.karneol-page-header.is-no-image .wp-block-post-title { color: var(--wp--preset--color--ink) !important; }

/* Vollbreite Abschnitte direkt aneinander (keine Lücken zwischen Farbflächen) */
.wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }

/* Vollbreite Abschnitte am Seitenende schließen bündig an den Footer an */
.karneol-page-content > .alignfull:last-child { margin-bottom: calc(-1 * var(--wp--preset--spacing--70)) !important; }
.karneol-page-content > .alignfull:first-child { margin-top: calc(-1 * var(--wp--preset--spacing--60)) !important; }

/* Hero */
.is-style-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(14, 34, 28, .2) 0%, rgba(14, 34, 28, .3) 40%, rgba(14, 34, 28, .8) 100%), linear-gradient(90deg, rgba(14, 34, 28, .45) 0%, rgba(14, 34, 28, 0) 60%) !important; opacity: 1 !important; }
.is-style-hero h1 { max-width: 18ch; }
.is-style-hero .wp-block-cover__inner-container :is(h1, p) { text-shadow: 0 1px 12px rgba(14, 34, 28, .55); }

/* Hero und Seitenkopf: Text (Inhaltsposition „unten links“) bündig mit Logo und Menü
   statt am Bildschirmrand – WordPress schrumpft den inneren Container sonst auf Textbreite. */
.wp-block-cover.has-custom-content-position.has-custom-content-position:is(.is-style-hero, .karneol-page-header):not(.is-position-center) .wp-block-cover__inner-container { width: 100%; }

/* ------------------------------------------------------------------
   Block-Stile
------------------------------------------------------------------ */
/* Links auf dunklen Flächen */
:is(.has-teal-dark-background-color, .has-ink-background-color, .wp-block-cover:not(.is-no-image)) a:not(.wp-element-button) { color: inherit; }
:is(.has-teal-dark-background-color, .has-ink-background-color) .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); }
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); }

/* Kicker / Eyebrow */
.is-style-eyebrow { font-size: var(--wp--preset--font-size--x-small) !important; letter-spacing: .16em; text-transform: uppercase; font-weight: 800; color: var(--wp--preset--color--teal-dark); margin-bottom: .5rem !important; }
.has-ink-background-color .is-style-eyebrow,
.has-teal-dark-background-color .is-style-eyebrow,
.wp-block-cover .is-style-eyebrow { color: var(--wp--preset--color--sand); }

/* Karte */
.is-style-card { background: var(--wp--preset--color--base); border-radius: var(--wp--custom--radius--large); box-shadow: var(--wp--custom--shadow--soft); overflow: hidden; height: 100%; }
.is-style-card > .wp-block-image:first-child { margin: 0 0 var(--wp--preset--spacing--30); }
.is-style-card > .wp-block-image:first-child img { border-radius: 0; width: 100%; }
.is-style-card > :not(.wp-block-image:first-child) { margin-inline: var(--wp--preset--spacing--40); }
.is-style-card > :last-child { margin-bottom: var(--wp--preset--spacing--40); }
.wp-block-column > .is-style-card { display: flex; flex-direction: column; }
.wp-block-column > .is-style-card > .wp-block-buttons:last-child,
.wp-block-column > .is-style-card > p:last-child { margin-top: auto; }
.has-sand-background-color .is-style-card { box-shadow: none; }

/* Auswahlkarten Tagungen · Weiterbildungen · Seminare */
.karneol-choice h3 a { color: inherit; text-decoration: none; }
.karneol-choice h3 a:hover { color: var(--wp--preset--color--carnelian); }
.karneol-choice .is-style-eyebrow { margin-bottom: .25rem !important; }
.karneol-choice .is-style-checklist { font-size: var(--wp--preset--font-size--small); }

/* Checkliste */
.is-style-checklist { list-style: none; padding-left: 0 !important; }
.is-style-checklist li { position: relative; padding-left: 2rem; margin-bottom: .55em; }
.is-style-checklist li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--wp--preset--color--teal-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FCF8F0' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat; }
.is-style-checklist.is-style-checklist--columns,
.is-style-checklist.columns-2 { columns: 2 16rem; column-gap: var(--wp--preset--spacing--50); }
.is-style-checklist.columns-2 li { break-inside: avoid; }

/* Preistabelle */
.wp-block-table.is-style-prices { margin-block: var(--wp--preset--spacing--40); }
.wp-block-table.is-style-prices table { border-collapse: collapse; width: 100%; background: var(--wp--preset--color--base); border-radius: var(--wp--custom--radius--large); overflow: hidden; box-shadow: var(--wp--custom--shadow--soft); }
.wp-block-table.is-style-prices thead { border: 0; }
.wp-block-table.is-style-prices th { background: var(--wp--preset--color--teal-dark); color: var(--wp--preset--color--base); font-family: var(--wp--preset--font-family--serif); font-weight: 500; font-size: var(--wp--preset--font-size--medium); text-align: left; padding: 1rem 1.25rem; border: 0; }
.wp-block-table.is-style-prices td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .9rem 1.25rem; vertical-align: top; }
.wp-block-table.is-style-prices tr:last-child td { border-bottom: 0; }
.wp-block-table.is-style-prices td.has-text-align-right,
.wp-block-table.is-style-prices th.has-text-align-right { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wp-block-table.is-style-prices figcaption { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--muted); text-align: left; }
@media (max-width: 600px) {
	.wp-block-table.is-style-prices table { font-size: var(--wp--preset--font-size--x-small); }
	.wp-block-table.is-style-prices td, .wp-block-table.is-style-prices th { padding: .6rem .5rem; }
	.wp-block-table.is-style-prices th { font-size: var(--wp--preset--font-size--small); }
	.wp-block-table.is-style-prices td:first-child, .wp-block-table.is-style-prices th:first-child { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
	.wp-block-table.is-style-prices td:first-child { padding-left: .8rem; }
}

/* Sprungmarken-Navigation auf Unterseiten */
.karneol-jumpnav { position: sticky; top: var(--karneol-header-h, 0px); z-index: 5; }
.admin-bar .karneol-jumpnav { top: calc(var(--karneol-header-h, 0px) + var(--wp-admin--admin-bar--height, 0px)); }
@media (max-width: 600px) { .admin-bar .karneol-jumpnav { top: var(--karneol-header-h, 0px); } }
.karneol-jumpnav .wp-block-button__link { font-size: var(--wp--preset--font-size--x-small); padding: .45em 1em; white-space: nowrap; }
@media (max-width: 781px) {
	.karneol-jumpnav .wp-block-buttons { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
	.karneol-jumpnav .wp-block-buttons::-webkit-scrollbar { display: none; }
}

/* Fakten-Leiste */
.karneol-facts .wp-block-column { border-left: 2px solid var(--wp--preset--color--line); padding-left: var(--wp--preset--spacing--30); }
.karneol-facts .karneol-fact__value { font-family: var(--wp--preset--font-family--serif); font-size: var(--wp--preset--font-size--x-large); line-height: 1.1; color: var(--wp--preset--color--teal-dark); margin-bottom: .2rem; }
@media (max-width: 781px) {
	.karneol-facts.wp-block-columns { flex-wrap: wrap !important; row-gap: var(--wp--preset--spacing--30); }
	.karneol-facts.wp-block-columns.alignwide > .wp-block-column { flex-basis: calc(50% - 0.75rem) !important; flex-grow: 0; border-left: 0; border-top: 2px solid var(--wp--preset--color--line); padding: var(--wp--preset--spacing--20) 0 0; }
	.karneol-facts .karneol-fact__value { font-size: var(--wp--preset--font-size--large); }
}

/* Zitat-Band */
.karneol-quote { font-family: var(--wp--preset--font-family--serif); font-style: italic; font-weight: 400; line-height: 1.2; }

/* Termin-Karten */
.karneol-event { border-left: 4px solid var(--wp--preset--color--carnelian); }
.is-style-card.karneol-event > * { margin-inline: 0 !important; }
.is-style-card.karneol-event > :last-child { margin-bottom: 0; }
.karneol-event .wp-block-image img { border-radius: var(--wp--custom--radius--small); }
.karneol-event__date { font-weight: 800; color: var(--wp--preset--color--carnelian); letter-spacing: .02em; }

/* Galerien */
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: var(--wp--custom--radius--small); }
.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { transition: transform .3s ease; }
@media (hover: hover) { .wp-block-gallery.has-nested-images figure.wp-block-image:hover { transform: translateY(-3px); } }

/* Partner-Logos */
.karneol-logos img { max-height: 110px; width: auto !important; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.karneol-logos a:hover img { filter: none; opacity: 1; }

/* Einbettungen (Belegungsplan, Anfrage) */
.karneol-embed { background: var(--wp--preset--color--base); border-radius: var(--wp--custom--radius--large); box-shadow: var(--wp--custom--shadow--soft); padding: var(--wp--preset--spacing--30); }
.karneol-embed iframe { display: block; width: 100%; border: 0; }
@media (max-width: 600px) { .karneol-embed { padding: .4rem; } }
.karneol-legend { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: var(--wp--preset--font-size--small); }
.karneol-legend span::before { content: ""; display: inline-block; width: .9em; height: .9em; border-radius: 3px; margin-right: .45em; vertical-align: -.1em; background: var(--legend); }

/* Karte mit Zwei-Klick-Lösung */
.karneol-map { position: relative; aspect-ratio: 16 / 9; border-radius: var(--wp--custom--radius--large); overflow: hidden; background: var(--wp--preset--color--sand) url("assets/images/map-placeholder.svg") center / cover no-repeat; display: grid; place-items: center; text-align: center; }
.karneol-map__consent { max-width: 34rem; padding: var(--wp--preset--spacing--40); background: rgba(252, 248, 240, .94); border-radius: var(--wp--custom--radius--large); box-shadow: var(--wp--custom--shadow--soft); }
.karneol-map__consent p { font-size: var(--wp--preset--font-size--small); }
.karneol-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Kontaktformular */
.karneol-form { display: grid; gap: var(--wp--preset--spacing--30); }
.karneol-form__row { display: grid; gap: var(--wp--preset--spacing--30); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.karneol-form label { display: block; font-weight: 700; font-size: var(--wp--preset--font-size--small); margin-bottom: .35rem; }
.karneol-form input[type="text"], .karneol-form input[type="email"], .karneol-form input[type="tel"], .karneol-form input[type="date"], .karneol-form input[type="number"], .karneol-form textarea { width: 100%; box-sizing: border-box; font: inherit; padding: .75rem .9rem; border: 1.5px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius--small); background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); }
.karneol-form input:focus, .karneol-form textarea:focus { border-color: var(--wp--preset--color--teal-dark); outline: none; box-shadow: 0 0 0 3px rgba(0, 110, 120, .18); }
.karneol-form textarea { min-height: 9rem; resize: vertical; }
.karneol-form__privacy { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--muted); }
.karneol-form__privacy label { font-weight: 400; display: flex; gap: .6rem; align-items: flex-start; }
.karneol-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.karneol-form button { justify-self: start; }
.karneol-notice { padding: 1rem 1.25rem; border-radius: var(--wp--custom--radius--small); font-weight: 600; }
.karneol-notice--success { background: #e3f3ee; color: #0f5a43; }
.karneol-notice--error { background: #fbe8e5; color: #8a2414; }

/* Footer */
.karneol-footer hr.wp-block-separator { border: 0; border-top: 1px solid rgba(255, 255, 255, .14); opacity: 1; }
.karneol-footer__links { list-style: none; }
.karneol-footer__links li { margin-bottom: .35em; }
.karneol-footer a { color: inherit; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: .2em; }
.karneol-footer a:hover { color: var(--wp--preset--color--base); text-decoration-color: currentColor; }
.karneol-footer .wp-block-navigation a { text-decoration: none; }
.karneol-footer .wp-block-navigation a:hover { text-decoration: underline; }
.karneol-footer__brand img { opacity: .95; }
/* Footer auf Türkis: die beige Linienfarbe als Text wäre zu kontrastarm (4,1:1) – hell lesbar machen */
.karneol-footer.has-teal-dark-background-color.has-line-color { color: var(--wp--preset--color--base) !important; }

/* Kleine Helfer */
.karneol-rounded img, img.karneol-rounded { border-radius: var(--wp--custom--radius--large); }
.karneol-stretch { height: 100%; }
.karneol-stretch img { height: 100%; object-fit: cover; }
.has-text-wrap-balance { text-wrap: balance; }
