:root {
    --color-primary: #5aa6b3;
    --color-primary-dark: #468a96;
    --color-secondary: #f38a76;
    --color-accent: #f9c97c;
    --color-bg-light: #fbfdf6;
    --color-text: #444;
    --font-main: 'Nunito', sans-serif;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-main);
    color: var(--color-text);
    margin: 0;
    padding: 0;
    background-color: var(--color-bg-light);
    overflow-x: hidden;
}

/* --- Ambient Background Animation (Geometric Shapes) --- */
.area {
    background: #fbfdf6;
    background: -webkit-linear-gradient(to left, #8f94fb, #4e54c8);  
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1; /* Πίσω από όλα */
}

.circles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    margin: 0;
    padding: 0;
}

.circles li {
    position: absolute;
    display: block;
    list-style: none;
    width: 20px;
    height: 20px;
    background: rgba(90, 166, 179, 0.2); /* Το πετρόλ χρώμα με διαφάνεια */
    animation: animate 25s linear infinite;
    bottom: -150px;
    border-radius: 50%; /* Κύκλοι */
}

/* Διαφορετικά μεγέθη και θέσεις για τα σχήματα */
.circles li:nth-child(1) { left: 25%; width: 80px; height: 80px; animation-delay: 0s; background: rgba(243, 138, 118, 0.2); border-radius: 10%; /* Τετράγωνο με λίγη γωνία */ }
.circles li:nth-child(2) { left: 10%; width: 20px; height: 20px; animation-delay: 2s; animation-duration: 12s; }
.circles li:nth-child(3) { left: 70%; width: 20px; height: 20px; animation-delay: 4s; }
.circles li:nth-child(4) { left: 40%; width: 60px; height: 60px; animation-delay: 0s; animation-duration: 18s; background: rgba(249, 201, 124, 0.2); }
.circles li:nth-child(5) { left: 65%; width: 20px; height: 20px; animation-delay: 0s; }
.circles li:nth-child(6) { left: 75%; width: 110px; height: 110px; animation-delay: 3s; border-radius: 20%; }
.circles li:nth-child(7) { left: 35%; width: 150px; height: 150px; animation-delay: 7s; background: rgba(243, 138, 118, 0.1); }
.circles li:nth-child(8) { left: 50%; width: 25px; height: 25px; animation-delay: 15s; animation-duration: 45s; }
.circles li:nth-child(9) { left: 20%; width: 15px; height: 15px; animation-delay: 2s; animation-duration: 35s; }
.circles li:nth-child(10) { left: 85%; width: 150px; height: 150px; animation-delay: 0s; animation-duration: 11s; }

@keyframes animate {
    0% { transform: translateY(0) rotate(0deg); opacity: 1; border-radius: 0; }
    100% { transform: translateY(-1000px) rotate(720deg); opacity: 0; border-radius: 50%; }
}

/* --- Magic Overlay Styles --- */
.magic-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    display: none;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.magic-overlay.active {
    display: flex;
    opacity: 1;
}

.overlay-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(90, 166, 179, 0.7); /* Λίγο πιο σκούρο για contrast */
    backdrop-filter: blur(10px);
}

/* Wrapper: Μεγάλωσε και έγινε Flex column για να έχει τα κουμπιά από κάτω */
.magic-card-wrapper {
    position: relative;
    width: 400px; /* Μεγαλύτερο πλάτος */
    height: auto; /* Auto για να χωράει και τα κουμπιά */
    display: flex;
    flex-direction: column;
    align-items: center;
    transform: scale(0.8);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    animation: floating-card 3s ease-in-out infinite;
}

.magic-overlay.active .magic-card-wrapper {
    transform: scale(1);
}

@keyframes floating-card {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* 3D Scene: Μεγάλωσε το ύψος της κάρτας */
.card-scene-overlay {
    perspective: 1000px;
    width: 100%;
    height: 600px; /* Μεγαλύτερο ύψος κάρτας */
    margin-bottom: 20px; /* Κενό για τα κουμπιά από κάτω */
}

/* Κουμπί κλεισίματος */
.close-magic-btn {
    position: absolute;
    top: -20px; /* Πιο ψηλά */
    right: -20px; /* Πιο έξω */
    background: white;
    color: var(--color-secondary);
    border: none;
    width: 50px; /* Μεγαλύτερο */
    height: 50px;
    border-radius: 50%;
    font-size: 1.5rem;
    cursor: pointer;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    z-index: 20;
    transition: transform 0.3s;
}
.close-magic-btn:hover {
    transform: rotate(90deg) scale(1.1);
    background: var(--color-accent);
    color: white;
}

/* Hint Text: Πήγε πάνω */
.click-hint-overlay {
    position: absolute;
    top: 20px; /* Στην κορυφή */
    left: 25%;
    transform: translateX(-25%);
    background: rgba(255,255,255,0.95);
    padding: 8px 20px;
    border-radius: 20px;
    font-weight: bold;
    color: var(--color-primary);
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    animation: pulse 2s infinite;
    white-space: nowrap;
    z-index: 5;
    pointer-events: none; /* Για να μπορείς να πατήσεις την κάρτα από πίσω */
}

/* --- External Actions (Κουμπιά κάτω από την κάρτα) --- */
.card-actions-external {
    display: flex;
    gap: 15px;
    width: 100%;
    justify-content: center;
}

.magic-action-btn {
    flex: 1;
    padding: 12px 20px;
    border-radius: 50px;
    text-align: center;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.1rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    transition: transform 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: white;
}

.phone-btn {
    background-color: #25D366; /* Χρώμα τύπου Call/Whatsapp */
    background: linear-gradient(45deg, #25D366, #128C7E);
}

.email-btn {
    background-color: var(--color-primary);
    background: linear-gradient(45deg, var(--color-primary), var(--color-primary-dark));
}

.magic-action-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.3);
    color: white;
}

/* --- Mobile Adjustments --- */
@media (max-width: 576px) {
    .magic-card-wrapper {
        width: 320px; /* Προσαρμογή σε κινητά */
    }
    .card-scene-overlay {
        height: 480px; /* Προσαρμογή ύψους σε κινητά */
    }
    .close-magic-btn {
        top: -10px;
        right: -10px;
        width: 40px;
        height: 40px;
    }
    .card-actions-external {
        flex-direction: column; /* Κάθετα κουμπιά σε μικρά κινητά */
        width: 90%;
    }
}

/* --- Header & Nav --- */
header {
    background-color: var(--color-primary);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
}

.contact-bar {
    background-color: rgba(0, 0, 0, 0.15);
    padding: 6px 0;
    font-size: 0.9rem;
    width: 100%;
}

/* Κοινά στυλ για links πάνω μπάρας */
.contact-bar a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.3s, transform 0.3s;
}
.contact-bar a:hover { 
    color: var(--color-accent); 
}

/* --- Social Icons (Αριστερά) --- */
.top-socials a {
    margin-right: 15px; /* Απόσταση μεταξύ των εικονιδίων */
    font-size: 1rem;
    display: inline-block;
}
.top-socials a:hover {
    transform: translateY(-2px); /* Μικρό πηδηματάκι στο hover */
}

/* --- Contact Info (Δεξιά) --- */
.top-contact a {
    display: flex;
    align-items: center;
    gap: 5px;
}

.email-link {
    word-break: break-all; 
}

/* Logo & Brand */
.logo-img {
    border-radius: 50%;
    width: 50px;
    border: 2px solid white;
}

.brand-text {
    color: white;
    font-weight: 700;
    font-size: 1.2rem;
    margin-left: 10px;
    vertical-align: middle;
}

/* Navbar Styling */
.navbar {
    padding: 0.5rem 0;
}

.navbar-nav .nav-link {
    color: white !important;
    font-weight: 600;
    font-size: 1.1rem;
    margin: 0 0.5rem;
    transition: color 0.3s;
}

.navbar-nav .nav-link:hover {
    color: var(--color-accent) !important;
}

.btn-contact-nav {
    background-color: var(--color-secondary);
    padding: 8px 15px !important;
    border-radius: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    margin-left: 10px;
}
.btn-contact-nav:hover {
    background-color: white !important;
    color: var(--color-secondary) !important;
    transform: translateY(-2px);
}

/* Mobile Toggler */
.navbar-toggler {
    border-color: rgba(255,255,255,0.5);
}
.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* --- Sections General --- */
.section {
    padding: 4rem 0;
    position: relative; /* Για να κάθονται πάνω από το animated background */
}

.alt-bg {
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(5px);
    border-radius: 20px;
    margin: 2rem auto;
    width: 95%;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.section-title {
    color: var(--color-primary);
    font-weight: 800;
    margin-bottom: 2rem;
    position: relative;
    display: inline-block;
}
.section-title::after {
    content: '';
    display: block;
    width: 50%;
    height: 4px;
    background: var(--color-accent)!important;
    margin: 5px auto 0;
    border-radius: 2px;
}

/* --- Profile Section --- */
.text-content h1 {
    color: var(--color-primary-dark)!important;
    font-weight: 800;
    font-size: 2.5rem;
}

.subtitle {
    display: block;
    font-size: 1.2rem;
    color: var(--color-secondary)!important;
    font-weight: 600;
}

.skills-list {
    margin-top: 2rem;
    background: white;
    padding: 1.5rem;
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}
.skills-list h4 { font-size: 1.3rem; font-weight: 700; color: #555; }
.skills-list ul { list-style: none; padding: 0; margin-top: 1rem; }
.skills-list li { margin-bottom: 0.8rem; font-size: 1.1rem; }
.skills-list li i { color: var(--color-primary)!important; margin-right: 10px; font-size: 1.2rem; }

.quote-container {
    margin-top: 2rem;
}
.quote {
    font-weight: 400; /* Κανονικό προς λεπτό */
    font-size: 1.2rem; /* Λίγο μεγαλύτερο γιατί η Patrick Hand είναι διακριτική */
    
    /* Χρώματα και Στυλ (τα παλιά σου) */
    background-color: var(--color-accent);
    color: var(--color-primary-dark)!important;
    padding: 1rem 1.5rem;
    border-radius: 0 20px 0 20px;
    box-shadow: 5px 5px 0 var(--color-secondary);
    
    /* --- Το μυστικό για Mac/iPhone --- */
    /* Αυτό κάνει τα γράμματα να φαίνονται πιο καθαρά και λεπτά σε οθόνες Retina */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    
    /* Απαραίτητα για το εφέ κύματος */
    display: inline-block;
    max-width: 100%;
}

.profile-img-wrapper {
    position: relative;
    display: inline-block;
}
.personal-img {
    width: 80%;
    border-radius: 50%;
    border: 8px solid white;
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
    transition: transform 0.3s;
}
.personal-img:hover { transform: scale(1.05); }

.floating-badge {
    position: absolute;
    bottom: 20px;
    right: 10%;
    background: white;
    padding: 10px 20px;
    border-radius: 30px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    font-weight: bold;
    color: var(--color-secondary);
    animation: bounce 3s infinite;
}
@keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
/* --- Wavy Text Effect --- */
.wavy-text {
    position: relative;
    /* Αφήνουμε κενό για να μην κόβονται τα γράμματα όταν κουνιούνται */
    padding: 5px 0; 
}

.wavy-text span {
    position: relative;
    display: inline-block;
    /* Η μαγεία: Κάθε γράμμα θα κουνιέται */
    animation: wave-anim 1.5s ease-in-out infinite; 
    /* Αρχικά σταματημένο, ξεκινάει όταν κάνεις hover ή μπορούμε να το έχουμε μόνιμα */
    animation-play-state: paused; 
    cursor: default;
    transition: color 0.3s;
}

/* Όταν περνάς το ποντίκι από πάνω, τα γράμματα "χορεύουν" και αλλάζουν χρώμα */
.quote-container:hover .wavy-text span {
    animation-play-state: running;
    color: white; /* Προαιρετικά: Γίνονται λευκά για αντίθεση */
}

@keyframes wave-anim {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px); /* Πόσο ψηλά θα πηδάει το γράμμα */
    }
}
.hero-socials .s-icon {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    background: white;
    border-radius: 50%;
    margin: 0 5px;
    font-size: 1.5rem;
    color: var(--color-primary);
    transition: all 0.3s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    text-decoration: none;
}
.hero-socials .s-icon:hover { transform: translateY(-5px); color: white; }
.hero-socials .insta:hover { background: #C13584; }
.hero-socials .fb:hover { background: #1877F2; }
.hero-socials .tiktok:hover { background: #000000; }

/* --- Social Feed Cards --- */
.social-card {
    background: white;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
}
.card-header-social {
    padding: 15px;
    font-weight: bold;
    color: white;
}
.tiktok-card .card-header-social { background: black; }
.insta-card .card-header-social { background: linear-gradient(45deg, #405de6, #5851db, #833ab4, #c13584, #e1306c, #fd1d1d); }

.card-body-social { padding: 0; }
.placeholder-content img { width: 100%; height: auto; display: block; }
.placeholder-content { padding: 10px; }

/* --- Social Embed Cards (Fixed Height & Scroll) --- */

.social-embed-card {
    background: white;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.1);
    overflow: hidden;
    position: relative;
    transition: transform 0.3s ease;
    /* Flexbox για να κρατάει header/footer στις άκρες */
    display: flex;
    flex-direction: column;
    height: 100%; 
}

/* Hover Effect */
.social-embed-card:hover {
    transform: translateY(-5px);
}
/* --- Extra Magic: Interactive Hint on Hover --- */
.social-embed-card::after {
    content: '👆 Scroll & Click'; /* Το κείμενο που θα φαίνεται */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.5);
    background: rgba(0, 0, 0, 0.2);
    color: white;
    padding: 10px 20px;
    border-radius: 30px;
    font-weight: bold;
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    pointer-events: none; /* Για να μπορείς να κάνεις κλικ από κάτω */
    z-index: 10;
}

/* Όταν κάνεις hover στην κάρτα, εμφανίζεται το μήνυμα */
.social-embed-card:hover::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* Όταν κάνεις hover ακριβώς πάνω στο embed (στο περιεχόμενο), εξαφανίζεται για να δεις καθαρά */
.embed-container:hover ~ .social-embed-card::after { 
    opacity: 0; 
}

/* Περιοχή Embed (Η Οθόνη) - ΕΔΩ ΕΙΝΑΙ ΤΟ ΚΛΕΙΔΙ */
.embed-container {
    padding: 0;
    position: relative;
    z-index: 1;
    background: #fff;
    width: 100%;
    
    /* Σταθερό ύψος για να είναι και τα δύο ακριβώς ίδια */
    height: 500px; 
    
    /* Επιτρέπει το σκρολ αν το περιεχόμενο είναι μεγάλο */
    overflow-y: auto; 
    overflow-x: hidden;
    
    /* Κεντράρισμα περιεχομένου */
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

/* Στυλ για την μπάρα σκρολ (για να είναι κομψή) */
.embed-container::-webkit-scrollbar {
    width: 6px;
}
.embed-container::-webkit-scrollbar-track {
    background: #f1f1f1;
}
.embed-container::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 3px;
}

/* Header & Footer Styles */
.card-header-social {
    padding: 15px;
    text-align: center;
    color: white;
    font-weight: bold;
    font-size: 1.1rem;
    position: relative;
    z-index: 2;
    flex-shrink: 0; /* Να μην συρρικνώνεται */
}

.tiktok-theme .card-header-social { background: black; }
.insta-theme .card-header-social { background: linear-gradient(45deg, #405de6, #c13584, #fd1d1d); }

.card-footer-social {
    padding: 15px;
    background: #f8f9fa;
    border-top: 1px solid #eee;
    position: relative;
    z-index: 2;
    flex-shrink: 0; /* Να μην συρρικνώνεται */
}

/* Magic Glow (Background) */
.magic-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(90, 166, 179, 0.4) 0%, rgba(255,255,255,0) 70%);
    transform: translate(-50%, -50%);
    z-index: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s;
}

.social-embed-card:hover .magic-glow {
    opacity: 1;
}

/* CSS Fixes για τα Embeds να πιάνουν όλο το χώρο */
blockquote.tiktok-embed {
    margin: 0 !important;
    min-width: unset !important;
    width: 100% !important;
}

blockquote.instagram-media {
    min-width: unset !important;
    width: 100% !important;
    margin: 0 !important;
    box-shadow: none !important;
}

/* Buttons */
.btn-insta {
    background: linear-gradient(45deg, #405de6, #c13584); 
    color: white; 
    border: none;
}
.btn-insta:hover { opacity: 0.9; color: white; }

.btn-dark {
    background-color: #000;
    border: none;
}
.btn-dark:hover { background-color: #333; }
/* --- Gallery --- */
.gallery-img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 10px;
    transition: transform 0.3s;
    cursor: pointer;
}
.gallery-img:hover { transform: scale(1.03); box-shadow: 0 5px 15px rgba(0,0,0,0.2); }

/* --- Pillar Article Card --- */
.article-card {
    background: white;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    border: 1px solid rgba(0,0,0,0.05);
}
.article-card img { height: 100%; min-height: 250px; }
.article-card .card-title { color: var(--color-primary-dark); font-weight: 700; margin-bottom: 1rem; }
.source-text { font-size: 0.9rem; margin-bottom: 1.5rem; }

/* --- 3D Flip Card (Contact) --- */
.card-scene {
    perspective: 1000px;
    width: 300px;
    height: 450px; /* Λίγο πιο ψηλή για να χωράει τα κουμπιά */
    margin: 0 auto;
}

.unique-card {
    width: 100%;
    height: 100%;
    position: relative;
    transition: transform 0.8s;
    transform-style: preserve-3d;
    cursor: pointer;
}

.unique-card.is-flipped {
    transform: rotateY(180deg);
}

.unique-card-front, .unique-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden; /* Κρύβει την πίσω πλευρά όταν δεν κοιτάει */
    border-radius: 15px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.2);
    overflow: hidden;
    background: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.unique-card img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* Για να μη παραμορφώνεται η κάρτα */
}

.unique-card-back {
    transform: rotateY(180deg);
    background-color: #f8f9fa; /* Λίγο διαφορετικό φόντο πίσω */
}

.click-hint {
    position: absolute;
    bottom: 20px;
    background: rgba(255,255,255,0.8);
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 0.9rem;
    color: var(--color-primary);
    font-weight: bold;
    animation: pulse 2s infinite;
}
@keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

/* --- Newsletter --- */
.newsletter-bg {
    background-color: var(--color-secondary);
    color: white;
    margin-bottom: 0 !important; /* Κολλητά στο footer */
    padding: 3rem 0;
}
.sender-form-wrapper {
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

/* --- Footer --- */
footer {
    background-color: #333;
    color: white;
    text-align: center;
    padding: 0.5rem
}
footer a { color: var(--color-accent); text-decoration: none; }
footer a:hover { text-decoration: underline; }

/* Scroll Top Btn */
#scrollToTopBtn {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
    background-color: var(--color-accent);
    color: #fff;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 24px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
#scrollToTopBtn::before { content: '↑'; }

/* Mobile Tweaks */
@media (max-width: 768px) {
    .text-content { text-align: center; }
    .text-content h1 { font-size: 2rem; }
    .personal-img { width: 60%; margin-bottom: 2rem; }
    .floating-badge { right: 5%; }
    .contact-bar { text-align: center; }
}

@media (max-width: 768px) {
    .contact-bar .container {
        justify-content: center !important; /* Στα tablet/κινητά κεντράρισμα */
        gap: 10px;
    }
    
    .top-socials {
        margin-bottom: 5px; /* Λίγο κενό αν πέσουν σε δεύτερη γραμμή */
        width: 100%;
        text-align: center;
    }

    .top-contact {
        justify-content: center;
        width: 100%;
        flex-wrap: wrap;
    }
    
    .contact-bar {
        padding: 10px 0;
    }
    
    .btn-contact-nav {
        margin-left: 0;
        margin-top: 10px;
        text-align: center;
    }
}

/* --- Advanced Gallery Styles --- */

/* Κουμπιά Φίλτρων */
.gallery-filters .filter-btn {
    border: 2px solid var(--color-primary);
    background: transparent;
    color: var(--color-primary);
    padding: 8px 20px;
    margin: 5px;
    border-radius: 30px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s;
}

.gallery-filters .filter-btn:hover,
.gallery-filters .filter-btn.active {
    background: var(--color-primary);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(90, 166, 179, 0.3);
}

/* Gallery Card */
.gallery-card {
    position: relative;
    border-radius: 15px;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    height: 300px; /* Σταθερό ύψος για ομοιομορφία */
}

.gallery-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

/* Overlay (Το σκούρο φίλτρο με τα γράμματα) */
.gallery-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(90, 166, 179, 0.85); /* Πετρόλ διαφάνεια */
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    opacity: 0; /* Αρχικά κρυφό */
    transition: opacity 0.3s ease;
    padding: 20px;
}

.gallery-text {
    color: white;
    transform: translateY(20px); /* Έρχεται από κάτω */
    transition: transform 0.3s ease;
}

.gallery-text h5 {
    font-size: 1.5rem;
    font-weight: 800;
    margin-bottom: 10px;
}

.click-hint {
    position: absolute; /* Απόλυτη θέση */
    bottom: 20px; /* 20px από το κάτω μέρος */
    left: 50%; /* Κέντρο */
    transform: translateX(-50%); /* Διόρθωση κεντραρίσματος */
    
    border: 1px solid white;
    padding: 8px 20px;
    border-radius: 20px;
    font-size: 0.9rem;
    color: white;
    
    opacity: 0; /* Αρχικά κρυφό για να εμφανιστεί με εφέ */
    transition: opacity 0.4s ease 0.1s; /* Καθυστέρηση 0.1s για ωραίο εφέ */
}

/* Hover Effects */
.gallery-card:hover .gallery-img {
    transform: scale(1.1); /* Zoom in εικόνας */
}

.gallery-card:hover .gallery-overlay {
    opacity: 1; /* Εμφάνιση Overlay */
}

.gallery-card:hover .gallery-text {
    transform: translateY(0); /* Εμφάνιση κειμένου */
}

/* Animation για το φιλτράρισμα */
.gallery-item {
    transition: all 0.4s ease-out;
}
.gallery-item.hide {
    display: none; /* Κρύψιμο */
}
.gallery-item.show {
    animation: fadeIn 0.5s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}

/* --- Featured Article Styles (Full Cover Image) --- */

.article-wrapper {
    background: white;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    overflow: hidden; /* Κρατάει την εικόνα μέσα στις γωνίες */
    margin-bottom: 2rem;
}

/* Image Side */
.article-image-container {
    height: 100%; /* Πιάνει όλο το ύψος της στήλης */
    min-height: 400px; /* Ελάχιστο ύψος για κινητά */
    position: relative;
    overflow: hidden;
}

.article-img {
    width: 100%;
    height: 100%; /* Γεμίζει το ύψος */
    object-fit: cover; /* Κόβει ό,τι περισσεύει χωρίς να παραμορφώνει (Crop) */
    object-position: center; /* Κεντράρισμα */
    transition: transform 0.5s ease;
}

.article-wrapper:hover .article-img {
    transform: scale(1.05);
}

/* Glass Badge (Διάφανο) */
.article-badge-glass {
    position: absolute;
    top: 20px;
    left: 20px;
    /* Glassmorphism Effect */
    background: rgba(255, 255, 255, 0.2); 
    backdrop-filter: blur(8px); /* Το θόλωμα */
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    padding: 8px 15px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.article-badge-glass .day { 
    display: block; 
    font-size: 1.1rem; 
    font-weight: 800;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3); /* Σκιά για να διαβάζεται */
}
.article-badge-glass .source { 
    display: block; 
    font-size: 0.75rem; 
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}

/* Content Side */
.article-content {
    padding: 40px;
    height: 100%; /* Γεμίζει το ύψος */
    display: flex;
    flex-direction: column;
    justify-content: center; /* Κεντράρει το κείμενο κάθετα */
}

.article-headline {
    color: var(--color-primary-dark);
    font-weight: 800;
    font-size: 1.8rem;
    margin-bottom: 10px;
    line-height: 1.3;
}

.article-meta {
    font-size: 0.95rem;
    color: #888;
    border-bottom: 1px solid #eee;
    padding-bottom: 15px;
    margin-bottom: 20px;
}

/* Typography */
.lead-text {
    font-size: 1.15rem;
    color: #444;
    font-weight: 600;
}

.article-body p {
    color: #555;
    line-height: 1.7;
    text-align: justify;
}

.article-quote {
    background: #fbfdf6;
    border-left: 4px solid var(--color-secondary);
    padding: 15px 20px;
    margin: 20px 0;
    font-style: italic;
    color: #555;
    font-weight: 600;
}
.article-quote i {
    color: var(--color-secondary);
    opacity: 0.3;
    font-size: 1.5rem;
    margin-right: 10px;
}

/* Source Disclaimer Text (Italic) */
.source-disclaimer {
    font-style: italic;
    font-size: 0.85rem;
    color: #888;
    border-top: 1px solid #eee;
    padding-top: 10px;
}

/* Button */
.read-more-btn {
    display: inline-block;
    margin-top: 10px;
    background: var(--color-primary);
    color: white;
    padding: 12px 30px;
    border-radius: 30px;
    text-decoration: none;
    font-weight: bold;
    transition: all 0.3s;
    align-self: flex-start; /* Αριστερή στοίχιση */
    box-shadow: 0 4px 15px rgba(90, 166, 179, 0.4);
}

.read-more-btn:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
    color: white;
}

/* Mobile Tweaks */
@media (max-width: 991px) {
    .article-image-container {
        height: 300px;
        min-height: auto;
    }
    .article-content {
        padding: 30px 20px;
    }
}

/* --- Clean Split Modal Styles --- */

.clean-modal-content {
    border-radius: 15px; /* Απαλές γωνίες */
    overflow: hidden;
    border: none;
    background: white;
    height: 85vh; /* Σταθερό ύψος για να δείχνει ωραίο το split */
    box-shadow: 0 20px 50px rgba(0,0,0,0.2);
}

/* Αριστερή Στήλη (Εικόνα) */
.img-column {
    background-color: #f0f0f0; /* Απαλό γκρι φόντο αν η εικόνα αργεί */
    height: 100%;
    overflow: hidden;
}

#modalImage {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Γεμίζει όλο τον χώρο (9:16 feel) χωρίς κενά */
    object-position: center;
    transition: transform 0.5s ease;
}

/* Εφέ: Zoom ελάχιστα όταν περνάς το ποντίκι πάνω από την εικόνα */
.img-column:hover #modalImage {
    transform: scale(1.03);
}

/* Δεξιά Στήλη (Περιεχόμενο) */
.modal-body-content {
    padding: 3rem; /* Πολύς αέρας για να αναπνέει το κείμενο */
}

/* Τίτλος */
.modal-title-clean {
    font-weight: 800;
    font-size: 2rem;
    color: #333; /* Σκούρο Γκρι/Μαύρο (Όχι μπλε) */
    margin-bottom: 1rem;
    line-height: 1.2;
}

/* Διαχωριστική Γραμμή */
.title-divider {
    width: 60px;
    height: 4px;
    background-color: var(--color-secondary); /* Το σομόν χρώμα σου */
    margin-bottom: 1.5rem;
    border-radius: 2px;
}

/* Κείμενο Περιγραφής */
.modal-desc-clean {
    font-size: 1.1rem;
    color: #555;
    line-height: 1.8; /* Άνετο διάβασμα */
}

/* Extra Info (Κάτω κάτω) */
.modal-extra-info {
    color: #999;
    font-size: 0.9rem;
    font-style: italic;
    border-top: 1px solid #eee;
    padding-top: 15px;
}

/* Custom Close Button */
.btn-close-custom {
    position: absolute;
    top: 20px;
    right: 20px;
    background-color: #f8f9fa; /* Γκρι φόντο για να φαίνεται */
    border-radius: 50%;
    padding: 10px;
    background-size: 10px; /* Πιο μικρό 'X' */
    opacity: 1;
    transition: transform 0.2s;
    z-index: 10;
}
.btn-close-custom:hover {
    transform: rotate(90deg);
    background-color: var(--color-accent); /* Κίτρινο στο hover */
}

/* --- Mobile Responsive Fixes --- */
@media (max-width: 991px) {
    .clean-modal-content {
        height: auto; /* Στο κινητό το ύψος είναι αυτόματο */
        max-height: 95vh;
        overflow-y: auto;
    }
    
    .img-column {
        height: 400px; /* Σταθερό ύψος εικόνας στο κινητό */
    }
    
    .modal-body-content {
        padding: 1.5rem; /* Λιγότερο padding στο κινητό */
    }
    
    .modal-title-clean {
        font-size: 1.5rem;
    }
}

/* --- Research Viewer Styles --- */

.research-viewer-wrapper {
    position: relative;
    width: 90%;
    max-width: 1000px;
    height: 85vh; /* Σταθερό ύψος */
    background: white;
    border-radius: 20px;
    box-shadow: 0 25px 50px rgba(0,0,0,0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: scale(0.8);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.magic-overlay.active .research-viewer-wrapper {
    transform: scale(1);
}

/* Header */
.research-header {
    padding: 15px 25px;
    background: #f8f9fa;
    border-bottom: 1px solid #eee;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0; /* Να μην μικραίνει */
}

.research-header h4 {
    margin: 0;
    font-size: 1.2rem;
    color: var(--color-primary);
    font-weight: 800;
}

.btn-download-pdf {
    background: var(--color-secondary);
    color: white;
    padding: 5px 15px;
    border-radius: 15px;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: bold;
    transition: 0.3s;
}
.btn-download-pdf:hover {
    background: var(--color-accent);
    color: white;
}

/* Περιοχή PDF */
.pdf-container {
    flex: 1; /* Πιάνει όλο τον υπόλοιπο χώρο */
    background: #525659; /* Σκούρο γκρι (τυπικό για PDF viewers) */
    position: relative;
    overflow: hidden;
}

/* Fallback (Αν δεν ανοίξει το PDF) */
.pdf-fallback {
    width: 100%;
    height: 100%;
    background: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* --- Custom SweetAlert Styling (Research PDF) --- */

/* Το γενικό κουτί του Popup */
.research-popup-custom {
    border-radius: 25px !important; /* Πολύ στρογγυλεμένες γωνίες */
    padding: 0 !important;
    border: 4px solid white; /* Λευκό περίγραμμα */
    box-shadow: 0 20px 60px rgba(90, 166, 179, 0.4) !important; /* Σκιά στο χρώμα του Πετρόλ */
    font-family: 'Nunito', sans-serif !important; /* Η γραμματοσειρά σου */
}

/* Ο Τίτλος */
.research-title-custom {
    color: var(--color-primary) !important; /* Πετρόλ */
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    padding-top: 1.5rem !important;
    padding-bottom: 0.5rem !important;
}

/* Το κουμπί κλεισίματος (X) */
.research-close-custom {
    color: var(--color-secondary) !important; /* Σομόν */
    opacity: 1 !important;
    transition: transform 0.3s !important;
}
.research-close-custom:hover {
    transform: rotate(90deg) scale(1.2) !important;
    color: var(--color-primary) !important; /* Αλλαγή σε Πετρόλ στο hover */
    background: transparent !important;
}

/* Το κουμπί Λήψης (Custom style) */
.btn-download-swal {
    background-color: var(--color-secondary); /* Σομόν */
    color: white;
    padding: 10px 25px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: bold;
    display: inline-block;
    box-shadow: 0 4px 10px rgba(243, 138, 118, 0.4);
    transition: all 0.3s;
    border: none;
}

.btn-download-swal:hover {
    background-color: var(--color-primary); /* Πετρόλ στο hover */
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(90, 166, 179, 0.4);
}
/* --- Fix Contact Form Colors --- */

/* Το φόντο όλου του section */
.contact-bg {
    background: linear-gradient(135deg, #5aa6b3 0%, #468a96 100%) !important;
    padding: 5rem 0;
    color: white; /* Για τους τίτλους έξω από την κάρτα */
}

/* Η κάρτα της φόρμας */
.contact-card {
    background: white !important;
    padding: 2.5rem;
    border-radius: 25px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.2);
}

/* Τίτλος μέσα στην κάρτα */
.form-header {
    color: #5aa6b3 !important; /* Πετρόλ */
    font-weight: 800;
    text-align: center;
    margin-bottom: 1.5rem;
}

/* Πεδία (Inputs) - ΕΔΩ ΗΤΑΝ ΤΟ ΠΡΟΒΛΗΜΑ */
.form-floating > .form-control,
.form-floating > .form-select {
    background-color: #f9f9f9 !important;
    border: 2px solid #e0e0e0 !important;
    color: #333 !important; /* Σκούρα γράμματα για να φαίνονται! */
    font-weight: 600;
}

/* Όταν κάνεις κλικ στο πεδίο */
.form-floating > .form-control:focus,
.form-floating > .form-select:focus {
    background-color: #fff !important;
    border-color: #f38a76 !important; /* Σομόν περίγραμμα */
    color: #333 !important;
    box-shadow: none !important;
}

/* Οι ετικέτες (Labels) */
.form-floating > label {
    color: #666 !important;
}

/* Κουμπί Αποστολής */
.btn-submit-contact {
    background-color: #f38a76 !important; /* Σομόν */
    color: white !important;
    font-weight: 700;
    padding: 12px 40px;
    border-radius: 50px;
    border: none;
    width: 100%;
    margin-top: 10px;
}
.btn-submit-contact:hover {
    background-color: #f9c97c !important; /* Κίτρινο */
    transform: translateY(-2px);
}

/* --- Magic Loader Styles --- */

#loader-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fbfdf6; /* Το απαλό χρώμα φόντου σου */
    z-index: 999999; /* Πάνω από ΟΛΑ */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: opacity 0.5s ease-out, visibility 0.5s;
}

/* Όταν φορτώσει, προσθέτουμε αυτή την κλάση για να κρυφτεί */
.loader-hidden {
    opacity: 0;
    visibility: hidden;
}

.loader-content {
    position: relative;
    width: 150px;
    height: 150px;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Το κουτί του λογοτύπου */
.loader-logo-box {
    width: 100px;
    height: 100px;
    background: white;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 0 20px rgba(90, 166, 179, 0.2);
    z-index: 10;
    animation: logo-pulse 2s infinite ease-in-out;
}

.loader-logo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
}

/* --- Τα Μαγικά Δαχτυλίδια --- */
.ring-1, .ring-2, .ring-3 {
    position: absolute;
    border-radius: 50%;
    border: 4px solid transparent;
}

/* Δαχτυλίδι 1: Πετρόλ (Γυρίζει κανονικά) */
.ring-1 {
    width: 100%;
    height: 100%;
    border-top-color: var(--color-primary); /* Πετρόλ */
    animation: spin 1.5s linear infinite;
    z-index: 3;
}

/* Δαχτυλίδι 2: Σομόν (Γυρίζει ανάποδα και πιο αργά) */
.ring-2 {
    width: 125%; /* Πιο μεγάλο */
    height: 125%;
    border-bottom-color: var(--color-secondary); /* Σομόν */
    animation: spin-reverse 2.5s linear infinite;
    z-index: 2;
}

/* Δαχτυλίδι 3: Κίτρινο (Γυρίζει κανονικά, πολύ αργά) */
.ring-3 {
    width: 150%; /* Το πιο μεγάλο */
    height: 150%;
    border-left-color: var(--color-accent); /* Κίτρινο */
    animation: spin 3.5s linear infinite;
    z-index: 1;
}

/* Κείμενο από κάτω */
.loading-text {
    margin-top: 40px;
    font-family: 'Patrick Hand', cursive;
    font-size: 1.2rem;
    color: var(--color-primary);
    animation: text-blink 1.5s infinite;
}

/* --- Animations --- */
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes spin-reverse {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(-360deg); }
}

@keyframes logo-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

@keyframes text-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.footer-legal {
    margin-bottom: 1rem;
}
.footer-legal a {
    color: #bbb;
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.3s;
}
.footer-legal a:hover { color: white; text-decoration: underline; }
.separator { margin: 0 8px; color: #555; }

.copyright { color: #888; font-size: 0.85rem; line-height: 1.6; }
.credits a { color: var(--color-primary); text-decoration: none; }

/* --- Legal Pages Styles (Privacy & Terms) --- */
.legal-header {
    background: linear-gradient(135deg, var(--color-primary) 0%, #468a96 100%);
    padding: 80px 0 40px;
    color: white;
    text-align: center;
    margin-bottom: 3rem;
}
.legal-content {
    max-width: 900px;
    margin: 0 auto 4rem;
    background: white;
    padding: 40px;
    border-radius: 15px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.05);
}
.legal-content h2 { color: var(--color-primary); margin-top: 2rem; font-size: 1.5rem; font-weight: 700; }
.legal-content h3 { color: var(--color-secondary); margin-top: 1.5rem; font-size: 1.2rem; font-weight: 600; }
.legal-content p, .legal-content li { color: #555; line-height: 1.7; margin-bottom: 1rem; text-align: justify; }
.legal-content ul { padding-left: 20px; }