/* Arcturis — Grundgerüst der vier Rechtsseiten.
   Wird in Astro zu src/layouts/Recht.astro plus src/styles/recht.css.
   Grund durchgehend Tag, Akzent durchgehend kalt. Keine Bewegung im Textkörper. */

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--dawn-deep);color:var(--on-dawn);font-family:var(--f-b);
  font-size:var(--t-body);line-height:1.7;max-width:100%;
  font-variant-numeric:tabular-nums;text-rendering:optimizeLegibility;
  -webkit-tap-highlight-color:rgba(86,96,112,.28)}
img,svg{max-width:100%}
h1,h2,h3{font-family:var(--f-b);font-weight:300;text-wrap:balance;margin:0;
  letter-spacing:-.02em;line-height:1.15}
p,li,dd,dt{text-wrap:pretty;overflow-wrap:break-word}
a{color:var(--acc-tag)}
a:hover{color:var(--on-dawn)}
:focus-visible{outline:2px solid var(--acc-tag);outline-offset:3px;border-radius:2px}

.arc-vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}
.arc-sprung{position:fixed;top:10px;left:10px;z-index:160;background:var(--papier-hoch);
  color:var(--on-dawn);padding:12px 18px;border-radius:4px;font-size:.9rem;
  text-decoration:none;transform:translateY(-160%)}
.arc-sprung:focus{transform:none}

/* --- Kopfleiste ------------------------------------------------------- */
.arc-kopf{position:fixed;top:0;left:0;right:0;z-index:120;
  background:color-mix(in oklab,var(--n0) 88%,transparent);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:0 1px 0 var(--linie),0 18px 36px -28px rgba(3,5,10,.7)}
.arc-kopf :focus-visible{outline-color:var(--nadel-hell)}
.arc-kopf-innen{max-width:var(--spalte);margin:0 auto;padding:8px var(--rand);
  min-height:clamp(58px,7svh,74px);display:flex;align-items:center;gap:clamp(12px,1.6vw,22px)}
.arc-marke{display:flex;align-items:center;gap:var(--wm-luft);text-decoration:none;
  margin-right:auto}
.arc-marke img.arc-rose{width:var(--rose-b);height:auto;display:block}
.arc-marke .arc-wortmarke img{height:var(--wm-h);width:auto;display:block}
.arc-nav{display:flex;align-items:center;gap:clamp(14px,1.8vw,30px)}
.arc-nav a{font-family:var(--f-m);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  white-space:nowrap;text-decoration:none;color:var(--on-night-mute);
  padding:7px 0;border-bottom:1px solid transparent;
  transition:border-color 220ms var(--ease),color 220ms var(--ease)}
.arc-nav a:hover{color:var(--on-night);border-bottom-color:var(--nadel)}
.arc-nav a[aria-current="page"]{color:var(--on-night);border-bottom-color:var(--nadel)}
@media (max-width:719px){
  .arc-nav{gap:14px;overflow-x:auto;scrollbar-width:none}
  .arc-nav::-webkit-scrollbar{display:none}
  .arc-nav a{font-size:.68rem;letter-spacing:.1em}
}

/* --- Seitenkopf ------------------------------------------------------- */
.arc-recht{max-width:var(--spalte);margin:0 auto;padding:0 var(--rand);
  background:var(--dawn);
  box-shadow:0 0 0 1px var(--linie-tag)}
@media (min-width:900px){
  .arc-recht{border-bottom-left-radius:22px;border-bottom-right-radius:22px}
}
/* Platz für die feste Kopfleiste, und Sprungziele rutschen nicht darunter */
body{padding-top:calc(clamp(58px,7svh,74px) + 16px)}
.arc-text section{scroll-margin-top:calc(clamp(58px,7svh,74px) + 34px)}
.arc-kopfzeile{padding:clamp(44px,8svh,92px) 0 clamp(26px,4svh,44px);
  border-bottom:1px solid var(--linie-tag)}
.arc-aufschrift{margin:0 0 clamp(14px,2vh,22px);display:flex;align-items:center;gap:12px;
  font-family:var(--f-m);font-size:var(--t-mark);letter-spacing:.2em;text-transform:uppercase;
  color:var(--acc-tag)}
.arc-aufschrift::before{content:"";width:7px;height:7px;border-radius:50%;
  background:var(--acc-tag);flex:0 0 auto;
  box-shadow:0 0 0 5px color-mix(in oklab,var(--acc-tag) 16%,transparent)}
.arc-kopfzeile h1{font-size:var(--t-h1);max-width:20ch}
.arc-stand{margin:16px 0 0;font-family:var(--f-m);font-size:var(--t-mark);
  letter-spacing:.16em;text-transform:uppercase;color:var(--acc-tag)}
.arc-vorspann{margin:18px 0 0;font-size:var(--t-lead);line-height:1.55;
  color:var(--on-dawn-mute);max-width:52ch}

/* --- Zweispalter: Text links, Inhaltsverzeichnis rechts ---------------- */
.arc-raster{display:grid;grid-template-columns:minmax(0,1fr);
  gap:clamp(28px,4vw,64px);padding-bottom:clamp(48px,9svh,110px)}
@media (min-width:1100px){
  .arc-raster{grid-template-columns:minmax(0,1fr) 244px}
}
.arc-text{max-width:68ch;padding-top:clamp(26px,4svh,44px)}
.arc-text > section + section{margin-top:clamp(34px,5svh,58px);
  padding-top:clamp(26px,4svh,42px);border-top:1px solid var(--linie-tag)}

.arc-text h2{font-size:var(--t-h3);margin:0 0 14px;padding-top:6px;
  display:flex;align-items:baseline;gap:.62em}
.arc-text h2 .arc-nr{font-family:var(--f-m);font-size:.62em;letter-spacing:.1em;
  color:var(--acc-tag);flex:0 0 auto}
.arc-text h3{font-size:1.02rem;font-weight:500;margin:26px 0 8px;letter-spacing:-.005em}
.arc-text p{margin:0 0 14px}
.arc-text p:last-child{margin-bottom:0}
.arc-text strong{font-weight:500;color:var(--on-dawn)}
.arc-text em{font-style:italic;color:var(--on-dawn-mute)}
.arc-text ul{margin:0 0 14px;padding:0 0 0 1.1em;list-style:none}
.arc-text ul li{position:relative;margin:0 0 8px;padding-left:.2em}
.arc-text ul li::before{content:"";position:absolute;left:-1.1em;top:.72em;
  width:6px;height:1px;background:var(--acc-tag)}

/* Absatznummern in Mono, hängend am Rand */
.arc-abs{display:grid;grid-template-columns:2.4em minmax(0,1fr);gap:0 .4em;margin:0 0 12px}
.arc-abs > b{font-family:var(--f-m);font-size:.8rem;font-weight:400;color:var(--acc-tag);
  line-height:1.9}
.arc-abs > span{display:block}
@media (max-width:520px){
  .arc-abs{grid-template-columns:minmax(0,1fr)}
  .arc-abs > b{line-height:1.4;margin-bottom:2px}
}

/* Angaben als Definitionsliste: Rechtsgrundlage, Zweck, Speicherdauer */
.arc-daten{margin:14px 0;padding:0;border-top:1px solid var(--linie-tag)}
.arc-daten > div{display:grid;grid-template-columns:minmax(0,10.5em) minmax(0,1fr);
  gap:4px 22px;padding:11px 0;border-bottom:1px solid var(--linie-tag)}
.arc-daten dt{margin:0;font-family:var(--f-m);font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--acc-tag);padding-top:.28em}
.arc-daten dd{margin:0;font-size:.98rem;line-height:1.6}
@media (max-width:520px){
  .arc-daten > div{grid-template-columns:minmax(0,1fr)}
}

/* Anschrift und Kontaktblöcke */
.arc-block-adresse{margin:0 0 14px;font-style:normal;line-height:1.9}
.arc-block-adresse strong{display:block;font-weight:500}

.arc-text code{font-family:var(--f-m);font-size:.9em;
  background:color-mix(in oklab,var(--on-dawn) 7%,transparent);
  padding:.1em .38em;border-radius:2px}

/* Platzhalter bleiben sichtbar */
.arc-platz{font-family:var(--f-m);font-size:.86em;letter-spacing:.02em;
  color:var(--glut-tag);background:color-mix(in oklab,var(--glut-tag) 9%,transparent);
  padding:.1em .42em;border-radius:2px;white-space:nowrap}

/* Tabellen: Haarlinien ohne Rahmen */
.arc-tab{width:100%;border-collapse:collapse;margin:14px 0;font-size:.96rem}
.arc-tab th,.arc-tab td{text-align:left;padding:11px 14px 11px 0;
  border-bottom:1px solid var(--linie-tag);vertical-align:top}
.arc-tab th{font-family:var(--f-m);font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--acc-tag);font-weight:400}

/* --- Inhaltsverzeichnis ----------------------------------------------- */
.arc-toc{display:none}
@media (min-width:1100px){
  .arc-toc{display:block;position:sticky;top:calc(clamp(58px,7svh,74px) + 60px);
    align-self:start;max-height:calc(100svh - clamp(58px,7svh,74px) - 72px);
    overflow:auto;padding-top:clamp(26px,4svh,44px)}
  .arc-toc p{margin:0 0 12px;font-family:var(--f-m);font-size:var(--t-mark);
    letter-spacing:.16em;text-transform:uppercase;color:var(--on-dawn-mute)}
  .arc-toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--linie-tag)}
  .arc-toc li{margin:0}
  .arc-toc a{display:block;padding:6px 0 6px 14px;margin-left:-1px;
    border-left:1px solid transparent;font-size:.86rem;line-height:1.4;
    color:var(--on-dawn-mute);text-decoration:none;
    transition:color 200ms var(--ease),border-color 200ms var(--ease)}
  .arc-toc a:hover{color:var(--on-dawn)}
  .arc-toc a[aria-current="true"]{color:var(--on-dawn);border-left-color:var(--acc-tag)}
}
/* Darunter: einklappbar über der Seite */
.arc-toc-klein{margin:clamp(22px,3svh,34px) 0 0;border-top:1px solid var(--linie-tag);
  border-bottom:1px solid var(--linie-tag)}
@media (min-width:1100px){.arc-toc-klein{display:none}}
.arc-toc-klein summary{cursor:pointer;list-style:none;padding:15px 0;
  font-family:var(--f-m);font-size:var(--t-mark);letter-spacing:.16em;
  text-transform:uppercase;color:var(--acc-tag);
  display:flex;align-items:center;justify-content:space-between;gap:14px}
.arc-toc-klein summary::-webkit-details-marker{display:none}
.arc-toc-klein summary::after{content:"+";font-size:1.1rem;line-height:1}
.arc-toc-klein[open] summary::after{content:"–"}
.arc-toc-klein ol{list-style:none;margin:0;padding:0 0 18px;
  display:grid;gap:8px}
.arc-toc-klein a{font-size:.94rem;color:var(--on-dawn);text-decoration:none}

/* --- Ruhiges Enthüllen: nur ganze Abschnitte, kein Zappeln ------------- */
.arc-js .arc-auf{opacity:0;transform:translateY(10px);
  transition:opacity 620ms var(--ease),transform 620ms var(--ease)}
.arc-js .arc-auf.arc-sicht{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .arc-js .arc-auf{opacity:1;transform:none;transition:none}
}

/* --- Abschluss und Fußbereich ----------------------------------------- */
.arc-zurueck{margin:clamp(34px,5svh,58px) 0 0;padding-top:22px;
  border-top:1px solid var(--linie-tag)}
.arc-zurueck a{display:inline-flex;align-items:center;gap:12px;
  font-family:var(--f-m);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--linie-tag);border-radius:2px;
  padding:11px 17px;position:relative;overflow:hidden;color:var(--on-dawn);
  transition:color 220ms var(--ease),border-color 220ms var(--ease)}
.arc-zurueck a::before{content:"";position:absolute;inset:0;background:var(--acc-tag);
  transform:scaleX(0);transform-origin:100% 50%;transition:transform 300ms var(--ease);z-index:-1}
.arc-zurueck a:hover{color:var(--dawn);border-color:var(--acc-tag)}
.arc-zurueck a:hover::before{transform:scaleX(1)}

.arc-fuss{background:var(--n0);color:var(--on-night);border-top:1px solid var(--linie)}
.arc-fuss a{color:var(--on-night-mute);text-decoration:none}
.arc-fuss a:hover{color:var(--nadel-hell)}
.arc-fuss-innen{max-width:var(--spalte);margin:0 auto;
  padding:clamp(44px,7svh,84px) var(--rand) clamp(26px,4svh,44px);
  display:grid;gap:clamp(28px,4vw,56px);grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){
  .arc-fuss-innen{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}
}
.arc-fuss-marke img.arc-rose{width:56px;height:auto;display:block;margin-bottom:18px}
.arc-anschrift{font-style:normal;line-height:1.9;color:var(--on-night-mute)}
.arc-anschrift strong{display:block;color:var(--on-night);font-weight:400;margin-bottom:6px}
.arc-antwortzeit{margin:16px 0 0;font-size:.9rem;color:var(--on-night-mute)}
.arc-fuss-spalten{display:grid;gap:clamp(18px,2.4vw,34px);
  grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}
.arc-fuss-gruppe summary{cursor:pointer;list-style:none;
  font-family:var(--f-m);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--nadel);padding:10px 0}
.arc-fuss-gruppe summary::-webkit-details-marker{display:none}
.arc-fuss-gruppe ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.arc-fuss-gruppe li{font-size:.92rem}
@media (max-width:639px){
  .arc-fuss-gruppe summary::after{content:"+";float:right;font-size:1rem;line-height:1}
  .arc-fuss-gruppe[open] summary::after{content:"–"}
  .arc-fuss-gruppe[data-immer="offen"] summary::after{content:""}
}
.arc-fuss-schluss{max-width:var(--spalte);margin:0 auto;
  padding:20px var(--rand) clamp(30px,5svh,52px);
  border-top:1px solid var(--linie);
  display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:space-between;
  font-family:var(--f-m);font-size:.72rem;letter-spacing:.08em;color:var(--on-night-mute)}
