/*
Theme Name: KSB Factory
Theme URI: https://github.com/KSBrepo/Wordpress
Author: KSB
Description: Controlled block theme for the KSB WordPress Factory.
Version: 0.2.2
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: ksb-factory
*/

* { box-sizing: border-box; }

:where(a, button, input, textarea, select, summary):focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

.wp-site-blocks { min-height: 100vh; }

.wp-block-group.ksb-site-header {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) max-content;
    align-items: center;
    gap: 0.85rem;
}

.ksb-site-header__brand {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    white-space: nowrap;
}

.ksb-site-header__brand a { color: inherit; text-decoration: none; }
.ksb-site-header .wp-block-navigation { justify-self: end; }
.ksb-site-header .wp-block-navigation__container { gap: 0.85rem; font-size: 0.8125rem; }
.ksb-site-header .wp-block-button__link { padding: 0.7rem 1rem; }

.ksb-card {
    height: 100%;
    padding: var(--wp--preset--spacing--40);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: 0.25rem;
}

.ksb-icon {
    display: inline-grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    color: var(--wp--preset--color--primary);
}

.ksb-icon svg { width: 100%; height: 100%; }
.ksb-status-banner__lead { display: flex; align-items: center; gap: 0.75rem; }
.ksb-icon--status { width: 1.75rem; height: 1.75rem; padding: 0.25rem; color: white; background: var(--wp--preset--color--accent); border-radius: 50%; }
.ksb-icon--contact { width: 2.75rem; height: 2.75rem; padding: 0.65rem; color: var(--wp--preset--color--primary); background: white; border-radius: 50%; float: left; margin-right: 0.75rem; }

.ksb-status-banner {
    margin-block: var(--wp--preset--spacing--30);
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
    border-radius: 0.25rem;
}

.ksb-status-banner--success {
    background: color-mix(in srgb, var(--wp--preset--color--accent) 12%, var(--wp--preset--color--background));
}

.ksb-status-banner__message {
    color: var(--wp--preset--color--accent);
    font-weight: 700;
}

.ksb-status-banner__updated {
    font-size: var(--wp--preset--font-size--small);
    text-align: right;
}

.ksb-hero--split {
    padding-block: var(--wp--preset--spacing--50);
}

.ksb-hero--split h1 { white-space: nowrap; }

.ksb-hero--split .wp-block-image img,
.wp-block-media-text__media img {
    border-radius: 0.25rem;
}

.ksb-feature-cards .wp-block-button__link {
    padding-inline: 0;
    background: transparent;
    color: var(--wp--preset--color--primary);
}

.ksb-latest-news--list {
    border: 1px solid var(--wp--preset--color--border);
}

.ksb-latest-news--list > .wp-block-heading {
    padding-inline: var(--wp--preset--spacing--30);
}

.ksb-latest-news--list .wp-block-post {
    display: grid;
    grid-template-columns: minmax(7rem, 0.8fr) 3fr;
    align-items: center;
    gap: var(--wp--preset--spacing--40);
    padding: var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--border);
}

.ksb-latest-news--list .wp-block-post-date,
.ksb-latest-news--list .wp-block-post-title {
    margin: 0;
}

.ksb-news-list__item {
    display: grid;
    grid-template-columns: minmax(8rem, 0.8fr) 3fr;
    align-items: center;
    gap: var(--wp--preset--spacing--40);
    padding: var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--border);
}

.ksb-news-list__item p { margin: 0; }
.ksb-news-list__title a { color: inherit; font-weight: 600; text-decoration: none; }
.ksb-news-list__title::after { content: "›"; float: right; font-size: 1.5rem; font-weight: 400; }

.ksb-latest-news--list > .wp-block-buttons {
    justify-content: center;
    padding: var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--border);
}

.ksb-contact--service-band {
    color: var(--wp--preset--color--background);
    padding: var(--wp--preset--spacing--50);
}

.ksb-contact--service-band a {
    color: inherit;
}

.ksb-contact--service-band .wp-block-button__link {
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
}

.wp-block-button__link {
    transition: opacity 160ms ease;
}

.wp-block-button__link:hover {
    opacity: 0.86;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (max-width: 781px) {
    .ksb-site-header { grid-template-columns: 1fr auto auto; gap: 0.75rem; }
    .ksb-site-header .wp-block-navigation { grid-column: 2; }
    .ksb-hero--split h1 { white-space: normal; }

    .ksb-status-banner__updated {
        text-align: left;
    }

    .ksb-latest-news--list .wp-block-post {
        grid-template-columns: 1fr;
        gap: var(--wp--preset--spacing--20);
    }

    .ksb-news-list__item { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--20); }
}
