/* ============================================================
   COMFILL — strony prawne, dane firmy, rozbudowana stopka
   ============================================================ */

/* ---------- znacznik brakujących danych ---------- */
mark.todo{
  background:rgba(240,92,92,.16);
  border:1px dashed rgba(240,92,92,.55);
  color:#FF9B9B;
  border-radius:5px;
  padding:.1em .45em;
  font-size:.88em;
  font-weight:600;
  letter-spacing:.02em;
}

/* ---------- karta z danymi firmy ---------- */
.legal-card{
  border:1px solid var(--line); border-radius:var(--r);
  background:rgba(255,255,255,.03);
  padding:1.6rem 1.7rem;
  margin:1.6rem 0 2rem;
}
.legal-card__name{
  font-family:var(--display); font-size:1.25rem; font-weight:500;
  color:var(--ivory); margin:0 0 .6rem;
}
.legal-card p{ margin:0 0 .9rem; color:var(--muted); }
.legal-card__meta{ list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.legal-card__meta li{
  display:flex; gap:.9rem; align-items:baseline;
  font-size:.94rem; color:var(--ivory); padding-left:0;
}
.legal-card__meta li::before{ display:none; }
.legal-card__meta li > span:first-child{
  flex:0 0 130px; color:var(--muted-2);
  font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
}
.legal-card__meta small{ color:var(--muted-2); margin-left:.5rem; }
.legal-card a{ color:var(--gel-hi); }

/* ---------- układ strony prawnej ---------- */
.legal .legal__wrap{ max-width:1100px; }
.legal__head{ margin-bottom:2.6rem; max-width:60ch; }
.legal__updated{ color:var(--muted-2); font-size:.86rem; margin:.6rem 0 0; }

.legal__body{
  display:grid; grid-template-columns:260px minmax(0,1fr);
  gap:clamp(2rem,5vw,4rem); align-items:start;
}

.legal__toc{
  position:sticky; top:110px;
  border:1px solid var(--line); border-radius:var(--r);
  background:rgba(255,255,255,.02);
  padding:1.4rem 1.4rem 1.5rem;
}
.legal__toc-title{
  font-family:var(--body); font-size:.72rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--muted-2);
  margin:0 0 .9rem;
}
.legal__toc ol{ margin:0; padding:0 0 0 1.2rem; display:grid; gap:.5rem; }
.legal__toc li{ font-size:.88rem; color:var(--muted-2); }
.legal__toc a{ color:var(--muted); text-decoration:none; }
.legal__toc a:hover{ color:var(--gel-hi); }

.legal__content{ max-width:72ch; }
.legal__content h2{
  font-size:1.5rem; margin-top:2.8rem;
  scroll-margin-top:110px;
  padding-top:1.6rem; border-top:1px solid var(--line);
}
.legal__content h2:first-child{ margin-top:0; padding-top:0; border-top:none; }
.legal__content ol{ counter-reset:none; }
.legal__content li{ margin-bottom:.6rem; }
.legal-lead{
  font-size:1.1rem; color:var(--ivory);
  border-left:2px solid var(--gel); padding-left:1.2rem;
  margin:0 0 2.2rem;
}

/* tabele w treści prawnej */
.legal__content table{
  width:100%; border-collapse:collapse; margin:1.4rem 0 2rem;
  border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  font-size:.92rem;
}
.legal__content th,
.legal__content td{
  padding:.85rem 1rem; text-align:left; border-bottom:1px solid var(--line);
  vertical-align:top;
}
.legal__content thead th{
  background:rgba(255,255,255,.04); color:var(--muted-2);
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
}
.legal__content tbody td{ color:var(--muted); }
.legal__content tbody tr:last-child td{ border-bottom:none; }

/* wzór formularza odstąpienia */
.legal-form{
  border:1px dashed var(--line-2); border-left:1px dashed var(--line-2);
  border-radius:var(--r); background:rgba(255,255,255,.02);
  padding:1.6rem 1.7rem; margin:1.6rem 0 2rem;
  font-family:var(--body); font-size:.94rem; color:var(--muted);
}
.legal-form p{ margin:0 0 .9rem; }
.legal-form p:last-child{ margin-bottom:0; }

/* stopka strony prawnej */
.legal__foot{
  margin-top:3.5rem; padding-top:2rem; border-top:1px solid var(--line);
  display:flex; flex-direction:column; gap:1.2rem;
}
.legal__foot p{ color:var(--muted); margin:0; }
.legal__foot a{ color:var(--gel-hi); }
.legal__links{ display:flex; gap:.7rem; flex-wrap:wrap; }
.legal__links .btn{ font-size:.86rem; padding:.6rem 1.1rem; text-decoration:none; }

/* ---------- stopka serwisu ---------- */
.ftr__pay{ display:flex; gap:.45rem; flex-wrap:wrap; margin-top:1.4rem; }
.ftr__pay span{
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted-2); border:1px solid var(--line);
  border-radius:6px; padding:.3rem .55rem;
}
.ftr__subhead{ margin-top:1.4rem; }
.ftr__addr{ color:var(--muted-2); font-size:.85rem; margin:.2rem 0 0; }
.ftr__contact a{ word-break:break-word; }

.ftr__legal{
  padding:1.6rem 0;
  border-top:1px solid var(--line);
  display:grid; gap:.45rem;
}
.ftr__entity{
  margin:0; color:var(--muted-2); font-size:.82rem; line-height:1.6;
  max-width:90ch;
}
.ftr__entity--small{ font-size:.78rem; opacity:.8; }
.ftr__todo{ color:var(--muted-2); font-size:.78rem; line-height:1.5; }
.ftr__todo a{ color:var(--gel-hi); }

@media (max-width:1024px){
  .legal__body{ grid-template-columns:1fr; }
  .legal__toc{ position:static; }
}

@media (max-width:760px){
  .legal-card__meta li{ flex-direction:column; gap:.15rem; }
  .legal-card__meta li > span:first-child{ flex:none; }

  /* Tabela z nagłówkami przepisanymi przez JS zamienia się w listę kart —
     czytelniej niż przewijanie w bok. Bez JS zostaje zwykłe przewijanie. */
  .legal__content table{ display:block; overflow-x:auto; }
  .legal__content table:not(.is-labelled) td,
  .legal__content table:not(.is-labelled) th{ min-width:8rem; }

  .legal__content table.is-labelled{ overflow:visible; border:none; }
  .legal__content table.is-labelled thead{ display:none; }
  .legal__content table.is-labelled tbody{ display:grid; gap:.9rem; }
  .legal__content table.is-labelled tr{
    display:block; border:1px solid var(--line); border-radius:var(--r);
    background:rgba(255,255,255,.02); overflow:hidden;
  }
  .legal__content table.is-labelled td{
    display:grid; gap:.15rem; padding:.8rem 1.1rem;
    border-bottom:1px solid var(--line);
  }
  .legal__content table.is-labelled td::before{
    content:attr(data-label);
    color:var(--muted-2); font-size:.7rem;
    letter-spacing:.14em; text-transform:uppercase;
  }
  .legal__content table.is-labelled td:first-child{
    color:var(--ivory); background:rgba(255,255,255,.03);
  }
  .legal__content table.is-labelled td:last-child{ border-bottom:none; }
}
