/* Theme-level helpers, Instrument-inspired chrome on stri.be dark shell. */

:root {
	--stribe-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--stribe-header-bg: var(--wp--preset--color--base);
	--stribe-line: color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

html {
	scroll-behavior: smooth;
	overflow-x: clip;
}

::selection {
	background: color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	color: var(--wp--preset--color--contrast);
}

.stribe-skip-link.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.stribe-skip-link.screen-reader-text:focus {
	background-color: var(--wp--preset--color--contrast);
	clip: auto !important;
	clip-path: none;
	color: var(--wp--preset--color--base);
	display: block;
	font-size: 1rem;
	height: auto;
	left: var(--wp--preset--spacing--40);
	line-height: normal;
	padding: 0.75rem 1rem;
	text-decoration: none;
	top: var(--wp--preset--spacing--40);
	width: auto;
	z-index: 100000;
}

#wp--skip-link--target:focus {
	outline: none;
}

/* --- Header / nav (Instrument: uppercase, tracked, underline draw) --- */
.stribe-header {
	z-index: 100;
	background: var(--stribe-header-bg) !important;
	border-bottom: 1px solid var(--stribe-line);
	transition:
		padding 0.35s var(--stribe-ease),
		border-color 0.35s var(--stribe-ease);
}

.stribe-header.is-scrolled {
	padding-top: 0.85rem !important;
	padding-bottom: 0.85rem !important;
	background: var(--wp--preset--color--base) !important;
	border-bottom-color: color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
}

.stribe-header .stribe-brand {
	gap: 0.75rem;
	align-items: center;
	text-decoration: none;
}

.stribe-header .stribe-brand .wp-block-site-title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1;
}

.stribe-header .stribe-brand .wp-block-site-title a {
	color: inherit;
	text-decoration: none !important;
}

/*
 * Logo is a baked app-icon (dark tile + sharp white slash). Display as-is;
 * do not add a second tile or padding that clips the bar.
 */
.stribe-header .wp-block-site-logo {
	line-height: 0;
}

.stribe-header .wp-block-site-logo .custom-logo-link,
.stribe-header .wp-block-site-logo a {
	display: block;
	width: 48px;
	height: 48px;
	box-sizing: border-box;
	padding: 0;
	border-radius: 11px;
	overflow: hidden;
	background: transparent;
	text-decoration: none !important;
	transition:
		transform 0.35s var(--stribe-ease),
		opacity 0.35s var(--stribe-ease),
		width 0.35s var(--stribe-ease),
		height 0.35s var(--stribe-ease);
}

.stribe-header .wp-block-site-logo img {
	display: block;
	width: 48px !important;
	height: 48px !important;
	max-width: none;
	margin: 0;
	object-fit: contain;
}

.stribe-header.is-scrolled .wp-block-site-logo .custom-logo-link,
.stribe-header.is-scrolled .wp-block-site-logo a {
	width: 40px;
	height: 40px;
	border-radius: 9px;
}

.stribe-header.is-scrolled .wp-block-site-logo img {
	width: 40px !important;
	height: 40px !important;
}

.stribe-header .wp-block-navigation__container {
	gap: 2rem;
}

.stribe-header .wp-block-navigation-item a {
	position: relative;
	display: inline-block;
	text-decoration: none !important;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 400;
	font-size: 13px;
	line-height: 1.2;
	padding: 0.35rem 0;
	opacity: 0.78;
	transition: opacity 0.3s var(--stribe-ease);
}

.stribe-header .wp-block-navigation-item a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.4s var(--stribe-ease);
}

.stribe-header .wp-block-navigation-item a:hover,
.stribe-header .wp-block-navigation-item.current-menu-item a {
	opacity: 1;
}

.stribe-header .wp-block-navigation-item a:hover::after,
.stribe-header .wp-block-navigation-item.current-menu-item a::after {
	transform: scaleX(1);
}

.stribe-header .wp-block-navigation__responsive-container-open svg,
.stribe-header .wp-block-navigation__responsive-container-close svg {
	fill: currentColor;
}

/* Mobile overlay: breathing room around links + close control */
.stribe-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem 1.75rem 2.75rem !important;
}

.stribe-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.75rem;
	gap: 0.35rem;
	width: 100%;
}

.stribe-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0.25rem;
	width: 100%;
	align-items: flex-start !important;
}

.stribe-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
}

.stribe-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	display: block;
	padding: 0.95rem 0.15rem !important;
	font-size: 15px;
	letter-spacing: 0.12em;
	opacity: 1;
}

.stribe-header .wp-block-navigation__responsive-container-close {
	top: 1.35rem !important;
	right: 1.35rem !important;
	padding: 0.5rem !important;
}

/* Cookiebot floating widget, keep accessible, less dominant */
#CookiebotWidget {
	transform: scale(0.55);
	transform-origin: bottom left;
	opacity: 0.45;
	transition: opacity 0.25s ease, transform 0.25s ease;
}

#CookiebotWidget:hover,
#CookiebotWidget:focus-within {
	opacity: 1;
	transform: scale(0.7);
}

/* reCAPTCHA badge, only on pages with CF7 (home + kontakt); always small */
.grecaptcha-badge {
	transform: scale(0.5);
	transform-origin: bottom right;
	opacity: 0.4;
	visibility: hidden !important;
}

body.home .grecaptcha-badge,
body.page-id-567 .grecaptcha-badge {
	visibility: visible !important;
}

/* --- Buttons (Instrument: sharp, uppercase, outline → fill) --- */
:root :where(.wp-element-button, .wp-block-button__link) {
	background: transparent !important;
	background-color: transparent !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--preset--color--contrast) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
	padding: 1rem 1.75rem !important;
	transition:
		background-color 0.35s var(--stribe-ease),
		color 0.35s var(--stribe-ease),
		border-color 0.35s var(--stribe-ease),
		transform 0.35s var(--stribe-ease);
}

:root :where(.wp-element-button:hover, .wp-block-button__link:hover),
:root :where(.wp-element-button:focus, .wp-block-button__link:focus) {
	background: var(--wp--preset--color--contrast) !important;
	background-color: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
	border-color: var(--wp--preset--color--contrast) !important;
}

.stribe-cta {
	margin-top: 0.5rem;
}

/* --- Scroll reveal ---
 * Only hide when JS has gated via html.stribe-js (set before marking nodes).
 * Without that class, .stribe-reveal stays visible (no-JS / failed init).
 */
html.stribe-js .stribe-reveal {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 0.85s var(--stribe-ease),
		transform 0.85s var(--stribe-ease);
	will-change: opacity, transform;
}

html.stribe-js .stribe-reveal.is-inview {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.stribe-reveal--delay-1 {
	transition-delay: 0.08s;
}

.stribe-reveal--delay-2 {
	transition-delay: 0.16s;
}

.stribe-reveal--delay-3 {
	transition-delay: 0.24s;
}

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

	html.stribe-js .stribe-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.stribe-header,
	.stribe-header .wp-block-site-logo img,
	:root :where(.wp-element-button, .wp-block-button__link) {
		transition: none;
	}
}

/* --- Surfaces / cards --- */
.stribe-service-grid > * {
	min-width: 0;
}

.stribe-service-card {
	height: 100%;
	transition: transform 0.45s var(--stribe-ease), opacity 0.45s var(--stribe-ease);
}

.stribe-service-card:hover {
	transform: translateY(-4px);
}

.is-style-stribe-surface,
.stribe-post-card {
	background-color: var(--wp--preset--color--surface);
	border: 1px solid var(--stribe-line) !important;
	transition:
		border-color 0.4s var(--stribe-ease),
		transform 0.45s var(--stribe-ease);
}

.stribe-post-card:hover {
	border-color: rgba(255, 252, 252, 0.28) !important;
	transform: translateY(-3px);
}

.stribe-post-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.stribe-post-card .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	object-fit: cover;
	transition: transform 0.7s var(--stribe-ease);
}

.stribe-post-card:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}

/* Production-style blog list (open cards, no heavy boxes). */
.stribe-post-card--list {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	transform: none !important;
	max-width: none;
}

.stribe-post-card--list:hover {
	transform: none !important;
	border: 0 !important;
}

.stribe-post-card--list .wp-block-post-featured-image {
	margin-bottom: 1.1rem;
}

.stribe-post-cats,
.stribe-post-cats a {
	font-size: 14px !important;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	color: var(--wp--preset--color--muted) !important;
}

.stribe-post-cats a:hover {
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: underline !important;
	text-underline-offset: 0.2em;
}

.stribe-post-card--list .wp-block-post-title {
	margin: 0.15rem 0 0.35rem;
	font-weight: 500;
}

.stribe-post-card--list .wp-block-post-title a {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	transition: background-size 0.4s var(--stribe-ease);
}

.stribe-post-card--list .wp-block-post-title a:hover {
	background-size: 100% 1px;
}

.stribe-post-card--list .wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.5rem;
	text-transform: none;
	letter-spacing: 0.02em;
	font-size: 16px;
	font-weight: 400;
	text-decoration: none;
	border-bottom: 0;
	padding-bottom: 0;
	opacity: 0.9;
}

.stribe-post-card--list .wp-block-post-excerpt__more-link::after {
	content: "→";
	transition: transform 0.3s var(--stribe-ease);
}

.stribe-post-card--list .wp-block-post-excerpt__more-link:hover {
	opacity: 1;
}

.stribe-post-card--list .wp-block-post-excerpt__more-link:hover::after {
	transform: translateX(4px);
}

.stribe-blog-linkedin a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.stribe-blog-sidebar {
	position: sticky;
	top: 5.5rem;
	align-self: flex-start;
}

.stribe-blog-widget h5 {
	margin: 0 0 0.35rem;
	font-size: 15px !important;
	line-height: 1.3 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--wp--preset--color--contrast);
}

.stribe-blog-cats,
.stribe-blog-cats ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.stribe-blog-cats li {
	margin: 0.35rem 0;
}

.stribe-blog-cats a,
.stribe-blog-tags a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 0.25s var(--stribe-ease), border-color 0.25s var(--stribe-ease);
}

.stribe-blog-cats a:hover,
.stribe-blog-tags a:hover {
	color: var(--wp--preset--color--contrast);
	border-bottom-color: currentColor;
}

.stribe-blog-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem 0.85rem;
	line-height: 1.5;
}

.stribe-blog-tags a {
	font-size: 0.9rem !important;
}

@media (max-width: 781px) {
	.stribe-blog-sidebar {
		position: static;
		margin-top: 2rem;
	}
}

/* --- Covers / parallax media bands --- */
/*
 * Full-bleed: rely on WP alignfull + root padding (theme.json).
 * Avoid width:100vw / calc(50% - 50vw) — that causes horizontal scroll
 * when a classic vertical scrollbar is present (100vw includes scrollbar).
 */
.stribe-cover.alignfull {
	max-width: none;
}

.stribe-cover {
	overflow: hidden;
	position: relative;
	z-index: 1;
	display: block !important;
	isolation: isolate;
}

/* Full-bleed photo band (replaces core/cover for editor-safe markup). */
.stribe-cover--parallax {
	min-height: 50vh;
}

.stribe-cover--parallax > .stribe-cover-media,
.stribe-cover--parallax > .wp-block-image.stribe-cover-media {
	position: absolute !important;
	inset: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	z-index: 0;
}

.stribe-cover--parallax .stribe-cover-media img,
.stribe-cover--parallax > .wp-block-image img {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
}

/* Keep hero headlines above pulled covers (home). */
.stribe-hero-intro,
.stribe-kontakt-hero {
	position: relative;
	z-index: 2;
	isolation: isolate;
}

.stribe-kontakt-hero h1,
.stribe-hero-intro h1 {
	position: relative;
	z-index: 2;
}

/* Kontakt: no negative pull, H1 must stay fully on the dark plane. */
.stribe-cover--after-hero {
	margin-top: 0 !important;
	z-index: 1;
}

@media (min-width: 782px) {
	.stribe-cover--parallax.is-parallax-ready {
		background-size: cover !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		background-attachment: fixed !important;
	}

	.stribe-cover--parallax.is-parallax-ready > .wp-block-cover__image-background,
	.stribe-cover--parallax.is-parallax-ready > .stribe-cover-media,
	.stribe-cover--parallax.is-parallax-ready > .wp-block-image,
	.stribe-cover--parallax.is-parallax-ready img {
		opacity: 0 !important;
		pointer-events: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.stribe-cover--parallax.is-parallax-ready {
		background-attachment: scroll !important;
	}
}

.stribe-cover--services {
	position: relative;
	background-color: var(--wp--preset--color--base);
	overflow: hidden;
}

/* Crisp letter wall, live type (not a stretched JPEG). */
.stribe-cover--services::before {
	content: "time management";
	position: absolute;
	inset: 0;
	z-index: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wp--preset--font-family--archivo), Archivo, system-ui, sans-serif;
	font-weight: 600;
	font-size: clamp(5.5rem, 16vw, 13rem);
	letter-spacing: -0.03em;
	line-height: 1;
	white-space: nowrap;
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 5%, transparent);
	pointer-events: none;
	user-select: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: geometricPrecision;
}

.stribe-cover--services > .wp-block-cover__background,
.stribe-cover--services > .wp-block-cover__inner-container,
.stribe-cover--services > .wp-block-columns {
	position: relative;
	z-index: 1;
}

.stribe-cover--services .wp-block-cover__image-background {
	display: none !important;
}

/* --- Map / contact --- */
.stribe-contact-panels {
	max-width: none;
}

.stribe-contact-panels > .wp-block-column {
	margin: 0;
	padding: clamp(3.25rem, 7vw, 6rem) clamp(1.75rem, 4vw, 3.25rem) !important;
	color: var(--wp--preset--color--contrast);
}

/* Contact panels follow the active style variation (panel / panel-alt). */
.stribe-contact-panels > .wp-block-column:first-child {
	background-color: var(--wp--preset--color--panel) !important;
}

.stribe-contact-panels > .wp-block-column:last-child {
	background-color: var(--wp--preset--color--panel-alt) !important;
}

.stribe-panel--kontakt {
	background-color: var(--wp--preset--color--panel) !important;
}

.stribe-panel--newsletter {
	background-color: var(--wp--preset--color--panel-alt) !important;
}

.stribe-contact-panels h3,
.stribe-contact-panels p,
.stribe-contact-panels label,
.stribe-contact-panels a {
	color: var(--wp--preset--color--contrast);
}

.stribe-contact-panels h3 {
	margin: 0 0 1.75rem;
}

.stribe-contact-panels > .wp-block-column > p {
	margin: 0 0 1.75rem;
}

.stribe-map iframe,
.stribe-map-cover iframe,
.stribe-map__canvas {
	display: block;
	width: 100%;
	min-height: 450px;
	height: 450px;
	border: 0;
	background: var(--wp--preset--color--surface);
}

.stribe-map__canvas {
	z-index: 0;
}

.stribe-map__canvas .leaflet-container {
	width: 100%;
	height: 100%;
	font: inherit;
	background: var(--wp--preset--color--surface);
}

.stribe-map__canvas .leaflet-control-attribution {
	background: color-mix(in srgb, var(--wp--preset--color--base) 82%, transparent) !important;
	color: var(--wp--preset--color--muted) !important;
	font-size: 10px;
	line-height: 1.3;
	padding: 2px 6px;
	margin: 0;
	border: 0;
	box-shadow: none;
}

.stribe-map__canvas .leaflet-control-attribution a {
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none;
}

.stribe-map__canvas .leaflet-control-zoom a {
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--contrast) !important;
	border-color: var(--wp--preset--color--border) !important;
	width: 32px;
	height: 32px;
	line-height: 32px;
	font-size: 16px;
}

.stribe-map__canvas .leaflet-control-zoom a:hover {
	background: var(--wp--preset--color--panel) !important;
}

.stribe-map__marker {
	background: transparent;
	border: 0;
}

.stribe-map__marker-dot {
	display: block;
	width: 14px;
	height: 14px;
	margin: 4px;
	border-radius: 50%;
	background: var(--wp--preset--color--contrast);
	box-shadow:
		0 0 0 3px color-mix(in srgb, var(--wp--preset--color--base) 70%, transparent),
		0 0 0 6px color-mix(in srgb, var(--wp--preset--color--contrast) 35%, transparent);
}

.stribe-map__link {
	display: none;
}

/* Qode back-to-top blows up without Qi CSS, never show it. */
#qodef-back-to-top,
.qodef-back-to-top,
a.qodef--predefined#qodef-back-to-top,
.qodef-back-to-top-icon,
.qodef-back-to-top-icon svg {
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.stribe-cf7 .wpcf7-form {
	margin: 0;
}

.stribe-cf7 .wpcf7-form > p,
.stribe-cf7 .wpcf7-form > label {
	display: block;
	margin: 0 0 2rem;
}

.stribe-cf7 .wpcf7-form > p:last-child,
.stribe-cf7 .wpcf7-form > label:last-of-type {
	margin-bottom: 0.5rem;
}

.stribe-cf7 .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	margin-top: 0.7rem;
}

.stribe-cf7--large .wpcf7 input[type="text"],
.stribe-cf7--large .wpcf7 input[type="email"],
.stribe-cf7--large .wpcf7 textarea {
	font-size: clamp(1.35rem, 2.6vw, 2rem);
	line-height: 1.35;
}

.stribe-cf7 .wpcf7-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.stribe-cf7 .wpcf7-form textarea {
	width: 100%;
	max-width: 100%;
	background: transparent !important;
	background-color: transparent !important;
	border: 0;
	border-radius: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	box-shadow: none !important;
	color: var(--wp--preset--color--contrast) !important;
	-webkit-text-fill-color: var(--wp--preset--color--contrast);
	caret-color: var(--wp--preset--color--contrast);
	padding: 0.55rem 0 1.05rem;
	margin: 0;
	transition: border-color 0.3s var(--stribe-ease), background-color 0.3s var(--stribe-ease);
}

.stribe-cf7 .wpcf7-form input::placeholder,
.stribe-cf7 .wpcf7-form textarea::placeholder {
	color: var(--wp--preset--color--muted) !important;
	opacity: 1;
}

.stribe-cf7 .wpcf7-form input:-webkit-autofill,
.stribe-cf7 .wpcf7-form input:-webkit-autofill:hover,
.stribe-cf7 .wpcf7-form input:-webkit-autofill:focus,
.stribe-cf7 .wpcf7-form textarea:-webkit-autofill,
.stribe-cf7 .wpcf7-form textarea:-webkit-autofill:hover,
.stribe-cf7 .wpcf7-form textarea:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--wp--preset--color--contrast) !important;
	caret-color: var(--wp--preset--color--contrast);
	box-shadow: 0 0 0 1000px var(--wp--preset--color--surface) inset !important;
	transition: background-color 99999s ease-out;
}

/* Light schemes: solid field surfaces so text never sits on an invisible white input. */
body.is-light-theme .stribe-cf7 .wpcf7-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.is-light-theme .stribe-cf7 .wpcf7-form textarea {
	background: var(--wp--preset--color--surface) !important;
	background-color: var(--wp--preset--color--surface) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 2px;
	padding: 0.75rem 0.9rem !important;
	color: var(--wp--preset--color--contrast) !important;
	-webkit-text-fill-color: var(--wp--preset--color--contrast) !important;
}

body.is-light-theme .stribe-cf7 .wpcf7-form input:focus,
body.is-light-theme .stribe-cf7 .wpcf7-form textarea:focus {
	border-color: var(--wp--preset--color--contrast) !important;
	outline: 2px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	outline-offset: 1px;
}

body.is-light-theme .stribe-cf7 .wpcf7-form {
	color: var(--wp--preset--color--contrast);
}

body.is-light-theme .stribe-panel--kontakt,
body.is-light-theme .stribe-panel--newsletter,
body.is-light-theme .stribe-contact-panels > .wp-block-column {
	color: var(--wp--preset--color--contrast);
}

body.is-light-theme .stribe-map__marker-dot {
	background: var(--wp--preset--color--contrast);
	box-shadow:
		0 0 0 3px color-mix(in srgb, var(--wp--preset--color--surface) 85%, transparent),
		0 0 0 6px color-mix(in srgb, var(--wp--preset--color--contrast) 28%, transparent);
}

.stribe-cf7 .wpcf7-form textarea {
	min-height: 9rem;
	resize: vertical;
	line-height: 1.45;
}

.stribe-cf7 .wpcf7-form input:focus,
.stribe-cf7 .wpcf7-form textarea:focus {
	outline: none;
	border-bottom-color: var(--wp--preset--color--contrast);
}

/* Text submit (Kontakt “Send”), Instrument outline CTA. */
.stribe-cf7 input.wpcf7-submit[type="submit"] {
	width: auto !important;
	height: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin-top: 2.25rem !important;
	padding: 1rem 1.85rem !important;
	border: 1px solid var(--wp--preset--color--contrast) !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	color: var(--wp--preset--color--contrast) !important;
	box-shadow: none !important;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition:
		background-color 0.35s var(--stribe-ease),
		color 0.35s var(--stribe-ease),
		transform 0.35s var(--stribe-ease);
}

.stribe-faq h3 {
	margin: 2rem 0 0.65rem;
	font-size: 1.15rem;
}

.stribe-faq h3:first-of-type {
	margin-top: 1.5rem;
}

.stribe-service-page .wp-block-list,
.stribe-about-page .wp-block-list {
	margin: 0 0 1.75rem;
}

.stribe-service-card a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Qi icon submit buttons, kill white/default backgrounds. */
.stribe-cf7 button.wpcf7-submit,
.stribe-cf7 .qodef-theme-button,
.stribe-cf7 button.qodef-theme-button.qodef--only-icon {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--contrast) !important;
	width: 68px;
	height: 68px;
	min-width: 68px;
	min-height: 68px;
	padding: 0 !important;
	margin-top: 0.5rem;
	line-height: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: opacity 0.3s var(--stribe-ease), transform 0.35s var(--stribe-ease);
}

.stribe-cf7 button.wpcf7-submit:hover,
.stribe-cf7 button.wpcf7-submit:focus,
.stribe-cf7 .qodef-theme-button:hover,
.stribe-cf7 .qodef-theme-button:focus {
	background: transparent !important;
	background-color: transparent !important;
	color: var(--wp--preset--color--accent) !important;
	opacity: 0.85;
	transform: translateX(4px);
}

.stribe-cf7 button.wpcf7-submit svg,
.stribe-cf7 .qodef-theme-button svg {
	display: block;
	width: 68px;
	height: 68px;
	max-width: 68px;
	stroke: currentColor;
	fill: none;
}

.stribe-cf7 .qodef-newsletter-form {
	display: flex;
	align-items: flex-end;
	gap: 1rem;
	margin-top: 0.5rem;
}

.stribe-cf7 .qodef-newsletter-form .wpcf7-form-control-wrap {
	flex: 1;
	margin-top: 0;
}

.stribe-cf7 .qodef-newsletter-form input[type="email"] {
	padding-bottom: 1.15rem;
}

.stribe-breadcrumbs {
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin: 0 auto;
	padding: 0.85rem var(--wp--preset--spacing--50) 0;
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
}

.stribe-breadcrumbs a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.stribe-breadcrumbs a:hover {
	color: var(--wp--preset--color--contrast);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.stribe-footer a {
	text-decoration: none;
	transition: opacity 0.3s var(--stribe-ease);
}

.stribe-footer a:hover {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.stribe-footer__top h6 {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 12px !important;
	line-height: 1.3 !important;
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

.stribe-footer__brand h4 {
	font-weight: 500;
	line-height: 38px;
	letter-spacing: 0.75px;
	max-width: 18em;
}

.stribe-footer__bottom p,
.stribe-footer__bottom a {
	color: var(--wp--preset--color--muted) !important;
}

.stribe-footer__logo {
	display: inline-block;
	width: 50px;
	height: 50px;
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	line-height: 0;
	border-radius: 11px;
	overflow: hidden;
	background: transparent;
}

.stribe-footer__logo img {
	display: block;
	width: 50px !important;
	height: 50px !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: contain;
}

/* Blog post body: H2s are section titles, not page heroes. */
.single-post .wp-block-post-content h2,
.single-post .wp-block-post-content .wp-block-heading:is(h2) {
	font-size: clamp(1.375rem, 2.2vw, 1.75rem);
	line-height: 1.3;
	letter-spacing: 0.02em;
	font-weight: 500;
}

.single-post .wp-block-post-content h3,
.single-post .wp-block-post-content .wp-block-heading:is(h3) {
	font-size: clamp(1.2rem, 1.8vw, 1.4rem);
	line-height: 1.35;
	letter-spacing: 0.02em;
	font-weight: 500;
}

/* Qi/Qode responsive type: ≤680px. */
@media (max-width: 680px) {
	h1,
	.h1,
	.wp-block-post-title,
	.wp-block-heading:is(h1) {
		font-size: 40px !important;
		line-height: 48px !important;
		letter-spacing: 1.25px;
	}

	h2,
	.h2,
	.wp-block-heading:is(h2) {
		font-size: 40px !important;
		line-height: 48px !important;
		letter-spacing: 1.25px;
	}

	.single-post .wp-block-post-content h2,
	.single-post .wp-block-post-content .wp-block-heading:is(h2) {
		font-size: 1.375rem !important;
		line-height: 1.3 !important;
		letter-spacing: 0.02em;
	}

	.single-post .wp-block-post-content h3,
	.single-post .wp-block-post-content .wp-block-heading:is(h3) {
		font-size: 1.2rem !important;
		line-height: 1.35 !important;
		letter-spacing: 0.02em;
	}

	h3,
	.h3,
	.wp-block-heading:is(h3) {
		font-size: 35px !important;
		line-height: 47px !important;
		letter-spacing: 1px;
	}

	.stribe-header .wp-block-navigation__container {
		gap: 1.25rem;
	}
}

@media (max-width: 781px) {
	.stribe-footer__top .wp-block-column {
		flex-basis: 100% !important;
	}
}
