/*
Theme Name:   Krankompetanse
Template:     generatepress
Description:  Child theme for krankompetanse.no. Modern-but-business: high contrast,
              generous type, restrained colour. Built for long-form safety writing and
              a scannable crane reference.
Version:      1.0.0
*/

:root{
  --kk-ink:#12181f;        /* near-black, warmer than pure black */
  --kk-muted:#5b6672;
  --kk-line:#e2e6ea;
  --kk-bg:#ffffff;
  --kk-bg-alt:#f6f8fa;
  --kk-accent:#a8763b;     /* brand gold, darkened for text contrast (logo gold #c4965e) */
  --kk-accent-dk:#8a5f2c;
  --kk-gold:#c4965e;       /* logo gold, for rules and accents (too light for body text) */
  --kk-steel:#222e43;      /* brand navy, measured from the logo */
}

body{ color:var(--kk-ink); background:var(--kk-bg); }

/* Long-form readability: the articles are ~500 words and deserve air */
.entry-content{ font-size:1.075rem; line-height:1.75; max-width:68ch; }
.entry-content p{ margin-bottom:1.35em; }
.entry-content strong{ color:var(--kk-steel); }

h1,h2,h3,h4{ color:var(--kk-steel); letter-spacing:-0.015em; line-height:1.2; }
.entry-title{ font-size:clamp(1.7rem,3.4vw,2.5rem); }

a{ color:var(--kk-accent); text-underline-offset:2px; }
a:hover{ color:var(--kk-accent-dk); }

.site-header{ border-bottom:2px solid var(--kk-steel); }
.main-navigation{ border-bottom:1px solid var(--kk-line); }

/* --- crane reference --------------------------------------------------- */
.kk-crane-specs{
  border:1px solid var(--kk-line); border-radius:6px;
  background:var(--kk-bg-alt); padding:1rem 1.25rem; margin:1.5rem 0;
}
.kk-crane-specs dl{ display:grid; grid-template-columns:minmax(11rem,auto) 1fr;
  gap:.45rem 1.25rem; margin:0; }
.kk-crane-specs dt{ color:var(--kk-muted); font-size:.875rem; }
.kk-crane-specs dd{ margin:0; font-weight:600; }

.kk-doc-link{
  display:inline-block; margin-top:1rem; padding:.6rem 1rem;
  background:var(--kk-steel); color:#fff !important; border-radius:4px;
  font-weight:600; text-decoration:none;
}
.kk-doc-link:hover{ background:var(--kk-accent-dk); color:#fff !important; }
.kk-doc-note{ color:var(--kk-muted); font-size:.875rem; margin-top:.4rem; }

/* --- tables and callouts ----------------------------------------------- */
.entry-content table{ border-collapse:collapse; width:100%; font-size:.95rem; }
.entry-content th{ background:var(--kk-bg-alt); text-align:left; }
.entry-content th,.entry-content td{ border:1px solid var(--kk-line); padding:.55rem .7rem; }

/* Wide content must scroll inside itself, never the page */
.entry-content .kk-scroll{ overflow-x:auto; }

@media (max-width:600px){
  .kk-crane-specs dl{ grid-template-columns:1fr; gap:.15rem; }
  .kk-crane-specs dt{ margin-top:.6rem; }
}

/* --- crane / gear index ------------------------------------------------ */
.kk-index-controls{
  background:var(--kk-bg-alt); border:1px solid var(--kk-line); border-radius:8px;
  padding:1rem; margin-bottom:1.5rem;
}
.kk-index-search{
  width:100%; padding:.7rem .9rem; font-size:1rem;
  border:1px solid var(--kk-line); border-radius:6px; background:#fff;
}
.kk-index-search:focus{ outline:2px solid var(--kk-accent); outline-offset:1px; }
.kk-index-filters{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.7rem; }
.kk-index-filters select{
  flex:1 1 12rem; padding:.55rem .7rem; border:1px solid var(--kk-line);
  border-radius:6px; background:#fff; font-size:.95rem;
}
.kk-index-reset{
  padding:.55rem 1rem; border:1px solid var(--kk-line); border-radius:6px;
  background:#fff; cursor:pointer; font-size:.95rem;
}
.kk-index-reset:hover{ background:var(--kk-steel); color:#fff; border-color:var(--kk-steel); }
.kk-index-count{ margin:.7rem 0 0; font-size:.875rem; color:var(--kk-muted); }

.kk-index-mfr{ margin-bottom:2rem; }
.kk-index-mfr h2{
  font-size:1.35rem; margin:0 0 .2rem; padding-bottom:.35rem;
  border-bottom:2px solid var(--kk-steel);
}
.kk-index-n{
  font-size:.8rem; font-weight:600; color:var(--kk-muted);
  background:var(--kk-bg-alt); border-radius:99px; padding:.1rem .55rem; vertical-align:middle;
}
.kk-index-type{
  font-size:.8rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--kk-muted); margin:1rem 0 .4rem;
}
.kk-index-list{ list-style:none; margin:0; padding:0; }
.kk-index-list li{
  display:flex; justify-content:space-between; gap:1rem; align-items:baseline;
  padding:.5rem .2rem; border-bottom:1px solid var(--kk-line);
}
.kk-index-list a{ font-weight:600; text-decoration:none; }
.kk-index-list a:hover{ text-decoration:underline; }
.kk-index-specs{ color:var(--kk-muted); font-size:.85rem; text-align:right; white-space:nowrap; }
.kk-index-empty{ color:var(--kk-muted); padding:1rem 0; }

@media (max-width:600px){
  .kk-index-list li{ flex-direction:column; gap:.15rem; }
  .kk-index-specs{ text-align:left; white-space:normal; }
}

/* stacked variant: title over summary, for the gear index */
.kk-index-list--stacked li{ flex-direction:column; align-items:flex-start; gap:.2rem; }
.kk-index-sum{ color:var(--kk-muted); font-size:.9rem; line-height:1.5; }


/* --- brand ------------------------------------------------------------- */
.site-header{ border-bottom:2px solid var(--kk-steel); }
.site-logo img{ max-height:56px; width:auto; }
.main-navigation{ border-bottom:1px solid var(--kk-line); }
.main-navigation .main-nav ul li a{ font-weight:600; letter-spacing:.01em; }
.main-navigation .main-nav ul li a:hover{ color:var(--kk-accent); }

/* gold hairline under section headings, echoing the logo rule */
.kk-index-mfr h2, .entry-content h2{
  border-bottom:2px solid var(--kk-gold);
  padding-bottom:.35rem;
}
.kk-doc-link{ background:var(--kk-steel); }
.kk-doc-link:hover{ background:var(--kk-accent); }
.kk-index-n{ background:var(--kk-steel); color:#fff; }
.kk-lead{ font-size:1.15rem; line-height:1.6; color:var(--kk-steel); }

/* --- regelverk --------------------------------------------------------- */
.kk-reg-source{ margin-bottom:2.5rem; }
.kk-reg-blurb{ color:var(--kk-muted); font-size:.95rem; margin-top:-.4rem; }
.kk-reg-chapter{
  font-size:.8rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--kk-muted); margin:1.6rem 0 .6rem; border:0; padding:0;
}
.kk-reg-item{
  border-left:3px solid var(--kk-gold); background:var(--kk-bg-alt);
  padding:.85rem 1.1rem; margin-bottom:.8rem; border-radius:0 6px 6px 0;
}
.kk-reg-item h4{ margin:0 0 .35rem; font-size:1.02rem; color:var(--kk-steel); }
.kk-reg-para{
  display:inline-block; background:var(--kk-steel); color:#fff;
  padding:.05rem .5rem; border-radius:4px; font-size:.85rem; margin-right:.35rem;
}
.kk-reg-item p{ margin:0 0 .4rem; font-size:.95rem; line-height:1.6; }
.kk-reg-src a{ font-size:.85rem; }
.kk-reg-note{
  border:1px solid var(--kk-line); background:#fff; border-radius:6px;
  padding:1rem 1.2rem; margin-top:1.5rem;
}
.kk-reg-note p{ margin:0; font-size:.9rem; color:var(--kk-muted); line-height:1.6; }

/* --- article ↔ regelverk cross-reference ------------------------------- */
.kk-xref{
  margin:2.5rem 0 0; padding:1.1rem 1.3rem;
  background:var(--kk-bg-alt); border:1px solid var(--kk-line);
  border-left:3px solid var(--kk-gold); border-radius:0 6px 6px 0;
}
.kk-xref h3{ margin:0 0 .3rem; font-size:1rem; color:var(--kk-steel); border:0; padding:0; }
.kk-xref-note{ margin:0 0 .7rem; font-size:.85rem; color:var(--kk-muted); }
.kk-xref-list{ list-style:none; margin:0; padding:0; }
.kk-xref-list li{ margin-bottom:.4rem; line-height:1.4; }
.kk-xref-list a{ text-decoration:none; font-size:.95rem; }
.kk-xref-list a:hover{ text-decoration:underline; }
.kk-xref-more{ margin:.8rem 0 0; font-size:.9rem; }

/* --- language switcher ------------------------------------------------- */
.kk-lang-switch{ display:flex; align-items:center; gap:.15rem; }
.main-navigation .kk-lang-switch a.kk-lang{
  padding:.25rem .55rem; font-size:.8rem; font-weight:700; letter-spacing:.04em;
  border:1px solid var(--kk-line); border-radius:4px; text-decoration:none;
  color:var(--kk-muted); line-height:1.4;
}
.main-navigation .kk-lang-switch a.kk-lang:hover{
  border-color:var(--kk-steel); color:var(--kk-steel);
}
.main-navigation .kk-lang-switch a.kk-lang.is-current{
  background:var(--kk-steel); border-color:var(--kk-steel); color:#fff;
}
@media (max-width:768px){
  .kk-lang-switch{ padding:.5rem 1rem; }
}

/* --- lenker ------------------------------------------------------------ */
.kk-links-group{ margin-bottom:2.2rem; }
.kk-links-list{ display:grid; gap:.8rem; }
.kk-link-item{
  border:1px solid var(--kk-line); border-radius:6px; padding:.9rem 1.1rem;
  background:#fff;
}
.kk-link-item.is-own{ border-left:3px solid var(--kk-gold); }
.kk-link-item h3{ margin:0 0 .3rem; font-size:1.05rem; border:0; padding:0; }
.kk-link-item h3 a{ text-decoration:none; }
.kk-link-item h3 a:hover{ text-decoration:underline; }
.kk-link-own{
  font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; font-weight:700;
  background:var(--kk-gold); color:#fff; padding:.1rem .45rem; border-radius:3px;
  vertical-align:middle;
}
.kk-link-item p{ margin:0 0 .25rem; font-size:.95rem; line-height:1.55; }
.kk-link-note{ color:var(--kk-accent); font-size:.85rem !important; }
.kk-link-url{ color:var(--kk-muted); font-size:.8rem !important; margin:.3rem 0 0 !important; }
@media (min-width:700px){ .kk-links-list{ grid-template-columns:1fr 1fr; } }
