/* ==========================================================================
   msone – Unterseiten. Übersetzt das Klassenvokabular der alten Seiten
   (section-label, card, faq, timeline, stat-card, …) in das neue Design-System.
   Tokens kommen aus style.css.
   ========================================================================== */

/* Brotkrumen */
.crumbs{border-bottom:1px solid var(--line);font-size:.85rem;color:var(--ink-3)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.5rem;padding-block:.7rem}
.crumbs li+li::before{content:'/';margin-right:.5rem;color:var(--line-2)}
.crumbs a{text-decoration:none;color:var(--ink-2)}
.crumbs a:hover{color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}

/* Seitenkopf – Startseiten-Hero-Regeln neutralisieren */
.sub .hero{display:block;min-height:auto}
.sub .hero .wrap{width:100%}
.split .grid-4,.split .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
.split .grid-4 .stat-card,.split .stat-card{padding:1.25rem}

.sub main>section,.sub main>header,.sub main>article,.sub main>div{padding-block:clamp(3.5rem,7vw,6rem)}
.hero,.page-hero,.article-header{padding-block:clamp(3rem,7vw,6rem) clamp(2rem,4vw,3.5rem)!important;border-top:0}
.hero h1,.page-hero h1,.article-header h1{font-size:clamp(2.75rem,6vw,5.5rem);line-height:1.06;margin-bottom:1.25rem;max-width:62rem}
.eyebrow,.hero-eyebrow,.section-label,.article-tag,.card-cat,.blog-card-tag,.ref-card-label{font-size:.875rem;color:var(--ink-3);margin-bottom:.75rem}
.hero-subtitle,.hero-sub,.section-lead{font-size:1.25rem;line-height:1.55;color:var(--ink-2);max-width:38rem}
.hero-ctas,.cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.btn-lg{padding:1.1rem 1.7rem;font-size:1.05rem}

/* Sektionen */
.sub main>section+section,.sub main>article+section,.sub main>header+*{border-top:1px solid var(--line)}
.section-alt,.cta-section,.faq-section,.blog-section{background:var(--paper-2)}
.section-h2,.section-title,.sub section>.wrap>h2,.sub .cta-section h2,.split h2,.story h2{font-size:clamp(2rem,3.6vw,3rem);line-height:1.12;margin-bottom:1rem;max-width:44rem}
.section-text,.section-sub{font-size:1.125rem;color:var(--ink-2);margin-bottom:1.25rem}
.sub section p{color:var(--ink-2)}
.sub section p strong{color:var(--ink)}
.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.split.reverse>:first-child{order:2}
.grid-2,.grid-3,.grid-4,.values-grid,.steps-grid,.testimonials-grid,.blog-grid,.projects-grid,.internal-links,.service-cards,.story-grid,.contact-grid{display:grid;gap:1rem;margin-top:2rem}
.grid-2,.values-grid,.story-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3,.testimonials-grid,.blog-grid,.projects-grid,.internal-links,.service-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4,.steps-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.story-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
@media(max-width:1000px){.grid-4,.steps-grid,.grid-3,.testimonials-grid,.blog-grid,.projects-grid,.internal-links,.service-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:840px){.split,.split.reverse,.story-grid,.contact-grid{grid-template-columns:1fr}.split.reverse>:first-child{order:0}}
@media(max-width:560px){.grid-2,.grid-3,.grid-4,.values-grid,.steps-grid,.testimonials-grid,.blog-grid,.projects-grid,.internal-links,.service-cards{grid-template-columns:1fr}}

/* Listen */
.feature-list,.usp-list{display:grid;gap:.6rem;margin-block:1.25rem}
.feature-list li,.usp-item,.contact-promise{position:relative;padding-left:1.2rem;color:var(--ink-2)}
.feature-list li::before,.usp-item::before,.contact-promise::before{content:'';position:absolute;left:0;top:.65em;width:.45rem;height:.45rem;border-radius:50%;background:var(--signal)}
.usp-dot{display:none}
.contact-promises{display:grid;gap:.6rem;margin-top:1.5rem}

/* Chips */
.tags,.tech-pills,.card-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.25rem}
.tag,.tech-pill,.region-pill{font:400 .8rem/1 var(--mono);padding:.45rem .6rem;border:1px solid var(--line-2);border-radius:.4rem;color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
a.region-pill:hover,a.tag:hover{border-color:var(--ink);color:var(--ink)}
.tech-pill-dot{display:none}

/* Karten – nur Rahmen, kein Schatten */
.card,.service-card,.value-card,.stat-card,.stat-item,.internal-link-card,.testimonial-card,.blog-card,.ref-card,.contact-info-block,.cta-box,.story-aside,.step{border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;background:var(--paper)}
.card-icon,.service-card-icon,.step-icon,.internal-link-icon,.testimonial-quote-deco,.testimonial-stars,.timeline-dot{display:none}
.card h3,.card-title,.service-card-title,.value-title,.internal-link-card h3,.step h3{font-size:1.375rem;margin-bottom:.5rem}
.card p,.card-desc,.service-card-text,.value-text,.internal-link-card p,.step p{font-size:1rem;color:var(--ink-2)}
.card-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.card-initials{width:3rem;height:3rem;border-radius:.6rem;display:grid;place-items:center;font:600 .85rem var(--mono);background:var(--signal-soft);color:var(--signal);flex:none}
.card-header-meta .card-cat{margin-bottom:.15rem}
.card-link,.blog-card-link,.ref-card-link,.internal-link-card a{display:inline-block;margin-top:1rem;font:500 .95rem var(--mono);color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-2);transition:border-color .2s}
.card-link:hover,.blog-card-link:hover,.ref-card-link:hover{border-bottom-color:var(--ink)}
a.internal-link-card{display:block;text-decoration:none;color:inherit;transition:border-color .2s}
a.internal-link-card:hover{border-color:var(--ink)}
.value-num,.step-num{font:300 2rem/1 var(--mono);color:var(--signal);margin-bottom:.75rem;display:block}

/* Kennzahlen */
.stat-number,.stat-val,.story-stat-number{font:300 clamp(2rem,3vw,2.75rem)/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--signal)}
.stat-label,.stat-lbl,.story-stat-label{font-size:.9rem;color:var(--ink-2);margin-top:.6rem}
.stats-row,.story-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem;margin-top:1.5rem}
.story-stat{padding:1rem 0;border-top:1px solid var(--line)}

/* FAQ – exklusive Details, animiert wie das Leistungs-Akkordeon */
.faq-list{border-top:1px solid var(--line);margin-top:2rem}
.faq{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 2rem;align-items:center;gap:1rem;padding:1.25rem 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-size:1.25rem;font-family:var(--sans);font-weight:600;letter-spacing:0;line-height:1.35;transition:color .2s}
.faq summary:hover h3{color:var(--signal)}
.faq summary .pm{position:relative;width:2rem;height:2rem;border:1px solid var(--line-2);border-radius:50%;transition:border-color .2s}
.faq summary .pm::before,.faq summary .pm::after{content:'';position:absolute;left:50%;top:50%;width:.8rem;height:1.5px;background:currentColor;translate:-50% -50%;transition:rotate .4s var(--ease)}
.faq summary .pm::after{rotate:90deg}
.faq[open] summary .pm::after{rotate:0deg}
.faq[open] summary .pm{border-color:var(--ink)}
.faq::details-content{height:0;overflow:clip;transition:height .5s var(--ease),content-visibility .5s allow-discrete}
.faq[open]::details-content{height:auto}
.faq-a{padding:0 3rem 1.5rem 0}
.faq-a p{font-size:1.05rem;color:var(--ink-2)}

/* CTA-Band */
.cta-section .wrap>h2,.cta-inner h2,.cta-box h2{margin-bottom:1rem}
.cta-section p{color:var(--ink-2);margin-bottom:1.75rem;max-width:36rem}
.cta-email,.contact-email-link{display:inline-block;font:400 clamp(1.75rem,4vw,3rem)/1.1 var(--serif);letter-spacing:-.02em;text-decoration:none;color:var(--ink);overflow-wrap:anywhere;margin-block:.25rem 1.25rem;background:linear-gradient(var(--signal),var(--signal)) no-repeat 0 100%/0 2px;padding-bottom:.08em;transition:background-size .6s var(--ease),color .25s}
.cta-email:hover,.contact-email-link:hover{color:var(--signal);background-size:100% 2px}
.cta-box{margin-top:2rem}

/* Referenz-Verweise */
.ref-card{display:grid;gap:.15rem}
.ref-card h3,.ref-card-title{font-size:1.25rem}

/* Zeitstrahl (echte Sequenz) */
.timeline-inner{display:grid;margin-top:2rem}
.timeline-item{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:1.25rem;padding:1.2rem 0;border-top:1px solid var(--line)}
.timeline-item:last-child{border-bottom:1px solid var(--line)}
.timeline-year{font:400 1rem/1.6 var(--mono);color:var(--signal)}
.timeline-badge{display:inline-block;font:400 .75rem/1 var(--mono);padding:.3rem .5rem;border:1px solid var(--line-2);border-radius:.35rem;color:var(--ink-3);margin-left:.5rem;vertical-align:middle}
.timeline-content h3{font:600 1.2rem/1.3 var(--sans);letter-spacing:0;margin-bottom:.35rem}
.timeline-content p{font-size:1rem;color:var(--ink-2)}
@media(max-width:560px){.timeline-item{grid-template-columns:1fr;gap:.4rem}}

/* Testimonials */
.testimonial-text{font:italic 400 1.3rem/1.4 var(--serif);color:var(--ink)!important;margin-bottom:1.25rem}
.testimonial-author{display:grid;font-size:.95rem}
.testimonial-name{font-weight:600}
.testimonial-role{color:var(--ink-3);font-size:.875rem}

/* Blog-Übersicht */
.blog-card h2,.blog-card h3{font-size:1.5rem;margin:.5rem 0 .75rem}
.blog-card-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--ink-3);margin-bottom:.75rem}
.blog-card p{font-size:1rem}

/* Artikel */
.article-header .wrap-narrow{max-width:50rem}
.article-meta{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.9rem;color:var(--ink-3);margin-top:1rem}
.article-body{padding-top:0!important}
.wrap-narrow{max-width:46rem}
.article-body p,.prose p{font-size:1.125rem;line-height:1.7;color:var(--ink-2);margin-bottom:1.25rem;max-width:none}
.article-body h2,.prose h2{font-size:clamp(1.75rem,3vw,2.25rem);margin:2.75rem 0 1rem}
.article-body h3,.prose h3{font:600 1.25rem/1.35 var(--sans);letter-spacing:0;margin:2rem 0 .6rem}
.article-body ul,.article-body ol,.prose ul,.prose ol{margin:0 0 1.25rem 1.3rem;color:var(--ink-2);font-size:1.075rem;line-height:1.65}
.article-body ul,.prose ul{list-style:disc}
.article-body ol,.prose ol{list-style:decimal}
.article-body li,.prose li{margin-bottom:.4rem}
.article-body a,.prose a{color:var(--signal);text-decoration:underline;text-decoration-color:color-mix(in oklch,var(--signal) 40%,transparent);text-underline-offset:3px}
.article-body a:hover,.prose a:hover{text-decoration-color:var(--signal)}
.article-body strong{color:var(--ink)}
.article-divider{height:1px;background:var(--line);margin:2.5rem 0}
.callout{border-left:3px solid var(--signal);background:var(--paper-2);padding:1.1rem 1.4rem;border-radius:0 var(--r) var(--r) 0;margin:1.75rem 0}
.callout p{margin:0}
.callout-warn{border-left-color:oklch(75% 0.15 75)}
.compare-table-wrap{overflow-x:auto;margin:1.75rem 0;border:1px solid var(--line);border-radius:var(--r)}
.compare-table{width:100%;border-collapse:collapse;font-size:.95rem}
.compare-table th,.compare-table td{padding:.8rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.compare-table th{font-weight:600;background:var(--paper-2)}
.compare-table tr:last-child td{border-bottom:0}
.badge-red,.badge-green{display:inline-block;font:500 .78rem/1 var(--mono);padding:.3rem .5rem;border-radius:.35rem}
.badge-green{background:color-mix(in oklch,var(--ok) 18%,transparent);color:var(--ok)}
.badge-red{background:oklch(60% 0.2 25 / .14);color:oklch(55% 0.2 25)}
.author-box{display:flex;gap:1rem;align-items:center;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.author-avatar{width:3rem;height:3rem;border-radius:50%;background:var(--signal-soft);color:var(--signal);display:grid;place-items:center;font:600 .85rem var(--mono);flex:none}
.author-name{font-weight:600;display:block}
.author-role{color:var(--ink-3);font-size:.9rem}
.more-articles{margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--line)}
.more-articles-title{font:400 1.5rem/1.2 var(--serif);margin-bottom:1rem}
.more-articles-links{display:grid;gap:.5rem}
.more-articles-links a{text-decoration:none;color:var(--ink-2);font-size:1.05rem}
.more-articles-links a:hover{color:var(--ink)}

/* Rechtstexte */
.legal .prose h2{font-size:1.75rem;margin:2.5rem 0 .75rem}
.legal .prose h3{font:600 1.15rem/1.35 var(--sans);margin:1.75rem 0 .5rem}
.legal .prose p{font-size:1rem;line-height:1.65}
.legal .prose ul{font-size:1rem}
.page-hero h1{font-size:clamp(2.5rem,5vw,4rem)}


/* Nachträge */
.card h4,.section h4{font:600 1rem/1.4 var(--sans);letter-spacing:0;margin:.9rem 0 .15rem;color:var(--ink)}
.card h4:first-child{margin-top:0}
