/* peter-carqueville.de – gemeinsames Stylesheet für alle Seiten */

/* ---------- Fonts ---------- */
@font-face{font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/barlow-normal-600.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/barlow-normal-600-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Barlow";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/barlow-normal-700.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/barlow-normal-700-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/source-serif-4-normal-400.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/source-serif-4-normal-400-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/source-serif-4-normal-600.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/source-serif-4-normal-600-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/source-serif-4-italic-400.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/source-serif-4-italic-400-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-mono-normal-400.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-mono-normal-400-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-normal-500.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-normal-500-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- Design-Tokens ---------- */
:root,[data-theme="light"]{
  --ink:#12151A;
  --ink-soft:#4A5158;
  --paper:#F3F4F5;
  --sheet:#FFFFFF;
  --rule:#C8CCD1;
  --rule-soft:#E2E5E8;
  --accent:#0D5C56;
  --node-fill:#FFFFFF;
  --node-accent:#E2EFEE;
  --invert-bg:#12151A;
  --invert-fg:#EEF1F2;
  --invert-muted:#A7B0B4;
  --invert-link:#7BC4BE;
  --invert-btn:#0D5C56;
  --invert-btn-hover:#0F6E67;
  color-scheme:light;
}
[data-theme="dark"]{
  --ink:#EEF1F2;
  --ink-soft:#A7B0B4;
  --paper:#101316;
  --sheet:#181C20;
  --rule:#2F363C;
  --rule-soft:#252A2F;
  --accent:#7BC4BE;
  --node-fill:#181C20;
  --node-accent:#1A2E2C;
  --invert-bg:#EEF1F2;
  --invert-fg:#12151A;
  --invert-muted:#4A5158;
  --invert-link:#0D5C56;
  --invert-btn:#0D5C56;
  --invert-btn-hover:#094842;
  color-scheme:dark;
}

/* ---------- Basis ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{
  --gutter:clamp(1.25rem,4vw,2rem);
  --rail:70rem;          /* ~1120px – gemeinsame linke Kante für Nav, Footer, alle Sektionen */
  --measure:36rem;       /* Lesetext: Hero, FAQ */
  --measure-mid:48rem;   /* strukturierter Fließtext + Schema */
  font-family:"Source Serif 4",Georgia,serif;color:var(--ink);background:var(--paper);line-height:1.7;font-size:17.5px;-webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;height:auto}
a{color:var(--accent)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Eine Rail: alles fluchtet links. Innen Maße nur für Lesbarkeit. */
.wrap{max-width:var(--rail);margin-inline:auto;padding-inline:var(--gutter)}
.measure{max-width:var(--measure)}
.measure--mid{max-width:var(--measure-mid)}
.section-intro{max-width:var(--measure-mid);margin-bottom:0}
.section-intro .lede{margin-top:1rem}

h1,h2,h3{font-family:"Barlow",system-ui,sans-serif;line-height:1.15;font-weight:700;letter-spacing:.02em}
h1{font-size:clamp(2.35rem,5.8vw,3.55rem);max-width:20ch;text-wrap:balance;letter-spacing:.025em}
h2{font-size:clamp(1.55rem,3.2vw,2.15rem);max-width:22ch;letter-spacing:.025em}
h3{font-size:1.15rem;font-weight:600;letter-spacing:.02em}
section{padding:72px 0}
.band{background:var(--sheet);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.lede{font-size:1.12rem;color:var(--ink-soft);margin-top:1.1rem;max-width:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:1rem;top:1rem;z-index:100;padding:.75rem 1rem;background:var(--ink);color:var(--paper);text-decoration:none;font-size:.9rem;transform:translateY(-200%)}
.skip-link:focus-visible{transform:translateY(0)}

/* ---------- Header / Navigation ---------- */
header.site{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:50}
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:12px var(--gutter);max-width:var(--rail);margin-inline:auto}
.brand{font-family:"Barlow",sans-serif;font-size:1.05rem;color:var(--ink);text-decoration:none;font-weight:700;letter-spacing:.02em;flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:1.5rem;list-style:none;margin:0;padding:0}
.nav-links a{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.78rem;letter-spacing:.03em;color:var(--ink-soft);text-decoration:none}
.nav-links a:hover{color:var(--ink)}
.nav-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.nav a.cta{font-family:"Barlow",sans-serif;background:var(--ink);color:var(--paper);text-decoration:none;padding:9px 16px;font-size:.92rem;font-weight:600}
.nav a.cta:hover{background:var(--accent);color:#fff}
.cta-label--short{display:none}
@media(max-width:859px){
  html{scroll-padding-top:4.25rem}
  .nav{flex-wrap:nowrap;gap:8px;min-height:58px}
  .nav-links{display:none}
  .nav-actions{gap:8px}
  .nav a.cta{padding:8px 11px;font-size:.86rem;white-space:nowrap}
  .brand{font-size:1rem}
  .cta-label--long{display:none}
  .cta-label--short{display:inline}
}

/* ---------- Theme-Toggle ---------- */
.theme-toggle{--toggle-width:52px;--toggle-height:26px;--icon-size:16px;--icon-offset:5px;position:relative;width:var(--toggle-width);height:var(--toggle-height);padding:0;border:1px solid var(--ink);border-radius:var(--toggle-height);background:transparent;cursor:pointer;overflow:hidden;flex-shrink:0}
.theme-toggle:focus:not(:focus-visible){outline:none;box-shadow:none}
.theme-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.theme-toggle__track{display:block;width:100%;height:100%;position:relative}
.theme-toggle__icon-wrapper{position:absolute;top:50%;left:var(--icon-offset);transform:translateY(-50%);width:var(--icon-size);height:var(--icon-size);transition:left .35s ease}
[data-theme="dark"] .theme-toggle__icon-wrapper{left:calc(var(--toggle-width) - var(--icon-size) - var(--icon-offset) - 2px)}
.theme-toggle__icon{width:var(--icon-size);height:var(--icon-size);color:var(--ink);position:absolute;top:0;left:0}
.theme-toggle__icon--sun{opacity:1}
.theme-toggle__icon--moon,[data-theme="dark"] .theme-toggle__icon--sun{opacity:0}
[data-theme="dark"] .theme-toggle__icon--moon{opacity:1}

/* ---------- Buttons ---------- */
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:1.75rem}
.btn{font-family:"Barlow",sans-serif;display:inline-block;text-decoration:none;font-weight:600;font-size:.98rem;padding:12px 20px;transition:background .15s ease,color .15s ease,border-color .15s ease}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:var(--accent);color:#fff}
.btn-ghost{border:1.5px solid var(--ink);color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}

/* ---------- Hero ---------- */
.hero{padding:56px 0 40px}
.hero-kicker{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:var(--accent);margin:0 0 1rem}
.hero .lede{margin-top:1.25rem;font-size:1.14rem}
.hero .lede strong{color:var(--ink);font-weight:600}
.hero-note{margin-top:1.15rem;font-size:.92rem;color:var(--ink-soft)}

/* ---------- Schema ---------- */
.schema-section{padding:8px 0 64px}
.schema{background:var(--sheet);border:1px solid var(--rule);padding:22px 20px 16px;width:100%}
.schema-head{font-family:"IBM Plex Mono",monospace;font-size:.75rem;color:var(--ink-soft);display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--rule-soft);padding-bottom:10px;margin-bottom:14px}
.schema-caption{font-size:.95rem;color:var(--ink-soft);margin-top:14px;border-top:1px solid var(--rule-soft);padding-top:12px;font-style:normal;max-width:40rem}
.schema svg{color:var(--ink);display:block;width:100%;height:auto}
.schema svg text{font-family:"IBM Plex Mono",monospace;fill:currentColor}
.flow-line{stroke:var(--accent);stroke-width:1.5;fill:none;stroke-dasharray:5 4}
@media (prefers-reduced-motion:no-preference){
  .flow-line{animation:flow 36s linear infinite}
  @keyframes flow{to{stroke-dashoffset:-480}}
}
.node{fill:var(--node-fill);stroke:var(--ink);stroke-width:1.2}
.node-accent{fill:var(--node-accent);stroke:var(--accent)}
.schema-graphic--mobile{display:none!important}
@media(max-width:560px){
  .schema{padding:18px 14px 14px}
  .schema-head{font-size:.68rem}
  .schema-graphic--desktop{display:none!important}
  .schema-graphic--mobile{display:block!important}
}

/* ---------- Ausgangslagen ---------- */
.problems .list{margin-top:2.5rem;display:grid;gap:0;border-top:1px solid var(--ink)}
.problem-item{display:grid;grid-template-columns:3.5rem 1fr;gap:1.25rem;padding:1.75rem 0;border-bottom:1px solid var(--rule)}
.problem-item .n{font-family:"IBM Plex Mono",monospace;font-size:.85rem;color:var(--accent);padding-top:.2rem}
.problem-item h3{margin-bottom:.55rem}
.problem-item .problem{color:var(--ink-soft);margin-bottom:.7rem}
.problem-item .loesung{color:var(--ink);margin-bottom:0}
.rescue{margin-top:2.25rem;padding:1.5rem 1.6rem;background:var(--paper);border-left:3px solid var(--accent)}
.rescue h3{margin-bottom:.55rem}

/* ---------- Leistungen ---------- */
.services .svc-list{margin-top:2rem}
.services .svc{display:grid;grid-template-columns:11rem 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--rule)}
.services .svc:first-of-type{border-top:1px solid var(--ink)}
.services .svc:last-of-type{border-bottom:none}
.svc-key{font-family:"IBM Plex Mono",monospace;font-size:.78rem;color:var(--ink-soft);line-height:1.7}
.svc h3{font-size:1.2rem;margin-bottom:.65rem}
.svc ul{list-style:none;margin-top:.9rem}
.svc li{padding-left:1rem;position:relative;font-size:.96rem;color:var(--ink-soft);margin-bottom:.35rem}
.svc li::before{content:"";position:absolute;left:0;top:.65em;width:.35rem;height:.35rem;background:var(--accent)}

/* ---------- Referenzen ---------- */
.refs .section-intro{max-width:var(--measure-mid)}
.refs table{width:100%;border-collapse:collapse;margin-top:2rem;border-top:1px solid var(--ink)}
.refs th,.refs td{padding:1rem .75rem 1rem 0;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;font-size:.96rem}
.refs th{font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:500;color:var(--ink-soft)}
.refs td.proj{font-family:"Barlow",sans-serif;font-weight:600;font-size:1.02rem;width:28%;letter-spacing:.015em}
.refs td.proj a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:.18em}
.refs td.proj a:hover{text-decoration-color:var(--accent);color:var(--accent)}
.refs td.sys{font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--ink-soft);width:22%}
.refs td p{color:var(--ink-soft);max-width:none;margin:0}

/* ---------- Preise ---------- */
.pricing .rows{margin-top:2rem;border:1px solid var(--rule);background:var(--sheet);max-width:var(--measure-mid)}
.pos{display:grid;grid-template-columns:3rem 1fr 10rem;gap:1.25rem;padding:1.4rem 1.5rem;border-bottom:1px solid var(--rule);align-items:start}
.pos:last-child{border-bottom:none}
.pos-nr{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:var(--accent);padding-top:.25rem}
.pos h3{margin-bottom:.35rem}
.pos .desc{font-size:.95rem;color:var(--ink-soft);max-width:none}
.pos .preis{text-align:right}
.pos .preis .betrag{font-family:"Barlow",sans-serif;font-size:1.45rem;font-weight:700;letter-spacing:.015em}
.pos .preis .einheit{display:block;font-family:"IBM Plex Mono",monospace;font-size:.7rem;color:var(--ink-soft);margin-top:.25rem}
.pricing .fussnote{font-size:.88rem;color:var(--ink-soft);margin-top:1rem;max-width:var(--measure-mid)}

/* ---------- FAQ ---------- */
.faq{padding-bottom:80px}
.faq details{border-bottom:1px solid var(--rule)}
.faq details:first-of-type{border-top:1px solid var(--ink);margin-top:1.75rem}
.faq summary{cursor:pointer;padding:1.1rem 0;font-family:"Barlow",sans-serif;font-weight:600;font-size:1.05rem;list-style:none;letter-spacing:.015em;position:relative;padding-right:2rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:1.05rem;font-family:"IBM Plex Mono",monospace;color:var(--accent)}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 1.15rem;color:var(--ink-soft);font-size:.96rem}

/* ---------- Kontakt ---------- */
.contact{background:var(--invert-bg);color:var(--invert-fg);padding:80px 0}
.contact h2,.contact h3{color:var(--invert-fg)}
.contact p{color:var(--invert-muted)}
.contact a:not(.btn){color:var(--invert-link)}
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:start}
.contact .btn-primary{background:var(--invert-btn);color:#fff}
.contact .btn-primary:hover{background:var(--invert-btn-hover);color:#fff}
.contact ol{margin-top:1.1rem;padding-left:0;list-style:none;counter-reset:step}
.contact ol li{counter-increment:step;padding-left:2.6rem;position:relative;margin-bottom:1rem;color:var(--invert-muted);font-size:.95rem}
.contact ol li::before{content:counter(step, decimal-leading-zero);position:absolute;left:0;top:0;font-family:"IBM Plex Mono",monospace;font-size:.75rem;color:var(--invert-link)}
.contact-form{margin-top:1.75rem;max-width:36rem}
.form-field{display:grid;gap:.35rem;margin-bottom:1rem}
.form-field label{font-family:"Barlow",sans-serif;font-size:.95rem;font-weight:600;color:var(--invert-fg)}
.form-field input,.form-field textarea{width:100%;border:1px solid var(--invert-muted);border-radius:0;background:transparent;color:var(--invert-fg);font:inherit;font-size:1rem;padding:.65rem .75rem}
.form-field textarea{resize:vertical;min-height:8rem}
.form-field input:focus,.form-field textarea:focus{outline:2px solid var(--invert-link);outline-offset:2px;border-color:var(--invert-link)}
.form-field--trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-privacy{font-size:.82rem!important;line-height:1.5;margin-top:1rem}
.form-notice{display:none;margin-top:1.5rem;padding:.85rem 1rem;border-left:3px solid var(--invert-link);background:color-mix(in srgb,var(--invert-fg) 8%,transparent);color:var(--invert-fg)!important;font-size:.94rem}
.form-notice:target,.form-notice.is-visible{display:block}
.form-notice--error{border-left-color:#E28A82}
.form-reset{margin-top:.8rem;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--invert-fg);font:600 .9rem "Barlow",sans-serif;cursor:pointer}
.contact-form.is-sent{display:none}
.contact-form .btn[disabled]{cursor:wait;opacity:.65}

/* ---------- Unterseiten (Impressum, Datenschutz, 404) ---------- */
.page{padding:clamp(2rem,6vw,3.5rem) 0 clamp(2.5rem,8vw,4.5rem)}
.page h1{font-size:clamp(2rem,5vw,2.75rem);margin:0 0 2rem}
.crumb{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:1.75rem}
.crumb a{color:var(--ink-soft);text-decoration:none}
.crumb a:hover{color:var(--ink)}
.crumb span{margin:0 .55rem;opacity:.5}
.legal-content{background:var(--sheet);border:1px solid var(--rule);padding:clamp(1.5rem,4vw,2.25rem)}
.legal-content h2{font-size:1.2rem;max-width:none;margin:2.25rem 0 .75rem;color:var(--ink)}
.legal-content h2:first-child{margin-top:0}
.legal-content p,.legal-content li{font-size:.95rem;line-height:1.75;color:var(--ink-soft);margin:0 0 1rem}
.legal-content ul{margin:0 0 1rem;padding-left:1.2rem}
.legal-content li{margin-bottom:.4rem}
.legal-content a{color:var(--ink);text-decoration:underline;text-underline-offset:.12em;text-decoration-color:rgba(20,23,26,.35)}
[data-theme="dark"] .legal-content a{text-decoration-color:rgba(232,236,234,.35)}
.legal-content a:hover{text-decoration-color:currentColor}
.legal-content strong{color:var(--ink)}
.legal-note{font-size:.85rem;opacity:1}
.icon-external{display:inline-block;width:.75em;height:.75em;margin-left:.2em;vertical-align:-.08em}

/* ---------- Footer ---------- */
.site-footer{padding:28px 0;font-size:.86rem;color:var(--ink-soft);border-top:1px solid var(--rule)}
.site-footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.site-footer a{color:var(--ink-soft)}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .contact-grid{grid-template-columns:1fr}
  .problem-item{grid-template-columns:2.25rem 1fr;gap:.85rem}
  .services .svc{grid-template-columns:1fr;gap:.5rem}
  .pos{grid-template-columns:2.25rem 1fr;gap:.75rem}
  .pos .preis{grid-column:2;text-align:left;margin-top:.4rem}
  section{padding:56px 0}
  .refs{overflow-x:auto}
  .refs td.proj,.refs td.sys{width:auto}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
