/* =====================================================
   Centro Beach – Eventkalender V2
   1:1 aus mockup_chatgpt_ORIGINAL.html extrahiert
   ===================================================== */

:root{
    --bg:#06101d;
    --bg-soft:#0b1627;
    --card:#0f1c2f;
    --card-2:#101b2c;

    --gold:#c9a84c;
    --gold-soft:#f3d07b;

    --cyan:#00d4ff;
    --green:#1fd47c;
    --purple:#ae67ff;
    --red:#ff5f5f;

    --text:#ffffff;
    --text-soft:#aeb7c6;
    --border:rgba(255,255,255,0.08);

    --radius-xl:28px;
    --radius-lg:22px;
    --radius-md:16px;

    --shadow:
        0 20px 40px rgba(0,0,0,.35);

    --container:1280px;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:
        radial-gradient(circle at top left, rgba(201,168,76,.18), transparent 25%),
        radial-gradient(circle at top right, rgba(0,212,255,.10), transparent 30%),
        linear-gradient(180deg,#020814 0%, #06101d 100%);
    color:var(--text);
    min-height:100vh;
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

.container{
    width:min(92%, var(--container));
    margin:auto;
}

/* =====================================================
   BACKGROUND DECOR
   ===================================================== */

.bg-blur{
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:-1;
}

.bg-blur::before,
.bg-blur::after{
    content:"";
    position:absolute;
    width:500px;
    height:500px;
    border-radius:50%;
    filter:blur(120px);
    opacity:.12;
}

.bg-blur::before{
    background:var(--gold);
    top:-120px;
    left:-100px;
}

.bg-blur::after{
    background:var(--cyan);
    top:-120px;
    right:-100px;
}

/* =====================================================
   HERO
   ===================================================== */

.hero{
    padding-top:56px;
    text-align:center;
}

.hero-logo{
    width:240px;
    margin:0 auto 12px;
}

.hero-brand{
    font-family:'Space Grotesk', sans-serif;
    color:var(--gold-soft);
    text-transform:uppercase;
    letter-spacing:.4em;
    font-size:22px;
    font-weight:500;
    margin-bottom:18px;
    text-shadow:0 0 24px rgba(201,168,76,.25);
}

.hero-brand-sm{
    font-size:16px;
    letter-spacing:.36em;
    margin-bottom:10px;
}

.hero-title{
    font-family:'Space Grotesk',sans-serif;
    text-transform:uppercase;
    letter-spacing:.28em;
    font-size:40px;
    font-weight:700;
}

.hero-season{
    margin-top:14px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    color:var(--text-soft);
    font-size:17px;
}

/* Detail-Page: kleiner Hero mit Zurück-Link */
.hero-back{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:16px;
    padding:10px 18px;
    border-radius:999px;
    background:rgba(255,255,255,.03);
    border:1px solid var(--border);
    color:var(--text-soft);
    font-size:14px;
    transition:.25s;
}
.hero-back:hover{
    background:rgba(255,255,255,.06);
    color:#fff;
}

/* =====================================================
   KPI GRID
   ===================================================== */

.kpi-grid{
    margin-top:44px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.kpi-card{
    background:rgba(10,20,35,.75);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    min-height:148px;
    display:flex;
    align-items:center;
    padding:28px;
    position:relative;
    overflow:hidden;
    box-shadow:var(--shadow);
    backdrop-filter:blur(12px);
}

.kpi-card::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(135deg,
            rgba(255,255,255,.05),
            transparent 60%);
    pointer-events:none;
}

.kpi-icon{
    width:72px;
    height:72px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
    flex-shrink:0;
}

.kpi-gold .kpi-icon{
    border:2px solid rgba(201,168,76,.4);
    color:var(--gold-soft);
    box-shadow:0 0 30px rgba(201,168,76,.2);
}

.kpi-cyan .kpi-icon{
    border:2px solid rgba(0,212,255,.3);
    color:var(--cyan);
}

.kpi-purple .kpi-icon{
    border:2px solid rgba(174,103,255,.3);
    color:var(--purple);
}

.kpi-content{
    margin-left:22px;
}

.kpi-number{
    font-size:56px;
    line-height:1;
    font-weight:800;
}

.kpi-label{
    margin-top:10px;
    color:var(--text-soft);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:15px;
}

/* =====================================================
   MONTH NAVIGATION
   ===================================================== */

.months-wrapper{
    margin-top:34px;
    background:rgba(10,20,35,.75);
    border:1px solid var(--border);
    border-radius:var(--radius-xl);
    padding:14px;
    box-shadow:var(--shadow);
    backdrop-filter:blur(12px);
}

.months-grid{
    display:grid;
    grid-template-columns:60px repeat(5,1fr) 60px;
    align-items:stretch;
    gap:10px;
}

.month-arrow{
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    color:var(--text-soft);
    cursor:pointer;
    transition:.25s;
    user-select:none;
}

.month-arrow:hover{
    background:rgba(255,255,255,.04);
    color:#fff;
}

.month-item{
    border-radius:22px;
    padding:22px 12px;
    text-align:center;
    border:1px solid transparent;
    transition:.25s;
    cursor:pointer;
}

.month-item:hover{
    background:rgba(255,255,255,.03);
}

.month-item.active{
    border:1px solid rgba(201,168,76,.5);
    background:
        linear-gradient(180deg,
        rgba(201,168,76,.12),
        rgba(201,168,76,.04));
    box-shadow:
        inset 0 0 30px rgba(201,168,76,.08),
        0 0 25px rgba(201,168,76,.08);
}

.month-name{
    text-transform:uppercase;
    color:var(--text-soft);
    letter-spacing:.1em;
    font-size:15px;
    margin-bottom:12px;
}

.month-number{
    font-size:58px;
    line-height:1;
    font-weight:800;
}

.month-events{
    margin-top:10px;
    text-transform:uppercase;
    color:var(--text-soft);
    font-size:14px;
}

/* =====================================================
   FILTER BAR
   ===================================================== */

.filter-row{
    margin-top:28px;
    display:flex;
    gap:14px;
    align-items:center;
    flex-wrap:wrap;
}

.filter-group{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.pill{
    border:none;
    background:rgba(255,255,255,.03);
    border:1px solid var(--border);
    color:#fff;
    border-radius:999px;
    padding:14px 24px;
    font-size:15px;
    cursor:pointer;
    transition:.25s;
    white-space:nowrap;
}

.pill:hover{
    background:rgba(255,255,255,.05);
}

.pill.active{
    background:
        linear-gradient(180deg,
        rgba(201,168,76,.25),
        rgba(201,168,76,.10));
    border-color:rgba(201,168,76,.35);
    color:var(--gold-soft);
}

.search{
    margin-left:auto;
    min-width:320px;
    position:relative;
}

.search input{
    width:100%;
    height:54px;
    border:none;
    outline:none;
    background:rgba(255,255,255,.03);
    border:1px solid var(--border);
    border-radius:999px;
    color:#fff;
    padding:0 24px 0 54px;
    font-size:15px;
}

.search svg{
    position:absolute;
    left:18px;
    top:50%;
    transform:translateY(-50%);
    opacity:.6;
}

/* =====================================================
   SECTION TITLE
   ===================================================== */

.section-title{
    margin-top:44px;
    display:flex;
    align-items:baseline;
    gap:18px;
}

.section-title h2{
    font-size:52px;
    line-height:1;
    text-transform:uppercase;
    font-family:'Bebas Neue',sans-serif;
    letter-spacing:.06em;
}

.section-title span{
    color:var(--gold-soft);
    font-size:20px;
}

/* =====================================================
   EVENT LIST
   ===================================================== */

.event-list{
    margin-top:26px;
    display:flex;
    flex-direction:column;
    gap:22px;
}

.event-empty{
    margin-top:30px;
    padding:40px;
    text-align:center;
    color:var(--text-soft);
    background:rgba(10,20,35,.55);
    border:1px dashed var(--border);
    border-radius:var(--radius-lg);
}

.event-card{
    background:rgba(10,20,35,.78);
    border:1px solid var(--border);
    border-radius:30px;
    min-height:170px;
    display:grid;
    grid-template-columns:120px 180px 1fr 180px;
    overflow:hidden;
    box-shadow:var(--shadow);
    backdrop-filter:blur(12px);
    transition:.25s;
}

.event-card:hover{
    transform:translateY(-4px);
    border-color:rgba(255,255,255,.12);
}

.event-date{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-right:1px solid rgba(255,255,255,.05);
}

.event-day{
    font-size:56px;
    line-height:1;
    color:var(--gold-soft);
    font-weight:800;
}

.event-weekday,
.event-month{
    text-transform:uppercase;
    color:var(--text-soft);
    letter-spacing:.14em;
    font-size:14px;
}

.event-image{
    position:relative;
    overflow:hidden;
    background:#0b1627;
}

.event-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.event-content{
    padding:28px 34px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.event-title{
    font-size:40px;
    font-weight:700;
    line-height:1.1;
}

.event-title a{
    color:inherit;
}
.event-title a:hover{
    color:var(--gold-soft);
}

.event-meta{
    margin-top:18px;
    display:flex;
    gap:14px;
    align-items:center;
    flex-wrap:wrap;
    color:var(--text-soft);
}

.tag{
    padding:8px 14px;
    border-radius:999px;
    font-size:14px;
    font-weight:600;
}

.tag.party{
    background:rgba(174,103,255,.16);
    color:#d8b8ff;
}

.tag.wm{
    background:rgba(255,95,95,.18);
    color:#ffb1b1;
}

.tag.misc{
    background:rgba(31,212,124,.16);
    color:#8bf5bf;
}

.event-status{
    border-left:1px solid rgba(255,255,255,.05);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:14px;
    padding:20px;
}

.status{
    padding:10px 18px;
    border-radius:999px;
    font-size:15px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.status.planned{
    background:rgba(0,212,255,.15);
    color:#7cecff;
}

.status.confirmed{
    background:rgba(31,212,124,.15);
    color:#8ef7c3;
}

.event-guests{
    color:var(--text-soft);
    font-size:18px;
}

/* =====================================================
   EVENT DETAIL PAGE
   ===================================================== */

.detail-wrapper{
    margin-top:36px;
}

.detail-hero-image{
    width:100%;
    height:auto;          /* Bild bestimmt die Hoehe — kein Crop, ganzes Motiv sichtbar */
    display:block;
    border-radius:var(--radius-xl);
    border:1px solid var(--border);
    box-shadow:var(--shadow);
}

.detail-meta{
    margin-top:36px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    align-items:center;
}

.detail-title{
    margin-top:24px;
    font-family:'Bebas Neue',sans-serif;
    font-size:72px;
    line-height:1;
    letter-spacing:.04em;
}

.detail-section{
    margin-top:28px;
    background:rgba(10,20,35,.65);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:24px 28px;
    backdrop-filter:blur(12px);
}

.detail-section h3{
    font-size:18px;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--gold-soft);
    margin-bottom:12px;
}

.detail-section p,
.detail-section li{
    color:var(--text-soft);
    font-size:16px;
    line-height:1.6;
}

.detail-section ul{
    list-style:none;
    padding:0;
    display:grid;
    grid-template-columns:max-content 1fr;
    gap:10px 24px;
}

/* P6 (2026-06-13): strong+span stecken gemeinsam in einem li — das
   2-Spalten-Grid griff dadurch nie zwischen Beschriftung und Wert
   (kein Abstand, Paare zerrissen). display:contents macht strong/span
   selbst zu Grid-Zellen -> Label links, Wert rechts, 24px Luecke. */
.detail-section ul li{
    display:contents;
}

.detail-section ul li strong{
    color:#fff;
    font-weight:600;
}

/* =====================================================
   FOOTER
   ===================================================== */

.footer{
    margin-top:64px;
    margin-bottom:50px;
    background:rgba(10,20,35,.75);
    border:1px solid var(--border);
    border-radius:28px;
    padding:34px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}

.footer-item{
    display:flex;
    gap:18px;
    align-items:flex-start;
}

.footer-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.08);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    color:var(--gold-soft);
    flex-shrink:0;
}

.footer-label{
    text-transform:uppercase;
    color:var(--text-soft);
    letter-spacing:.08em;
    font-size:13px;
}

.footer-value{
    margin-top:6px;
    font-size:20px;
    font-weight:600;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */

@media(max-width:1100px){
    .event-card{
        grid-template-columns:110px 150px 1fr;
    }
    .event-status{
        grid-column:1 / -1;
        border-left:none;
        border-top:1px solid rgba(255,255,255,.05);
        flex-direction:row;
        justify-content:space-between;
    }
    .footer{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:768px){
    .hero{
        padding-top:34px;
    }
    .hero-logo{
        width:180px;
    }
    .hero-title{
        font-size:26px;
        letter-spacing:.18em;
    }
    .hero-brand{
        font-size:16px;
        letter-spacing:.32em;
        margin-bottom:12px;
    }
    .hero-brand-sm{
        font-size:13px;
        letter-spacing:.28em;
    }
    .kpi-grid{
        grid-template-columns:1fr;
    }
    .months-grid{
        grid-template-columns:1fr 1fr;
    }
    .month-arrow{
        display:none;
    }
    .month-item{
        min-height:140px;
    }
    .filter-row{
        flex-direction:column;
        align-items:stretch;
    }
    .search{
        margin-left:0;
        min-width:100%;
    }
    .section-title{
        flex-direction:column;
        gap:8px;
    }
    .section-title h2{
        font-size:42px;
    }
    .event-card{
        grid-template-columns:1fr;
    }
    .event-date{
        flex-direction:row;
        justify-content:flex-start;
        gap:14px;
        padding:20px 24px;
        border-right:none;
        border-bottom:1px solid rgba(255,255,255,.05);
    }
    .event-image{
        height:220px;
    }
    .event-content{
        padding:24px;
    }
    .event-title{
        font-size:32px;
    }
    .event-status{
        border-top:1px solid rgba(255,255,255,.05);
    }
    .footer{
        grid-template-columns:1fr;
    }
    .detail-title{
        font-size:48px;
    }
}

@media(max-width:520px){
    .months-grid{
        grid-template-columns:1fr;
    }
    .month-item{
        padding:18px;
    }
    .event-title{
        font-size:26px;
    }
    .event-meta{
        flex-direction:column;
        align-items:flex-start;
    }
    .event-status{
        flex-direction:column;
    }
    .detail-section ul{
        grid-template-columns:1fr;
    }
}

/* ═══════════════════════════════════════════════════════════════
   B3 (2026-06-12): Status-Banner + CTA-Buttons
   ═══════════════════════════════════════════════════════════════ */

/* Status-Banner: voller Streifen oben in der Karte (Grid-übergreifend) */
.status-banner{
    grid-column:1 / -1;
    padding:10px 22px;
    font-family:'Bebas Neue',sans-serif;
    font-size:1.05rem;
    letter-spacing:1.5px;
    text-align:center;
}
.sb-abgesagt{
    background:rgba(170,40,40,.92);
    color:#fff;
}
.sb-verschoben{
    background:rgba(200,130,30,.92);
    color:#1a1208;
}
/* Karte gedimmt bei Absage */
.card-abgesagt .event-image img,
.card-abgesagt .detail-hero-image{
    filter:grayscale(.7) brightness(.6);
}
.card-abgesagt .event-title,
.card-abgesagt .detail-title{
    text-decoration:line-through;
    text-decoration-color:rgba(170,40,40,.8);
    text-decoration-thickness:2px;
}
/* Detailseite: Banner über dem Hero-Bild */
.status-banner-detail{
    display:block;
    border-radius:14px;
    margin-bottom:16px;
    font-size:1.2rem;
}

/* Status-Badges fuer abgesagt/verschoben (Monatsliste rechts) */
.status.cancelled{background:rgba(170,40,40,.25);color:#e88;border:1px solid rgba(170,40,40,.5)}
.status.moved{background:rgba(200,130,30,.22);color:#e8b86a;border:1px solid rgba(200,130,30,.5)}

/* CTA-Buttons */
.cta-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-top:12px;
}
.btn-cta{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 14px;
    border-radius:20px;
    font-size:.82rem;
    font-weight:600;
    text-decoration:none;
    color:#f0ece4;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.14);
    transition:background .15s,transform .15s;
}
.btn-cta:hover{background:rgba(255,255,255,.14);transform:translateY(-1px)}
.cta-ticket{
    background:var(--gold);
    color:#14100a;
    border-color:var(--gold);
}
.cta-ticket:hover{background:var(--gold-soft)}
.cta-wa{border-color:rgba(60,180,90,.5)}
.cta-reservieren{
    border-style:dashed;
    opacity:.75;
    cursor:default;
}
.cta-hinweis{
    font-size:.78rem;
    color:#9994a6;
    flex-basis:100%;
}
.cta-row .cta-hinweis{flex-basis:100%}
.cta-row-detail .btn-cta{font-size:.95rem;padding:10px 20px}
