/* smartKMU 2026 — Detail-CSS.
   Was theme.json nicht abdeckt: Kopf, Fuss, Hero, Karten, Bänder.
   Klassen und Masse folgen dem Website-UI-Kit des Design Systems (ui_kits/website/website.css),
   Präfix sk-. Variablen kommen aus tokens.css (generiert). */

*, *::before, *::after { box-sizing: border-box; }
body { -webkit-font-smoothing: antialiased; }
:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-sm); }
::selection { background: var(--brand-soft); color: var(--brand-dark); }
p { text-wrap: pretty; }

.sk-skip-link { position: absolute; left: -9999px; top: 0; }
.sk-skip-link:focus { left: 16px; top: 16px; z-index: 100; background: #fff; padding: 8px 14px; border-radius: var(--radius-md); }

/* ---------- Kopf ---------- */
/* Sticky sitzt am Template-Part-Wrapper (header.wp-block-template-part), nicht an .sk-header: Der Wrapper
   ist genau so hoch wie der Kopf, ein sticky Kind darin klebt deshalb nie (gemessen 11.10.26). */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 20; }
.sk-header { background: #fff; border-bottom: 1px solid var(--line); }
/* Kein backdrop-filter am Kopf: Er macht den Kopf zum Containing Block fuer position:fixed, und das
   Mobil-Menue-Overlay der Navigation bliebe dann in den 64 px der Kopfzeile eingesperrt (gemessen 11.10.26). */
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
.sk-header__row { gap: var(--space-6); }
.sk-logo img { height: 36px; width: auto; display: block; }
.sk-nav { font-size: 14px; font-weight: 500; }
.sk-nav a { color: var(--fg-1); text-decoration: none; padding: 6px 0; border-bottom: 2px solid transparent; transition: color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard); }
.sk-nav a:hover, .sk-nav .current-menu-item > a, .sk-nav [aria-current="page"] { color: var(--brand-primary); text-decoration: none; border-bottom-color: var(--brand-primary); }
.sk-header__login .wp-block-button__link { font-size: 13px; padding: 7px 14px; }

/* ---------- Eyebrow, Lead ---------- */
.sk-eyebrow { color: var(--brand-primary); font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.sk-lead { color: var(--ink-2); font-size: 17px; line-height: 1.6; max-width: 56ch; }
/* Linksbündiger Lead in einem constrained-Abschnitt: an der Kante des Inhalts ausrichten, nicht zentrieren. */
.is-layout-constrained > .sk-lead:not(.has-text-align-center) { margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size, 1180px)) / 2)) !important; }

/* ---------- Outline-Knopf (ausserhalb des Heros) ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link { color: var(--brand-primary); border: 1px solid var(--brand-primary); background: transparent; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { color: var(--brand-dark); border-color: var(--brand-dark); background: var(--blue-50); }

/* ---------- Hero (Gradient + Illustration) ---------- */
.sk-hero { background: linear-gradient(180deg, var(--brand-dark) 0%, var(--brand-primary) 38%, var(--brand-primary) 100%); color: #fff; overflow: hidden; }
/* Die Illustration bringt ihren eigenen blauen Grund mit (brand-primary). Ab ihrer Oberkante ist der Hero deshalb einfarbig. */
.sk-hero h1, .sk-hero h2, .sk-hero p { color: #fff; }
.sk-hero .sk-lead { color: rgba(255,255,255,.92); }
.sk-hero__illustration img { width: 100%; height: auto; display: block; }
.sk-hero .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.7); background: transparent; }
.sk-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.sk-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--brand-primary); }
.sk-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--brand-soft); color: var(--brand-dark); }

/* ---------- Abschnitte ---------- */
.sk-section-alt { background: var(--bg-alt); }

/* ---------- Karten ---------- */
.sk-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; height: 100%; transition: box-shadow 200ms var(--ease-standard), transform 200ms var(--ease-standard); }
.sk-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.sk-card h3 { margin-top: 0; }
.sk-card .wp-block-post-featured-image { margin: 0; }
.sk-card .wp-block-post-featured-image img { aspect-ratio: 16/9; object-fit: cover; }
.sk-card__body { padding: 18px 20px 20px; }
.sk-card__meta { font-size: 12px; color: var(--fg-2); }
.sk-cards-3 > .wp-block-column { display: flex; }

/* ---------- Schritte (AI Journey) ---------- */
.sk-steps { counter-reset: sk-step; }
.sk-step { position: relative; padding-top: 56px; }
.sk-step::before { counter-increment: sk-step; content: counter(sk-step); position: absolute; top: 0; left: 0; width: 40px; height: 40px; border-radius: var(--radius-pill); background: var(--brand-primary); color: #fff; font-weight: 700; display: grid; place-items: center; }

/* ---------- Portrait ---------- */
.sk-portrait img { border-radius: 50%; background: var(--brand-primary); aspect-ratio: 1; object-fit: cover; }

/* ---------- Referenzen ---------- */
.sk-logos .wp-block-post-template { align-items: center; }
.sk-ref-logo { margin: 0; display: flex; justify-content: center; }
.sk-ref-logo img { max-height: 72px; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter var(--dur-med), opacity var(--dur-med); }
.sk-ref-logo a:hover img { filter: none; opacity: 1; }
.sk-refs .wp-block-post-featured-image img { aspect-ratio: 4/3; object-fit: cover; object-position: top; }
.sk-refs .wp-block-post-title { font-size: 15px; font-weight: 500; margin: 0; }

/* ---------- Newsletter-Band, Fuss ---------- */
.sk-newsletter { background: var(--brand-primary); color: #fff; }
.sk-newsletter h2, .sk-newsletter p { color: #fff; }
.sk-newsletter .wp-block-button__link { background: #fff; color: var(--brand-primary); }
.sk-newsletter .wp-block-button__link:hover { background: var(--brand-soft); color: var(--brand-dark); }
.sk-footer { background: var(--brand-dark); color: rgba(255,255,255,.9); font-size: 14px; }
.sk-footer a { color: rgba(255,255,255,.9); }
.sk-footer a:hover { color: #fff; }
.sk-footer h4 { color: #fff; font-size: 14px; text-transform: uppercase; letter-spacing: var(--tracking-wide); margin: 0 0 12px; }
.sk-footer__logo img { height: 40px; width: auto; }
.sk-footer__meta { font-size: 12px; color: rgba(255,255,255,.65); }
.sk-footer ul { list-style: none; padding: 0; margin: 0; }
.sk-footer li { margin: 0 0 6px; }

/* ---------- Mobil ---------- */
@media (max-width: 781px) {
	.sk-hero h1 { font-size: 34px; }
}

/* ---------- Shop (WooCommerce-Blöcke) ---------- */
.sk-products .wc-block-product { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; padding-bottom: 20px; display: flex; flex-direction: column; transition: box-shadow 200ms var(--ease-standard), transform 200ms var(--ease-standard); }
.sk-products .wc-block-product:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.sk-products .wc-block-product > *:not(.wc-block-components-product-image) { padding-left: 20px; padding-right: 20px; }
.sk-products .wc-block-components-product-image { margin: 0 0 12px; }
.sk-products .wc-block-components-product-image img { aspect-ratio: 16/9; object-fit: cover; }
.sk-products .wp-block-post-title { margin: 0 0 6px; }
.sk-products .wp-block-woocommerce-product-button { margin-top: auto; }
.wc-block-components-product-price { color: var(--brand-dark); font-weight: 500; }
.wp-block-woocommerce-breadcrumbs { color: var(--fg-2); }
.sk-product-gallery img { border-radius: var(--radius-xl); }
.wc-block-components-button:not(.is-link) { border-radius: var(--radius-md); }
.wc-block-components-totals-wrapper, .wc-block-components-sidebar-layout .wc-block-components-main { font-size: 15px; }

/* ---------- Radar ---------- */
.sk-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.sk-chips a { display: inline-block; padding: 6px 14px; border-radius: var(--radius-pill); background: var(--blue-50); color: var(--brand-dark); font-size: 13px; font-weight: 500; text-decoration: none; }
.sk-chips a:hover { background: var(--brand-soft); text-decoration: none; }
.sk-card .wp-block-post-featured-image:empty, .sk-card .wp-block-post-featured-image:not(:has(img)) { display: none; }
.single-radar_entry .wp-block-post-featured-image img { object-position: top; }

/* ---------- Mobil-Menü (Overlay der Navigation) ---------- */
.sk-nav .wp-block-navigation__responsive-container.is-menu-open { background: #fff !important; color: var(--brand-dark) !important; padding: 20px 24px 32px; }
.sk-nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 56px; }
.sk-nav .is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: 4px !important; width: 100%; }
.sk-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--line); }
.sk-nav .is-menu-open .wp-block-navigation-item a { display: block; width: 100%; padding: 14px 0; font-size: 20px; color: var(--brand-dark); border-bottom: 0; }
.sk-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: 22px; right: 24px; }

/* ---------- Landingpage (templates/page-landing.html) ----------
   Abschnitte liegen direkt im Seiteninhalt; ohne das hier setzte der Flow-Layout-Abstand weisse
   Streifen zwischen die farbigen Abschnitte. */
.wp-block-post-content.sk-flush > * { margin-block-start: 0; margin-block-end: 0; }
.sk-hero--page { padding-bottom: 72px !important; }
.sk-cta { text-align: center; }

/* Sprungmarken (/kontakt/#termin) nicht unter dem klebenden Kopf verstecken. */
html { scroll-padding-top: 88px; }
html:has(body.admin-bar) { scroll-padding-top: 120px; }
