/* ===========================================================
   Contentsmedjan AB — "Mörk smedja"
   Koldammssvart bas, glödande ember/rost som accent.
   Self-hosted fonts. Noll externa anrop, noll spårning.
   =========================================================== */

/* ---------- Fonts ---------- */
@font-face{font-family:"Archivo";src:url(assets/fonts/archivo-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url(assets/fonts/archivo-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url(assets/fonts/archivo-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Bitter";src:url(assets/fonts/bitter-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Bitter";src:url(assets/fonts/bitter-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Bitter";src:url(assets/fonts/bitter-400i.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(assets/fonts/plexmono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --bg:#15110e;          /* forge night, varm nära-svart */
  --bg-2:#1b1612;        /* alt-sektion */
  --bg-3:#221b16;        /* kort / upphöjda ytor */
  --bg-4:#2b2219;        /* hover / kant */

  --ink:#f4ecdf;         /* benvit text */
  --ink-2:#e9ddca;       /* lite varmare ljus */
  --muted:#b3a191;       /* sekundär text */
  --muted-2:#8b7c6d;     /* svag text */

  --brand:#7a3a22;       /* ursprunglig brun, djup */
  --rust:#bb5126;        /* rost / orange-brun */
  --ember:#e07f3a;       /* glödande amber-orange (accent) */
  --ember-hot:#f6a557;   /* ljusare glöd */
  --white-hot:#ffdcab;   /* hetast, nära vit-orange */

  --line:rgba(244,236,223,.10);
  --line-strong:rgba(244,236,223,.20);
  --ember-line:rgba(224,127,58,.55);

  --grad-ember:linear-gradient(105deg,var(--white-hot),var(--ember-hot) 32%,var(--ember) 60%,var(--rust));
  --grad-heat:linear-gradient(90deg,transparent,var(--ember) 18%,var(--white-hot) 50%,var(--ember) 82%,transparent);
  --glow:0 0 0 1px rgba(224,127,58,.18),0 26px 70px -30px rgba(224,127,58,.55);
  --shadow:0 30px 70px -34px rgba(0,0,0,.85);

  --font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-body:"Bitter",Georgia,"Times New Roman",serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;

  --wrap:1160px;
  --r:10px;
  --r-lg:16px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-weight:400;font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3{margin:0}
p{margin:0 0 1rem}
ul,ol{margin:0;padding:0}
a{color:var(--ember)}
img,svg{display:block}
::selection{background:var(--ember);color:#1a120c}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:3px}

/* mjuk soot/grain-overlay för värme och djup */
body::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
/* svag glöd från "ässjan" längst ner i vyn */
body::after{
  content:"";position:fixed;left:50%;bottom:-30vh;transform:translateX(-50%);
  width:120vw;height:60vh;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side,rgba(224,127,58,.10),transparent 70%);
}

.skip{position:absolute;left:-9999px;top:0;background:var(--ember);color:#1a120c;padding:.7em 1.1em;font-family:var(--font-mono);font-size:.85rem;z-index:200;border-radius:0 0 var(--r) 0}
.skip:focus{left:0}

/* ---------- Layout ---------- */
.wrap{width:min(var(--wrap),100% - 2.8rem);margin-inline:auto;position:relative;z-index:2}
.measure{max-width:66ch}
.band{padding-block:clamp(3.8rem,9vw,7rem);position:relative}
.band--bg{background:var(--bg)}
.band--alt{background:var(--bg-2)}
.band--alt::before,.band--alt::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--line)}
.band--alt::before{top:0}
.band--alt::after{bottom:0}

/* glödande horisontell regel */
.heat-rule{height:1px;border:0;margin:0;background:var(--grad-heat);opacity:.5}

/* ---------- Reveal (JS scroll-in) ---------- */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- Brandmark (logo-PNG, äkta 1:1-proportion) ---------- */
.brand__mark,.brandmark{display:block;height:auto;flex:none}
.brand__mark{width:34px;transition:filter .2s ease}
.brandmark--hero{width:clamp(170px,24vw,250px);filter:drop-shadow(0 0 34px rgba(224,127,58,.5)) drop-shadow(0 6px 18px rgba(0,0,0,.55))}
.brandmark--footer{width:46px;opacity:.82}

/* ---------- Eyebrow ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:.65em;margin:0;
  font-family:var(--font-mono);font-weight:500;font-size:.72rem;
  letter-spacing:.24em;text-transform:uppercase;color:var(--ember)
}
.eyebrow::before{
  content:"";width:7px;height:7px;background:var(--ember);flex:none;border-radius:1px;
  box-shadow:0 0 10px 1px rgba(224,127,58,.9)
}
.eyebrow--center{justify-content:center}

/* ---------- Section heads / text ---------- */
.section-head{max-width:760px;margin-bottom:clamp(2rem,4.5vw,3.2rem)}
.section-title{
  font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;
  font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.06;color:var(--ink);margin-top:.7rem
}
.section-intro{color:var(--muted);margin-top:1rem;font-size:1.05rem;max-width:60ch}
.lede{font-size:clamp(1.1rem,1.7vw,1.3rem);line-height:1.6;color:var(--ink-2);margin:.7rem 0 1rem}
.measure>.eyebrow{margin-bottom:.3rem}
.measure p:last-child{margin-bottom:0}
.measure p{color:var(--muted)}
.measure .lede{color:var(--ink-2)}

/* ---------- Header / nav ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(21,17,14,.55);
  -webkit-backdrop-filter:blur(14px) saturate(130%);
  backdrop-filter:blur(14px) saturate(130%);
  border-bottom:1px solid transparent;
  transition:background-color .3s ease,border-color .3s ease
}
.site-header.is-scrolled{
  background:rgba(18,14,11,.86);border-bottom-color:var(--line)
}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.85rem}
.brand{display:inline-flex;align-items:center;gap:.65rem;text-decoration:none}
.brand__name{
  font-family:var(--font-display);font-weight:700;font-size:1.02rem;
  letter-spacing:.005em;color:var(--ink)
}
.brand:hover .brand__mark{filter:drop-shadow(0 0 7px rgba(224,127,58,.6))}

.nav--inline ul{display:flex;gap:clamp(1rem,2.4vw,2.1rem);list-style:none}
.nav--inline a{
  position:relative;display:inline-block;padding:.3em 0;text-decoration:none;
  font-family:var(--font-mono);font-size:.76rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);transition:color .2s ease
}
.nav--inline a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--grad-ember);transition:right .28s ease}
.nav--inline a:hover{color:var(--ink)}
.nav--inline a:hover::after{right:0}

.nav--menu{display:none;position:relative}
.nav--menu summary{
  list-style:none;cursor:pointer;color:var(--ink);
  font-family:var(--font-mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--line-strong);padding:.6em 1em;border-radius:var(--r);background:var(--bg-3)
}
.nav--menu summary::-webkit-details-marker{display:none}
.nav--menu[open] summary{border-color:var(--ember);color:var(--ember)}
.nav--menu ul{
  position:absolute;right:0;top:calc(100% + .6rem);list-style:none;
  background:var(--bg-3);border:1px solid var(--line-strong);border-radius:var(--r);
  padding:.45rem;min-width:220px;box-shadow:var(--shadow)
}
.nav--menu li a{
  display:block;padding:.65em .85em;text-decoration:none;border-radius:6px;
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)
}
.nav--menu li a:hover{background:var(--bg-4);color:var(--ember)}

/* ---------- Hero ---------- */
.hero{
  text-align:center;overflow:hidden;
  padding-block:clamp(4.5rem,11vw,8.5rem);
  background:
    radial-gradient(120% 78% at 50% 116%,rgba(224,127,58,.26),transparent 58%),
    radial-gradient(75% 50% at 50% 128%,rgba(246,165,87,.20),transparent 56%),
    var(--bg);
}
.hero__spark{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero__inner{max-width:920px;margin-inline:auto;position:relative;z-index:3}
.hero__crest{position:relative;display:flex;justify-content:center;margin-bottom:clamp(1.6rem,4vw,2.6rem)}
.hero__crest::after{
  content:"";position:absolute;top:50%;left:50%;width:min(440px,80vw);aspect-ratio:1;
  transform:translate(-50%,-50%);z-index:-1;
  background:radial-gradient(closest-side,rgba(224,127,58,.28),transparent 70%);
  filter:blur(6px)
}
.hero__title{
  font-family:var(--font-display);font-weight:800;letter-spacing:-.025em;
  font-size:clamp(2.3rem,6vw,4.1rem);line-height:1.02;color:var(--ink);
  max-width:18ch;margin:.5rem auto 0
}
.hot{
  background:var(--grad-ember);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 22px rgba(224,127,58,.35))
}
.hero__lead{color:var(--muted);font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.55;max-width:46ch;margin:1.3rem auto 0}
.hero__cta{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-top:2.1rem}

/* fakta-remsa under hero */
.hero__facts{
  display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(1rem,3vw,2.4rem);
  margin-top:clamp(2.4rem,5vw,3.4rem);padding-top:2rem;
  border-top:1px solid var(--line);
  font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)
}
.hero__facts b{display:block;font-family:var(--font-display);font-weight:800;font-size:1.7rem;letter-spacing:-.01em;color:var(--ember);margin-bottom:.25rem;text-transform:none}
.hero__fact{min-width:110px}

/* ---------- Principer / hållning ---------- */
.principles{
  list-style:none;display:grid;gap:clamp(1rem,2vw,1.5rem);
  grid-template-columns:repeat(auto-fit,minmax(238px,1fr))
}
.principle{
  background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(1.5rem,2.4vw,2rem);
  transition:transform .25s ease,border-color .25s ease,background-color .25s ease
}
.principle:hover{transform:translateY(-3px);border-color:var(--ember-line);background:var(--bg-4)}
.principle__icon{width:34px;height:34px;color:var(--ember);margin-bottom:1.1rem;filter:drop-shadow(0 0 12px rgba(224,127,58,.4))}
.principle__icon svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.principle__title{font-family:var(--font-display);font-weight:700;font-size:1.18rem;letter-spacing:-.01em;color:var(--ink);margin:0 0 .5rem}
.principle__text{color:var(--muted);font-size:.96rem;line-height:1.55;margin:0}

/* ---------- Projekt: smidda plattor ---------- */
.stamps{
  list-style:none;display:grid;gap:clamp(1rem,1.8vw,1.5rem);
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr))
}
.stamp{
  position:relative;overflow:hidden;background:var(--bg-3);
  border:1px solid var(--line-strong);border-radius:var(--r-lg);
  padding:clamp(1.6rem,2.6vw,2.2rem);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  isolation:isolate
}
/* topphögdager — ljus som faller på metall */
.stamp::before{
  content:"";position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,220,171,.5),transparent);
  opacity:.7
}
/* pekarljus (sätts via JS: --mx/--my) */
.stamp::after{
  content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .3s ease;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(224,127,58,.16),transparent 60%)
}
.stamp__no{
  position:absolute;top:clamp(1.2rem,2.4vw,1.7rem);right:clamp(1.2rem,2.4vw,1.7rem);
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;color:var(--muted-2)
}
.stamp__kicker{
  font-family:var(--font-mono);font-weight:500;font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ember);margin:0 0 .7rem
}
.stamp__name{
  font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,2.6vw,1.8rem);
  line-height:1.08;letter-spacing:-.015em;color:var(--ink);margin:0 0 .65rem
}
.stamp__text{color:var(--muted);font-size:.98rem;line-height:1.58;margin:0 0 1.3rem}
.stamp__link{
  position:relative;z-index:2;display:inline-flex;align-items:center;gap:.45ch;text-decoration:none;
  font-family:var(--font-mono);font-size:.82rem;letter-spacing:.03em;color:var(--ember-hot)
}
.stamp__link span{transition:transform .25s ease}
.stamp__link::after{content:"";position:absolute;inset:0;z-index:1}
.stamp:hover,.stamp:focus-within{
  transform:translateY(-4px);border-color:var(--ember-line);
  box-shadow:var(--glow),var(--shadow)
}
.stamp:hover::after{opacity:1}
.stamp:hover .stamp__link span{transform:translateX(4px)}

/* ---------- Manifest / pull-quote ---------- */
.manifest{
  text-align:center;
  background:
    radial-gradient(90% 120% at 50% -10%,rgba(187,81,38,.18),transparent 60%),
    var(--bg-2);
  border-block:1px solid var(--line)
}
.manifest__q{
  font-family:var(--font-display);font-weight:800;letter-spacing:-.025em;
  font-size:clamp(2rem,5.5vw,3.6rem);line-height:1.05;color:var(--ink);
  max-width:18ch;margin:0 auto
}
.manifest__q .hot{display:inline-block}
.manifest__cite{
  display:block;margin-top:1.6rem;
  font-family:var(--font-mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)
}

/* ---------- Historia: smedjans tidslinje ---------- */
.timeline{list-style:none;max-width:840px;position:relative;margin-left:.4rem}
.tl{
  position:relative;display:grid;grid-template-columns:6rem 1fr;
  column-gap:clamp(1.4rem,3.5vw,2.6rem);align-items:start;
  padding-block:clamp(1.1rem,2.2vw,1.5rem)
}
.tl__year{
  text-align:right;white-space:nowrap;line-height:1;
  font-family:var(--font-display);font-weight:800;font-size:clamp(1.4rem,3vw,2rem);color:var(--ember)
}
.tl__text{
  position:relative;align-self:start;color:var(--ink-2);margin:0;
  padding-left:clamp(1.4rem,3.5vw,2.4rem);padding-bottom:.2rem;
  border-left:2px solid var(--line-strong)
}
/* glödande nod på linjen */
.tl__text::before{
  content:"";position:absolute;left:-7px;top:.5em;width:12px;height:12px;border-radius:50%;
  background:var(--ember);box-shadow:0 0 0 4px var(--bg),0 0 14px 2px rgba(224,127,58,.8)
}
.tl:last-child .tl__text{border-image:linear-gradient(var(--ember),transparent) 1}
.tl__text em{color:var(--muted);font-style:italic}

/* ---------- Buttons / mailto ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55ch;text-decoration:none;
  font-family:var(--font-mono);font-weight:500;font-size:.82rem;letter-spacing:.07em;text-transform:uppercase;
  padding:.95em 1.6em;border-radius:var(--r);
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease
}
.btn span{transition:transform .25s ease}
.btn:hover span{transform:translateX(4px)}
.btn--primary{background:var(--grad-ember);color:#241007;border:1px solid transparent;box-shadow:0 14px 40px -16px rgba(224,127,58,.7)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 20px 50px -16px rgba(224,127,58,.85)}
.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn--ghost:hover{border-color:var(--ember);color:var(--ember);transform:translateY(-2px)}

.contact .lede{max-width:54ch}
.mailto{
  display:inline-block;margin-top:1.6rem;text-decoration:none;word-break:break-word;
  font-family:var(--font-display);font-weight:800;letter-spacing:-.01em;
  font-size:clamp(1.3rem,4.4vw,2.4rem);
  background:var(--grad-ember);-webkit-background-clip:text;background-clip:text;color:transparent;
  border-bottom:3px solid var(--ember);padding-bottom:.1em;
  transition:border-color .2s ease,filter .2s ease
}
.mailto:hover{border-color:var(--white-hot);filter:brightness(1.12) drop-shadow(0 2px 18px rgba(224,127,58,.4))}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-2);color:var(--ink);border-top:1px solid var(--line);padding:clamp(3rem,6vw,4.6rem) 0 1.6rem;position:relative}
.site-footer::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--grad-heat);opacity:.5}
.site-footer__grid{
  display:grid;grid-template-columns:1.5fr 1fr 1.3fr;gap:clamp(1.8rem,4vw,3.4rem);
  padding-bottom:clamp(2.2rem,4vw,3rem);border-bottom:1px solid var(--line)
}
.site-footer__brand{display:flex;flex-direction:column;gap:1.1rem}
.site-footer__tag{color:var(--muted);font-size:.94rem;line-height:1.55;margin:0}
.site-footer__h{
  font-family:var(--font-mono);font-weight:500;font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ember);margin:0 0 1.1rem
}
.site-footer__links{list-style:none;display:grid;gap:.6rem}
.site-footer__links a{color:var(--muted);text-decoration:none;font-size:.96rem;transition:color .2s ease}
.site-footer__links a:hover{color:var(--ember)}
.site-footer__facts{font-family:var(--font-mono);font-style:normal;font-size:.86rem;line-height:1.9;color:var(--muted)}
.site-footer__facts a{color:var(--ember);text-decoration:none}
.site-footer__facts a:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer__base{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;
  padding-top:1.5rem;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.04em;color:var(--muted-2)
}
.site-footer__base p{margin:0}
.to-top{color:var(--muted);text-decoration:none;transition:color .2s ease}
.to-top:hover{color:var(--ember)}

/* ---------- Hero entré (subtil, en gång) ---------- */
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hero__crest,.hero .eyebrow,.hero__title,.hero__lead,.hero__cta,.hero__facts{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.hero .eyebrow{animation-delay:.08s}
.hero__title{animation-delay:.16s}
.hero__lead{animation-delay:.26s}
.hero__cta{animation-delay:.34s}
.hero__facts{animation-delay:.42s}

/* ---------- Responsivt ---------- */
@media (max-width:780px){
  .nav--inline{display:none}
  .nav--menu{display:block}
  .site-footer__grid{grid-template-columns:1fr;gap:2.2rem}
}
@media (max-width:560px){
  .hero__facts{gap:1.4rem 1rem}
  .tl{grid-template-columns:1fr;column-gap:0;row-gap:.35rem}
  .tl__year{text-align:left}
  .tl__text{border-left:0;padding-left:0}
  .tl__text::before{display:none}
  .tl:last-child .tl__text{border-image:none}
}

/* ---------- Respektera reducerad rörelse ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1!important;transform:none!important}
}
