/* ==========================================================================
   1. POMOCNÉ PRVKY (LOADER, NO-IMAGE, STATUS)
   ========================================================================== */

.sem-submit-btn[disabled] {
    opacity: 0.6 !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
}

.sem-loading {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 3px solid #cbd5e1;
    border-top-color: #1d4ed8;
    border-radius: 50%;
    animation: sem-spin 0.8s linear infinite;
    margin-left: 12px;
    vertical-align: middle;
}

@keyframes sem-spin {
    to {
        transform: rotate(360deg);
    }
}

.sem-no-image {
    width: 100%;
    height: 100%;
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #94a3b8;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 8px;
}

.sem-occ-num {
    color: #16a34a !important;
    font-weight: 700 !important;
}


/* ==========================================================================
   2. MODERNÝ REGISTRAČNÝ FORMULÁR
   ========================================================================== */

/* Obal formulára pod kartou (pridané výrazné odsadenie pod tlačidlom) */
.sem-registration-form {
    border: 1px solid #e2e8f0 !important;
    border-top: 2px solid #1d4ed8 !important;
    border-radius: 10px !important;
    margin: 24px 20px 20px 20px !important; /* Výrazné odsadenie, aby vidno celý rámček */
    padding: 28px 32px !important;
    background: #f8fafc !important;
    box-sizing: border-box !important;
    animation: semSlideDown 0.3s ease-out;
}

@keyframes semSlideDown {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Hlavička formulára s nadpisom a × */
.sem-form-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 24px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

.sem-form-header span {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
}

/* Veľké prehľadné tlačidlo na zavretie pre seniorov */
.sem-close-form {
    background: #e2e8f0 !important;
    border: 2px solid #cbd5e1 !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    font-size: 24px !important;
    font-weight: bold !important;
    line-height: 1 !important;
    color: #334155 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

.sem-close-form:hover {
    background: #ef4444 !important;
    border-color: #dc2626 !important;
    color: #ffffff !important;
}

/* Štíty / Label-y */
.sem-registration-form label {
    display: block !important;
    margin-top: 16px !important;
    margin-bottom: 6px !important;
    font-weight: 600 !important;
    font-size: 0.88rem !important;
    color: #334155 !important;
}

/* Polia (Input, Select, Textarea) */
.sem-registration-form input[type="text"],
.sem-registration-form input[type="email"],
.sem-registration-form select,
.sem-registration-form textarea {
    width: 100% !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    border: 1px solid #cbd5e1 !important;
    background-color: #ffffff !important;
    font-size: 0.92rem !important;
    color: #0f172a !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    margin-bottom: 4px !important;
}

/* Focus stav pre vstupové polia */
.sem-registration-form input:focus,
.sem-registration-form textarea:focus,
.sem-registration-form select:focus {
    border-color: #1d4ed8 !important;
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.15) !important;
    outline: none !important;
}

.sem-registration-form textarea {
    min-height: 80px !important;
    resize: vertical !important;
}
/* Styling pre rozbalovací Select */
.sem-registration-form select.sem-room-type {
    width: 100% !important;
    height: 46px !important; /* Dostatok miesta na výšku */
    padding: 0 14px !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 8px !important;
    background-color: #ffffff !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    color: #0f172a !important;
    cursor: pointer !important;
    outline: none !important;
    appearance: auto !important; /* Ponechá šípku roletky */
}

.sem-registration-form select.sem-room-type:focus {
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15) !important;
}

/* Sekcia pre Osobu č. 2 */
.sem-person2 {
    margin-top: 20px !important;
    padding: 20px !important;
    background: #ffffff !important;
    border-radius: 10px !important;
    border: 1px dashed #93c5fd !important;
}

.sem-person2 h4 {
    margin: 0 0 12px 0 !important;
    color: #1d4ed8 !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}

/* GDPR Checkbox */
.sem-gdpr-wrapper {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-top: 20px !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
}

.sem-gdpr-wrapper input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    cursor: pointer !important;
    accent-color: #1d4ed8 !important;
}

.sem-gdpr-label {
    margin: 0 !important;
    font-weight: 500 !important;
    font-size: 0.88rem !important;
    color: #475569 !important;
    cursor: pointer !important;
}

/* Chyba pri nevypĺnení GDPR */
.sem-gdpr-wrapper.sem-error {
    border: 1px solid #d98200 !important;
    background: #fff3dc !important;
}

/* Tlačidlo Odoslať (Emerald zelená) */
.sem-submit-btn {
    background: #059669 !important;
    color: #ffffff !important; 
    padding: 12px 28px !important;
    border: none !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    cursor: pointer !important;
    margin-top: 22px !important;
    transition: background-color 0.2s ease, transform 0.15s ease !important;
    box-shadow: 0 4px 12px rgba(5, 150, 105, 0.25) !important;
}

.sem-submit-btn:hover {
    background: #047857 !important;
    transform: translateY(-1px) !important;  
}

.sem-form-message {
    margin-top: 16px !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
}

/* Responzivita pre mobil */
/* Globálne ošetrenie pre registračný formulár */
.sem-registration-form {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    grid-column: 1 / -1 !important;
    clear: both !important;
}

/* Zabezpečenie, že všetky vstupné polia, textarea a selecty nepretečú */
.sem-registration-form input[type="text"],
.sem-registration-form input[type="email"],
.sem-registration-form input[type="tel"],
.sem-registration-form select,
.sem-registration-form textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Ošetrenie pre flex/grid riadky vo formulári (napr. 2 polia vedľa seba) */
.sem-form-row,
.sem-form-group {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Špeciálne úpravy pre mobilné obrazovky */
@media (max-width: 768px) {
    .sem-registration-form {
        padding: 15px 12px !important; /* Zmenšený padding, aby na okrajoch displeja zostal priestor */
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Ak máš vo formulári viac stĺpcov vedľa sebe, na mobile ich dá pod seba */
    .sem-form-row {
        flex-direction: column !important;
        display: flex !important;
        gap: 10px !important;
    }

    /* GDPR checkbox a text */
    .sem-gdpr-wrapper {
        width: 100% !important;
        box-sizing: border-box !important;
        display: flex !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }

    /* Tlačidlo na odoslanie na 100% šírky pre pohodlné klikanie palcom */
    .sem-submit-btn {
        width: 100% !important;
        box-sizing: border-box !important;
        margin-top: 10px !important;
    }
}

/* ==========================================================================
   ŠTÝL PRE TLAČIDLÁ NÁHRADNÍKA A CLOSED STAV
   ========================================================================== */

/* Hlavné tlačidlo v karte (Náhradník) */
.sem-open-form-btn.sem-btn-substitute {
    background: #ea580c !important;
    box-shadow: 0 4px 14px rgba(234, 88, 12, 0.3) !important;
}

.sem-open-form-btn.sem-btn-substitute:hover {
    background: #c2410c !important;
}

/* Tlačidlo na odoslanie vo vnútri formulára (Náhradník) */
.sem-submit-btn.sem-btn-substitute {
    background: #ea580c !important;
    box-shadow: 0 4px 14px rgba(234, 88, 12, 0.25) !important;
}

.sem-submit-btn.sem-btn-substitute:hover {
    background: #c2410c !important;
}

/* Zakázané tlačidlo */
.sem-open-form-btn.sem-btn-disabled {
    background: #94a3b8 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* ==========================================================================
   VIZUÁLNA VALIDÁCIA FORMULÁROVÝCH POLÍ
   ========================================================================== */

.sem-registration-form input.sem-error,
.sem-registration-form select.sem-error,
.sem-registration-form textarea.sem-error {
    border: 3px solid #b91c1c !important;
    background-color: #fef2f2 !important;
    box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.15) !important;
    color: #991b1b !important;
}

.sem-registration-form input.sem-error:focus,
.sem-registration-form select.sem-error:focus,
.sem-registration-form textarea.sem-error:focus {
    border-color: #b91c1c !important;
    box-shadow: 0 0 0 4px rgba(185, 28, 28, 0.25) !important;
}

/* ==========================================================================
   HONEYPOT ANTI-SPAM TRAP
   ========================================================================== */

.sem-hp-field {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    z-index: -1 !important;
}


/* ==========================================================================
   3. DIZAJN KARTY PRESNE PODĽA OBRÁZKA (LAYOUT, POPIS, ROZBAĽOVACÍ BOX)
   ========================================================================== */

/* Celý blok karty */
.sem-event-block {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    margin-bottom: 24px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03) !important;
}

.sem-event-card-inner {
    padding: 0 !important;
}

/* Riadkové rozloženie hlavnej karty */
.sem-event-main-row {
    display: flex !important;
    align-items: stretch !important;
    gap: 24px !important;
    padding: 0 0 0 20px !important; /* Levý a horný/dolný padding prispôsobený */
    height: 180px !important; /* Fixná výška karty zabráni presahu tlačidla nadol */
    box-sizing: border-box !important;
}

/* 1. STŔPEC: Obrázok */
.sem-event-image-col {
    flex: 0 0 200px !important;
    width: 200px !important;
    height: 140px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    align-self: center !important;
}

.sem-event-image-col img.sem-event-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* 2. STŔPEC: Meta informácie */
.sem-event-meta-col {
    flex: 0 0 220px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 15px 0 !important;
}

.sem-event-title {
    margin: 0 0 10px 0 !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    line-height: 1.3 !important;
}

.sem-event-info p {
    margin: 4px 0 !important;
    font-size: 0.88rem !important;
    color: #475569 !important;
}

/* 3. STŔPEC: Popis v karte (Orezaný na 5 riadkov) */
.sem-event-desc-col {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    /* mierne odsadenie zľava a sprava */
    padding: 15px 20px 15px 12px !important;

    /* toto je najdôležitejšie */
    min-width: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.sem-desc-heading {
    margin: 0 0 6px 0 !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #2563eb !important;
}

/* Orezanie textu presne na 5 riadkov */
.sem-event-description-clamp {
    font-size: 0.88rem !important;
    line-height: 1.45 !important;
    color: #475569 !important;

    display: -webkit-box !important;
    -webkit-line-clamp: 5 !important;
    -webkit-box-orient: vertical !important;

    overflow: hidden !important;

    /* správne zalamovanie textu */
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;

    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Tlačidlo "Zobraziť celý popis v" */
.sem-toggle-desc-btn {
    margin-top: 10px !important;
    align-self: flex-start !important;
    background: #ffffff !important;
    border: 1px solid #bfdbfe !important;
    color: #2563eb !important;
    padding: 6px 16px !important;
    border-radius: 6px !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.sem-toggle-desc-btn:hover {
    background: #eff6ff !important;
    border-color: #3b82f6 !important;
}

.sem-toggle-desc-btn .sem-arrow {
    font-size: 0.8rem !important;
    margin-left: 4px !important;
}

/* 4. STŔPEC: Pravé veľké tlačidlo (Zelený stĺpec) - viazaný výhradne na výšku 180px */
.sem-event-action-col {
    flex: 0 0 160px !important;
    height: 100% !important;
    display: flex !important;
}

.sem-open-form-btn {
    width: 100% !important;
    height: 100% !important;
    background: #059669 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 0 12px 12px 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    padding: 16px !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease !important;
    text-align: center !important;
}

.sem-open-form-btn:hover {
    background: #047857 !important;
}

.sem-btn-icon svg {
    width: 28px !important;
    height: 28px !important;
    stroke: #ffffff !important;
}

.sem-btn-text {
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}


/* ==========================================================================
   4. SPODNÝ ROZBAĽOVACÍ BOX PRE CELÝ POPIS (POD KARTOU)
   ========================================================================== */

/* Posunutý nižšie pod tlačidlo, aby zanikol efekt prekrývania rámečku */
/* Rozbalený celý popis - roztiahnutie na 100% šírky */
/* Globálne ošetrenie pre rozbalený popis */
.sem-full-desc-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    grid-column: 1 / -1 !important;
    clear: both !important;
        margin: 1rem !important; /* Odsadenie od okrajov */

    
    /* Zabráni pretekaniu prvku doprava */
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
}

/* Hlavička rozbaleného popisu (s tlačidlom ✕) */
.sem-full-desc-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Vnútorné telo s textom popisu */
.sem-full-desc-body {
    width: 100% !important;
    max-width: 100% !important;
	padding: 2rem !important;
    box-sizing: border-box !important;
    
    /* Vynúti zalamovanie dlhých slov, odkazov a textu */
    overflow-wrap: break-word !important;
    word-break: break-word !important;
}

/* Špeciálne ošetrenie pre mobilné obrazovky */
@media (max-width: 768px) {
    .sem-full-desc-wrapper {
        padding: 12px !important; /* Menší padding, aby neukrajoval z priestoru */
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Ak sú v popise vložené tabuľky alebo obrázky z WordPressu, zmenšíme ich */
    .sem-full-desc-body img,
    .sem-full-desc-body table {
        max-width: 100% !important;
        height: auto !important;
    }
}

.sem-full-desc-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 12px !important;
}

.sem-full-desc-header h4 {
    margin-left: 2rem !important;   
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #2563eb !important;
}

/* Zväčšené tlačidlo krížika ✕ pre seniorov */
.sem-close-desc-btn {
    background: #f1f5f9 !important;
    border: 2px solid #cbd5e1 !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 8px !important;
    font-size: 22px !important;
    font-weight: bold !important;
    color: #334155 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

.sem-close-desc-btn:hover {
    background: #e2e8f0 !important;
    color: #0f172a !important;
    border-color: #94a3b8 !important;
}

.sem-full-desc-body {
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
    color: #334155 !important;
}


/* ==========================================================================
   5. RESPONZIVITA (MOBILNÉ ZARIADENIA)
   ========================================================================== */

@media (max-width: 900px) {
    .sem-event-main-row {
        flex-direction: column !important;
        height: auto !important;
        padding: 16px !important;
    }

    .sem-event-image-col {
        width: 100% !important;
        height: 180px !important;
        flex: none !important;
    }

    .sem-event-meta-col,
    .sem-event-desc-col {
        flex: none !important;
        width: 100% !important;
        padding: 0 !important;
    }

    .sem-event-action-col {
        margin: 10px 0 0 0 !important;
        width: 100% !important;
        height: auto !important;
    }

    .sem-open-form-btn {
        min-height: 50px !important;
        border-radius: 8px !important;
        flex-direction: row !important;
    }
}

/* ==========================================================================
   FIX PRE SELECT A TYP IZBY (ČISTÝ NATÍVNY DROPDOWN)
   ========================================================================== */

/* Hlavný Select box */
.sem-registration-form select,
.sem-registration-form select.sem-room-type {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 48px !important; /* Dostatok miesta pre výšku bez prerastania */
    padding: 0 16px !important;
    margin: 8px 0 16px 0 !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 8px !important;
    background-color: #ffffff !important;
    font-size: 0.98rem !important;
    font-weight: 500 !important;
    color: #0f172a !important;
    cursor: pointer !important;
    outline: none !important;
    box-sizing: border-box !important;
    
    /* Vynúti zobrazenie natívnej rozbalovacej šípky */
    appearance: auto !important;
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
}

.sem-registration-form select:focus,
.sem-registration-form select.sem-room-type:focus {
    border-color: #2563eb !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
}

/* Štýlovanie jednotlivých Možností (Option) */
.sem-registration-form select option {
    padding: 10px 14px !important;
    font-size: 0.95rem !important;
    color: #0f172a !important;
    background-color: #ffffff !important;
}