/*
Theme Name: KreLou Consulting
Theme URI: https://krelou.de
Author: Louis Kretzschmann
Author URI: https://krelou.de
Description: Hand-coded WordPress theme for KreLou Consulting, an Operational-Excellence consulting practice by Louis Kretzschmann.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: krelou
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root {
  --klc-bg: #16171b;
  --klc-bg-alt: #1f2026;
  --klc-bg-dashed: #1a1b20;
  --klc-text: #f6f4ee;
  --klc-text-muted: #c9c7be;
  --klc-text-faint: #8f8d86;
  --klc-text-placeholder: #6f6d67;
  --klc-amber: #ffc93c;
  --klc-orange: #f2542d;
  --klc-orange-hover-link: #ff7a56;
  --klc-orange-hover-btn: #ff6a45;
  --klc-border: rgba(246, 244, 238, 0.13);
  --klc-border-strong: rgba(246, 244, 238, 0.22);
  --klc-font-body: 'IBM Plex Sans', system-ui, sans-serif;
  --klc-font-heading: 'Archivo', sans-serif;
  --klc-font-mono: 'IBM Plex Mono', monospace;
  --klc-max-width: 1120px;
  --klc-max-width-narrow: 820px;
}

/* ==========================================================================
   Self-hosted fonts (latin subset only)
   ========================================================================== */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500 900;
  font-stretch: 100%;
  font-display: swap;
  src: url('fonts/archivo-latin-variable.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibmplexmono-latin-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibmplexmono-latin-500.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url('fonts/ibmplexsans-latin-variable.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   Global resets & element defaults
   ========================================================================== */
html, body {
  margin: 0;
  padding: 0;
  background: var(--klc-bg);
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  color: var(--klc-text);
  font-family: var(--klc-font-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--klc-orange);
  text-decoration: none;
}

a:hover {
  color: var(--klc-orange-hover-link);
}

button {
  font-family: inherit;
}

summary::-webkit-details-marker {
  display: none;
}

summary {
  list-style: none;
  cursor: pointer;
}

details[open] summary span[data-plus] {
  transform: rotate(45deg);
}

input:focus,
textarea:focus,
button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--klc-orange);
  outline-offset: 1px;
}

::placeholder {
  color: var(--klc-text-placeholder);
}

/* Honeypot field: hidden from sighted users, still reachable by simple bots */
.klc-hp-field {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* ==========================================================================
   Header / navigation
   ========================================================================== */
#menu-toggle {
  appearance: none;
}

#mobile-menu[hidden] {
  display: none;
}

#mobile-menu:not([hidden]) {
  display: flex;
  flex-direction: column;
}

#mobile-menu a {
  color: var(--klc-text);
}

/* Breakpoint: desktop inline nav replaces mobile burger + panel */
@media (min-width: 860px) {
  [data-burger] {
    display: none !important;
  }
  [data-desknav] {
    display: flex !important;
  }
  #mobile-menu {
    display: none !important;
  }
}
