/**
 * tech-theme.css — Homeland Génie Civil
 * Thème corporate BTP — bleu, topaze, violet (palette de marque).
 * Chargé EN DERNIER pour surcharger le thème d'origine.
 *
 * Palette (couleurs de marque fournies) :
 *   --ts-primary  : #2F7FEF  (bleu — confiance, structure)
 *   --ts-mid      : #4A8CF0  (bleu moyen — top bar)
 *   --ts-dark     : #14213D  (marine foncé — footer, overlay, dérivé du bleu)
 *   --ts-accent   : #18C4A9  (topaze — chantier, énergie)
 *   --ts-purple   : #AA5EEA  (violet — conseil, accent premium)
 *   --ts-light    : #EFF4FF  (fond bleu très clair)
 *   --ts-light2   : #FAFBFC  (fond blanc légèrement bleuté)
 *   --ts-text     : #1E2A38
 *   --ts-muted    : #64748B
 */

:root {
    --ts-primary  : #2F7FEF;
    --ts-mid      : #4A8CF0;
    --ts-dark     : #14213D;
    --ts-accent   : #18C4A9;
    --ts-purple   : #AA5EEA;
    --ts-light    : #EFF4FF;
    --ts-light2   : #FAFBFC;
    --ts-text     : #1E2A38;
    --ts-muted    : #64748B;
    --ts-border   : #D8E3EE;
    --ts-radius   : 8px;
    --ts-shadow   : 0 4px 24px rgba(47,127,239,.16);
}

/* ═══════════════════════════════════════════════════════════
   1. TYPOGRAPHIE GLOBALE
   ═══════════════════════════════════════════════════════════ */
body { color: var(--ts-text); background: #fff; }
h1,h2,h3,h4,h5,h6 { color: var(--ts-dark); }
a { transition: color .2s; }

/* ═══════════════════════════════════════════════════════════
   2. BOUTONS PRINCIPAUX
   ═══════════════════════════════════════════════════════════ */
.main-btn {
    background: var(--ts-primary) !important;
    border-color: var(--ts-primary) !important;
    color: #fff !important;
    border-radius: var(--ts-radius) !important;
    transition: background .25s, transform .2s, box-shadow .25s !important;
    box-shadow: 0 4px 14px rgba(47,127,239,.22) !important;
}
.main-btn:hover {
    background: var(--ts-dark) !important;
    border-color: var(--ts-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(20,33,61,.28) !important;
}
.main-btn-2 {
    background: transparent !important;
    border: 2px solid var(--ts-primary) !important;
    color: var(--ts-primary) !important;
}
.main-btn-2:hover {
    background: var(--ts-primary) !important;
    color: #fff !important;
}
.bg-danger { background-color: var(--ts-primary) !important; }
a.bg-danger:hover { background-color: var(--ts-dark) !important; }

/* ═══════════════════════════════════════════════════════════
   3. HEADER — compact & palette claire
   ═══════════════════════════════════════════════════════════ */
.header-area.header-2-area {
    box-shadow: 0 2px 14px rgba(47,127,239,.09);
}

/* ── Top bar : bleu moyen au lieu du marine foncé ── */
.header-area.header-2-area .header-top-2 {
    background: var(--ts-mid) !important;
    padding: 7px 0 !important;           /* ↓ réduit de 17px → 7px */
    border-bottom: none !important;
}
/* Supprime le bandeau rouge/bleu foncé de gauche */
.header-area.header-2-area .header-top-2::before { display: none !important; }

/* ── Supprime le fond rouge derrière le logo ── */
.header-area.header-2-area .main-header .main-header-item .main-header-menus .header-logo {
    background: transparent !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
    padding-right: 30px !important;
    display: flex !important;
    align-items: center !important;
}
.header-area.header-2-area .main-header .main-header-item .main-header-menus .header-logo img {
    max-height: 88px;
}

.header-top-2 .header-info ul li,
.header-top-2 .header-info ul li a { color: rgba(255,255,255,.90) !important; font-size: 13px; }
.header-top-2 .header-info ul li a:hover { color: #fff !important; }
.header-top-2 .social ul li a { color: rgba(255,255,255,.75) !important; }
.header-top-2 .social ul li a:hover { color: #fff !important; }

/* ── Barre principale (nav) — hauteur réduite ── */
.header-area .main-header { background: #fff !important; }

/* line-height contrôle la hauteur des liens nav (original = 70px) */
.header-area .main-header .main-header-item .header-menu ul li > a {
    line-height: 50px !important;        /* ↓ réduit de 70px → 50px */
    font-size: 14px !important;
    font-weight: 600;
    color: var(--ts-text) !important;
    padding: 0 14px !important;
}
.header-area .main-header .main-header-item .header-menu ul li > a:hover,
.header-area .main-header .main-header-item .header-menu ul li > a.active {
    color: var(--ts-primary) !important;
}
.header-area .main-header .main-header-item .header-btn a {
    background: var(--ts-primary) !important;
    line-height: 50px !important;        /* synchronisé avec la nav */
    padding: 0 30px !important;
    font-size: 13px !important;
    border-right: none !important;
    border-radius: 0 var(--ts-radius) var(--ts-radius) 0 !important;
}
.header-area .main-header .main-header-item .header-btn a:hover {
    background: var(--ts-dark) !important;
}
/* Supprime le bandeau gris/bleu de gauche du main-header */
.header-area .main-header::before { display: none !important; }

/* Langue switcher */
.ts-lang-switcher a {
    color: var(--ts-text);
    font-size: 12px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    border: 1px solid var(--ts-border);
    text-decoration: none;
    transition: background .2s, color .2s;
}
.ts-lang-switcher a:hover,
.ts-lang-switcher a.active {
    background: var(--ts-primary);
    border-color: var(--ts-primary);
    color: #fff;
}
.ts-lang-switcher a.active { background: var(--ts-primary); color: #fff; }

/* ── Lien actif — couleur + soulignement ── */
.header-area .main-header .main-header-item .header-menu ul li > a.active {
    color: var(--ts-primary) !important;
    font-weight: 700 !important;
}
.header-area .main-header .main-header-item .header-menu ul li.active > a,
.header-area .main-header .main-header-item .header-menu ul li > a.active {
    position: relative;
}
.header-area .main-header .main-header-item .header-menu ul li > a.active::after {
    content: '';
    position: absolute;
    bottom: 6px;
    left: 14px;
    right: 14px;
    height: 2px;
    background: var(--ts-primary) !important;
    border-radius: 2px;
}
/* ancienne classe text-danger — compatibilité */
.main-header .header-menu ul li a.text-danger {
    color: var(--ts-primary) !important;
    font-weight: 700 !important;
}

/* Icône hamburger / search */
.header-right-action > ul > li > a,
.header-right-action > ul > li > button {
    color: var(--ts-text) !important;
}
.header-right-action > ul > li > a:hover { color: var(--ts-primary) !important; }

/* ── Sub-menu dropdown ── */
.header-area .main-header .sub-menu {
    border-top: 2px solid var(--ts-primary) !important;
}
.header-area .main-header .sub-menu li a { color: var(--ts-text) !important; }
.header-area .main-header .sub-menu li a:hover { color: var(--ts-primary) !important; }

/* ═══════════════════════════════════════════════════════════
   4. SEARCH OVERLAY
   ═══════════════════════════════════════════════════════════ */
#searchOverlay { background: rgba(20,33,61,.96) !important; }
#searchClose:hover { background: var(--ts-primary) !important; }
#searchInputWrap:focus-within { border-color: var(--ts-primary) !important; box-shadow: 0 0 0 3px rgba(47,127,239,.12) !important; }
#searchInputWrap:focus-within > i { color: var(--ts-primary) !important; }
.field-wrap:focus-within .field-icon { color: var(--ts-primary) !important; }
.field-wrap input:focus, .field-wrap textarea:focus {
    border-color: var(--ts-primary) !important;
    box-shadow: 0 0 0 3px rgba(47,127,239,.08) !important;
}

/* ═══════════════════════════════════════════════════════════
   5. HERO / BANNER
   ═══════════════════════════════════════════════════════════ */
.banner-area.banner-2-area { position: relative; }
.banner-area .banner-content .title { color: #fff !important; }
.banner-area .banner-content p { color: rgba(255,255,255,.88) !important; }
.ts-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(20,33,61,.82) 0%, rgba(170,94,234,.38) 55%, rgba(47,127,239,.55) 100%);
    pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════
   6. STATS BAR
   ═══════════════════════════════════════════════════════════ */
.ts-stats {
    background: linear-gradient(135deg, var(--ts-primary) 0%, var(--ts-purple) 100%);
    padding: 44px 0;
}
.ts-stat { text-align: center; color: #fff; }
.ts-stat-num { font-size: 44px; font-weight: 800; line-height: 1; display: block; }
.ts-stat-num sup { font-size: 22px; vertical-align: top; margin-top: 8px; }
.ts-stat-label { font-size: 12px; color: rgba(255,255,255,.78); text-transform: uppercase; letter-spacing: 1.5px; margin-top: 6px; display: block; }
.ts-stat-divider { width: 1px; background: rgba(255,255,255,.18); align-self: stretch; }
.ch-stats-bar { background: var(--ts-primary) !important; }
.ch-stat-num  { color: #fff !important; }
.ch-stat-lbl  { color: rgba(255,255,255,.80) !important; }

/* ═══════════════════════════════════════════════════════════
   7. SECTION TITLES
   ═══════════════════════════════════════════════════════════ */
.services-title .title::before,
.leadership-title .title::before,
.news-title .title::before,
.footer-title .title::before {
    background: var(--ts-primary) !important;
}

/* ═══════════════════════════════════════════════════════════
   8. SERVICES CARDS
   ═══════════════════════════════════════════════════════════ */
.services-item {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 3px 18px rgba(47,127,239,.09);
    transition: transform .25s, box-shadow .25s;
}
.services-item:hover { transform: translateY(-5px); box-shadow: var(--ts-shadow); }
.services-item .icon { background: var(--ts-primary) !important; }
.services-item .services-content a { color: var(--ts-primary) !important; }
.services-item .services-content a:hover { color: var(--ts-dark) !important; }

/* ── Grille services tech ── */
.ts-services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 24px;
}
.ts-service-card {
    background: #fff;
    border: 1px solid var(--ts-border);
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    transition: transform .25s, box-shadow .25s, border-color .25s;
    position: relative;
    overflow: hidden;
}
.ts-service-card::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--ts-primary), var(--ts-purple), var(--ts-accent));
    transform: scaleX(0);
    transition: transform .3s;
}
.ts-service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 36px rgba(47,127,239,.14);
    border-color: var(--ts-primary);
}
.ts-service-card:hover::before { transform: scaleX(1); }
.ts-service-icon {
    width: 68px; height: 68px;
    border-radius: 50%;
    background: var(--ts-light);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 18px;
    font-size: 26px;
    color: var(--ts-primary);
    transition: background .25s, color .25s;
}
.ts-service-card:hover .ts-service-icon { background: var(--ts-primary); color: #fff; }
.ts-service-card h4 { font-size: 17px; font-weight: 700; margin-bottom: 8px; color: var(--ts-dark); }
.ts-service-card p  { font-size: 14px; color: var(--ts-muted); line-height: 1.7; margin: 0; }

/* ═══════════════════════════════════════════════════════════
   9. CTA BANDE
   ═══════════════════════════════════════════════════════════ */
.project-contact-area .project-contact-item {
    background: linear-gradient(135deg, var(--ts-primary) 0%, var(--ts-purple) 55%, var(--ts-dark) 100%) !important;
    border-radius: 12px !important;
}
.project-contact-item .title { color: #fff !important; }
.project-contact-item .urgent-call-item h4 { color: #fff !important; }
.project-contact-item .urgent-call-item p { color: rgba(255,255,255,.70) !important; }

/* ═══════════════════════════════════════════════════════════
   10. À PROPOS / SOLUTION
   ═══════════════════════════════════════════════════════════ */
.solution-item h4 i { color: var(--ts-primary) !important; }
.ch-skill-fill { background: linear-gradient(90deg, var(--ts-primary), var(--ts-accent)) !important; }
.ch-skill-pct  { color: var(--ts-primary) !important; }

/* ═══════════════════════════════════════════════════════════
   11. ÉQUIPE / LEADERSHIP
   ═══════════════════════════════════════════════════════════ */
.leadership-item .social { background: var(--ts-primary) !important; }
.leadership-item .social ul li a:hover { color: var(--ts-accent) !important; }

/* ═══════════════════════════════════════════════════════════
   12. ACTUALITÉS
   ═══════════════════════════════════════════════════════════ */
.news-thumb-content .title a:hover,
.news-content .title a:hover,
.news-item .news-content a:hover { color: var(--ts-primary) !important; }

/* ═══════════════════════════════════════════════════════════
   13. NEWSLETTER
   ═══════════════════════════════════════════════════════════ */
.ch-newsletter-section { background: var(--ts-dark) !important; }
.ch-nl-form button { background: var(--ts-primary) !important; }
.ch-nl-form button:hover { background: var(--ts-accent) !important; }
.ch-nl-form input:focus { border-color: var(--ts-primary) !important; }

/* ═══════════════════════════════════════════════════════════
   14. FOOTER
   ═══════════════════════════════════════════════════════════ */
.footer-area { background: var(--ts-dark) !important; }
.footer-widget .footer-title .title::before { background: var(--ts-accent) !important; }
.footer-about-list ul li a i { color: var(--ts-accent) !important; }
.footer-about-list ul li a:hover { color: var(--ts-accent) !important; }
.footer-news .news-item-content a:hover { color: var(--ts-accent) !important; }
.footer-copyright { border-top-color: rgba(255,255,255,.10) !important; }
.footer-copyright p, .footer-copyright a { color: rgba(255,255,255,.55) !important; }
.footer-copyright a:hover { color: var(--ts-accent) !important; }
.social ul li a:hover { background: var(--ts-primary) !important; border-color: var(--ts-primary) !important; }
.ts-footer-brand p { color: rgba(255,255,255,.65); font-size: 14px; line-height: 1.8; }
.ts-footer-social a {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.20);
    color: rgba(255,255,255,.70);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 13px;
    transition: background .2s, border-color .2s;
    margin-right: 5px;
}
.ts-footer-social a:hover { background: var(--ts-primary); border-color: var(--ts-primary); color: #fff; }

/* ═══════════════════════════════════════════════════════════
   15. PAGE TITLE AREA (breadcrumb)
   ═══════════════════════════════════════════════════════════ */
.page-title-area { background-color: var(--ts-dark) !important; }
.page-title-area::before { background: linear-gradient(135deg, rgba(20,33,61,.86), rgba(170,94,234,.40), rgba(47,127,239,.72)) !important; }
.page-title-item .title { color: #fff !important; }
.breadcrumb-item a { color: var(--ts-accent) !important; }
.breadcrumb-item.active { color: rgba(255,255,255,.75) !important; }

/* ═══════════════════════════════════════════════════════════
   16. DIVERS
   ═══════════════════════════════════════════════════════════ */
.lds-ellipsis div { background: var(--ts-primary) !important; }
.go-top { background: var(--ts-primary) !important; }
.go-top:hover { background: var(--ts-dark) !important; }
.ch-cat-badge { background: var(--ts-primary) !important; }

/* ═══════════════════════════════════════════════════════════
   17. CONTACT PAGE
   ═══════════════════════════════════════════════════════════ */
.contact-info-card { background: var(--ts-dark) !important; }
.ci-icon { background: rgba(47,127,239,.22) !important; color: var(--ts-accent) !important; }
.btn-submit { background: var(--ts-primary) !important; box-shadow: 0 4px 16px rgba(47,127,239,.28) !important; }
.btn-submit:hover { background: var(--ts-dark) !important; }

/* ═══════════════════════════════════════════════════════════
   18. OFFCANVAS MENU (mobile)
   ═══════════════════════════════════════════════════════════ */
.offcanvas_menu { background: var(--ts-dark) !important; }
.offcanvas_main_menu li a:hover { color: var(--ts-accent) !important; }
.offcanvas_main_menu li a.active {
    color: var(--ts-accent) !important;
    font-weight: 700 !important;
    border-left: 3px solid var(--ts-accent);
    padding-left: 10px;
}

/* ═══════════════════════════════════════════════════════════
   19. COMPOSANTS TECH — spécifiques à globaletechservice
   ═══════════════════════════════════════════════════════════ */

/* Section pill badge */
.ts-pill {
    display: inline-block;
    background: rgba(47,127,239,.10);
    color: var(--ts-primary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 50px;
    margin-bottom: 10px;
}

/* Process steps */
.ts-process { counter-reset: step; }
.ts-step { display: flex; gap: 18px; margin-bottom: 28px; align-items: flex-start; }
.ts-step-num {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--ts-primary);
    color: #fff;
    font-size: 17px;
    font-weight: 800;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.ts-step-content h5 { font-size: 15px; font-weight: 700; color: var(--ts-dark); margin-bottom: 4px; }
.ts-step-content p  { font-size: 13px; color: var(--ts-muted); margin: 0; line-height: 1.7; }

/* Portfolio card overlay */
.ts-portfolio-card { position: relative; overflow: hidden; border-radius: 10px; }
.ts-portfolio-card img { width: 100%; height: 210px; object-fit: cover; transition: transform .4s; }
.ts-portfolio-card:hover img { transform: scale(1.06); }
.ts-portfolio-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(20,33,61,.85) 0%, transparent 55%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 18px;
    opacity: 0; transition: opacity .3s;
}
.ts-portfolio-card:hover .ts-portfolio-overlay { opacity: 1; }
.ts-portfolio-overlay h5 { color: #fff; font-size: 14px; font-weight: 700; margin: 0 0 3px; }
.ts-portfolio-overlay span { color: var(--ts-accent); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }

/* Trust badges */
.ts-trust { display: flex; gap: 32px; align-items: center; flex-wrap: wrap; }
.ts-trust-item { display: flex; align-items: center; gap: 8px; }
.ts-trust-icon { font-size: 20px; color: var(--ts-primary); }
.ts-trust-text { font-size: 13px; font-weight: 600; color: var(--ts-dark); }

/* ═══════════════════════════════════════════════════════════
   20. RESPONSIVE — TABLETTE (768–991px)
   ═══════════════════════════════════════════════════════════ */
@media only screen and (min-width: 768px) and (max-width: 991px) {

    /* Header compact */
    .header-area.header-2-area .header-top-2 { padding: 6px 0 !important; }
    .header-top-2 .header-top-item { flex-direction: column; gap: 4px; text-align: center; }
    .header-top-2 .header-info ul li { font-size: 12px; }

    /* Hero */
    .banner-content .title { font-size: 32px !important; line-height: 1.25 !important; }
    .banner-content p { font-size: 15px !important; }
    .banner-area .banner-content { padding: 60px 0 !important; }

    /* Stats */
    .ts-stats { padding: 32px 0; }
    .ts-stat-num { font-size: 36px; }
    .ts-stat-divider { display: none; }

    /* Services grid */
    .ts-services-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
    .ts-service-card  { padding: 24px 18px; }

    /* Portfolio */
    .ts-portfolio-card img { height: 180px; }

    /* Footer */
    .footer-area .col-lg-3,
    .footer-area .col-lg-4 { margin-bottom: 30px; }
    .ts-trust { gap: 20px; }

    /* Team */
    .leadership-item { margin-bottom: 24px; }
}

/* ═══════════════════════════════════════════════════════════
   21. RESPONSIVE — MOBILE (≤ 767px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {

    /* ── Header ── */
    .header-area.header-2-area .header-top-2 {
        padding: 5px 0 !important;
        display: none !important;   /* masque le top bar sur mobile */
    }
    .header-area .main-header { box-shadow: 0 1px 8px rgba(0,0,0,.10); }
    .header-area .main-header .main-header-item .header-btn { display: none !important; }

    /* ── Hero ── */
    .banner-content .title {
        font-size: 26px !important;
        line-height: 1.3 !important;
    }
    .banner-content p { font-size: 14px !important; }
    .banner-area .banner-content { padding: 50px 0 40px !important; text-align: center; }
    .banner-area .banner-btn { justify-content: center; flex-wrap: wrap; gap: 10px; }

    /* ── Stats ── */
    .ts-stats { padding: 28px 0; }
    .ts-stats .row > div {
        border-right: none !important;
        border-bottom: 1px solid rgba(255,255,255,.15);
        padding-bottom: 20px;
        margin-bottom: 20px;
    }
    .ts-stats .row > div:last-child {
        border-bottom: none !important;
        margin-bottom: 0;
        padding-bottom: 0;
    }
    .ts-stat-num { font-size: 36px; }
    .ts-stat-divider { display: none; }

    /* ── Services ── */
    .ts-services-grid { grid-template-columns: 1fr; gap: 14px; }
    .ts-service-card  { padding: 22px 16px; }
    .services-item { margin-bottom: 20px; }

    /* ── Section titles ── */
    .section-title .title { font-size: 24px !important; }
    .ts-pill { font-size: 10px; }

    /* ── Portfolio ── */
    .ts-portfolio-card { margin-bottom: 16px; }
    .ts-portfolio-card img { height: 200px; }
    .ts-portfolio-overlay { opacity: 1; }  /* toujours visible sur mobile */

    /* ── Team ── */
    .leadership-item { margin-bottom: 24px; }

    /* ── Process steps ── */
    .ts-step { gap: 14px; margin-bottom: 22px; }
    .ts-step-num { width: 38px; height: 38px; font-size: 15px; }

    /* ── Trust badges ── */
    .ts-trust { flex-direction: column; gap: 14px; align-items: flex-start; }

    /* ── About / À propos ── */
    .solution-area .col-lg-6:first-child { margin-bottom: 30px; }
    .about-img { margin-bottom: 24px; }

    /* ── CTA bande ── */
    .project-contact-item .urgent-call-item { margin-top: 16px; }

    /* ── Newsletter ── */
    .ch-nl-form { flex-direction: column; gap: 10px; }
    .ch-nl-form input,
    .ch-nl-form button { width: 100% !important; border-radius: var(--ts-radius) !important; }

    /* ── Footer ── */
    .footer-area .col-lg-3,
    .footer-area .col-lg-4,
    .footer-area .col-md-6 { margin-bottom: 32px; }
    .footer-copyright .row { flex-direction: column; align-items: center; text-align: center; gap: 6px; }
    .ts-footer-social { margin-top: 12px; }

    /* ── Contact page ── */
    .contact-info-card { margin-bottom: 24px; }

    /* ── Page title ── */
    .page-title-item .title { font-size: 22px !important; }

    /* ── Général ── */
    .row.ts-trust { flex-direction: column; }
    img.w-100 { height: auto !important; }
    table { font-size: 13px; }
}

/* ═══════════════════════════════════════════════════════════
   22. RESPONSIVE — TRÈS PETITS ÉCRANS (≤ 380px)
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 380px) {
    .banner-content .title { font-size: 22px !important; }
    .ts-stat-num { font-size: 30px; }
    .main-btn { padding: 10px 18px !important; font-size: 13px !important; }
}