:root{
  --red:#cf102d;
  --red-dark:#9e0b22;
  --yellow:#ffd400;
  --ink:#101010;
  --paper:#fff;
  --soft:#f4f4f4;
  --line:#dedede;
  --muted:#666;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  background:#eee;
  color:var(--ink);
}
a{color:inherit;text-decoration:none}
.topbar{
  background:var(--paper);
  border-bottom:1px solid #cfcfcf;
  position:sticky;
  top:0;
  z-index:10;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.topline{
  max-width:1180px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 16px;
}
.brand{
  display:flex;
  align-items:flex-end;
  gap:10px;
}
.brand-main{
  display:inline-block;
  background:var(--yellow);
  color:#111;
  font-weight:900;
  letter-spacing:-1.5px;
  font-size:38px;
  line-height:1;
  padding:5px 10px 4px;
  border-left:12px solid var(--red);
}
.brand-sub{
  font-size:12px;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:700;
  padding-bottom:4px;
}
.nav{
  display:flex;
  align-items:center;
  gap:16px;
  font-size:14px;
  font-weight:700;
}
.nav a{border-bottom:3px solid transparent;padding:8px 0}
.nav a:hover{border-bottom-color:var(--red)}
.party-switch{
  display:flex;
  align-items:center;
  gap:8px;
}
select,input,textarea,button{
  font:inherit;
}
select,input,textarea{
  border:1px solid #bbb;
  border-radius:3px;
  background:white;
  padding:8px;
}
button{
  border:0;
  background:var(--red);
  color:white;
  font-weight:800;
  padding:10px 14px;
  border-radius:4px;
  cursor:pointer;
}
button.muted{background:#333}
.ticker{
  background:#111;
  color:#fff;
  display:flex;
  gap:12px;
  justify-content:center;
  padding:7px 12px;
  font-size:14px;
}
.ticker strong{
  background:var(--red);
  padding:2px 6px;
}
.page{
  max-width:1180px;
  margin:0 auto;
  background:var(--paper);
  min-height:75vh;
  padding:22px 16px 40px;
}
.edition-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  border-bottom:4px solid #111;
  margin-bottom:18px;
  padding-bottom:10px;
}
.kicker{
  color:var(--red);
  text-transform:uppercase;
  font-weight:900;
  margin:0 0 4px;
}
.edition-head h1{
  margin:0;
  font-size:24px;
}
.datebox{
  background:var(--soft);
  padding:10px 12px;
  border-left:4px solid var(--red);
  font-weight:800;
}
.front-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:18px;
}
.lead-card{
  background:#111;
  color:white;
}
.lead-card img{
  width:100%;
  height:430px;
  object-fit:cover;
  display:block;
}
.lead-body{
  padding:18px;
}
.lead-body h2{
  font-size:42px;
  line-height:.98;
  letter-spacing:-1.3px;
  margin:8px 0 10px;
}
.lead-body p{
  font-size:18px;
  line-height:1.35;
}
.tag{
  display:inline-block;
  background:var(--yellow);
  color:#111;
  font-weight:900;
  padding:4px 8px;
  text-transform:uppercase;
  font-size:12px;
}
.side-stack{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.side-card{
  border-bottom:1px solid var(--line);
  padding-bottom:14px;
}
.side-card a{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:12px;
}
.side-card img{
  width:120px;
  height:90px;
  object-fit:cover;
}
.side-card h3{
  margin:3px 0 0;
  font-size:20px;
  line-height:1.08;
}
.time{
  color:var(--red);
  font-size:12px;
  font-weight:900;
}
.news-list{
  margin-top:28px;
  border-top:4px solid #111;
}
.news-list h2{
  font-size:22px;
}
.list-row{
  border-top:1px solid var(--line);
}
.list-row a{
  display:grid;
  grid-template-columns:48px 1fr auto;
  gap:12px;
  align-items:center;
  padding:13px 0;
}
.list-row h3{
  margin:0;
  font-size:20px;
}
.score{
  background:#111;
  color:white;
  font-weight:900;
  text-align:center;
  padding:6px 0;
}
.arrow{
  color:var(--red);
  font-weight:900;
}
.article-page{
  max-width:790px;
  margin:0 auto;
}
.article-meta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:13px;
  font-weight:700;
  margin-bottom:14px;
}
.article-page h1{
  font-size:48px;
  line-height:.98;
  letter-spacing:-1.6px;
  margin:0 0 14px;
}
.article-ingress{
  font-size:22px;
  line-height:1.35;
  font-weight:700;
  color:#333;
}
.article-image{
  margin:24px 0;
}
.article-image img{
  width:100%;
  height:auto;
  display:block;
}
.article-image figcaption{
  color:var(--muted);
  font-size:13px;
  margin-top:6px;
}
.article-body p{
  font-family:Georgia, "Times New Roman", serif;
  font-size:20px;
  line-height:1.65;
  margin:0 0 20px;
}
.article-source{
  border-top:1px solid var(--line);
  margin-top:26px;
  padding-top:14px;
  color:var(--muted);
}
.article-source a{
  color:var(--red-dark);
  font-weight:700;
}
.tips-page{
  max-width:720px;
  margin:0 auto;
}
.tips-page h1{
  font-size:42px;
  margin:0 0 12px;
}
.tips-form{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.tips-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-weight:800;
}
.notice{
  background:#e7ffe9;
  border-left:5px solid #168a27;
  padding:12px;
  margin:18px 0;
  font-weight:800;
}
.empty{
  text-align:center;
  padding:60px 20px;
}
.footer{
  max-width:1180px;
  margin:0 auto;
  padding:20px 16px 40px;
  color:#555;
  font-size:13px;
}
.gate{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.68);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:100;
}
.gate-card{
  width:min(440px, calc(100vw - 28px));
  background:white;
  padding:24px;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
  border-top:8px solid var(--red);
}
.gate-card h2{
  margin:0 0 10px;
  font-size:28px;
}
.gate-card select{
  width:100%;
  margin:10px 0;
}
.cookie-note{
  font-size:13px;
  color:#555;
  background:#f5f5f5;
  padding:10px;
  margin:10px 0 14px;
}
.gate-buttons{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
@media(max-width:800px){
  .topline{align-items:flex-start;flex-direction:column}
  .brand-main{font-size:30px}
  .nav{flex-wrap:wrap}
  .front-grid{grid-template-columns:1fr}
  .lead-card img{height:280px}
  .lead-body h2{font-size:32px}
  .side-card a{grid-template-columns:96px 1fr}
  .side-card img{width:96px;height:74px}
  .article-page h1{font-size:36px}
  .article-ingress{font-size:19px}
  .article-body p{font-size:18px}
}

.gate-buttons button{
  flex:1;
  min-width:0;
  height:46px;
}
#acceptParty{
  animation: slowPulse 1.8s ease-in-out infinite;
}
@keyframes slowPulse{
  0%,100%{ transform:scale(1); box-shadow:0 0 0 rgba(207,16,45,0); }
  50%{ transform:scale(1.025); box-shadow:0 0 18px rgba(207,16,45,.35); }
}

body.gate-open .topbar,
body.gate-open .page,
body.gate-open .footer{
  filter: blur(4px);
}

.gate{
  backdrop-filter: blur(3px);
}

.gate-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.gate-buttons button{
  width:100%;
  min-width:0;
  height:48px;
}

#acceptParty{
  grid-column:2;
  grid-row:1;
  background:var(--yellow);
  color:#111;
  animation: slowPulse 1.8s ease-in-out infinite;
}

#denyParty{
  grid-column:1;
  grid-row:1;
}

@keyframes slowPulse{
  0%,100%{ transform:scale(1); box-shadow:0 0 0 rgba(255,212,0,0); }
  50%{ transform:scale(1.025); box-shadow:0 0 18px rgba(255,212,0,.45); }
}

.gate[hidden]{
  display:none !important;
}


.ticker{
  overflow:hidden;
  align-items:center;
}

.ticker-marquee{
  position:relative;
  overflow:hidden;
  flex:1;
  white-space:nowrap;
}

.ticker-track{
  display:inline-flex;
  align-items:center;
  gap:34px;
  min-width:max-content;
  padding-left:100%;
  animation:tickerScroll 84s linear infinite;
}

.ticker-track a,
.ticker-track span{
  color:#fff;
  font-size:14px;
}

.ticker-track a:hover{
  text-decoration:underline;
}

.ticker-track a::after{
  content:"•";
  color:#888;
  margin-left:34px;
}

@keyframes tickerScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

.edition-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  border-bottom:4px solid #111;
  margin-bottom:18px;
  padding-bottom:10px;
}

.edition-head h1{
  margin:0;
  font-size:24px;
  font-weight:900;
  letter-spacing:-0.4px;
}

@media(max-width:800px){
  .ticker-track{
    gap:22px;
    animation-duration:64s;
  }
  .ticker-track a::after{
    margin-left:22px;
  }
}

.news-list{
  max-width:100%;
}

.list-row a{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) auto !important;
  gap:18px !important;
  align-items:center !important;
  padding:14px 0 !important;
}

.list-row h3{
  margin:0 !important;
  font-size:22px !important;
  line-height:1.15 !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

.list-row .arrow{
  white-space:nowrap !important;
}

.edition-head{
  background:linear-gradient(90deg, #111 0%, #111 72%, var(--red) 72%, var(--red) 100%);
  color:white;
  padding:12px 16px;
  border-bottom:0;
  margin-bottom:20px;
  align-items:center;
}

.edition-head h1{
  color:white;
  font-size:26px;
  text-transform:uppercase;
  letter-spacing:.2px;
}

.edition-head h1::before{
  content:"";
  display:inline-block;
  width:10px;
  height:26px;
  background:var(--yellow);
  margin-right:10px;
  vertical-align:-5px;
}

.edition-head .datebox{
  background:white;
  color:#111;
  border-left:0;
  font-size:15px;
}

.news-list h2{
  display:inline-block;
  background:#111;
  color:white;
  padding:9px 14px;
  margin:0 0 10px;
  font-size:20px;
  text-transform:uppercase;
  letter-spacing:.2px;
  border-left:10px solid var(--red);
  box-shadow:inset 0 -4px 0 var(--yellow);
}

.news-list{
  border-top:4px solid #111;
  padding-top:12px;
}

.edition-head{
  background:white !important;
  color:#111 !important;
  border-bottom:4px solid #111 !important;
  padding:0 0 10px 0 !important;
  margin-bottom:20px !important;
  align-items:end !important;
}

.edition-head h1{
  color:#111 !important;
  font-size:26px !important;
  text-transform:none !important;
  letter-spacing:-0.3px !important;
  margin:0 !important;
  font-weight:900 !important;
  border-left:10px solid var(--red);
  padding-left:12px;
}

.edition-head h1::before{
  content:none !important;
}

.edition-head .datebox{
  background:var(--soft) !important;
  color:#111 !important;
  border-left:4px solid var(--red) !important;
  font-size:15px !important;
  padding:10px 12px !important;
  font-weight:800 !important;
}

.news-list h2{
  display:inline-block !important;
  background:#111 !important;
  color:white !important;
  padding:9px 14px !important;
  margin:0 0 10px !important;
  font-size:20px !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  border-left:10px solid var(--red) !important;
  box-shadow:none !important;
}

.news-list{
  border-top:4px solid #111 !important;
  padding-top:12px !important;
}


/* Konsekvent röd markering */
:root{
  --section-red-strip:8px;
}

.edition-head h1{
  border-left-width:var(--section-red-strip) !important;
}

.edition-head .datebox{
  border-left-width:var(--section-red-strip) !important;
}

.news-list h2{
  border-left-width:var(--section-red-strip) !important;
}

.ticker{
  justify-content:flex-start !important;
  padding-left:max(16px, calc((100vw - 1180px) / 2 + 16px)) !important;
  padding-right:max(16px, calc((100vw - 1180px) / 2 + 16px)) !important;
}

.ticker strong{
  flex:0 0 auto;
  margin-left:0 !important;
}


.party-switch{
  gap:7px !important;
}

.party-arrow{
  color:#111;
  font-size:22px;
  font-weight:900;
  line-height:1;
  display:inline-block;
  transform:translateY(1px);
  animation:partyArrowNudge 3.4s ease-in-out infinite;
}

@keyframes partyArrowNudge{
  0%, 68%, 100%{
    transform:translateX(0) translateY(1px);
  }
  76%{
    transform:translateX(5px) translateY(1px);
  }
  84%{
    transform:translateX(0) translateY(1px);
  }
  92%{
    transform:translateX(3px) translateY(1px);
  }
}

.party-arrow{
  font-size:26px !important;
  font-weight:900 !important;
  font-family:Arial Black, Impact, Arial, sans-serif !important;
  transform:translateY(1px) scaleX(1.25) !important;
  animation:partyArrowGlide 4.8s ease-in-out infinite !important;
}

@keyframes partyArrowGlide{
  0%{
    transform:translateX(0) translateY(1px) scaleX(1.25);
  }
  50%{
    transform:translateX(7px) translateY(1px) scaleX(1.25);
  }
  100%{
    transform:translateX(0) translateY(1px) scaleX(1.25);
  }
}


.party-switch{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  position:relative !important;
}

.party-arrow{
  color:#111 !important;
  font-size:34px !important;
  font-weight:900 !important;
  font-family:Impact, "Arial Black", Arial, sans-serif !important;
  line-height:1 !important;
  display:inline-block !important;
  animation:partyArrowPoint 2.6s ease-in-out infinite !important;
  transform-origin:center !important;
}

@keyframes partyArrowPoint{
  0%,100%{
    transform:translateX(0) scaleX(1.35);
  }
  50%{
    transform:translateX(-8px) scaleX(1.35);
  }
}

.party-note{
  display:inline-block !important;
  margin-left:2px !important;
  color:#111 !important;
  font-family:"Comic Sans MS", "Bradley Hand", "Segoe Print", cursive !important;
  font-size:17px !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  transform:rotate(-8deg) skewY(-3deg) translateY(-5px) !important;
  letter-spacing:.2px !important;
}

.party-arrow{
  animation:none !important;
}


.brand-sub{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:1px !important;
  line-height:1.05 !important;
}

.brand-sub span:first-child{
  font-size:12px !important;
  font-weight:900 !important;
}

.brand-sub span:last-child{
  font-size:12px !important;
  font-weight:800 !important;
  color:#555 !important;
}

.footer a{
  color:var(--red-dark);
  font-weight:800;
  text-decoration:underline;
}

.ticker-track{
  animation-duration:120s !important;
}

@media(max-width:800px){
  .ticker-track{
    animation-duration:90s !important;
  }
}


.footer{
  background:#f7f7f7;
  border-top:4px solid #111;
  margin-top:0;
  padding:26px 16px 46px;
  color:#333;
}

.footer-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
  max-width:1180px;
  margin:0 auto;
}

.footer h3{
  margin:0 0 8px;
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.2px;
  border-left:var(--section-red-strip, 8px) solid var(--red);
  padding-left:10px;
}

.footer p{
  margin:0;
  font-size:14px;
  line-height:1.5;
}

.footer a{
  color:var(--red-dark);
  font-weight:800;
  text-decoration:underline;
}

@media(max-width:800px){
  .footer-grid{
    grid-template-columns:1fr;
  }
}


.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

.error-notice{
  background:#ffe7e7;
  border-left-color:#b00020;
}


.mailto-button{
  display:inline-block;
  background:var(--red);
  color:white !important;
  font-weight:900;
  padding:12px 16px;
  border-radius:4px;
  text-decoration:none !important;
}

.mailto-button:hover{
  background:var(--red-dark);
}


/* Partifärger: visuell referens för valt perspektiv */
body.party-socialdemokraterna{
  --party-color:#C8102E;
  --party-text:#fff;
}

body.party-moderaterna{
  --party-color:#005BAC;
  --party-text:#fff;
}

body.party-sverigedemokraterna{
  --party-color:#DDDD00;
  --party-text:#111;
}

body.party-vansterpartiet{
  --party-color:#B00020;
  --party-text:#fff;
}

body.party-miljopartiet{
  --party-color:#2E7D32;
  --party-text:#fff;
}

body.party-centerpartiet{
  --party-color:#0B8F3A;
  --party-text:#fff;
}

body.party-liberalerna{
  --party-color:#006AB3;
  --party-text:#fff;
}

body.party-kristdemokraterna{
  --party-color:#003F87;
  --party-text:#fff;
}

body.party-piratpartiet{
  --party-color:#6A1B9A;
  --party-text:#fff;
}

#partyTopSelect{
  background:var(--party-color, #111) !important;
  color:var(--party-text, #fff) !important;
  border:2px solid var(--party-color, #111) !important;
  font-weight:900 !important;
  box-shadow:0 1px 0 rgba(0,0,0,.2) !important;
}

#partyTopSelect:focus{
  outline:3px solid rgba(0,0,0,.18) !important;
  outline-offset:2px !important;
}

.edition-head h1{
  border-left-color:var(--party-color, var(--red)) !important;
}

.news-list h2{
  border-left-color:var(--party-color, var(--red)) !important;
}

.article-meta span:first-child{
  background:var(--party-color, #111);
  color:var(--party-text, #fff);
  padding:4px 7px;
  border-radius:3px;
  font-weight:900;
}

/* SD-gul behöver tydligare ram för att inte se blek ut */
body.party-sverigedemokraterna #partyTopSelect,
body.party-sverigedemokraterna .article-meta span:first-child{
  border:2px solid #111 !important;
}

/* Justerade partifärger */
body.party-centerpartiet{
  --party-color:#36B24A !important;
  --party-text:#fff !important;
}

body.party-miljopartiet{
  --party-color:#1F6F2A !important;
  --party-text:#fff !important;
}

body.party-moderaterna{
  --party-color:#003B73 !important;
  --party-text:#fff !important;
}

body.party-liberalerna{
  --party-color:#2DA8FF !important;
  --party-text:#111 !important;
}

body.party-kristdemokraterna{
  --party-color:#5F718A !important;
  --party-text:#fff !important;
}

/* Partifärg även på datumstrecket */
.edition-head .datebox{
  border-left-color:var(--party-color, var(--red)) !important;
}

/* Partifärg även på loggans sidostreck */
.brand-main{
  border-left-color:var(--party-color, var(--red)) !important;
}

/* L behöver mörk text och tydligare kant för läsbarhet */
body.party-liberalerna #partyTopSelect,
body.party-liberalerna .article-meta span:first-child{
  border:2px solid #111 !important;
}

/* Center ljusgrön behöver också lite kant i dropdown */
body.party-centerpartiet #partyTopSelect{
  border:2px solid #0d5f20 !important;
}

/* Partifärg på JUST NU och footerns sektionsmarkörer */
.ticker strong{
  background:var(--party-color, var(--red)) !important;
  color:var(--party-text, #fff) !important;
}

.footer h3{
  border-left-color:var(--party-color, var(--red)) !important;
}

/* SD-gul behöver svart text även i JUST NU */
body.party-sverigedemokraterna .ticker strong{
  border:1px solid #111;
}

/* Liberalerna-ljusblå behöver svart text */
body.party-liberalerna .ticker strong{
  border:1px solid #111;
}

/* Ta bort svarta ränder/kanter runt partifärgade element */
#partyTopSelect,
body.party-sverigedemokraterna #partyTopSelect,
body.party-sverigedemokraterna .article-meta span:first-child,
body.party-liberalerna #partyTopSelect,
body.party-liberalerna .article-meta span:first-child,
body.party-centerpartiet #partyTopSelect,
body.party-sverigedemokraterna .ticker strong,
body.party-liberalerna .ticker strong{
  border-color:var(--party-color, var(--red)) !important;
}

#partyTopSelect{
  border:0 !important;
}


.brand-main{
  display:inline-flex;
  align-items:flex-end;
  gap:0;
}

.brand-satir{
  font-weight:1000;
}

.brand-bladet{
  font-weight:700;
}

.brand-main{
  font-weight:400 !important;
}

.brand-main .brand-satir{
  font-weight:1000 !important;
  -webkit-text-stroke:.35px currentColor;
}

.brand-main .brand-bladet{
  font-weight:500 !important;
  -webkit-text-stroke:0 !important;
}

.error-page{
  max-width:720px;
  margin:40px auto 70px;
  padding:28px;
  border-top:6px solid var(--party-color, var(--red));
  background:#f7f7f7;
}

.error-code{
  font-size:72px;
  line-height:1;
  font-weight:900;
  letter-spacing:-3px;
  color:var(--party-color, var(--red));
}

.error-page h1{
  margin:8px 0 12px;
  font-size:38px;
  letter-spacing:-1px;
}
