/* =========================================
   KW LOBBY FRONTEND STYLES (Final v10)
   ========================================= */

:root {
    --kw-gold: #BD9B5C;
    --kw-blue: #00315d;
    --kw-dark: #222222;
    --kw-light: #f9f9f9;
    --kw-text: #444444;
    --kw-border: #eeeeee;
    
    --kw-font-sans: 'Manrope', sans-serif;
    --kw-font-serif: 'Quincy CF', serif;
    
    /* Status Colors */
    --kw-status-open: #28a745;
    --kw-status-closing: #ffc107;
    --kw-status-closed: #dc3545;
}

/* --- COMMON HELPERS --- */
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* --- WIDGET: ROOM AMENITIES --- */
.kw-amenities-grid { display: grid; gap: 15px; list-style: none; padding: 0; margin: 0; }
.kw-amenity-item { display: flex; align-items: center; gap: 12px; }
.kw-amenity-icon { width: 24px; height: 24px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.kw-amenity-icon svg { width: 100%; height: 100%; fill: currentColor; }
.kw-amenity-label { font-size: 15px; line-height: 1.4; }

/* --- WIDGET: ROOM BOOKING --- */
.kw-booking-container { position: relative; width: 100%; min-height: 50px; }
.kw-booking-title { margin: 0 0 20px 0; font-family: var(--kw-font-serif); color: var(--kw-blue); }
.d21-availabilityCalendar { max-width: 100%; }

/* --- WIDGET: PRICE TABLE --- */
.kw-price-table-wrapper { width: 100%; overflow-x: auto; position: relative; border: 1px solid #ddd; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
.kw-price-table { width: 100%; min-width: 600px; border-collapse: collapse; font-family: var(--kw-font-sans); }
.kw-price-table th, .kw-price-table td { padding: 12px 15px; text-align: center; border-bottom: 1px solid #eee; font-size: 15px; }
.kw-price-table thead th { font-family: var(--kw-font-serif); font-weight: 700; text-transform: uppercase; font-size: 13px; letter-spacing: 0.5px; padding: 15px; background-color: var(--kw-blue) !important; color: #fff; }
.kw-price-table tbody tr:nth-child(even) { background-color: var(--kw-light); }
.kw-price-val { font-weight: 700; white-space: nowrap; }
.kw-price-na { color: #ccc; font-weight: 300; }
.kw-price-table .kw-col-sticky { position: sticky; left: 0; z-index: 2; background-color: #fff; text-align: left; border-right: 1px solid #ddd; min-width: 160px; }
.kw-price-table tbody tr:nth-child(even) .kw-col-sticky { background-color: var(--kw-light); }
.kw-scroll-hint { display: none; text-align: center; font-size: 11px; color: #999; padding: 5px; background: #f0f0f1; text-transform: uppercase; }
@media (max-width: 768px) { .kw-scroll-hint { display: block; } }

/* --- WIDGET: ACTIVITY META --- */
.kw-activity-meta-wrapper { font-family: var(--kw-font-sans); }
.kw-meta-list { display: flex; flex-wrap: wrap; gap: 20px; margin: 0 0 20px 0; padding: 0; list-style: none; }
.kw-layout-grid .kw-meta-list { flex-direction: row; }
.kw-layout-list .kw-meta-list { flex-direction: column; gap: 10px; }
.kw-meta-item { display: flex; align-items: center; gap: 10px; background: var(--kw-light); padding: 10px 15px; border-radius: 4px; border: 1px solid var(--kw-border); }
.kw-meta-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kw-meta-icon svg { width: 20px; height: 20px; display: block; fill: currentColor; }
.kw-meta-val { margin: 0; font-weight: 500; font-size: 16px; }
.kw-btn-primary { display: inline-block; background-color: var(--kw-gold); color: #fff; padding: 12px 24px; border-radius: 2px; font-weight: 700; text-decoration: none; transition: background 0.3s ease; }
.kw-btn-primary:hover { background-color: var(--kw-blue); color: #fff; }

/* --- WIDGET: ARTIST PROFILE --- */
.kw-artist-profile { font-family: var(--kw-font-sans); border: 1px solid var(--kw-border); padding: 20px; background: #fff; border-radius: 4px; }
.kw-artist-grid { display: grid; gap: 20px; align-items: center; }
.kw-artist-layout-side .kw-artist-grid { grid-template-columns: 80px 1fr; }
.kw-artist-layout-stacked .kw-artist-grid { grid-template-columns: 1fr; text-align: center; justify-items: center; }
.kw-artist-avatar { width: 100%; height: 100%; object-fit: cover; display: block; }
.kw-artist-shape-circle .kw-artist-avatar, .kw-artist-shape-circle .kw-artist-avatar-placeholder { width: 80px; height: 80px; border-radius: 50%; }
.kw-artist-shape-rect .kw-artist-avatar { width: 80px; height: 100px; border-radius: 4px; }
.kw-artist-avatar-placeholder { background: #f0f0f1; display: flex; align-items: center; justify-content: center; color: #ccc; }
.kw-artist-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: #999; margin-bottom: 5px; }
.kw-artist-name { margin: 0 0 8px 0; font-family: var(--kw-font-serif); font-size: 18px; line-height: 1.2; }
.kw-artist-name a { color: inherit; text-decoration: none; transition: color 0.2s; }
.kw-artist-name a:hover { color: var(--kw-gold); }
.kw-artist-bio { font-size: 14px; color: #555; line-height: 1.5; margin-bottom: 10px; }
.kw-artist-link { font-size: 13px; font-weight: 700; color: var(--kw-gold); text-decoration: none; }
.kw-artist-link:hover { text-decoration: underline; }
@media (max-width: 480px) { .kw-artist-layout-side .kw-artist-grid { grid-template-columns: 1fr; text-align: center; justify-items: center; } }

/* --- WIDGET: CONTACT LIST --- */
.kw-contact-wrapper { display: flex; flex-wrap: wrap; gap: 15px; }
.kw-contact-link { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; position: relative; transition: color 0.3s ease; max-width: 100%; cursor: help; }
.kw-contact-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kw-contact-icon svg { width: 100%; height: 100%; transition: fill 0.3s ease; }
.kw-contact-text { line-height: 1.2; }

/* FIX: Verstecke alte CSS-Tooltips (Klarschrift), da JS jetzt übernimmt */
.kw-contact-tooltip { display: none !important; }

/* Skins Layouts */
.kw-contact-skin-list .kw-contact-wrapper { flex-direction: column; }
.kw-contact-skin-inline .kw-contact-wrapper { flex-direction: row; align-items: center; }
.kw-contact-skin-icons .kw-contact-wrapper { flex-direction: row; align-items: center; }
.kw-contact-skin-icons .kw-contact-text { display: none !important; }

/* --- WIDGET: BUSINESS HOURS --- */
.kw-business-hours-wrapper { font-family: var(--kw-font-sans); line-height: 1.5; position: relative; box-sizing: border-box; }
/* Tooltips werden jetzt an Body angehängt, Overflow ist egal, aber visible schadet nicht */
.kw-business-hours-wrapper, 
.kw-business-hours-wrapper.kw-skin-business-card,
.kw-business-hours-wrapper.kw-skin-cards { overflow: visible !important; }

.kw-hours-list { margin: 0; padding: 0; }
.kw-hours-row { display: flex; justify-content: space-between; align-items: center; font-size: 15px; color: var(--kw-text); margin-bottom: 8px; }
.kw-hours-row:last-child { margin-bottom: 0; }
.kw-hours-row dt { font-weight: 700; color: var(--kw-blue); display: flex; align-items: center; gap: 10px; }
.kw-row-icon { color: var(--kw-gold); display: flex; align-items: center; }
.kw-row-kitchen { margin-top: 15px; padding-top: 15px; border-top: 1px dashed #d0d0d0; color: var(--kw-gold) !important; }
.kw-hours-alert { background-color: #fff8e1; color: #856404; border: 1px solid #ffeeba; padding: 15px; border-radius: 6px; text-align: center; font-weight: 600; margin-top: 10px; display: flex; align-items: center; justify-content: center; gap: 10px; }

/* Status Dot & Animation */
.kw-status-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background-color: #ccc; margin-right: 10px; flex-shrink: 0; position: relative; cursor: help; }
.state-open .kw-status-dot { background-color: var(--kw-status-open); }
.state-closing .kw-status-dot { background-color: var(--kw-status-closing); }
.state-closed .kw-status-dot { background-color: var(--kw-status-closed); }
.kw-enable-pulse.state-open .kw-status-dot { animation: kw-dot-pulse 2s infinite; }
@keyframes kw-dot-pulse { 0% { box-shadow: 0 0 0 0 rgba(40,167,69, 0.7); } 70% { box-shadow: 0 0 0 6px rgba(40,167,69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40,167,69, 0); } }

/* CSS-Tooltips hier komplett entfernt, da JS (frontend.js) jetzt alles macht! */

/* --- SKIN STYLES --- */
/* SKIN 1: BADGE */
.kw-skin-badge { display: inline-block; width: auto; }
.kw-skin-badge .kw-live-badge { display: inline-flex; align-items: center; background-color: var(--kw-blue); color: #fff; padding: 8px 18px; border-radius: 50px; font-size: 13px; font-weight: 700; box-shadow: 0 4px 12px rgba(0, 49, 93, 0.2); transition: transform 0.2s ease; cursor: help; position: relative; }
.kw-skin-badge .kw-live-badge:hover { transform: translateY(-2px); }

/* SKIN 2: CARDS */
.kw-skin-cards { background: #fff; border: 1px solid #e0e0e0; padding: 30px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.04); transition: box-shadow 0.3s ease; }
.kw-skin-cards:hover { box-shadow: 0 15px 40px rgba(0,0,0,0.08); }
.kw-skin-cards .kw-card-header-simple { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid var(--kw-gold); margin-bottom: 25px; padding-bottom: 15px; }
.kw-skin-cards .kw-hours-title { font-family: var(--kw-font-serif); color: var(--kw-blue); font-size: 22px; margin: 0; border: none; padding: 0; }
.kw-skin-cards .kw-live-status-inline { display: flex; align-items: center; gap: 10px; }
.kw-skin-cards .kw-live-status-inline .kw-status-text { font-size: 12px; font-weight: 500; color: #888; }
.kw-live-status-sub { margin-top: 15px; font-size: 12px; color: #777; display: flex; align-items: center; justify-content: center; font-weight: 500; }

/* SKIN 3: TABLE */
.kw-skin-table { padding: 0; border: none; background: transparent; box-shadow: none; }
.kw-skin-table .kw-hours-title { font-family: var(--kw-font-serif); color: var(--kw-blue); font-size: 20px; margin-bottom: 20px; border: none; }
@media (min-width: 768px) { .kw-skin-table .kw-live-status-sub { justify-content: flex-start; margin-top: 0; margin-bottom: 15px; } }
@media (max-width: 767px) { .kw-skin-table .kw-live-status-sub { justify-content: center; } }
.kw-skin-table .kw-hours-row { padding: 12px 15px; border-bottom: 1px solid #f0f0f1; border-radius: 6px; transition: background 0.2s; }
.kw-skin-table .kw-hours-row:nth-child(even) { background-color: rgba(0, 49, 93, 0.02); }
.kw-skin-table .kw-hours-row:hover { background-color: #fdfdfd; box-shadow: 0 2px 8px rgba(0,0,0,0.03); transform: scale(1.01); }

/* SKIN 4: BUSINESS CARD */
.kw-skin-business-card { background: #fff; border-radius: 12px; box-shadow: 0 15px 40px rgba(0,0,0,0.12); border: 1px solid #eee; padding: 0 !important; }
.kw-skin-business-card .kw-card-header { background: var(--kw-dark); padding: 25px; border-bottom: 4px solid var(--kw-gold); display: flex; justify-content: space-between; align-items: center; gap: 15px; border-top-left-radius: 12px; border-top-right-radius: 12px; }
.kw-skin-business-card .kw-hours-title { margin: 0; color: #fff; font-family: var(--kw-font-serif); font-size: 20px; letter-spacing: 0.5px; font-weight: 500; text-align: left; line-height: 1.2; }
.kw-skin-business-card .kw-card-body { padding: 25px; }
.kw-skin-business-card .kw-card-footer { background-color: #f8f8f8; padding: 25px; text-align: center; border-top: 1px solid #e5e5e5; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; }
.kw-skin-business-card .kw-card-footer:empty { display: none; }
.kw-skin-business-card .kw-status-badge { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); padding: 7px 12px; border-radius: 99px; line-height: 1; font-size: 12px; font-weight: 600; color: #fff; white-space: nowrap; backdrop-filter: blur(4px); cursor: help; position: relative; }
.kw-skin-business-card .kw-status-dot { margin: 0; width: 8px; height: 8px; box-shadow: 0 0 0 2px rgba(255,255,255,0.1); top: -1px; }
.kw-skin-business-card .kw-status-text { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.9; }

/* --- PAYMENT ICONS --- */
.kw-payment-list { display: flex; flex-wrap: wrap; align-items: center; gap: 15px; }
.kw-payment-icon { display: flex; align-items: center; justify-content: center; transition: transform 0.3s ease; color: #555; cursor: help; width: auto !important; }
.kw-payment-icon svg, .kw-payment-icon i { width: 32px; height: auto; display: block; }
.kw-payment-icon:hover { transform: translateY(-2px); }
.kw-payment-grayscale-yes .kw-payment-icon { filter: grayscale(100%); opacity: 0.6; transition: filter 0.3s, opacity 0.3s, color 0.3s; }
.kw-payment-grayscale-yes .kw-payment-icon:hover { filter: grayscale(0%); opacity: 1; }
.kw-payment-icon:hover svg { fill: #FFB3C7; }

/* --- MOBILE --- */
@media (max-width: 767px) {
    .kw-card-header-simple, .kw-skin-business-card .kw-card-header { flex-direction: column; align-items: center; text-align: center; gap: 10px; }
    .kw-live-status-inline { width: 100%; justify-content: center; margin-top: 10px; }
    .kw-hours-row { flex-wrap: wrap; gap: 4px; }
    .kw-hours-row dt { flex-basis: 100%; margin-bottom: 2px; }
    .kw-hours-row dd { margin-left: 24px; font-size: 14px; color: #555; }
    .kw-skin-cards, .kw-skin-business-card .kw-card-body { padding: 20px !important; }
    .kw-hours-title { font-size: 18px !important; text-align: center; }
}

/* =========================================================
   JS SMART TOOLTIP STYLES (Global System)
   ========================================================= */
.kw-js-tooltip {
    position: absolute;
    top: 0; left: 0;
    z-index: 999999;
    background: #222;
    color: #fff;
    font-family: var(--kw-font-sans);
    font-size: 12px;
    line-height: 1.4;
    padding: 10px 14px;
    border-radius: 6px;
    max-width: 250px;
    width: max-content;
    white-space: normal;
    box-shadow: 0 5px 20px rgba(0,0,0,0.25);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
    will-change: transform, top, left;
}

.kw-js-tooltip.is-visible { opacity: 1; }

.kw-js-tooltip::after {
    content: ''; position: absolute; width: 0; height: 0; border-style: solid;
    border-width: 6px 6px 0 6px; border-color: #222 transparent transparent transparent;
    bottom: -6px; left: 50%; margin-left: -6px;
}

.kw-js-tooltip.arrow-bottom::after { bottom: -6px; top: auto; border-width: 6px 6px 0 6px; border-color: #222 transparent transparent transparent; }
.kw-js-tooltip.arrow-top::after { top: -6px; bottom: auto; border-width: 0 6px 6px 6px; border-color: transparent transparent #222 transparent; }