/* ============================================================
   HAUS DESIGN SYSTEM  ·  v1.0
   Editorial, warm, serif-led. Destillerat ur StepLock × Haus.

   ANVÄNDNING
   1. Kopiera denna fil + mappen /fonts (Apercu + Seriguela .otf).
   2. Länka in den:  <link rel="stylesheet" href="haus.css">
   3. Sätt klassen på body:  <body class="haus">
   Allt nedan är scopat under .haus så det inte krockar med annat.

   FONTS: justera @font-face-sökvägarna nedan till var du lägger
   font-filerna. Faller tillbaka till system-serif/sans utan dem.
   ============================================================ */

/* ---------- 1. FONTS ---------- */
@font-face{font-family:'Apercu';src:url('fonts/Apercu-Light.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Apercu';src:url('fonts/Apercu-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Apercu';src:url('fonts/Apercu-Italic.otf') format('opentype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Apercu';src:url('fonts/Apercu-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Apercu';src:url('fonts/Apercu-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Apercu Mono';src:url('fonts/Apercu-Mono.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Seriguela';src:url('fonts/SeriguelaDisplay-Light.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Seriguela';src:url('fonts/SeriguelaDisplay-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Seriguela';src:url('fonts/SeriguelaDisplay-RegularItalic.otf') format('opentype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Seriguela';src:url('fonts/SeriguelaDisplay-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Seriguela';src:url('fonts/SeriguelaDisplay-SemiBold.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Seriguela';src:url('fonts/SeriguelaDisplay-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}

/* ---------- 2. TOKENS ---------- */
.haus{
  /* Ink (text/struktur) */
  --ink:#000; --ink-900:#323231; --ink-800:#5A5C5C; --ink-600:#777979;
  /* Neutraler */
  --grey-100:#DBDFDF; --grey-50:#EAEDED; --beige-50:#EDEADF;
  /* Ytor — varmt gräddvitt papper är basen, inte rent vitt */
  --paper:#F6F4EE; --paper-pure:#FFF; --night:#1A1A19;

  /* Signalpalett — pastell, för kategorisering. *-signal = accent, *-100 = mjuk yta, *-800 = djup text */
  --red-100:#FFD5D4;   --red-signal:#FF9192;   --red-300:#EB6C6E;  --red-800:#722129;
  --yellow-100:#FFFEDF; --yellow-signal:#FFFB96; --yellow-300:#FEDB91; --orange-800:#6C4C2E;
  --green-100:#E5FCE7;  --green-signal:#A9FCAE;  --green-300:#8ADEC2; --green-800:#295855;
  --blue-100:#DBFDFF;   --blue-signal:#86F7FF;   --blue-300:#7BD5E6;  --blue-800:#2D5F74;
  --purple-100:#E2E7FF; --purple-signal:#9FAFFF; --purple-300:#8393DD; --purple-800:#3E4770;

  /* Accent = den enda "varumärkesfärgen". Grön signal. */
  --accent:var(--green-signal); --accent-soft:var(--green-100); --accent-deep:var(--green-800);

  /* Linjer */
  --rule:rgba(50,50,49,0.14); --rule-strong:rgba(50,50,49,0.28);

  /* Radie & form */
  --radius:14px; --radius-sm:8px; --radius-pill:40px;

  /* Skugga (sparsamt) */
  --shadow:0 1px 2px rgba(0,0,0,.04),0 8px 30px rgba(0,0,0,.06);

  /* Typografi */
  --font-display:'Seriguela', Georgia, 'Times New Roman', serif;
  --font-sans:'Apercu', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:'Apercu Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --tracking-display:.025em;   /* Seriguela behöver luft för läsbarhet */
  --tracking-label:.12em;      /* versala mono-etiketter */

  /* Layout */
  --container:1320px; --gutter:64px;
}

/* ---------- 3. BAS ---------- */
.haus{font-family:var(--font-sans);background:var(--paper);color:var(--ink-900);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.haus *{box-sizing:border-box}
.haus a{color:inherit;text-decoration:none}
.haus em{font-style:italic}
.haus img{max-width:100%;display:block}

/* ---------- 4. LAYOUT ---------- */
.haus .container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
@media(max-width:680px){.haus{--gutter:24px}}
.haus .section{padding:72px 0;border-bottom:1px solid var(--rule);scroll-margin-top:80px}
.haus .section--tight{padding:48px 0}

/* ---------- 5. TYPOGRAFI ----------
   REGEL: Seriguela (display) för rubriker, ALDRIG under ~40px (blir oläslig liten).
          Apercu (sans) för brödtext. Apercu Mono för versala etiketter/eyebrows.
          Rubriker default semibold (600). Brödtext regular (400). */
.haus h1,.haus h2,.haus h3,.haus .display{
  font-family:var(--font-display);font-weight:600;color:var(--ink);
  letter-spacing:var(--tracking-display);line-height:.96;margin:0}
.haus h1,.haus .h1{font-size:clamp(56px,7vw,96px)}
.haus h2,.haus .h2{font-size:clamp(44px,5vw,66px);line-height:.98}
.haus h3,.haus .h3{font-size:clamp(40px,3.6vw,50px);line-height:1}
.haus .display--xl{font-size:clamp(80px,15vw,244px);line-height:.86} /* hero-skala */
/* em i rubriker ärver rubrikens stil — ALDRIG kursiverade enstaka ord. Kursiv är allt-eller-inget. */
.haus h1 em,.haus h2 em,.haus h3 em,.haus .display em{font-weight:inherit;font-style:normal;color:inherit}
/* vill du kursivera en rubrik: kursivera HELA rubriken */
.haus h1.is-italic,.haus h2.is-italic,.haus h3.is-italic,.haus .display.is-italic{font-style:italic;font-weight:400}

/* Mindre rubriker / etiketter → Apercu (sans), INTE liten Seriguela */
.haus h4,.haus .h4{font-family:var(--font-sans);font-weight:500;font-size:19px;letter-spacing:0;line-height:1.2;margin:0;color:var(--ink)}

.haus .lede{font-size:20px;line-height:1.5;color:var(--ink-900);max-width:760px}
.haus .lede strong{font-weight:500;color:var(--ink)}

/* Versal mono-etikett (eyebrow / kicker / mellanrubrik i kort) */
.haus .label,.haus .eyebrow{
  font-family:var(--font-mono);font-size:12px;letter-spacing:var(--tracking-label);
  text-transform:uppercase;color:var(--ink-800)}
.haus .label--bold{font-weight:700;color:var(--ink)}

/* Brödtext */
.haus .prose{max-width:780px}
.haus .prose p{font-size:16px;line-height:1.62;margin:0 0 20px}
.haus .prose p strong{font-weight:500;color:var(--ink)}
.haus .prose a{border-bottom:1px solid var(--rule)}
.haus .prose a:hover{border-bottom-color:var(--ink)}

/* ---------- 6. KOMPONENTER ---------- */

/* Badge — eyebrow med grön prick */
.haus .badge{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);
  font-size:12px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-900)}
.haus .badge::before{content:"";width:9px;height:9px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 1px var(--ink-900)}

/* Pill / tag — liten rundad etikett */
.haus .pill{display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;
  text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-pill);
  border:1px solid var(--rule-strong);color:var(--ink-800);white-space:nowrap}
.haus .pill--accent{background:var(--accent);border-color:transparent;color:var(--ink)}

/* Knappar */
.haus .btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);
  font-size:15px;font-weight:500;padding:12px 22px;border-radius:var(--radius-pill);
  border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;
  transition:transform .15s ease,opacity .15s ease}
.haus .btn:hover{opacity:.88}
.haus .btn:active{transform:translateY(1px)}
.haus .btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule-strong)}
.haus .btn--ghost:hover{border-color:var(--ink);opacity:1}
.haus .btn--accent{background:var(--accent);border-color:var(--accent);color:var(--ink)}

/* Kort */
.haus .card{background:var(--paper-pure);border:1px solid var(--rule);border-radius:var(--radius);padding:30px 32px}
.haus .card--flush{padding:0;overflow:hidden}

/* Callout — mörk platta. Lång text regular, etikett i grönt. */
.haus .callout{background:var(--night);color:#fff;border-radius:var(--radius);padding:34px 36px}
.haus .callout .k{display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.haus .callout p{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,3.4vw,50px);
  line-height:1.16;letter-spacing:var(--tracking-display);margin:0}
.haus .callout p em{font-style:italic}

/* Stat-platta — mörk, stor siffra (bold) + förklaring (regular) */
.haus .stat{background:var(--night);color:#fff;border-radius:var(--radius);padding:24px 26px}
.haus .stat .big{font-family:var(--font-display);font-weight:600;font-size:54px;line-height:.9;
  letter-spacing:var(--tracking-display);margin-bottom:10px}
.haus .stat .lbl{font-size:16px;line-height:1.4;color:rgba(255,255,255,.82)}
.haus .stat .lbl b{color:var(--accent);font-weight:400}

/* Färgswatch — palettstapel + hex-chips */
.haus .swatches{display:flex;height:42px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--rule)}
.haus .swatches span{flex:1}
.haus .hexrow{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px}
.haus .hexrow span{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;color:var(--ink-600)}
.haus .hexrow span i{width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.12)}

/* Sticky topp-nav med scrollspy-indikator */
.haus nav.sticky-nav{position:sticky;top:0;z-index:50;background:rgba(246,244,238,.92);
  backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--rule)}
.haus nav.sticky-nav .container{display:flex;align-items:center;justify-content:space-between;height:64px;gap:24px}
.haus nav.sticky-nav .nav-brand{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-800)}
.haus nav.sticky-nav .nav-brand img{width:24px;height:24px;border-radius:5px}
.haus nav.sticky-nav ul{display:flex;gap:22px;margin:0;padding:0;list-style:none;position:relative}
.haus nav.sticky-nav a{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-600);display:inline-flex;align-items:center;gap:7px;transition:color .2s ease}
.haus nav.sticky-nav a .nav-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:50%;font-variant-numeric:tabular-nums;position:relative;z-index:1}
.haus nav.sticky-nav a.active,.haus nav.sticky-nav a:hover{color:var(--ink)}
.haus nav.sticky-nav .nav-indicator{position:absolute;width:26px;height:26px;border-radius:50%;
  background:var(--accent);pointer-events:none;z-index:0;opacity:0;
  transition:transform 420ms cubic-bezier(.4,0,.2,1),opacity 280ms ease}
.haus nav.sticky-nav .nav-indicator.visible{opacity:1}
@media(max-width:760px){.haus nav.sticky-nav ul{display:none}}

/* Hero — grön magasin-hero */
.haus .hero{background:var(--accent);padding:84px 0 100px;border-bottom:1px solid var(--ink);overflow:hidden}
.haus .hero .hero-tag{margin-bottom:56px}
.haus .hero h1{color:var(--ink);margin-bottom:44px}
.haus .hero .hero-sub{font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(30px,3.7vw,46px);line-height:1;color:var(--ink);max-width:820px;letter-spacing:var(--tracking-display)}
.haus .hero .hero-meta{margin-top:60px;padding-top:30px;border-top:1px solid rgba(0,0,0,.22);
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.haus .hero .hero-meta .meta-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-900);opacity:.65;display:block;margin-bottom:6px}
.haus .hero .hero-meta .meta-value{font-size:16px;font-weight:500;color:var(--ink)}
@media(max-width:720px){.haus .hero .hero-meta{grid-template-columns:1fr 1fr;gap:24px}}

/* Section-rubrik med löpnummer */
.haus .sec-head{display:flex;align-items:baseline;gap:16px;margin-bottom:14px}
.haus .sec-num{font-family:var(--font-mono);font-size:12px;color:var(--ink-600)}
.haus .sec-intro{font-size:18px;max-width:780px;color:var(--ink-900);margin:18px 0 44px}
.haus .sec-intro strong{font-weight:500;color:var(--ink)}

/* Hamburger-toggle (boxlös, t.ex. längst till vänster i navet) */
.haus .docnav-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
  border:none;background:none;color:var(--ink);cursor:pointer;padding:0}
.haus .docnav-toggle:hover{color:var(--ink-600)}
.haus .docnav-toggle svg{width:23px;height:23px}

/* Drawer-meny (dokument/sektionsväljare) */
.haus .docmenu{position:fixed;inset:0;z-index:300;background:rgba(20,20,19,.34);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;display:flex;
  transition:opacity .3s ease,visibility .3s}
.haus .docmenu.open{opacity:1;visibility:visible}
.haus .docmenu-inner{background:var(--paper);width:min(760px,100%);height:100%;display:flex;flex-direction:column;
  box-shadow:0 0 60px rgba(0,0,0,.2);transform:translateX(-24px);transition:transform .32s cubic-bezier(.4,0,.2,1)}
.haus .docmenu.open .docmenu-inner{transform:none}
.haus .docmenu-top{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 36px;
  border-bottom:1px solid var(--rule)}
.haus .docmenu-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 36px}
.haus .docmenu ul{list-style:none;margin:0;padding:0}
.haus .docmenu li{border-top:1px solid var(--rule)}
.haus .docmenu li:last-child{border-bottom:1px solid var(--rule)}
.haus .docmenu a,.haus .docmenu .dm-soon{display:flex;align-items:center;gap:22px;padding:26px 8px;border:none;color:var(--ink)}
.haus .docmenu a:hover{padding-left:22px;background:rgba(0,0,0,.03);transition:padding-left .25s ease,background .2s ease}
.haus .docmenu .dm-num{font-family:var(--font-mono);font-size:16px;color:var(--ink-600);width:34px;flex:none}
.haus .docmenu .dm-title{font-family:var(--font-display);font-weight:600;font-size:clamp(44px,6vw,68px);
  line-height:.96;letter-spacing:.02em}
.haus .docmenu .dm-desc{font-family:var(--font-sans);font-size:16px;color:var(--ink-600);margin-left:auto;text-align:right}
.haus .docmenu .dm-current{background:var(--accent)}        /* aktivt = helt grönt block */
.haus .docmenu .dm-current a:hover{background:transparent;padding-left:8px}
.haus .docmenu .dm-soon{opacity:.4}

/* Divider — kapitelmarkör */
.haus .divider{padding:64px 0;border-bottom:1px solid var(--rule)}
.haus .divider .divider-num{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-600);margin:14px 0 8px}

/* Rule / hairline helpers */
.haus .hr{height:1px;background:var(--rule);border:0;margin:0}
.haus .hr--strong{background:var(--rule-strong)}
