/* Hochzeitsfilm Core: globale Feinheiten. Layout, Abstände und Größen liegen in den Kadence-Blöcken (pro Gerät editierbar). */

:root {
	--hf-ease: cubic-bezier(.22, .61, .36, 1);
}

html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 90px; }

body { font-optical-sizing: auto; -webkit-font-smoothing: antialiased; }
h1, h2, h3, .kt-adv-heading { text-wrap: balance; }
p { text-wrap: pretty; }
::selection { background: var(--global-palette1); color: var(--global-palette9); }
mark.kt-highlight { background: transparent; padding: 0; }

a:focus-visible, button:focus-visible, .kb-button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
	outline: 2px solid var(--global-palette1);
	outline-offset: 3px;
}

/* Header: Wortmarke mit Untertitel, Anderson-Symmetrie */
.site-branding .site-title { font-variation-settings: "opsz" 72; }
.site-branding .site-description { margin-top: 4px; }
.site-header-main-section-center .site-branding { text-align: center; }
.site-header-main-section-center .brand { flex-direction: column; }
.header-navigation .menu > li > a { padding-top: .6em; padding-bottom: .6em; }

/* Mobile Fullscreen-Menü */
#mobile-drawer .drawer-inner { background: var(--global-palette9); }
#mobile-drawer .mobile-navigation ul li > a { justify-content: center; padding: .35em 0; }
#mobile-drawer .mobile-header-button-wrap { margin-top: 1.5rem; }

/* Hero: Titelkarte mit doppelter Linie (wie ein Filmtitel) */
.hf-titlecard > .kt-inside-inner-col { position: relative; }
.hf-titlecard > .kt-inside-inner-col::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid color-mix(in srgb, var(--global-palette1) 35%, transparent);
	pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
	.hf-hero-photo { animation: hf-develop 1.6s var(--hf-ease) both; }
	.hf-titlecard { animation: hf-rise .8s .15s var(--hf-ease) both; }
}
@keyframes hf-develop { from { filter: saturate(0) brightness(1.12) contrast(.85); } to { filter: none; } }
@keyframes hf-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* Über mich: Porträt auf Pastellkachel, wie ein gerahmtes Standbild */
.hf-portrait-tile .kb-image-wrap, .hf-portrait-tile figure { margin: 0; }
.hf-portrait-tile img { display: block; width: 100%; height: auto; }
@media (min-width: 1025px) {
	.hf-portrait-tile { position: sticky; top: 120px; align-self: start; }
}

/* Steckbrief im Stil eines Filmabspanns */
.hf-credits { margin: 0; }
.hf-credits table { border-collapse: collapse; width: 100%; }
.entry-content .hf-credits td, .hf-credits td { border: 0; border-bottom: 1px dotted var(--global-palette6); padding: .6em 0; vertical-align: baseline; }
.entry-content .hf-credits tr:first-child td { border-top: 1px solid var(--global-palette6); }
.entry-content .hf-credits td:first-child {
	width: 38%;
	padding-right: 1em;
	font-family: "Jost", Futura, "Century Gothic", sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--global-palette1);
}
.entry-content .hf-credits td:last-child {
	font-family: "Fraunces", Georgia, serif;
	font-size: 17px;
	line-height: 1.4;
	color: var(--global-palette3);
}
@media (max-width: 767px) {
	.entry-content .hf-credits td:first-child { width: 42%; font-size: 10px; letter-spacing: .14em; }
	.entry-content .hf-credits td:last-child { font-size: 16px; }
}

/* Scroll-Reveal: Klasse "hf-reveal" an einem Block setzen */
.hf-js .hf-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .9s var(--hf-ease) var(--hf-delay, 0ms), transform .9s var(--hf-ease) var(--hf-delay, 0ms);
}
.hf-js .hf-reveal.is-visible { opacity: 1; transform: none; }

/* Portfolio: "Kinosaal" (dunkler Abschnitt) + Entwickeln-Effekt */
.hf-develop .kadence-blocks-gallery-item .kb-gal-image-radius { overflow: hidden; }
.hf-dev-on .hf-develop img {
	filter: grayscale(calc(1 - var(--dev, 0))) sepia(calc((1 - var(--dev, 0)) * .5)) brightness(calc(1.75 - .75 * var(--dev, 0))) contrast(calc(.45 + .55 * var(--dev, 0))) blur(calc((1 - var(--dev, 0)) * 2px));
	transform: scale(calc(1.05 - .05 * var(--dev, 0)));
	will-change: filter, transform;
}
.hf-develop .kadence-blocks-gallery-item .kadence-blocks-gallery-item-inner .kadence-blocks-gallery-item__caption {
	font-family: "Jost", Futura, "Century Gothic", sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--global-palette6);
	background: transparent !important;
	padding: 12px 0 0;
	text-align: left;
}
.hf-develop .kadence-blocks-gallery-item a:focus-visible { outline: 2px solid var(--global-palette10); outline-offset: 4px; }
@media (max-width: 767px) {
	.hf-develop .kadence-blocks-gallery-item .kadence-blocks-gallery-item-inner .kadence-blocks-gallery-item__caption { font-size: 9px; letter-spacing: .12em; padding-top: 8px; }
}
/* Kundenstimmen: Filmeinstellung (nur mit JavaScript, ohne reduzierte Bewegung) */
:root { --hf-head: 73px; }
@media (max-width: 1024px) { :root { --hf-head: 61px; } }
.hf-js .hf-tstage.hf-staged { height: 320vh; overflow: clip; }
.hf-js .hf-tstage.hf-staged > .kt-row-column-wrap {
	position: sticky;
	top: var(--hf-head);
	height: calc(100vh - var(--hf-head));
	align-content: center;
}
.hf-js .hf-tstage.hf-staged .hf-t-photo { position: relative; z-index: 5; transform-origin: center center; will-change: transform; }
.hf-js .hf-tstage.hf-staged .hf-t-photo img { box-shadow: 0 0 0 calc(8px * var(--hf-shrink, 0)) var(--global-palette9); }
.hf-js .hf-tstage.hf-staged .hf-t-fade { opacity: 0; }
.hf-t-quote .hf-w { transition: opacity .25s linear; }
@media (max-width: 767px) {
	.hf-js .hf-tstage.hf-staged { height: 280vh; }
}
.hf-js .hf-tstage.hf-staged > .kt-row-column-wrap > .wp-block-kadence-column:has(.hf-t-photo) { position: relative; z-index: 5; }
.hf-js .hf-tstage.hf-staged > .kt-row-column-wrap > .wp-block-kadence-column:not(:has(.hf-t-photo)) { opacity: clamp(0, calc(var(--hf-shrink, 0) * 1.6 - .6), 1); }
.hf-js .hf-tstage.hf-staged .hf-w { opacity: .12; }

/* Pakete: Kinoticket mit Lochung (Klasse "hf-ticket" an der Spalte, Trennlinie mit Klasse "hf-perf") */
.hf-ticket { position: relative; }
.hf-ticket .wp-block-separator.hf-perf {
	border: 0;
	border-top: 1px dashed color-mix(in srgb, currentColor 45%, transparent);
	opacity: 1 !important;
	background: none;
	height: 0;
	width: auto;
	max-width: none;
	margin: 26px -36px 24px;
	position: relative;
	overflow: visible;
}
.hf-ticket .wp-block-separator.hf-perf::before,
.hf-ticket .wp-block-separator.hf-perf::after {
	content: "";
	position: absolute;
	top: -13px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--global-palette9);
	opacity: 1;
}
.hf-ticket .wp-block-separator.hf-perf::before { left: -12px; }
.hf-ticket .wp-block-separator.hf-perf::after { right: -12px; }
@media (max-width: 1024px) { .hf-ticket .wp-block-separator.hf-perf { margin-left: -32px; margin-right: -32px; } }
@media (max-width: 767px) { .hf-ticket .wp-block-separator.hf-perf { margin-left: -26px; margin-right: -26px; } }

/* Listen mit feinem Strich statt Punkt (Klasse "hf-list" an der Liste) */
ul.hf-list { list-style: none; margin: 0; padding: 0; }
ul.hf-list li {
	position: relative;
	padding: .5em 0 .5em 1.5em;
	border-bottom: 1px dotted color-mix(in srgb, currentColor 30%, transparent);
	line-height: 1.45;
}
ul.hf-list li:last-child { border-bottom: 0; }
ul.hf-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.2em;
	width: .8em;
	height: 1px;
	background: currentColor;
	opacity: .7;
}
.hf-ticket ul.hf-list { font-size: 16px; }
@media (max-width: 767px) { .hf-ticket ul.hf-list { font-size: 15px; } }
.kt-row-column-wrap > .hf-ticket { display: flex; flex-direction: column; }
.kt-row-column-wrap > .hf-ticket > .kt-inside-inner-col { flex: 1 1 auto; }
@media (max-width: 1024px) { .kt-row-column-wrap > .hf-ticket { justify-self: center; width: 100%; margin-left: auto; margin-right: auto; } }

/* Ablauf: Filmstreifen (Klasse "hf-filmstrip" an der Zeile, "hf-frame" an den Spalten) */
.hf-filmstrip {
	--hf-holes: repeating-linear-gradient(90deg, transparent 0 9px, var(--global-palette9) 9px 23px, transparent 23px 32px);
	background-image: var(--hf-holes), var(--hf-holes) !important;
	background-size: 100% 12px, 100% 12px !important;
	background-position: 0 14px, 0 calc(100% - 14px) !important;
	background-repeat: no-repeat !important;
}
.hf-frame > .kt-inside-inner-col { height: 100%; }
.hf-filmstrip .hf-frame.hf-reveal:nth-child(2) { --hf-delay: 90ms; }
.hf-filmstrip .hf-frame.hf-reveal:nth-child(3) { --hf-delay: 180ms; }
.hf-filmstrip .hf-frame.hf-reveal:nth-child(4) { --hf-delay: 270ms; }
.hf-filmstrip .hf-frame.hf-reveal:nth-child(5) { --hf-delay: 360ms; }
@media (max-width: 1024px) {
	.hf-filmstrip {
		--hf-holes: repeating-linear-gradient(180deg, transparent 0 9px, var(--global-palette9) 9px 23px, transparent 23px 32px);
		background-size: 12px 100%, 12px 100% !important;
		background-position: 12px 0, calc(100% - 12px) 0 !important;
	}
	.hf-filmstrip .hf-frame.hf-reveal { --hf-delay: 0ms !important; }
	.hf-filmstrip > .kt-row-column-wrap { row-gap: 14px !important; }
}
/* FAQ: schlichtes Akkordeon (Klasse "hf-faq" am Akkordeon-Block) */
.hf-faq .kt-accordion-pane { margin: 0 !important; }
.hf-faq .kt-blocks-accordion-header {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--global-palette6) !important;
	border-radius: 0 !important;
	padding: 22px 4px 22px 0 !important;
	font-family: "Fraunces", Georgia, serif !important;
	font-size: 21px !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
	color: var(--global-palette3) !important;
	text-align: left;
	letter-spacing: 0 !important;
	text-transform: none !important;
	transition: color .2s ease;
}
.hf-faq .kt-blocks-accordion-header .kt-blocks-accordion-title { letter-spacing: 0 !important; }
.hf-faq .kt-blocks-accordion-header:hover,
.hf-faq .kt-blocks-accordion-header.kt-accordion-panel-active { color: var(--global-palette1) !important; }
.hf-faq .kt-accordion-pane:first-child .kt-blocks-accordion-header { border-top: 1px solid var(--global-palette6) !important; }
.hf-faq .kt-blocks-accordion-icon-trigger:before,
.hf-faq .kt-blocks-accordion-icon-trigger:after { background: var(--global-palette1) !important; }
.hf-faq .kt-accordion-panel-inner {
	background: transparent !important;
	border: 0 !important;
	padding: 6px 48px 28px 0 !important;
	color: var(--global-palette4);
	font-size: 17px;
	line-height: 1.65;
}
.hf-faq .kt-accordion-panel-inner p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.hf-faq .kt-blocks-accordion-header { font-size: 17px !important; padding: 18px 2px 18px 0 !important; gap: 12px; }
	.hf-faq .kt-blocks-accordion-title-wrap { padding-right: 0 !important; }
	.hf-faq .kt-accordion-panel-inner { padding-right: 0 !important; font-size: 16px; }
}
@media (min-width: 1025px) { .hf-sticky { position: sticky; top: 130px; align-self: start; } }
.hf-faq .kt-blocks-accordion-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.hf-faq .kt-blocks-accordion-title-wrap { flex: 1 1 auto; min-width: 0; max-width: none !important; }
.hf-faq .kt-blocks-accordion-icon-trigger { flex: 0 0 auto; }
@media (max-width: 1024px) { #faq > .kt-row-column-wrap > .wp-block-kadence-column { justify-self: center; width: 100%; margin-left: auto; margin-right: auto; } }

/* Kontakt: Anfrageformular als gerahmter Zettel (Szene 1, Take 1) */
@media (max-width: 1024px) { #kontakt > .kt-row-column-wrap > .wp-block-kadence-column { justify-self: center; width: 100%; margin-left: auto; margin-right: auto; } }
.hf-slip > .kt-inside-inner-col { position: relative; }
.hf-slip > .kt-inside-inner-col::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid color-mix(in srgb, var(--global-palette1) 35%, transparent);
	pointer-events: none;
}
.hf-form .kb-form { align-items: flex-start; }
.hf-form .kb-form label {
	font-family: "Jost", Futura, "Century Gothic", sans-serif;
	letter-spacing: .16em;
	line-height: 1.4;
}
.hf-form .kb-form label .required { color: var(--global-palette1); margin-left: .25em; }
.hf-form .kb-form .kb-field {
	font-family: "Jost", Futura, "Century Gothic", sans-serif;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-shadow: none;
	outline-offset: 4px;
	transition: border-color .25s ease;
}
.hf-form .kb-form .kb-field:focus { outline: none; }
.hf-form .kb-form .kb-field:focus-visible { outline: 2px solid color-mix(in srgb, var(--global-palette1) 40%, transparent); }
.hf-form .kb-form .kb-field::placeholder { font-family: "Fraunces", Georgia, serif; font-style: italic; color: var(--global-palette5); opacity: .75; }
.hf-form .kb-form textarea.kb-field { resize: vertical; min-height: 130px; }
.hf-form .kb-form select.kb-field {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 28px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235E1A24' stroke-width='1.4'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 4px center !important;
	cursor: pointer;
}
.hf-form .kb-form input[type="date"].kb-field { min-height: 49px; color: var(--global-palette3); }
.hf-form .kb-form input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .6; }
.hf-form .kb-form .kb-field-help { display: block; margin-top: 6px; font-size: 13px; font-style: italic; font-family: "Fraunces", Georgia, serif; color: var(--global-palette5); }
/* Einwilligung */
.hf-form .kb-form .kb-accept-form-field { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 12px; }
.hf-form .kb-form .kb-accept-form-field label {
	flex: 1 1 0;
	min-width: 0;
	text-transform: none !important;
	letter-spacing: 0;
	font-weight: 400 !important;
	font-size: 14px !important;
	line-height: 1.55;
	color: var(--global-palette4) !important;
	margin: 0 !important;
}
.hf-form .kb-form .kb-accept-form-field label a { color: var(--global-palette1); text-decoration: underline; text-underline-offset: 3px; }
.hf-form .kb-form input.kb-accept {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 18px;
	width: 18px !important;
	height: 18px;
	margin: 2px 0 0 !important;
	border: 1px solid var(--global-palette1) !important;
	border-radius: 0;
	background: transparent;
	display: grid;
	place-content: center;
	cursor: pointer;
}
.hf-form .kb-form input.kb-accept::after { content: ""; width: 10px; height: 10px; background: var(--global-palette1); transform: scale(0); transition: transform .2s var(--hf-ease, ease); }
.hf-form .kb-form input.kb-accept:checked::after { transform: scale(1); }
/* Absenden */
.hf-form .kb-form .kb-forms-submit { letter-spacing: .16em; line-height: 1.2; transition: background-color .25s ease, border-color .25s ease; }
@media (max-width: 767px) { .hf-form .kb-form .kb-forms-submit { width: 100%; } }
/* Meldungen */
.hf-form .kadence-blocks-form-message {
	border-radius: 0;
	border-width: 0 0 0 3px;
	padding: 14px 18px;
	font-size: 15px;
	line-height: 1.5;
}
.hf-form .kadence-blocks-form-success { background: color-mix(in srgb, var(--global-palette12) 18%, transparent); border-color: var(--global-palette12); color: var(--global-palette3); }
.hf-form .kadence-blocks-form-warning { background: color-mix(in srgb, var(--global-palette7) 35%, transparent); border-color: var(--global-palette1); color: var(--global-palette2); }
.hf-form .kb-form-has-error, .hf-form .kb-field.has-error { border-color: var(--global-palette1) !important; }
.hf-form .kb-form .kb-form-error-msg, .hf-form .kb-form .kb-form-error-msg.kadence-blocks-form-warning {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 6px 0 0 !important;
	font-family: "Fraunces", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 13px;
	line-height: 1.4;
	color: var(--global-palette1) !important;
}
.hf-form .kb-form .kb-accept-form-field .kb-form-error-msg { flex: 0 0 100%; margin-left: 30px !important; }
.hf-form .kb-form .kb-accept-form-field { flex-wrap: wrap; }
.hf-form .kb-form .kb-accept-form-field label { flex: 1 1 0 !important; }
.hf-form .kadence-blocks-form-message { font-weight: 400; margin-top: 18px; }
.entry-content .wp-block-kadence-form.hf-form { margin-bottom: 0; }
.hf-form .kb-form .kadence-blocks-form-field.kb-submit-field { margin-bottom: 0; }
.hf-form .kb-form .kb-field-help { color: var(--global-palette5) !important; }

/* Footer: Abspann (Muster "Footer: Abspann"). Farben/Abstände/Schriftgrößen in den Blöcken. */
.site-footer.hf-footer { background: var(--global-palette3); color: var(--global-palette6); }
.hf-footer .wp-block-kadence-rowlayout { margin: 0; }
.hf-footer a:focus-visible { outline-color: var(--global-palette10); }
.hf-footer a { color: var(--global-palette9); text-decoration: none; transition: color .25s var(--hf-ease); }
.hf-footer a:hover { color: var(--global-palette7); }

.hf-endroll { margin: 0; }
.hf-endroll table { border-collapse: collapse; width: 100%; }
.hf-endroll td { border: 0 !important; padding: .5em 0; vertical-align: baseline; background: transparent; }
.hf-endroll td:first-child {
	width: 50%;
	padding-right: 1.4em;
	text-align: right;
	font-family: "Jost", Futura, "Century Gothic", sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--global-palette6);
}
.hf-endroll td:last-child {
	padding-left: 1.4em;
	text-align: left;
	font-family: "Fraunces", Georgia, serif;
	font-size: 17px;
	line-height: 1.45;
	color: var(--global-palette9);
}
.hf-endroll a { border-bottom: 1px solid color-mix(in srgb, var(--global-palette7) 45%, transparent); }
@media (max-width: 767px) {
	.hf-endroll tr { display: block; padding: .55em 0; }
	.hf-endroll td { display: block; width: auto !important; padding: 0 !important; text-align: center !important; }
	.hf-endroll td:first-child { font-size: 10px; letter-spacing: .18em; margin-bottom: .25em; }
	.hf-endroll td:last-child { font-size: 16px; }
}

/* Abspann rollt: Zeilen erscheinen nacheinander */
@media (prefers-reduced-motion: no-preference) {
	.hf-js .hf-endroll.hf-reveal { opacity: 1; transform: none; }
	.hf-js .hf-endroll tr { opacity: 0; transform: translateY(14px); transition: opacity .8s var(--hf-ease), transform .8s var(--hf-ease); }
	.hf-js .hf-endroll.is-visible tr { opacity: 1; transform: none; }
	.hf-endroll tr:nth-child(2) { transition-delay: 90ms; }
	.hf-endroll tr:nth-child(3) { transition-delay: 180ms; }
	.hf-endroll tr:nth-child(4) { transition-delay: 270ms; }
	.hf-endroll tr:nth-child(5) { transition-delay: 360ms; }
	.hf-endroll tr:nth-child(6) { transition-delay: 450ms; }
	.hf-endroll tr:nth-child(7) { transition-delay: 540ms; }
	.hf-endroll tr:nth-child(n+8) { transition-delay: 630ms; }
}

.hf-footnav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .7em 2em;
	margin: 0;
	font-family: "Jost", Futura, "Century Gothic", sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.hf-footnav a { padding: .4em 0; }
.hf-footer .hf-footrule {
	max-width: none;
	width: 100%;
	margin: 48px 0 24px;
	border: 0;
	border-top: 1px solid color-mix(in srgb, var(--global-palette6) 28%, transparent);
	background: none;
	opacity: 1;
}
.hf-footlegal {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5em 1.8em;
	margin: 0;
	font-family: "Jost", Futura, "Century Gothic", sans-serif;
	font-size: 12px;
	letter-spacing: .06em;
	color: var(--global-palette6);
}
.hf-footer .hf-footlegal a { color: var(--global-palette6); }
.hf-footer .hf-footlegal a:hover { color: var(--global-palette9); }
@media (max-width: 767px) {
	.hf-footnav { gap: .5em 1.4em; }
	.hf-footer .hf-footrule { margin: 36px 0 20px; }
	.hf-footlegal { gap: .4em 1.2em; font-size: 11px; }
	.hf-footlegal .hf-totop { flex-basis: 100%; text-align: center; margin-top: .4em; }
}
/* Footer mobil: Links mit genug Tippfläche */
@media (max-width: 767px) {
	.hf-footnav a, .hf-footlegal a { display: inline-block; padding: .8em 0; }
	.hf-footnav { gap: 0 1.4em; }
	.hf-footlegal { gap: 0 1.2em; align-items: center; }
	.hf-footlegal .hf-totop { margin-top: 0; }
	.hf-footer .hf-footrule { margin: 28px 0 8px; }
}
