/* Revi Tech – additional styles that theme.json cannot express. */

:root {
	--rt-accent: var(--wp--preset--color--accent);
	--rt-line: var(--wp--preset--color--line);
}

body { -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 2px solid var(--rt-accent); outline-offset: 3px; }
::selection { background: var(--rt-accent); color: var(--wp--preset--color--on-accent); }

/* Header ------------------------------------------------------------------ */
.rt-header { border-bottom: 1px solid var(--rt-line); }
.rt-header .wp-block-site-title a { display: inline-flex; align-items: center; gap: 0.75rem; }
.rt-header .wp-block-site-title a::before {
	content: "";
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	border: 1px solid var(--rt-accent);
	border-radius: 9px;
	background-color: var(--rt-accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='18' r='2.4'/%3E%3Ccircle cx='25' cy='11' r='2.4'/%3E%3Ccircle cx='25' cy='25' r='2.4'/%3E%3Cpath d='M13.2 17l9.6-4.8M13.2 19l9.6 4.8'/%3E%3C/g%3E%3Crect x='0.5' y='0.5' width='35' height='35' rx='8.5' fill='none' stroke='%23000'/%3E%3C/svg%3E") center / 36px 36px no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='18' r='2.4'/%3E%3Ccircle cx='25' cy='11' r='2.4'/%3E%3Ccircle cx='25' cy='25' r='2.4'/%3E%3Cpath d='M13.2 17l9.6-4.8M13.2 19l9.6 4.8'/%3E%3C/g%3E%3Crect x='0.5' y='0.5' width='35' height='35' rx='8.5' fill='none' stroke='%23000'/%3E%3C/svg%3E") center / 36px 36px no-repeat;
	border: 0;
}
.rt-header .wp-block-navigation-item__content { padding: 0.65rem 0.4rem; }
.rt-header .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--contrast); }
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--foreground) !important;
}

/* Kicker / mono labels -------------------------------------------------- */
.rt-kicker {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--rt-accent);
	letter-spacing: 0;
	text-transform: none;
}

/* Hero grid background -------------------------------------------------- */
.rt-grid-bg {
	position: relative;
	isolation: isolate;
	border-bottom: 1px solid var(--rt-line);
}
.rt-grid-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(#141c26 1px, transparent 1px),
		linear-gradient(90deg, #141c26 1px, transparent 1px);
	background-size: 48px 48px;
	opacity: 0.65;
	pointer-events: none;
}

/* Terminal / status card ------------------------------------------------ */
.rt-terminal {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--rt-line);
	border-radius: 14px;
	overflow: hidden;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
}
.rt-terminal__bar {
	border-bottom: 1px solid var(--rt-line);
	color: var(--wp--preset--color--subtle);
	font-size: var(--wp--preset--font-size--xs);
	position: relative;
	padding-left: calc(1rem + 46px) !important;
}
.rt-terminal__bar::before {
	content: "";
	position: absolute;
	left: 1rem;
	top: 50%;
	width: 10px;
	height: 10px;
	margin-top: -5px;
	border-radius: 50%;
	background: var(--wp--preset--color--line-strong);
	box-shadow: 16px 0 0 var(--wp--preset--color--line-strong), 32px 0 0 var(--wp--preset--color--line-strong);
}
.rt-terminal .rt-row { display: flex; justify-content: space-between; gap: 1rem; margin: 0; }
.rt-terminal .rt-row > :first-child { color: var(--wp--preset--color--subtle); }
.rt-terminal .rt-ok { color: var(--rt-accent); }
.rt-terminal .rt-prompt { border-top: 1px solid var(--rt-line); padding-top: 0.9rem; color: var(--wp--preset--color--subtle); }
.rt-terminal .rt-prompt::after {
	content: "";
	display: inline-block;
	width: 8px;
	height: 1.05em;
	margin-left: 4px;
	vertical-align: -3px;
	background: var(--rt-accent);
	animation: rt-blink 1.1s steps(1) infinite;
}
@keyframes rt-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .rt-terminal .rt-prompt::after { animation: none; } }

/* Service grid: 1px lines between cells -------------------------------- */
.rt-services {
	gap: 1px !important;
	background: var(--rt-line);
	border: 1px solid var(--rt-line);
	border-radius: 14px;
	overflow: hidden;
}
.rt-services > * { margin: 0 !important; }
.rt-icon { color: var(--rt-accent); line-height: 0; }
.rt-icon svg { width: 28px; height: 28px; }

/* Process steps --------------------------------------------------------- */
.rt-step { border-top: 1px solid var(--wp--preset--color--line-strong); }
.rt-step__no { font-family: var(--wp--preset--font-family--mono); color: var(--rt-accent); font-size: 2rem; line-height: 1; }

/* Cards ----------------------------------------------------------------- */
.rt-card { border: 1px solid var(--rt-line); border-radius: 14px; overflow: hidden; }
.rt-card .wp-block-image { margin: 0; }
.rt-card .wp-block-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.rt-placeholder {
	aspect-ratio: 16 / 9;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #141c26;
	color: var(--wp--preset--color--subtle);
	font-size: var(--wp--preset--font-size--small);
}

/* Outline button style -------------------------------------------------- */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--line-strong);
	padding: calc(0.85rem - 1px) calc(1.5rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--subtle);
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

/* Posts list ------------------------------------------------------------ */
.rt-post-card { border-bottom: 1px solid var(--rt-line); }
.rt-post-card:last-child { border-bottom: 0; }

/* Forms (contact forms, WooCommerce checkout) on dark ------------------ */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], select, textarea {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 8px;
	min-height: 44px;
	padding: 0.6rem 0.8rem;
	font: inherit;
}
input:focus, select:focus, textarea:focus { border-color: var(--rt-accent); outline: none; box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.2); }

/* WooCommerce on dark ---------------------------------------------------- */
.woocommerce .price, .wc-block-components-product-price, .wc-block-grid__product-price { color: var(--wp--preset--color--contrast); }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control input,
.wc-block-components-select select, .wc-blocks-components-select__select {
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--foreground) !important;
	border-color: var(--wp--preset--color--line-strong) !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label { color: var(--wp--preset--color--subtle) !important; }
.wc-block-components-panel, .wc-block-components-totals-wrapper, .wc-block-components-order-summary,
.wp-block-woocommerce-cart-order-summary-block, .wc-block-components-sidebar-layout .wc-block-components-main { border-color: var(--rt-line) !important; }
/* Notices (block + classic) on dark --------------------------------------- */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner.is-error,
.wc-block-components-notice-banner.is-warning,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-info,
.woocommerce-error, .woocommerce-message, .woocommerce-info {
	--rt-notice: var(--wp--preset--color--subtle);
	background-color: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--foreground) !important;
	border: 1px solid var(--wp--preset--color--line-strong) !important;
	border-radius: 10px;
	box-shadow: inset 3px 0 0 var(--rt-notice);
}
.wc-block-components-notice-banner.is-error, .woocommerce-error { --rt-notice: #f87171; border-color: rgba(248, 113, 113, 0.45) !important; background-color: #1a1214 !important; }
.wc-block-components-notice-banner.is-warning { --rt-notice: #fbbf24; border-color: rgba(251, 191, 36, 0.45) !important; background-color: #1a1710 !important; }
.wc-block-components-notice-banner.is-success, .woocommerce-message { --rt-notice: var(--rt-accent); border-color: rgba(45, 212, 191, 0.45) !important; background-color: #0e1a19 !important; }
.wc-block-components-notice-banner.is-info, .woocommerce-info { --rt-notice: #38bdf8; border-color: rgba(56, 189, 248, 0.45) !important; background-color: #0e161d !important; }
.wc-block-components-notice-banner > svg { background-color: var(--rt-notice) !important; fill: var(--wp--preset--color--base) !important; }
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content,
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content * { color: var(--wp--preset--color--foreground); }
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content a,
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward,
.woocommerce-error a, .woocommerce-message a, .woocommerce-info a {
	color: var(--rt-accent) !important;
	opacity: 1;
	font-weight: 600;
}
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward:hover { color: var(--wp--preset--color--contrast) !important; }
.wc-block-components-notice-banner > .wc-block-components-button { color: var(--wp--preset--color--foreground) !important; }
.wc-block-components-notice-banner > .wc-block-components-button svg { fill: currentColor; }
.woocommerce-error::before, .woocommerce-message::before, .woocommerce-info::before { color: var(--rt-notice); }
.woocommerce-store-notice, p.demo_store { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--on-accent); }
.wc-block-components-product-badge, .wc-block-components-sale-badge, .onsale {
	background: var(--rt-accent) !important;
	color: var(--wp--preset--color--on-accent) !important;
	border: 0 !important;
}

/* Footer links ------------------------------------------------------------ */
.rt-footer a { color: var(--wp--preset--color--subtle); text-decoration: none; }
.rt-footer a:hover, .rt-footer a:focus { color: var(--wp--preset--color--contrast); }
.rt-footer p { margin: 0; }
.rt-footer .wp-block-site-title a { color: var(--wp--preset--color--contrast); }

/* Fixes ------------------------------------------------------------------ */
.wp-block-group.rt-card.has-background { padding: 0; }
.rt-card > .rt-placeholder { margin: 0; }
.rt-terminal .rt-row > :first-child { white-space: nowrap; }
.rt-terminal .rt-row > :last-child { text-align: right; }
@media (max-width: 600px) {
	.rt-header .wp-block-buttons { display: none; }
}
.rt-header .wp-block-site-title { flex: 0 1 auto; min-width: 0; }
.rt-header .wp-block-site-title a { white-space: nowrap; }
@media (max-width: 1100px) {
	.rt-header .wp-block-site-title { font-size: 1.05rem !important; }
}
@media (max-width: 781px) {
	.rt-header > .wp-block-group { flex-wrap: nowrap !important; }
	.rt-header .wp-block-site-title a { white-space: normal; line-height: 1.2; }
}

/* EU-Hinweis gesetzliche Gewährleistung (Germanized) im Footer ------------- */
.rt-footer .rt-guarantee { line-height: 0; }
.rt-footer .rt-guarantee .wc-gzd-legal-guarantee { margin: 0; }
.rt-footer .rt-guarantee .wc-gzd-legal-guarantee-image-preview {
	width: 96px;
	height: auto;
	border-radius: 4px;
	opacity: 0.85;
	transition: opacity .15s ease;
	cursor: pointer;
}
.rt-footer .rt-guarantee .wc-gzd-legal-guarantee-image-preview:hover { opacity: 1; }
.rt-footer .rt-guarantee .wc-gzd-popover-image,
.rt-footer .rt-guarantee .wc-gzd-legal-guarantee-popover-image { max-width: min(420px, 90vw); height: auto; }

/* WooCommerce checkout & cart on dark (same effect as „dark controls“) ------ */
.wc-block-checkout, .wc-block-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-cart { color: var(--wp--preset--color--foreground); }

/* Shipping / pickup toggle */
.wc-block-checkout__shipping-method-option { color: var(--wp--preset--color--muted) !important; }
.wc-block-checkout__shipping-method-option.wc-block-checkout__shipping-method-option--selected {
	background: var(--wp--preset--color--surface) !important;
	border-color: var(--rt-accent) !important;
	color: var(--wp--preset--color--contrast) !important;
}
.wc-block-checkout__shipping-method-option svg { fill: currentColor; }

/* Radio buttons */
.wc-block-components-radio-control .wc-block-components-radio-control__input {
	background-color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--line-strong) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: var(--rt-accent) !important; }
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--rt-accent) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { color: var(--wp--preset--color--foreground); }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1.5px var(--rt-accent) !important;
}

/* Checkboxes */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	background-color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--line-strong) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { border-color: var(--rt-accent) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--rt-accent) !important; }

/* Text fields, selects, textarea */
.wc-block-components-text-input input, .wc-blocks-components-select .wc-blocks-components-select__container,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea {
	background-color: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--contrast) !important;
	border-color: var(--wp--preset--color--line-strong) !important;
}
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus { border-color: var(--rt-accent) !important; }
.wc-blocks-components-select .wc-blocks-components-select__expand { fill: var(--wp--preset--color--subtle); }
.wc-block-components-validation-error, .wc-block-components-text-input.has-error label { color: #f87171 !important; }
.wc-block-components-text-input.has-error input { border-color: #f87171 !important; }

/* Order summary: no light boxes, readable text */
.wc-block-components-order-summary, .wc-block-components-order-summary-item,
.wc-block-components-order-summary .wc-block-components-panel__content,
.wp-block-woocommerce-checkout-order-summary-cart-items-block {
	background: transparent !important;
	color: var(--wp--preset--color--foreground) !important;
}
.wc-block-components-order-summary-item__description, .wc-block-components-order-summary-item__description * { color: var(--wp--preset--color--muted) !important; }
.wc-block-components-order-summary-item__description .wc-block-components-product-name { color: var(--wp--preset--color--contrast) !important; font-weight: 600; }
.wc-block-components-order-summary-item__image img { border-radius: 6px; background: var(--wp--preset--color--surface); }
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity { background: var(--rt-accent); border-color: var(--wp--preset--color--base); }
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity span { color: var(--wp--preset--color--on-accent); }
.wp-block-woocommerce-checkout-order-summary-block, .wc-block-components-totals-wrapper, .wc-block-components-panel { border-color: var(--rt-line) !important; }
.wc-block-components-totals-item__label, .wc-block-components-totals-item__value { color: var(--wp--preset--color--foreground); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--wp--preset--color--contrast); }

/* Step numbers line, express payment frame, misc */
.wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step__content::before,
.wc-block-checkout__form--with-step-numbers .wc-block-components-checkout-step__heading::before { border-color: var(--rt-line) !important; }
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container::before,
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container::after,
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__content { border-color: var(--rt-line) !important; }
.wc-block-components-checkout-return-to-cart-button, .wc-block-components-checkout-step__description { color: var(--wp--preset--color--muted); }
.wc-block-cart-items, .wc-block-cart-items td, .wc-block-cart-items th { border-color: var(--rt-line) !important; }
.wc-block-cart-items th { color: var(--wp--preset--color--subtle); }
.wc-block-components-quantity-selector { border-color: var(--wp--preset--color--line-strong) !important; background: var(--wp--preset--color--surface); }
.wc-block-components-quantity-selector input, .wc-block-components-quantity-selector button { color: var(--wp--preset--color--contrast) !important; background: transparent !important; }
.wc-block-components-product-metadata, .wc-block-components-product-details { color: var(--wp--preset--color--muted); }

/* Placeholders and extra checkboxes (e.g. Germanized legal checkboxes) ------ */
.wc-block-components-textarea::placeholder,
.wc-block-components-text-input input::placeholder,
input::placeholder, textarea::placeholder { color: var(--wp--preset--color--subtle) !important; opacity: 1; }
.wp-block-woocommerce-checkout input[type="checkbox"]:not(.wc-block-components-checkbox__input),
.woocommerce-checkout input[type="checkbox"], .woocommerce-checkout input[type="radio"] { accent-color: var(--rt-accent); }
.wc-gzd-checkbox-placeholder .wc-block-components-checkbox__input[type="checkbox"] { background-color: var(--wp--preset--color--surface) !important; border-color: var(--wp--preset--color--line-strong) !important; }
