:root {
    --bg: #0b1020;
    --card: #e5e8ef;
    --text: #e9edf5;
    --muted: #6f737e;
    --brand-blue: #041a43;
    --brand-orange: #ff7f0e;
    --radius: 16px;
    --maxw: 960px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0; 
    font: 16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
    color: var(--text); 
    background: #ffe066;
   background-image: 
    repeating-radial-gradient(circle, 
      rgba(0,0,0,0.1) 0, 
      rgba(0,0,0,0.1) 2px, 
      transparent 2px, 
      transparent 6px
    );
  
  background-size: 20px 20px; /* spacing of dots */
}
a { color: #fff; text-decoration: none; }
#dataprotection {color: var(--muted);}
a:hover { text-decoration: underline; }
.skip-link { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { left: 1rem; top: 1rem; width: auto; height: auto; padding:.5rem .75rem; background:#fff; color:#000; border-radius:.5rem; }

header {
    position: sticky; top: 0; z-index: 10; backdrop-filter: blur(6px);
    background: #000; 
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.nav {
    margin: 0 auto; max-width: var(--maxw); display: flex; align-items: center; gap: 1rem;
    padding: .75rem 1rem;
}
.brand {
    display:flex; align-items:center; gap:.6rem; font-weight: 700; letter-spacing:.3px;
}
.logo {
    width: 28px; height: 28px; border-radius: 8px; display:inline-grid; place-items:center; color:#fff; font-weight:800;
    background: linear-gradient(135deg, var(--brand-blue) 0%, var(--brand-blue) 48%, var(--brand-orange) 52%, var(--brand-orange) 100%);
}
.nav a { opacity:.9; }
.nav a:hover { opacity:1; }
.spacer { flex: 1; }
.toc { display:flex; gap:.75rem; flex-wrap: wrap; }

main { max-width: var(--maxw); margin: 0 auto; padding: 2rem 1rem 4rem; }
/*section { 
    background: var(--card); 
    border: 1px solid rgba(255,255,255,.08); 
    border-radius: var(--radius); 
    padding: 1.25rem; 
    margin: 1rem 0 1.2rem; 
    color:#000; 
}*/

section {
  background-color: #99b0ff; /* bright, playful */
  border: 5px solid #000;    /* thick black outline */
  border-radius: 15px;
  padding: 20px;
  margin: 20px 0;
  transform: rotate(-1deg); /* slight tilt for cartoon feel */
  box-shadow: 8px 8px 0 #000;
  font-size: 1.2rem;
  color: #333;
  animation: popIn 0.6s ease;
}

@keyframes popIn {
  0% { transform: scale(0.5) rotate(-10deg); opacity: 0; }
  70% { transform: scale(1.1) rotate(2deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); }
}

.wiggle {
  display: inline-block;
  animation: wiggleAnim 0.5s ease-in-out infinite;
}

@keyframes wiggleAnim {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}

h1 { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.2rem); margin: 1.2rem 0 .5rem; color:#000; }
h2 { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.6rem); margin: 0 0 .5rem; }
h3 { font-size: 1.05rem; margin: 1rem 0 .25rem; color: var(--brand-blue); }
p { margin: .5rem 0; }

.source{color:#888;}
.badge { display:inline-block; padding:.25rem .5rem; border-radius:999px; font-size:1.2rem; background:linear-gradient(90deg, var(--brand-blue), var(--brand-orange)); color:#fff; }

details { border-radius: 12px; border: 1px solid rgba(0,0,0,.1); background:rgba(255, 255, 255, .8); padding:.75rem 1rem; }
details + details { margin-top: .6rem; }
summary { cursor: pointer; font-weight: 600; }

footer {    
    text-align: center;
    color: #000; 
}

.notice {
    border-left: 4px solid var(--brand-blue); padding: .75rem 1rem; border-radius: 12px; background: rgba(15, 98, 254, .06);
}
.grid { display:grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 800px) {
    .grid { grid-template-columns: 1fr 1fr; }
}

/* Új stílus a választási kártyákhoz */
.election-grid { display:grid; grid-template-columns: 1fr; gap:1rem; max-width:var(--maxw); margin:2rem auto; padding:0 1rem; }
@media(min-width:800px){ .election-grid { grid-template-columns: 1fr 1fr; } }
.party-card { 
    background:var(--card); 
    padding:1rem; display:flex; 
    justify-content: center; 
    flex-direction:column; 
    align-items:center;  
    text-align: center;
    width:97%;
    border: 5px solid #000;
    border-radius: 20px;
    box-shadow: 10px 10px 0 #000;
    transition: transform 0.2s;
    position: relative;
    animation: popIn 0.6s ease;
}

.party-card:hover {
    transform: scale(1.05) rotate(-2deg);
  }

  .tooltip {
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
    background: #ffcc00;
    color: #000;
    padding: 8px 12px;
    border: 3px solid #000;
    border-radius: 10px;
    font-size: 2rem;
    display: none;
  }

  .party-card:hover .tooltip {
    display: block;
  }

  .tooltip::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 12px 10px 0 10px;
    border-style: solid;
    border-color: #ffcc00 transparent transparent transparent;
  }

.party-content {
    display: flex;
    flex-direction: column;    /* Elemsor elrendezése függőlegesen */
    align-items: center;       /* Belső elemek középre igazítása */
    justify-content: center;   /* Ha kell, vertikálisan is */
  }
.party-logo {
    width: 100px;        /* kör mérete */
    height: 100px;
    border-radius: 50%;  /* kör alak */
    background: #fff;    /* fehér háttér */
    border: 3px solid #000; /* fehér szegély */
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;    /* hogy a kép ne lógjon ki */
  }
  .party-logo img {
    max-width: 95%;   /* arányosan kisebb kép */
    height: auto;
  }
.party-name { margin:.5rem 0; }
.vote-button { margin-top:.5rem; padding:.5rem 1rem; border:none; border-radius:var(--radius); font-weight:600; cursor:pointer; }
.vote-button-tisza { background:var(--brand-blue); color:#fff; }
.vote-button-fidesz { background:var(--brand-orange); color:#fff; }

.flash{margin:12px 0;padding:12px;border-radius:12px}
.flash.success{background:rgba(16,185,129,.7);border:1px solid rgba(16,185,129,.99)}
.flash.error{background:rgba(239,68,68,.7);border:1px solid rgba(239,68,68,.99)}
.flash.info{background:rgba(255,1,1,.7);border:1px solid rgba(255,1,1,.99)}

#tisza-card { background: #84caea; color:#000;}
#fidesz-card {background: #ff9f09; color:#000;}

#countdown-bar {
    background: rgba(35, 219, 164, 0.9);
    color: #000;
    padding: 0.7em 0;
    text-align: center;
    font-size: 1.2em;
    letter-spacing: 0.03em;
}

.articles-preview-grid {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
          gap: 2rem;
          margin: 2rem 0;
 }
.article-preview-card {
          background: var(--card, #f8f8f8);
          border-radius: 8px;
          box-shadow: 0 2px 8px rgba(0,0,0,0.06);
          padding: 1.2rem;
          position: relative;
          display: flex;
          flex-direction: column;
          align-items: flex-start;
}
.article-thumb {
          width: 100%;
          height: 140px;
          object-fit: cover;
          border-radius: 6px;
          margin-bottom: 0.7em;
          background: transparent;
}
