/* Solidariska Byggare — GeneratePress brand mapping. Tokens via var(--sb-*). */
:root { --sb-content-width: var(--sb-size-container); }

body {
  font-family: var(--sb-font-body);
  color: var(--sb-ink);
  background: var(--sb-white);
}
h1, h2, h3, h4, .entry-title, .widget-title, .site-title {
  font-family: var(--sb-font-display);
  font-weight: var(--sb-fw-bold);
  text-transform: uppercase;
  letter-spacing: .01em;
  line-height: 1.05;
}
a { color: var(--sb-red); }
a:hover { color: var(--sb-red-dark); }

/* Full-bleed black header */
.site-header {
  background: var(--sb-black);
  color: var(--sb-white);
}
.site-header a, .site-title a, .main-title a, .main-title, .site-description { color: var(--sb-white); }

/* Header logo: swap in the dark-background cube mark from theme assets.
   (Site media is on a broken S3 bucket, so we serve the logo from the theme.) */
.site-header .site-logo img { display: none; }
.site-header .site-logo a {
  display: inline-block;
  width: 54px;
  height: 54px;
  background: url("logo-mark.svg") center / contain no-repeat;
}

/* Primary navigation: white links, red active/hover underline */
.main-navigation, .main-navigation .main-nav > ul {
  background: var(--sb-black);
}
.main-navigation .main-nav > ul > li > a {
  color: var(--sb-white);
  font-weight: var(--sb-fw-semibold);
  text-transform: uppercase;
  letter-spacing: .03em;
  border-bottom: 3px solid transparent;
}
.main-navigation .main-nav > ul > li.current-menu-item > a,
.main-navigation .main-nav > ul > li > a:hover {
  color: var(--sb-white);
  border-bottom-color: var(--sb-red);
}

/* Buttons (WP core blocks, GP buttons, form submits) */
.wp-block-button__link, button, input[type="submit"], .button, .gb-button {
  background: var(--sb-red);
  color: var(--sb-white);
  border: 2px solid transparent;
  border-radius: var(--sb-radius-sm);
  font-family: var(--sb-font-body);
  font-weight: var(--sb-fw-semibold);
  text-transform: uppercase;
  letter-spacing: .03em;
  padding: var(--sb-space-3) var(--sb-space-5);
}
.wp-block-button__link:hover, button:hover, input[type="submit"]:hover, .button:hover {
  background: var(--sb-red-dark);
  color: var(--sb-white);
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--sb-black);
  border-color: var(--sb-black);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--sb-black);
  color: var(--sb-white);
}

/* Post / archive cards */
.entry-title a { color: var(--sb-black); }
.entry-title a:hover { color: var(--sb-red); }
.entry-meta, .posted-on, .entry-meta time { color: var(--sb-grey-500); font-size: .82rem; }
article.post, .generate-columns .inside-article {
  border: 1px solid var(--sb-grey-300);
  background: var(--sb-white);
}

/* Footer: black with red top border */
.site-footer, .footer-widgets, .site-info {
  background: var(--sb-black);
  color: var(--sb-white);
}
.site-footer { border-top: 6px solid var(--sb-red); }
.site-footer a, .footer-widgets a { color: var(--sb-white); }
.site-footer a:hover { color: var(--sb-red); }
.footer-widgets .widget-title { border-bottom: 3px solid var(--sb-red); padding-bottom: var(--sb-space-2); }

/* Tag / kicker chip (design-system component) */
.sb-tag {
  display: inline-block;
  font-family: var(--sb-font-body);
  font-weight: var(--sb-fw-semibold);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .72rem;
  line-height: 1.4;
  padding: 2px var(--sb-space-2);
}
.sb-tag--red { background: var(--sb-red); color: var(--sb-white); }
.sb-tag--black { background: var(--sb-black); color: var(--sb-white); }

/* NewsList (design-system component) — dated link list with red-underlined heading */
.sb-news { list-style: none; margin: 0; padding: 0; }
.sb-news__heading {
  font-family: var(--sb-font-display);
  font-weight: var(--sb-fw-bold);
  text-transform: uppercase;
  border-bottom: 3px solid var(--sb-red);
  padding-bottom: var(--sb-space-2);
  margin-bottom: var(--sb-space-3);
}
.sb-news__item { padding-block: var(--sb-space-3); border-bottom: 1px solid var(--sb-grey-300); }
.sb-news__item a { color: var(--sb-black); font-weight: var(--sb-fw-semibold); }
.sb-news__item a:hover { color: var(--sb-red); text-decoration: none; }
.sb-news__date { display: block; color: var(--sb-grey-500); font-size: .78rem; }

/* Reusable red band (for a WP block / shortcode wrapper) */
.sb-redband {
  background: var(--sb-red);
  color: var(--sb-white);
  font-family: var(--sb-font-display);
  font-weight: var(--sb-fw-bold);
  text-transform: uppercase;
  padding: var(--sb-space-5) var(--sb-space-4);
}

/* Keep the logo + site title fixed on hover (no messy colour shift) */
.site-logo a:hover, .site-title a:hover, .main-title a:hover {
  color: var(--sb-white);
  opacity: 1;
}

/* Mobile hamburger: high contrast (white) on the black header */
.menu-toggle,
.menu-toggle:hover,
.menu-toggle:focus,
.main-navigation .menu-toggle {
  color: var(--sb-white);
}
.menu-toggle .gp-icon,
.menu-toggle .gp-icon *,
.main-navigation .menu-toggle .gp-icon {
  color: var(--sb-white);
  fill: var(--sb-white);
}

/* Design-system button utilities — use in content/blocks for on-brand CTAs */
.sb-btn {
  display: inline-flex; align-items: center; gap: var(--sb-space-2);
  font-family: var(--sb-font-body); font-weight: var(--sb-fw-semibold);
  text-transform: uppercase; letter-spacing: .03em; line-height: 1;
  border: 2px solid transparent; border-radius: var(--sb-radius-sm);
  padding: var(--sb-space-3) var(--sb-space-5);
  text-decoration: none; cursor: pointer;
  transition: background .12s, color .12s;
}
.sb-btn--primary { background: var(--sb-red); color: var(--sb-white); }
.sb-btn--primary:hover { background: var(--sb-red-dark); color: var(--sb-white); text-decoration: none; }
.sb-btn--dark { background: var(--sb-black); color: var(--sb-white); }
.sb-btn--dark:hover { background: var(--sb-grey-700); color: var(--sb-white); text-decoration: none; }
.sb-btn--outline { background: transparent; color: var(--sb-black); border-color: var(--sb-black); }
.sb-btn--outline:hover { background: var(--sb-black); color: var(--sb-white); text-decoration: none; }
.sb-btn--lg { padding: var(--sb-space-4) var(--sb-space-6); font-size: 1.05rem; }
.sb-btn--sm { padding: var(--sb-space-2) var(--sb-space-3); font-size: .85rem; }

/* Category kicker (Tag) above post titles */
.sb-kicker { display: inline-block; margin-bottom: var(--sb-space-2); }
.sb-tag a, .sb-kicker a { color: inherit; text-decoration: none; }

/* Container utility (design system) */
.sb-container { width: 100%; max-width: var(--sb-size-container); margin-inline: auto; padding-inline: var(--sb-space-4); }
.sb-container--wide { max-width: var(--sb-size-container-wide); }

/* Hero (design-system component) — black band + construction-silhouette art */
.sb-hero { position: relative; background: var(--sb-black); color: var(--sb-white); overflow: hidden; }
.sb-hero__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .32; z-index: 0; }
.sb-hero__inner { position: relative; z-index: 1; padding-block: var(--sb-space-8); max-width: 720px; }
.sb-hero h1 { color: var(--sb-white); margin-top: var(--sb-space-3); }
.sb-hero p { font-size: 1.1rem; }
.sb-hero__actions { display: flex; flex-wrap: wrap; gap: var(--sb-space-3); margin-top: var(--sb-space-4); }
.sb-btn--on-dark { color: var(--sb-white); border-color: var(--sb-white); }
.sb-btn--on-dark:hover { background: var(--sb-white); color: var(--sb-black); }

/* Footer (design-system Footer) */
.sb-footer { background: var(--sb-black); color: var(--sb-white); border-top: 6px solid var(--sb-red); }
.sb-footer__inner { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: var(--sb-space-6); padding-block: var(--sb-space-7); }
.sb-footer a { color: var(--sb-white); }
.sb-footer a:hover { color: var(--sb-red); text-decoration: none; }
.sb-footer__logo { height: 64px; width: auto; display: block; }
.sb-footer__name { font-family: var(--sb-font-display); font-weight: var(--sb-fw-bold); text-transform: uppercase; line-height: 1.05; margin-top: var(--sb-space-3); }
.sb-footer__name span { color: var(--sb-red); }
.sb-footer__col h3 { font-family: var(--sb-font-display); font-weight: var(--sb-fw-bold); text-transform: uppercase; border-bottom: 3px solid var(--sb-red); padding-bottom: var(--sb-space-2); margin: 0 0 var(--sb-space-3); }
.sb-footer__col ul { list-style: none; margin: 0; padding: 0; }
.sb-footer__col li { padding-block: 4px; }
.sb-footer__col a { font-weight: var(--sb-fw-semibold); }
.sb-footer__copy { border-top: 1px solid var(--sb-grey-700); padding-block: var(--sb-space-4); color: var(--sb-grey-500); font-size: .82rem; }
@media (max-width: 768px) { .sb-footer__inner { grid-template-columns: 1fr; gap: var(--sb-space-5); } }

/* Modern heading line-breaking: balance lines; hyphenate long words on narrow screens */
h1, h2, h3, h4, .entry-title, .page-header h1, .sb-hero h1, .sb-news__heading {
  overflow-wrap: break-word;
  text-wrap: balance;
}
@media (max-width: 768px) {
  h1, h2, h3, .entry-title, .page-header h1, .sb-hero h1 {
    hyphens: auto;
    -webkit-hyphens: auto;
    text-wrap: pretty;
  }
}

/* Link (design-system component) */
.sb-link { color: var(--sb-red); font-weight: var(--sb-fw-semibold); text-decoration: none; }
.sb-link:hover { color: var(--sb-red-dark); text-decoration: underline; }
.sb-link--inverse { color: var(--sb-white); }
.sb-link--inverse:hover { color: var(--sb-grey-300); text-decoration: underline; }

/* Read-more DS link on archive/home entries */
.sb-readmore { display: inline-block; margin-top: var(--sb-space-3); letter-spacing: .02em; }

/* Inverse back-to-home link band under single posts */
.sb-backhome { background: var(--sb-black); text-align: center; padding: var(--sb-space-5) var(--sb-space-4); margin-top: var(--sb-space-6); }
.sb-backhome .sb-link--inverse { text-transform: uppercase; letter-spacing: .05em; }

/* --- Link colours: assert brand colours over GeneratePress's inline
   a:link / a:visited (specificity 0,1,1). The body-prefixed selectors below
   are 0,1,2+ so they reliably win for both unvisited and visited links. --- */
body a:link, body a:visited { color: var(--sb-red); }
body a:hover { color: var(--sb-red-dark); }
/* White links on dark surfaces */
body .main-navigation .main-nav a:link, body .main-navigation .main-nav a:visited,
body .sb-footer a:link, body .sb-footer a:visited,
body .site-footer a:link, body .site-footer a:visited,
body .sb-link--inverse:link, body .sb-link--inverse:visited,
body .sb-hero a:link, body .sb-hero a:visited { color: var(--sb-white); }
body .sb-footer a:hover, body .site-footer a:hover { color: var(--sb-red); }
/* Black links on light cards / lists */
body .entry-title a:link, body .entry-title a:visited,
body .sb-card__title a:link, body .sb-card__title a:visited,
body .sb-news__item a:link, body .sb-news__item a:visited { color: var(--sb-black); }
body .entry-title a:hover, body .sb-card__title a:hover, body .sb-news__item a:hover { color: var(--sb-red); }
