@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=Montserrat:wght@300;400;500;600&display=swap');

/* =========================================================
   1. FREIGESCHALTETE GALERIE (HELL & OPTIMALE BREITE)
   ========================================================= */
div.vjh-wrapper:not(.vjh-gate-wrapper) {
    width: 100% !important;
    max-width: 1920px !important;
    margin: 40px auto !important;
    padding: 50px 40px !important;
    box-sizing: border-box !important;
    font-family: 'Montserrat', sans-serif !important;
    background: #fffcf8 !important;
    border: 1px solid #ebd9c8 !important;
    border-radius: 20px !important;
    box-shadow: 0 15px 45px rgba(0,0,0,0.3) !important;
    color: #4a4036 !important;
}

div.vjh-wrapper:not(.vjh-gate-wrapper) * {
    box-sizing: border-box;
}

/* HEADER GALERIE */
.vjh-header { text-align: center !important; margin-bottom: 40px !important; }
.vjh-eyebrow { font-size: 11px !important; letter-spacing: 4px !important; color: #bc8a5f !important; font-weight: 600 !important; text-transform: uppercase !important; display: block !important; }
.vjh-kicker { margin: 5px 0 0 0 !important; color: #8c7a6b !important; font-family: 'Cormorant Garamond', serif !important; font-size: 22px !important; font-style: italic !important; }
.vjh-title { font-family: 'Great Vibes', cursive !important; font-size: 72px !important; font-weight: 400 !important; margin: 0 !important; color: #2c221e !important; line-height: 1.1 !important; }
.vjh-divider { color: #d4a373 !important; font-size: 16px !important; margin: 12px 0 !important; opacity: 0.8 !important; text-align: center !important; }
.vjh-tagline { font-size: 14px !important; color: #6b5c50 !important; max-width: 540px !important; margin: 0 auto !important; line-height: 1.7 !important; font-weight: 300 !important; }

/* UPLOAD BOX */
.vjh-upload-box {
    border: 2px dashed #dfcbb5 !important;
    border-radius: 16px !important;
    padding: 35px 25px !important;
    text-align: center !important;
    background: #ffffff !important;
    margin-bottom: 45px !important;
}
.vjh-upload-overline { font-family: 'Cormorant Garamond', serif !important; font-size: 26px !important; font-weight: 600 !important; display: block !important; color: #2c221e !important; }
.vjh-upload-sub { font-size: 13px !important; color: #7a6a5c !important; margin-bottom: 20px !important; }
.vjh-btn {
    background: linear-gradient(135deg, #d4a373 0%, #bc8a5f 100%) !important;
    color: #ffffff !important;
    border: none !important;
    padding: 13px 32px !important;
    border-radius: 30px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
}

/* Drag and Drop Visual Highlight */
.vjh-upload-box.vjh-dragover {
    border-color: #bc8a5f !important;
    background-color: #fcf9f5 !important;
}

/* FOTO GRID & KARTEN */
.vjh-gallery-header-row { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 25px !important; padding-bottom: 12px !important; border-bottom: 1px dashed #e5d4c3 !important; }
.vjh-sub-label { font-size: 11px !important; text-transform: uppercase !important; color: #8c7a6b !important; letter-spacing: 2px !important; font-weight: 600 !important; }

button.vjh-download-all, .vjh-download-all {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    cursor: pointer !important;
    color: #bc8a5f !important; 
    text-decoration: none !important; 
    font-size: 13px !important; 
    font-weight: 600 !important;
    font-family: 'Montserrat', sans-serif !important;
}

/* BUTTON: DUPLIKATE ENTFERNEN */
.vjh-dedupe-link {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    color: #bc8a5f !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    font-family: 'Montserrat', sans-serif !important;
    transition: opacity 0.2s ease !important;
}

.vjh-dedupe-link:hover {
    opacity: 0.8 !important;
    text-decoration: underline !important;
}

.vjh-gallery-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important; gap: 25px !important; }
.vjh-photo-frame { background: #ffffff !important; padding: 10px 10px 18px 10px !important; border-radius: 8px !important; box-shadow: 0 4px 15px rgba(0,0,0,0.06) !important; border: 1px solid #f0e6dc !important; position: relative !important; }
.vjh-photo-frame img, .vjh-photo-frame video { width: 100% !important; aspect-ratio: 4/3 !important; object-fit: cover !important; border-radius: 4px !important; display: block !important; }

/* HOVER BUTTONS AUF BILDERN */
.vjh-item-actions {
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 6px !important;
    opacity: 0 !important;
    transition: opacity 0.2s ease !important;
    z-index: 10 !important;
}

.vjh-gallery-item:hover .vjh-item-actions {
    opacity: 1 !important;
}

.vjh-action-btn {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    border: 1px solid #e2d2c1 !important;
    color: #4a4036 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    font-size: 14px !important;
    text-decoration: none !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.15) !important;
    padding: 0 !important;
    line-height: 1 !important;
}

.vjh-action-btn:hover {
    background: #bc8a5f !important;
    color: #ffffff !important;
    border-color: #bc8a5f !important;
}

/* =========================================================
   2. PASSWORT EINGABE (SEPARATE HELLE EINLADUNGSKARTE)
   ========================================================= */
.vjh-gate-wrapper {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 60px auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.vjh-gate-card {
    background: #ffffff !important;
    border: 1px solid #e2d2c1 !important;
    border-radius: 20px !important;
    padding: 50px 35px !important;
    text-align: center !important;
    max-width: 450px !important;
    width: 100% !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4), inset 0 0 0 6px #fcf9f5 !important;
    margin: 0 auto !important;
}

.vjh-decorative-ribbon { font-size: 24px !important; color: #d4a373 !important; margin-bottom: 5px !important; }
.vjh-gate-monogram { font-family: 'Great Vibes', cursive !important; font-size: 68px !important; color: #2c221e !important; line-height: 1 !important; margin-bottom: 5px !important; }
.vjh-gate-kicker { font-size: 10px !important; letter-spacing: 3px !important; color: #bc8a5f !important; margin-bottom: 12px !important; text-transform: uppercase !important; font-weight: 600 !important; }
.vjh-gate-card h2 { font-family: 'Cormorant Garamond', serif !important; font-size: 28px !important; color: #2c221e !important; margin-bottom: 10px !important; font-weight: 600 !important; }
.vjh-gate-card p { font-size: 13px !important; color: #6b5c50 !important; line-height: 1.6 !important; margin-bottom: 25px !important; }

.vjh-gate-form { display: flex !important; flex-direction: column !important; gap: 12px !important; }
.vjh-gate-form input { 
    padding: 14px !important; 
    border-radius: 30px !important; 
    border: 1px solid #e2d2c1 !important; 
    background: #fcf9f5 !important; 
    color: #2c221e !important; 
    text-align: center !important; 
    font-size: 14px !important;
    outline: none !important;
}
.vjh-gate-form input:focus { border-color: #bc8a5f !important; background: #ffffff !important; }
.vjh-gate-form button { 
    padding: 14px !important; 
    border-radius: 30px !important; 
    border: none !important; 
    background: linear-gradient(135deg, #d4a373 0%, #bc8a5f 100%) !important; 
    color: #ffffff !important; 
    font-size: 11px !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    font-weight: 600 !important; 
    cursor: pointer !important; 
    box-shadow: 0 4px 15px rgba(188, 138, 95, 0.3) !important;
}
.vjh-gate-error { color: #d9534f !important; font-size: 12px !important; margin-top: 8px !important; }

/* =========================================================
   3. LIGHTBOX OVERLAY & BUTTONS (STRIKT OVERRIDDEN)
   ========================================================= */
.vjh-lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;
    background: rgba(10, 12, 16, 0.95) !important;
    backdrop-filter: blur(8px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px !important;
    box-sizing: border-box !important;
}

.vjh-lightbox-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    max-width: 95vw !important;
    max-height: 95vh !important;
}

.vjh-lightbox-content img, 
.vjh-lightbox-content video {
    max-width: 90vw !important;
    max-height: 80vh !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8) !important;
}

/* BUTTON-STYLES (ERZWUNGEN) */
button.vjh-lightbox-close,
button.vjh-lightbox-nav {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-color: #ffffff !important;
    background-image: none !important;
    color: #2c221e !important;
    border: 1px solid #ebd9c8 !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    outline: none !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: all 0.2s ease !important;
    z-index: 1000000 !important;
}

button.vjh-lightbox-close {
    position: absolute !important;
    top: 25px !important;
    right: 25px !important;
    width: 44px !important;
    height: 44px !important;
    font-size: 22px !important;
    line-height: 1 !important;
}

button.vjh-lightbox-nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 48px !important;
    height: 48px !important;
    font-size: 20px !important;
}

button.vjh-lightbox-prev { left: 25px !important; }
button.vjh-lightbox-next { right: 25px !important; }

/* HOVER STATES */
button.vjh-lightbox-close:hover,
button.vjh-lightbox-nav:hover {
    background-color: #bc8a5f !important;
    color: #ffffff !important;
    border-color: #bc8a5f !important;
    transform: translateY(-50%) scale(1.08) !important;
}

button.vjh-lightbox-close:hover {
    transform: scale(1.08) !important;
}

/* DOWNLOAD LINK UNTER DEM BILD IN DER LIGHTBOX */
.vjh-download-btn { 
    color: #ebd9c8 !important; 
    text-decoration: none !important; 
    display: inline-block !important; 
    margin-top: 15px !important; 
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: color 0.2s !important;
}

.vjh-download-btn:hover {
    color: #ffffff !important;
}

/* =========================================================
   4. GENERAL MODALS & PROGRESS BARS (ZIP & DEDUPE)
   ========================================================= */
.vjh-modal {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999999 !important;
    background: rgba(0, 0, 0, 0.75) !important;
    backdrop-filter: blur(4px) !important;
    align-items: center !important;
    justify-content: center !important;
}

.vjh-modal-card {
    background: #ffffff !important;
    border-radius: 16px !important;
    padding: 35px 30px !important;
    width: 90% !important;
    max-width: 450px !important;
    text-align: center !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3) !important;
    border: 1px solid #ebd9c8 !important;
    font-family: 'Montserrat', sans-serif !important;
}

.vjh-modal-card h3 {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 26px !important;
    margin: 0 0 10px 0 !important;
    color: #2c221e !important;
    font-weight: 600 !important;
}

.vjh-modal-card p {
    font-size: 13px !important;
    color: #6b5c50 !important;
    line-height: 1.5 !important;
}

.vjh-progress-bar {
    width: 100% !important;
    height: 14px !important;
    background: #f0e6dc !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    margin: 20px 0 !important;
}

#vjh-progress-fill {
    height: 100% !important;
    background: linear-gradient(135deg, #d4a373 0%, #bc8a5f 100%) !important;
    transition: width 0.3s ease !important;
}

.vjh-modal-close-btn {
    background: linear-gradient(135deg, #d4a373 0%, #bc8a5f 100%) !important;
    border: none !important;
    color: #ffffff !important;
    padding: 10px 24px !important;
    border-radius: 20px !important;
    cursor: pointer !important;
    margin-top: 15px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
}