/* ========================================================================== LHC Web Framework – shared stylesheet (single source of truth) Tokens derived from 2_MARKETING/WordPress-Infrastructure/LHC_DESIGN_TOKENS.md ————————————————————————– EVERYTHING is scoped under .lhc-fw so this can be pasted into a live Elementor page (elementor-template mode) without leaking styles into the theme. Sections add their own rules scoped under .s-. Headings are fluid (clamp) so they never overflow at 390px. Min font-size is 14px: the lint gate forbids 10-12px. ========================================================================== */ .lhc-fw { /* — Colors — */ –lhc-navy: #0C2E4E; –lhc-gold: #C5A572; /* canonical brand gold (CLAUDE.md). Elementor-live alt: #C5A065 */ –lhc-gold-deep: #C5A065; /* the value Elementor currently renders, for exact-match cases */ –lhc-green: #88AFA0; –lhc-teal: #005678; –lhc-dark: #011724; –lhc-dark-blue: #1C2441; –lhc-light-blue: #B7D9F7; –lhc-gray: #8F989D; –lhc-white: #FFFFFF; –lhc-bg-light: #F5F5F5; –lhc-bg-soft: #F8F8F8; –lhc-border: #E1E1E1; –lhc-border-light: #DDDDDD; –lhc-text: #0C2E4E; –lhc-text-dark: #0A0A0A; –lhc-gray-muted: #6B7280; –lhc-navy-deep: #0A2540; /* dark-band treatment, matched exactly to /claude-training/ hero (clean navy gradient, no glow) */ –lhc-navy-gradient: linear-gradient(170deg, #0C2E4E 0%, #071B30 60%, #050F1A 100%); /* — Fonts — */ –lhc-font-primary: Verdana, Geneva, sans-serif; –lhc-font-secondary: Inter, -apple-system, BlinkMacSystemFont, sans-serif; –lhc-font-display: “Playfair Display”, Georgia, “Times New Roman”, serif; /* — Fluid type scale (mobile-first via clamp: min, preferred, max) — */ –lhc-h1: clamp(28px, 6vw, 49px); –lhc-h2: clamp(24px, 5vw, 39px); –lhc-h2-svc: clamp(22px, 4vw, 28px); –lhc-h3: clamp(18px, 3.2vw, 22px); –lhc-body: clamp(16px, 2.2vw, 20px); –lhc-small: 16px; –lhc-label: 14px; /* hard floor; never go below 14 */ /* — Spacing (matches Elementor scale) — */ –lhc-space-xs: 15px; –lhc-space-sm: 20px; –lhc-space-md: 30px; –lhc-space-lg: 40px; –lhc-space-xl: 50px; –lhc-space-2xl: 60px; –lhc-section-y: clamp(40px, 8vw, 80px); /* vertical rhythm between sections */ –lhc-gutter: clamp(20px, 5vw, 60px); /* horizontal page padding */ –lhc-maxw: 1140px; /* — Radius / shadow / motion — */ –lhc-radius-btn: 10px; –lhc-radius-img: 10px; –lhc-radius-card: 12px; –lhc-radius-pill: 999px; –lhc-shadow-card: rgba(12, 46, 78, 0.1) 0px 4px 20px 0px; –lhc-shadow-subtle: rgba(0, 0, 0, 0.08) 0px 1.25px 5px 0px; –lhc-transition: 0.3s ease; font-family: var(–lhc-font-primary); color: var(–lhc-text); line-height: 1.5; /* long German compounds (Prozessautomatisierung, Ressourcenmanagement) must break instead of forcing a grid track wider than a 320px phone. Inherited by all children. */ overflow-wrap: break-word; hyphens: auto; } /* — contained reset (scoped, cannot touch the host page) — */ .lhc-fw *, .lhc-fw *::before, .lhc-fw *::after { box-sizing: border-box; } /* grids never blow out: a 1fr track may shrink below its min-content */ .lhc-fw .s-grid, .lhc-fw [class*=”-grid”] { min-width: 0; } .lhc-fw .s-grid > *, .lhc-fw [class*=”-grid”] > * { min-width: 0; } .lhc-fw img, .lhc-fw svg, .lhc-fw video { max-width: 100%; height: auto; display: block; } .lhc-fw a { color: inherit; } /* design language (ref: /claude-training/): serif display headings, italic emphasis, Inter for H3 */ .lhc-fw h1, .lhc-fw h2 { font-family: var(–lhc-font-display); font-weight: 700; letter-spacing: -0.015em; } .lhc-fw h1 em, .lhc-fw h2 em { font-style: italic; } .lhc-fw h3 { font-family: var(–lhc-font-secondary); } /* — layout primitives every section reuses — */ .lhc-fw .s-wrap { width: 100%; max-width: var(–lhc-maxw); margin: 0 auto; padding-inline: var(–lhc-gutter); } .lhc-fw .s-section { padding-block: var(–lhc-section-y); } .lhc-fw .s-section–dark { background: var(–lhc-navy); color: var(–lhc-white); } .lhc-fw .s-section–soft { background: var(–lhc-bg-soft); } /* — typographic helpers — */ .lhc-fw .s-eyebrow { font-size: var(–lhc-label); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(–lhc-gold); margin: 0 0 var(–lhc-space-sm); } .lhc-fw .s-h2 { font-size: var(–lhc-h2); font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; color: var(–lhc-navy); margin: 0 0 var(–lhc-space-sm); } .lhc-fw .s-section–dark .s-h2 { color: var(–lhc-white); } .lhc-fw .s-h2 em { font-style: normal; color: var(–lhc-gold); } .lhc-fw .s-lead { font-size: var(–lhc-body); line-height: 1.6; margin: 0 0 var(–lhc-space-md); max-width: 65ch; } .lhc-fw .s-divider-gold { border: none; border-top: 1.6px solid var(–lhc-gold); width: 60px; margin: var(–lhc-space-lg) 0; } /* — buttons (shared) — */ .lhc-fw .lhc-btn-primary, .lhc-fw .lhc-btn-cta { display: inline-block; font-family: var(–lhc-font-primary); font-size: var(–lhc-small); font-weight: 600; text-transform: uppercase; letter-spacing: 0.02em; text-decoration: none; padding: 15px 30px; border-radius: var(–lhc-radius-btn); cursor: pointer; transition: background-color var(–lhc-transition), transform 0.2s ease; border: 0.8px solid rgba(0,0,0,0.07); } .lhc-fw .lhc-btn-primary { background: var(–lhc-navy); color: var(–lhc-white); } .lhc-fw .lhc-btn-primary:hover { background: var(–lhc-teal); transform: translateY(-1px); } .lhc-fw .lhc-btn-cta { background: var(–lhc-gold); color: var(–lhc-white); border: none; } .lhc-fw .lhc-btn-cta:hover { transform: translateY(-1px); } /* — reveal: visible by default so iframe/no-JS never hides content (pitfall #3) — */ .lhc-fw .rv { opacity: 1; } /* — mobile hardening: real rules, and presence is asserted by the lint gate — */ @media (max-width: 640px) { .lhc-fw .s-lead { max-width: 100%; } .lhc-fw .lhc-btn-primary, .lhc-fw .lhc-btn-cta { display: block; text-align: center; } .lhc-fw .s-grid { grid-template-columns: 1fr !important; } } @media (prefers-reduced-motion: reduce) { .lhc-fw * { transition: none !important; animation: none !important; } } /* —- section-scoped —- */ .s-hero { background: var(–lhc-navy-gradient); background-color: var(–lhc-navy); color: var(–lhc-white); } .s-hero .hero-inner { max-width: 52rem; } .s-hero .hero-eyebrow { font-size: var(–lhc-label); font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(–lhc-gold); margin: 0 0 var(–lhc-space-md); } .s-hero h1 { font-size: var(–lhc-h1); font-weight: 700; line-height: 1.08; letter-spacing: -0.02em; color: var(–lhc-white); margin: 0 0 var(–lhc-space-md); } .s-hero h1 em { font-style: italic; color: var(–lhc-gold); } .s-hero .hero-sub { font-size: var(–lhc-body); line-height: 1.6; color: rgba(255,255,255,0.78); max-width: 58ch; margin: 0 0 var(–lhc-space-lg); } .s-hero .hero-stats { display: flex; flex-wrap: wrap; gap: var(–lhc-space-md) var(–lhc-space-2xl); margin: 0 0 var(–lhc-space-lg); } .s-hero .hero-stat:has(.hero-stat-num:empty) { display: none; } .s-hero .hero-stat { display: flex; flex-direction: column; } .s-hero .hero-stat-num { font-family: var(–lhc-font-display); font-size: clamp(30px, 5vw, 44px); font-weight: 700; color: var(–lhc-white); line-height: 1.05; } .s-hero .hero-stat-label { font-size: var(–lhc-label); color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 6px; } .s-hero .hero-actions { display: flex; flex-wrap: wrap; gap: var(–lhc-space-sm); align-items: center; } .s-video { background: var(–lhc-white); } .s-video:has(.v-frame:empty) { display: none; } .s-video .v-head { text-align: center; max-width: 760px; margin: 0 auto var(–lhc-space-md); } .s-video .v-heading { font-size: var(–lhc-h2); font-weight: 700; color: var(–lhc-navy); line-height: 1.15; margin: var(–lhc-space-xs) 0 0; } .s-video .v-heading:empty { display: none; } .s-video .v-frame { position: relative; width: 100%; max-width: 940px; margin: 0 auto; aspect-ratio: 16 / 9; border-radius: var(–lhc-radius-card); overflow: hidden; box-shadow: var(–lhc-shadow-card); background: var(–lhc-navy); } .s-video .v-frame iframe, .s-video .v-frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; } .s-problem-solution .ps-group { margin: 0 0 var(–lhc-space-2xl); } .s-problem-solution .ps-group:last-child { margin-bottom: 0; } .s-problem-solution .ps-label { font-size: var(–lhc-label); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(–lhc-navy); margin: 0 0 var(–lhc-space-sm); } .s-problem-solution .ps-heading { font-size: var(–lhc-h2); font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; color: var(–lhc-navy); margin: 0 0 var(–lhc-space-sm); max-width: 24ch; } .s-problem-solution .ps-lead { font-size: var(–lhc-body); line-height: 1.6; color: var(–lhc-text); margin: 0 0 var(–lhc-space-md); max-width: 65ch; } .s-problem-solution .ps-heading:empty, .s-problem-solution .ps-lead:empty { display: none; } .s-problem-solution .ps-grid { display: grid; gap: var(–lhc-space-sm); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } /* Group A: numbered challenge cards */ .s-problem-solution .ps-challenge { display: flex; gap: var(–lhc-space-sm); align-items: flex-start; border: 0.8px solid var(–lhc-border); border-radius: 6px; padding: 16px; background: var(–lhc-white); } .s-problem-solution .ps-num { font-size: var(–lhc-h3); font-weight: 700; color: var(–lhc-gold); line-height: 1.2; flex-shrink: 0; } .s-problem-solution .ps-challenge p { font-size: var(–lhc-body); line-height: 1.55; color: var(–lhc-text); margin: 0; } .s-problem-solution .ps-challenge p strong { color: var(–lhc-navy); font-weight: 700; } /* Group B: feature cards */ .s-problem-solution .ps-feature { display: flex; flex-direction: column; border: 0.8px solid var(–lhc-border-light); border-radius: var(–lhc-radius-img); padding: var(–lhc-space-md); background: var(–lhc-white); } .s-problem-solution .ps-feature h3 { font-size: var(–lhc-h3); font-weight: 600; line-height: 1.25; color: var(–lhc-navy); margin: 0; } .s-problem-solution .ps-feature-divider { border: none; border-top: 0.8px solid var(–lhc-border-light); margin: var(–lhc-space-xs) 0; } .s-problem-solution .ps-feature p { font-size: var(–lhc-body); line-height: 1.6; color: var(–lhc-text); margin: 0; } .s-problem-solution .ps-feature-link { align-self: flex-start; margin-top: var(–lhc-space-sm); font-size: var(–lhc-small); font-weight: 600; color: var(–lhc-gold); text-decoration: none; } .s-problem-solution .ps-feature-link[href=””] { display: none; } .s-problem-solution .ps-feature-link::after { content: ” \2192″; } .s-proof-stat-band { background: var(–lhc-white); } .s-proof-stat-band .psb-head { text-align: center; max-width: 760px; margin: 0 auto var(–lhc-space-lg); } .s-proof-stat-band .psb-heading { font-size: var(–lhc-h2); font-weight: 700; color: var(–lhc-navy); line-height: 1.15; margin: var(–lhc-space-xs) 0 0; } .s-proof-stat-band .psb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(–lhc-space-md); } .s-proof-stat-band .stat-card { background: var(–lhc-bg-light); border-radius: var(–lhc-radius-card); padding: var(–lhc-space-md); text-align: center; box-shadow: var(–lhc-shadow-subtle); } .s-proof-stat-band .stat-value { display: block; font-size: clamp(34px, 7vw, 52px); font-weight: 700; color: var(–lhc-navy); line-height: 1.05; } .s-proof-stat-band .stat-label { display: block; margin-top: var(–lhc-space-xs); font-size: var(–lhc-small); color: var(–lhc-text-dark); line-height: 1.35; } /* source-or-omit: an empty stat slot hides its card (never inherits FEW defaults). Keyed on the data-count attribute (survives wpautop; :empty on text does not). */ .s-proof-stat-band .stat-card:has(.stat-value[data-count=””]) { display: none; } /* if NO stat has a real value, hide the whole band (heading included). */ .s-proof-stat-band:not(:has(.stat-value:not([data-count=””]))) { display: none; } @media (max-width: 640px) { .s-proof-stat-band .psb-grid { grid-template-columns: 1fr; } } .s-quote { background: var(–lhc-bg-light); } .s-quote .quote-card { max-width: 70ch; margin: 0 auto; text-align: center; } .s-quote .quote-mark { font-size: var(–lhc-h2); font-weight: 700; line-height: 1; color: var(–lhc-gold); margin: 0 0 var(–lhc-space-sm); } .s-quote .quote-text { font-size: clamp(var(–lhc-body), 1.2vw + 1rem, var(–lhc-h3)); line-height: 1.5; font-weight: 500; color: var(–lhc-text-dark); margin: 0 0 var(–lhc-space-lg); } .s-quote .quote-footer { display: flex; flex-wrap: wrap; gap: var(–lhc-space-sm); align-items: center; justify-content: center; } .s-quote .quote-avatar { width: 56px; height: 56px; flex: 0 0 56px; border-radius: var(–lhc-radius-pill); border: 2px solid var(–lhc-gold); object-fit: cover; } .s-quote .quote-byline { font-size: var(–lhc-small); line-height: 1.4; text-align: left; } .s-quote .quote-name { font-weight: 700; color: var(–lhc-text-dark); } .s-quote .quote-role { color: var(–lhc-gray); } @media (max-width: 640px) { .s-quote .quote-footer { flex-direction: column; } .s-quote .quote-byline { text-align: center; } } .s-team { background: var(–lhc-bg-soft); } .s-team .t-head { text-align: center; max-width: 680px; margin: 0 auto var(–lhc-space-lg); } .s-team .t-heading { font-size: var(–lhc-h2); font-weight: 700; color: var(–lhc-navy); line-height: 1.15; margin: var(–lhc-space-xs) 0 0; } .s-team .t-grid { display: grid; gap: var(–lhc-space-lg); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); justify-content: center; max-width: 760px; margin: 0 auto; } .s-team .t-person { text-align: center; } /* wpautop-proof: a real person always has an avatar or initial . (:empty on the
The name breaks because wpautop inserts a newline into an empty space
.) */ .s-team .t-person:not(:has(.t-avatar > img, .t-avatar > span)) { display: none; } .s-team .t-avatar { width: 116px; height: 116px; border-radius: var(–lhc-radius-pill); overflow: hidden; margin: 0 auto var(–lhc-space-sm); background: var(–lhc-navy); display: flex; align-items: center; justify-content: center; border: 3px solid var(–lhc-gold); } .s-team .t-avatar img { width: 100%; height: 100%; object-fit: cover; } .s-team .t-avatar span { color: var(–lhc-gold); font-family: var(–lhc-font-display); font-size: 46px; font-weight: 700; line-height: 1; } .s-team .t-name { font-family: var(–lhc-font-secondary); font-size: var(–lhc-h3); font-weight: 600; color: var(–lhc-navy); margin: 0; } .s-team .t-role { font-size: var(–lhc-small); color: var(–lhc-gray-muted); margin: 4px 0 0; } .s-faq .faq-head { margin: 0 0 var(–lhc-space-lg); max-width: 60ch; } .s-faq .faq-list { max-width: 820px; } .s-faq .faq-item { border-bottom: 1px solid var(–lhc-border); } .s-faq .faq-item:first-child { border-top: 1px solid var(–lhc-border); } .s-faq .faq-q { font-size: var(–lhc-h3); font-weight: 600; line-height: 1.35; color: var(–lhc-navy); padding: var(–lhc-space-sm) 0; cursor: pointer; list-style: none; display: flex; align-items: flex-start; justify-content: space-between; gap: var(–lhc-space-sm); } .s-faq .faq-q::-webkit-details-marker { display: none; } .s-faq .faq-q::after { content: “+”; font-size: var(–lhc-h3); font-weight: 400; line-height: 1; color: var(–lhc-gold); flex-shrink: 0; transition: var(–lhc-transition); } .s-faq .faq-item[open] .faq-q::after { content: “-“; } .s-faq .faq-a { font-size: var(–lhc-small); line-height: 1.6; color: var(–lhc-text); padding: 0 0 var(–lhc-space-sm); max-width: 62ch; } .s-faq .faq-a strong { color: var(–lhc-navy); font-weight: 600; } .s-cross-link { background: var(–lhc-bg-soft); } .s-cross-link .cl-eyebrow { font-size: var(–lhc-label); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(–lhc-gold); margin: 0 0 var(–lhc-space-md); } .s-cross-link .cl-grid { display: grid; gap: var(–lhc-space-md); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); } .s-cross-link .cl-card { display: block; text-decoration: none; border: 0.8px solid var(–lhc-border-light); border-radius: var(–lhc-radius-card); padding: var(–lhc-space-md); background: var(–lhc-white); transition: var(–lhc-transition); height: 100%; } .s-cross-link .cl-card:hover { transform: translateY(-2px); box-shadow: var(–lhc-shadow-card); } .s-cross-link .cl-icon { display: block; color: var(–lhc-gold); margin: 0 0 var(–lhc-space-sm); line-height: 0; } .s-cross-link .cl-icon svg { width: 30px; height: 30px; } .s-cross-link .cl-label { display: block; font-size: var(–lhc-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(–lhc-teal); margin: 0 0 var(–lhc-space-xs); } .s-cross-link .cl-title { display: block; font-size: var(–lhc-h3); font-weight: 600; line-height: 1.25; color: var(–lhc-navy); margin: 0 0 var(–lhc-space-xs); } .s-cross-link .cl-teaser { display: block; font-size: var(–lhc-body); line-height: 1.55; color: var(–lhc-text); margin: 0; } @media (max-width: 640px) { .s-cross-link .cl-grid { grid-template-columns: 1fr; } } .s-cta-band { background: var(–lhc-navy-gradient); background-color: var(–lhc-navy); color: var(–lhc-white); text-align: center; } .s-cta-band .cta-inner { max-width: 50ch; margin: 0 auto; padding: var(–lhc-section-y) 0; } .s-cta-band .cta-eyebrow { font-size: var(–lhc-label); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(–lhc-gold); margin: 0 0 var(–lhc-space-sm); } .s-cta-band h2 { font-size: var(–lhc-h2); font-weight: 700; line-height: 1.15; letter-spacing: -0.01em; color: var(–lhc-white); margin: 0 0 var(–lhc-space-sm); } .s-cta-band h2 em { font-style: normal; color: var(–lhc-gold); } .s-cta-band .cta-sub { font-size: var(–lhc-body); line-height: 1.6; color: rgba(255,255,255,0.82); margin: 0 auto var(–lhc-space-lg); max-width: 50ch; } .s-cta-band .cta-actions { display: flex; justify-content: center; }
Case Study: Mechanical Engineering & Crane Technology
Palfinger: Over 450 projects,
—one platform, full control
How the world's leading manufacturer of crane and lifting solutions replaced scattered spreadsheets with a centralized project management system, saving hours each week.
Palfinger: Using Smartsheet
The challenge
When projects disappear into spreadsheets
Palfinger, with over 12,000 employees and 30 production sites worldwide, managed projects in isolated, unconnected spreadsheets. Without a centralized view, it was nearly impossible to manage hundreds of projects.
Scattered data: Projects were managed in separate, standalone spreadsheets, without a central database or a consistent structure.
Manual updates: Changes to the project structure had to be made individually in each of the 100+ projects, which was extremely time-consuming.
Lack of transparency: Management lacked an overview of actual resource utilization and project progress across all locations.
The solution
From scattered tables to centralized control
Nadir Doudou, Head of PMO Global Operations, was the first user and built a standard toolset using the PMO template. In three months, more than 50 projects were migrated, and today there are over 500.
Control Center for Bulk Management
With Smartsheet Control Center, Palfinger can create and manage changes and new projects in bulk. This saves approximately 2 hours per week on project setup alone.
Dynamic View for data protection
With Dynamic View, Palfinger shares only the relevant information with the right people, without having to grant access to the full spreadsheets.
No-code automation
Teams build their own solutions, such as ticketing systems and dashboards, without IT support or expensive custom programming.
Full transparency, less effort
We have full visibility into every project, and we can see at a glance how much time and effort is being spent on each activity.
Talk to us about this solution
Nico Röpnack
Founder & Managing Director, Lighthouse Consultings
Answers for decision-makers
What Decision-Makers Need to Know
The questions that operations managers most frequently ask us before a project like the one at Palfinger.
Do we already need to be using Smartsheet?
What do you use n8n and automation for?
How do you approach the topic of AI, and does it make sense for small and medium-sized businesses in the DACH region?
What are the regulations regarding data protection and the GDPR?
How long does a project take, and how much does it cost?
Next step
Full project transparency—for your company, too .
What Palfinger has achieved is also possible for your company. Let’s discuss where your greatest opportunities lie.
/* ========================================================================== LHC Web Framework – shared runtime (single source of truth) – iframe auto-resize (tool/T2 side), production pattern from feedback_iframe_autoresize_wp_pitfalls.md: debounce + delta-threshold, NO `&&` (WP entity-encodes it), no MutationObserver loop. – counters that COUNT UP but never show 0 if JS fails (the final number is already in the HTML; we only animate it). Replaces the fragile Elementor counter widget that froze at 0 on FEW. – reveal that is visible by default (pitfall #3: never hide content in iframe). ========================================================================== */ (function () { “use strict”; var inIframe = false; try { inIframe = window.self !== window.top; } catch (e) { inIframe = true; } /* —- reveal: ensure everything is visible (belt-and-suspenders) —- */ function reveal() { var els = document.querySelectorAll(“.lhc-fw .rv”); for (var i = 0; i 1) { p = 1; } var eased = 1 – Math.pow(1 – p, 3); var val = (target * eased).toFixed(decimals); el.textContent = prefix + val + suffix; if (p just run them */ for (var i = 0; i < nodes.length; i++) { animateCounter(nodes[i]); } return; } var io = new IntersectionObserver(function (entries) { for (var j = 0; j < entries.length; j++) { if (entries[j].isIntersecting) { animateCounter(entries[j].target); io.unobserve(entries[j].target); } } }, { threshold: 0.4 }); for (var k = 0; k < nodes.length; k++) { io.observe(nodes[k]); } } else { for (var m = 0; m < nodes.length; m++) { animateCounter(nodes[m]); } } } /* —- iframe auto-resize: broadcast height to the parent WP page —- */ var _lastH = 0, _t = null; function broadcastHeight() { if (inIframe === false) { return; } if (_t) { return; } _t = setTimeout(function () { _t = null; var h = document.body.scrollHeight; if (Math.abs(h – _lastH) < 30) { return; } _lastH = h; window.parent.postMessage({ type: "lhc-tool-resize", height: h }, "*"); }, 200); } function wireResize() { if (inIframe === false) { return; } window.addEventListener("load", broadcastHeight); window.addEventListener("resize", broadcastHeight); document.addEventListener("click", broadcastHeight, true); var imgs = document.querySelectorAll(".lhc-fw img"); for (var i = 0; i < imgs.length; i++) { imgs[i].addEventListener("load", broadcastHeight); } setTimeout(broadcastHeight, 600); setTimeout(broadcastHeight, 1600); } function init() { reveal(); initCounters(); wireResize(); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })(); { “@context”: “https://schema.org”, “@type”: “FAQPage”, “mainEntity”: [ { “@type”: “Question”, “name”: “Müssen wir Smartsheet schon im Einsatz haben?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Nein. Wir bauen sowohl auf bestehenden Smartsheet-Umgebungen auf als auch komplett neu. Wenn Sie heute mit Excel-Pivots oder verteilten Tabellen arbeiten, übernehmen wir die Datenstruktur und überführen sie sauber in eine Smartsheet-Lösung, die Ihr Team danach selbst pflegen kann.” } }, { “@type”: “Question”, “name”: “Wofür setzt ihr n8n und Automatisierung ein?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “n8n verbindet die Systeme, zwischen denen heute manuell kopiert wird, etwa Smartsheet, HubSpot, E-Mail und ERP. Wiederkehrende Schritte wie Status-Updates, Benachrichtigungen oder Reports laufen dann automatisch im Hintergrund, statt jemanden täglich Zeit zu kosten.” } }, { “@type”: “Question”, “name”: “Wie geht ihr beim Thema KI vor, und ist das im DACH-Mittelstand sinnvoll?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Wir setzen KI gezielt dort ein, wo sie einen messbaren Vorteil bringt, etwa bei Klassifizierung, Vorhersagen oder Entscheidungsunterstützung, und nicht als Selbstzweck. Bei FEW Automotive haben wir so manuelle Auswertungen ersetzt, die vorher Tage gekostet haben. Jede Lösung bleibt nachvollziehbar und für Ihr Team beherrschbar.” } }, { “@type”: “Question”, “name”: “Wie ist das mit Datenschutz und DSGVO geregelt?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Datenschutz ist Teil jedes Projekts, nicht ein nachgelagerter Punkt. Wir klären zu Beginn, welche Daten verarbeitet werden und wo sie liegen, schließen bei Bedarf einen Auftragsverarbeitungsvertrag und bevorzugen Komponenten mit Verarbeitung in der EU. Sensible Daten werden nur dort eingesetzt, wo es rechtlich und vertraglich sauber abgesichert ist.” } }, { “@type”: “Question”, “name”: “Wie lange dauert ein Projekt und was kostet es?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Ein erster nutzbarer Stand entsteht meist innerhalb weniger Wochen, viele Projekte starten mit einem klar umrissenen Pilot. Der Investitionsrahmen hängt von Umfang und Integrationstiefe ab. In einem kurzen Erstgespräch schätzen wir Aufwand und Nutzen für Ihren konkreten Fall ein, bevor Sie sich festlegen.” } } ] }