/* Nil RTV — tasarım canvas'ından çıkarılan hover/animasyon/responsive katmanı.
   Bileşen stilleri HTML içinde inline durur (tasarımla bire bir eşleşsin diye);
   burada yalnız inline yazılamayan şeyler var. */

html, body { margin: 0; padding: 0; background: #0B0E12; }
* { box-sizing: border-box; }
img { max-width: 100%; }
a { color: #2AB4FD; text-decoration: none; }
a:hover { color: #7CD0FF; }
::selection { background: #FD790A; color: #0B0E12; }

@keyframes nilPulse { 0%,100% { opacity:1; transform:scale(1) } 50% { opacity:.35; transform:scale(.82) } }
@keyframes nilFade  { from { opacity:0; transform:translateY(10px) } to { opacity:1; transform:none } }
@keyframes nilTileOut { 0% { opacity:1; transform:scale(1) } 70% { opacity:.35 } 100% { opacity:0; transform:scale(.72) } }

.nilRail::-webkit-scrollbar { height: 6px }
.nilRail::-webkit-scrollbar-thumb { background: rgba(255,255,255,.14); border-radius: 99px }

:focus-visible { outline: 2px solid #2AB4FD; outline-offset: 2px; border-radius: 6px; }

/* ---- hover durumları (tasarımdaki style-hover karşılıkları) ---- */
.nl-toplink:hover      { color:#C6CDD6 }
.nl-nav a:hover        { background:rgba(255,255,255,.06); color:#E9EDF2 }
.nl-dd a:hover         { background:rgba(255,255,255,.06); color:#fff }
.nl-icon:hover         { border-color:rgba(255,255,255,.28); color:#fff }
.nl-live-btn:hover     { background:#FF2A33; color:#fff }
.nl-btn-white:hover    { background:#E9EDF2; color:#0B0E12 }
.nl-btn-orange:hover   { background:#FF8C2B; color:#0B0E12 }
.nl-btn-ghost:hover    { border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.05); color:#E9EDF2 }
.nl-card               { transition: border-color .16s ease, transform .16s ease }
.nl-card:hover         { border-color:rgba(255,255,255,.2); transform:translateY(-3px) }
.nl-plat               { transition: border-color .16s ease, background .16s ease }
.nl-plat:hover         { border-color:rgba(255,255,255,.2); background:#151A22 }
.nl-flink:hover        { color:#fff }
.nl-legal:hover        { color:#A2ABB7 }
.nl-social:hover       { border-color:rgba(255,255,255,.3); color:#fff }
.nl-other:hover        { color:#fff }
.nl-thumb              { transition: border-color .2s ease, opacity .2s ease }
.nl-vid:hover .nl-vid-title { color:#fff }
.nl-more:hover         { color:#fff }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important }
}

/* ---- açılır menüler ---- */
.nl-has-dd { position: relative }
.nl-dd { display: none }
.nl-has-dd:hover > .nl-dd,
.nl-has-dd:focus-within > .nl-dd,
.nl-has-dd[data-open="1"] > .nl-dd { display: block; animation: nilFade .14s ease }

/* ---- mobil menü ---- */
.nl-burger { display: none }
.nl-mobile { display: none }
.nl-mobile[data-open="1"] { display: block }

@media (max-width: 1100px) {
  .nl-nav { display: none !important }
  .nl-burger { display: flex !important }
  .nl-hero-thumbs { display: none !important }
  .nl-hero-grid { grid-template-columns: minmax(0,1fr) !important }
}

@media (max-width: 900px) {
  .nl-ekip-grid    { grid-template-columns: minmax(0,1fr) !important }
  .nl-detay-grid   { grid-template-columns: minmax(0,1fr) !important }
  .nl-footer-grid  { grid-template-columns: repeat(2, minmax(0,1fr)) !important }
  .nl-footer-brand { grid-column: 1 / -1 }
}

@media (max-width: 640px) {
  .nl-topbar-left   { display: none !important }
  .nl-topbar-inner  { justify-content: flex-end !important }
  .nl-footer-grid   { grid-template-columns: minmax(0,1fr) !important }
  .nl-footer-bottom { flex-direction: column !important; align-items: flex-start !important; gap: 14px !important }

  /* Hero mobilde: görsel üstte 16:9 banner, metin normal akışta altında. */
  .nl-hero       { height: auto !important; min-height: 0 !important; overflow: visible !important }
  .nl-hero-media { position: relative !important; inset: auto !important; aspect-ratio: 16/9 }
  /* Yalnız ana sayfa hero'su: metin görselin altına indiği icin koyuluk gerekmiyor,
     sadece alt kenarı sayfa zeminine bağlayan geçiş kalır.
     Program detay hero'sunda metin görselin ÜSTÜNDE durduğu için oraya dokunulmaz. */
  .nl-hero-media .nl-hero-scrim { background: linear-gradient(0deg,#0B0E12 1%,rgba(11,14,18,.25) 60%,rgba(11,14,18,.5) 100%) !important }
  .nl-hero-media .nl-hero-scrim + .nl-hero-scrim { display: none }
  .nl-hero-grid  { height: auto !important; padding-top: 26px }
  .nl-hero-copy  { padding-bottom: 8px !important }
  .nl-hero-copy h1 { font-size: 30px !important }
}

/* ---- serbest sayfalar (panel editöründen gelen içerik) ---- */
.nl-prose { color: #C6CDD6; font-size: 16.5px; line-height: 1.7 }
.nl-prose > div, .nl-prose p { margin: 0 0 18px }
.nl-prose h2 { margin: 34px 0 12px; font-family: 'Archivo', sans-serif; font-size: 24px; font-weight: 700; letter-spacing: -.02em; color: #fff }
.nl-prose h3 { margin: 26px 0 10px; font-family: 'Archivo', sans-serif; font-size: 19px; font-weight: 700; color: #fff }
.nl-prose h4 { margin: 20px 0 8px; font-family: 'Archivo', sans-serif; font-size: 16px; font-weight: 700; color: #fff }
.nl-prose strong, .nl-prose b { color: #E9EDF2 }
.nl-prose a { color: #2AB4FD; text-decoration: underline; text-underline-offset: 3px }
.nl-prose ul, .nl-prose ol { margin: 0 0 18px; padding-left: 24px }
.nl-prose li { margin: 6px 0 }
.nl-prose blockquote { margin: 22px 0; padding: 4px 0 4px 18px; border-left: 3px solid #FD790A; color: #AEB6C1 }
.nl-prose pre { margin: 0 0 18px; padding: 14px 16px; background: #12161D; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; overflow-x: auto; font-size: 14px }
.nl-prose hr { border: 0; border-top: 1px solid rgba(255,255,255,.1); margin: 28px 0 }
.nl-prose img { max-width: 100%; height: auto; border-radius: 10px; display: block }
.nl-prose figure, .nl-prose .attachment { margin: 22px 0 }
.nl-prose figcaption, .nl-prose .attachment__caption { margin-top: 8px; font-size: 13px; color: #79828F; text-align: center }
.nl-prose .attachment__caption:empty { display: none }
.nl-prose .embed { position: relative; aspect-ratio: 16/9; margin: 22px 0; border-radius: 12px; overflow: hidden; background: #000; border: 1px solid rgba(255,255,255,.09) }
.nl-prose .embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0 }
.nl-prose table { width: 100%; border-collapse: collapse; margin: 0 0 18px; font-size: 15px }
.nl-prose th, .nl-prose td { padding: 9px 12px; border-bottom: 1px solid rgba(255,255,255,.08); text-align: left }
.nl-prose th { color: #fff }
