/* ===== tn content stylesheet ===== */

main{
  display:block;
  max-width:1280px;
  margin:0 auto;
  padding:0 1.25rem 4rem;
}

main h1,
main h2,
main h3{
  font-family:var(--font-heading);
  color:var(--color-text);
  line-height:1.2;
  margin:0 0 1rem;
}

main h1{
  font-size:clamp(2rem,5vw,3.25rem);
}

main h2{
  font-size:clamp(1.5rem,3.5vw,2.25rem);
}

main h3{
  font-size:clamp(1.1rem,2.5vw,1.4rem);
}

main p{
  color:var(--muted-70);
  margin:0 0 1rem;
  font-size:1.05rem;
  max-width:70ch;
}

main strong{
  color:var(--color-text);
}

main .tn-note{
  font-size:0.88rem;
  color:var(--muted-50);
  font-style:italic;
}

/* ===== Hero ===== */
main .tn-hero{
  padding:3.5rem 0 2.5rem;
  border-bottom:1px solid var(--glass-border);
}
main .tn-hero__inner{
  max-width:900px;
}
main .tn-hero p{
  font-size:1.15rem;
  max-width:75ch;
}
main .tn-hero__inner--split{
  max-width:100%;
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  align-items:center;
}
main .tn-hero__content{
  max-width:900px;
}
main .tn-hero__media img{
  width:100%;
  height:auto;
  border-radius:var(--radius);
  max-width:100%;
}
main .tn-hero__ctas{
  display:flex;
  gap:0.85rem;
  flex-wrap:wrap;
  margin-top:1.5rem;
}

/* ===== Generic section ===== */
main .tn-section{
  padding:3rem 0;
  border-bottom:1px solid var(--glass-border);
}
main .tn-section:last-of-type{
  border-bottom:none;
}
main .tn-section__inner{
  max-width:900px;
}
main .tn-section__inner:has(.tn-cards),
main .tn-section__inner:has(.tn-games-grid),
main .tn-section__inner:has(.tn-table-wrap),
main .tn-section__inner:has(.tn-proscons),
main .tn-section__inner:has(.tn-subsections){
  max-width:100%;
}

/* ===== Table ===== */
main .tn-table-wrap{
  overflow-x:auto;
  margin:1.5rem 0;
  border-radius:var(--radius);
  border:1px solid var(--glass-border);
  background:var(--glass-bg);
  backdrop-filter:blur(10px);
}
main .tn-table{
  width:100%;
  border-collapse:collapse;
  min-width:480px;
}
main .tn-table th,
main .tn-table td{
  text-align:left;
  padding:0.85rem 1.1rem;
  font-size:0.95rem;
  color:var(--muted-70);
  border-bottom:1px solid var(--glass-border);
  white-space:nowrap;
}
main .tn-table th{
  color:var(--color-text);
  font-weight:700;
  background:rgba(255,255,255,0.04);
}
main .tn-table tr:last-child td{
  border-bottom:none;
}

/* ===== List ===== */
main .tn-list{
  list-style:none;
  margin:0 0 1rem;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0.85rem;
}
main .tn-list li{
  position:relative;
  padding-left:1.6rem;
  color:var(--muted-70);
  font-size:1.02rem;
  max-width:70ch;
}
main .tn-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.5em;
  width:0.55rem;
  height:0.55rem;
  border-radius:50%;
  background:var(--color-bright);
}
main .tn-card .tn-list{
  margin:0;
}
main .tn-list--pros li::before{
  background:#4ade80;
}
main .tn-list--cons li::before{
  background:var(--color-bright);
}

/* ===== Steps (ordered list) ===== */
main .tn-steps{
  list-style:none;
  counter-reset:tn-step;
  margin:0 0 1.5rem;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:1rem;
}
main .tn-steps li{
  position:relative;
  padding-left:3rem;
  color:var(--muted-70);
  font-size:1.02rem;
  max-width:70ch;
  counter-increment:tn-step;
}
main .tn-steps li::before{
  content:counter(tn-step);
  position:absolute;
  left:0;
  top:0;
  width:2.1rem;
  height:2.1rem;
  border-radius:50%;
  background:var(--color-bright);
  color:var(--color-dark);
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.95rem;
}
main .tn-steps--media li{
  padding-left:3rem;
  max-width:100%;
}
main .tn-steps__text{
  margin-bottom:0.85rem;
}
main .tn-steps--media img{
  width:100%;
  max-width:320px;
  height:auto;
  border-radius:var(--radius);
  display:block;
}
main .tn-subsection .tn-steps{
  margin:0;
}

/* ===== Cards ===== */
main .tn-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.25rem;
  margin-top:1.5rem;
}
main .tn-card{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  padding:1.5rem;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  display:flex;
  flex-direction:column;
  gap:0.85rem;
}
main .tn-card__title{
  margin:0;
  font-size:1.25rem;
}
main .tn-card__desc{
  margin:0;
  color:var(--muted-70);
  font-size:0.98rem;
  flex-grow:1;
  max-width:none;
  line-height:1.6;
}

/* ===== Games grid ===== */
main .tn-games-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1rem;
  margin-top:1.5rem;
}
main .tn-game-card{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  padding:1.1rem 1.25rem;
  backdrop-filter:blur(10px);
}
main .tn-game-card__title{
  margin:0 0 0.35rem;
  font-size:1.05rem;
}
main .tn-game-card__meta{
  margin:0;
  color:var(--color-bright);
  font-size:0.88rem;
  font-weight:600;
}

/* ===== Subsections ===== */
main .tn-subsections{
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
  margin-top:2rem;
}
main .tn-subsection{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  padding:1.75rem;
  backdrop-filter:blur(10px);
}
main .tn-subsection img{
  border-radius:var(--radius);
  margin-bottom:1rem;
  width:100%;
  height:auto;
}
main .tn-subsection .tn-table-wrap{
  margin:1rem 0 0;
}

/* ===== Pros / Cons ===== */
main .tn-proscons{
  display:grid;
  grid-template-columns:1fr;
  gap:1.25rem;
  margin-top:1.5rem;
}
main .tn-proscons__col{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  padding:1.5rem;
  backdrop-filter:blur(10px);
}
main .tn-proscons__col h3{
  margin-top:0;
}
main .tn-proscons__col--pros h3{
  color:#4ade80;
}
main .tn-proscons__col--cons h3{
  color:var(--color-bright);
}

/* ===== CTA buttons ===== */
main .tn-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.7rem 1.3rem;
  border-radius:var(--radius);
  text-decoration:none;
  font-weight:600;
  font-size:0.95rem;
  min-height:44px;
  border:1px solid transparent;
  transition:transform .15s ease,background .2s ease,color .2s ease,border-color .2s ease;
  white-space:nowrap;
  align-self:flex-start;
}
main .tn-cta--primary{
  background:var(--color-bright);
  color:var(--color-dark);
}
main .tn-cta--primary:hover{
  transform:translateY(-1px);
  background:#ff7a26;
}
main .tn-cta--secondary{
  background:rgba(255,255,255,0.08);
  color:var(--color-text);
  border-color:var(--glass-border);
}
main .tn-cta--secondary:hover{
  background:rgba(255,255,255,0.16);
  transform:translateY(-1px);
}

/* ===== FAQ ===== */
main .tn-faq{
  display:flex;
  flex-direction:column;
  gap:0.85rem;
  margin-top:1.5rem;
}
main .tn-faq__item{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  overflow:hidden;
  backdrop-filter:blur(10px);
}
main .tn-faq__question{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  background:none;
  border:none;
  color:var(--color-text);
  font-family:var(--font-heading);
  font-size:1.05rem;
  text-align:left;
  padding:1.1rem 1.35rem;
  cursor:pointer;
  min-height:44px;
}
main .tn-faq__icon{
  flex-shrink:0;
  font-size:1.3rem;
  color:var(--color-bright);
  transition:transform .25s ease;
  line-height:1;
}
main .tn-faq__item.is-open .tn-faq__icon{
  transform:rotate(45deg);
}
main .tn-faq__answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
  padding:0 1.35rem;
}
main .tn-faq__answer p{
  padding-bottom:1.1rem;
  margin:0;
  font-size:0.98rem;
  max-width:none;
}
main .tn-faq__item.is-open .tn-faq__answer{
  max-height:600px;
}

@media (min-width:768px){
  main{
    padding:0 2rem 5rem;
  }
  main .tn-hero{
    padding:5rem 0 3rem;
  }
  main .tn-section{
    padding:4rem 0;
  }
  main .tn-hero__inner--split{
    grid-template-columns:1.1fr 0.9fr;
  }
  main .tn-proscons{
    grid-template-columns:1fr 1fr;
  }
  main .tn-subsections{
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  }
  main .tn-steps--media li{
    display:flex;
    align-items:flex-start;
    gap:1.5rem;
    padding-left:3rem;
  }
  main .tn-steps--media .tn-steps__text{
    flex:1;
    margin-bottom:0;
  }
  main .tn-steps--media img{
    max-width:220px;
    flex-shrink:0;
  }
}