/* =====================================
   General Settings & Container
===================================== */
.nortic-calendar-container {
  max-width: 1300px;
  margin: 20px auto;
  color: #333;
  min-height: 600px;
}

.nortic-single-organizer {
  background:#fff;
  border-radius:10px;
  border:3px solid #f0c759;
  padding:2rem;
}

/* =====================================
   Calendar Header & Custom Title
===================================== */
#nortic-custom-header {
  font-size: 2em !important;
  text-transform: uppercase !important;
}

.nortic-calendar-header {
  text-align: center;
  font-size: 2rem;
  margin: 20px 0;
}

.nortic-list-header {
  margin: 0;
  padding: 10px 20px;
  background: #2c57a6; 
  color: #fff !important;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  font-size: 1.2rem !important;
}

/* =====================================
   Split Layout - Left/Right
===================================== */
#nortic-calendar-split {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.nortic-left-pane {
  flex: 1;
}

.nortic-right-pane {
  flex: 1;
  position: relative;
  margin-top: 80px;
  flex-basis: calc(40% - 10px);
}

/* =====================================
   Left Calendar Specific Rules
===================================== */
#nortic-calendar-left {
  min-width: 300px;
  flex-basis: calc(60% - 10px);
}

#nortic-calendar-left .fc-event.fc-event-start {
  display: block;
  text-align: right;
}

#nortic-calendar-left th.fc-col-header-cell {
  background: #2c57a6;
}

#nortic-calendar-left th.fc-col-header-cell a {
  color: #fff;
}

/* =====================================
   FullCalendar DayGrid Overrides
===================================== */
.fc-daygrid-day-number {
  font-weight: bold;
  font-size: 1rem;
}

.nortic-day-time {
  display: block;
  font-size: 0.8rem;
  color: #333; /* time text color */
}

/* =====================================
   Event Indicator - Red Dot
===================================== */
.nortic-has-event .fc-daygrid-day-top {
  position: relative;
}

.nortic-has-event .fc-daygrid-day-top::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  background: red;
  border-radius: 50%;
  position: absolute;
  top: 5px;
  right: 5px;
}

/* =====================================
   Highlighted Day & Today
===================================== */
.fc-daygrid-day.fc-day-today {
  background-color: #e6ebf1 !important;
}

.fc-daygrid-day.fc-day-today:not(.fc-day-selected) {
  background-color: transparent !important;
}

.fc-day-selected {
  background-color: #e6ebf1 !important; /* Selected day color */
}

.fc-day {
  position: relative;
  cursor: pointer;
}

.fc-daygrid-dot-event:hover {
  background-color: transparent !important;
}

/* =====================================
   Toolbar & Buttons (FullCalendar)
===================================== */
.fc-toolbar {
  display: flex;
  margin-bottom: 15px;
  justify-content: space-between;
  align-items: center;
}

.fc-button {
  background-color: #2c57a6;
  border: none;
  color: #fff;
  padding: 5px 10px;
  margin: 0 3px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.3s;
}

.fc-button:hover {
  background-color: #1f3b72;
}

.fc-toolbar-title {
  text-transform: uppercase !important;
  color: #333;
}

/* =====================================
   FullCalendar Month View Container
===================================== */
.nortic-calendar-container .fc-daygrid.fc-dayGridMonth-view.fc-view {
  border: 0 !important;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  overflow: hidden;
}

/* =====================================
   Listview Settings
===================================== */
.nortic-list-animate {
  transition: max-height 0.4s ease, opacity 0.4s ease;
}

.nortic-list-item {
  display: flex;
  flex-grow: 1;
  flex-direction: row;
  align-items: center;
  background: #fff;
  margin-bottom: 15px;
  border-bottom: 1px solid #ddd;
  padding: 10px;
  cursor: pointer;
  transition: background 0.2s;
}

.nortic-list-item img {
  position: relative;
}

.nortic-list-item .badge {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 900;
  background: #ca4943;
  display: inline;
  padding: 3px 5px;
  color: #fff;
  position: absolute;
  z-index: 1;
}

.nortic-list-item:last-of-type {
  margin-bottom: 0;
}

.nortic-list-item:hover {
  background: #f0f4fa;
}

.nortic-list-img img {
  width: 100px;
  height: auto;
  border-radius: 4px;
  margin-right: 10px;
}

.nortic-list-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
}

.nortic-list-heading {
  display: flex;
  flex-direction: column;
}

.nortic-list-heading h3,
.nortic-carousel-content h3 {
  font-size: 1.5rem !important;
  margin-bottom: 10px;
  line-height: 1.1em !important;
}

.nortic-list-time {
  font-size: 1rem;
  color: #333;  
  vertical-align: middle;
  margin-bottom: 5px;
  font-family: var(--h3_typography-font-family);
}

.nortic-list-time i {
  margin-right: 5px;
}

.book-gig-container .nortic-list-price {
  display: none;
}

.nortic-list-price,
.nortic-list-address {
  margin: 3px 0;
  font-size: 0.95rem;
  margin-bottom: 10px !important;
}

.nortic-book-btn {
  padding: 9px 15px;
  font-weight: 500 !important;
}

.nortic-book-btn:hover {
  background: #a83636 !important;
  color: #fff !important;
}

.fc-list-table .fc-list-day,
.fc-list-event-graphic,
.fc-list-event-time {
  display: none;
}

.nortic-calendar-container .fc-list-event-title {
  display: flex !important;
  padding: 0 !important;
  border: 0;
}

.nortic-calendar-container .fc .fc-list-event:hover td {
  background: transparent !important;
}

/* =====================================
   Loader & Skeleton Components
===================================== */
.nortic-loader {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  justify-content: center;
}

.nortic-loader-left {
  width: 60%;
}

.skeleton-calendar-header {
  width: 100%;
  height: 40px;
  background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
  background-size: 200% 100%;
  border-radius: 4px;
  margin-bottom: 10px;
  animation: shimmer 1.5s infinite linear;
}

.skeleton-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 5px;
}

.skeleton-calendar-day {
  width: 100%;
  height: 60px;
  background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
  background-size: 200% 100%;
  border-radius: 4px;
  animation: shimmer 1.5s infinite linear;
}

.nortic-loader-right {
  width: 40%;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.skeleton-list-item {
  width: 100%;
  height: 50px;
  background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
  background-size: 200% 100%;
  border-radius: 4px;
  animation: shimmer 1.5s infinite linear;
}

.nortic-carousel-loader {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}

.skeleton-carousel-grid {
  display: flex;
  gap: 20px;
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding-inline: 10px;
}

.skeleton-carousel-item {
  width: calc(100% / 3);
  height: 500px;
  background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite linear;
  border-radius: 4px;
}

.nortic-carousel-container.hidden {
  visibility: hidden;
  opacity: 0;
  height: 0;
  overflow: hidden;
}

@keyframes shimmer {
  0% { background-position: -200px 0; }
  100% { background-position: 200px 0; }
}

.hidden {
  visibility: hidden !important;
  opacity: 0;
}

.display-none {
  display: none !important;
}

/* =====================================
   Other Elements
===================================== */
.has-events::after {
  content: '';
  width: 6px;
  height: 6px;
  background-color: red;
  border-radius: 50%;
  margin: 2px auto 0;
  position: absolute;
  left: 5px;
  top: 5px;
}

/* =====================================
   Carousel
===================================== */
.nortic-carousel-container {
  margin: 30px auto;
  max-width: 1200px;
  cursor: grab;
}

.nortic-carousel-item {
  background: #fff;
  color: #333;
  margin: 0 10px;
  text-align: center;
  border: 1px solid #ddd;
  border-radius: 6px;
}

.carousel-event-time,
.carousel-event-price,
.carousel-event-address {
  margin-bottom: 10px;
  font-size: 15px;
}

.nortic-carousel-image {
  max-height: 300px;
  overflow: hidden;
}

.nortic-carousel-image img {
  max-width: 100%;
  height: auto;
  margin-bottom: 10px;  
  max-height: 400px;
  /* object-fit: cover; */
  width: 100%;
}

.nortic-carousel-content {
  padding: 15px;
}

.nortic-carousel-content h3 {
  font-size: 1.5rem;
  margin-bottom: 10px;
  line-height: 1.5rem;
  min-height: 3rem;
}

.nortic-carousel-book-btn {
  display: inline-block;
  margin-top: 10px;
  background: #2c57a6;
  color: #fff !important;
  padding: 8px 15px;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.3s;
  width: 100%;
}

.nortic-carousel-book-btn:hover {
  background: #1f3b72;
}

.slick-dots li button:before {
  font-size: 10px !important;
}

/* =====================================
   Responsive Design (max-width: 768px)
===================================== */
@media screen and (max-width: 768px) {
  #nortic-calendar-left .fc-header-toolbar .fc-today-button {
    display: none;
  }
  /* #nortic-calendar-split {
    flex-direction: column-reverse;
  } */
  #nortic-calendar-split .nortic-right-pane {
    margin-top: 0;
  }
  #nortic-calendar-split #nortic-calendar-left .fc-daygrid-day-events {
    display: none;
  }
  #nortic-calendar-split #nortic-calendar-left .fc-day {
    padding-bottom: 10px;
  }
  .nortic-loader {
    flex-wrap: wrap;
  }
  .nortic-loader-left,
  .nortic-loader-right {
    width: 100%;
  }
  /* .nortic-loader-left {
    display: none;
  } */
  .skeleton-carousel-item {
    width: 100%;
  }
  .skeleton-carousel-item:not(:first-of-type) {
    display: none;
  }
}

.nortic-modal {
  display: none;              /* hidden by default */
  position: fixed;
  z-index: 999999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.5);
  justify-content: center;
  align-items: center;
}

.nortic-modal-content {
  background: #fff;
  margin: 0 auto;
  padding: 20px;
  border-radius: 8px;
  width: 90%;
  max-width: 600px;
  position: relative;  
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

.nortic-modal-content h2 {
  font-size: 2.2rem;
  margin-bottom: 0;
}
.nortic-modal-content p {
  color: #333;
}
.nortic-modal-content p.event-date {  
  margin-bottom: 5px;
  font-size: 17px;
}
.nortic-modal-content .booking-message { color: #333; }
.nortic-modal-content .modal-event-time {
  margin-top: 0;
  font-size: 17px;
}
.nortic-modal-content i {
  margin-right: 5px;
}
.nortic-modal-content p.event-date::first-letter {
  text-transform: uppercase;
}

.nortic-close {
  position: absolute;
  right: 10px;
  top: 10px;
  font-size: 40px;
  cursor: pointer;
  line-height: 22px;
  color: #333;
}

#nortic-free-ticket-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: #333;
}

#nortic-free-ticket-form .fc-button {
  padding: 10px 10px;
  text-transform: uppercase;
  font-family: 'Lilita One';
  font-size: 16px;
}

#nortic-free-ticket-form label {
  font-weight: 800;
  font-size: 16px;
}

#nortic-free-ticket-form input[type="text"],
#nortic-free-ticket-form input[type="email"],
#nortic-free-ticket-form input[type="number"],
#nortic-free-ticket-form input[type="phone"] {
  color: #333;
  width: 100%;
  padding: 6px;
  box-sizing: border-box;
  background: transparent;
  border-radius: 8px;
  height: 40px;
  border: 1px solid;
}

.nortic-message-overlay {
  position: fixed;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99999;
  padding: 15px 20px;
  max-width: 500px;
  border-radius: 4px;
  text-align: center;
  font-size: 16px;
  display: none; /* start hidden */
}

.nortic-message-success {
  background-color: #d4edda;
  color: #155724;
  border: 2px solid #c3e6cb;
}

.nortic-message-error {
  background-color: #f8d7da;
  color: #721c24;
  border: 2px solid #f5c6cb;
}

.city-filter-container {
  display: flex;
  margin-bottom: 10px;
}

.city-filter-container select.nortic-city-filter {
  padding: 0 20px;
  border-radius: 10px;
  background: transparent;
  color: #333;
  width: 100%;
}
