
:root{
  --paper:#ffffff;
  --paper-2:#f6f3ee;
  --paper-3:#efe9dd;
  --ink:#131318;
  --ink-soft:#5b5c66;
  --red:#d81f2c;
  --red-deep:#a11520;
  --line:#e6e1d3;
  --focus:#1c63c9;
  --shadow: 0 1px 0 rgba(20,18,14,0.05);
  --card-shadow: 0 18px 40px -22px rgba(20,18,14,0.35);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#101012; --paper-2:#19191c; --paper-3:#212124;
    --ink:#f2efe6; --ink-soft:#a8a5ad;
    --red:#ef4650; --red-deep:#ff7d7d; --line:#2c2c30;
    --shadow: 0 1px 0 rgba(0,0,0,0.4);
    --card-shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
  }
}
:root[data-theme="dark"]{
  --paper:#101012; --paper-2:#19191c; --paper-3:#212124;
  --ink:#f2efe6; --ink-soft:#a8a5ad;
  --red:#ef4650; --red-deep:#ff7d7d; --line:#2c2c30;
  --shadow: 0 1px 0 rgba(0,0,0,0.4);
  --card-shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
}

*{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(--paper); color:var(--ink);
  font-family:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  line-height:1.6; -webkit-font-smoothing:antialiased;
  padding-bottom:0;
}
body.has-sticky-bar{padding-bottom:64px;}
@media (min-width:701px){ body.has-sticky-bar{padding-bottom:0;} }
img{max-width:100%;display:block;}
a{color:inherit;}
::selection{background:var(--red);color:#fff;}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,48px);}

.skip-link{position:absolute; left:12px; top:-60px; background:var(--ink); color:var(--paper); padding:10px 16px; z-index:110; text-decoration:none; transition:top .2s;}
.skip-link:focus{top:12px;}

.eyebrow{font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--red); display:flex; align-items:center; gap:.6em; margin:0;}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--red);display:inline-block;}

h1,h2,h3{font-family:"Big Shoulders Display","Arial Narrow",sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:.01em; text-wrap:balance; margin:0; color:var(--ink); overflow-wrap:break-word;}
.mono{font-family:"IBM Plex Mono",monospace;}
.pending{color:var(--ink-soft); font-style:italic;}

/* ---------- utility bar ---------- */
.utility-bar{background:var(--red); color:#fff;}
.utility-bar .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:8px clamp(20px,4vw,48px); font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.02em;}
.utility-bar a{color:#fff; text-decoration:none; display:inline-flex; align-items:center; gap:5px;}
.utility-bar a:hover{text-decoration:underline;}
.utility-bar a svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2;}
.utility-bar .utility-links{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.utility-bar .is-pending{display:inline-flex; align-items:center; gap:5px; opacity:.85; font-style:italic;}
.utility-bar .is-pending svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2;}
@media (max-width:700px){ .utility-bar .wrap > span:first-child{display:none;} .utility-bar .wrap{justify-content:center;} }

/* ---------- breadcrumbs ---------- */
.breadcrumbs{padding:14px 0; border-bottom:1px solid var(--line); background:var(--paper-2);}
.breadcrumbs ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; font-family:"IBM Plex Mono",monospace; font-size:.76rem; color:var(--ink-soft);}
.breadcrumbs a{text-decoration:none; color:var(--ink-soft);}
.breadcrumbs a:hover{color:var(--red);}
.breadcrumbs li:not(:last-child)::after{content:"/"; margin-left:6px; color:var(--line-strong,#c7c0ae);}
.breadcrumbs li[aria-current]{color:var(--ink);}

/* ---------- header ---------- */
header{position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:1px solid var(--line); transition:box-shadow .2s, padding .2s;}
header.scrolled{box-shadow:0 6px 18px -14px rgba(20,18,14,.5);}
.headbar{display:flex; align-items:center; justify-content:space-between; padding:16px clamp(20px,4vw,48px); gap:16px; transition:padding .2s;}
header.scrolled .headbar{padding-top:10px; padding-bottom:10px;}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink); min-width:0;}
.brand .mark{width:34px;height:34px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;flex:none;}
.brand .mark svg{width:19px;height:19px;fill:var(--red);}
.brand .word{font-family:"Big Shoulders Display",sans-serif; font-weight:900; font-size:1.28rem; letter-spacing:.01em; text-transform:uppercase; line-height:1; white-space:nowrap;}
.brand .word b{color:var(--red);}
@media (max-width:520px){ .brand .word{font-size:1.02rem;} }

nav.site-nav{display:flex; align-items:center; gap:24px;}
nav.site-nav a{text-decoration:none; font-size:.9rem; font-weight:500; color:var(--ink-soft); padding:6px 0;}
nav.site-nav a:hover, nav.site-nav a[aria-current="page"]{color:var(--ink);}
nav.site-nav a[aria-current="page"]{border-bottom:2px solid var(--red);}

.nav-dropdown{position:relative;}
.nav-dropdown summary{list-style:none; cursor:pointer; font-size:.9rem; font-weight:500; color:var(--ink-soft); padding:6px 16px 6px 0; display:flex; align-items:center; gap:6px;}
.nav-dropdown summary::-webkit-details-marker{display:none;}
.nav-dropdown summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);}
.nav-dropdown:hover summary, .nav-dropdown[open] summary{color:var(--ink);}
.nav-dropdown summary.current{color:var(--ink); border-bottom:2px solid var(--red);}
.nav-dropdown .panel{list-style:none; margin:0; padding:8px; position:absolute; top:100%; left:0; background:var(--paper); border:1px solid var(--line); box-shadow:var(--card-shadow); min-width:270px; z-index:10;}
.nav-dropdown .panel li a{display:block; padding:10px 12px; font-size:.88rem; text-decoration:none; color:var(--ink); white-space:nowrap;}
.nav-dropdown .panel li a:hover{background:var(--paper-2); color:var(--red);}
.nav-dropdown .panel li.all a{border-top:1px solid var(--line); margin-top:6px; padding-top:12px; color:var(--red); font-weight:600;}

.head-actions{display:flex; align-items:center; gap:18px;}
.head-phone{display:flex; align-items:center; gap:8px; text-decoration:none; color:var(--ink); font-family:"IBM Plex Mono",monospace; font-size:.86rem; white-space:nowrap;}
.head-phone svg{width:16px;height:16px;stroke:var(--red);fill:none;stroke-width:1.8;flex:none;}
.head-phone.is-pending{color:var(--ink-soft); font-style:italic; pointer-events:none;}
.btn{display:inline-flex; align-items:center; gap:10px; padding:13px 22px; font-weight:600; font-size:.9rem; text-decoration:none; border:1px solid transparent; cursor:pointer; background:none; white-space:nowrap;}
@media (max-width:360px){ .btn{white-space:normal; text-align:left;} }
.btn-primary{background:var(--red); color:#fff;}
.btn-primary:hover{background:var(--red-deep);}
.btn-outline{border-color:var(--line); color:var(--ink);}
.btn-outline:hover{border-color:var(--ink);}
.btn-sm{padding:10px 16px; font-size:.84rem;}

.mobile-nav{display:none;}
@media (max-width:960px){
  nav.site-nav{display:none;}
  .head-actions .head-phone-label{display:none;}
  .mobile-nav{display:block;}
  .mobile-nav > summary{list-style:none; width:40px;height:40px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; cursor:pointer;}
  .mobile-nav > summary svg{stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round;}
  .mobile-nav > summary::-webkit-details-marker{display:none;}
  .mobile-nav[open] > summary{background:var(--ink); color:var(--paper); border-color:var(--ink);}
  /* Belt-and-suspenders: explicitly display:none the sheet while closed.
     Chromium's native "don't render closed <details> content" mechanism
     hides it visually either way, but leaving it unconditional can still
     leak into scrollWidth/layout measurement — this removes that. JS sets
     the real .open property, which drops this selector and falls through
     to the flex rule below. */
  .mobile-nav:not([open]) .sheet{display:none;}
  .mobile-nav .sheet{position:absolute; left:0; right:0; top:100%; background:var(--paper); border-bottom:1px solid var(--line); padding:8px clamp(20px,4vw,48px) 20px; display:flex; flex-direction:column; max-height:calc(100vh - 70px); overflow-y:auto;}
  .mobile-nav .sheet a{padding:12px 0; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--line); font-size:1rem;}
  .mobile-nav .sheet a.cta{background:var(--red); color:#fff; text-align:center; border:none; margin-top:10px; padding:14px;}
  .mobile-nav .sheet .head-phone{border-bottom:1px solid var(--line); padding:12px 0;}
  .mobile-nav details.sub{border-bottom:1px solid var(--line);}
  .mobile-nav details.sub summary{padding:12px 0; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;}
  .mobile-nav details.sub summary::-webkit-details-marker{display:none;}
  .mobile-nav details.sub .sub-list{display:flex; flex-direction:column; padding-bottom:8px;}
  .mobile-nav details.sub .sub-list a{border-bottom:none; padding:8px 0 8px 14px; color:var(--ink-soft);}
}
@media (min-width:961px){ .head-actions .btn-sm{display:none;} }
/* Below 700px the mobile sticky bottom bar already offers "Offerte anfragen",
   so drop the header's copy there to stop it colliding with the wordmark
   and the burger icon on narrow phones (it stays visible 701-960px). */
@media (max-width:700px){ .head-actions .btn-sm{display:none;} }

/* ---------- hero ---------- */
.hero{padding:clamp(44px,7vw,80px) 0 clamp(48px,7vw,80px); background:radial-gradient(circle at 82% 12%, var(--paper-2) 0%, var(--paper) 60%);}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
@media (max-width:980px){ .hero-grid{grid-template-columns:1fr; gap:44px;} }
.hero-kicker{font-family:"IBM Plex Sans",sans-serif; font-weight:600; font-size:1.05rem; color:var(--ink-soft); margin-top:16px;}
.hero h1{font-size:clamp(2.3rem,5vw,3.9rem); line-height:1; max-width:15ch; margin-top:8px;}
.hero h1 em{font-style:normal; color:var(--red);}
.hero .lede{margin-top:20px; max-width:52ch; font-size:1.05rem; color:var(--ink-soft);}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:30px;}
.hero-actions .btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linejoin:round;}

/* ---------- dark hero (bold cover, graphic — no stock photos) ---------- */
.hero-dark{position:relative; background:#0b0b0d; color:#f2efe6; overflow:hidden; padding:clamp(52px,8vw,92px) 0 clamp(56px,8vw,96px);}
.hero-dark::before{content:""; position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 56px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 56px);
  -webkit-mask-image: radial-gradient(circle at 78% 22%, black, transparent 68%);
  mask-image: radial-gradient(circle at 78% 22%, black, transparent 68%);
}
.hero-dark::after{content:""; position:absolute; inset:0; background:radial-gradient(circle at 82% 12%, rgba(216,31,44,.4), transparent 55%);}
.hero-dark > .wrap{position:relative; z-index:1;}
.hero-dark .eyebrow{color:#ff6b6b;}
.hero-dark .eyebrow::before{background:#ff6b6b;}
.hero-dark .hero-kicker{color:#c6c3ca;}
.hero-dark h1{color:#fff;}
.hero-dark h1 em{font-style:normal; color:#ff5a5a;}
.hero-dark .lede{color:#c6c3ca;}
.hero-dark .btn-outline{border-color:rgba(240,238,231,.35); color:#fff;}
.hero-dark .btn-outline:hover{border-color:#fff; background:rgba(255,255,255,.08);}

/* ---------- readout panel (technical HUD look for the dark hero) ---------- */
.readout-panel{position:relative; display:flex; flex-direction:column; gap:12px; max-width:300px; margin-left:auto;}
@media (max-width:980px){ .readout-panel{margin-left:0; max-width:420px;} }
.readout-tile{display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.14); padding:15px 18px; transition:transform .25s ease, background .25s ease;}
.readout-tile:hover{transform:translateX(-3px); background:rgba(255,255,255,.09);}
.readout-tile .ic{width:38px; height:38px; flex:none; background:rgba(216,31,44,.18); border:1px solid rgba(216,31,44,.5); display:flex; align-items:center; justify-content:center;}
.readout-tile .ic svg{width:18px;height:18px;stroke:#ff6b6b;fill:none;stroke-width:1.8;}
.readout-tile .meta{display:flex; flex-direction:column; gap:2px;}
.readout-tile .meta .k{font-family:"IBM Plex Mono",monospace; font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; color:#9d9aa2;}
.readout-tile .meta .v{font-family:"Big Shoulders Display",sans-serif; font-weight:800; font-size:1.2rem; color:#fff; letter-spacing:.01em;}

/* ---------- hero spec panel (calm, precise, not playful) ---------- */
.spec-panel{position:relative; border:1px solid var(--line); background:var(--paper); box-shadow:var(--card-shadow); padding:28px; overflow:hidden;}
.spec-trace{position:absolute; inset:0; width:100%; height:100%; opacity:.5;}
.spec-trace path{fill:none; stroke:var(--red); stroke-width:1.2;}
.spec-trace .flow{stroke-dasharray:5 11; animation:specflow 7s linear infinite;}
@keyframes specflow{ to{ stroke-dashoffset:-160; } }
.spec-trace .node{fill:var(--red); stroke:none;}
@media (prefers-reduced-motion:reduce){ .spec-trace .flow{animation:none;} }
.spec-grid{position:relative; z-index:1; display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.spec-tile{background:var(--paper); padding:18px 16px; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; gap:10px; transition:transform .25s ease, box-shadow .25s ease;}
.spec-tile:hover{transform:translateY(-3px); box-shadow:0 14px 30px -18px rgba(20,18,14,.4); z-index:2; position:relative;}
.spec-tile svg{width:22px;height:22px;stroke:var(--red);fill:none;stroke-width:1.6;}
.spec-tile .label{font-size:.92rem; font-weight:600;}
.spec-tile .val{font-family:"IBM Plex Mono",monospace; font-size:.7rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em;}
.spec-foot{position:relative; z-index:1; margin-top:16px; display:flex; justify-content:space-between; font-family:"IBM Plex Mono",monospace; font-size:.7rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em;}

/* ---------- trust bar (dark, directly under the dark hero) ---------- */
.trust-bar{background:#0b0b0d; border-top:1px solid rgba(255,255,255,.1);}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.1);}
@media (max-width:820px){ .trust-grid{grid-template-columns:repeat(2,1fr);} }
.trust-item{background:#0b0b0d; padding:26px 22px; display:flex; align-items:flex-start; gap:14px; min-width:0;}
.trust-item > span{min-width:0; overflow-wrap:break-word;}
.trust-item .ic{width:38px; height:38px; flex:none; background:rgba(216,31,44,.18); border:1px solid rgba(216,31,44,.5); display:flex; align-items:center; justify-content:center;}
.trust-item .ic svg{width:19px;height:19px;stroke:#ff6b6b;fill:none;stroke-width:1.7;}
.trust-item strong{display:block; color:#fff; font-family:"Big Shoulders Display",sans-serif; font-weight:800; font-size:1.02rem; text-transform:uppercase; letter-spacing:.01em;}
.trust-item span{font-size:.86rem; color:#a8a5ad;}

/* ---------- section shell ---------- */
section{padding:clamp(52px,8vw,96px) 0;}
.panel-bg{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:40px; flex-wrap:wrap;}
.section-head h2{font-size:clamp(1.8rem,3.6vw,2.5rem); margin-top:10px;}
.section-head p{max-width:42ch; color:var(--ink-soft); margin:0;}

/* ---------- leistungen grid (5 items, flexible) ---------- */
.cards{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); border:1px solid var(--line); background:var(--paper);}
.cards.n3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){ .cards.n3{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .cards, .cards.n3{grid-template-columns:1fr;} }
.card{background:var(--paper); display:flex; flex-direction:column; text-decoration:none; color:var(--ink); will-change:transform; border-right:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden;}
.card-media{position:relative; aspect-ratio:16/10; background:linear-gradient(135deg,#232326,#0b0b0d); display:flex; align-items:center; justify-content:center; overflow:hidden;}
.card-media::after{content:""; position:absolute; inset:0; background:radial-gradient(circle at 28% 22%, rgba(216,31,44,.45), transparent 62%);}
.card-media svg{position:relative; z-index:1; width:25%; height:25%; min-width:40px; min-height:40px; stroke:#fff; fill:none; stroke-width:1.3; opacity:.92; transition:transform .3s ease;}
.card:hover .card-media svg{transform:scale(1.08);}
.card-media .badge{position:absolute; top:12px; left:12px; z-index:2; width:30px; height:30px; background:var(--red); display:flex; align-items:center; justify-content:center;}
.card-media .badge svg{width:16px;height:16px; min-width:0; min-height:0; stroke:#fff; fill:none; stroke-width:2.1; opacity:1;}
.card-body{padding:20px 22px 24px; display:flex; flex-direction:column; gap:12px; flex:1;}
.card h3{font-size:1.14rem;}
.card p{margin:0; color:var(--ink-soft); font-size:.92rem;}
.card .go{margin-top:auto; font-family:"IBM Plex Mono",monospace; font-size:.74rem; color:var(--red); text-transform:uppercase; letter-spacing:.08em;}
.card:hover{box-shadow:inset 0 0 0 1px var(--red);}

/* ---------- banner ---------- */
.banner{background:var(--ink); color:var(--paper);}
:root[data-theme="dark"] .banner{background:var(--red-deep);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .banner{background:var(--red-deep);}}
.banner-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding:36px 0;}
.banner-inner > div:first-child{min-width:0; flex:1 1 260px;}
.banner h2{color:var(--paper); font-size:clamp(1.5rem,3.2vw,2.1rem);}
.banner p{margin:6px 0 0; color:#cfcdd6; max-width:48ch;}
.banner .btn-outline{border-color:rgba(240,238,231,.4); color:var(--paper);}
.banner .btn-outline:hover{border-color:var(--paper); background:rgba(240,238,231,.08);}

/* ---------- process ---------- */
.process{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media (max-width:900px){ .process{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .process{grid-template-columns:1fr;} }
.step{border-top:2px solid var(--red); padding-top:16px;}
.step .num{font-family:"IBM Plex Mono",monospace; color:var(--red); font-size:.8rem;}
.step h3{font-size:1.05rem; text-transform:none; font-family:"IBM Plex Sans",sans-serif; font-weight:600; letter-spacing:0; margin-top:8px;}
.step p{margin:8px 0 0; color:var(--ink-soft); font-size:.92rem;}

/* ---------- split / values ---------- */
.split{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start;}
@media (max-width:820px){ .split{grid-template-columns:1fr; gap:36px;} }
@media (min-width:821px){ .split-contact{grid-template-columns:.85fr 1.15fr;} }
.split p{color:var(--ink-soft); max-width:58ch;}
.split p + p{margin-top:14px;}
.list-check{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px;}
.list-check li{display:flex; gap:12px; align-items:flex-start; font-size:.96rem; color:var(--ink);}
.list-check svg{width:18px;height:18px;flex:none;margin-top:3px;stroke:var(--red);fill:none;stroke-width:2;}

.values{display:flex; flex-direction:column;}
.value-row{padding:20px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:56px 1fr; gap:16px;}
.value-row:last-child{border-bottom:1px solid var(--line);}
.value-row .n{font-family:"IBM Plex Mono",monospace; color:var(--red); font-size:.84rem; padding-top:2px;}
.value-row h3{font-size:1.02rem; text-transform:none; font-weight:600; font-family:"IBM Plex Sans",sans-serif; letter-spacing:0;}
.value-row p{margin:6px 0 0; color:var(--ink-soft); font-size:.92rem;}

/* ---------- photo placeholder ---------- */
.photo-slot{border:1px dashed var(--line); background:var(--paper-2); aspect-ratio:4/5; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:var(--ink-soft); text-align:center; padding:24px;}
.photo-slot svg{width:34px;height:34px;stroke:var(--ink-soft);fill:none;stroke-width:1.3;}
.photo-slot span{font-size:.82rem; max-width:22ch;}

/* ---------- referenzen (placeholder-marked) ---------- */
.ref-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:900px){ .ref-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .ref-grid{grid-template-columns:1fr;} }
.ref-card{border:1px solid var(--line); background:var(--paper); display:flex; flex-direction:column;}
.ref-photo{aspect-ratio:4/3; background:repeating-linear-gradient(135deg, var(--paper-2) 0 12px, var(--paper-3) 12px 24px); display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--line);}
.ref-photo span{font-family:"IBM Plex Mono",monospace; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); background:var(--paper); padding:6px 10px; border:1px solid var(--line);}
.ref-body{padding:18px 18px 20px; display:flex; flex-direction:column; gap:6px;}
.ref-tag{font-family:"IBM Plex Mono",monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--red);}
.ref-body h3{font-size:1.05rem; text-transform:none; font-weight:600; font-family:"IBM Plex Sans",sans-serif; letter-spacing:0;}
.ref-body p{margin:0; color:var(--ink-soft); font-size:.88rem;}

/* ---------- reviews placeholder ---------- */
.reviews-box{border:1px solid var(--line); background:var(--paper); padding:32px; display:flex; align-items:center; gap:24px; flex-wrap:wrap;}
.reviews-box .g{width:44px; height:44px; flex:none; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-family:"Big Shoulders Display",sans-serif; font-weight:900; color:var(--ink-soft);}
.reviews-box p{margin:0; color:var(--ink-soft); font-size:.94rem; max-width:56ch;}

/* ---------- route / coverage ---------- */
.route{display:flex; flex-wrap:wrap; align-items:center; gap:0; font-family:"IBM Plex Mono",monospace; font-size:.94rem;}
.route .stop{padding:9px 14px; border:1px solid var(--line); background:var(--paper); margin:3px 0;}
.route .stop.home{border-color:var(--red); color:var(--red); font-weight:500;}
.route .wire{width:20px; height:1px; background:var(--line); flex:none;}

/* ---------- contact ---------- */
.contact-list{list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:18px; max-width:44ch;}
.contact-list li{display:flex; gap:16px; align-items:flex-start; border-top:1px solid var(--line); padding-top:18px;}
.contact-list li:first-child{border-top:none; padding-top:0;}
.contact-list .label{font-family:"IBM Plex Mono",monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-soft); width:100px; flex:none; padding-top:3px;}
.contact-list .field-value{font-size:1.05rem;}
.contact-list .note{display:block; font-size:.82rem; color:var(--ink-soft); margin-top:3px;}
.info-box{border:1px dashed var(--line); padding:24px; font-size:.92rem; color:var(--ink-soft); max-width:44ch;}
.info-box strong{color:var(--red); display:block; margin-bottom:6px; font-family:"IBM Plex Mono",monospace; font-size:.74rem; text-transform:uppercase; letter-spacing:.08em;}

/* ---------- form ---------- */
.form-card{border:1px solid var(--line); background:var(--paper); padding:clamp(24px,4vw,40px);}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:640px){ .form-grid{grid-template-columns:1fr;} }
.form-grid .full{grid-column:1/-1;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-family:"IBM Plex Mono",monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft);}
.field input, .field select, .field textarea{
  font-family:"IBM Plex Sans",sans-serif; font-size:.96rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); padding:12px 14px;
  width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--focus); outline-offset:1px; border-color:var(--focus);}
.field textarea{min-height:130px; resize:vertical;}
.field .req{color:var(--red);}
.field-hint{font-size:.78rem; color:var(--ink-soft);}
.form-foot{margin-top:22px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.form-note{font-size:.82rem; color:var(--ink-soft); max-width:40ch;}
.form-success{display:none; border:1px solid var(--red); background:var(--paper-2); padding:22px; align-items:center; gap:14px;}
.form-success.is-visible{display:flex;}
.form-success svg{width:24px;height:24px;stroke:var(--red);fill:none;stroke-width:2;flex:none;}
.field.has-error input, .field.has-error select, .field.has-error textarea{border-color:var(--red);}
.field-error{color:var(--red); font-size:.78rem; display:none;}
.field.has-error .field-error{display:block;}

/* ---------- mobile sticky bar ---------- */
.sticky-bar{position:fixed; left:0; right:0; bottom:0; z-index:60; display:none; border-top:1px solid var(--line); background:var(--paper); box-shadow:0 -8px 24px -18px rgba(20,18,14,.5);}
@media (max-width:700px){ .sticky-bar{display:grid; grid-template-columns:1fr 1fr;} }
.sticky-bar a{display:flex; align-items:center; justify-content:center; gap:8px; padding:16px 10px; text-decoration:none; font-weight:600; font-size:.88rem;}
.sticky-bar a svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linejoin:round;}
.sticky-bar .call{color:var(--ink); border-right:1px solid var(--line);}
.sticky-bar .call.is-pending{color:var(--ink-soft);}
.sticky-bar .offer{background:var(--red); color:#fff;}

/* ---------- reveal ---------- */
.reveal{transition:opacity .6s ease, transform .6s ease;}
.reveal.pre-hide{opacity:0; transform:translateY(22px);}
@media (prefers-reduced-motion:reduce){.reveal.pre-hide{opacity:1; transform:none; transition:none;}}
@media print{.reveal.pre-hide{opacity:1 !important; transform:none !important;}}

/* ---------- footer ---------- */
footer{background:var(--ink); color:#a29fa6; border-top:1px solid var(--line); font-size:.88rem;}
:root[data-theme="dark"] footer{background:#0b0b0d;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) footer{background:#0b0b0d;}}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding:52px 0 36px;}
@media (max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr; gap:32px;} }
@media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }
.footer-brand{display:flex; align-items:center; gap:10px; font-family:"Big Shoulders Display",sans-serif; font-weight:900; font-size:1.1rem; letter-spacing:.01em; text-transform:uppercase; color:var(--paper);}
.footer-brand .mark{width:28px;height:28px;background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none;}
.footer-brand .mark svg{width:16px;height:16px;fill:var(--red);}
.footer-col p{color:#cfcdd6; font-size:.88rem; margin:14px 0 0;}
.footer-col h4{font-family:"IBM Plex Mono",monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:#8d8a92; margin:0 0 14px;}
.footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.footer-col a{color:#cfcdd6; text-decoration:none; font-size:.9rem;}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(243,240,234,.14); padding:22px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.8rem;}
.footer-bottom a{color:#8d8a92; text-decoration:none;}
.footer-bottom a:hover{color:#fff;}
.footer-legal{display:flex; gap:18px; flex-wrap:wrap;}

/* =========================================================
   PREMIUM REFRESH 2026 — Elektro Anker
   ========================================================= */
:root{
  --radius:2px;
  --max:1240px;
  --electric:#ff3042;
  --dark:#08090b;
  --dark-2:#111216;
  --muted-dark:#a7a9b1;
}
.wrap{max-width:var(--max);}
.pending,.is-pending{display:none !important;}
.sticky-bar:has(.call.is-pending){grid-template-columns:1fr;}
.sticky-bar .call.is-pending{display:none !important;}

header{backdrop-filter:saturate(140%) blur(14px); background:color-mix(in srgb,var(--paper) 92%,transparent);}
.headbar{min-height:76px;}
.brand .mark{border-radius:2px; transform:skew(-4deg); box-shadow:10px 10px 0 -8px var(--red);}
.brand .mark svg{transform:skew(4deg);}
nav.site-nav{gap:30px;}
nav.site-nav a,.nav-dropdown summary{font-size:.88rem; font-weight:600;}
.btn{border-radius:2px; transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;}
.btn:hover{transform:translateY(-1px);}
.btn-primary{box-shadow:0 12px 28px -16px rgba(216,31,44,.85);}
.btn-primary:hover{box-shadow:0 18px 34px -18px rgba(216,31,44,.9);}
.btn-lg{padding:15px 22px;font-size:.93rem;}
.btn-ghost{border-color:rgba(255,255,255,.22);color:#fff;background:rgba(255,255,255,.03);}
.btn-ghost:hover{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.07);}
.btn-ghost-light{border:1px solid rgba(255,255,255,.24);color:#fff;}
.btn-ghost-light:hover{border-color:#fff;background:rgba(255,255,255,.07);}
.text-link{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:5px;}
.text-link span{color:var(--red);transition:transform .2s ease;}.text-link:hover span{transform:translateX(4px);}

/* Hero */
.hero-premium{position:relative;overflow:hidden;background:var(--dark);color:#fff;padding:clamp(68px,8vw,116px) 0 0;}
.hero-premium::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 14%,rgba(216,31,44,.22),transparent 31%),linear-gradient(115deg,transparent 0 62%,rgba(255,255,255,.025) 62% 63%,transparent 63%);pointer-events:none;}
.hero-premium::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 92%);pointer-events:none;}
.hero-premium-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);gap:clamp(48px,7vw,94px);align-items:center;padding-bottom:clamp(68px,8vw,112px);}
.hero-copy{padding-top:10px;}
.hero-premium .eyebrow{color:#ff6b76}.hero-premium .eyebrow::before{background:#ff6b76;}
.hero-premium h1{font-size:clamp(2.1rem,4.3vw,3.9rem);line-height:.98;letter-spacing:-.02em;max-width:10.5ch;color:#fff;margin-top:20px;}
.hero-premium h1 em{font-style:normal;color:#ff5260;}
.hero-premium .lede{max-width:61ch;color:#c7c8ce;font-size:clamp(1.02rem,1.35vw,1.14rem);margin:26px 0 0;line-height:1.75;}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:28px;color:#8e9098;font-family:"IBM Plex Mono",monospace;font-size:.69rem;text-transform:uppercase;letter-spacing:.08em;}
.hero-meta span{display:flex;align-items:center;gap:8px}.hero-meta span::before{content:"";width:5px;height:5px;background:var(--red);}

/* power board */
.power-board{position:relative;background:rgba(17,18,22,.88);border:1px solid rgba(255,255,255,.13);box-shadow:0 44px 80px -50px #000;overflow:hidden;}
.power-board::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.045),transparent 28%);}
.power-board-top{display:flex;justify-content:space-between;gap:18px;padding:13px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:#797b84;}
.status-dot{color:#aeb0b6}.status-dot::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#67db8c;margin-right:8px;box-shadow:0 0 0 4px rgba(103,219,140,.08);}
.power-core{min-height:270px;display:grid;place-items:center;text-align:center;padding:34px;position:relative;}
.power-core::before,.power-core::after{content:"";position:absolute;background:rgba(255,255,255,.08)}.power-core::before{width:1px;height:72%;left:50%;top:14%}.power-core::after{height:1px;width:72%;top:50%;left:14%;}
.power-core p{position:relative;z-index:2;color:#8f919a;font-size:.86rem;margin:22px 0 0;line-height:1.6;}.power-core p strong{color:#fff;font-weight:600;}
.power-ring{position:relative;z-index:2;width:112px;height:112px;border-radius:50%;border:1px solid rgba(255,255,255,.15);display:grid;place-items:center;background:#0c0d10;box-shadow:0 0 0 18px rgba(216,31,44,.04),0 0 70px rgba(216,31,44,.13);}
.power-ring::before{content:"";position:absolute;inset:10px;border-radius:50%;border:1px dashed rgba(255,82,96,.42);animation:spin 18s linear infinite;}
.bolt{font-family:"Big Shoulders Display",sans-serif;font-size:3.8rem;color:#ff5260;line-height:1;filter:drop-shadow(0 0 18px rgba(216,31,44,.4));}
@keyframes spin{to{transform:rotate(360deg)}}
.power-links{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(255,255,255,.1);}
.power-links a{position:relative;padding:17px 18px;text-decoration:none;display:grid;grid-template-columns:30px 1fr;column-gap:10px;border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);transition:background .2s ease;}
.power-links a:hover{background:rgba(255,255,255,.05)}.power-links a>span{grid-row:1/3;font-family:"IBM Plex Mono",monospace;color:#ff5260;font-size:.64rem;padding-top:3px;}.power-links strong{color:#fff;font-size:.88rem}.power-links small{color:#777984;font-size:.72rem;margin-top:2px;}
.fault-link{position:relative;z-index:2;display:flex;align-items:center;gap:12px;padding:15px 18px;text-decoration:none;color:#fff;font-size:.8rem;background:rgba(216,31,44,.08);}.fault-link>span:nth-child(2){flex:1}.fault-link strong{color:#ff6672}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#ff5260;box-shadow:0 0 0 6px rgba(255,82,96,.08);}

/* proof */
.proof-strip{padding:0;background:#0f1013;border-top:1px solid rgba(255,255,255,.08);}
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);padding-top:0;padding-bottom:0;}
.proof-grid>div{display:grid;grid-template-columns:32px 1fr;gap:12px;padding:24px 20px;border-right:1px solid rgba(255,255,255,.08);}.proof-grid>div:first-child{border-left:1px solid rgba(255,255,255,.08)}
.proof-n{font-family:"IBM Plex Mono",monospace;color:#ff5260;font-size:.64rem;padding-top:3px}.proof-grid p{margin:0;color:#858790;font-size:.78rem;line-height:1.5}.proof-grid strong{color:#fff;font-size:.84rem;font-weight:600;}

/* services */
.services-premium{padding-top:clamp(78px,9vw,126px);}.section-head-wide h2{max-width:17ch;font-size:clamp(2.4rem,4.7vw,4rem);line-height:.95;}.section-head-wide>p{max-width:48ch;}
.service-stack{border-top:1px solid var(--line);}
.service-row{display:grid;grid-template-columns:48px 64px minmax(210px,.78fr) minmax(280px,1.25fr) 34px;gap:18px;align-items:center;padding:26px 12px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:padding .25s ease,background .25s ease;}
.service-row:hover{background:var(--paper-2);padding-left:20px;padding-right:20px}.service-no{font-family:"IBM Plex Mono",monospace;color:var(--red);font-size:.7rem}.service-icon{width:50px;height:50px;border:1px solid var(--line);display:grid;place-items:center;font-size:1.45rem;color:var(--red);background:var(--paper);}.service-main{display:flex;flex-direction:column}.service-main strong{font-family:"Big Shoulders Display",sans-serif;font-size:1.45rem;text-transform:uppercase;line-height:1.05}.service-main small{margin-top:5px;color:var(--ink-soft);font-family:"IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;font-size:.63rem}.service-row p{margin:0;color:var(--ink-soft);font-size:.9rem;max-width:60ch}.service-arrow{font-size:1.2rem;color:var(--red);transition:transform .2s}.service-row:hover .service-arrow{transform:translate(4px,-4px)}

/* statement */
.statement-section{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}.statement-section::after{content:"ANKER";position:absolute;right:-1vw;bottom:-11vw;font-family:"Big Shoulders Display",sans-serif;font-weight:900;font-size:min(32vw,460px);line-height:.8;color:rgba(255,255,255,.025);pointer-events:none}.statement-grid{position:relative;z-index:1;display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(60px,9vw,130px);align-items:start}.statement-section .eyebrow{color:#ff6b76}.statement-section .eyebrow::before{background:#ff6b76}.statement-copy h2{font-size:clamp(2.9rem,5.6vw,5rem);line-height:.9;color:#fff;margin-top:18px}.statement-copy h2 em{font-style:normal;color:#ff5260}.statement-copy>p:not(.eyebrow){color:#aaaab2;max-width:48ch;margin:26px 0}.statement-section .text-link{color:#fff;border-color:rgba(255,255,255,.2)}
.principles{border-top:1px solid rgba(255,255,255,.14)}.principles article{display:grid;grid-template-columns:50px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.14)}.principles article>span{font-family:"IBM Plex Mono",monospace;color:#ff5260;font-size:.7rem;padding-top:4px}.principles h3{font-family:"IBM Plex Sans",sans-serif;text-transform:none;letter-spacing:0;color:#fff;font-size:1.06rem}.principles p{color:#9698a0;margin:8px 0 0;font-size:.9rem;max-width:48ch}

/* region */
.region-section{background:var(--paper-2)}.region-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,8vw,100px);align-items:center}.region-grid h2{font-size:clamp(2.5rem,4.6vw,4rem);line-height:.95;max-width:12ch;margin-top:14px}.region-grid>div:first-child>p:not(.eyebrow){color:var(--ink-soft);max-width:46ch;margin:22px 0 28px}
.region-map{position:relative;min-height:390px;background:var(--paper);border:1px solid var(--line);overflow:hidden;padding:32px}.region-map::before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:24px 24px;opacity:.65}.region-map::after{content:"";position:absolute;width:340px;height:340px;border:1px solid var(--line);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 70px rgba(216,31,44,.025)}.region-home{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;background:var(--ink);color:#fff;padding:14px 20px;box-shadow:0 18px 30px -18px rgba(0,0,0,.5)}.region-home small{font-family:"IBM Plex Mono",monospace;color:#aaa;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}.map-pulse{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--red);top:-5px;box-shadow:0 0 0 8px rgba(216,31,44,.12)}.place-cloud span{position:absolute;z-index:2;background:var(--paper);border:1px solid var(--line);padding:6px 9px;font-size:.72rem;color:var(--ink-soft);box-shadow:0 8px 18px -18px #000}.place-cloud span:nth-child(1){left:8%;top:16%}.place-cloud span:nth-child(2){right:9%;top:17%}.place-cloud span:nth-child(3){left:9%;bottom:18%}.place-cloud span:nth-child(4){right:12%;bottom:13%}.place-cloud span:nth-child(5){right:6%;top:43%}.place-cloud span:nth-child(6){left:4%;top:47%}.place-cloud span:nth-child(7){left:32%;bottom:6%}.place-cloud span:nth-child(8){right:30%;top:6%}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,8vw,110px);align-items:start}.faq-grid>div:first-child h2{font-size:clamp(2.5rem,4.5vw,4rem);margin-top:14px}.faq-grid>div:first-child>p:not(.eyebrow){color:var(--ink-soft);max-width:35ch}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;font-weight:650}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:1.3rem;color:var(--red);transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{margin:-6px 0 22px;color:var(--ink-soft);max-width:65ch;font-size:.92rem}

/* mega CTA */
.cta-mega{background:#0a0b0e;color:#fff;text-align:center;padding:clamp(78px,10vw,140px) 0;position:relative;overflow:hidden}.cta-mega::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.07);left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100px rgba(255,255,255,.018),0 0 0 200px rgba(255,255,255,.012)}.cta-mega-inner{position:relative;z-index:1}.cta-mega .eyebrow{justify-content:center;color:#ff6b76}.cta-mega .eyebrow::before{background:#ff6b76}.cta-mega h2{font-size:clamp(3.2rem,7vw,6rem);line-height:.86;color:#fff;margin-top:20px}.cta-mega h2 em{font-style:normal;color:#ff5260}.cta-mega p:not(.eyebrow){color:#a8a9b0;max-width:54ch;margin:24px auto 0}.cta-mega .hero-actions{justify-content:center}

/* Subpage polish */
.hero:not(.hero-premium){padding:clamp(62px,8vw,100px) 0 clamp(44px,6vw,72px)!important;background:linear-gradient(135deg,var(--paper) 0 64%,var(--paper-2) 64%);border-bottom:1px solid var(--line)}
.hero:not(.hero-premium) h1{font-size:clamp(2.8rem,6vw,5rem)!important;line-height:.92!important;max-width:16ch!important;margin-top:15px!important}.hero:not(.hero-premium) .lede{font-size:1.04rem;max-width:60ch;color:var(--ink-soft)}
.form-card{box-shadow:0 24px 60px -42px rgba(0,0,0,.35);border-top:3px solid var(--red)}.field input,.field select,.field textarea{border-radius:0;min-height:48px}.field textarea{min-height:150px}.contact-list li{padding:20px 0;border-top:1px solid var(--line)}.info-box{border-style:solid;border-left:3px solid var(--red);background:var(--paper-2)}
.photo-slot{background:linear-gradient(145deg,var(--paper-2),var(--paper));border-style:solid;min-height:420px;position:relative;overflow:hidden}.photo-slot::before{content:"EA";position:absolute;font-family:"Big Shoulders Display",sans-serif;font-size:11rem;font-weight:900;color:var(--line);bottom:-28px;right:-6px;line-height:.75}.photo-slot svg,.photo-slot span{position:relative;z-index:1}
.banner{background:#0a0b0e}.banner-inner{padding:50px 0}.banner h2{font-size:clamp(2.2rem,4vw,3.4rem);line-height:.95}.route .stop{transition:border-color .2s,transform .2s}.route .stop:hover{border-color:var(--red);transform:translateY(-2px)}

@media (max-width:980px){
 .hero-premium-grid{grid-template-columns:1fr;}.hero-premium h1{max-width:10ch}.power-board{max-width:680px}.proof-grid{grid-template-columns:repeat(2,1fr)}
 .service-row{grid-template-columns:42px 56px minmax(190px,.8fr) 1.2fr 28px}.statement-grid,.region-grid,.faq-grid{grid-template-columns:1fr}.region-map{min-height:360px}.statement-copy{max-width:680px}
}
@media (max-width:700px){
 .hero-premium{padding-top:54px}.hero-premium-grid{padding-bottom:58px}.hero-premium h1{font-size:clamp(3rem,16vw,4.4rem);line-height:.9}.hero-premium .lede{font-size:.98rem}.hero-actions{gap:10px}.hero-actions .btn{width:100%;justify-content:center}.hero-meta{gap:9px 14px}.power-core{min-height:220px}.power-links a{padding:15px 13px}.proof-grid{grid-template-columns:1fr}.proof-grid>div{border-left:1px solid rgba(255,255,255,.08);padding:17px 14px}.service-row{grid-template-columns:34px 50px 1fr 26px;gap:11px;padding:20px 4px}.service-row p{grid-column:3/5;font-size:.84rem}.service-main strong{font-size:1.2rem}.service-icon{width:44px;height:44px}.statement-grid{gap:46px}.principles article{grid-template-columns:40px 1fr}.region-map{min-height:330px;padding:18px}.place-cloud span{font-size:.64rem}.faq-grid{gap:34px}.cta-mega h2{font-size:clamp(3rem,15vw,4.6rem)}
}
@media (max-width:420px){.power-board-top{font-size:.56rem}.power-links{grid-template-columns:1fr}.power-links a{border-right:0}.region-map::after{width:250px;height:250px}.place-cloud span:nth-child(5),.place-cloud span:nth-child(6){display:none}}
@media (prefers-reduced-motion:reduce){.power-ring::before{animation:none}}
/* Hide not-yet-configured contact rows cleanly; site-config.js can reveal real data. */
.footer-col li:has(> .pending),.contact-list li:has(.pending){display:none;}
.statement-section{background:var(--dark);}
.region-home{background:var(--dark);}


/* 2026-09: hero line lock + Netzwerk & Sicherheit */
.hero-premium h1 .title-line{display:block;white-space:nowrap;}
.power-links .power-link-wide{grid-column:1/-1;border-right:0;}
.service-detail-card{cursor:default;}
.service-detail-card:hover{box-shadow:none;}
.service-detail-card .card-body{padding-bottom:28px;}
.security-values{max-width:900px;}
@media (max-width:980px){.hero-premium h1 .title-line{font-size:.92em;}}
@media (max-width:700px){.hero-premium h1 .title-line{font-size:.78em;letter-spacing:-.03em;}}
@media (max-width:420px){.hero-premium h1 .title-line{font-size:.72em;}}

/* Visual service cards */
.service-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;border-top:0;margin-top:34px}
.service-card-visual{display:flex;flex-direction:column;min-width:0;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;box-shadow:0 14px 38px rgba(21,23,27,.07);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.service-card-visual:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(21,23,27,.12);border-color:rgba(216,31,44,.3)}
.service-card-image{display:block;aspect-ratio:1.92/1;overflow:hidden;background:#ecebea}
.service-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.service-card-visual:hover .service-card-image img{transform:scale(1.035)}
.service-card-content{display:flex;flex-direction:column;padding:22px 24px 25px;min-height:225px}
.service-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.service-card-content>.service-card-top .service-no{font-family:"IBM Plex Mono",monospace;color:var(--red);font-size:.72rem;font-weight:600}
.service-card-content>.service-card-top .service-arrow{color:var(--red);font-size:1rem;transition:transform .2s ease}
.service-card-visual:hover .service-arrow{transform:translate(3px,-3px)}
.service-card-content>strong{font-family:"Big Shoulders Display",sans-serif;font-size:1.65rem;line-height:1;text-transform:uppercase}
.service-card-content>small{margin-top:7px;color:var(--red);font-family:"IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.055em;font-size:.62rem}
.service-card-content>p{margin:14px 0 0;color:var(--ink-soft);font-size:.88rem;line-height:1.65}
.service-emergency{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-top:18px;padding:18px 22px;text-decoration:none;color:var(--ink);border:1px solid var(--line);background:var(--paper-2);transition:border-color .2s ease,background .2s ease}
.service-emergency:hover{border-color:rgba(216,31,44,.4);background:#fff}
.service-emergency>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.service-emergency strong{font-size:.95rem}.service-emergency small{color:var(--ink-soft);font-size:.78rem}
.service-emergency>span:last-child{color:var(--red);font-size:1.1rem}
.service-grid-visual{margin-top:0}
@media (max-width:980px){.service-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.service-stack{grid-template-columns:1fr;gap:14px}.service-card-content{min-height:0;padding:19px 19px 22px}.service-card-content>strong{font-size:1.45rem}.service-card-content>p{font-size:.85rem}.service-emergency{padding:16px 17px}}

/* 2026-09 mobile polish */
@media (max-width:700px){
  html{scroll-padding-top:74px;}
  body{font-size:16px;overflow-x:hidden;}
  body.has-sticky-bar{padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  .wrap{padding-left:16px;padding-right:16px;}

  .utility-bar{display:none;}
  .headbar{padding:11px 16px;min-height:62px;}
  header.scrolled .headbar{padding:9px 16px;}
  .brand{gap:9px;}
  .brand .mark{width:31px;height:31px;}
  .brand .mark svg{width:17px;height:17px;}
  .brand .word{font-size:1rem;letter-spacing:0;}
  .head-actions{gap:8px;}
  .head-actions>.head-phone{display:none;}
  .mobile-nav>summary{width:42px;height:42px;}
  .mobile-nav .sheet{padding:4px 16px calc(18px + env(safe-area-inset-bottom));max-height:calc(100dvh - 62px);}
  .mobile-nav .sheet a,.mobile-nav details.sub summary{min-height:48px;display:flex;align-items:center;}
  .mobile-nav .sheet a.cta{min-height:50px;justify-content:center;border-radius:0;}

  .hero-premium{padding-top:42px;}
  .hero-premium-grid{gap:34px;padding-bottom:48px;}
  .hero-copy{padding-top:0;}
  .hero-premium .eyebrow{font-size:.63rem;letter-spacing:.11em;gap:.45em;}
  .hero-premium .eyebrow::before{width:16px;}
  .hero-premium h1{font-size:clamp(2.75rem,14.8vw,3.75rem);line-height:.89;letter-spacing:-.025em;margin-top:14px;}
  .hero-premium h1 .title-line{font-size:.76em;letter-spacing:-.035em;}
  .hero-premium .lede{font-size:.96rem;line-height:1.62;margin-top:19px;}
  .hero-actions{margin-top:22px;}
  .hero-actions .btn{min-height:50px;padding:13px 18px;font-size:.9rem;}
  .hero-meta{margin-top:20px;gap:8px 13px;font-size:.61rem;line-height:1.35;}

  .power-board{width:100%;max-width:none;}
  .power-board-top{padding:11px 12px;font-size:.53rem;gap:8px;}
  .power-core{min-height:178px;padding:24px 20px;}
  .power-ring{width:82px;height:82px;box-shadow:0 0 0 13px rgba(216,31,44,.04),0 0 46px rgba(216,31,44,.12);}
  .power-ring::before{inset:8px;}
  .bolt{font-size:3rem;}
  .power-core p{font-size:.76rem;margin-top:16px;}
  .power-links{grid-template-columns:1fr 1fr;}
  .power-links a{padding:13px 12px;grid-template-columns:25px 1fr;column-gap:7px;}
  .power-links strong{font-size:.8rem;}.power-links small{font-size:.64rem;}.power-links a>span{font-size:.57rem;}
  .fault-link{padding:13px 14px;font-size:.74rem;}

  .proof-grid{grid-template-columns:1fr 1fr;}
  .proof-grid>div{grid-template-columns:24px 1fr;padding:15px 12px;border-left:1px solid rgba(255,255,255,.08);}
  .proof-grid p{font-size:.7rem;}.proof-grid strong{font-size:.76rem;}.proof-n{font-size:.58rem;}

  section{padding-top:62px;padding-bottom:62px;}
  .services-premium{padding-top:62px;}
  .section-head{gap:16px;margin-bottom:26px;}
  .section-head-wide h2{font-size:clamp(2.25rem,11vw,3rem);line-height:.94;max-width:13ch;}
  .section-head-wide>p{font-size:.9rem;line-height:1.6;}
  .service-stack{margin-top:24px;gap:14px;}
  .service-card-image{aspect-ratio:16/9;}
  .service-card-content{padding:17px 17px 19px;}
  .service-card-content>strong{font-size:1.5rem;}
  .service-card-content>small{font-size:.58rem;margin-top:6px;}
  .service-card-content>p{font-size:.84rem;line-height:1.55;margin-top:11px;}
  .service-card-top{margin-bottom:6px;}
  .service-card-visual:active{transform:scale(.992);}
  .service-emergency{margin-top:2px;grid-template-columns:auto 1fr auto;gap:11px;padding:15px 14px;}
  .service-emergency strong{font-size:.88rem;}.service-emergency small{font-size:.72rem;line-height:1.4;}

  .statement-grid,.region-grid,.faq-grid{gap:34px;}
  .statement-copy h2,.region-grid h2,.faq-grid>div:first-child h2{font-size:clamp(2.45rem,12vw,3.35rem);}
  .principles article{padding:22px 0;gap:14px;}
  .principles p,.faq-list details p{font-size:.87rem;line-height:1.6;}
  .region-map{min-height:300px;padding:14px;}
  .region-map::after{width:230px;height:230px;box-shadow:0 0 0 48px rgba(216,31,44,.025);}
  .region-home{padding:11px 14px;font-size:.86rem;}
  .place-cloud span{font-size:.58rem;padding:5px 7px;}
  .place-cloud span:nth-child(7),.place-cloud span:nth-child(8){display:none;}
  .faq-list summary{padding:18px 0;font-size:.93rem;line-height:1.35;}

  .cta-mega{padding:72px 0 76px;}
  .cta-mega h2{font-size:clamp(2.8rem,14vw,4rem);line-height:.88;}
  .cta-mega p:not(.eyebrow){font-size:.92rem;line-height:1.6;margin-top:20px;}

  footer{padding-bottom:34px;}
  .footer-grid{gap:26px;}
  .footer-col p,.footer-col li{font-size:.84rem;}
  .footer-bottom{gap:12px;align-items:flex-start;}
  .footer-legal{gap:14px;}

  .sticky-bar{padding-bottom:env(safe-area-inset-bottom);}
  .sticky-bar a{min-height:58px;padding:14px 14px;font-size:.9rem;}

  .hero:not(.hero-premium){padding:46px 0 38px!important;}
  .hero:not(.hero-premium) h1{font-size:clamp(2.5rem,13vw,3.5rem)!important;line-height:.92!important;}
  .hero:not(.hero-premium) .lede{font-size:.96rem;line-height:1.65;}
  .form-card{padding:20px!important;}
  .field input,.field select,.field textarea{font-size:16px;min-height:50px;}
}

@media (max-width:380px){
  .brand .word{font-size:.92rem;}
  .hero-premium h1{font-size:clamp(2.55rem,14.3vw,3.35rem);}
  .hero-premium h1 .title-line{font-size:.73em;}
  .hero-meta{font-size:.56rem;}
  .proof-grid{grid-template-columns:1fr;}
  .proof-grid>div{border-right:1px solid rgba(255,255,255,.08);}
}
