:root{
    --ddk-red:#d10d19;
    --ddk-red-dark:#a90913;
    --ddk-black:#09090b;
    --ddk-charcoal:#151518;
    --ddk-paper:#f1eee7;
    --ddk-paper-2:#e7e2d9;
    --ddk-white:#ffffff;
    --ddk-text:#171719;
    --ddk-muted:#66666d;
    --ddk-line:rgba(9,9,11,.13);
    --ddk-line-dark:rgba(255,255,255,.14);
    --ddk-shadow:0 20px 52px rgba(9,9,11,.10);
    --ddk-shadow-soft:0 10px 30px rgba(9,9,11,.06);
    --ddk-radius-xl:26px;
    --ddk-radius-lg:18px;
    --ddk-radius-md:12px;
    --ddk-display:"Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif;
    --ddk-body:"Open Sans","Helvetica Neue",Arial,sans-serif;
}

.ddk-single-wrap,
.ddk-single-wrap *,
.ddk-single-wrap *::before,
.ddk-single-wrap *::after{box-sizing:border-box}

.ddk-single-wrap{
    width:100%;
    color:var(--ddk-text);
    background:
        radial-gradient(circle at 14% 6%,rgba(209,13,25,.055),transparent 240px),
        linear-gradient(180deg,#ebe7df 0,var(--ddk-paper) 180px,var(--ddk-paper) 100%);
    font-family:var(--ddk-body);
    line-height:1.7;
}

.ddk-detail a:focus-visible,
.ddk-grid a:focus-visible,
.ddk-detail button:focus-visible{
    outline:3px solid var(--ddk-red);
    outline-offset:3px;
}

/* =========================================================
   ÜBERSICHT
========================================================= */
.ddk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.ddk-card{
    position:relative;
    overflow:hidden;
    color:#fff;
    background:#0c0c0d;
    border:1px solid #242427;
    border-radius:18px;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}
.ddk-card.is-highlighted{border-color:var(--ddk-red);box-shadow:0 14px 34px rgba(209,13,25,.13)}
.ddk-card-image{
    display:block;
    width:100%;
    aspect-ratio:1/1;
    background-size:cover;
    background-repeat:no-repeat;
    background-color:#171719;
}
.ddk-card-body{padding:22px 22px 24px}
.ddk-type,.ddk-kicker{
    display:inline-block;
    padding:7px 11px;
    color:#fff;
    background:var(--ddk-red);
    border-radius:7px;
    font-size:11px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.ddk-card h3{
    margin:20px 0 26px;
    color:#fff;
    font-family:var(--ddk-display);
    font-size:28px;
    font-weight:900;
    line-height:1.02;
    letter-spacing:-.03em;
}
.ddk-card h3 a{color:#fff;text-decoration:none}
.ddk-card p{color:#cfcfd2;margin:0 0 16px}
.ddk-meta-row{display:flex;gap:14px;flex-wrap:wrap;color:#c9c9ce;font-size:14px;margin:0 0 16px}
.ddk-status{display:block;margin:14px 0;color:#fff;font-weight:800}
.ddk-full{color:#ff7777}
.ddk-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:13px 20px;
    color:#fff!important;
    background:var(--ddk-red)!important;
    border:1px solid var(--ddk-red)!important;
    border-radius:10px;
    text-decoration:none!important;
    text-transform:uppercase;
    font-size:.78rem;
    font-weight:800;
    line-height:1.2;
    letter-spacing:.07em;
    cursor:pointer;
    transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.ddk-btn:hover{background:var(--ddk-red-dark)!important;border-color:var(--ddk-red-dark)!important;transform:translateY(-2px);box-shadow:0 10px 24px rgba(209,13,25,.20)}
.ddk-empty{background:#111;color:#ddd;border-left:5px solid var(--ddk-red);padding:20px;border-radius:10px}

/* =========================================================
   DETAILSEITE 2.0
========================================================= */
.ddk-detail{
    width:min(1180px,calc(100% - 44px));
    margin:0 auto;
    padding:64px 0 110px;
}
.ddk-detail h1,
.ddk-detail h2,
.ddk-detail h3{
    margin-top:0;
    font-family:var(--ddk-display);
    font-weight:900;
    letter-spacing:-.04em;
}
.ddk-section-label,
.ddk-info-label,
.ddk-hero-location{
    display:block;
    margin:0 0 12px;
    color:var(--ddk-red);
    font-size:.7rem;
    font-weight:800;
    line-height:1.4;
    letter-spacing:.14em;
    text-transform:uppercase;
}

/* HERO */
.ddk-hero{
    position:relative;
    display:grid;
    grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);
    overflow:hidden;
    background:var(--ddk-white);
    border:1px solid var(--ddk-line);
    border-radius:var(--ddk-radius-xl);
    box-shadow:var(--ddk-shadow);
}
.ddk-hero::before{
    position:absolute;
    z-index:3;
    top:0;
    right:0;
    width:38%;
    height:6px;
    background:var(--ddk-red);
    content:"";
}
.ddk-hero-media{
    padding:22px;
    background:linear-gradient(145deg,var(--ddk-paper-2),#f7f4ee);
}
.ddk-hero-img{
    width:100%;
    aspect-ratio:1/1;
    background-size:cover;
    background-repeat:no-repeat;
    background-color:var(--ddk-charcoal);
    border-radius:20px;
    box-shadow:0 14px 34px rgba(9,9,11,.14);
}
.ddk-hero-copy{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    padding:clamp(44px,5.5vw,78px);
    background:
        linear-gradient(135deg,rgba(209,13,25,.035),transparent 45%),
        var(--ddk-white);
}
.ddk-hero-copy::after{
    position:absolute;
    right:-34px;
    bottom:40px;
    width:190px;
    height:5px;
    background:var(--ddk-red);
    content:"";
    transform:rotate(-9deg);
    opacity:.22;
}
.ddk-hero-copy .ddk-type{align-self:flex-start;margin-bottom:20px}
.ddk-hero-location{margin-bottom:14px;color:#8a0c13}
.ddk-hero h1{
    max-width:620px;
    margin:0;
    color:var(--ddk-black);
    font-size:clamp(2.7rem,5vw,5.3rem);
    line-height:.91;
    text-transform:uppercase;
    text-wrap:balance;
}
.ddk-hero-lead{
    max-width:590px;
    margin:26px 0 0;
    color:var(--ddk-muted);
    font-size:clamp(1rem,1.35vw,1.16rem);
    line-height:1.78;
}
.ddk-hero-cta{align-self:flex-start;margin-top:32px;position:relative;z-index:4}
.ddk-hero.no-image{grid-template-columns:1fr}
.ddk-hero.no-image .ddk-hero-copy{min-height:440px}

/* FAKTEN */
.ddk-facts{
    position:relative;
    z-index:4;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin:18px 20px 0;
}
.ddk-facts div{
    min-width:0;
    padding:22px 24px;
    background:rgba(255,255,255,.95);
    border:1px solid var(--ddk-line);
    border-radius:16px;
    box-shadow:var(--ddk-shadow-soft);
}
.ddk-facts strong{
    display:block;
    margin-bottom:7px;
    color:var(--ddk-red);
    font-size:.66rem;
    font-weight:800;
    line-height:1.3;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.ddk-facts span{
    display:block;
    color:var(--ddk-black);
    font-family:var(--ddk-display);
    font-size:clamp(1.3rem,2vw,1.75rem);
    font-weight:900;
    line-height:1.05;
}

/* CONTENT CARDS */
.ddk-section{
    position:relative;
    margin-top:30px;
    padding:clamp(32px,4.4vw,52px);
    overflow:hidden;
    background:var(--ddk-white);
    border:1px solid var(--ddk-line);
    border-radius:var(--ddk-radius-xl);
    box-shadow:var(--ddk-shadow-soft);
}
.ddk-section::before{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:5px;
    background:linear-gradient(90deg,var(--ddk-red) 0,var(--ddk-red) 84px,transparent 84px);
    content:"";
}
.ddk-section h2,
.ddk-register h2,
.ddk-location-card h2{
    margin:0 0 20px;
    color:var(--ddk-black);
    font-size:clamp(1.9rem,2.8vw,2.85rem);
    line-height:.98;
    text-transform:uppercase;
}
.ddk-section p,.ddk-info p,.ddk-location-card p{color:var(--ddk-muted);margin-bottom:0}
.ddk-about{background:linear-gradient(135deg,#fff 0,#fbfaf7 100%)}

/* TERMINE */
.ddk-dates{display:grid;gap:11px;margin-top:26px}
.ddk-dates div{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    gap:18px;
    align-items:center;
    min-height:72px;
    padding:15px 20px;
    background:var(--ddk-paper);
    border:1px solid rgba(9,9,11,.08);
    border-radius:14px;
}
.ddk-dates span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    color:#fff;
    background:var(--ddk-red);
    border-radius:11px;
    font-family:var(--ddk-display);
    font-size:1rem;
    font-weight:900;
}
.ddk-dates strong{color:var(--ddk-black);font-size:1rem}
.ddk-dates em{font-style:normal;color:var(--ddk-muted);font-weight:700;white-space:nowrap}

/* FESTER STANDORT */
.ddk-location-card{
    display:grid;
    grid-template-columns:90px minmax(0,1fr);
    gap:28px;
    align-items:center;
    margin-top:30px;
    padding:34px 38px;
    background:linear-gradient(135deg,#151518,#09090b);
    border:1px solid #232326;
    border-radius:var(--ddk-radius-xl);
    box-shadow:0 18px 44px rgba(9,9,11,.14);
}
.ddk-location-mark{
    display:flex;
    align-items:center;
    justify-content:center;
    width:74px;
    height:74px;
    color:#fff;
    background:var(--ddk-red);
    border-radius:20px;
    font-family:var(--ddk-display);
    font-size:1.7rem;
    font-weight:900;
    letter-spacing:-.04em;
}
.ddk-location-card .ddk-section-label{color:#ff6d76;margin-bottom:8px}
.ddk-location-card h2{color:#fff;margin-bottom:8px}
.ddk-location-card p{color:#d5d5d9;font-size:1rem}

/* INFO-KARTEN */
.ddk-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-top:30px;
}
.ddk-info{
    position:relative;
    min-height:190px;
    padding:30px 32px;
    overflow:hidden;
    background:rgba(255,255,255,.92);
    border:1px solid var(--ddk-line);
    border-radius:var(--ddk-radius-lg);
    box-shadow:var(--ddk-shadow-soft);
}
.ddk-info::before{
    position:absolute;
    top:0;
    left:0;
    width:6px;
    height:100%;
    background:var(--ddk-red);
    content:"";
}
.ddk-info-label{margin-bottom:10px;color:#9e0b13}
.ddk-info h3{
    margin:0 0 15px;
    color:var(--ddk-black);
    font-size:clamp(1.45rem,2vw,1.95rem);
    line-height:1.02;
    text-transform:uppercase;
}

/* ZAHLUNG */
.ddk-payment{
    color:#fff;
    background:linear-gradient(135deg,#151518,#09090b);
    border-color:#242427;
}
.ddk-payment::before{background:linear-gradient(90deg,var(--ddk-red) 0,var(--ddk-red) 120px,transparent 120px)}
.ddk-payment h2{color:#fff}
.ddk-payment p{color:#d1d1d5}
.ddk-payment strong{color:#fff}

/* ANMELDUNG */
.ddk-register{
    position:relative;
    margin-top:30px;
    padding:clamp(34px,4.8vw,56px);
    overflow:hidden;
    background:linear-gradient(135deg,#fff 0,#fbfaf7 100%);
    border:1px solid var(--ddk-line);
    border-radius:var(--ddk-radius-xl);
    box-shadow:var(--ddk-shadow);
}
.ddk-register::before{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:7px;
    background:var(--ddk-red);
    content:"";
}
.ddk-register .ddk-kicker{margin-bottom:14px}
.ddk-register h2{margin-bottom:28px}
.ddk-form{display:grid;gap:18px}
.ddk-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ddk-form label{display:flex;flex-direction:column;gap:8px;color:var(--ddk-black);font-weight:700}
.ddk-form input,.ddk-form textarea,.ddk-form select{
    width:100%;
    min-height:50px;
    padding:12px 14px;
    color:var(--ddk-text);
    background:#fff;
    border:1px solid rgba(9,9,11,.22);
    border-radius:11px;
    outline:none;
    box-shadow:0 3px 10px rgba(9,9,11,.025);
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.ddk-form textarea{min-height:138px;resize:vertical}
.ddk-form input:focus,.ddk-form textarea:focus,.ddk-form select:focus{border-color:var(--ddk-red);box-shadow:0 0 0 3px rgba(209,13,25,.10)}
.ddk-privacy{flex-direction:row!important;align-items:flex-start;gap:11px!important;padding:14px 16px;background:var(--ddk-paper);border:1px solid rgba(9,9,11,.08);border-radius:11px;font-size:.9rem;line-height:1.55}
.ddk-privacy input{width:auto;min-height:0;margin-top:4px;box-shadow:none}
.ddk-privacy a{color:var(--ddk-red);text-decoration:underline;text-underline-offset:2px}
.ddk-register .ddk-btn,.ddk-register button.ddk-btn,.ddk-register input.ddk-btn{
    justify-self:start;
    min-width:230px;
    min-height:52px;
    padding:15px 26px;
    background:var(--ddk-red)!important;
    border-color:var(--ddk-red)!important;
    color:#fff!important;
}
.ddk-alert{padding:15px 17px;margin:0 0 18px;border-radius:11px}
.ddk-alert.success{color:#17431f;background:#e6f5e8;border:1px solid #b7debd}
.ddk-alert.error{color:#6e1515;background:#fde9e9;border:1px solid #efbcbc}

/* =========================================================
   RESPONSIVE
========================================================= */
@media(max-width:980px){
    .ddk-grid{grid-template-columns:repeat(2,1fr)}
    .ddk-detail{width:min(100% - 30px,1180px);padding-top:42px}
    .ddk-hero{grid-template-columns:1fr}
    .ddk-hero-media{padding:20px 20px 0}
    .ddk-hero-img{width:min(600px,100%);margin:0 auto}
    .ddk-hero-copy{padding:42px 34px 52px}
    .ddk-facts{margin-right:0;margin-left:0}
    .ddk-columns{grid-template-columns:1fr}
    .ddk-info{min-height:0}
}

@media(max-width:680px){
    .ddk-grid{grid-template-columns:1fr}
    .ddk-card-body{padding:19px}
    .ddk-detail{width:min(100% - 22px,1180px);padding:26px 0 72px}
    .ddk-hero{border-radius:18px}
    .ddk-hero-media{padding:12px 12px 0}
    .ddk-hero-img{border-radius:14px}
    .ddk-hero-copy{padding:30px 22px 38px}
    .ddk-hero h1{font-size:clamp(2.25rem,11vw,3.45rem)}
    .ddk-hero-lead{margin-top:20px}
    .ddk-facts{grid-template-columns:1fr;gap:10px}
    .ddk-facts div{padding:18px 20px;border-radius:13px}
    .ddk-section,.ddk-register{margin-top:22px;padding:28px 22px;border-radius:17px}
    .ddk-dates div{grid-template-columns:44px minmax(0,1fr);gap:11px;padding:14px}
    .ddk-dates em{grid-column:2;white-space:normal}
    .ddk-location-card{grid-template-columns:58px minmax(0,1fr);gap:16px;padding:26px 22px;border-radius:17px}
    .ddk-location-mark{width:54px;height:54px;border-radius:14px;font-size:1.25rem}
    .ddk-columns{gap:12px;margin-top:22px}
    .ddk-info{padding:25px 22px;border-radius:14px}
    .ddk-form-grid{grid-template-columns:1fr}
    .ddk-register .ddk-btn,.ddk-register button.ddk-btn,.ddk-register input.ddk-btn{width:100%;min-width:0}
}

@media(prefers-reduced-motion:reduce){
    .ddk-single-wrap *,
    .ddk-single-wrap *::before,
    .ddk-single-wrap *::after{transition-duration:.01ms!important}
}
