/* =================================================================
   ΓΕΩΕΞΕΛΙΞΗ Ε.Ε. — Κεντρικό φύλλο στυλ
   Εταιρικός σχεδιασμός, συμβατός με WCAG 2.0 επίπεδο AA.

   ΜΟΝΑΔΕΣ: Όλα τα μεγέθη (γραμματοσειρές, πλάτη, ύψη, περιθώρια,
   εσωτερικά διαστήματα) εκφράζονται σε μονάδες viewport μέσω της
   μεταβλητής --u (κατά προτίμηση vmax). Η --u προσαρμόζεται ανά
   μέγεθος οθόνης ώστε το περιεχόμενο να παραμένει αναγνώσιμο.
   Μόνο τα περιγράμματα (borders) και οι δείκτες εστίασης (outline)
   ορίζονται σε px, ώστε να παραμένουν ευκρινείς και πάντα ορατά
   (απαίτηση προσβασιμότητας).
   ================================================================= */

:root {
    /* Βασική μονάδα viewport — κατά προτίμηση vmax (μεγάλες οθόνες) */
    --u: 1vmax;

    /* Εταιρική παλέτα — ελεγμένη για αντίθεση WCAG AA */
    --color-primary:       #0a4b5e; /* βαθύ teal — αντίθεση ~8:1 σε λευκό */
    --color-primary-dark:  #083948;
    --color-accent:        #b3590f; /* γήινο πορτοκαλί — αντίθεση ~5.3:1 σε λευκό */
    --color-text:          #1c2b30; /* κύριο κείμενο */
    --color-text-muted:    #455357; /* δευτερεύον κείμενο — αντίθεση ~7:1 */
    --color-bg:            #ffffff;
    --color-bg-alt:        #eef3f5; /* ανοιχτό γκρι-γαλάζιο */
    --color-border:        #c7d4d8;
    --color-white:         #ffffff;
}

@media (max-width: 1024px) { :root { --u: 1.55vw; } }
@media (max-width: 768px)  { :root { --u: 2.1vw; } }
@media (max-width: 480px)  { :root { --u: 3.7vw; } }

/* ---------- Επαναφορά / βάση ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: 'Roboto', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    font-size: calc(var(--u) * 1.05);
    line-height: 1.65;
    color: var(--color-text);
    background-color: var(--color-bg);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
    line-height: 1.25;
    color: var(--color-primary-dark);
    margin: 0 0 calc(var(--u) * 0.8);
    font-weight: 700;
}

h1 { font-size: calc(var(--u) * 3.2); }
h2 { font-size: calc(var(--u) * 2.2); }
h3 { font-size: calc(var(--u) * 1.5); }
h4 { font-size: calc(var(--u) * 1.2); }

p { margin: 0 0 calc(var(--u) * 1.1); }

a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

a:hover,
a:focus { color: var(--color-accent); }

img { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 calc(var(--u) * 1.1); padding-left: calc(var(--u) * 1.6); }
li { margin-bottom: calc(var(--u) * 0.4); }

/* ---------- Ορατή εστίαση πληκτρολογίου (WCAG 2.4.7) ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.nav-toggle:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ---------- Σύνδεσμος παράκαμψης ---------- */
.skip-link {
    position: absolute;
    left: calc(var(--u) * 1);
    top: calc(var(--u) * -10);
    background: var(--color-primary-dark);
    color: var(--color-white);
    padding: calc(var(--u) * 0.8) calc(var(--u) * 1.4);
    z-index: 1000;
    text-decoration: none;
    border-radius: 0 0 4px 4px;
    transition: top 0.2s ease;
}
.skip-link:focus {
    top: 0;
    color: var(--color-white);
}

/* ---------- Διάταξη (container) ---------- */
.container {
    width: 100%;
    max-width: calc(var(--u) * 80);
    margin-inline: auto;
    padding-inline: calc(var(--u) * 2);
}

/* ---------- Επικεφαλίδα ιστότοπου ---------- */
.site-header {
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
    position: sticky;
    top: 0;
    z-index: 100;
}

.header-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: calc(var(--u) * 1) calc(var(--u) * 1.5);
    padding-block: calc(var(--u) * 1);
    /* Η μπάρα κεφαλίδας είναι λίγο φαρδύτερη από το σώμα, ώστε τα
       μακρύτερα ελληνικά μενού να χωρούν στην ίδια σειρά (όπως τα αγγλικά). */
    max-width: calc(var(--u) * 90);
}

.brand {
    display: flex;
    align-items: center;
    gap: calc(var(--u) * 0.8);
    text-decoration: none;
    color: var(--color-primary-dark);
    margin-right: auto; /* σπρώχνει μενού & κουμπιά στα δεξιά */
}
/* Στοιχείο αλλαγής γραμμής — ενεργό μόνο στο mobile (βλ. media query). */
.header-break { display: none; }
.brand-logo {
    width: calc(var(--u) * 3.2);
    height: calc(var(--u) * 3.2);
}
.brand-text { display: flex; flex-direction: column; }
.brand-name {
    font-weight: 700;
    font-size: calc(var(--u) * 1.4);
    letter-spacing: 0.02em;
}
.brand-tagline {
    font-size: calc(var(--u) * 0.85);
    color: var(--color-text-muted);
}

/* Πλοήγηση */
.site-nav .nav-list {
    list-style: none;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: calc(var(--u) * 0.4) calc(var(--u) * 1.2);
    margin: 0;
    padding: 0;
}
.site-nav a {
    text-decoration: none;
    color: var(--color-text);
    font-size: calc(var(--u) * 0.95);
    font-weight: 500;
    padding: calc(var(--u) * 0.4) 0;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
}
.site-nav a:hover,
.site-nav a:focus { color: var(--color-primary); border-bottom-color: var(--color-accent); }
.site-nav a[aria-current="page"] {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
}

/* Υπομενού «Υπηρεσίες» */
.has-submenu {
    position: relative;
}
.submenu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    width: calc(var(--u) * 1.3);
    height: calc(var(--u) * 1.3);
    margin-left: calc(var(--u) * 0.1);
    background: none;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    padding: 0;
    color: var(--color-primary);
}
.submenu-caret {
    display: block;
    width: calc(var(--u) * 0.55);
    height: calc(var(--u) * 0.55);
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: calc(var(--u) * -0.18); /* οπτικό κεντράρισμα */
    transition: transform 0.15s ease;
}
.has-submenu.is-open .submenu-toggle .submenu-caret {
    transform: rotate(-135deg);
    margin-top: calc(var(--u) * 0.18);
}

.submenu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.submenu a {
    border-bottom: none;
}

/* Στοιχεία που εμφανίζονται μόνο μέσα στο πλήρους οθόνης μενού (mobile) */
.nav-overlay-header,
.nav-overlay-info,
.nav-close { display: none; }

@media (min-width: 1025px) {
    /* Φόντο στο στοιχείο «Υπηρεσίες» κατά το hover/focus */
    .has-submenu {
        padding-inline: calc(var(--u) * 0.7);
        border-radius: 4px;
        transition: background-color 0.15s ease;
    }
    .has-submenu:hover,
    .has-submenu:focus-within { background: var(--color-bg-alt); }
    .has-submenu > a:hover,
    .has-submenu > a:focus { border-bottom-color: transparent; }

    .submenu {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        z-index: 200;
        min-width: calc(var(--u) * 26);
        background: var(--color-white);
        border: 1px solid var(--color-border);
        border-radius: 6px;
        box-shadow: 0 calc(var(--u) * 0.5) calc(var(--u) * 1.5) rgba(8, 57, 72, 0.15);
        padding-block: calc(var(--u) * 0.5);
        text-align: center;
        display: none;
    }
    .has-submenu:hover .submenu,
    .has-submenu:focus-within .submenu,
    .has-submenu.is-open .submenu { display: block; }

    .submenu a {
        display: block;
        padding: calc(var(--u) * 0.6) calc(var(--u) * 1.2);
        font-size: calc(var(--u) * 0.9);
        white-space: nowrap;
    }
    .submenu a:hover,
    .submenu a:focus {
        background: var(--color-bg-alt);
        color: var(--color-primary);
    }
}

/* Κουμπιά επικοινωνίας στην επικεφαλίδα (τηλέφωνο & email) */
.header-actions {
    display: flex;
    align-items: center;
    gap: calc(var(--u) * 0.7);
}
.btn-contact {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--u) * 0.5);
    text-decoration: none;
    font-weight: 500;
    font-size: calc(var(--u) * 0.95);
    line-height: 1;
    padding: calc(var(--u) * 0.7) calc(var(--u) * 1.1);
    border-radius: 4px;
    border: 2px solid transparent;
    color: var(--color-white);
    white-space: nowrap;
}
.btn-contact-icon { width: calc(var(--u) * 1.25); height: calc(var(--u) * 1.25); flex: none; }
.btn-call  { background: var(--color-primary); }
.btn-email { background: var(--color-accent); }
.btn-call:hover,  .btn-call:focus  { background: var(--color-primary-dark); color: var(--color-white); }
.btn-email:hover, .btn-email:focus { background: #8f4309; color: var(--color-white); }

/* Εναλλαγή γλώσσας (EL / EN) */
.lang-switcher {
    display: inline-flex;
    align-items: stretch;
    /* Ίδιο ύψος με το κουμπί τηλεφώνου (.btn-contact) στο desktop:
       γραμμή 0.95u (line-height:1) + padding 2×0.7u + border 2×2px. */
    height: calc(var(--u) * 2.35 + 4px);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    overflow: hidden;
}
.lang-option {
    display: inline-flex;
    align-items: center;
    padding: calc(var(--u) * 0.45) calc(var(--u) * 0.7);
    font-size: calc(var(--u) * 0.85);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    color: var(--color-primary);
    background: var(--color-white);
}
.lang-option + .lang-option { border-left: 1px solid var(--color-border); }
.lang-option:hover,
.lang-option:focus { background: var(--color-bg-alt); color: var(--color-primary-dark); }
.lang-option.is-active {
    background: var(--color-primary);
    color: var(--color-white);
    cursor: default;
}

/* Κουμπί μενού (mobile) */
.nav-toggle {
    display: none;
    align-items: center;
    gap: calc(var(--u) * 0.6);
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    padding: calc(var(--u) * 0.9) calc(var(--u) * 1.4);
    font-size: calc(var(--u) * 1.1);
    font-family: inherit;
    border-radius: 4px;
    cursor: pointer;
}
.nav-toggle-bar,
.nav-toggle-bar::before,
.nav-toggle-bar::after {
    display: block;
    width: calc(var(--u) * 2.2);
    height: 2px;
    background: var(--color-white);
    position: relative;
}
.nav-toggle-bar::before,
.nav-toggle-bar::after {
    content: "";
    position: absolute;
    left: 0;
}
.nav-toggle-bar::before { top: calc(var(--u) * -0.7); }
.nav-toggle-bar::after  { top: calc(var(--u) * 0.7); }

/* ---------- Hero σελίδας ---------- */
.page-hero {
    background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));
    color: var(--color-white);
    padding-block: calc(var(--u) * 4);
}
.page-hero h1 { color: var(--color-white); }
.page-hero .eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: calc(var(--u) * 0.9);
    color: #cfe6ec;
    margin-bottom: calc(var(--u) * 0.6);
}
.page-hero-intro {
    font-size: calc(var(--u) * 1.25);
    max-width: calc(var(--u) * 55);
    margin-bottom: 0;
    color: #eaf3f5;
}

/* ---------- Hero αρχικής (home) ---------- */
.home-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    --hero-blue: linear-gradient(160deg, #07303d 0%, #0a4456 100%); /* μπλε φόντο για επιμέρους στοιχεία */
    /* Μπλε φόντο — διατηρείται σε σχόλιο, ίσως χρειαστεί ξανά
    background:
        radial-gradient(120% 120% at 50% -10%, rgba(16, 99, 122, 0.55), transparent 60%),
        linear-gradient(160deg, #07303d 0%, #0a4456 100%);
    */
    background: rgba(0, 0, 0, 0.6); /* μαύρο διάφανο φόντο (fallback κάτω από το βίντεο) */
    color: var(--color-white);
    padding-block: calc(var(--u) * 5);
    text-align: center;
}
@media (min-width: 769px) {
    .home-hero {
        min-height: 75vh;
        padding-block: calc(var(--u) * 2);
    }
}
/* Μοτίβο πλέγματος (γραμμές) — αφαιρέθηκε, διατηρείται σε σχόλιο
.home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
    background-size: calc(var(--u) * 4) calc(var(--u) * 4);
    -webkit-mask-image: radial-gradient(120% 90% at 50% 0%, #000 30%, transparent 75%);
    mask-image: radial-gradient(120% 90% at 50% 0%, #000 30%, transparent 75%);
}
*/
/* Βίντεο φόντο ήρωα (geo_homepage) */
.hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -3;
}
/* Σκούρο επικάλυμμα για αναγνωσιμότητα κειμένου πάνω στο βίντεο */
.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -2;
    /* Μπλε απόχρωση επικαλύμματος — διατηρείται σε σχόλιο
    background:
        radial-gradient(70% 70% at 50% 45%, rgba(4, 24, 31, 0.55), rgba(4, 24, 31, 0.78)),
        linear-gradient(160deg, rgba(7, 48, 61, 0.45) 0%, rgba(10, 68, 86, 0.45) 100%);
    */
    background:
        radial-gradient(70% 70% at 50% 45%, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.7)); /* μαύρο διάφανο επικάλυμμα */
}
.home-hero-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: calc(var(--u) * 60);
    margin-inline: auto;
}
.hero-eyebrow {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: calc(var(--u) * 0.9);
    font-weight: 700;
    color: #e89a4a; /* φωτεινό amber — αντίθεση AA σε σκούρο φόντο */
    background: var(--hero-blue);
    margin-bottom: calc(var(--u) * 1.4);
    padding: calc(var(--u) * 0.5) calc(var(--u) * 1.3);
    border: 1px solid rgba(232, 154, 74, 0.4);
    border-radius: 999px;
}
.home-hero h1 {
    color: var(--color-white);
    font-size: calc(var(--u) * 4);
    line-height: 1.08;
    margin-bottom: calc(var(--u) * 1.6);
}
.hero-lead {
    font-size: calc(var(--u) * 1.3);
    color: #cddde2;
    max-width: calc(var(--u) * 44);
    margin-inline: auto;
    margin-bottom: calc(var(--u) * 2.4);
}
.hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: calc(var(--u) * 1);
    margin-bottom: calc(var(--u) * 3);
}
.btn-outline {
    background: transparent;
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.55);
}
.home-hero .btn-outline {
    background: var(--hero-blue);
}
.btn-outline:hover,
.btn-outline:focus {
    background: rgba(255, 255, 255, 0.12);
    color: var(--color-white);
    border-color: var(--color-white);
}

/* Λωρίδα εξοπλισμού (badges) */
.hero-equipment {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: calc(var(--u) * 0.8);
    margin: 0;
    padding: 0;
    list-style: none;
}
.hero-equipment li {
    font-size: calc(var(--u) * 0.95);
    color: #cddde2;
    background: var(--hero-blue);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    padding: calc(var(--u) * 0.55) calc(var(--u) * 1.4);
}

/* Σε κινητά: ίδιο πλάτος κουμπιών */
@media (max-width: 768px) {
    .hero-actions {
        flex-direction: column;
        align-items: center;
    }
    .hero-actions .btn {
        width: 100%;
        max-width: calc(var(--u) * 32);
        text-align: center;
    }
}

/* Σε κινητά/tablet: 2 badges εξοπλισμού ανά σειρά */
@media (max-width: 1024px) {
    .hero-equipment {
        width: 100%;
        max-width: calc(var(--u) * 36);
        margin-inline: auto;
    }
    .hero-equipment li {
        flex: 0 0 calc(50% - var(--u) * 1.2);
        box-sizing: border-box;
        text-align: center;
    }
}

/* ---------- Κουμπιά ---------- */
.btn {
    display: inline-block;
    font-family: inherit;
    font-size: calc(var(--u) * 1.05);
    font-weight: 500;
    text-decoration: none;
    padding: calc(var(--u) * 0.95) calc(var(--u) * 2);
    border-radius: 4px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.btn-primary {
    background: var(--color-accent);
    color: var(--color-white);
}
.btn-primary:hover,
.btn-primary:focus {
    background: #8f4309;
    color: var(--color-white);
}
.btn-light {
    background: var(--color-white);
    color: var(--color-primary-dark);
}
.btn-light:hover,
.btn-light:focus {
    background: var(--color-bg-alt);
    color: var(--color-primary-dark);
}

/* ---------- Ενότητες ---------- */
.section { padding-block: calc(var(--u) * 4); }
.section-alt { background: var(--color-bg-alt); }
.section-header { max-width: calc(var(--u) * 55); margin-bottom: calc(var(--u) * 2.5); }
.section-header.center { margin-inline: auto; text-align: center; }

/* ---------- Πλέγμα υπηρεσιών (κάρτες) ---------- */
.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(calc(var(--u) * 26), 1fr));
    gap: calc(var(--u) * 2);
}
@media (max-width: 600px) {
    /* Σε κινητά: μία κάρτα ανά σειρά, κεντραρισμένη, χωρίς υπερχείλιση */
    .services-grid { grid-template-columns: 1fr; }
}
.service-card {
    display: flex;
    flex-direction: column;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    overflow: hidden;
    height: 100%;
}
.service-card-media {
    background: var(--color-bg-alt);
    height: calc(var(--u) * 20);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.service-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.service-card-body {
    padding: calc(var(--u) * 1.6);
    display: flex;
    flex-direction: column;
    flex: 1;
}
.service-card-body h3 { font-size: calc(var(--u) * 1.35); }
.service-card-body p {
    color: var(--color-text-muted);
    font-size: calc(var(--u) * 1);
    flex: 1;
}
.service-card-link {
    align-self: flex-start;
    margin-top: calc(var(--u) * 0.6);
    font-weight: 700;
    text-decoration: none;
    color: var(--color-primary);
}
.service-card-link:hover,
.service-card-link:focus { color: var(--color-accent); text-decoration: underline; }
.service-card-link::after { content: " →"; }

/* ---------- Περιεχόμενο σελίδας υπηρεσίας ---------- */
.content {
    padding-block: calc(var(--u) * 4);
}
.content .container { max-width: calc(var(--u) * 62); }
.content h2 { margin-top: calc(var(--u) * 2.4); }
.content h3 { margin-top: calc(var(--u) * 1.8); color: var(--color-primary); }
.content ul li::marker { color: var(--color-accent); }

/* Βίντεο περιεχομένου (π.χ. βιντεοσκόπηση γεώτρησης) */
.content-video {
    margin: calc(var(--u) * 2.4) 0;
}
.content-video video {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    background: #000;
}
.content-video figcaption {
    margin-top: calc(var(--u) * 0.8);
    font-size: calc(var(--u) * 0.85);
    color: var(--color-text-muted, #5a6b72);
    text-align: center;
}

/* Σταθερό σήμα ΕΣΠΑ (κάτω δεξιά) */
.espa-badge {
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 900;
    display: block;
    width: clamp(280px, 36vw, 480px);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.espa-badge:hover,
.espa-badge:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}
.espa-badge img {
    display: block;
    width: 100%;
    height: auto;
}

/* Πλέγμα ενσωματωμένων βίντεο YouTube */
.video-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(var(--u) * 2.4);
    margin: calc(var(--u) * 1.6) 0 calc(var(--u) * 2.4);
}
.video-grid .content-video {
    margin: 0;
}
.video-embed {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    overflow: hidden;
    background: #000;
}
.video-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Ενσωματωμένος διαδραστικός χάρτης (π.χ. ArcGIS) — πλήρες πλάτος οθόνης */
.map-embed-full {
    width: 85vw;
    margin-left: calc(50% - 42.5vw);
    margin-block: calc(var(--u) * 2.4);
    height: 80vh;
    background: var(--color-bg-alt);
}
.map-embed-full iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Πλαίσιο τονισμού (callout) */
.callout {
    background: var(--color-bg-alt);
    border-left: 4px solid var(--color-accent);
    padding: calc(var(--u) * 1.6) calc(var(--u) * 2);
    border-radius: 0 6px 6px 0;
    margin-block: calc(var(--u) * 2);
}
.callout h3 { margin-top: 0; }
.callout :last-child { margin-bottom: 0; }

/* Λίστα χαρακτηριστικών */
.feature-list { list-style: none; padding-left: 0; }
.feature-list li {
    position: relative;
    padding-left: calc(var(--u) * 2);
    margin-bottom: calc(var(--u) * 0.7);
}
.feature-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--color-accent);
    font-weight: 700;
}

/* ---------- CTA ---------- */
.cta {
    background: var(--color-primary);
    color: var(--color-white);
    padding-block: calc(var(--u) * 3.5);
    text-align: center;
}
.cta p {
    font-size: calc(var(--u) * 1.4);
    max-width: calc(var(--u) * 50);
    margin-inline: auto;
    margin-bottom: calc(var(--u) * 1.6);
    color: var(--color-white);
}

/* ---------- Φόρμα επικοινωνίας ---------- */
.form-grid {
    display: grid;
    gap: calc(var(--u) * 1.4);
    max-width: calc(var(--u) * 48);
}
.field label {
    display: block;
    font-weight: 500;
    margin-bottom: calc(var(--u) * 0.4);
}
.field .required { color: var(--color-accent); }
.field input,
.field textarea {
    width: 100%;
    font-family: inherit;
    font-size: calc(var(--u) * 1.05);
    padding: calc(var(--u) * 0.8) calc(var(--u) * 1);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background: var(--color-white);
    color: var(--color-text);
}
.field input:focus,
.field textarea:focus { border-color: var(--color-primary); }
.field .hint { font-size: calc(var(--u) * 0.85); color: var(--color-text-muted); margin-top: calc(var(--u) * 0.3); }
.form-status {
    padding: calc(var(--u) * 1) calc(var(--u) * 1.4);
    border-radius: 4px;
    margin-bottom: calc(var(--u) * 1.2);
}
.form-status.success { background: #e3f1e6; color: #14532d; border: 1px solid #14532d; }
.form-status.error   { background: #fbe6e6; color: #7a1212; border: 1px solid #7a1212; }

.contact-layout {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: calc(var(--u) * 3);
    align-items: start;
}
.contact-info { background: var(--color-bg-alt); padding: calc(var(--u) * 2); border-radius: 6px; }
.contact-info address { font-style: normal; }

/* ---------- Υποσέλιδο ---------- */
.site-footer {
    background: var(--color-primary-dark);
    color: #d7e4e8;
    padding-top: calc(var(--u) * 3.5);
}
.footer-inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(calc(var(--u) * 20), 1fr));
    gap: calc(var(--u) * 2.5);
    padding-bottom: calc(var(--u) * 3);
}
.footer-title {
    color: var(--color-white);
    font-size: calc(var(--u) * 1.25);
    margin-bottom: calc(var(--u) * 1);
}
.footer-links, .footer-contact { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: calc(var(--u) * 0.5); }
.site-footer a { color: #aed3dc; }
.site-footer a:hover,
.site-footer a:focus { color: var(--color-white); }
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.15);
    padding-block: calc(var(--u) * 1.4);
    font-size: calc(var(--u) * 0.9);
}
.footer-bottom p { margin: 0; }

/* ---------- Εργαλεία / οργάνωση πεδίου (πίνακες-λίστες) ---------- */
.equipment {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: calc(var(--u) * 1.6) calc(var(--u) * 2);
    margin-bottom: calc(var(--u) * 1.6);
}
.equipment h3 { margin-top: 0; }

/* Γκαλερί εικόνων εξοπλισμού */
.equipment-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(calc(var(--u) * 16), 1fr));
    gap: calc(var(--u) * 1.2);
    margin-top: calc(var(--u) * 1.4);
}
.equipment-gallery.single {
    grid-template-columns: minmax(0, calc(var(--u) * 26));
}
.equipment-figure {
    margin: 0;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    overflow: hidden;
    background: var(--color-bg-alt);
}
.equipment-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4 / 3;
}
.lightbox-trigger {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    border: 0;
    background: none;
    cursor: zoom-in;
}
.lightbox-trigger img { display: block; }

/* ---------- Lightbox (πλήρης οθόνη) ---------- */
.lightbox[hidden] { display: none; }
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(8, 57, 72, 0.94);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--u) * 3);
}
body.lightbox-open { overflow: hidden; }
.lightbox-content {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 92vw;
}
.lightbox-image {
    max-width: 92vw;
    max-height: 80vh;
    width: auto;
    height: auto;
    background: var(--color-white);
    border-radius: 4px;
}
.lightbox-caption {
    color: var(--color-white);
    margin-top: calc(var(--u) * 1);
    font-size: calc(var(--u) * 1.05);
    text-align: center;
    max-width: 70vw;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next {
    position: absolute;
    background: rgba(255, 255, 255, 0.15);
    color: var(--color-white);
    border: 0;
    cursor: pointer;
    border-radius: 4px;
    line-height: 1;
}
.lightbox-close {
    top: calc(var(--u) * 2);
    right: calc(var(--u) * 2);
    font-size: calc(var(--u) * 2.8);
    padding: calc(var(--u) * 0.2) calc(var(--u) * 1);
}
.lightbox-prev,
.lightbox-next {
    top: 50%;
    transform: translateY(-50%);
    font-size: calc(var(--u) * 2.4);
    padding: calc(var(--u) * 0.6) calc(var(--u) * 1);
}
.lightbox-prev { left: calc(var(--u) * 2); }
.lightbox-next { right: calc(var(--u) * 2); }
.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover,
.lightbox-close:focus-visible,
.lightbox-prev:focus-visible,
.lightbox-next:focus-visible {
    background: var(--color-accent);
}

/* Σύνδεσμος επιστροφής */
.back-link { display: inline-block; margin-bottom: calc(var(--u) * 1.5); font-weight: 500; }

/* ---------- Responsive: μενού mobile ---------- */
@media (max-width: 1024px) {
    /* ----- Πάνω μπάρα -----
       Σειρά 1: λογότυπο αριστερά + εναλλαγή γλώσσας δεξιά.
       Σειρά 2: κουμπί μενού (hamburger) αριστερά + κουμπιά επικοινωνίας δεξιά. */
    .header-inner {
        flex-wrap: wrap;
        justify-content: space-between;
        gap: calc(var(--u) * 1);
    }
    .brand {
        order: 1;
        /* βάση 0 + grow: το λογότυπο συμπτύσσεται όσο χρειάζεται ώστε ο
           διακόπτης γλώσσας να μένει δίπλα του στην ίδια (1η) σειρά. */
        flex: 1 1 0;
        min-width: 0;            /* επιτρέπει στο κείμενο να συμπτυχθεί/αναδιπλωθεί */
        justify-content: flex-start; /* λογότυπο στα αριστερά */
        margin-right: 0;         /* ακύρωση του auto */
    }
    /* Το ορατό σχέδιο (σταγόνα) μέσα στο logo.png έχει ~16% εσωτερικό κενό
       αριστερά/δεξιά. Το μετατοπίζουμε αριστερά ώστε το ορατό λογότυπο να
       ευθυγραμμίζεται στον άξονα X με το κουμπί «Μενού» της 2ης σειράς. */
    .header-inner > .brand > .brand-logo {
        margin-left: calc(var(--u) * -0.5);
    }
    .lang-switcher {
        order: 2;
        height: auto;            /* ακύρωση του σταθερού ύψους του desktop */
        flex: 0 0 auto;
    }
    .header-break {
        order: 3;
        display: block;
        flex: 0 0 100%;          /* αναγκάζει αλλαγή γραμμής μετά τη γλώσσα */
        height: 0;
        margin: 0;
    }
    .nav-toggle {
        display: inline-flex;
        order: 4;
    }
    .header-actions {
        order: 5;
    }

    /* ----- Πλήρους οθόνης μενού ----- */
    .site-nav {
        display: none;
    }
    .site-nav.is-open {
        display: flex;
        flex-direction: column;
        position: fixed;
        inset: 0;
        z-index: 1000;
        background: var(--color-white);
        overflow-y: auto;
        padding: calc(var(--u) * 1.5) calc(var(--u) * 2) calc(var(--u) * 3);
    }
    body.nav-open { overflow: hidden; }

    /* Κεφαλίδα του overlay: λογότυπο + κουμπί κλεισίματος */
    .nav-overlay-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: calc(var(--u) * 1.5);
        padding-bottom: calc(var(--u) * 1.5);
        border-bottom: 1px solid var(--color-border);
    }
    .nav-overlay-brand { margin: 0; }
    .nav-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: calc(var(--u) * 1.2);
        right: calc(var(--u) * 1.2);
        width: calc(var(--u) * 2.6);
        height: calc(var(--u) * 2.6);
        flex: none;
        background: var(--color-bg-alt);
        color: var(--color-primary-dark);
        border: none;
        border-radius: 50%;
        cursor: pointer;
    }
    .nav-close-icon {
        font-size: calc(var(--u) * 2);
        line-height: 1;
    }
    .nav-close:hover,
    .nav-close:focus { background: var(--color-primary); color: var(--color-white); }

    /* Σύνδεσμοι μενού */
    .site-nav .nav-list {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding-block: calc(var(--u) * 1.5);
    }
    .site-nav .nav-list li { margin: 0; }
    .site-nav .nav-list > li > a {
        display: block;
        padding: calc(var(--u) * 1.2) 0;
        font-size: calc(var(--u) * 1.4);
        font-weight: 700;
        border-bottom: 1px solid var(--color-border);
    }

    /* Υπομενού: πάντα ορατό, χωρίς κουμπί εναλλαγής */
    .submenu-toggle { display: none; }
    .has-submenu {
        display: block;
        border-bottom: 1px solid var(--color-border);
    }
    .has-submenu > a { border-bottom: none; }
    .submenu {
        display: block;
        padding-left: calc(var(--u) * 1.6);
        padding-bottom: calc(var(--u) * 0.8);
    }
    .submenu a {
        display: block;
        padding: calc(var(--u) * 0.7) 0;
        font-size: calc(var(--u) * 1.05);
        color: var(--color-text-muted);
    }

    /* Πληροφορίες κάτω από το μενού: επικοινωνία + εταιρεία */
    .nav-overlay-info {
        display: block;
        margin-top: auto;
        padding-top: calc(var(--u) * 1.5);
    }
    .nav-info-block { margin-bottom: calc(var(--u) * 1.5); }
    .nav-info-title {
        font-size: calc(var(--u) * 1.1);
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--color-primary);
        margin-bottom: calc(var(--u) * 0.6);
    }
    .nav-info-link {
        display: flex;
        align-items: center;
        gap: calc(var(--u) * 0.6);
        padding: calc(var(--u) * 0.5) 0;
        text-decoration: none;
        color: var(--color-text);
        font-size: calc(var(--u) * 1.1);
    }
    .nav-info-link:hover,
    .nav-info-link:focus { color: var(--color-primary); }
    .nav-info-block p {
        margin: calc(var(--u) * 0.2) 0;
        color: var(--color-text-muted);
    }

    .contact-layout { grid-template-columns: 1fr; }
}

/* Στην πάνω μπάρα (mobile/tablet): κουμπιά επικοινωνίας μόνο με εικονίδιο */
@media (max-width: 1024px) {
    .header-actions .btn-contact-text { display: none; }
    .header-actions .btn-contact { padding: calc(var(--u) * 0.7); }
}

/* ---------- Σεβασμός προτίμησης μειωμένης κίνησης ---------- */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; }
}

/* ---------- Βοηθητικά ---------- */
.visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0;
}
