
    /* =========================================================================
       DESIGN SYSTEM - SO-TEC GMBH static package
       ========================================================================= */
       
    :root {
        /* Color Palette */
        --accent: #e71b24;
        --accent-hover: #c4131b;
        --accent-rgb: 231, 27, 36;
        
        --red: var(--accent);
        --red2: #ff2a2f;
        --green: #86c440;
        --green2: #a6df62;
        --water1: #0B86D6;
        --water2: #39B6FF;
        
        --dark-bg: #080a0f;
        --light-bg: #f8fafc;
        --white: #ffffff;
        
        --text-dark: #1e293b;
        --text-muted: #64748b;
        --text-light: #f1f5f9;
        
        --font-primary: 'Inter', sans-serif;
        --font-display: 'Montserrat', sans-serif;
        
        --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
        --shadow-md: 0 8px 25px rgba(0, 0, 0, 0.08);
        --shadow-lg: 0 16px 45px rgba(0, 0, 0, 0.12);
        
        --radius: 16px;
        --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    }
    
    /* Global Resets */
    *, *::before, *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
    }
    
    html {
        scroll-behavior: smooth;
        font-size: 16px;
    }
    
    body {
        font-family: var(--font-primary);
        background-color: var(--white);
        color: var(--text-dark);
        line-height: 1.6;
        overflow-x: hidden;
    }
    
    .container {
        width: min(1100px, 100% - 40px);
        margin-inline: auto;
    }
    
    .container-narrow {
        width: min(800px, 100% - 40px);
        margin-inline: auto;
    }
    
    section {
        position: relative;
    }
    
    .section-padding {
        padding-block: clamp(60px, 8vw, 120px);
    }
    
    /* Background grid layouts styling */
    .background-grid {
        background-image: url('../assets/asset_3f26739d.jpg');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-attachment: fixed;
    }
    
    @media (max-width: 768px) {
        .background-grid {
            background-attachment: scroll !important;
        }
    }
    
    .background-light {
        background-color: var(--light-bg);
    }
    
    .background-dark {
        background-color: var(--dark-bg);
    }
    
    .text-light {
        color: var(--text-light) !important;
    }
    
    /* Typography */
    h1, h2, h3, h4, h5, h6 {
        font-family: var(--font-display);
        font-weight: 700;
        line-height: 1.2;
        color: var(--text-dark);
    }
    
    p {
        font-size: 1rem;
        color: var(--text-muted);
    }
    
    p strong {
        color: var(--text-dark);
    }
    
    .text-highlight {
        color: var(--accent);
    }
    
    /* Buttons */
    .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 14px 28px;
        font-family: var(--font-display);
        font-weight: 700;
        font-size: 0.95rem;
        border-radius: 6px;
        text-decoration: none;
        transition: var(--transition);
        cursor: pointer;
        border: 2px solid transparent;
        text-align: center;
    }
    
    .btn-primary {
        background-color: var(--accent);
        color: var(--white);
        box-shadow: 0 8px 20px rgba(231, 27, 36, 0.15);
    }
    
    .btn-primary:hover {
        background-color: var(--accent-hover);
        transform: translateY(-2px);
        box-shadow: 0 12px 24px rgba(231, 27, 36, 0.25);
    }
    
    .btn-secondary {
        background-color: transparent;
        color: var(--text-dark);
        border-color: rgba(0, 0, 0, 0.15);
    }
    
    .btn-secondary:hover {
        background-color: rgba(0, 0, 0, 0.03);
        border-color: rgba(0, 0, 0, 0.3);
        transform: translateY(-2px);
    }
    
    .btn-header {
        padding: 10px 22px;
        font-size: 0.85rem;
    }
    
    /* Header Styles */
    .site-header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 1000;
        background-color: transparent;
        backdrop-filter: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0);
        transition: background-color 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, box-shadow 0.3s ease;
    }
    
    .site-header.header-scrolled {
        background-color: rgba(8, 10, 15, 0.92) !important;
        backdrop-filter: blur(12px) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        box-shadow: var(--shadow-sm) !important;
    }
    
    .header-container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 80px;
    }
    
    .logo {
        display: flex;
        align-items: center;
    }
    
    .logo-img {
        height: 52px;
        width: auto;
        display: block;
    }
    
    .main-nav .nav-links {
        display: flex;
        list-style: none;
        gap: 32px;
        align-items: center;
    }
    
    .nav-link {
        text-decoration: none;
        color: rgba(255, 255, 255, 0.85);
        font-family: var(--font-display);
        font-weight: 500;
        font-size: 0.95rem;
        transition: var(--transition);
        position: relative;
        padding-block: 8px;
    }
    
    .nav-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: var(--accent);
        transform: scaleX(0);
        transform-origin: right;
        transition: transform 0.3s ease;
    }
    
    .nav-social-link::after {
        display: none !important;
    }
    
    .nav-link:hover,
    .nav-link.active {
        color: var(--accent) !important;
    }
    
    .nav-link:hover::after,
    .nav-link.active::after {
        transform: scaleX(1);
        transform-origin: left;
    }
    
    .mobile-nav-toggle {
        display: none;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 8px;
    }
    
    .hamburger {
        display: block;
        width: 24px;
        height: 2px;
        background-color: var(--white);
        position: relative;
        transition: var(--transition);
    }
    
    .hamburger::before,
    .hamburger::after {
        content: '';
        position: absolute;
        width: 24px;
        height: 2px;
        background-color: var(--white);
        left: 0;
        transition: var(--transition);
    }
    
    .hamburger::before { top: -8px; }
    .hamburger::after { top: 8px; }
    
    /* Hamburger Active animation */
    .mobile-nav-toggle.active .hamburger {
        background-color: transparent;
    }
    
    .mobile-nav-toggle.active .hamburger::before {
        transform: translateY(8px) rotate(45deg);
    }
    
    .mobile-nav-toggle.active .hamburger::after {
        transform: translateY(-8px) rotate(-45deg);
    }
    
    /* Mobile Overlay */
    .mobile-nav-overlay {
        position: fixed;
        inset: 0;
        background-color: rgba(8, 10, 15, 0.96);
        backdrop-filter: blur(20px);
        z-index: 999;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        transform: translateY(-100%);
        pointer-events: none;
        transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    }
    
    .mobile-nav-overlay.active {
        opacity: 1;
        transform: translateY(0);
        pointer-events: all;
    }
    
    .mobile-nav-links {
        display: flex;
        flex-direction: column;
        align-items: center;
        list-style: none;
        gap: 28px;
        width: 80%;
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.4s ease 0.1s, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.1s;
    }
    
    .mobile-nav-overlay.active .mobile-nav-links {
        opacity: 1;
        transform: translateY(0);
    }
    
    .mobile-nav-links .nav-link {
        font-size: 1.5rem;
    }
    
    .btn-mobile-cta {
        margin-top: 16px;
        width: 100%;
        max-width: 280px;
    }
    
    @media (max-width: 991px) {
        .main-nav,
        .header-cta {
            display: none !important;
        }
        .mobile-nav-toggle {
            display: flex !important;
            align-items: center;
            justify-content: center;
        }
    }
    
    @media (max-width: 480px) {
        .logo-img {
            height: 42px;
        }
        .header-container {
            height: 70px;
        }
    }
    
    body.overflow-hidden {
        overflow: hidden !important;
    }
    
    /* Hero Section Styles */
    .hero-section {
        min-height: 85vh;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-attachment: fixed;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding-top: 100px;
        color: var(--white);
    }
    
    @media (max-width: 768px) {
        .hero-section {
            background-attachment: scroll !important;
        }
    }
    
    .hero-content {
        max-width: 1050px;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .hero-title {
        font-size: clamp(2rem, 4.5vw, 3.8rem);
        color: var(--white);
        margin-bottom: 24px;
        line-height: 1.25;
        font-weight: 700;
    }
    
    .hero-subtext {
        font-size: clamp(1rem, 1.8vw, 1.15rem);
        color: rgba(255, 255, 255, 0.85);
        margin-bottom: 40px;
        max-width: 700px;
        line-height: 1.6;
    }
    
    .hero-ctas {
        display: flex;
        justify-content: center;
        gap: 16px;
    }
    
    @media (max-width: 576px) {
        .hero-ctas {
            flex-direction: column;
            width: 100%;
            padding-inline: 20px;
            gap: 12px;
        }
        .hero-ctas .btn {
            width: 100%;
        }
    }
    
    .hero-ctas .btn-secondary {
        color: var(--white);
        border-color: rgba(255, 255, 255, 0.4);
        background-color: rgba(30, 31, 33, 0.2);
    }
    
    .hero-ctas .btn-secondary:hover {
        background-color: var(--accent);
        border-color: var(--accent);
        transform: translateY(-2px);
    }
    
    /* Subpage Hero Styles */
    .subpage-hero {
        height: auto;
        min-height: clamp(260px, 35vh, 380px);
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-attachment: fixed;
        display: flex;
        align-items: center;
        padding-top: 100px;
        padding-bottom: 40px;
        color: var(--white);
    }
    
    .hero-sub-container {
        display: grid;
        grid-template-columns: 1.2fr 1.8fr;
        gap: 30px;
        align-items: center;
    }
    
    .hero-sub-container.centered {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 15px;
        width: 100%;
    }
    
    .hero-sub-container.centered .subpage-intro-text {
        border-left: none;
        padding-left: 0;
        text-align: center;
        max-width: 800px;
        margin-inline: auto;
    }
    
    .subpage-title-banner {
        background: var(--white);
        padding: 8px 50px;
        border-radius: 4px;
        display: inline-block;
        margin-bottom: 15px;
        border: 1px solid rgba(0,0,0,0.05);
        box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    }
    
    .subpage-title-banner h1 {
        color: var(--accent) !important;
        font-size: 2.2rem;
        font-weight: 700;
        margin: 0;
        font-family: var(--font-display);
        text-transform: none;
        letter-spacing: 0.5px;
    }
    
    .subpage-title {
        font-size: clamp(2rem, 4vw, 3rem);
        color: var(--white);
    }
    
    .subpage-intro-text {
        font-size: 1.1rem;
        color: rgba(255, 255, 255, 0.9);
        border-left: 3px solid var(--accent);
        padding-left: 20px;
        line-height: 1.6;
    }
    
    @media (max-width: 768px) {
        .subpage-hero {
            background-attachment: scroll !important;
        }
        .hero-sub-container {
            grid-template-columns: 1fr;
            gap: 12px;
        }
        .subpage-intro-text {
            padding-left: 0;
            border-left: none;
            font-size: 1rem;
        }
    }
    
    @media (max-width: 576px) {
        .subpage-title-banner {
            padding: 8px 24px;
        }
        .subpage-title-banner h1 {
            font-size: 1.6rem;
        }
    }
    
    /* =========================================================================
       WIDGET STYLING: ZIGZACK & WATER CARDS (REPLICATING ORIGINAL DESIGNS)
       ========================================================================= */
       
    /* 1. Zigzag Widget CSS */
    #sotecWidget {
      --accent: #f70000;
      --red: var(--accent);
      --red2:#ff2a2f;
      --green:#86c440;
      --green2:#a6df62;

      --ink:#333;
      --muted:#555;

      background: transparent;

      --card: rgba(255,255,255,.96);
      --cardSolid:#fff;

      --shadow: 0 8px 25px rgba(0,0,0,0.12);
      --shadowHover: 0 18px 45px rgba(0,0,0,0.16);
      --radius: 15px;
      --radius2: 14px;

      --max: 1100px;

      --gap: clamp(18px, 3vw, 46px);
      --zigY: clamp(170px, 7vw, 240px);
      --zigX: clamp(0px, 1.2vw, 16px);

      /* Hier ist jetzt Inter aktiv */
      font-family: 'Inter', sans-serif;
      color: var(--ink);
      line-height: 1.7;
    }
    #sotecWidget * { box-sizing:border-box; }
    #sotecWidget img { max-width:100%; height:auto; display:block; }

    #sotecWidget .wrap {
      width: min(var(--max), 100%);
      margin: 0 auto;
      padding: 0;
    }

    /* ===== ZICKZACK ===== */
    #sotecWidget .zigzag {
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--gap);
      align-items:start;
    }
    #sotecWidget .zigzag > .card:nth-child(even) {
      margin-top: var(--zigY);
      transform: translateX(var(--zigX));
    }
    #sotecWidget .zigzag > .card:nth-child(odd) {
      transform: translateX(calc(var(--zigX) * -1));
    }
    @media (max-width: 992px) {
      #sotecWidget .zigzag { grid-template-columns: 1fr; gap: 30px; }
      #sotecWidget .zigzag > .card:nth-child(even),
      #sotecWidget .zigzag > .card:nth-child(odd) {
        margin-top: 0;
        transform: none;
      }
    }

    /* ===== Card (Veredelung + Hover) ===== */
    #sotecWidget .card {
      background: var(--card);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow:hidden;
      border: 1px solid rgba(0,0,0,.06);
      position: relative;
      transform: translateY(0);
      transition: transform .28s cubic-bezier(.2,.8,.2,1),
                  box-shadow .28s ease,
                  border-color .28s ease;
    }

    #sotecWidget .card::before {
      content:"";
      position:absolute;
      inset:-2px;
      border-radius: calc(var(--radius) + 2px);
      background: linear-gradient(135deg, rgba(255,255,255,.85), rgba(255,255,255,0) 45%);
      opacity: .0;
      pointer-events:none;
      transition: opacity .28s ease;
    }
    #sotecWidget .card::after {
      content:"";
      position:absolute;
      inset:0;
      border-radius: var(--radius);
      pointer-events:none;
      opacity: 0;
      transition: opacity .28s ease;
      box-shadow: inset 0 0 0 1px rgba(247,0,0,.12);
    }

    #sotecWidget .card:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadowHover);
      border-color: rgba(247,0,0,.18);
    }
    #sotecWidget .card:hover::before { opacity: .55; }
    #sotecWidget .card:hover::after { opacity: 1; }

    #sotecWidget .in { padding: 28px; }
    @media (max-width: 992px) { #sotecWidget .in { padding: 24px; } }

    /* ===== Überschrift-Style ===== */
    #sotecWidget .title {
      font-size: 1.75rem;
      font-weight: 700;
      color: var(--accent);
      margin: 0 0 12px;
      position: relative;
      padding-bottom: 10px;
      line-height: 1.2;
    }
    #sotecWidget .title::after {
      content:'';
      position:absolute;
      bottom:0; left:0;
      width: 50px; height: 3px;
      background: var(--accent);
      transition: width .25s ease;
    }
    #sotecWidget .card:hover .title::after { width: 64px; }

    /* ===== Kicker ===== */
    #sotecWidget .kicker {
      display:flex;
      gap: 14px;
      align-items:flex-start;
      margin-bottom: 14px;
    }
    #sotecWidget .num {
      width: 42px; height: 42px;
      border-radius: 12px;
      background: linear-gradient(135deg, var(--accent), var(--red2));
      color:#fff;
      display:grid; place-items:center;
      font-weight: 700;
      font-size: 1.1rem;
      box-shadow: 0 12px 22px rgba(247,0,0,.22);
      flex: 0 0 auto;
      transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
    }
    #sotecWidget .card:hover .num {
      transform: translateY(-2px) rotate(-1deg);
      box-shadow: 0 18px 30px rgba(247,0,0,.25);
    }
    #sotecWidget .ktext {
      text-transform: uppercase;
      letter-spacing: .6px;
      font-weight: 700;
      font-size: .85rem;
      color: #333;
      line-height: 1.2;
      margin-top: 2px;
    }
    #sotecWidget .ktext span {
      display:block;
      text-transform: none;
      letter-spacing: 0;
      font-weight: 500;
      color: #666;
      margin-top: 4px;
      font-size: .95rem;
    }

    /* ===== Text ===== */
    #sotecWidget p {
      font-size: 1.02rem;
      color: var(--muted);
      margin: 0;
    }
    #sotecWidget p + p { margin-top: .85em; }

    /* ===== Quote ===== */
    #sotecWidget .quoteRow {
      display:flex;
      gap: 12px;
      margin-top: 10px;
      align-items:flex-start;
    }
    #sotecWidget .qmark {
      font-size: 54px;
      line-height: 1;
      color: rgba(0,0,0,.20);
      font-weight: 700;
      transform: translateY(-6px);
      user-select:none;
    }
    #sotecWidget .quoteText {
      color: var(--accent);
      font-weight: 700;
      font-size: 1.05rem;
      margin-top: 4px;
    }

    /* ===== Red tiles ===== */
    #sotecWidget .redTiles {
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      margin-top: 18px;
    }
    @media (max-width: 600px) {
      #sotecWidget .redTiles { grid-template-columns: 1fr; }
    }
    #sotecWidget .redTile {
      background: linear-gradient(135deg, var(--accent), var(--red2));
      color:#fff;
      border-radius: 15px;
      padding: 16px;
      box-shadow: 0 12px 28px rgba(247,0,0,.18);
      position: relative;
      overflow:hidden;
      transform: translateY(0);
      transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
    }
    #sotecWidget .redTile:before {
      content:"";
      position:absolute; inset:-35%;
      background: radial-gradient(circle at 28% 30%, rgba(255,255,255,.22), transparent 55%);
      transform: rotate(12deg);
      opacity: .95;
    }
    #sotecWidget .redTile h4 {
      margin:0 0 10px;
      font-size: 1.02rem;
      font-weight: 700;
      position: relative;
    }
    #sotecWidget .redTile p {
      margin:0;
      font-size: .98rem;
      line-height: 1.6;
      opacity: 1;
      position: relative;
      color: #fff;
      font-weight: 500;
    }
    #sotecWidget .redTile p strong {
      color: #fff;
    }
    #sotecWidget .redTile h4 {
      color: #fff;
    }

    /* ===== Media ===== */
    #sotecWidget .media {
      border-radius: 15px;
      overflow:hidden;
      background: #f2f4f7;
      border: 1px solid rgba(0,0,0,.06);
      position: relative;
      margin-top: 18px;
      min-height: 250px;
    }
    #sotecWidget .media.tall { min-height: 340px; }
    @media (max-width: 576px) {
      #sotecWidget .media { min-height: 200px; }
      #sotecWidget .media.tall { min-height: 260px; }
    }
    #sotecWidget .media .img {
      position:absolute; inset:0;
      background-size: cover;
      background-position: center;
      transform: scale(1.03);
      transition: transform .55s cubic-bezier(0.25,0.46,0.45,0.94);
      will-change: transform;
    }
    #sotecWidget .card:hover .media .img {
      transform: scale(1.06) rotate(1deg);
    }

    /* ===== Icon balls ===== */
    #sotecWidget .iconRow {
      display:flex;
      justify-content:center;
      gap: 12px;
      margin-top: -24px;
      padding-bottom: 12px;
      position: relative;
      z-index: 2;
    }
    #sotecWidget .ball {
      width:54px; height:54px;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--accent), var(--red2));
      box-shadow: 0 12px 28px rgba(247,0,0,.20);
      display:grid; place-items:center;
      color:#fff;
      border: 1px solid rgba(255,255,255,.20);
      transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, filter .22s ease;
      user-select:none;
    }
    #sotecWidget .ball:hover {
      transform: translateY(-5px) scale(1.04);
      box-shadow: 0 18px 34px rgba(247,0,0,.26);
      filter: saturate(1.05);
    }
    #sotecWidget .ball svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.2; }

    /* ===== Green frame ===== */
    #sotecWidget .greenFrame {
      border-radius: 15px;
      background: linear-gradient(135deg, rgba(134,196,64,.22), rgba(166,223,98,.16));
      padding: 14px;
      border: 1px solid rgba(134,196,64,.35);
      margin-top: 10px;
      transition: transform .25s cubic-bezier(.2,.8,.2,1);
    }
    #sotecWidget .card:hover .greenFrame {
      transform: translateY(-2px);
    }
    #sotecWidget .greenFrame .box {
      background: var(--cardSolid);
      border-radius: 12px;
      border: 4px solid var(--green);
      padding: 16px 16px 14px;
      box-shadow: 0 12px 28px rgba(0,0,0,.08);
    }
    #sotecWidget .greenFrame h3 {
      margin: 0 0 10px;
      font-size: 1.55rem;
      line-height: 1.15;
      letter-spacing:-.2px;
      color: var(--green);
      font-weight: 700;
    }
    #sotecWidget .greenFrame h4 {
      margin: 8px 0 10px;
      font-size: 1rem;
      font-weight: 700;
      color:#333;
    }
    #sotecWidget .greenFrame p {
      font-size: 1rem;
      line-height: 1.7;
      color:#555;
      font-weight: 500;
    }

    /* ===== Bullets ===== */
    #sotecWidget .bullets {
      margin: 16px 0 0;
      padding: 0;
      list-style: none;
      display:grid;
      gap: 10px;
    }
    #sotecWidget .bullets li {
      display:flex;
      gap:10px;
      align-items:flex-start;
      font-weight: 600;
      color:#555;
      font-size: 1rem;
      line-height: 1.6;
    }
    #sotecWidget .bullets li:before {
      content:"";
      width:10px; height:10px;
      border-radius: 99px;
      background: var(--accent);
      margin-top: 7px;
      box-shadow: 0 10px 18px rgba(247,0,0,.16);
      flex: 0 0 auto;
    }

    /* ===== Speech ===== */
    #sotecWidget .speech {
      background: linear-gradient(135deg, var(--accent), var(--red2));
      color:#fff;
      padding: 16px;
      font-weight: 700;
      position: relative;
      border-radius: 15px;
      box-shadow: 0 14px 32px rgba(247,0,0,.18);
      border: 1px solid rgba(255,255,255,.18);
      margin-top: 18px;
      overflow:hidden;
    }
    #sotecWidget .speech:after {
      content:"";
      position:absolute;
      inset:-60% -40%;
      background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.20), transparent 55%);
      transform: rotate(10deg);
      opacity: .75;
      pointer-events:none;
    }
    #sotecWidget .speech:before {
      content:"";
      position:absolute;
      left: 18px;
      top: -14px;
      border: 14px solid transparent;
      border-bottom-color: var(--accent);
      filter: drop-shadow(0 10px 10px rgba(0,0,0,.12));
    }
    #sotecWidget .speech .big,
    #sotecWidget .speech .small {
      color:#fff !important;
      opacity:1 !important;
      position: relative;
      z-index: 1;
    }
    #sotecWidget .speech .big { font-size: 1.55rem; margin: 0 0 6px; }
    #sotecWidget .speech .small { font-size: 1rem; font-weight: 500; margin:0; line-height:1.7; }

    /* ===== SLOGAN als BILD ===== */
    #sotecWidget .sloganWrap {
      display:flex;
      justify-content:flex-end;
      margin-top: 24px;
      margin-bottom: 10px;
    }
    #sotecWidget .sotec-slogan-img {
      width: min(340px, 100%);
      transform: rotate(-6deg);
      filter: drop-shadow(0 4px 10px rgba(0,0,0,.08));
    }

    @media (max-width: 992px) {
      #sotecWidget .sloganWrap { justify-content:center; }
      #sotecWidget .sotec-slogan-img {
        transform: rotate(-5deg);
        width: min(280px, 80%);
      }
    }

    /* ===== Animation ===== */
    .reveal {
      opacity: 0;
      transform: translateY(18px);
      transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1);
      will-change: transform, opacity;
    }
    .reveal.inView,
    .reveal.aos-animate {
      opacity: 1;
      transform: translateY(0);
    }

    /* 2. Water Grid Widget CSS */
    .sotec-grid-wrap {
        --so-red: #e71b24;
        --text: #222;
        --water1: #0B86D6;
        --water2: #39B6FF;
        --card: #fff;
        --shadow: 0 10px 26px rgba(0,0,0,.10);
        --shadowHover: 0 18px 44px rgba(0,0,0,.14);
        --r: 14px;
        
        font-family: 'Inter', sans-serif;
        background: transparent;
        padding: 40px 0;
    }
    
    .sotec-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 22px;
        max-width: 1100px;
        margin: 0 auto;
    }
    
    /* ===== Card ===== */
    .water-card {
        position: relative;
        border-radius: var(--r);
        background: var(--card);
        box-shadow: var(--shadow);
        border: 1px solid rgba(0,0,0,.06);
        overflow: hidden;
        transform: translateY(0);
        transition: transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease, border-color .28s ease;
        min-height: 280px;
    }
    
    /* „Premium“-Kante */
    .water-card::before {
        content: "";
        position: absolute;
        inset: -2px;
        border-radius: calc(var(--r) + 2px);
        background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,255,255,0) 46%);
        opacity: 0;
        pointer-events: none;
        transition: opacity .28s ease;
        z-index: 1;
    }
    
    .water-card:hover {
        transform: translateY(-6px);
        box-shadow: var(--shadowHover);
        border-color: rgba(11,134,214,.18);
    }
    .water-card:hover::before { opacity: .65; }
    
    /* ===== Wasser-Layer (nur Hover) ===== */
    .water {
        position: absolute;
        inset: 0;
        pointer-events: none;
        opacity: 0;
        transition: opacity .25s ease;
        z-index: 0;
    }
    
    /* Zwei weiche Wellen */
    .water::before,
    .water::after {
        content: "";
        position: absolute;
        left: -20%;
        width: 140%;
        height: 140%;
        top: 58%;
        border-radius: 45%;
        background:
          radial-gradient(circle at 30% 20%, rgba(255,255,255,.45), transparent 55%),
          linear-gradient(135deg, rgba(57,182,255,.38), rgba(11,134,214,.34));
        transform: translateY(0) rotate(0deg);
        opacity: .95;
        animation: waveMove 6.5s linear infinite;
    }
    .water::after {
        top: 66%;
        opacity: .62;
        animation-duration: 8.5s;
        animation-direction: reverse;
        background:
          radial-gradient(circle at 40% 15%, rgba(255,255,255,.32), transparent 60%),
          linear-gradient(135deg, rgba(11,134,214,.30), rgba(57,182,255,.26));
    }
    
    @keyframes waveMove {
        0% { transform: translateY(0) rotate(0deg); }
        100% { transform: translateY(-10px) rotate(360deg); }
    }
    
    .water-card:hover .water { opacity: 1; }
    
    /* ===== Inhalt ===== */
    .water-inner {
        position: relative;
        z-index: 2;
        padding: 22px;
        display: flex;
        flex-direction: column;
        gap: 12px;
        height: 100%;
    }
    
    /* Kopf */
    .head {
        display: flex;
        gap: 12px;
        align-items: center;
    }
    
    .icon {
        width: 46px;
        height: 46px;
        border-radius: 14px;
        display: grid;
        place-items: center;
        background: linear-gradient(135deg, rgba(231,27,36,.14), rgba(231,27,36,.06));
        border: 1px solid rgba(231,27,36,.20);
        transition: transform .25s cubic-bezier(.2,.8,.2,1);
    }
    .water-card:hover .icon { transform: translateY(-2px) scale(1.02); }
    
    .icon img {
        width: 26px;
        height: 26px;
        filter: brightness(0) saturate(100%) invert(16%) sepia(90%) saturate(5500%) hue-rotate(350deg) brightness(95%) contrast(110%);
    }
    
    .icon svg {
        width: 26px;
        height: 26px;
        display: block;
        color: var(--so-red);
    }
    .icon svg * {
        stroke: currentColor;
        fill: none;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    
    .water-inner .title {
        margin: 0;
        font-size: 1.08rem;
        font-weight: 600;
        color: var(--text);
        line-height: 1.2;
    }
    
    /* rote Linie unter Titel */
    .wave-line {
        height: 3px;
        width: 44px;
        border-radius: 999px;
        background: var(--so-red);
        position: relative;
        overflow: hidden;
    }
    .wave-line::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent);
        transform: translateX(-60%);
        transition: transform .35s ease;
    }
    .water-card:hover .wave-line::after { transform: translateX(70%); }
    
    .teaser {
        margin: 0;
        color: #555;
        font-size: .95rem;
        line-height: 1.45;
        max-width: 42ch;
    }
    
    .divider {
        height: 1px;
        background: rgba(0,0,0,.06);
        margin-top: 4px;
    }
    
    .detail {
        margin-top: auto;
        background: rgba(255,255,255,.92);
        border: 1px solid rgba(0,0,0,.06);
        border-radius: 12px;
        padding: 14px 14px 13px;
        color: #333;
        font-size: .95rem;
        line-height: 1.45;
        backdrop-filter: blur(6px);
        transition: transform .22s cubic-bezier(.2,.8,.2,1), border-color .22s ease;
    }
    
    .water-card:hover .detail {
        transform: translateY(-2px);
        border-color: rgba(11,134,214,.16);
    }
    
    .detail strong {
        color: var(--so-red);
        font-weight: 600;
    }
    
    @media (prefers-reduced-motion: reduce) {
        .water-card, .water, .water::before, .water::after, .detail, .icon, .wave-line::after {
            animation: none !important;
            transition: none !important;
        }
        .water { opacity: .12; }
    }

    /* Transition Section & Spacings */
    .zigzag-section.section-padding {
        padding-bottom: 20px;
    }
    
    .services-section.section-padding {
        padding-top: 20px;
    }
    
    .transition-cta-section {
        padding: 30px 0;
        text-align: center;
        position: relative;
        z-index: 5;
    }

    /* Title Pill Styles */
    .services-section .section-header {
        text-align: center;
        margin-bottom: 40px;
    }
    
    .services-section .section-title-box {
        display: block;
        background: var(--white);
        padding: 12px 0;
        border-radius: 12px;
        box-shadow: 0 10px 26px rgba(0,0,0,.05);
        border: 1px solid rgba(0,0,0,0.06);
        margin: 0 auto 20px auto;
        max-width: 1100px;
        width: 100%;
        text-align: center;
    }
    
    .services-section .section-title {
        color: var(--accent);
        margin: 0;
        font-size: 1.8rem;
        font-weight: 700;
        font-family: var(--font-display);
    }
    
    .services-section .section-subtitle {
        color: var(--text-muted);
        font-size: 1.05rem;
        margin: 0 auto;
        max-width: 600px;
    }

    /* =========================================================================
       SUBPAGES STYLING: GALLERY, TIMELINE, FORMS, LEGAL
       ========================================================================= */

    /* Unsere Arbeit Masonry Gallery */
    .masonry-gallery {
        columns: 3 320px;
        column-gap: 20px;
    }
    
    .gallery-item {
        display: inline-block;
        width: 100%;
        margin-bottom: 20px;
        border-radius: var(--radius);
        overflow: hidden;
        box-shadow: var(--shadow-sm);
        transition: var(--transition);
        border: 1px solid rgba(0,0,0,0.04);
        background-color: var(--white);
    }
    
    .gallery-item:hover {
        transform: translateY(-4px);
        box-shadow: var(--shadow-md);
    }
    
    .gallery-item a {
        display: block;
        position: relative;
    }
    
    .gallery-item img {
        width: 100%;
        height: auto;
        display: block;
        transition: transform 0.6s ease;
    }
    
    .gallery-item:hover img {
        transform: scale(1.04);
    }
    
    .gallery-overlay {
        position: absolute;
        inset: 0;
        background-color: rgba(231, 27, 36, 0.4);
        opacity: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: var(--transition);
    }
    
    .gallery-item:hover .gallery-overlay {
        opacity: 1;
    }
    
    .zoom-icon {
        width: 44px;
        height: 44px;
        border-radius: 99px;
        background-color: var(--white);
        color: var(--accent);
        display: grid;
        place-items: center;
        font-weight: 700;
        font-size: 1.5rem;
    }
    
    /* Project Asymmetric list */
    .cases-wrapper {
        display: flex;
        flex-direction: column;
        gap: 60px;
        margin-top: 40px;
    }
    
    .case-item {
        display: flex;
        gap: clamp(30px, 5vw, 80px);
        align-items: center;
    }
    
    .case-item.reverse {
        flex-direction: row-reverse;
    }
    
    .case-content, .case-image {
        flex: 1;
    }
    
    .case-tag {
        display: inline-block;
        font-size: 0.8rem;
        font-weight: 700;
        text-transform: uppercase;
        color: var(--accent);
        letter-spacing: 1px;
        margin-bottom: 12px;
    }
    
    .case-title {
        font-size: clamp(1.5rem, 2.5vw, 2.2rem);
        margin-bottom: 16px;
    }
    
    .case-image img {
        width: 100%;
        height: auto;
        border-radius: var(--radius);
        box-shadow: var(--shadow-md);
        display: block;
    }
    
    @media (max-width: 768px) {
        .case-item, .case-item.reverse {
            flex-direction: column;
            gap: 24px;
        }
    }
    
    /* Lightbox Modal */
    .lightbox-modal {
        display: none;
        position: fixed;
        inset: 0;
        background-color: rgba(8, 10, 15, 0.95);
        z-index: 1100;
        align-items: center;
        justify-content: center;
        padding: 20px;
    }
    
    .lightbox-modal.active {
        display: flex;
    }
    
    .lightbox-content {
        max-width: 90%;
        max-height: 85vh;
        border-radius: 8px;
        box-shadow: var(--shadow-lg);
        animation: zoomIn 0.3s ease;
    }
    
    @keyframes zoomIn {
        from { transform: scale(0.95); opacity: 0; }
        to { transform: scale(1); opacity: 1; }
    }
    
    .lightbox-close {
        position: absolute;
        top: 24px;
        right: 24px;
        color: var(--white);
        font-size: 2.5rem;
        font-weight: 600;
        cursor: pointer;
        transition: var(--transition);
    }
    
    .lightbox-close:hover {
        color: var(--accent);
    }
    
    /* Über uns - Timeline progress styling */
    .projekt-verlauf-bereich {
        font-family: 'Montserrat', sans-serif;
        padding: 50px 20px;
        background-color: transparent;
        color: #333;
    }
    
    .projekt-verlauf-container {
        max-width: 1100px;
        margin: auto;
    }
    
    .projekt-schritt {
        display: flex;
        gap: 50px;
        align-items: center;
        margin-bottom: 80px;
    }
    
    .projekt-schritt:nth-child(even) {
        flex-direction: row-reverse;
    }
    
    .projekt-bild-container,
    .projekt-text-container {
        flex: 1;
    }
    
    .projekt-text-container {
        background-color: #ffffff;
        padding: 32px;
        border-radius: 15px;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        text-align: left;
    }
    
    .projekt-bild-container img {
        width: 100%;
        height: auto;
        border-radius: 15px;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
        display: block;
        transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease;
    }
    
    /* Erstes Bild etwas kleiner */
    .projekt-schritt:first-child .projekt-bild-container img {
        width: 80%;
        margin: 0 auto;
        display: block;
    }
    
    /* Hover-Effekt nur über dem Bild */
    .projekt-bild-container:hover img {
        transform: scale(1.04) rotate(1deg);
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.18);
    }
    
    .projekt-text-container h3 {
        font-size: 2rem;
        font-weight: 700;
        color: #f70000;
        margin-bottom: 15px;
        position: relative;
        padding-bottom: 10px;
    }
    
    .projekt-text-container h3::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        width: 50px;
        height: 3px;
        background-color: #f70000;
    }
    
    .projekt-schritt:nth-child(even) .projekt-text-container h3::after { left: 0; right: auto; }
    
    .projekt-schritt:nth-child(even) .projekt-text-container { text-align: left; }
    
    .projekt-text-container p {
        font-size: 1rem;
        line-height: 1.7;
        color: #555;
        margin: 0;
    }
    
    /* Abstand nur zwischen aufeinanderfolgenden Absätzen */
    .projekt-text-container p + p { margin-top: 1em; }
    
    @media (max-width: 992px) {
        .projekt-text-container { padding: 24px; }
        .projekt-schritt,
        .projekt-schritt:nth-child(even) {
            flex-direction: column;
            gap: 30px;
            margin-bottom: 60px;
        }
        .projekt-schritt:nth-child(even) .projekt-text-container,
        .projekt-text-container {
            text-align: left;
        }
        .projekt-schritt:nth-child(even) .projekt-text-container h3::after,
        .projekt-text-container h3::after {
            left: 0;
            right: auto;
        }
        .projekt-text-container h3 {
            font-size: 1.5rem;
        }
        /* Erstes Bild auf Mobil wieder vollbreit */
        .projekt-schritt:first-child .projekt-bild-container img {
            width: 100%;
        }
    }
    
    /* Contact Page Layout & Dark Header Section */
    .contact-header-section {
        position: relative;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-attachment: fixed;
        padding-top: 60px;
        padding-bottom: 40px;
        color: var(--white);
    }
    
    .contact-content-section {
        padding-top: 40px;
        padding-bottom: 60px;
    }
    
    @media (max-width: 768px) {
        .contact-header-section {
            background-attachment: scroll !important;
            padding-top: 40px;
            padding-bottom: 30px;
        }
        .contact-content-section {
            padding-top: 30px;
            padding-bottom: 40px;
        }
    }
    
    .contact-section-header {
        text-align: center;
        margin-bottom: 50px;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .contact-title-banner {
        background: var(--white);
        padding: 8px 45px;
        border-radius: 4px;
        display: inline-block;
        margin-bottom: 20px;
        border: 1px solid rgba(0,0,0,0.05);
        box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    }
    
    .contact-title-banner h2 {
        color: var(--accent) !important;
        font-size: 1.8rem;
        font-weight: 700;
        margin: 0;
        font-family: var(--font-display);
        text-transform: none;
        letter-spacing: 0.5px;
    }
    
    .contact-section-header .contact-intro {
        color: rgba(255, 255, 255, 0.85);
        max-width: 750px;
        margin: 0 auto;
        font-size: 1.05rem;
        line-height: 1.6;
    }
    
    .contact-unified-card {
        background-color: var(--white);
        border-radius: 15px;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
        display: grid;
        grid-template-columns: 1fr 1fr;
        overflow: hidden;
        max-width: 1100px;
        margin: 0 auto;
        align-items: stretch;
    }
    
    .contact-details-side {
        padding: clamp(30px, 4vw, 50px);
        display: flex;
        flex-direction: column;
        gap: 24px;
        text-align: left;
    }
    
    .contact-detail-item {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    
    .detail-label {
        font-size: 0.95rem;
        font-weight: 700;
        color: var(--accent);
        text-transform: none;
        letter-spacing: 0.5px;
        margin: 0;
    }
    
    .detail-label-dark {
        font-size: 0.95rem;
        font-weight: 700;
        color: var(--text-dark);
        text-transform: none;
        letter-spacing: 0.5px;
        margin: 0;
    }
    
    .contact-details-side p {
        margin: 0;
        font-size: 1.05rem;
        color: var(--text-dark);
        line-height: 1.5;
    }
    
    .contact-detail-link {
        color: var(--text-dark);
        text-decoration: none;
        transition: var(--transition);
    }
    
    .contact-detail-link:hover {
        color: var(--accent);
    }
    
    .contact-map-side {
        position: relative;
        width: 100%;
        height: 100%;
        min-height: 400px;
    }
    
    .google-map-iframe-flush {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: none;
        display: block;
    }
    
    @media (max-width: 992px) {
        .contact-unified-card {
            grid-template-columns: 1fr;
        }
        .contact-map-side {
            min-height: 350px;
            height: 350px;
        }
        .google-map-iframe-flush {
            position: relative;
            height: 350px;
        }
    }
    
    /* Schaden melden Page - Local Form Layout */
    .hero-contact-links {
        margin-top: 15px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        align-items: center;
    }
    
    .hero-contact-link {
        color: var(--white) !important;
        font-size: 1.25rem;
        font-weight: 700;
        text-decoration: none;
        transition: var(--transition);
        display: inline-block;
    }
    
    .hero-contact-link:hover {
        color: var(--accent) !important;
    }
    
    .report-section .container-narrow {
        max-width: 900px;
        width: 100%;
        margin: 0 auto;
    }
    
    .report-header {
        text-align: left;
        max-width: 620px;
        margin: 0 auto 25px auto;
    }
    
    .report-form-title {
        font-size: 1.8rem;
        font-weight: 700;
        color: var(--accent);
        margin-bottom: 10px;
    }
    
    .report-form-desc {
        font-size: 0.95rem;
        color: var(--text-dark);
        line-height: 1.6;
    }
    
    .report-form-card {
        background-color: var(--white);
        padding: clamp(24px, 4vw, 40px);
        border-radius: 15px;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
        border: 1px solid rgba(0,0,0,0.04);
        position: relative;
        z-index: 2;
        max-width: 620px;
        margin: 0 auto 30px auto;
    }
    
    .local-report-form {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    
    .form-group {
        display: flex;
        flex-direction: column;
        gap: 6px;
        text-align: left;
    }
    
    .form-group label {
        font-size: 0.95rem;
        font-weight: 700;
        color: var(--accent);
    }
    
    .form-group input,
    .form-group textarea {
        width: 100%;
        padding: 12px 16px;
        border: 1px solid rgba(0, 0, 0, 0.15);
        border-radius: 6px;
        font-size: 0.95rem;
        color: var(--text-dark);
        background-color: var(--white);
        transition: var(--transition);
    }
    
    .form-group input:focus,
    .form-group textarea:focus {
        border-color: var(--accent);
        outline: none;
        box-shadow: 0 0 0 3px rgba(231, 27, 36, 0.1);
    }
    
    .form-group input::placeholder,
    .form-group textarea::placeholder {
        color: #999999;
        opacity: 0.8;
    }
    
    .btn-submit-report {
        background-color: var(--accent);
        color: var(--white);
        border: none;
        border-radius: 6px;
        padding: 12px 24px;
        font-size: 0.95rem;
        font-weight: 700;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        transition: var(--transition);
        align-self: flex-start;
    }
    
    .btn-submit-report:hover {
        background-color: #c5121a;
        transform: translateY(-2px);
    }
    
    .btn-submit-report .arrow {
        transition: transform 0.2s ease;
    }
    
    .btn-submit-report:hover .arrow {
        transform: translateX(4px);
    }
    
    .report-image-wrap {
        position: relative;
        z-index: 1;
        margin: -120px auto 30px auto;
        max-width: 850px;
        border-radius: 15px;
        overflow: hidden;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
        margin-bottom: 30px;
    }
    
    .report-van-img {
        width: 100%;
        height: auto;
        display: block;
        transition: transform 0.5s ease;
    }
    
    .report-image-wrap:hover .report-van-img {
        transform: scale(1.03);
    }
    
    @media (max-width: 768px) {
        .report-image-wrap {
            margin-top: 0;
            max-width: 100%;
        }
    }
    
    /* Jobs and Schaden melden forms layout */
    .jobs-grid, .report-grid {
        display: grid;
        grid-template-columns: 1.2fr 1.8fr;
        gap: 40px;
        align-items: start;
    }
    
    .job-info, .report-info {
        background-color: var(--white);
        padding: clamp(24px, 4vw, 40px);
        border-radius: var(--radius);
        box-shadow: var(--shadow-sm);
        border: 1px solid rgba(0,0,0,0.04);
    }
    
    .job-heading, .report-heading {
        font-size: clamp(1.8rem, 3vw, 2.5rem);
        margin-bottom: 20px;
        color: var(--accent);
        line-height: 1.15;
    }
    
    .job-desc, .report-desc {
        margin-bottom: 24px;
    }
    
    .job-contact-cta, .report-emergency {
        border-top: 1px solid rgba(0,0,0,0.08);
        padding-top: 20px;
        font-size: 0.95rem;
    }
    
    .job-contact-cta a, .report-emergency a {
        color: var(--accent);
        text-decoration: none;
        font-weight: 600;
    }
    
    .emergency-phone {
        display: inline-block;
        font-size: 1.8rem;
        margin-top: 6px;
        font-family: var(--font-display);
        font-weight: 800;
        letter-spacing: -0.5px;
    }
    
    .job-form-wrapper, .report-form-wrapper {
        background: var(--white);
        border-radius: var(--radius);
        padding: 12px;
        box-shadow: var(--shadow-md);
        border: 1px solid rgba(0, 0, 0, 0.05);
    }
    
    .tally-form-box iframe {
        display: block;
        width: 100%;
    }
    
    @media (max-width: 992px) {
        .jobs-grid, .report-grid {
            grid-template-columns: 1fr;
        }
    }
    
    /* Stellenangebote Centered Layout */
    .jobs-content-centered {
        max-width: 700px;
        margin-inline: auto;
        text-align: left;
    }
    
    .jobs-headline-block {
        text-align: center;
        margin-bottom: 40px;
    }
    
    .jobs-red-headline {
        color: var(--accent);
        font-size: clamp(1.6rem, 3vw, 2.2rem);
        font-weight: 700;
        font-family: var(--font-display);
        margin-bottom: 16px;
    }
    
    .jobs-intro-desc {
        color: var(--text);
        font-size: 1rem;
        line-height: 1.7;
        max-width: 580px;
        margin-inline: auto;
    }
    
    .jobs-form-card {
        background: var(--white);
        border-radius: var(--radius);
        padding: clamp(28px, 4vw, 48px);
        box-shadow: var(--shadow-md);
        border: 1px solid rgba(0,0,0,0.05);
    }
    
    .jobs-team-image {
        margin-top: 30px;
        border-radius: var(--radius);
        overflow: hidden;
        box-shadow: var(--shadow-md);
    }
    
    .jobs-team-image img {
        width: 100%;
        height: auto;
        display: block;
        border-radius: var(--radius);
    }
    
    /* Legal / Impressum & Datenschutz layout */
    .legal-title {
        font-size: clamp(2rem, 4vw, 3rem);
        margin-bottom: 40px;
        color: var(--accent);
        text-align: center;
    }
    
    .legal-content {
        background-color: var(--white);
        padding: clamp(24px, 4vw, 48px);
        border-radius: var(--radius);
        box-shadow: var(--shadow-sm);
        border: 1px solid rgba(0,0,0,0.04);
    }
    
    .legal-content h2 {
        font-size: 1.35rem;
        margin-block: 28px 12px;
        color: var(--text-dark);
    }
    
    .legal-content h3 {
        font-size: 1.1rem;
        margin-block: 20px 8px;
        color: var(--text-dark);
    }
    
    .legal-content p, .legal-content ul {
        font-size: 0.95rem;
        color: var(--text-muted);
        margin-bottom: 16px;
    }
    
    .legal-content ul {
        padding-left: 20px;
    }
    
    .legal-content li {
        margin-bottom: 8px;
    }
    
    .legal-content a {
        color: var(--accent);
        text-decoration: none;
    }
    
    .legal-content a:hover {
        text-decoration: underline;
    }
    
    /* =========================================================================
       FOOTER & SOCIALS
       ========================================================================= */
       
    .site-footer {
        position: relative;
        background-image: linear-gradient(rgba(30, 32, 37, 0.82), rgba(30, 32, 37, 0.82)), url('../assets/asset_3f26739d.jpg');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-attachment: fixed;
        color: var(--white);
        padding-top: 60px;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    
    @media (max-width: 768px) {
        .site-footer {
            background-attachment: scroll !important;
        }
    }
    
    .footer-container {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 30px;
        padding-bottom: 50px;
        text-align: center;
        align-items: start;
    }
    
    .footer-col {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 16px;
    }
    
    /* Title Pills */
    .footer-title-box {
        background: var(--white);
        padding: 6px 15px;
        border-radius: 4px;
        width: 180px;
        text-align: center;
        margin-bottom: 15px;
        border: 1px solid rgba(0,0,0,0.05);
        display: inline-block;
    }
    
    .footer-title-box h4 {
        color: var(--accent) !important;
        font-size: 0.85rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        margin: 0;
        font-family: var(--font-display);
    }
    
    /* Content Text styling */
    .footer-hours-content,
    .footer-contact-content {
        display: flex;
        flex-direction: column;
        gap: 8px;
        font-size: 0.95rem;
        line-height: 1.5;
        color: rgba(255, 255, 255, 0.85);
    }
    
    .footer-hours-content p,
    .footer-contact-content p {
        margin: 0;
        color: rgba(255, 255, 255, 0.85);
    }
    
    .hours-space {
        margin-top: 15px !important;
        font-weight: 500;
    }
    
    .footer-link {
        color: rgba(255, 255, 255, 0.85);
        text-decoration: none;
        transition: var(--transition);
        font-size: 0.95rem;
    }
    
    .footer-link:hover {
        color: var(--accent);
    }
    
    /* Info Links list */
    .footer-info-links {
        list-style: none;
        display: flex;
        flex-direction: column;
        gap: 12px;
        padding: 0;
        margin: 0;
    }
    
    .footer-info-links a {
        color: rgba(255, 255, 255, 0.85);
        text-decoration: none;
        transition: var(--transition);
        font-size: 0.95rem;
        font-weight: 500;
    }
    
    .footer-info-links a:hover {
        color: var(--accent);
    }
    
    /* Instagram Icon in contact */
    .footer-social-links {
        display: flex;
        justify-content: center;
        margin-top: 8px;
    }
    
    .social-links a {
        display: grid;
        place-items: center;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        background-color: rgba(255, 255, 255, 0.08);
        color: var(--white);
        transition: var(--transition);
        border: 1px solid rgba(255, 255, 255, 0.1);
    }
    
    .social-links a:hover {
        background-color: var(--accent);
        border-color: var(--accent);
        transform: translateY(-2px);
    }
    
    .footer-social-links a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: var(--white);
        transition: var(--transition);
        opacity: 0.85;
    }
    
    .footer-social-links a:hover {
        opacity: 1;
        color: var(--accent);
        transform: translateY(-2px);
    }
    
    /* Rating Column */
    .footer-logo-wrap {
        margin-bottom: 8px;
    }
    
    .footer-brand-logo {
        height: 52px;
        width: auto;
        display: block;
    }
    
    .footer-google-box {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        border-radius: 14px;
        overflow: hidden;
        box-shadow: 0 6px 20px rgba(0,0,0,0.15);
        width: 190px;
    }
    
    .google-logo-bg {
        width: 100%;
        height: 58px;
        background-color: var(--white);
        border-radius: 0;
        display: grid;
        place-items: center;
        box-shadow: none;
        border: none;
    }
    
    .footer-google-logo {
        height: 30px;
        width: auto;
        display: block;
    }
    
    .btn-google-rating {
        background-color: rgb(231, 65, 51);
        color: var(--white);
        border: none;
        border-radius: 0;
        height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.9rem;
        font-weight: 700;
        font-family: var(--font-display);
        text-decoration: none;
        box-shadow: none;
        transition: var(--transition);
        width: 100%;
        text-align: center;
        padding: 0;
        letter-spacing: 0.3px;
    }
    
    .btn-google-rating:hover {
        background-color: rgb(200, 50, 40);
        color: var(--white) !important;
    }
    
    /* Footer Copyright */
    .footer-bottom {
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        padding-block: 24px;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        font-size: 0.85rem;
    }
    
    .footer-copyright {
        margin: 0;
        color: rgba(255, 255, 255, 0.5);
    }
    
    .footer-copyright a {
        color: rgba(255, 255, 255, 0.7);
        text-decoration: none;
        transition: var(--transition);
        font-weight: 500;
        font-style: italic;
    }
    
    .footer-copyright a:hover {
        color: var(--accent);
    }
    
    @media (max-width: 991px) {
        .footer-container {
            grid-template-columns: 1fr 1fr;
            gap: 40px;
        }
    }
    
    @media (max-width: 576px) {
        .footer-container {
            grid-template-columns: 1fr;
            gap: 32px;
        }
        .footer-bottom {
            justify-content: center;
            text-align: center;
        }
    }
    
    .designer-credit a:hover {
        color: var(--accent);
    }
    
    @media (max-width: 768px) {
        .footer-container {
            grid-template-columns: 1fr;
            gap: 30px;
        }
        .footer-bottom {
            flex-direction: column;
            text-align: center;
        }
    }
    
    /* Home page CTA gallery styling replaced with premium 3-column cta grid */
    .work-cta-grid {
        display: grid;
        grid-template-columns: 1fr 1.05fr 1fr;
        gap: 30px;
        align-items: stretch;
        max-width: 1100px;
        margin: 0 auto;
    }
    
    .work-cta-img-col {
        height: 472px;
    }
    
    .work-cta-img-col img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        box-shadow: 0 10px 26px rgba(0,0,0,.05);
        border: 1px solid rgba(0,0,0,0.06);
    }
    
    .kneeling-col img {
        border-radius: 20px;
    }
    
    .standing-col img {
        border-radius: 21px;
    }
    
    .work-cta-card-col {
        height: 472px;
    }
    
    .work-cta-card {
        background: var(--white);
        border-radius: 20px;
        box-shadow: 0 10px 26px rgba(0,0,0,.05);
        border: 1px solid rgba(0,0,0,0.06);
        padding: 40px 24px 30px 24px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-between;
        height: 100%;
        text-align: center;
    }
    
    .card-headline {
        font-size: 1.55rem;
        font-weight: 700;
        color: var(--text-dark);
        line-height: 1.25;
        margin-bottom: 12px;
    }
    
    .card-subheadline {
        font-size: 1.12rem;
        color: var(--text-muted);
        line-height: 1.4;
        margin: 0;
    }
    
    .card-subheadline strong {
        color: var(--accent);
    }
    
    .card-slogan-img {
        width: 100%;
        max-width: 260px;
        height: auto;
        display: block;
        margin: 0 auto;
    }
    
    @media (max-width: 991px) {
        .work-cta-grid {
            grid-template-columns: 1fr 1fr;
            gap: 20px;
        }
        
        .work-cta-img-col {
            height: clamp(180px, 28vw, 240px);
        }
        
        .work-cta-card-col {
            grid-column: 1 / -1;
            height: auto;
            order: 3;
        }
        
        .work-cta-card {
            padding: 30px 20px;
            gap: 24px;
        }
        
        .card-headline {
            font-size: 1.35rem;
        }
        
        .card-subheadline {
            font-size: 1.05rem;
        }
    }
    
    @media (max-width: 576px) {
        .work-cta-grid {
            grid-template-columns: 1fr;
            gap: 16px;
        }
        .work-cta-img-col {
            height: 200px;
        }
    }
    