/* ========== Vladin Spectra — styles.css ========== */
:root{
  --bg:#0D0D0D;
  --text:#F5F5F5;
  --muted:#CFCFCF;
  --ink:#B8B8B8;
  --line:#2E2E2E;
  --accent:#8B0000; /* temně rudá */
  --accent-2:#BA1A1A;
  --shadow:0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font:400 16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 80% -20%, rgba(139,0,0,.18), transparent 60%),
    radial-gradient(800px 400px at 10% 120%, rgba(139,0,0,.12), transparent 60%),
    var(--bg);
}

.container{width:min(1100px, 92%); margin-inline:auto}
.center{text-align:center}

.skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{position:static; width:auto; height:auto; background:#000; color:#fff; padding:.5rem .75rem}

/* Header */
.site-header{
  position:sticky; top:0; z-index:10;
  background:linear-gradient(180deg, rgba(13,13,13,.9), rgba(13,13,13,.6));
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; min-height:64px; gap:1rem}
.brand{display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--text); font-weight:700; letter-spacing:.5px}
.brand-mark{display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line); border-radius:6px; background:rgba(255,255,255,.02)}
.brand-mark-logo {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:50%; /* udělá z toho kruh */
  background:rgba(255,255,255,.02);
  overflow:hidden; /* aby obrázek nepřečuhoval */
}

.brand-mark-logo img {
  width:100%;
  height:100%;
  object-fit:cover; /* vyplní kruh */
.brand-text{text-transform:uppercase; font-size:.95rem}
}

.site-nav ul{display:flex; list-style:none; gap:1rem; margin:0; padding:0}
.site-nav a{color:var(--ink); text-decoration:none; padding:.6rem .8rem; border-radius:8px}
.site-nav a:hover, .site-nav a:focus{color:var(--text); background:rgba(255,255,255,.04)}

.nav-toggle{display:none; background:none; border:0; width:42px; height:42px; border-radius:8px; cursor:pointer}
.nav-toggle span{display:block; height:2px; background:var(--text); margin:7px; border-radius:2px}

/* Hero */
.hero{position:relative; padding:clamp(5rem, 8vw, 9rem) 0}
.hero-inner{display:grid; place-items:center; gap:1rem}
.hero h1{
  font-size:clamp(2.2rem, 8vw, 5rem);
  letter-spacing:.18em; text-align:center; margin:0; font-weight:800;
}
.kicker{opacity:.9; margin:0 0 1rem; text-align:center}
.hero .cta{display:flex; gap:.8rem}

.hero-glow{position:absolute; inset:0; pointer-events:none; background:
  radial-gradient(600px 200px at 50% 0%, rgba(138,0,0,.25), transparent 60%);
  mix-blend:screen;
}

/* Sections */
.section{padding:clamp(2.5rem, 6vw, 5rem) 0}
.section--tight{padding-top:clamp(1.5rem,4vw,3rem)}
.section--featured{background:linear-gradient(180deg, rgba(255,255,255,.02), transparent), rgba(0,0,0,.2)}

.grid{display:grid; gap:2rem}
.grid--2{grid-template-columns:repeat(2, minmax(0,1fr))}
@media (max-width: 860px){
  .grid--2{grid-template-columns:1fr}
  .site-nav{display:none; position:absolute; top:64px; right:1rem; background:#0F0F0F; padding:.5rem; border:1px solid var(--line); border-radius:10px}
  .site-nav.open{display:block}
  .nav-toggle{display:inline-grid; place-items:center}
}

.about-card, .contact-note{
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:14px; padding:1.25rem 1.25rem 1rem;
  box-shadow:var(--shadow);
}
.check{margin:.2rem 0 0; padding:0 0 0 1.2rem}
.check li{margin:.35rem 0}

/* Cards (Tvorba) */
.cards{
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr));
  gap:1rem; margin-top:1.25rem;
}
@media (max-width: 1020px){ .cards{grid-template-columns:repeat(2,1fr)} }
@media (max-width: 600px){ .cards{grid-template-columns:1fr} }

.card{
  display:flex; flex-direction:column; gap:.6rem;
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.02));
  border:1px solid var(--line); border-radius:14px; padding:1rem;
  transition:transform .2s ease, border-color .2s ease;
}
.card:hover{ transform:translateY(-3px); border-color:rgba(255,255,255,.12) }
.card .icon{width:40px; height:40px}
.card svg{width:100%; height:100%; fill:var(--muted)}
.card h3{margin:.3rem 0}
.card p{margin:0 0 .6rem 0}
.card .links{display:flex; flex-wrap:wrap; gap:.5rem}

/* Feature */
.feature{display:grid; grid-template-columns: 280px 1fr; gap:1.25rem; align-items:center; border:1px solid var(--line); border-radius:16px; padding:1rem; background:rgba(255,255,255,.03)}
.feature-media{aspect-ratio:1/1; background:linear-gradient(135deg, rgba(139,0,0,.18), rgba(255,255,255,.02)); border-radius:12px; display:grid; place-items:center}
.mock-cover {
  width: 100%;
  height: 100%;
  border-radius: 12px;   /* pokud chceš mít zaoblené rohy */
  overflow: hidden;      /* obrázek nepřečuhuje ven */
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.02); /* fallback, kdyby se nenačetl */
}

.mock-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;   /* vyplní prostor a zachová poměr stran */
}
.feature-body em {
  color: red;
  font-weight: 300;
}
.feature .links{display:flex; gap:.6rem; margin-top:.6rem}
@media (max-width:860px){ .feature{grid-template-columns:1fr} }

/* Buttons */
.btn{
  --b: rgba(255,255,255,.08);
  display:inline-flex; align-items:center; justify-content:center;
  height:42px; padding:0 16px; border-radius:10px; border:1px solid var(--b);
  text-decoration:none; color:var(--text); font-weight:600; letter-spacing:.02em;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
  will-change:transform;
}
.btn:hover{ transform:translateY(-1px) }
.btn--accent{ background:linear-gradient(180deg, var(--accent), var(--accent-2)); border-color:rgba(0,0,0,.4) }
.btn--accent:hover{ filter:brightness(1.05) }
.btn--ghost{ background:transparent }
.btn--ghost:hover{ background:rgba(255,255,255,.06) }
.btn i {
  font-size: 20px;
  line-height: 1;
}

/* Footer */
.site-footer{border-top:1px solid var(--line); padding:1.25rem 0; background:rgba(255,255,255,.02)}
.footer-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap}
.social{display:flex; gap:.75rem; list-style:none; margin:0; padding:0}
.social-link{display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--line); border-radius:9px; text-decoration:none}
.social-link svg{width:20px; height:20px; fill:var(--ink)}
.social-link:hover{background:rgba(255,255,255,.05)}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(12px); transition:opacity .6s ease, transform .6s ease}
.reveal.is-visible{opacity:1; transform:none}

/* Focus styles */
:where(a, button):focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:8px }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{transition:none}
}
