/* =================================== */
/* 1. ΓΕΝΙΚΑ ΣΤΥΛ                      */
/* =================================== */
body {
    color: #212529;
}


.preserve-whitespace {
    white-space: pre-wrap;
}

.form-label .text-danger {
    font-size: 0.9em;
    vertical-align: super;
}

/* =================================== */
/* FLATPICKR CUSTOM THEME              */
/* =================================== */
.flatpickr-input.form-control,
.flatpickr-input.form-control-airbnb {
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z'/%3E%3C/svg%3E") no-repeat right 10px center / 14px;
    cursor: pointer;
}
.flatpickr-calendar {
    border: none !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 30px rgba(0,0,0,.15) !important;
    font-family: inherit !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
    background: #007BFF !important;
    border-color: #007BFF !important;
}
.flatpickr-day:hover {
    background: #e8f0fe !important;
}
.flatpickr-day.today {
    border-color: #007BFF !important;
}
.flatpickr-months .flatpickr-month,
.flatpickr-weekdays,
span.flatpickr-weekday {
    background: #0D2C54 !important;
    color: #fff !important;
    border-radius: 12px 12px 0 0;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    color: #fff !important;
}
.flatpickr-prev-month svg,
.flatpickr-next-month svg { fill: #fff !important; }

/* =================================== */
/* 2. NAVBAR & FOOTER                  */
/* =================================== */
#main-navbar {
    background-color: #0D2C54;
    border-bottom: 1px solid rgba(255,255,255,.1);
    transition: box-shadow 0.3s ease;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}
#main-navbar.scrolled {
    box-shadow: 0 2px 16px rgba(0,0,0,.25);
}

.navbar-brand span {
    letter-spacing: -.3px;
    color: #ffffff;
}
.site-logo-img {
    height: 48px;
    width: auto;
    display: block;
}

#main-navbar .navbar-nav .nav-link {
    color: rgba(255,255,255,.85);
    padding: 0.45rem 0.85rem;
    border-radius: 8px;
    font-size: .9rem;
    font-weight: 500;
    transition: background-color 0.15s ease, color 0.15s ease;
}
#main-navbar .navbar-nav .nav-link:hover {
    color: #ffffff;
    background-color: rgba(255,255,255,.12);
}
#main-navbar .navbar-nav .nav-link.active {
    color: #ffffff;
    background-color: rgba(255,255,255,.18);
    font-weight: 600;
}

.navbar-avatar {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: #0D2C54;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .85rem;
}

.dropdown-menu-dark {
    background-color: #ffffff !important;
    border: 1px solid #e8e8e8 !important;
    border-radius: 10px !important;
    padding: .5rem !important;
    min-width: 200px;
    box-shadow: 0 4px 16px rgba(0,0,0,.10) !important;
}
.dropdown-menu-dark .dropdown-item {
    border-radius: 6px;
    padding: .5rem .85rem;
    font-size: .88rem;
    color: #0D2C54 !important;
    transition: background .15s;
}
.dropdown-menu-dark .dropdown-item:hover,
.dropdown-menu-dark .dropdown-item.active {
    background-color: rgba(13,44,84,.08) !important;
    color: #0D2C54 !important;
}
.dropdown-menu-dark .dropdown-item.text-danger {
    color: #ff7070 !important;
}
.dropdown-menu-dark .dropdown-item.text-danger:hover {
    background-color: rgba(255,80,80,.15) !important;
}

.footer a, .footer .text-white-50 {
    color: rgba(255, 255, 255, 0.7) !important;
    transition: color 0.2s ease;
}
.footer a:hover {
    color: white !important;
}

/* =================================== */
/* 3. SEARCH BAR                       */
/* =================================== */
.search-bar-wrap { max-width: 100%; }

.search-bar {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 14px;
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
    overflow: hidden;
    transition: box-shadow .2s, border-color .2s;
}
.search-bar:focus-within {
    border-color: #b0c4e0;
    box-shadow: 0 4px 20px rgba(0,82,204,.10);
}

.sb-field {
    flex: 1 1 100px;
    min-width: 0;
    padding: 10px 16px;
}
.sb-field--wide { flex: 1.8 1 140px; }

.sb-label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #999;
    margin-bottom: 2px;
    white-space: nowrap;
}

.sb-input {
    display: block;
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-size: .875rem;
    color: #222;
    padding: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sb-input::placeholder { color: #bbb; }
.sb-input:disabled { color: #ccc; cursor: not-allowed; }

/* Flatpickr altInput στο search bar */
.sb-field .flatpickr-input[readonly] { display: none !important; }
.sb-field .flatpickr-input + input {
    display: block; width: 100%;
    border: none; outline: none; background: transparent;
    font-size: .875rem; color: #222; padding: 0; cursor: pointer;
}
.sb-field .flatpickr-input + input::placeholder { color: #bbb; }

.sb-sep {
    width: 1px; height: 32px;
    background: #e8e8e8; flex-shrink: 0;
}

.sb-btn {
    background: #0D2C54; color: #fff; border: none;
    width: 52px; height: 52px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; cursor: pointer;
    transition: background .2s;
    border-radius: 0 13px 13px 0;
}
.sb-btn:hover { background: #1a4a7a; }

@media (max-width: 768px) {
    .search-bar { flex-direction: column; border-radius: 14px; }
    .sb-field { width: 100%; border-bottom: 1px solid #e8e8e8; }
    .sb-field:last-of-type { border-bottom: none; }
    .sb-sep { display: none; }
    .sb-btn { width: 100%; height: 44px; border-radius: 0 0 13px 13px; }
}

/* =================================== */
/* 4. EVENT CARDS & COMPONENTS         */
/* =================================== */
.event-card-img {
    height: 600px;
    object-fit: cover;
    background-color: #f8f9fa;
}

/* Event detail — full image with blurred bg for portrait photos */
.event-detail-img-wrapper {
    position: relative;
    overflow: hidden;
    height: 600px;
    background: #111;
    display: flex;
    align-items: center;
    justify-content: center;
}
.event-detail-img-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: blur(18px) brightness(0.45);
    transform: scale(1.1);
}
.event-detail-img-main {
    position: relative;
    max-width: 100%;
    max-height: 600px;
    object-fit: contain;
    z-index: 1;
}
.badge.bg-info {
    background-color: #6C757D !important;
    color: white !important;
}

/* =================================== */
/* 5. PROMOTION MODAL                  */
/* =================================== */
.promo-slot label {
    display: block;
    width: 100%;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}
.promo-slot:has(input:checked) {
    background-color: #e0f2fe;
    border-color: #0d6efd;
    transform: scale(1.05);
}

/* =================================== */
/* 6. CALENDAR & SOCIAL BUTTONS      */
/* =================================== */
.btn-social {
    color: white !important;
    text-decoration: none;
    border: none;
}
.btn-facebook { background-color: #3b5998; }
.btn-facebook:hover { background-color: #304a80; }
.btn-twitter { background-color: #1da1f2; }
.btn-twitter:hover { background-color: #0c85d0; }
.btn-viber { background-color: #665cac; }
.btn-viber:hover { background-color: #524a8e; }
.btn-email { background-color: #777777; }
.btn-email:hover { background-color: #5e5e5e; }

.calendar table {
    table-layout: fixed;
    width: 100%;
}
.calendar thead th {
    color: #007BFF; /* Ένα ωραίο μπλε χρώμα */
    font-weight: 600;  /* Λίγο πιο έντονα γράμματα */
}

.calendar .day {
    height: 120px;
    vertical-align: top;
    padding: 8px;
    overflow-y: auto;
}
.calendar .day.other-month {
    background-color: #f9f8fa;
}
.calendar .day-number {
    font-weight: bold;
    font-size: 1.1em;
}
.calendar .events {
    font-size: 0.8em;
    line-height: 1.4;
}
.calendar .event-link {
    display: block;
    white-space: normal;     /* Επιτρέπει στο κείμενο να αλλάζει γραμμή */
    word-wrap: break-word; /* Βοηθά στο σπάσιμο μακριών λέξεων */
    margin-top: 4px;
    text-decoration: none;
    background-color: #e9f5ff;
    padding: 2px 5px;
    border-radius: 4px;
}

.calendar .event-link:hover {
    background-color: #007BFF;
    color: white;
}

/* =================================== */
/* 7. RESPONSIVE DESIGN (for mobile)   */
/* =================================== */
