@import url("https://fonts.googleapis.com/css2?family=Fredoka:wght@600&display=swap");

:root{
  --field-label-h: 22px;   /* line-height of the label text */
  --field-label-gap: 8px;  /* spacing below the label */
  
  --card-bg: #ffffff;
  --card-border: rgba(0,0,0,.06);
  --card-shadow: 0 6px 16px rgba(0,0,0,.08);
  --accent: #007aac;
  --accent-2: #10b981;            /* green for best price */
  --muted: #64748b;
  --pill-bg: #eef6ff;
  --pill-bd: #d8eaff;
  --radius: 16px;
  
  --tabs-h: 52px;          /* tab height */
  --tabs-x: 16px;          /* left padding from edge */
  --tabs-overlap: 52px;
  
  --search-btn-h: 36px;   /* keep height */
  --search-btn-x: 20px;
  --search-btn-rad: 6px;  /* a bit sharper */

/*Took from hotels.css*/
--field-label-h: 22px;   /* line-height of the label text */
  --field-label-gap: 8px;  /* spacing below the label */
  
  --card-bg: #ffffff;
  --card-border: rgba(0,0,0,.06);
  --card-shadow: 0 6px 16px rgba(0,0,0,.08);
  --accent: #007aac;
  --accent-2: #10b981;            /* green for best price */
  --muted: #64748b;
  --pill-bg: #eef6ff;
  --pill-bd: #d8eaff;
  --radius: 16px;
  
  --tabs-h: 52px;          /* tab height */
  --tabs-x: 16px;          /* left padding from edge */
  --tabs-overlap: 52px;
  
  --search-btn-h: 36px;   /* keep height */
  --search-btn-x: 20px;
  --search-btn-rad: 6px;  /* a bit sharper */
  
  
  --brand-1:#40E0D0;
  --brand-2:#007AA0;
  --ink:#0f172a;
  --ink-soft:#475569;
  --muted:#eef2f6;
  --card:#ffffff;
  --ring:rgba(64,224,208,.25);
  --shadow:0 10px 24px rgba(2,20,34,.12);
  --radius:14px;
  --track: #E6EEF5;
  
  --panel:#ffffff;
  --panel-2:#f7fafc;
  
  --skyinn-gradient: linear-gradient(135deg, #44d5cc 0%, #007aa0 100%);
}

/* Basic Styles */
html {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
}

*, *:before, *:after {
    box-sizing: inherit;
}

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    font-size: 18px;
    color: #333;
    background-color: #fff;
    transition: padding-top 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    font-size: 18px;
    color: #333;
    background-color: #fff;
    margin-top: 17%;
}

.hidden {
    display: none;
}

/* Header Styles */
/* --- Premium Header Styles --- */
/* Διόρθωση Layout Header */
.premium-header {
    border-bottom: 1px solid #f1f5f9;
    padding: 15px 0;
    position: fixed;
    top: 0;
    z-index: 1000;
    width: 100%;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    
    /*Background*/
    background-image: url('https://images.pexels.com/photos/753626/pexels-photo-753626.jpeg');
    background-size: cover;
    background-position: center 67%;
    background-repeat: no-repeat;
    background-image: linear-gradient(135deg, rgba(0, 122, 160, 0.8) 0%, rgba(0, 206, 209, 0.4) 100%), url('https://images.pexels.com/photos/753626/pexels-photo-753626.jpeg');
}

/* Όταν η μπάρα "ανοίγει" ενώ είμαστε κάτω, θέλουμε να φαίνεται καθαρά */
.premium-header:not(.scrolled) {
    padding: 25px 0;
}

/* Όταν ο χρήστης σκρολάρει, προσθέτουμε αυτή την κλάση μέσω JS */
/* Μικραίνουμε την κάψουλα αναζήτησης για περισσότερο χώρο */
.premium-header.scrolled .full-search-container {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    transform: scale(0.8); /* Μικραίνει κι άλλο */
    margin-top: 10px; /* Την ανεβάζουμε για να κεντραριστεί */
    height: 50px !important; /* Λεπταίνουμε την ίδια την κάψουλα */
    border-radius: 25px; /* Πιο στρογγυλή */
}

/* 1. Η κάψουλα στην αρχική έχει περισσότερο βάθος */
.premium-header:not(.scrolled) .full-search-container {
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.5);
    background: #ffffff;
    height: 72px; /* Λίγο πιο πλούσια στην αρχική */
}

/* 3. Μέσα στην κάψουλα: Κρύβουμε τα Label για να κερδίσουμε χώρο */
.premium-header.scrolled .search-field label {
    display: none !important; /* Εξαφανίζουμε τα "ΠΡΟΟΡΙΣΜΟΣ", "ΗΜΕΡΟΜΗΝΙΕΣ" */
}

/* 2. Τα κείμενα γίνονται πιο "Premium" (Darker Values, Lighter Labels) */
.premium-header:not(.scrolled) .premium-field input {
    color: #0f172a !important; /* Πολύ σκούρο μπλε/μαύρο */
    font-weight: 700 !important;
    font-size: 16px !important;
}

.premium-header:not(.scrolled) .premium-field label {
    color: #94a3b8 !important; /* Απαλό γκρι */
    font-size: 11px !important;
    letter-spacing: 0.8px;
}

/* 3. Το κουμπί αναζήτησης γίνεται πιο επιβλητικό */
.premium-header:not(.scrolled) .premium-search-btn {
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, #00ced1 0%, #007aa0 100%);
    box-shadow: 0 4px 15px rgba(0, 122, 160, 0.3);
}

.premium-header.scrolled {
    padding: 2px 0 !important; /* Σχεδόν μηδενικό padding */
    height: 90px !important; /* Ορίζουμε σταθερό, πολύ μικρό ύψος */
    background: linear-gradient(135deg, #4ed9d1 0%, #3bbdb4 100%);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* 4. Μέσα στην κάψουλα: Μικραίνουμε τα Inputs */
.premium-header.scrolled .search-field input,
.premium-header.scrolled .guest-summary,
.premium-header.scrolled .date-range-display {
    font-size: 13px !important; /* Μικρότερη γραμματοσειρά */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    height: 100%;
}

/* Αν το λογότυπο είναι μέσα σε λευκό κουτί, το μικραίνουμε κι αυτό */
.premium-header.scrolled .brand-premium img,
.premium-header.scrolled .brand-logo-svg {
    width: 35px !important; /* Σχεδόν Icon size */
    height: 35px !important;
    transition: all 0.4s ease;
}

.premium-header.scrolled .search-type-tabs {
    transform: scale(0.75);
    margin-bottom: -15px;
    opacity: 0.8;
}

.header-container {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
}

/* Tabs Styling */
.center-side-search {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
}

/* Logo */
.brand-premium {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: #0f172a;
    font-weight: 800;
    font-size: 22px;
}

.brand-logo-svg {
    fill: #ffffff !important;
}

/* Κάνουμε το κείμενο και το εικονίδιο καθαρό λευκό */
.brand-logo-svg .logo-text,
.brand-logo-svg .logo-icon-path {
    /* Χρησιμοποιούμε το gradient που υπάρχει ήδη μέσα στο SVG σου */
    fill: #3bc9c6 !important;
}
/* Κάνουμε το κείμενο SkyInn Λευκό */
/* === ΛΕΥΚΟ ΚΕΙΜΕΝΟ === */
.brand-text {
    color: #ffffff !important; /* Λευκό κείμενο, !important για να "κερδίσει" τυχόν inline styles */
    font-size: 24px;
    font-weight: 800;
    margin-left: 8px;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1); /* Διακριτική σκιά για βάθος */
}

/* Full Search Pill Layout */
.full-search-pill {
    display: flex;
    align-items: center;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 40px;
    padding: 6px 8px 6px 20px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    min-width: 700px;
}

.full-search-pill:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.1);
    border-color: #cbd5e1;
}

/* Premium Full Search Container Fixed Width */
.full-search-container {
    transition: transform 0.4s ease, width 0.4s ease, border-radius 0.4s ease, background 0.3s ease;
    display: flex;
    align-items: center;
    background: #ffffff;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
    border: none;
    border-radius: 40px;
    padding: 6px 8px 6px 20px;
    width: 100%;
    max-width: 850px;
    height: 60px;
}

.hotels-only {
        display: none !important;
    }

.search-type-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
    background: rgba(255, 255, 255, 0.2);
    padding: 4px;
    border-radius: 30px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
}

.tab-btn {
    background: transparent;
    border: none;
    padding: 8px 24px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 700;
    color: #ffffff;
    cursor: pointer;
    transition: all 0.2s ease;
}

.tab-btn.active {
    background: #ffffff;
    color: #333;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.search-field {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 4px 16px;
    cursor: pointer;
}

.search-field label {
    font-size: 10px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    color: #1e293b !important;
    margin-bottom: 2px !important;
    letter-spacing: 0.5px;
}

.search-field input, .guest-picker-btn {
    border: none !important;
    background: transparent !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #64748b !important;
    padding: 0 !important;
    width: 100%;
    outline: none !important;
}

.swap-locations-btn {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    color: #007aa0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    margin: 0 -15px; /* Το τραβάει πάνω στο διαχωριστικό */
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.swap-locations-btn:hover {
    background: #f8fafc;
    transform: rotate(180deg); /* Εφέ περιστροφής στο hover */
    border-color: #007aa0;
}

.swap-locations-btn i {
    font-size: 14px;
}

/* Εξαφάνιση όταν είμαστε στα ξενοδοχεία */
.swap-locations-btn[style*="display: none"] {
    display: none !important;
}

/* Προσθήκη σχετικής θέσης στο γονικό για να "κλειδώσει" το dropdown */
.search-field.guests-field {
    position: relative !important;
}

.search-summary-pill {
    display: flex;
    align-items: center;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    padding: 8px 16px;
    border-radius: 40px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    max-width: 400px;
    margin: 0 auto;
}

.autocomplete-items {
    position: absolute;
    top: calc(100% + 15px); /* Ίδια απόσταση με το guest dropdown */
    left: 0;
    width: 350px; /* Λίγο πιο φαρδύ από το πεδίο για άνεση */
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    z-index: 2000;
    border: 1px solid #f1f5f9;
    overflow: hidden; /* Για να μην εξέχουν οι γωνίες των items */
    padding: 8px 0;
}

.autocomplete-item {
    padding: 12px 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: background 0.2s ease;
}

.autocomplete-item:hover {
    background: #f8fafc;
}

.autocomplete-item i {
    color: #64748b;
    font-size: 16px;
}

.autocomplete-item .city-name {
    font-weight: 700;
    color: #1e293b;
    font-size: 14px;
}

.autocomplete-item .country-name {
    font-size: 12px;
    color: #94a3b8;
    margin-left: auto;
}

/* Αν δεν υπάρχουν αποτελέσματα */
.autocomplete-no-results {
    padding: 15px 20px;
    color: #94a3b8;
    font-size: 13px;
    text-align: center;
}

.premium-guest-dropdown {
    position: absolute;
    top: calc(100% + 10px); /* Ακριβώς κάτω από τη μπάρα */
    right: 0 !important;   /* Ευθυγράμμιση με τη δεξιά πλευρά της κάψουλας */
    left: auto !important;  /* Ακύρωση τυχόν αριστερής ευθυγράμμισης */
    width: 280px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    padding: 20px;
    z-index: 2000; /* Να είναι πάνω από όλα */
    border: 1px solid #f1f5f9;
}

.premium-apply-btn:active {
    transform: scale(0.98);
    background: #000; /* Γίνεται λίγο πιο σκούρο στο πάτημα */
}

.guest-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #f1f5f9;
}

.guest-row:last-of-type { border-bottom: none; }

.guest-label strong { display: block; font-size: 15px; color: #1e293b; }
.guest-label span { font-size: 12px; color: #64748b; }

.guest-controls {
    display: flex;
    align-items: center;
    gap: 15px;
}

.guest-controls .count {
    font-weight: 700;
    font-size: 15px;
    min-width: 20px;
    text-align: center;
}

.btn-minus, .btn-plus {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid #cbd5e1;
    background: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    transition: all 0.2s;
}

.btn-minus:hover, .btn-plus:hover {
    border-color: #007aa0;
    color: #007aa0;
}

.premium-apply-btn {
    width: 100%;
    background: #1e293b;
    color: #fff;
    border: none;
    padding: 10px;
    border-radius: 12px;
    margin-top: 15px;
    font-weight: 700;
    cursor: pointer;
}

.field-divider {
    width: 1px;
    height: 30px;
    background: #f1f5f9;
}

.search-circle-btn {
    width: 44px;
    height: 44px;
    background: #007aa0;
    color: white;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.search-circle-btn:hover {
    transform: scale(1.05);
    background: #006b8d;
}

/* Compact Pill */
.compact-pill {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 40px;
    padding: 8px 16px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    cursor: pointer;
    min-width: 320px;
}

.pill-icon { color: #007aa0; margin-right: 12px; }
.pill-title { display: block; font-size: 13px; font-weight: 700; color: #1e293b; }
.pill-sub { font-size: 11px; color: #64748b; }

.hidden { display: none !important; }
/* Premium Header Fixes */
.center-side-search { margin-bottom: 40px; display: flex; justify-content: center; }

.full-search-container {
    display: flex; align-items: center; background: #fff; border-radius: 40px;
    padding: 8px 10px 8px 20px; box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    width: 100%; max-width: 850px; position: relative; z-index: 1001;
}

.premium-field { flex: 1; display: flex; flex-direction: column; text-align: left; padding: 0 15px; cursor: pointer; }
.premium-field label { font-size: 11px; font-weight: 800; color: #111; text-transform: uppercase; margin-bottom: 4px; }
.premium-field input, .guest-picker-btn { border: none; background: transparent; font-size: 14px; color: #666; outline: none; padding: 0; width: 100%; text-align: left;}

.premium-divider { width: 1px; height: 35px; background: #eee; }

.premium-search-btn {
    width: 48px; height: 48px; border-radius: 50%; background: #007AA0;
    color: #fff; border: none; cursor: pointer; transition: 0.3s;
}

/* Autocomplete */
.autocomplete-items {
    position: absolute; top: 100%; left: 0; width: 100%; background: #fff;
    border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); z-index: 2000;
}
.autocomplete-item { padding: 12px; cursor: pointer; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid #f9f9f9;}
.autocomplete-item:hover { background: #f0f7ff; }

/* Guest Dropdown */
.premium-guest-dropdown {
    position: absolute; top: 70px; right: 0; width: 260px; background: #fff;
    border-radius: 15px; padding: 20px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); z-index: 2000;
}
.guest-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; font-weight: 600; }
.guest-controls { display: flex; align-items: center; gap: 10px; }
.btn-minus, .btn-plus { width: 30px; height: 30px; border-radius: 50%; border: 1px solid #ddd; background: #fff; cursor: pointer; }
.premium-apply-btn { width: 100%; padding: 10px; background: #111; color: #fff; border-radius: 10px; border: none; cursor: pointer; font-weight: 700; }

.search-pill-icon { color: #007aa0; margin-right: 12px; }
.search-pill-text { display: flex; flex-direction: column; text-align: left; }
.pill-destination { font-size: 13px; font-weight: 700; color: #111827; }
.pill-details { font-size: 11px; color: #6b7280; }

.hidden { display: none !important; }

/* Make the calendar wider to comfortably show 2 months side by side */
/* Customizing Flatpickr to match SkyInn Premium */
.flatpickr-calendar {
    box-shadow: 0 10px 30px rgba(0,0,0,0.15) !important;
    border-radius: 16px !important;
    border: 1px solid #f1f5f9 !important;
    margin-top: 10px !important;
}

.flatpickr-day.selected, 
.flatpickr-day.startRange, 
.flatpickr-day.endRange {
    background: #007aa0 !important; /* Το μπλε σου */
    border-color: #007aa0 !important;
}

.flatpickr-day.inRange {
    background: rgba(0, 122, 160, 0.1) !important;
    box-shadow: none !important;
}

.flatpickr-months .flatpickr-month {
    color: #1e293b !important;
    fill: #1e293b !important;
}

input[type="text"] {
    padding: 0.5rem;
    border: none;
    padding: 10px;
    border-radius: 5px;
    height: 100%;
    width: 100%;
    font-family: "Fredoka", sans-serif;
}

input[type="text"]:focus {
    outline: none;
}

input[type="text"]::placeholder {
    font-size: 20px;
}

input[type="text"] {
    font: inherit;
}

#nameFilter {
    border: 1px solid #ccc;
}

.search-label, .search-date-label {
    width: 100%;
    display: inline-block;
    border-radius: 25px;
}

.search-span, .search-date-span {
    font-size: 20px;
    color: #fff;
}

.additional-divs-container {
    justify-content: space-around; /* Adjusts space around the items */
    align-items: center; /* Centers items vertically */
    padding: 10px;
    margin: 3% auto;
    margin-bottom: 0;
    position: relative;
}

.additional-divs-container.hotels-additional{
    display: none;
}

#passenger-selection-popup {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    padding: 20px;
    margin-top: 1%;
    position: absolute;
    z-index: 10;
    width: 100%;
    left: 0;
    top: 100%;
}

#guest-selection-popup {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  padding: 20px;
  margin-top: 1%;
  position: absolute;
  z-index: 10;
  width: 100%;
  left: 0;
  top: 100%;

.passenger-counter {
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-left: 0;
    margin-left: 0;
}

.passenger-counter span {
    flex: 1;
}

.passenger-counter .decrease, .passenger-counter .increase {
    background-color: #f2f2f2;
    border: 1px solid #ccc;
    padding: 5px 10px;
    cursor: pointer;
}

.passenger-counter span, .passenger-counter .decrease, .passenger-counter .increase {
    margin: 0 5px;
}

.passenger-counter .decrease, .passenger-counter .increase {
    border-radius: 50%;
    border: 1px solid black;
    background-color: #fff;
}
}

.number {
    width: 30px;
    text-align: center;
    margin: 0 8px;
    flex-grow: 0;
}

.checkbox-container {
    display: flex;
    align-items: center;
    margin-top: 20px;
}

.ok-button {
    background-color: #FFA600;
    color: #fff;
    border: none;
    border-radius: 15%;
    padding: 10px 20px;
    text-align: center;
    display: block;
    margin-top: 10px;
    cursor: pointer;
    align-self: center;
}

.additional-div {
    background-color: #FFFFFF;
    padding: 10px 20px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 10px;
    flex-grow: 1;
    min-width: 0;
    position: relative;
    cursor: pointer;
}

.additional-div .div-text {
    margin-right: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 16px;
    color: #000;
}

.additional-div .caret {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    justify-content: center;
    display: flex;
}

.more-info {
    color: #fff;
}

.search-btn-txt {
    font-size: 15px;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
}

.search-btn-container_hotels {
    display: none;
    position: absolute;
    bottom: -7px; /* Adjust as needed to place the button half outside */
    right: 9%;
    transform: translateX(-50%);
    z-index: 1;
}

.search-btn-txt_hotels {
    font-size: 15px;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
}

.suggestion-item {
    display: flex;
    align-items: center;
    padding: 10px;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
}

.suggestion-item:hover {
    background-color: #f0f0f0;
}

.suggestion-item img {
    width: 24px;
    height: 24px;
    margin-right: 10px;
    border-radius: 50%;
}

.suggestion-item .suggestion-details {
    display: flex;
    flex-direction: column;
}

.suggestion-item .suggestion-name {
    font-weight: bold;
    font-size: 14px;
}

.suggestion-item .suggestion-info {
    font-size: 12px;
    color: #555;
}

.calendar-container{
    width: 50%; /* Example width; adjust as needed */
    margin: 0 auto; /* Centers the div horizontally */
}

.calendar {
    background-color: #fff;
    border-radius: 24px; /* Πιο στρογγυλεμένες γωνίες */
    padding: 40px;
    /* Soft shadow που δίνει βάθος χωρίς να "λερώνει" */
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.05);
    text-align: center;
    margin-top: 5%;
    font-family: "Fredoka", sans-serif;
    border: 1px solid rgba(0,0,0,0.03);
}

.calendar-title {
    font-size: 28px;
    font-weight: 800;
    color: #1e293b;
    margin-bottom: 8px;
}

.calendar-subtitle {
    color: #64748b;
    font-size: 16px;
    margin-bottom: 30px;
}

.calendar-detailed-title {
    display: none;
    margin-bottom: 5px;
}

.filter-container {
    background-color: #fff;
    padding: 20px;
    border-radius: 4px;
}

.input-group {
    margin-bottom: 10px;
    position: relative;
}

.input-group input[type="text"] {
    width: 100%;
    padding: 14px 18px;
    border: 2px solid #f1f5f9;
    background-color: #f8fafc;
    border-radius: 12px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.input-group input[type="text"]:focus {
    background-color: #fff;
    border-color: var(--accent);
    box-shadow: 0 0 0 4px rgba(0, 122, 160, 0.1);
}

.input-tag {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    padding: 4px 7px;
    border-radius: 4px;
    pointer-events: none; /* Prevents clicking on the tag */
}

.input-container-inner {
    display: flex;
  align-items: center;
  position: relative;
}

#calendar-origin-suggestions, #calendar-destination-suggestions {
    display: none;
}

/* Container for suggestions */
.suggestions {
  position: absolute;
  background-color: #fff;
  width: 100%;
  max-height: 200px;
  overflow-y: auto;
  z-index: 1000;
  
  border-radius: 12px;
    border: none;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    padding: 8px 0;
}

/* Each suggestion item */
.suggestion-item {
  padding: 8px 12px;
  cursor: pointer;
  border-bottom: 1px solid #eee;
  font-size: 14px;
  color: #333;
}

/* Remove border for the last item */
.suggestion-item:last-child {
  border-bottom: none;
}

/* Hover state */
.suggestion-item:hover {
  background-color: #f0f0f0;
}

.custom-checkbox {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.custom-checkbox input[type="checkbox"] {
    margin-right: 5px;
}

.checkbox-label {
    font-size: 14px;
    color: #333;
}

/* Fallback for browsers that don't support the pseudo-elements */
.slider-group input[type="range"] {
    -webkit-appearance: none;
    width: 100%;
    border-radius: 5px;
    cursor: pointer;
    height: 6px;
    background: #e2e8f0;
}

/* WebKit - Thumb */
.slider-group input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    border-radius: 50%;
    cursor: pointer;
    margin-top: -6px; /* Needed to align the thumb with the track */
    
    width: 24px;
    height: 24px;
    background: #fff;
    border: 2px solid var(--accent);
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: transform 0.2s ease;
}

/* WebKit - Track */
.slider-group input[type="range"]::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #ddd;
    border-radius: 5px;
    
    transform: scale(1.1);
}

/* WebKit - Track (left side of thumb) */
.slider-group input[type="range"]::-webkit-slider-runnable-track {
    background: linear-gradient(to right, rgba(0,122,160,1) 0%, rgba(0,122,160,1) 50%, #ddd 50%);
}

/* Firefox - Thumb */
.slider-group input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border: none;
    border-radius: 50%;
    background: rgba(0,122,160,1);
    cursor: pointer;
}

/* Firefox - Track */
.slider-group input[type="range"]::-moz-range-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #ddd;
    border-radius: 5px;
}

/* Firefox - Track (left side of thumb) */
.slider-group input[type="range"]::-moz-range-progress {
    background-color: rgba(0,122,160,1);
    border-radius: 5px;
    height: 8px;
}

/* IE/Edge - Thumb */
.slider-group input[type="range"]::-ms-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(0,122,160,1);
    cursor: pointer;
}

/* IE/Edge - Track */
.slider-group input[type="range"]::-ms-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: transparent;
    border-color: transparent;
    color: transparent;
}

/* IE/Edge - Track (left side of thumb) */
.slider-group input[type="range"]::-ms-fill-lower {
    background: rgba(0,122,160,1);
    border-radius: 5px;
}

/* IE/Edge - Track (right side of thumb) */
.slider-group input[type="range"]::-ms-fill-upper {
    background: #ddd;
    border-radius: 5px;
}

.slider-values {
    display: flex;
    justify-content: center;
    font-size: 14px;
}

.calendar-subtitle {
    color: #555;
    margin-bottom: 20px;
}

.calendar-controls {
    display: none;
    align-items: center;
    justify-content: space-between;
    color: red;
    font-size: 16px;
}

.prev-month,
.next-month {
    background: none;
    border: none;
    color: red;
    font-weight: bold;
    cursor: pointer;
}

.current-month-year {
    margin: 0 10px;
}

.all-months {
    background: none;
    border: none;
    color: red;
    cursor: pointer;
    margin-left: auto; /* Pushes the button to the right */
    font-weight: bold;
}

/* Optional: add a hover effect for buttons */
.prev-month:hover,
.next-month:hover,
.all-months:hover {
    text-decoration: underline;
}

/* ===== Month grid ===== */
.calendar-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:14px;
}

.month-cell{
  background: #fff;
    border: 1px solid #f1f5f9; /* Πολύ απαλό border */
    border-radius: 20px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    padding: 24px;
    min-height: 125px;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.month-cell:hover{
  transform: translateY(-8px);
    box-shadow: 0 20px 30px rgba(0,0,0,0.08);
    border-color: var(--accent);
}
.month-cell:focus-within{
  outline: 3px solid rgba(0,122,160,.25);
  outline-offset: 2px;
}

.month-cell .month{
  font-weight:700;
  color:#1f2937;
  font-size:1.05rem;
}
.month-cell .price{
  background: #f0f9ff;
    color: var(--accent);
    padding: 8px 16px;
    font-size: 1.1rem;
    font-weight: 800;
}

/* Best price highlight */
.month-cell.best-price{
  background: linear-gradient(135deg, #f0fff4 0%, #ffffff 100%);
    border: 1px solid rgba(16, 185, 129, 0.2);
}
.month-cell.best-price .price{
  background: #10b981;
    color: #fff;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.2);
}

.month-cell:empty::before {
    content: "---";
    color: #cbd5e1;
}

/* Εφέ για το emoticon (>﹏<) */
.month-cell span:contains("(>﹏<)") {
    color: #94a3b8;
    font-size: 0.9rem;
    opacity: 0.7;
}

.best-price-tag{
  background: #10b981;
    border-radius: 8px;
    padding: 4px 12px;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ===== Detailed (day-by-day) grid ===== */
.week-header{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap:8px;
  margin:14px 0 8px;
  padding:8px 10px;
  background: #f8fafc;
  border-radius: var(--radius);
  font-weight:700;
  color:#475569;
}
.day-of-week{ text-align:center; }

.calendar-detailed-grid{
  display:none;
  grid-template-columns: repeat(7, 1fr);
  gap:10px;
}

/* Day cells */
.day-cell{
  position:relative;
  background:#fff;
  border:2px solid #d0d0d0;
  border-radius:12px;
  box-shadow: var(--card-shadow);
  padding:10px 8px;
  min-height:76px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  cursor: pointer;
}
.day-cell:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(0,0,0,.12);
  border-color: #007bff;
}
.day-cell .day{
  color:#94a3b8;
  font-weight:700;
  margin-bottom:2px;
}
.day-cell .price{
  color: var(--accent);
  font-weight:800;
}
.day-cell.best-price{
  border-color: rgba(16,185,129,.45);
  background: linear-gradient(180deg, #f0fff8, #ffffff);
}
.day-cell.best-price::after{
  content:'Best';
  position:absolute; right:8px; top:8px;
  background: var(--accent-2);
  color:#fff; font-size:.68rem; font-weight:700;
  padding:3px 6px; border-radius:999px;
}

/* Tooltip */
.flight-details-tooltip{
  position:absolute;
  z-index:1000;
  max-width:240px;
  padding:8px 10px;
  border-radius:10px;
  background: rgba(17,24,39,.94);
  color:#fff;
  font-size:12px;
  box-shadow:0 12px 24px rgba(0,0,0,.3);
}

.flight-details-tooltip{
  pointer-events: none;   /* ← important */
}

.card-block{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:24px;
  font-family:"Fredoka",system-ui,Segoe UI,Arial,sans-serif;
  width: min(1100px, 90vw);
  margin: 32px auto 40px;
}

.cards-title{
  text-align:center;
  margin-bottom:20px;
  font-size:clamp(1.4rem, 1.1rem + 1vw, 2rem);
  color:#1e2a2f;
  width:100%;
}

/* Fluid, responsive grid */
.card-container{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap:22px;
  width:100%;
  padding: 8px 0;
}

/* Card look & interactions */
.card{
  background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 
                0 8px 10px -6px rgba(0, 0, 0, 0.05);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.card:hover{
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
    border: 1px solid rgba(0, 122, 172, 0.1);
}

/* Top: media + title */
.card-top{ padding:0 16px 14px; }
.card-top .media {
    position: relative;
    border-radius: 12px; /* Πιο "μαλακό" radius */
    overflow: hidden;
    margin: 16px 0 16px; /* Περισσότερος "αέρας" κάτω */
    aspect-ratio: 16 / 9; /* Standard cinematic ratio */
    /* Λεπτό εσωτερικό shadow για να "κάθονται" καλά τα λευκά σύννεφα */
    box-shadow: inset 0 0 20px rgba(0,0,0,0.05);
}

.card-top .media::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40%; /* Καλύπτει το κάτω μέρος */
    /* Gradient από διάφανο σε πολύ απαλό μαύρο */
    background: linear-gradient(to top, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0) 100%);
    pointer-events: none; /* Δεν εμποδίζει τα κλικ */
}

.card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* transition για το hover */
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.card:hover img {
    transform: scale(1.08); /* Πολύ διακριτικό zoom */
}

/* Badges & wishlist */
.badge {
    position: absolute;
    left: 12px;
    top: 12px;
    z-index: 2; /* Πάνω από το overlay */
    padding: 6px 14px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    /* Glassmorphism εφέ */
    backdrop-filter: blur(8px);
    background: rgba(255, 255, 255, 0.85);
    color: #1e293b;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.badge--new{
  color:#0b4a6b;
  background: linear-gradient(139deg,#C7E9FF,#9ED8FF);
}

.fav {
    position: absolute;
    right: 12px;
    top: 12px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-radius: 50%;
    /* Glassmorphism Effect */
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 10;
}

.fav .fav-icon {
    font-size: 20px;
    color: #64748b; /* Απαλό γκρι-μπλε */
    transition: all 0.3s ease;
}

.fav:hover {
    background: rgba(255, 255, 255, 0.9);
    transform: scale(1.1);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

.fav .material-symbols-outlined {
  font-size:26px;
  color:#777; /* default border heart color */
  transition:color .25s ease;
}

.fav:hover .fav-icon { color:#e53935; transform: scale(1.05); }

.card.is-favorite .fav {
    background: #fff;
}

.card.is-favorite .fav .fav-icon {
    color: #ef4444; /* Ζωντανό κόκκινο */
    animation: heartPop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    font-variation-settings:
    'FILL' 1,                           /* filled */
    'wght' 600,
    'GRAD' 0,
    'opsz' 24;
}

.fav:hover .material-symbols-outlined {
  color:#e53935;
}

/* Title */
.card-title {
    margin: 0 0 16px; /* Περισσότερος "αέρας" κάτω */
    font-weight: 800; /* Πιο έντονο (Bold) */
    letter-spacing: -0.02em; /* Μικρότερο spacing για modern look */
    color: #1e293b; /* Premium Dark Blue */
    font-size: 1.6rem; /* Μεγαλύτερο για να κυριαρχεί */
    transition: color 0.3s ease;
}

/* Bottom: table (clean two-column look) */
.card-bottom{ padding: 0 16px 18px; }
.card-bottom table{ width:100%; border-collapse:collapse; }
.card-bottom thead th{
  text-transform: none;
  font-size:.9rem;
  font-weight:700;
  color:#62727b;
  padding: 6px 0 8px;
}

.card-bottom thead th {
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: #94a3b8; /* Απαλό γκρι για να μην "χτυπάει" */
    padding-bottom: 12px;
}
.card-bottom tbody tr:last-child td{ border-bottom: none; }

.card-bottom tbody tr:hover {
    background: #f8fafc; /* Πολύ απαλό γκρι στο πέρασμα του ποντικιού */
}

.card-bottom tbody tr {
    transition: background 0.2s ease;
    border-radius: 8px;
}

.card-bottom tbody td {
    padding: 10px 8px; /* Περισσότερος "αέρας" στις σειρές */
    color: #334155;
    font-weight: 500;
}

/* alignment */
.card-bottom th:nth-child(1),
.card-bottom td:nth-child(1){ text-align:left; }
.card-bottom th:nth-child(2),
.card-bottom td:nth-child(2){ text-align:right; }

/* Price styling */
.details-link{
  display: inline-block;
    padding: 6px 14px;
    background: #f0f9ff;
    color: #007aac;
    border-radius: 30px;
    font-weight: 700;
    font-size: 0.95rem;
    border: 1px solid #e0f2fe;
    transition: all 0.3s ease;
    cursor: pointer;
}
.details-link:hover{ background: #007aac;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 122, 172, 0.2);
    
}

/* Emphasize the lowest price in each list */
.details-link.lowest{
  background: #f0fdf4;
    color: #16a34a;
    border: 1px solid #dcfce7;
}

.details-link.lowest:hover {
    background: #16a34a;
    color: #fff;
}

/* Nice focus ring for accessibility */
.card a:focus-visible,
.fav:focus-visible{
  outline: 3px solid rgba(0,122,160,.35);
  outline-offset: 2px;
}

.card[data-origin].is-favorite {
  border: 2px solid transparent;
  background: linear-gradient(#fff,#fff) padding-box, linear-gradient(139deg, rgba(64,224,208,1) 0%, rgba(0,122,160,1) 56%) border-box;;
}

.flight-info {
    text-align: left;
    margin-top: 20px;
}

.flight-info span {
    font-weight: bold;
}

.flight-info div {
    margin: 5px 0;
}

.flight-info div span {
    float: right;
    font-weight: normal;
}

.deals-container{
  width:min(1100px, 90vw);
  margin:32px auto 40px;
  font-family:"Fredoka", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
.deals-title{
  text-align:left;
  font-size:clamp(1.2rem, 0.9rem + 1vw, 1.7rem);
  color:#1e2a2f;
  margin:0 0 14px;
}

/* List wrapper */
.deals-list{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}

/* Grid template shared by header and rows (7 columns) */
.deals-header,
.deal{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1.6fr .9fr .8fr .9fr .9fr;
  gap:16px;
  align-items:center;
  padding:14px 18px;
}

/* Header */
.deals-header{
  position:sticky; top:0;
  backdrop-filter:saturate(1.2) blur(6px);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.86));
  font-weight:700; color:#5f6c72;
  z-index:1;
  border-bottom:1px solid rgba(0,0,0,.06);
}

.deal .exp-date {
    font-size: 0.8rem;
    color: #94a3b8;
    font-weight: 400;
}

/* Rows */
.deal{
  border-bottom: 1px solid #f1f5f9;
  padding: 18px 20px; /* Περισσότερος "αέρας" */
}
.deal:last-child{ border-bottom:none; }
.deal:hover {
    background: #ffffff;
    transform: scale(1.01); /* Πολύ ελαφρύ μεγέθυνση */
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    z-index: 2;
}

/* Destination cell */
.deal .destination{
  font-size: 1.1rem;
  letter-spacing: -0.01em;
  color: #0f172a;
}

/* Airline badge */
.deal .airline img{
  height: 28px; /* Πιο μικρά και κομψά */
  width: auto;
  filter: grayscale(0.2) contrast(1.1); /* Δίνει μια ομοιομορφία */
  transition: filter 0.3s ease;
}

.deal:hover .airline img {
  filter: grayscale(0) contrast(1); /* Ζωντανεύουν στο hover */
}

/* Dates chip */
.deal .dates{
  background: transparent; /* Αφαιρούμε το φόντο */
  border: none; /* Αφαιρούμε το border */
  color: #64748b;
  font-variant-numeric: tabular-nums; /* Τα νούμερα στοιχίζονται τέλεια */
}

.deals-header span,
.deal > div {
  text-align: center;
  justify-content: center;
  display: flex;
}

/* Price emphasis */
.deal .price{
  font-size: 1.1rem;
  color: #0284c7; /* Ένα πιο elegant μπλε */
  background: #f0f9ff;
  padding: 4px 12px;
  border-radius: 8px;
}

/* Flight / Timezone */
.deal .flight-code, .deal .time_zone{
  color:#475569; font-weight:600;
}

/* Button-style link */
.details-link{
  background: #f8fafc;
  color: #1e293b;
  border: 1px solid #e2e8f0;
  padding: 8px 16px;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: none;
}

.details-link:hover{
  background: #1e293b;
  border-color: #1e293b;
  color: #fff;
  box-shadow: 0 4px 12px rgba(30, 41, 59, 0.2);
}

.accordion-container {
    margin: 60px auto;
    max-width: 1100px;
    padding: 0 20px;
}

.accordion-title {
    font-size: 2.2rem; /* Μεγαλύτερο και πιο επιβλητικό */
    font-weight: 800;
    color: #1e293b;
    margin-bottom: 40px;
    letter-spacing: -0.02em;
}

.accordion {
    width: min(850px, 100%); /* Πιο κομψό πλάτος για ανάγνωση */
    margin: 0 auto;
}

.accordion-item {
    background-color: #ffffff;
    border-radius: 16px; /* Πιο "μαλακές" γωνίες */
    margin-bottom: 16px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.accordion-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.06);
    border-color: rgba(0, 122, 160, 0.2);
}

.accordion-item.active .accordion-answer {
    max-height: 500px; /* Μια τιμή μεγαλύτερη από το περιεχόμενο */
    padding: 10px 28px 24px; /* Επαναφέρει το padding */
    opacity: 1;
}

.accordion-question {
    width: 100%;
    padding: 24px 28px;
    font-size: 1.1rem;
    font-weight: 600;
    color: #334155;
    background: #fff;
    border-radius: 16px;
    transition: all 0.3s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.accordion-answer {
    max-height: 0; /* Ξεκινάει από το μηδέν */
    overflow: hidden; /* Κρύβει το περιεχόμενο */
    padding: 0 28px; /* Μηδενίζουμε το vertical padding για να μην "πετάει" */
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), padding 0.4s ease;
    background: #f8fbff;
    opacity: 0;
}

.accordion-question:after {
    content: '\002B';
    font-size: 1.4rem;
    color: #94a3b8;
    transition: transform 0.3s ease, color 0.3s ease;
    background: #f1f5f9;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin-left: 15px;
}

.accordion-question.active:after {
    content: '\002B'; /* Παραμένει το ίδιο σύμβολο */
    transform: rotate(45deg); /* Αλλά περιστρέφεται για να γίνει 'x' */
    background: #007aa0;
    color: #fff;
}

.accordion-question.active {
    background: #f8fbff;
    color: #007aa0;
    border-radius: 16px 16px 0 0;
}

/* Footer styles */
/* Footer Styles */
footer {
    background: linear-gradient(135deg, #001a2c 0%, #003a66 100%);
    color: #fff;
    padding: 60px 0 30px;
    font-family: 'Fredoka', sans-serif;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.footer-content {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 0 20px 40px;
}

/* Brand styling */
.footer-logo-section {
    flex: 1;
}

.footer-brand-name {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 10px;
    background: linear-gradient(to right, #40e0d0, #ffffff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.footer-tagline {
    color: #94a3b8;
    font-size: 0.9rem;
}

/* Nav links styling */
.footer-nav {
    display: flex;
    gap: 80px; /* Απόσταση μεταξύ των στηλών */
}

.footer-link-col h3 {
    font-size: 1rem;
    color: #fff;
    margin-bottom: 18px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.footer-link-col ul {
    list-style: none;
    padding: 0;
}

.footer-link-col ul li {
    margin-bottom: 10px;
}

.footer-link-col ul li a {
    color: #94a3b8;
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.footer-link-col ul li a:hover {
    color: #40e0d0;
    transform: translateX(5px);
    display: inline-block;
}

/* Bottom Bar */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 25px;
    text-align: center;
}

.bottom-wrap p {
    font-size: 0.85rem;
    color: #64748b;
}

.weboption {
    color: #40e0d0 !important;
    font-weight: 700;
    font-style: italic;
    text-decoration: none;
}

/* Large tablets / small laptops */
@media (max-width: 1024px) {
  .calendar-container { width: 85%; }
  .calendar { padding: 16px; }
  .calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .month-cell { min-height: 100px; }
  
  .card-container{
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 18px;
  }
  .card-top{ padding: 0 14px 12px; }
  .card-bottom{ padding: 0 14px 16px; }
  .card-title{ font-size: clamp(1rem, .9rem + .35vw, 1.25rem); }
  
  .deals-container{ width:min(1000px, 94vw); }
  .deals-header,
  .deal{
    grid-template-columns: 1.2fr .9fr 1.4fr .8fr .7fr .9fr .9fr;
    gap:14px;
    padding:12px 16px;
  }
  .deal .airline img{ height:42px; }
  .deal .dates{ padding:5px 9px; }
}

/* ========== ≥1200px down ========== */
@media (max-width: 1200px){
  .header-content{ width: 86%; }
  .centered-title{ margin-top: 4%; margin-bottom: 4%; }
  .centered-title h2{ font-size: 40px; }
  .custom-select{ width: 300px; }
}

/* ========== ≥992px down (tablets/landscape) ========== */
@media (max-width: 992px){
  .header-top{
    gap: 16px;
  }
  .left-side{ left: 0; padding-left: 0; }
  .right-side{ padding: .5rem 0; }
  .custom-select{ width: 280px; }

  .header-content{
    width: 92%;
    padding: 20px;
    border-radius: 12px;
  }

  .input-group-container{
    gap: 14px;
  }

  .route-fields{
    gap: 12px;
  }

  .search-btn-container,
  .search-btn-container_hotels{
    right: 16px;
    bottom: -18px;
  }

  .centered-title h2{ font-size: 36px; }
}

/* ========== ≥768px down (portrait tablets / large phones) ========== */
@media (max-width: 768px){
    body {
        /* Στο κινητό το widget είναι πιο ψηλό (κάθετο), οπότε θέλει περισσότερο χώρο */
        padding-top: 625px; 
    }
    
    body.is-scrolled {
        padding-top: 120px !important;
    }
    
  /* 1. Header: Απελευθερώνουμε το ύψος για να χωρέσουν όλα */
    .premium-header {
        height: auto !important;
        padding: 20px 0 !important;
    }
    
    .header-container {
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
        padding: 0 15px !important;
    }

    /* 2. Logo: Το κεντράρουμε πάνω από το search */
    .left-side {
        position: static !important;
        margin-bottom: 25px !important;
        transform: none !important;
        display: flex;
        justify-content: center;
    }

    .brand-premium svg {
        width: 100px !important; /* Μεγαλύτερο logo για premium αίσθηση */
        height: auto !important;
    }

    /* 3. Tabs (Αεροπορικά - Ξενοδοχεία): Σωστό Spacing */
    .search-type-tabs {
        margin-bottom: 15px !important;
        width: 100% !important;
        display: flex;
        justify-content: center;
        gap: 10px;
    }

    /* 4. Το Widget: Το κάνουμε "συμπαγές" block */
    .full-search-container {
        height: auto !important; /* Ξεκλειδώνει το ύψος */
        min-height: 420px !important; /* Δίνει χώρο για όλα τα πεδία */
        display: flex !important;
        flex-direction: column !important;
        padding-bottom: 40px !important; /* Χώρος για το κουμπί στο τέλος */
        border-radius: 15px;
    }

    /* 5. Πεδία: Καθαρά διαχωριστικά και Padding */
    .premium-field {
        height: 90px !important; /* Ιδανικό ύψος για label + input στο κινητό */
        flex-direction: column !important;
        justify-content: center !important;
        padding: 10px 25px !important;
        border-bottom: 1px solid #f1f5f9 !important;
        width: 100%;
    }

    .premium-field label {
        font-size: 9px !important;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin-bottom: 4px;
        color: #64748b;
    }

    .premium-field input, .guest-picker-btn {
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #1e293b !important;
        width: 100% !important;
        padding: 0 !important;
        background: transparent !important;
        border: none !important;
    }
    
    input[type="text"]::placeholder {
        font-size: 15px;
    }

    /* 6. Η "διπλή" γραμμή (Ημερομηνίες & Επιβάτες) */
    /* Επειδή δεν έχουμε mobile-row class στην HTML, θα το κάνουμε με nth-child */
    /* Επιλογή των 2 τελευταίων fields πριν το button */
    .full-search-container .premium-field:nth-last-child(3),
    .full-search-container .premium-field:nth-last-child(2) {
        /* Αν θες να τα αφήσεις κάθετα για ευκολία, άφησε το ως έχει. 
           Αν θες 2 στήλες, πρόσθεσε float ή flex. Προτείνω κάθετα για Premium Mobile UX. */
    }

    /* 7. Το Κουμπί Αναζήτησης: Μεγάλο και επιβλητικό στο κάτω μέρος */
    .premium-search-btn {
        width: 100% !important;
        margin: 0 !important; /* Ενσωματωμένο στο block */
        border-radius: 0 0 16px 16px !important; /* Μόνο κάτω γωνίες */
        background: #007AA0 !important;
        color: white !important;
        font-size: 1.2rem !important;
        border: none !important;
        display: flex !important;
        justify-content: center;
        align-items: center;
        
        height: 60px !important; /* Πιο στιβαρό κουμπί */
        margin-top: auto !important;
        border-radius: 0 0 20px 20px !important;
    }

    /* 8. Διόρθωση Swap Button */
    .swap-locations-btn {
        position: absolute !important;
        right: 50%;
        top: 71px; /* Προσαρμογή ανάλογα με το ύψος του πρώτου field */
        background: #fff !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 50%;
        width: 32px;
        height: 32px;
        z-index: 5;
    }

    /* 9. Απόκρυψη Divider στο κινητό */
    .premium-divider {
        display: none !important;
    }
    
    /* compact version - το "Pill" */
    .premium-header.scrolled .left-side {
        margin-bottom: 0 !important;
    }
    
    .premium-header.scrolled .center-side-search {
        position: relative !important;
        bottom: 10px !important;
    }
    
    .premium-header.scrolled .swap-locations-btn {
        display: none;
    }
    
.premium-header.scrolled .full-search-container {
    flex-direction: row !important; /* Γίνεται οριζόντιο */
    min-width: 300px;
    min-height: 50px !important;
    border-radius: 999px !important; /* Τέρμα στρογγυλεμένο */
    margin: 10px auto !important;
    background: rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    
    align-items: center !important;
    justify-content: space-between !important;
    width: 90% !important;
    height: 54px !important;
    padding: 0 8px 0 20px !important;
}

/* Κρύβουμε τα labels και τα πολλά inputs στη compact μορφή */
.premium-header.scrolled .premium-field label,
.premium-header.scrolled .premium-divider,
.premium-header.scrolled .search-type-tabs {
    display: none !important;
}

.premium-header.scrolled .premium-field {
    display: none !important; /* Κρύβουμε τα κανονικά πεδία */
}

/* Εμφανίζουμε την κάψουλα πληροφοριών (Search Summary) */
.premium-header.scrolled .search-summary-pill {
    display: flex !important;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #1e293b;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Το κουμπί αναζήτησης γίνεται μικρό εικονίδιο μέσα στο pill */
.premium-header.scrolled .premium-search-btn {
    background: #007AA0 !important;
    flex-shrink: 0;
    
    position: static !important; 
        transform: none !important;
        margin: 0 !important;
        
    /* Τέλειο σχήμα και μέγεθος */
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        border-radius: 50% !important;
        
        /* Κεντράρισμα του εικονιδίου (φακού) μέσα στο κουμπί */
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
}


  
  .deals-header {
    display: none; /* Κρύβουμε τα labels του πίνακα στο κινητό */
  }

  .deal {
    display: flex !important;
    flex-direction: column !important; /* Κάθετα δεδομένα */
    align-items: flex-start !important;
    gap: 10px;
    padding: 20px !important;
    border-radius: 12px;
    margin-bottom: 15px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  }

  .deal > div {
    width: 100%;
    justify-content: space-between !important; /* Τιμή και όνομα στις άκρες */
    text-align: left !important;
  }
  
  .calendar-grid {
    grid-template-columns: 1fr 1fr !important; /* 2 στήλες */
  }

  .month-cell {
    min-height: 110px !important; /* Περισσότερος αέρας */
    justify-content: center;
  }
}

/* ──────────────────────────────────────────
   Phones (stacked “card” rows)
   ────────────────────────────────────────── */
@media (max-width: 600px) {
  /* Hide table-like header; each row will self-label */
  .deals-header{ display:none; }

  /* Turn each row into a card */
  .deal{
    display:block;
    padding:14px;
    border-radius:14px;
    margin:10px;
    border:1px solid rgba(0,0,0,.06);
  }

  /* Each cell becomes a block with a tiny label */
  .deal > div,
  .deal > a.details-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 0;
    border-bottom:1px dashed rgba(0,0,0,.06);
  }
  .deal > div:last-of-type{ border-bottom:none; }

  /* Row labels (using ::before so no HTML change) */
  .deal .destination::before{ content:"City Name"; }
  .deal .airline::before{ content:"Airline"; }
  .deal .dates::before{ content:"Dates"; }
  .deal .price::before{ content:"Price"; }
  .deal .flight-code::before{ content:"Flight #"; }
  .deal .expires-at::before{ content:"Expires at"; }
  .deal .details-link::before{ content:"Details"; margin-right:auto; }

  .deal .destination::before,
  .deal .airline::before,
  .deal .dates::before,
  .deal .price::before,
  .deal .flight-code::before,
  .deal .expires-at::before,
  .deal .details-link::before{
    font-weight:700;
    font-size:.86rem;
    color:#64748b;
  }

  /* Values (the actual content) */
  .deal .destination,
  .deal .airline,
  .deal .dates,
  .deal .price,
  .deal .flight-code,
  .deal .expires-at,
  .deal .details-link{
    font-size:1rem;
  }

  .deal .destination{
    font-weight:700;
    color:#263238;
  }
  .deal .airline img{ height:32px; }
  .deal .dates{ white-space:normal; padding:0 0; border: 0;}

  /* === Expiration / time zone text (the large date) === */
  .deal .expires-at {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    padding: 8px 0;
    font-weight: 800;
    font-size: 1.05rem;
    color: #0b528b;
    background: linear-gradient(90deg, #e7f6ff 0%, #f9fcff 100%);
    border-radius: 8px;
    box-shadow: inset 0 1px 2px rgba(0,0,0,.04);
    position: relative;
    text-align: left;
  }

  /* Small glowing effect */
  .deal .expires-at::after {
    content: "⏰";
    font-size: 1.1rem;
    margin-left: 8px;
    color: #0c83ff;
    animation: pulseClock 2.5s ease-in-out infinite;
  }

  @keyframes pulseClock {
    0%, 100% { opacity: .6; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.15); }
  }

  /* Refine See Details button */
  .deal .details-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    padding: 10px 14px;
    border: 2px solid #0c83ff;
    border-radius: 999px;
    background: #fff;
    color: #0c83ff;
    font-size: 0.96rem;
    font-weight: 700;
    transition: all .2s ease;
    box-shadow: 0 3px 8px rgba(12,131,255,.12);
  }

  .deal .details-link:hover {
    background: #0c83ff;
    color: #fff;
    box-shadow: 0 4px 12px rgba(12,131,255,.25);
    transform: translateY(-1px);
  }

  /* Make the Details label (left side) subtler */
  .deal .details-link::before {
    color: #64748b;
    font-weight: 600;
  }
}

/* ========== ≥576px down (phones) ========== */
@media (max-width: 576px){
  .brand-badge{ --badge-size: 48px; }
  .brand-wordmark{ font-size: 18px; }

  .centered-title h2{
    font-size: 24px;
    text-shadow: 1px 1px 0 rgba(0,0,0,.6);
  }

  .header-content{
    width: 94%;
    padding: 14px;
    border-radius: 10px;
    margin-top: 25%;
  }

  .input-group-container,
  .route-fields,
  .date-input-group{
    gap: 10px;
  }

  .additional-div .div-text{ font-size: 14px; }
  .ok-button{ padding: 10px 18px; border-radius: 12px; }

  .custom-select{ max-width: 100%; }
  .selected-value{ font-size: 14px; padding: 10px 12px; }

  .suggestions-container{
    max-height: 260px;
  }
  .suggestion-name{ font-size: 13px; }
  .suggestion-info{ font-size: 11px; }
  .suggestion-code{ font-size: 11px; }
}

/* Phones */
@media (max-width: 560px) {
  .calendar-container { width: 95%; }
  .calendar { padding: 14px; }
  .calendar-title { font-size: 22px; }

  /* Show month navigation on small screens */
  .calendar-controls { display: flex; align-items: center; gap: 10px; margin: 8px 0 12px; }
  .current-month-year { font-weight: 600; }

  /* Stack months in one column */
  .calendar-grid { grid-template-columns: 1fr; gap: 12px; }
  .month-cell { padding: 16px; }
  .best-price-tag { font-size: .7rem; }

  /* Compact suggestions panel */
  .suggestions { max-height: 160px; }

  /* Hide small input tag chips to save space */
  .input-tag { display: none; }

  /* Detailed grid tweaks */
  .week-header { display: none; }     /* Hide weekday header on phones */
  .calendar-detailed-grid { gap: 6px; }
}

/* ===========================================================
   UNIVERSAL MOBILE FIX  (phones ≤480px wide)
   =========================================================== */
@media (max-width: 480px) {
  .calendar-container {
    width: 100%;
    margin: 0 auto;
  }

  .calendar {
    padding: 12px;
    margin: 10px auto;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
  }

  /* Title & subtitle */
  .calendar-title {
    font-size: 20px;
    margin-bottom: 6px;
    font-weight: 700;
  }
  .calendar-subtitle {
    font-size: 13px;
    margin: 6px 0 12px;
    color: #555;
  }

  /* Filters */
  .filter-container {
    padding: 12px;
    border-radius: 8px;
  }

  .input-group {
    margin-bottom: 8px;
  }
  .input-group input[type="text"] {
    height: 44px;
    font-size: 14px;
    border-radius: 8px;
  }
  .input-tag {
    display: none; /* hide origin/destination chips */
  }

  .checkbox-label,
  .slider-group label,
  .slider-values span {
    font-size: 13px;
  }

  /* Slider smaller */
  .slider-group input[type="range"] {
    height: 6px;
  }
  .slider-group input[type="range"]::-webkit-slider-thumb {
    width: 18px;
    height: 18px;
    margin-top: -6px;
  }

  /* Controls (month navigation) */
  .calendar-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 6px 0 10px;
    font-size: 14px;
  }
  .prev-month,
  .next-month,
  .all-months {
    font-size: 13px;
    color: #007aa0;
  }
  .current-month-year {
    font-weight: 600;
  }

  /* Week header and detailed grid */
  .week-header {
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
    padding: 4px;
    background: #f8fafc;
    border-radius: 6px;
    font-size: 11px;
  }

  .calendar-detailed-grid {
    gap: 5px;
  }

  .day-cell {
    min-height: 60px;
    padding: 6px 4px;
    border-radius: 10px;
  }
  .day-cell .day {
    font-size: 11px;
    margin-bottom: 2px;
  }
  .day-cell .price {
    font-size: 12px;
    line-height: 1.1;
  }
  .day-cell.best-price::after {
    top: 6px;
    right: 6px;
    padding: 2px 5px;
    font-size: 0.6rem;
  }

  /* Month grid for “All months” view */
  .calendar-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
  }
  .month-cell {
    padding: 12px;
    min-height: 85px;
  }
  .month-cell .month {
    font-size: 0.95rem;
  }
  .month-cell .price {
    font-size: 0.9rem;
  }
  .best-price-tag {
    font-size: 0.7rem;
    padding: 4px 8px;
    right: 10px;
    bottom: 10px;
  }
  
  
  .cards-title{ font-size: clamp(1.15rem, 1rem + 1vw, 1.5rem); }
  .card-container{
    grid-template-columns: 1fr;      /* one per row */
    gap: 14px;
  }
  .card-top{ padding: 0 12px 10px; }
  .card-bottom{ padding: 0 12px 14px; }

  /* Larger image ratio for a more immersive look */
  .card-top .media{ aspect-ratio: 16 / 9; }

  .badge{ font-size: .7rem; padding: 4px 8px; }
  .fav{ width: 40px; height: 40px; } /* keep tap target big */

  .card-title{ font-size: 1.05rem; }

  .card-bottom thead th{ font-size: .8rem; }
  .card-bottom tbody td{
    padding: 8px 0;
    font-size: .95rem;
  }

  /* Tighter price pill on small screens */
  .details-link.lowest{
    padding: 2px 6px;
    font-weight: 800;
  }
}

/* ========== Very small devices ========== */
@media (max-width: 380px){
  .brand-wordmark{ display: none; }   /* keep only the badge if space is tight */
  .centered-title h2{ font-size: 21px; }
  .swap-icon{ width: 22px; height: 22px; }
  
  .deal{ padding:12px; margin:8px; }
  .deal > div, .deal > a.details-link{ gap:10px; padding:6px 0; }
  .deal .dates{ font-size:.95rem; padding: 0 0; }
  .details-link{ padding:7px 10px; font-size:.92rem; }
}

/* Very small phones */
@media (max-width: 375px) {
  .calendar-title { font-size: 20px; }
  .month-cell { padding: 14px; }
}

/* ============================
   Very small phones (≤360px)
   ============================ */
@media (max-width: 360px) {
  .card-container{ gap: 12px; }
  .card-top{ padding: 0 10px 8px; }
  .card-bottom{ padding: 0 10px 12px; }
  .card-title{ font-size: 1rem; }
  .badge{ font-size: .66rem; padding: 3px 7px; }
  .fav{ width: 36px; height: 36px; }
  .card-bottom thead th,
  .card-bottom tbody td{ font-size: .9rem; }
}