/* ==========================================================================
   Skopa GmbH — Corporate design system
   The single source of truth for colour, type, spacing and radius.
   One mark, two colours, one typeface.  ·  Generated from tokens/skopa.tokens.json

   Usage:
     <link rel="stylesheet" href="skopa-brand.css">
     <body class="skopa">   ← sets Bone ground, Ink text, Archivo body
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  /* ---- Colour · grounds ------------------------------------------------- */
  --skopa-ink:        #181B1F;   /* body text on Bone (AAA), primary dark ground */
  --skopa-bone:       #F4F5F3;   /* primary light ground */
  --skopa-white:      #FFFFFF;

  /* ---- Colour · accent (Ember) — the ONLY brand colour ------------------ */
  --skopa-ember:      #FD5013;   /* GRAPHICS ONLY, once per surface. Never body text. */
  --skopa-ember-deep: #B23306;   /* accent for text · links, figures (AA all sizes) */
  --skopa-ember-tint: #FFE4DA;   /* callouts, chart bands, table highlight */

  /* ---- Colour · neutral ramp -------------------------------------------- */
  --skopa-graphite:   #33383E;   /* dark UI surface / panel on Ink */
  --skopa-slate:      #4A5057;   /* text on Bone — AA all sizes */
  --skopa-fog:        #63696F;   /* secondary text */
  --skopa-mist:       #9AA0A7;   /* muted / captions / disabled */
  --skopa-hairline:   #D5D8D3;   /* rules, borders, dividers */
  --skopa-band:       #E9EBE7;   /* fills, chart bands, table zebra */

  /* ---- Semantic aliases ------------------------------------------------- */
  --skopa-ground:        var(--skopa-bone);
  --skopa-text:          var(--skopa-ink);
  --skopa-text-muted:    var(--skopa-fog);
  --skopa-text-subtle:   var(--skopa-mist);
  --skopa-link:          var(--skopa-ember-deep);
  --skopa-border:        var(--skopa-hairline);
  --skopa-surface:       var(--skopa-white);
  --skopa-focus:         var(--skopa-ember-deep);

  /* ---- Type ------------------------------------------------------------- */
  --skopa-font-display: 'Archivo', Helvetica, Arial, sans-serif;
  --skopa-font-mono:    'IBM Plex Mono', ui-monospace, monospace;

  --skopa-weight-regular:  400;
  --skopa-weight-medium:   500;
  --skopa-weight-semibold: 600;

  --skopa-track-tight:   -0.025em;  /* headlines */
  --skopa-track-snug:    -0.02em;   /* titles, subheads */
  --skopa-track-body:    -0.01em;
  --skopa-track-label:   0.16em;    /* mono labels, uppercase */
  --skopa-track-eyebrow: 0.18em;    /* mono eyebrows, uppercase */

  /* ---- Spacing (4px base) ----------------------------------------------- */
  --skopa-space-1: 4px;  --skopa-space-2: 8px;  --skopa-space-3: 12px;
  --skopa-space-4: 16px; --skopa-space-5: 24px; --skopa-space-6: 32px;
  --skopa-space-7: 48px; --skopa-space-8: 64px; --skopa-space-9: 96px;

  /* ---- Radius (11px = logo stem radius) --------------------------------- */
  --skopa-radius-sm:   4px;
  --skopa-radius-md:   8px;
  --skopa-radius-lg:   11px;
  --skopa-radius-pill: 999px;
}

/* ==========================================================================
   Base
   ========================================================================== */
.skopa {
  background: var(--skopa-ground);
  color: var(--skopa-text);
  font-family: var(--skopa-font-display);
  font-weight: var(--skopa-weight-regular);
  font-size: 1rem;
  line-height: 1.55;
  letter-spacing: var(--skopa-track-body);
  -webkit-font-smoothing: antialiased;
}

/* Reverse: on Ink grounds (hero, footer, dark UI) */
.skopa--reverse {
  background: var(--skopa-ink);
  color: var(--skopa-bone);
}
.skopa--reverse a { color: var(--skopa-ember); }        /* on Ink, Ember clears contrast */
.skopa--reverse .skopa-hr { border-color: var(--skopa-graphite); }

/* ==========================================================================
   Type roles
   ========================================================================== */
.skopa-display { font-family: var(--skopa-font-display); font-weight: 600; font-size: 3.5rem;  line-height: 1.05; letter-spacing: var(--skopa-track-tight); }
.skopa-h1      { font-family: var(--skopa-font-display); font-weight: 600; font-size: 2.5rem;  line-height: 1.1;  letter-spacing: var(--skopa-track-tight); }
.skopa-h2      { font-family: var(--skopa-font-display); font-weight: 600; font-size: 1.75rem; line-height: 1.15; letter-spacing: var(--skopa-track-snug); }
.skopa-h3      { font-family: var(--skopa-font-display); font-weight: 500; font-size: 1.25rem; line-height: 1.25; letter-spacing: var(--skopa-track-snug); }
.skopa-body    { font-family: var(--skopa-font-display); font-weight: 400; font-size: 1rem;    line-height: 1.55; }
.skopa-small   { font-family: var(--skopa-font-display); font-weight: 400; font-size: 0.875rem;line-height: 1.5; }

.skopa-label   { font-family: var(--skopa-font-mono); font-weight: 500; font-size: 0.75rem;    letter-spacing: var(--skopa-track-label);   text-transform: uppercase; }
.skopa-eyebrow { font-family: var(--skopa-font-mono); font-weight: 500; font-size: 0.6875rem;  letter-spacing: var(--skopa-track-eyebrow); text-transform: uppercase; color: var(--skopa-ember-deep); }
.skopa-figure  { font-family: var(--skopa-font-mono); font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; } /* prices, table figures */

/* ==========================================================================
   Elements
   ========================================================================== */
.skopa a, .skopa-link { color: var(--skopa-link); text-decoration: none; border-bottom: 1px solid currentColor; }
.skopa a:hover        { color: var(--skopa-ember); }

.skopa-hr { border: 0; border-top: 1px solid var(--skopa-hairline); margin: var(--skopa-space-6) 0; }
.skopa-rule-ember { border: 0; border-top: 2px solid var(--skopa-ember); width: 48px; margin: var(--skopa-space-4) 0; } /* the one Ember rule — deck dividers */

:where(.skopa) :focus-visible { outline: 2px solid var(--skopa-focus); outline-offset: 2px; border-radius: var(--skopa-radius-sm); }

/* Buttons */
.skopa-btn {
  font-family: var(--skopa-font-display); font-weight: 600; font-size: 0.9375rem;
  letter-spacing: var(--skopa-track-snug);
  padding: var(--skopa-space-3) var(--skopa-space-5);
  border-radius: var(--skopa-radius-md);
  border: 1px solid var(--skopa-ink);
  background: var(--skopa-ink); color: var(--skopa-bone);
  cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.skopa-btn:hover        { background: var(--skopa-graphite); border-color: var(--skopa-graphite); }
.skopa-btn--secondary   { background: transparent; color: var(--skopa-ink); }
.skopa-btn--secondary:hover { background: var(--skopa-band); }
/* Ember is a graphic accent; for a CTA that carries words use Ember Deep (AA contrast). */
.skopa-btn--accent      { background: var(--skopa-ember-deep); border-color: var(--skopa-ember-deep); color: var(--skopa-white); }
.skopa-btn--accent:hover { background: #8f2905; border-color: #8f2905; }

/* Buttons rendered as <a> under .skopa must not inherit the link colour/underline. */
.skopa a.skopa-btn { border-bottom: 0; color: var(--skopa-bone); }
.skopa a.skopa-btn--secondary { color: var(--skopa-ink); }
.skopa a.skopa-btn--accent { color: var(--skopa-white); }

/* Callout / chart band */
.skopa-callout {
  background: var(--skopa-ember-tint);
  border-left: 2px solid var(--skopa-ember);
  padding: var(--skopa-space-4) var(--skopa-space-5);
  border-radius: 0 var(--skopa-radius-md) var(--skopa-radius-md) 0;
  color: var(--skopa-ink);
}

/* ==========================================================================
   Footer — shared across all pages
   ========================================================================== */
.skopa-footer { background: var(--skopa-ink); color: #9AA0A7; padding: 76px 0 34px; border-top: 1px solid #23272E;
  /* same 34px grid as the heroes and the overlay menu — every large Ink surface carries it */
  background-image: linear-gradient(rgba(244,245,243,.035) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(244,245,243,.035) 1px, transparent 1px);
  background-size: 34px 34px; }
.skopa-footer .fwrap { max-width: 1160px; margin: 0 auto; padding: 0 28px; }
.skopa-footer a { border-bottom: 0; text-decoration: none; }
.skopa-footer .foot-top { display: grid; grid-template-columns: 1.6fr 3fr; gap: 56px; }
.skopa-footer .foot-brand .flogo { height: 30px; display: block; }
.skopa-footer .foot-brand .tagline { max-width: 32ch; margin: 20px 0 0; color: #8A908D; font-size: .9rem; line-height: 1.6; }
.skopa-footer .foot-social { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #2C313A; border-radius: 10px; color: #C4C9C6; margin-top: 24px; transition: border-color .15s, color .15s, background .15s; }
.skopa-footer .foot-social:hover { color: var(--skopa-bone); border-color: var(--skopa-mist); background: #20242A; }
.skopa-footer .foot-social svg { width: 18px; height: 18px; }
.skopa-footer .foot-cols { display: grid; grid-template-columns: repeat(4,1fr); gap: 30px; }
.skopa-footer .foot-col h4 { font-family: var(--skopa-font-mono); font-size: .64rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: #6C727A; margin: 0 0 14px; }
.skopa-footer .foot-col a { color: #C4C9C6; font-size: .88rem; display: block; padding: 6px 0; }
.skopa-footer .foot-col a:hover { color: var(--skopa-bone); }
.skopa-footer address { font-style: normal; color: #9AA0A7; font-size: .88rem; line-height: 1.9; }
.skopa-footer address a { color: #C4C9C6; }
.skopa-footer address a:hover { color: var(--skopa-bone); }
.skopa-footer .foot-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 60px; padding-top: 24px; border-top: 1px solid #23272E; font-size: .8rem; color: #6C727A; }
.skopa-footer .foot-lang a { color: #8A908D; }
.skopa-footer .foot-lang a.on { color: var(--skopa-bone); }
.skopa-footer .foot-lang a:hover { color: var(--skopa-bone); }
@media (max-width: 860px){
  .skopa-footer { padding: 56px 0 30px; }
  .skopa-footer .foot-top { grid-template-columns: 1fr; gap: 40px; }
  .skopa-footer .foot-cols { grid-template-columns: 1fr 1fr; gap: 26px 30px; }
  .skopa-footer .foot-bottom { margin-top: 44px; }
}
@media (max-width: 480px){
  .skopa-footer .foot-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* ==========================================================================
   Shared solid site header (subpages) — matches the homepage's scrolled state
   ========================================================================== */
.site-header { position: sticky; top: 0; z-index: 60; background: rgba(244,245,243,.85); backdrop-filter: saturate(1.5) blur(12px); border-bottom: 1px solid var(--skopa-hairline); }
.site-header .sh-in { max-width: 1160px; margin: 0 auto; padding: 0 28px; height: 66px; display: flex; align-items: center; justify-content: space-between; }
.site-header .sh-logo { display: inline-flex; }
.site-header .sh-logo img { height: 25px; display: block; }
.site-header .sh-nav { display: flex; align-items: center; gap: 2px; }
.site-header .sh-nav a { position: relative; color: var(--skopa-ink); text-decoration: none; border-bottom: 0; font-size: .92rem; font-weight: 500; letter-spacing: -0.01em; opacity: .76; padding: 8px 15px; transition: opacity .15s; }
.site-header .sh-nav a::after { content:""; position:absolute; left:15px; right:15px; bottom:3px; height:1.5px; background: var(--skopa-ember); border-radius: 2px; transform: scaleX(0); transform-origin:left; transition: transform .24s cubic-bezier(.2,.7,.2,1); }
.site-header .sh-nav a:hover { opacity: 1; }
.site-header .sh-nav a:hover::after, .site-header .sh-nav a.on::after { transform: scaleX(1); }
.site-header .sh-actions { display: flex; align-items: center; gap: 12px; }
.site-header .sh-cta { padding: 10px 18px !important; font-size: .88rem !important; }
.site-header .sh-burger { display: none; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; position: relative; margin-right: -10px; }
.site-header .sh-burger span { position: absolute; left: 9px; right: 9px; height: 2px; background: var(--skopa-ink); border-radius: 2px; transition: transform .3s ease, opacity .2s ease, background .3s; }
.site-header .sh-burger span:nth-child(1){ top:15px; } .site-header .sh-burger span:nth-child(2){ top:21px; } .site-header .sh-burger span:nth-child(3){ top:27px; }
body.menu-open .site-header .sh-burger span { background: var(--skopa-bone); }
body.menu-open .site-header .sh-burger span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
body.menu-open .site-header .sh-burger span:nth-child(2){ opacity: 0; }
body.menu-open .site-header .sh-burger span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 860px){ .site-header .sh-nav, .site-header .sh-cta { display: none; } .site-header .sh-burger { display: block; } }

/* Shared mobile overlay menu (used by subpages) */
body.menu-open { overflow: hidden; }
.sh-menu { position: fixed; inset: 0; z-index: 55; background: var(--skopa-ink);
  background-image: linear-gradient(rgba(244,245,243,.03) 1px,transparent 1px), linear-gradient(90deg,rgba(244,245,243,.03) 1px,transparent 1px); background-size: 34px 34px;
  display: flex; flex-direction: column; justify-content: space-between; padding: 100px 28px 40px;
  opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .3s ease, transform .3s ease, visibility .3s; }
body.menu-open .sh-menu { opacity: 1; visibility: visible; transform: none; }
.sh-menu a { border-bottom: 0; }
.sh-menu-nav { display: flex; flex-direction: column; }
.sh-menu-nav a { color: var(--skopa-bone); text-decoration: none; font-family: var(--skopa-font-display); font-weight: 600; font-size: 1.85rem; letter-spacing: -0.03em; padding: 16px 0; border-bottom: 1px solid #23272E; transition: color .15s; }
.sh-menu-nav a:hover { color: var(--skopa-ember); }
.sh-menu-foot { display: flex; flex-direction: column; gap: 20px; }
.sh-menu-foot .skopa-btn { width: 100%; justify-content: center; text-align: center; }
.sh-menu-contact { display: flex; flex-direction: column; gap: 8px; font-family: var(--skopa-font-mono); font-size: .92rem; }
.sh-menu-contact a { color: #C4C9C6; border-bottom: 0; }
.sh-menu-lang { font-family: var(--skopa-font-mono); font-size: .82rem; color: #6C727A; }
.sh-menu-lang a { color: #8A908D; border-bottom: 0; }
.sh-menu-lang a.on { color: var(--skopa-bone); }
@media (min-width: 861px){ .sh-menu { display: none !important; } }

/* ==========================================================================
   Breadcrumbs — every page below the top level carries one (pairs with
   BreadcrumbList JSON-LD). Sits directly under the header, on Bone.
   ========================================================================== */
.skopa-crumbs { border-bottom: 1px solid var(--skopa-hairline); background: var(--skopa-bone); }
.skopa-crumbs ol { max-width: 1160px; margin: 0 auto; padding: 13px 28px; list-style: none;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  font-family: var(--skopa-font-mono); font-size: .72rem; letter-spacing: .04em; color: var(--skopa-fog); }
.skopa-crumbs li { display: inline-flex; align-items: center; gap: 8px; }
.skopa-crumbs li + li::before { content: "/"; color: var(--skopa-mist); }
.skopa-crumbs a { color: var(--skopa-fog); border-bottom: 0; transition: color .15s; }
.skopa-crumbs a:hover { color: var(--skopa-ember-deep); }
.skopa-crumbs [aria-current="page"] { color: var(--skopa-ink); }

/* ==========================================================================
   Contextual "read next" links — the in-body cross-links between pages
   ========================================================================== */
.skopa-next { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.skopa-next a { display: block; border: 1px solid var(--skopa-hairline); border-radius: var(--skopa-radius-lg);
  background: var(--skopa-white); padding: 18px 20px; text-decoration: none; border-bottom: 1px solid var(--skopa-hairline);
  transition: border-color .15s, transform .15s, box-shadow .2s; }
.skopa-next a:hover { border-color: var(--skopa-ink); transform: translateY(-2px); box-shadow: 0 14px 30px -22px rgba(24,27,31,.6); }
.skopa-next .k { font-family: var(--skopa-font-mono); font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--skopa-ember-deep); }
.skopa-next .t { font-family: var(--skopa-font-display); font-weight: 600; font-size: 1.02rem; letter-spacing: -0.02em; color: var(--skopa-ink); margin-top: 7px; }
.skopa-next .d { font-size: .86rem; line-height: 1.5; color: var(--skopa-slate); margin-top: 6px; }

/* ==========================================================================
   Source list — outbound citations to primary authorities (E-E-A-T)
   ========================================================================== */
.skopa-sources { border-top: 1px solid var(--skopa-hairline); margin-top: 8px; padding-top: 22px; }
.skopa-sources h2 { font-family: var(--skopa-font-mono); font-size: .68rem; font-weight: 500; letter-spacing: .18em;
  text-transform: uppercase; color: var(--skopa-fog); margin: 0 0 14px; }
.skopa-sources ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.skopa-sources li { font-size: .88rem; line-height: 1.55; color: var(--skopa-slate); }
.skopa-sources a { color: var(--skopa-ember-deep); border-bottom: 1px solid rgba(178,51,6,.32); }
.skopa-sources a:hover { border-bottom-color: currentColor; }
.skopa-sources .src-note { color: var(--skopa-fog); }
