/* =========================================================
   Kurvin Block-Theme – Ergänzungen zu theme.json
   ========================================================= */

/* ---------- Grundgerüst ---------- */
.wp-site-blocks { position: relative; padding-top: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
main.kv-main > .wp-block-post-content > *:first-child { margin-block-start: 0; }

/* Volle Abschnitte bekommen vertikalen Abstand */
.kv-content > .wp-block-group.alignfull,
.kv-main > .wp-block-group.alignfull:not(.kv-title-band) {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--50);
}
.kv-content > * + * { margin-block-start: 0; }
.kv-content-pad { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.kv-content-pad > .wp-block-post-content > .wp-block-group.alignfull:first-child { padding-top: 0; }

/* ---------- Kopfbereich ---------- */
.kv-site-header { position: relative; z-index: 20; background: var(--wp--preset--color--base); box-shadow: 0 1px 0 rgba(1,33,4,.06); }
/* Logo: feste Größe, unabhängig von der Bilddatei */
.wp-block-site-logo img { height: auto; display: block; }
.kv-logo img { width: clamp(56px, 9vw, 115px) !important; border-radius: 50%; filter: brightness(0) saturate(100%) invert(33%) sepia(64%) saturate(779%) hue-rotate(50deg) brightness(101%) contrast(100%) drop-shadow(0 0.4px 0 #377A00) drop-shadow(0 -0.4px 0 #377A00); }
/* Das Logo besteht aus feinen Linien: die zwei grünen 0,4-px-Schatten machen sie kräftiger, ohne sie zu füllen */
/* Footer-Logo in Praxisgrün (#377A00) per Farbfilter – braucht kein Nachladen, funktioniert überall */
.kv-footer .wp-block-site-logo img { width: 72px !important; filter: brightness(0) saturate(100%) invert(33%) sepia(64%) saturate(779%) hue-rotate(50deg) brightness(101%) contrast(100%) drop-shadow(0 0.4px 0 #377A00) drop-shadow(0 -0.4px 0 #377A00); }
.kv-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--contrast); font-weight: 500; }
.kv-nav .wp-block-navigation-item__content:hover,
.kv-nav .current-menu-item > .wp-block-navigation-item__content,
.kv-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--wp--preset--color--primary); }
.kv-header-cta .wp-block-button__link { padding: .8em 1.5em; }
.kv-search .wp-block-search__button { background: transparent; color: inherit; padding: .3em; border: 0; }
.kv-search .wp-block-search__button svg { width: 28px; height: 28px; fill: currentColor; }
.kv-search .wp-block-search__input { border-radius: 4px; border: 1px solid var(--wp--preset--color--soft); }

/* Transparenter Kopfbereich über einem Kopfbild (wie bisher bei Astra) */
.wp-site-blocks:has(.kv-hero, .kv-hero-img:first-child, .kv-page-hero:first-child) > .kv-site-header {
	position: absolute; top: 0; left: 0; right: 0; background: transparent; box-shadow: none;
}
.wp-site-blocks:has(.kv-hero, .kv-hero-img:first-child, .kv-page-hero:first-child) > .kv-site-header .kv-nav .wp-block-navigation-item__content,
.wp-site-blocks:has(.kv-hero, .kv-hero-img:first-child, .kv-page-hero:first-child) > .kv-site-header .kv-search { color: #fff; text-shadow: 0 1px 6px rgba(0,0,0,.35); }
.wp-site-blocks:has(.kv-hero, .kv-hero-img:first-child, .kv-page-hero:first-child) > .kv-site-header .kv-nav .wp-block-navigation-item__content:hover,
.wp-site-blocks:has(.kv-hero, .kv-hero-img:first-child, .kv-page-hero:first-child) > .kv-site-header .kv-nav [aria-current="page"] { color: var(--wp--preset--color--accent); }
.wp-site-blocks:has(.kv-hero, .kv-hero-img:first-child, .kv-page-hero:first-child) > .kv-site-header .wp-block-navigation__responsive-container-open { color: #fff; border: 1px solid rgba(255,255,255,.8); border-radius: 4px; padding: 6px; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: var(--wp--preset--color--contrast) !important; text-shadow: none !important; font-size: 1.15rem; }

@media (max-width: 781px) {
	.kv-header-cta { display: none; }
	.kv-header-right { gap: .75rem !important; }
}

/* ---------- Kopfbilder ---------- */
/* Startseiten-Kopfbild im Seitenverhältnis des Fotos (1200 × 415), damit nichts hochgezoomt oder abgeschnitten wird */
.kv-hero { height: clamp(240px, 24.2vw, 448px); min-height: 0 !important; }
/* Titel rechts bündig mit dem Kontakt-Button im Kopfbereich */
.kv-hero.wp-block-cover { padding-left: var(--wp--style--root--padding-left); padding-right: var(--wp--style--root--padding-right); padding-bottom: 0; }
.kv-hero .wp-block-cover__inner-container { width: 100% !important; max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important; padding-bottom: clamp(14px, 2.4vw, 32px); } /* gleicher Abstand zum Bildrand wie auf den Unterseiten */
.kv-hero .wp-block-cover__inner-container > * { max-width: none !important; margin-right: 0 !important; }
.kv-hero-title { font-size: clamp(2.2rem, 4.5vw, 3.4rem) !important; text-shadow: 0 2px 14px rgba(0,0,0,.35); margin: 0; }
.kv-hero-sub { margin-top: .25rem; line-height: 1.3; text-shadow: 0 1px 8px rgba(0,0,0,.4); font-size: 1.05rem; }
.kv-caps { text-transform: uppercase; letter-spacing: .18em; font-weight: 600; font-size: 1.35rem; opacity: .9; }
/* Kopfbilder der Unterseiten immer bis zum Browserrand (über den Seitenrand hinaus) */
.wp-block-image.kv-hero-img { margin-top: 0 !important; margin-bottom: 0 !important; margin-left: calc(-1 * var(--wp--style--root--padding-left)) !important; margin-right: calc(-1 * var(--wp--style--root--padding-right)) !important; max-width: none !important; width: auto !important; }
.wp-block-image.kv-hero-img img { width: 100%; height: clamp(240px, 24.2vw, 448px); object-fit: cover; display: block; }

/* Abgedunkeltes Kopfbild mit Seitentitel (z. B. Blog/Therapie) */
.kv-page-hero.wp-block-cover { min-height: clamp(240px, 24.2vw, 448px) !important; padding-top: clamp(90px, 9vw, 150px); padding-bottom: var(--wp--preset--spacing--40); }
.kv-page-hero h1 { margin: 0; }
.kv-page-hero p { margin-top: .5rem; opacity: .9; }

/* ---------- Abschnitte & Typografie ---------- */
.is-style-kv-soft { background: var(--wp--preset--color--soft-bg); }
.kv-title-band { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--40); }
.kv-title-band .wp-block-post-title { margin-top: .25rem; }
.kv-eyebrow { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; }
.kv-eyebrow a { text-decoration: none; }
.kv-lead { font-size: 1.1rem; line-height: 1.7; }
.kv-intro-title { max-width: 900px; margin-inline: auto; font-size: clamp(1.7rem, 3vw, 2.4rem) !important; }
.kv-num { font-family: var(--wp--preset--font-family--heading); font-size: 2.5rem; line-height: 1; font-weight: 700; color: var(--wp--preset--color--soft); margin-bottom: -.25rem; -webkit-text-stroke: 1px var(--wp--preset--color--primary); }

.wp-block-columns.alignwide { gap: clamp(1.5rem, 4vw, 4rem); }
.wp-block-columns.alignwide + .wp-block-columns.alignwide { margin-top: var(--wp--preset--spacing--50); }
@media (max-width: 781px) {
	.kv-reverse-mobile { flex-direction: column-reverse; }
}

/* Bilder */
.is-style-rounded-soft img { border-radius: var(--wp--custom--radius); box-shadow: var(--wp--custom--shadow); }
.kv-cards > .wp-block-column { background: var(--wp--preset--color--base); border-radius: var(--wp--custom--radius); padding: 1.75rem; box-shadow: var(--wp--custom--shadow); }
.kv-cards > .wp-block-column img { border-radius: 6px; aspect-ratio: 3/2; object-fit: cover; width: 100%; }

/* Häkchen-Liste */
.is-style-kv-checks { list-style: none; padding-left: 0; }
.is-style-kv-checks li { position: relative; padding-left: 1.8rem; margin-bottom: .4rem; }
.is-style-kv-checks li::before { content: ""; position: absolute; left: 0; top: .45em; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--wp--preset--color--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' d='M4 8.5l2.6 2.5L12 5.5'/%3E%3C/svg%3E") center/80% no-repeat; }

/* ---------- Beitragskarten ---------- */
.kv-card { background: #f6f7f6; border-radius: var(--wp--custom--radius); overflow: hidden; height: 100%; transition: transform .2s ease, box-shadow .2s ease; }
.kv-card:hover { transform: translateY(-3px); box-shadow: var(--wp--custom--shadow); }
.kv-card .kv-card-img { margin: 0; width: 100%; }
.kv-card .kv-card-img img { width: 100%; }
.kv-card-body { padding: .5rem 1.5rem 1.6rem; }
.kv-card .wp-block-post-title { margin: 0; line-height: 1.3; }
.kv-card .wp-block-post-title a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.kv-card .wp-block-post-excerpt { font-size: .95rem; }
.kv-card .wp-block-post-excerpt__excerpt { margin-bottom: .5rem; }
.kv-card .wp-block-post-excerpt__more-link { font-weight: 500; }
.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--40); gap: .5rem; }
.wp-block-query-pagination-numbers .page-numbers { padding: .3em .7em; border-radius: 4px; }
.wp-block-query-pagination-numbers .current { background: var(--wp--preset--color--primary); color: #fff; }

/* ---------- Einzelbeitrag ---------- */
.kv-article .wp-block-post-featured-image { margin-bottom: var(--wp--preset--spacing--40); }
.kv-article .wp-block-post-content img { border-radius: 6px; }
.kv-article .wp-block-post-navigation-link a { text-decoration: none; }

/* ---------- Aufruf-Banner ---------- */
.kv-cta .wp-block-cover__inner-container { max-width: 760px; }

/* ---------- Fußbereich ---------- */
.kv-footer a { color: var(--wp--preset--color--contrast); }
.kv-footer a:hover { color: var(--wp--preset--color--primary); }
.kv-footer .wp-block-separator { border-color: var(--wp--preset--color--soft); opacity: 1; margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20); }
.kv-footer-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--contrast); }
.kv-footer .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); padding: .6em 1.2em; }

/* Nach oben-Link-Ersatz nicht nötig; Fokus sichtbar halten */
:where(a, button, input):focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }

/* ---------- Video-Box in Beiträgen (ersetzt die Spectra-Infobox) ---------- */
.kv-video-card + .kv-video-card { margin-top: 1rem; }
.kv-video-card, .kv-link-card { position: relative; background: var(--wp--preset--color--soft-bg); border: 1px solid var(--wp--preset--color--soft); border-radius: var(--wp--custom--radius); padding: clamp(1.25rem, 3vw, 2rem); margin-block: var(--wp--preset--spacing--40); transition: box-shadow .2s ease, transform .2s ease; }
.kv-video-card:hover, .kv-link-card:hover { box-shadow: var(--wp--custom--shadow); transform: translateY(-2px); }
.kv-video-card .wp-block-columns, .kv-link-card .wp-block-columns { margin: 0; gap: clamp(1.25rem, 3vw, 2.5rem); }
.kv-video-card h3, .kv-link-card h3 { margin-top: 0; }
/* Die ganze Box ist klickbar: der Button-Link wird über die Box gespannt */
.kv-video-card .wp-block-button__link::after, .kv-link-card .wp-block-button__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.kv-video-card .wp-block-button__link:focus-visible::after { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.kv-video-thumb { margin: 0; position: relative; }
.kv-video-thumb img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; display: block; }
/* Play-Symbol auf dem Vorschaubild */
.kv-video-card .kv-video-thumb a::after { content: ""; position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; transform: translate(-50%, -50%); border-radius: 50%; background: rgba(1, 33, 4, .7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 7v10l8-5z'/%3E%3C/svg%3E") center / 60% no-repeat; transition: background-color .2s ease; }
.kv-video-card:hover .kv-video-thumb a::after { background-color: rgba(255, 0, 0, .85); }

/* ---------- Praxis-Titel im Kopfbereich aller Unterseiten mit Kopfbild ---------- */
.kv-header-title { display: none; }
.wp-site-blocks:has(.kv-hero-img:first-child) > .kv-site-header .kv-header {
	height: clamp(240px, 24.2vw, 448px); display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box;
	padding-bottom: clamp(14px, 2.4vw, 32px) !important;
}
.wp-site-blocks:has(.kv-hero-img:first-child) > .kv-site-header .kv-header > * { width: 100%; }
.wp-site-blocks:has(.kv-hero-img:first-child) > .kv-site-header .kv-header-title { display: block; color: #fff; margin-block: 0; }
.kv-header-title p { margin: 0; color: #fff; }
.kv-header-title .kv-hero-title { font-family: var(--wp--preset--font-family--heading); font-weight: 600; letter-spacing: -1px; line-height: 1.1; text-shadow: 0 2px 14px rgba(0,0,0,.35); }
/* Schriftgrößen kommen aus .kv-hero-title / .kv-hero-sub / .kv-caps – identisch mit der Startseite */
.kv-header-title p.kv-hero-sub { margin-top: .25rem; }
