/* ============================================================
   Aufsperrdienst Linz — legal.css
   Impressum + Datenschutz. Loads after main.css.
   Prefix: alg-
   ============================================================ */

/* ---------- hero ---------- */
.alg-hero{background:var(--ink);padding:54px 0 64px}
.alg-hero__in{width:min(var(--wrap),100% - var(--gut) * 2);margin-inline:auto;max-width:900px}
.alg-crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:30px;
  font-family:var(--fm);font-size:var(--t-label);color:var(--on-dark-2);
}
.alg-crumb a{color:var(--on-dark-2)}
.alg-crumb a:hover{text-decoration:underline;color:var(--on-dark)}
.alg-hero .al-label{margin-bottom:14px}
.alg-hero__title{
  color:var(--on-dark);font-size:var(--t-h1);line-height:1;
  letter-spacing:-.02em;margin-bottom:20px;
}
.alg-hero__lead{color:var(--on-dark-2);font-size:var(--t-lead2);max-width:66ch}

/* ---------- shell: sticky table of contents beside the text ---------- */
.alg-main{padding:var(--pad) 0}
.alg-main__in{
  width:min(var(--wrap),100% - var(--gut) * 2);margin-inline:auto;
  display:grid;grid-template-columns:240px minmax(0,1fr);gap:70px;align-items:start;
}
/* the grid has exactly two children: the sticky index and the text column.
   without the wrapper every second <section> is auto-placed into column 1
   and lands on top of the index. */
.alg-body{min-width:0}
.alg-toc{position:sticky;top:110px;min-width:0;align-self:start}
.alg-toc .al-label{margin-bottom:16px}
.alg-toc ol{
  list-style:none;counter-reset:alg;display:flex;flex-direction:column;gap:2px;
  border-top:1px solid var(--ink);padding-top:12px;
}
.alg-toc li{counter-increment:alg}
.alg-toc a{
  display:block;padding:7px 0;font-size:var(--t-body);color:var(--ink-3);line-height:1.35;
}
.alg-toc a::before{
  content:counter(alg) ".  ";font-family:var(--fm);font-size:var(--t-label);color:var(--ink-3);
}
.alg-toc a:hover{color:var(--ink);text-decoration:underline}

/* ---------- sections ---------- */
.alg-sec{margin-bottom:52px;scroll-margin-top:100px}
.alg-sec:last-child{margin-bottom:0}
.alg-sec__title{
  font-size:var(--t-h2);line-height:1.25;color:var(--ink);
  padding-bottom:14px;margin-bottom:var(--gap);border-bottom:1px solid var(--ink);
}

.alg-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.alg-card{background:var(--tile);padding:28px 26px;min-width:0}
.alg-card + .alg-card{margin-top:var(--gap)}
.alg-cards .alg-card + .alg-card{margin-top:0}
.alg-card h3{font-size:var(--t-lead2);margin-bottom:14px;color:var(--ink)}
.alg-card p{color:var(--ink-3);font-size:var(--t-body);line-height:1.62;margin-bottom:12px}
.alg-card p:last-child{margin-bottom:0}
.alg-card b,.alg-card strong{color:var(--ink);font-weight:600}
.alg-card a{color:var(--ink);border-bottom:1px solid #bdbdbd}
.alg-card a:hover{border-bottom-color:var(--ink)}

.alg-addr{
  font-family:var(--fm);font-size:var(--t-body);line-height:1.7;
  color:var(--ink) !important;
}

/* definition rows */
.alg-dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:9px 20px}
.alg-dl dt{
  font-family:var(--fm);font-size:var(--t-label);letter-spacing:.04em;
  color:var(--ink-3);line-height:1.5;padding-top:2px;
}
.alg-dl dd{margin:0;font-size:var(--t-body);color:var(--ink-2);line-height:1.6}
.alg-dl dd a{color:var(--ink);border-bottom:1px solid #bdbdbd}

/* bullet lists — the global reset strips markers, so draw our own */
.alg-list{display:flex;flex-direction:column;gap:10px}
.alg-list li{
  position:relative;padding-left:20px;font-size:var(--t-body);
  color:var(--ink-3);line-height:1.6;
}
.alg-list li::before{
  content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--ink);
}

/* highlighted note — dark, so every colour is restated */
.alg-note{background:var(--ink);padding:28px 26px;margin-top:var(--gap)}
.alg-note h3{color:var(--on-dark);font-size:var(--t-lead2);margin-bottom:12px}
.alg-note p{color:var(--on-dark-2);font-size:var(--t-body);line-height:1.62;margin-bottom:10px}
.alg-note p:last-child{margin-bottom:0}
.alg-note a{color:var(--on-dark);border-bottom:1px solid var(--line-d)}
.alg-note a:hover{border-bottom-color:var(--on-dark)}

.alg-stamp{
  margin-top:30px;padding-top:17px;border-top:1px solid var(--line);
  font-family:var(--fm);font-size:var(--t-label);color:var(--ink-3);line-height:1.6;
}
.alg-stamp a{color:var(--ink);border-bottom:1px solid #bdbdbd}

/* ---------- responsive ---------- */
@media (max-width:1200px){
  .alg-hero{padding:48px 0 56px}
  .alg-main__in{grid-template-columns:210px minmax(0,1fr);gap:45px}
}
@media (max-width:1024px){
  .alg-main__in{grid-template-columns:minmax(0,1fr);gap:35px}
  /* the list of links is short — inline it instead of pinning it */
  .alg-toc{position:static}
  .alg-toc ol{flex-direction:row;flex-wrap:wrap;gap:7px}
  .alg-toc a{border:1px solid var(--line);padding:8px 13px;font-size:var(--t-body)}
  .alg-toc a:hover{border-color:var(--ink);text-decoration:none}
}
@media (max-width:768px){
  .alg-hero{padding:40px 0 44px}
  .alg-cards{grid-template-columns:minmax(0,1fr)}
  .alg-cards .alg-card + .alg-card{margin-top:0}
  .alg-dl{grid-template-columns:minmax(0,1fr);gap:3px}
  .alg-dl dt{padding-top:9px}
  .alg-dl dd{padding-bottom:6px}
}
@media (max-width:480px){
  .alg-card,.alg-note{padding:24px 20px}
  .alg-sec{margin-bottom:40px}
}
