/* Taschendaten Frontpage Bundle v1.6.0 */

/* Taschendaten Starter – HOME (front page) CSS
   Enthält nur noch Styles, die exklusiv auf der Startseite genutzt werden
   und nicht in eigene Module ausgelagert wurden.
-------------------------------------------------------------- */

/* ------------------------------------------------------------
   BLOG GRID SECTION (Startseite)
   Markup siehe: front-page.php
------------------------------------------------------------ */

/* Container für die gesamte Sektion */
.td-blog-home {
    background-color: var(--td-home-blog-bg, #ffffff);
    color: var(--td-home-blog-text, #1e293b);
    padding: 6rem 0;
}

/* Die kleine Hero-Box über den Posts */
.td-blog-home-hero {
    background: linear-gradient(135deg, var(--td-home-blog-hero-bg-1, #ffffff) 0%, var(--td-home-blog-hero-bg-2, #f8fafc) 100%);
    border-radius: var(--td-home-blog-hero-radius, 22px);
    padding: 3rem 2rem;
    margin-bottom: 3rem;
    
    /* Optional: Ein minimaler Border für bessere Abgrenzung auf weißem Grund */
    border: 1px solid rgba(0,0,0,0.03);
}

.td-blog-home-hero .td-h2 {
    color: var(--td-home-blog-hero-text, #1e293b);
    margin-bottom: 1rem;
}

.td-blog-home-hero .td-lead {
    color: var(--td-home-blog-hero-muted, #64748b);
    font-size: 1.15rem;
    line-height: 1.6;
}

/* ------------------------------------------------------------
   Responsive Spalten-Logik (Customizer)
------------------------------------------------------------ */
@media (min-width: 992px) {
    /* Diese Logik überschreibt Bootstrap col-lg-4, falls im Customizer
       eine andere Spaltenanzahl (var --td-home-blog-cols) eingestellt ist.
       Featured Post (col-12) wird ignoriert.
    */
    .td-blog-home .row.g-4 > div:not(.col-12) {
        width: calc(100% / var(--td-home-blog-cols, 3));
        flex: 0 0 auto;
    }
}
/* ------------------------------------------------------------
   Home Hero (Full Width - Safe Breakout)
   Features: Gradient, Trust Cards, Logos, Screenshots, 
             Social Proof, Scroll Indicator, Button Icons
------------------------------------------------------------ */

:root {
    --td-hero-grad-1: #ffffff;
    --td-hero-grad-2: #eff6ff;
    --td-hero-text: #0f172a;
    --td-hero-text-muted: #475569;

    /* FIX: dvh (Dynamic Viewport Height) statt vh – verhindert iOS Safari URL-Bar-Overflow.
       Bei iOS Safari ist 100vh größer als der sichtbare Bereich wenn die URL-Bar sichtbar ist.
       dvh passt sich dynamisch an die tatsächliche Viewport-Höhe an. */
    --td-hero-min-h-desktop: 85dvh;
    --td-hero-min-h-mobile: 100svh;
    --td-hero-pad-y-desktop: 0rem;
    --td-hero-pad-y-mobile: 1.25rem;

    --td-hero-shots-op: 0.75;
}

/* Breakout Logic */
.td-hero {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;

    min-height: var(--td-hero-min-h-desktop);

    display: flex;
    align-items: center;

    background-color: var(--td-hero-grad-1); 
    overflow: hidden;
    isolation: isolate;
}

/* Gradient */
.td-hero--gradient {
    background: radial-gradient(
        circle at top left, 
        var(--td-hero-grad-1) 0%, 
        var(--td-hero-grad-2) 100%
    );
    position: relative;
}

.td-hero--gradient::before {
    content: "";
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(rgba(15, 23, 42, 0.04) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
    pointer-events: none;
    z-index: 0;
}

.td-hero--gradient::after {
    content: "";
    position: absolute;
    top: -20%;
    right: -10%;
    width: 60%;
    height: 80%;
    background: var(--td-hero-grad-1);
    filter: blur(100px);
    opacity: 0.6;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

/* Content Container */
.td-hero__container {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    position: relative;
    z-index: 5;
    
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

/* Background Media */
.td-hero__bg-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
}

.td-hero__overlay {
    position: absolute;
    inset: 0;
    background: #ffffff;
    z-index: -1;
    pointer-events: none;
}

/* Badge */
.td-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 1.2rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 4px 6px rgba(0,0,0,0.03);
    margin-bottom: 1.8rem;
    backdrop-filter: blur(8px);
    transition: transform 0.3s ease;
}

.td-hero__badge:hover { transform: scale(1.05); }

.td-hero__badge-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--bs-primary);
    box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.25);
}

.td-hero__badge-text {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--td-hero-text);
}

/* Title */
.td-hero__title {
    font-size: clamp(2.1rem, 6.2vw, 4.5rem);
    font-weight: 800;
    line-height: 1.08;
    margin-bottom: 1.25rem;
    color: var(--td-hero-text);
    letter-spacing: -0.03em;
}

.td-hero__title span {
    background: linear-gradient(
      120deg,
      transparent 0%,
      transparent 60%,
      rgba(13, 110, 253, 0.2) 60%,
      rgba(13, 110, 253, 0.2) 90%,
      transparent 90%
    );
    padding: 0 0.1em;
}

/* Lead */
.td-hero__lead {
    font-size: 1.15rem;
    line-height: 1.6;
    color: var(--td-hero-text-muted);
    margin-bottom: 2rem;
    max-width: 60ch;
}

/* Buttons (mit Icon-Support) */
.td-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
}

.td-hero .btn-lg {
    padding: 0.85rem 1.8rem;
    font-weight: 600;
    font-size: 1.02rem;
    display: inline-flex;
    align-items: center;
    gap: 0;
}

.td-hero .btn-lg i {
    font-size: 0.95em;
    line-height: 1;
}

/* ------------------------------------------------------------
   Social Proof / Kennzahlen-Leiste
   Unter den Buttons, dezent, professionell
------------------------------------------------------------ */
.td-hero__proof {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin-top: 2.2rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.td-hero__proof-item {
    display: flex;
    flex-direction: column;
    padding: 0 1.4rem;
}

.td-hero__proof-item:first-child {
    padding-left: 0;
}

.td-hero__proof-sep {
    width: 1px;
    height: 36px;
    background: rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
}

.td-hero__proof-number {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--td-hero-text);
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.td-hero__proof-label {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--td-hero-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 0.15rem;
}

/* Mobile: 2x2 Grid statt horizontal */
@media (max-width: 575.98px) {
    .td-hero__proof {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }
    .td-hero__proof-sep {
        display: none;
    }
    .td-hero__proof-item {
        padding: 0;
    }
}

/* ------------------------------------------------------------
   Trust Grid (Icons - 3 Karten)
------------------------------------------------------------ */
.td-hero__trust-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: relative;
    z-index: 6;
}

@media (min-width: 992px) {
    .td-hero__trust-grid {
        margin-left: auto;
        width: 85%;
    }
}

.td-trust-item {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    padding: 1.2rem;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 1rem;
    box-shadow:
        0 4px 6px -1px rgba(0, 0, 0, 0.04),
        0 1px 3px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.td-trust-item:hover {
    transform: translateX(-5px);
    background: rgba(255, 255, 255, 1);
    box-shadow:
        0 10px 25px -5px rgba(0, 0, 0, 0.08),
        0 4px 10px rgba(0, 0, 0, 0.04);
}

.td-trust-item__icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    background: #ffffff;
    display: grid;
    place-items: center;
    color: var(--bs-primary);
    font-size: 1.25rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    flex-shrink: 0;
}

.td-trust-item__title {
    font-weight: 700;
    font-size: 1rem;
    color: var(--td-hero-text);
    margin-bottom: 0.1rem;
}

.td-trust-item__sub {
    font-size: 0.85rem;
    color: var(--td-hero-text-muted);
}

/* ------------------------------------------------------------
   Logo Footer (Unten)
------------------------------------------------------------ */
.td-hero__footer {
    width: 100%;
    margin-top: 4rem;
}

.td-hero__footer-divider {
    height: 1px;
    width: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,0,0,0.1), transparent);
    margin-bottom: 2rem;
}

.td-hero__logo-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.td-hero__logo-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: center;
    align-items: center;
}

.td-hero__trust-label {
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 1px;
    color: var(--td-hero-text-muted);
    font-weight: 600;
    opacity: 0.8;
}

.td-hero__trust-img {
    max-height: 35px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.6;
    transition: all 0.3s ease;
}

.td-hero__logo-link:hover .td-hero__trust-img,
.td-hero__trust-img:hover {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.05);
}

/* ------------------------------------------------------------
   Scroll-Indikator (Animated Mouse, unten mittig)
------------------------------------------------------------ */
.td-hero__scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    pointer-events: none;
    animation: tdScrollFadeIn 1s ease 3s both;
}

.td-hero__scroll-mouse {
    width: 26px;
    height: 42px;
    border: 2px solid var(--td-hero-text-muted);
    border-radius: 14px;
    position: relative;
    opacity: 0.5;
}

.td-hero__scroll-wheel {
    width: 4px;
    height: 8px;
    background: var(--td-hero-text-muted);
    border-radius: 2px;
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    animation: tdScrollWheel 1.8s ease-in-out infinite;
}

.td-hero__scroll-text {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--td-hero-text-muted);
    opacity: 0.5;
    font-weight: 600;
}

@keyframes tdScrollWheel {
    0%   { opacity: 1; transform: translateX(-50%) translateY(0); }
    100% { opacity: 0; transform: translateX(-50%) translateY(14px); }
}

@keyframes tdScrollFadeIn {
    from { opacity: 0; transform: translateX(-50%) translateY(10px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* Mobile: kleiner, weniger Abstand */
@media (max-width: 991.98px) {
    .td-hero__scroll-indicator {
        bottom: 1rem;
    }
    .td-hero__scroll-mouse {
        width: 22px;
        height: 36px;
    }
}

/* ------------------------------------------------------------
   Screenshot Stack (Desktop Only, Dekorativ)
------------------------------------------------------------ */

.td-hero__shots {
    display: none;
}

@media (min-width: 992px) {
    .td-hero__shots {
        display: block;
        position: absolute;
        top: 50%;
        right: 15%;
        transform: translateY(calc(-48% - 50px));
        width: 46%;
        max-width: 600px;
        height: 78%;
        pointer-events: none;
        z-index: 2;
        perspective: 800px;
        perspective-origin: 0% 50%;
        background: none;
        border: none;
        outline: none;
        box-shadow: none;
    }

    .td-hero__shot {
        position: absolute;
        margin: 0;
        padding: 0;
        background: transparent;
        border: none;
        outline: none;
        box-shadow: none;
        border-radius: 0;
        overflow: visible;
        will-change: transform;
        transform-style: preserve-3d;
        transition: transform 0.5s ease, opacity 0.5s ease;
    }

    .td-hero__shot img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top left;
        border-radius: 12px;
        box-shadow: 0 20px 50px -15px rgba(0, 0, 0, 0.2);
    }

    .td-hero__shot--1 {
        width: 68%;
        height: 58%;
        top: 2%;
        left: -12%;
        z-index: 1;
        transform: rotateY(-42deg) rotateX(6deg) rotate(-3deg) translateZ(-120px) scale(0.85);
        opacity: calc(var(--td-hero-shots-op) * 0.47);
    }

    .td-hero__shot--2 {
        width: 72%;
        height: 64%;
        top: 12%;
        left: -2%;
        z-index: 2;
        transform: rotateY(-32deg) rotateX(4deg) rotate(-2deg) translateZ(-55px) scale(0.92);
        opacity: calc(var(--td-hero-shots-op) * 0.73);
    }

    .td-hero__shot--3 {
        width: 76%;
        height: 70%;
        top: 20%;
        left: 8%;
        z-index: 3;
        transform: rotateY(-22deg) rotateX(3deg) rotate(-1.5deg) translateZ(0px);
        opacity: var(--td-hero-shots-op);
    }

    .td-hero__shot--3 img {
        box-shadow: 0 30px 60px -18px rgba(0, 0, 0, 0.25);
    }

    .td-hero__shots > .td-hero__shot:only-child {
        width: 80%;
        height: 74%;
        top: 10%;
        left: -6%;
        z-index: 3;
        transform: rotateY(-30deg) rotateX(5deg) rotate(-2.5deg);
        opacity: var(--td-hero-shots-op);
    }

    .td-hero__shots > .td-hero__shot:first-child:nth-last-child(2) {
        width: 70%;
        height: 60%;
        top: 4%;
        left: -14%;
        z-index: 1;
        transform: rotateY(-38deg) rotateX(6deg) rotate(-3deg) translateZ(-80px) scale(0.87);
        opacity: calc(var(--td-hero-shots-op) * 0.53);
    }

    .td-hero__shots > .td-hero__shot:last-child:nth-child(2) {
        width: 76%;
        height: 70%;
        top: 18%;
        left: 4%;
        z-index: 2;
        transform: rotateY(-24deg) rotateX(3deg) rotate(-1.5deg);
        opacity: var(--td-hero-shots-op);
    }
}

@media (min-width: 1400px) {
    .td-hero__shots {
        right: 12%;
        width: 48%;
        max-width: 680px;
    }
}

@media (min-width: 1800px) {
    .td-hero__shots {
        right: 16%;
        width: 44%;
        max-width: 720px;
    }
}

/* ------------------------------------------------------------
   Typed.js Cursor
------------------------------------------------------------ */
.typed-cursor {
    color: var(--bs-primary);
    font-weight: 300;
    opacity: 1;
    animation: typedjsBlink 0.7s infinite;
}

@keyframes typedjsBlink {
    50% { opacity: 0.0; }
}

/* ------------------------------------------------------------
   Mobile Fixes (Perfektioniert 2025)
------------------------------------------------------------ */

/* Dynamic Viewport Height: Beruecksichtigt mobile Browser-Adressleiste */
@supports (min-height: 100dvh) {
    :root {
        --td-hero-min-h-mobile: 100svh;
    }
}

@media (max-width: 991.98px) {
    .td-hero {
        min-height: calc(var(--td-hero-min-h-mobile) - var(--td-navbar-h, 0px));
        height: auto;
        align-items: flex-start;
        padding-top: calc(var(--td-navbar-h, 0px) + var(--td-hero-pad-y-mobile) + env(safe-area-inset-top, 0px));
        padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    }

    .td-hero__container {
        padding-left: max(1rem, env(safe-area-inset-left, 1rem));
        padding-right: max(1rem, env(safe-area-inset-right, 1rem));
    }

    .td-hero__lead {
        font-size: 1.05rem;
        margin-bottom: 1.4rem;
    }

    .td-hero .btn-lg {
        width: 100%;
        justify-content: center;
        padding: 0.85rem 1.2rem;
    }

    .td-hero__footer {
        margin-top: 3rem;
    }
    
    .td-hero__logo-wrapper {
        flex-direction: column;
        gap: 1rem;
    }
}

/* --- TABLET (768-991px): Hybrides Layout --- */
@media (min-width: 768px) and (max-width: 991.98px) {
    .td-hero {
        min-height: 80vh;
        min-height: 80dvh;
    }

    .td-hero__container {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .td-hero__lead {
        font-size: 1.1rem;
        max-width: 55ch;
    }

    /* Buttons nebeneinander statt gestapelt */
    .td-hero .btn-lg {
        width: auto;
        flex: 1 1 auto;
        min-width: 220px;
    }

    .td-hero__actions {
        flex-direction: row;
        flex-wrap: wrap;
    }

    /* Trust Grid: 3er Reihe auf Tablet */
    .td-hero__trust-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0.75rem;
    }

    .td-trust-item {
        flex-direction: column;
        text-align: center;
        gap: 0.75rem;
        padding: 1rem 0.75rem;
    }

    /* Logo Footer horizontal */
    .td-hero__logo-wrapper {
        flex-direction: row;
        gap: 1.5rem;
    }

    /* Trust Images etwas groesser */
    .td-hero__trust-img {
        max-height: 30px;
    }
}

/* --- Grosse Smartphones Landscape (576-767px) --- */
@media (min-width: 576px) and (max-width: 767.98px) {
    .td-hero__actions {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .td-hero .btn-lg {
        width: auto;
        flex: 1 1 auto;
        min-width: 200px;
    }
}

/* --- Kleine Smartphones (< 576px) --- */
@media (max-width: 575.98px) {
    .td-hero__title {
        font-size: clamp(1.75rem, 7vw, 2.5rem);
    }

    .td-hero__lead {
        font-size: 0.95rem;
    }

    .td-hero__badge {
        padding: 0.5rem 1rem;
        margin-bottom: 1.2rem;
    }

    .td-hero__badge-text {
        font-size: 0.82rem;
    }

    .td-hero__footer {
        margin-top: 2rem;
    }

    .td-hero__logo-grid {
        gap: 1.25rem;
    }

    .td-hero__trust-img {
        max-height: 28px;
        max-width: 100px;
    }
}

/* --- Landscape Mode: Kuerzer, kompakter --- */
@media (max-width: 991.98px) and (orientation: landscape) {
    .td-hero {
        min-height: auto;
        padding-top: calc(var(--td-navbar-h, 0px) + 2rem);
        padding-bottom: 2rem;
    }

    .td-hero__scroll-indicator { display: none; }
    
    .td-hero__logo-wrapper {
        flex-direction: row;
    }
}

/* Tablet-Trust in Portrait: 2er Grid */
@media (min-width: 576px) and (max-width: 991.98px) {
    .td-hero__trust-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.9rem;
    }
    .td-trust-item {
        height: 100%;
    }
}
/* =============================================================
   PERFORMANCE FIX: Mobile GPU-Killer deaktivieren (max-width: 991.98px)
   filter:blur(100px) friert Mittelklasse-Androiden 1-3s ein.
   Dot-Pattern und infinite animation belasten Compositing-Thread.
   ============================================================= */
@media (max-width: 991.98px) {

    /* Tater 1: blur(100px) erzwingt eigenen Compositing-Layer + GPU-Repaint */
    .td-hero--gradient::after {
        display: none;
    }

    /* Tater 2: Dot-Pattern mit mask-image -> viele gerenderte Punkte */
    .td-hero--gradient::before {
        display: none;
    }

    /* Tater 3: Animations-Kaskade stauchen (statt 1s-4s Blocks) */
    .animate__delay-1s { animation-delay: 0.05s !important; }
    .animate__delay-2s { animation-delay: 0.1s  !important; }
    .animate__delay-3s { animation-delay: 0.15s !important; }
    .animate__delay-4s { animation-delay: 0.2s  !important; }

    /* Tater 4: Infinite Scroll-Wheel-Animation deaktivieren */
    .td-hero__scroll-indicator,
    .td-hero__scroll-wheel {
        display: none !important;
    }
}
/**
 * Leistungen / Services Section Styling (Layout & Color Update)
 */

.td-services {
    /* --- DEFAULTS (werden durch PHP überschrieben) --- */
    --td-svc-bg: #ffffff;
    --td-svc-overlay-color: #0f172a;
    --td-svc-overlay-op: 0;
    --td-svc-blur: 0px;
    
    --td-svc-card-bg: #ffffff;
    --td-svc-title-color: #1e293b;
    --td-svc-icon-color: #2563eb; 
    --td-svc-icon-bg: #eff6ff;
    
    /* FIX: Neue separate Farben */
    --td-svc-lead-color: #64748b;        /* Text oben */
    --td-svc-card-text-color: #64748b;   /* Text in Karte */
    --td-svc-btn-color: #2563eb;         /* Button Farbe */
    --td-svc-eyebrow-color: #2563eb;     /* Eyebrow Farbe */

    /* --- TYPOGRAFIE --- */
    --td-svc-eyebrow-size: 0.85rem;
    --td-svc-head-size: 2.5rem;
    --td-svc-card-title-size: 1.35rem;
    --td-svc-card-text-size: 1rem;

    /* --- ABSTÄNDE & RADIUS --- */
    --td-svc-gap: 2rem;
    --td-svc-card-radius: 1rem;
    --td-svc-card-padding: 2.5rem;

    padding: 6rem 0;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

/* Background Logic */
.td-services::before {
    content: ''; position: absolute; inset: 0; z-index: -2;
    background: var(--td-svc-bg); background-size: cover; background-position: center;
    filter: blur(var(--td-svc-blur)); transform: scale(1.05);
}
.td-services::after {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background-color: var(--td-svc-overlay-color); opacity: var(--td-svc-overlay-op);
    transition: opacity 0.3s ease, background-color 0.3s ease;
}

/* --- HEADER --- */
.td-services__head { max-width: 800px; margin-bottom: 4rem; position: relative; }

.td-services.td-align-center .td-services__head { text-align: center; margin-inline: auto; }
.td-services.td-align-left .td-services__head { text-align: left; margin-inline: 0; }

.td-services .td-eyebrow {
    font-size: var(--td-svc-eyebrow-size);
    text-transform: uppercase; letter-spacing: 2px; font-weight: 700;
    color: var(--td-svc-eyebrow-color); 
    margin-bottom: 0.5rem; display: block;
}
.td-services .td-h2 {
    font-size: var(--td-svc-head-size);
    font-weight: 800; margin-bottom: 1rem; color: var(--td-svc-title-color);
}
.td-services .td-lead {
    font-size: 1.25rem; 
    color: var(--td-svc-lead-color); /* FIX: Eigene Farbe */
    line-height: 1.6;
}

/* --- GRID --- */
.td-services__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--td-svc-gap);
    position: relative;
    justify-content: center;
}

/* --- KARTE --- */
.td-service-card {
    background: var(--td-svc-card-bg);
    padding: var(--td-svc-card-padding);
    border-radius: var(--td-svc-card-radius);
    
    border: 1px solid rgba(0,0,0,0.04);
    
    /* FLEX LAYOUT FÜR ALIGNMENT */
    display: flex; 
    flex-direction: column; 
    height: 100%; /* Wichtig damit Karten gleich hoch sind */
    
    text-decoration: none; color: inherit;
    width: 100%;
    max-width: 550px;
    margin-inline: auto;
    
    position: relative; 
    overflow: hidden;
    
    will-change: transform, box-shadow;
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                box-shadow 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Accent Line */
.td-service-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0;
    height: 3px; 
    background: var(--td-svc-icon-color);
    opacity: 0.8;
    transform: scaleX(0); transform-origin: left;
    transition: transform 0.4s ease;
}

/* Schatten */
.td-services.td-shadow-none .td-service-card { box-shadow: none; border: 1px solid rgba(0,0,0,0.08); }
.td-services.td-shadow-soft .td-service-card { box-shadow: 0 4px 20px rgba(0,0,0,0.03); }
.td-services.td-shadow-hard .td-service-card { box-shadow: 0 10px 30px rgba(0,0,0,0.08); }

@media (hover: hover) {
    .td-service-card:hover { transform: translateY(-6px); }
    .td-service-card:hover::before { transform: scaleX(1); }
    
    .td-services.td-shadow-none .td-service-card:hover { border-color: rgba(0,0,0,0.15); }
    .td-services.td-shadow-soft .td-service-card:hover { box-shadow: 0 20px 40px rgba(0,0,0,0.06); }
    .td-services.td-shadow-hard .td-service-card:hover { box-shadow: 0 25px 50px rgba(0,0,0,0.12); }
}

@media (prefers-reduced-motion: reduce) {
    .td-service-card, .td-service-card::before, .td-service-card__icon {
        transition: none !important;
        transform: none !important;
    }
}

.td-service-card:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.3);
    border-color: var(--td-svc-icon-color);
}

/* --- ICON --- */
.td-service-card__icon {
    font-size: 1.75rem;
    color: var(--td-svc-icon-color);
    margin-bottom: 1.5rem;
    width: 64px; height: 64px;
    display: flex; align-items: center; justify-content: center;
    background: var(--td-svc-icon-bg);
    border-radius: calc(var(--td-svc-card-radius) * 0.8);
    transition: all 0.3s ease;
    flex-shrink: 0; /* Verhindert, dass Icon gequetscht wird */
}

@media (hover: hover) {
    .td-service-card:hover .td-service-card__icon {
        background: var(--td-svc-icon-color); color: #ffffff;
        transform: scale(1.1) rotate(-3deg);
    }
}

/* --- TYPO KARTE --- */
.td-service-card__title {
    font-size: var(--td-svc-card-title-size);
    font-weight: 700; margin-bottom: 0.75rem; 
    color: var(--td-svc-title-color);
    
    /* FIX: ALIGNMENT TRICK */
    min-height: 2.8em; 
    display: flex; align-items: flex-start;
}

.td-service-card__text {
    font-size: var(--td-svc-card-text-size);
    color: var(--td-svc-card-text-color); /* FIX: Eigene Farbe */
    line-height: 1.6; 
    margin-bottom: 1.5rem; 
    
    /* FIX: Button Push */
    flex-grow: 1; /* Füllt den Raum aus, drückt Button nach unten */
}

/* --- LISTEN SUPPORT (Neu eingefügt aus Home CSS) --- */
.td-service-card__text ul {
    margin: 0 0 1.5rem;
    padding-left: 0;
    list-style: none;
}

.td-service-card__text li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
    color: inherit; /* Nimmt Karten-Text-Farbe an */
}

.td-service-card__text li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--td-svc-icon-color); /* Passt sich automatisch der Icon-Farbe an */
    font-weight: bold;
}

/* --- BUTTON / LINK --- */
.td-service-card__link {
    font-weight: 600; font-size: 0.95rem;
    display: flex; align-items: center; gap: 0.5rem; 
    
    /* FIX: Button Alignment */
    margin-top: auto; /* Drückt den Button ganz nach unten */
    
    width: fit-content; transition: all 0.2s ease;
}
.td-service-card__link i { transition: transform 0.2s ease; }

@media (hover: hover) {
    .td-service-card:hover .td-service-card__link i { transform: translateX(5px); }
}

/* Style: Link */
.td-services.td-btn-link .td-service-card__link { 
    color: var(--td-svc-btn-color); /* FIX: Eigene Farbe */
}

/* Style: Button */
.td-services.td-btn-button .td-service-card__link {
    background-color: var(--td-svc-btn-color); /* FIX: Eigene Farbe */
    color: #ffffff;
    padding: 0.6rem 1.25rem;
    border-radius: 99px;
    font-size: 0.9rem;
}
.td-services.td-btn-button .td-service-card__link i { margin-left: auto; }

@media (hover: hover) {
    .td-services.td-btn-button .td-service-card:hover .td-service-card__link {
        background-color: var(--td-svc-title-color);
        transform: translateY(-2px);
    }
}

/* --- FOOTER --- */
.td-services__note {
    margin-top: 3rem; font-size: 0.85rem; color: var(--td-svc-lead-color);
    opacity: 0.7; text-align: center; max-width: 900px; margin-inline: auto;
}
.td-services.td-align-left .td-services__note { text-align: left; margin-inline: 0; }

@media (max-width: 768px) {
    .td-services { padding: 4rem 0; }
    .td-services__head { text-align: left !important; }
}
/**
 * CTA Section – Modern Split Card Design (v1.6.0)
 * Dark gradient with glass card, split layout (text + stats)
 */

/* ---- Section ---- */
.td-cta-section {
    --td-cta-bg: #0f172a;
    --td-cta-grad-1: #4f46e5;
    --td-cta-grad-2: #ec4899;
    --td-cta-title: #ffffff;
    --td-cta-text: #cbd5e1;
    --td-cta-eyebrow-size: 0.9rem;
    --td-cta-head-size: clamp(1.8rem, 4vw, 3rem);
    padding: 6rem 0;
    position: relative;
    overflow: hidden;
    background-color: var(--td-cta-bg);
    color: var(--td-cta-text);
    z-index: 1;
}

/* ---- Aurora Mesh BG ---- */
.td-cta-bg-mesh { position: absolute; inset: 0; z-index: -2; overflow: hidden; opacity: 0.5; }
.td-cta-blob { position: absolute; border-radius: 50%; filter: blur(100px); opacity: 0.6; animation: tdFloatBlob 16s infinite alternate ease-in-out; }
.td-cta-blob--1 { top: -30%; left: -15%; width: 55vw; height: 55vw; background: var(--td-cta-grad-1); }
.td-cta-blob--2 { bottom: -25%; right: -10%; width: 50vw; height: 50vw; background: var(--td-cta-grad-2); animation-delay: -7s; animation-direction: alternate-reverse; }
.td-cta-blob--3 { top: 40%; left: 50%; width: 30vw; height: 30vw; background: linear-gradient(135deg, var(--td-cta-grad-1), var(--td-cta-grad-2)); animation-delay: -3s; }
@keyframes tdFloatBlob { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(30px, -20px) scale(1.08); } }
.td-cta-overlay { position: absolute; inset: 0; z-index: -1; background: rgba(15, 23, 42, 0.6); }

@media (prefers-reduced-motion: reduce) {
    .td-cta-blob { animation: none; }
}

/* ---- Card Container ---- */
.td-cta__card {
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 24px;
    overflow: hidden;
}

.td-cta__card-inner {
    display: flex;
    flex-direction: column;
}

/* ---- Text Column ---- */
.td-cta__text-col {
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.td-cta-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #fbbf24;
    background: rgba(251, 191, 36, 0.12);
    border: 1px solid rgba(251, 191, 36, 0.2);
    padding: 0.35em 0.9em;
    border-radius: 999px;
}

.td-cta-eyebrow {
    font-size: var(--td-cta-eyebrow-size);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.5);
}

.td-cta-title {
    font-size: var(--td-cta-head-size);
    font-weight: 800;
    color: var(--td-cta-title);
    line-height: 1.15;
    margin: 0;
}

.td-cta-title--gradient {
    background: linear-gradient(135deg, #fff 30%, var(--td-cta-grad-1) 60%, var(--td-cta-grad-2) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.td-cta-lead {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--td-cta-text);
    margin: 0;
    max-width: 540px;
}

/* ---- Buttons ---- */
.td-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 0.5rem;
}

.td-cta__btn-primary {
    background: linear-gradient(135deg, var(--td-cta-grad-1), var(--td-cta-grad-2));
    color: #fff !important;
    border: none;
    border-radius: 12px;
    padding: 0.75rem 1.6rem;
    font-weight: 600;
    font-size: 1rem;
    transition: transform 0.2s, box-shadow 0.2s;
    text-decoration: none;
}
.td-cta__btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(79, 70, 229, 0.4);
    color: #fff !important;
    text-decoration: none;
}

.td-cta__btn-ghost {
    background: transparent;
    color: rgba(255, 255, 255, 0.8) !important;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    padding: 0.75rem 1.6rem;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.2s;
    text-decoration: none;
}
.td-cta__btn-ghost:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.4);
    color: #fff !important;
    text-decoration: none;
}

/* ---- Stats Column ---- */
.td-cta__stats-col {
    padding: 2rem;
    background: rgba(255, 255, 255, 0.03);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.td-cta__stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
}

.td-cta__stat {
    text-align: center;
    padding: 1.25rem 0.75rem;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    transition: background 0.2s;
}
.td-cta__stat:hover {
    background: rgba(255, 255, 255, 0.08);
}

.td-cta__stat-icon {
    font-size: 1.4rem;
    margin-bottom: 0.4rem;
    background: linear-gradient(135deg, var(--td-cta-grad-1), var(--td-cta-grad-2));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.td-cta__stat-value {
    font-size: 1.3rem;
    font-weight: 800;
    color: #fff;
}

.td-cta__stat-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(255, 255, 255, 0.45);
    font-weight: 600;
}

/* ---- Trust Strip ---- */
.td-cta__trust-strip {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 1.25rem;
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.5);
}
.td-cta__trust-strip i { color: #34d399; }
.td-cta__trust-sep {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    margin: 0 6px;
}

/* ---- Desktop: Split Layout ---- */
@media (min-width: 768px) {
    .td-cta-section { padding: 7rem 0; }

    .td-cta__card-inner {
        flex-direction: row;
    }

    .td-cta__text-col {
        flex: 1 1 55%;
        padding: 3.5rem 3rem;
        justify-content: center;
    }

    .td-cta__stats-col {
        flex: 0 0 40%;
        border-top: none;
        border-left: 1px solid rgba(255, 255, 255, 0.06);
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 2.5rem;
    }

    .td-cta__stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
}

@media (min-width: 992px) {
    .td-cta-section { padding: 8rem 0; }
    .td-cta__text-col { padding: 4rem 3.5rem; }
    .td-cta-title { font-size: var(--td-cta-head-size); }
}

/* ---- OLD CLASS COMPAT (Legacy Customizer float cards) ---- */
.td-cta-float,
.td-cta__trust,
.td-cta__trust-item,
.td-cta-btn-glow,
.td-btn-outline-glass { display: none; }

/**
 * Hero Carousel – Vanilla JS Slider (v1.6.0)
 * Swiper entfernt. Leichtgewichtiger Crossfade-Slider.
 */

/* ---------------------------------------------------------
   0) Section Base
--------------------------------------------------------- */
.td-hero-carousel,
.td-hero-carousel * {
    box-sizing: border-box;
}

.td-hero-carousel {
    --td-hc-bg: #f1f5f9;
    --td-hc-text: #1e293b;
    --td-hc-accent: #2563eb;
    --td-hc-card-radius: 18px;

    background-color: var(--td-hc-bg);
    color: var(--td-hc-text);
    padding: 5rem 0 6rem;
    position: relative;
    overflow: hidden;
}

/* ---------------------------------------------------------
   1) Header
--------------------------------------------------------- */
.td-hero-carousel__header {
    text-align: center;
    margin-bottom: 3rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.td-hero-carousel__eyebrow {
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--td-hc-accent);
    margin-bottom: 0.75rem;
    display: inline-block;
    background: rgba(37, 99, 235, 0.08);
    padding: 0.4em 1em;
    border-radius: 999px;
    border: 1px solid rgba(37, 99, 235, 0.12);
}

.td-hero-carousel__title {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    font-weight: 800;
    margin-bottom: 1rem;
    line-height: 1.15;
}

.td-hero-carousel__title span {
    background: linear-gradient(135deg, var(--td-hc-accent) 0%, #6366f1 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.td-hero-carousel__lead {
    font-size: 1.1rem;
    color: var(--td-hc-text);
    opacity: 0.7;
    margin: 0;
}

/* ---------------------------------------------------------
   2) Slider Container
--------------------------------------------------------- */
.td-slider {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1rem;
    cursor: grab;
    outline: none;
}
.td-slider:active { cursor: grabbing; }

/* ---------------------------------------------------------
   3) Track & Slides (Crossfade)
--------------------------------------------------------- */
.td-slider__track {
    position: relative;
    overflow: hidden;
    border-radius: var(--td-hc-card-radius);
    box-shadow:
        0 25px 50px -12px rgba(0, 0, 0, 0.12),
        0 12px 24px -8px rgba(0, 0, 0, 0.06);
}

.td-slider__slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s ease, visibility 0.6s ease, transform 0.6s ease;
    transform: scale(0.97);
}

.td-slider__slide.is-active {
    position: relative;
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    z-index: 2;
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .td-slider__slide {
        transition: none;
        transform: none;
    }
}

/* ---------------------------------------------------------
   4) Card
--------------------------------------------------------- */
.td-hc-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: #fff;
    overflow: hidden;
}

.td-hc-card__img-col {
    width: 100%;
    height: 220px;
    background-color: #f1f5f9;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

.td-hc-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}
.td-slider__slide.is-active .td-hc-card__img {
    transform: scale(1.02);
}

.td-hc-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: #f1f5f9;
    color: #94a3b8;
}

.td-hc-card__body-col {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    min-height: 0;
}

.td-hc-card__label {
    font-size: 0.7rem;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--td-hc-accent);
    letter-spacing: 1.5px;
    margin-bottom: 0.5rem;
    display: block;
}

.td-hc-card__title {
    font-size: 1.25rem;
    font-weight: 800;
    margin: 0 0 0.5rem 0;
    color: #0f172a;
    line-height: 1.2;
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.td-hc-card__text {
    font-size: 0.95rem;
    color: #64748b;
    line-height: 1.6;
    margin: 0 0 1.25rem 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.td-hc-card__btn {
    margin-top: auto;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.65rem 1.4rem;
    background: var(--td-hc-accent);
    color: #fff;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    transition: background 0.2s, transform 0.2s;
}
.td-hc-card__btn:hover {
    background: #1d4ed8;
    transform: translateX(3px);
    color: #fff;
    text-decoration: none;
}

/* ---------------------------------------------------------
   5) Navigation Arrows
--------------------------------------------------------- */
.td-slider__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--td-hc-accent);
    transition: all 0.2s;
}
.td-slider__nav:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.08);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}
.td-slider__nav--prev { left: -22px; }
.td-slider__nav--next { right: -22px; }

/* ---------------------------------------------------------
   6) Dots
--------------------------------------------------------- */
.td-slider__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 1.5rem;
}

.td-slider__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background: #cbd5e1;
    cursor: pointer;
    padding: 0;
    transition: all 0.3s ease;
}
.td-slider__dot.is-active {
    background: var(--td-hc-accent);
    width: 28px;
    border-radius: 5px;
}
.td-slider__dot:hover:not(.is-active) {
    background: #94a3b8;
}

/* ---------------------------------------------------------
   7) Desktop
--------------------------------------------------------- */
@media (min-width: 768px) {
    .td-hero-carousel {
        padding: 6rem 0 7rem;
    }

    .td-slider {
        padding: 0 3rem;
    }

    .td-hc-card {
        flex-direction: row;
        min-height: 380px;
    }

    .td-hc-card__img-col {
        width: 55%;
        height: auto;
        min-height: 380px;
    }

    .td-hc-card__body-col {
        width: 45%;
        padding: 2.5rem;
        justify-content: center;
    }

    .td-hc-card__title {
        font-size: 1.6rem;
    }

    .td-hc-card__text {
        font-size: 1rem;
        -webkit-line-clamp: 4;
    }

    .td-slider__nav--prev { left: 0; }
    .td-slider__nav--next { right: 0; }
}

@media (min-width: 992px) {
    .td-slider {
        max-width: 1000px;
    }

    .td-hc-card {
        min-height: 420px;
    }

    .td-hc-card__img-col {
        min-height: 420px;
    }

    .td-hc-card__title {
        font-size: 1.75rem;
    }

    .td-hc-card__text {
        -webkit-line-clamp: 5;
    }
}

/* ---------------------------------------------------------
   8) Mobile Touch Hint
--------------------------------------------------------- */
@media (max-width: 767.98px) {
    .td-slider__nav {
        display: none;
    }

    .td-slider__track {
        border-radius: 14px;
    }

    .td-hero-carousel {
        padding: 3.5rem 0 4rem;
    }
}

/**
 * Home Blog Hero – Light Theme Redesign (v1.6.0)
 * Heller Hintergrund fuer Kontrast nach dunkler CTA-Section.
 * Customizer CSS-Vars bleiben kompatibel.
 */

:root {
    --td-home-blog-hero-bg-1: #ffffff;
    --td-home-blog-hero-bg-2: #f8fafc;
    --td-home-blog-hero-accent: #2563eb;
    --td-home-blog-hero-text: #0f172a;
    --td-home-blog-hero-muted: rgba(15, 23, 42, 0.6);
    --td-home-blog-hero-radius: 20px;
    --td-home-blog-hero-card-radius: 16px;
    --td-home-blog-hero-blob-opacity: 0.08;
    --td-home-blog-hero-card-overlay: 0.45;

    --td-home-blog-hero-show-category: inline-flex;
    --td-home-blog-hero-show-date: inline-flex;
    --td-home-blog-hero-show-read-time: inline-flex;
    --td-home-blog-hero-show-excerpt: -webkit-box;
}

/* ---- Section ---- */
.td-home-blog-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(4rem, 7vw, 7rem) 0;
    color: var(--td-home-blog-hero-text);
    background: linear-gradient(180deg, var(--td-home-blog-hero-bg-1), var(--td-home-blog-hero-bg-2));
    isolation: isolate;
}

.td-home-blog-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(800px 500px at 15% 20%, rgba(37, 99, 235, 0.04), transparent 60%),
        radial-gradient(600px 400px at 80% 75%, rgba(99, 102, 241, 0.04), transparent 60%);
    pointer-events: none;
    z-index: 0;
}

/* Decorative blobs (subtle on light bg) */
.td-home-blog-hero__blob {
    position: absolute;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    filter: blur(100px);
    opacity: var(--td-home-blog-hero-blob-opacity);
    pointer-events: none;
    z-index: 0;
}
.td-home-blog-hero__blob--1 {
    top: -15%;
    left: -5%;
    background: var(--td-home-blog-hero-accent);
}
.td-home-blog-hero__blob--2 {
    bottom: -15%;
    right: -5%;
    background: #6366f1;
}

/* ---- Grid ---- */
.td-home-blog-hero__wrap {
    position: relative;
    z-index: 2;
}

.td-home-blog-hero__grid {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

/* ---- Content (Text) ---- */
.td-home-blog-hero__content {
    text-align: center;
    max-width: 680px;
    margin: 0 auto;
}

.td-home-blog-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--td-home-blog-hero-accent);
    margin-bottom: 1rem;
}

.td-home-blog-hero__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--td-home-blog-hero-accent);
    display: inline-block;
    animation: tdPulse 2s infinite;
}

@keyframes tdPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.8); }
}

.td-home-blog-hero__title {
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    font-weight: 800;
    color: var(--td-home-blog-hero-text);
    line-height: 1.2;
    margin: 0 0 0.75rem 0;
    letter-spacing: -0.02em;
}

.td-home-blog-hero__lead {
    font-size: 1.05rem;
    color: var(--td-home-blog-hero-muted);
    line-height: 1.7;
    margin: 0 0 1.25rem 0;
}

.td-home-blog-hero__actions .btn {
    border-radius: 12px;
    padding: 0.65rem 1.5rem;
    font-weight: 600;
}

/* ---- Cards Column ---- */
.td-home-blog-hero__cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

/* ---- Card ---- */
.td-home-blog-card {
    border-radius: var(--td-home-blog-hero-card-radius);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.td-home-blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

.td-home-blog-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: var(--td-home-blog-hero-card-radius);
    overflow: hidden;
    transition: border-color 0.2s;
}
.td-home-blog-card__link:hover {
    text-decoration: none;
    color: inherit;
    border-color: var(--td-home-blog-hero-accent);
}

/* Image */
.td-home-blog-card__media {
    position: relative;
    overflow: hidden;
    height: 200px;
    flex-shrink: 0;
}
.td-home-blog-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.td-home-blog-card:hover .td-home-blog-card__img {
    transform: scale(1.05);
}
.td-home-blog-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(0,0,0, var(--td-home-blog-hero-card-overlay)));
    pointer-events: none;
}
.td-home-blog-card__badge {
    display: var(--td-home-blog-hero-show-category);
    position: absolute;
    top: 12px;
    left: 12px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #fff;
    background: var(--td-home-blog-hero-accent);
    padding: 0.3em 0.7em;
    border-radius: 6px;
    z-index: 2;
}

/* Body */
.td-home-blog-card__body {
    padding: 1.25rem 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.td-home-blog-card__meta {
    display: flex;
    gap: 1rem;
    margin-bottom: 0.6rem;
    flex-wrap: wrap;
}
.td-home-blog-card__meta-item {
    font-size: 0.78rem;
    color: #94a3b8;
    font-weight: 500;
}
.td-home-blog-card__meta-item--date {
    display: var(--td-home-blog-hero-show-date);
    align-items: center;
}
.td-home-blog-card__meta-item--readtime {
    display: var(--td-home-blog-hero-show-read-time);
    align-items: center;
}

.td-home-blog-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.35;
    margin: 0 0 0.5rem 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.td-home-blog-card__excerpt {
    font-size: 0.9rem;
    color: #64748b;
    line-height: 1.6;
    margin: 0;
    display: var(--td-home-blog-hero-show-excerpt);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---- Desktop ---- */
@media (min-width: 768px) {
    .td-home-blog-hero__grid {
        flex-direction: row;
        align-items: center;
    }
    .td-home-blog-hero__content {
        text-align: left;
        flex: 0 0 38%;
        margin: 0;
    }
    .td-home-blog-hero__cards-col {
        flex: 1;
    }
    .td-home-blog-hero__cards {
        grid-template-columns: repeat(2, 1fr);
    }
    .td-home-blog-card__media {
        height: 170px;
    }
}

@media (min-width: 992px) {
    .td-home-blog-card__media {
        height: 200px;
    }
    .td-home-blog-card__title {
        font-size: 1.15rem;
    }
}

/* ---- Empty State ---- */
.td-home-blog-hero__empty {
    text-align: center;
    padding: 3rem;
    color: #94a3b8;
    font-size: 0.95rem;
}

/* ---- Reduced Motion ---- */
@media (prefers-reduced-motion: reduce) {
    .td-home-blog-hero__dot { animation: none; }
    .td-home-blog-card { transition: none; }
    .td-home-blog-card__img { transition: none; }
}

/* ---- Split Layout compat (Customizer option) ---- */
.td-home-blog-hero.is-layout-stacked .td-home-blog-hero__grid {
    flex-direction: column;
}
.td-home-blog-hero.is-layout-stacked .td-home-blog-hero__content {
    text-align: center;
    max-width: 680px;
    margin: 0 auto;
}

