/* ===== STYLES ESSENTIELS (minimal) ===== */
/* Conserver uniquement les styles non migrables vers Tailwind */


/* ========== VARIABLES CSS ========== */
:root {
    --blue-tech: #2563EB;
    --green-safety: #10B981;
    --white: #FFFFFF;
    --gray-dark: #1F2937;
    --gray-light: #f9fafb;
    --gray-border: #E5E7EB;
    --card-bg: #fefefe;
}

/* ========== STYLES GLOBAUX ========== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Classe pour lecteurs d'écran uniquement (accessibilité) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: var(--gray-dark);
    background-color: var(--white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ========== TITRES DE SECTION ========== */
/* Ombre portée pour améliorer la lisibilité des titres blancs sur images de fond */
h1, h2 {
    text-shadow: none;
}

/* Pas d'ombre sur les sections/pages avec fond uni (pas d'image de fond) */
.legal-page h1,
.legal-page h2,
.contact-page h1,
.contact-page h2,
#demo h1,
#demo h2 {
    text-shadow: none;
}

/* ========== BOUTONS ========== */
/* Classes génériques pour boutons (utilisées dans le HTML) */
.btn {
    display: inline-block;
    padding: 14px 28px;
    border: 2px solid;
    border-radius: 0;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    font-size: 16px;
    position: relative;
    transition: all 0.3s ease;
}

/* Champs de formulaire */
.form-input {
    font-family: monospace;
    width: 100%;
    padding: 14px 20px;
    border: 2px solid var(--gray-border);
    border-radius: 8px;
    font-size: 16px;
    transition: border-color 0.3s ease;
}

.form-input:focus {
    outline: none;
    border-color: var(--blue-tech);
}

.form-input::placeholder {
    color: #9CA3AF;
}

/* Bouton pour formulaires */
.btn-form {
    font-family: monospace;
    width: 100%;
    padding: 16px 24px;
    background-color: var(--blue-tech);
    color: var(--white);
    font-weight: 600;
    font-size: 16px;
    border: 0;
    border-radius: 0;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
}

.btn-form span[class^="corner-"] {
    position: absolute;
    width: 20px;
    height: 20px;
    border-color: var(--green-safety);
    border-style: solid;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 1;
}

.btn-form .corner-tl {
    top: -6px;
    left: -6px;
    border-width: 1px 0 0 1px;
}

.btn-form .corner-tr {
    top: -6px;
    right: -6px;
    border-width: 1px 1px 0 0;
}

.btn-form .corner-bl {
    bottom: -6px;
    left: -6px;
    border-width: 0 0 1px 1px;
}

.btn-form .corner-br {
    bottom: -6px;
    right: -6px;
    border-width: 0 1px 1px 0;
}

.btn-form:hover span[class^="corner-"] {
    opacity: 1;
}

/* Bbox verte au survol */
.btn::after {
    content: '';
    position: absolute;
    top: -8px;
    left: -8px;
    right: -8px;
    bottom: -8px;
    border: 3px solid var(--green-safety);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.btn:hover::after {
    opacity: 1;
}

/* CTA Principal */
.btn-primary {
    background: var(--blue-tech);
    color: var(--white);
    border-color: var(--blue-tech);
}

/* CTA Secondaire */
.btn-secondary {
    background: transparent;
    color: var(--blue-tech);
    border-color: var(--blue-tech);
    border-width: 3px;
}

.btn-secondary:hover {
    border-color: transparent;
}

/* ========== ANIMATIONS LOGO ========== */
/* Animations pour les lettres A du logo (navbar et footer) */
#mainLogo {
    letter-spacing: -0.05em;
}

.first-a-wrapper,
.second-a-wrapper {
    position: relative;
}

.letter-a {
    position: relative;
}

/* Bbox derrière les lettres A */
.first-a::before,
.second-a::before {
    content: '';
    position: absolute;
    top: -0.16em;
    left: -0.16em;
    right: -0.16em;
    bottom: -0.16em;
    border: 2px solid var(--blue-tech);
    opacity: 1;
    z-index: -1;
    border-radius: 0;
    transition: border-color 0.3s ease;
}

.second-a::before {
    border-color: #EF4444; /* Rouge */
}

/* ========== STYLES SPÉCIFIQUES ========== */
/* Container global */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Section Défi - Container et carte */
#defi .defi-container {
    z-index: 2;
}

/* Désactiver parallax sur mobile pour éviter les problèmes de rendu */
@media (max-width: 1024px) {
    #solution .solution-background-image,
    #simplicity div[style*="background-attachment"],
    section[style*="background-attachment"] div[style*="background-image"] {
        background-attachment: scroll !important;
    }
}

/* Parallax pour iOS : géré via JavaScript */
/* Sur iOS, on utilise background-attachment: scroll et JS ajuste background-position */
.ios-device div[style*="background-attachment: fixed"] {
    background-attachment: scroll !important;
}

/* Image background Déploiement - Fondu haut */
.deploiement-background-image {
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 100%);
}

/* ========== SYSTÈME DE COINS (CORNERS) ========== */
/* Position de base pour tous les coins */
.corner-tl {
    top: -6px;
    left: -6px;
    border-width: 1px 0 0 1px;
}

.corner-tr {
    top: -6px;
    right: -6px;
    border-width: 1px 1px 0 0;
}

.corner-bl {
    bottom: -6px;
    left: -6px;
    border-width: 0 0 1px 1px;
}

.corner-br {
    bottom: -6px;
    right: -6px;
    border-width: 0 1px 1px 0;
}

/* Propriétés communes pour tous les corners (sauf boutons et footer) */
span[class^="corner-"] {
    position: absolute;
    border-style: solid;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

/* Coins verts pour vidéos/images (override bleu par défaut) */
.video-card.video-hover-corners span[class^="corner-"],
.video-card.video-hover-red span[class^="corner-"] {
    width: 20px;
    height: 20px;
    z-index: 10;
}

.video-card.video-hover-corners span[class^="corner-"] {
    border-color: var(--green-safety);
}

/* Coins verts au survol direct ou via groupe parent */
.video-card.video-hover-corners:hover span[class^="corner-"],
.group:hover .video-card.video-hover-corners span[class^="corner-"] {
    opacity: 1;
}

/* Animations sur mobile (appareils tactiles sans hover) */
@media (hover: none) and (max-width: 767px) {
    /* Désactiver complètement le hover/touch sur mobile */
    .video-card.video-hover-corners:hover span[class^="corner-"],
    .group:hover .video-card.video-hover-corners span[class^="corner-"],
    .video-card.video-hover-red:hover span[class^="corner-"],
    .feature-item.phase-card:hover span[class^="corner-"],
    .stat-item-tw:hover span[class^="corner-"],
    .phase-card:hover span[class^="corner-"] {
        opacity: 0 !important;
    }

    .feature-item.phase-card:hover .feature-highlight,
    .stat-item-tw:hover .feature-highlight,
    .stat-item-tw:hover .stat-value,
    .phase-card:hover .feature-highlight {
        color: var(--gray-dark) !important;
    }

    /* Activer uniquement via la classe mobile-centered (scroll-based) */

    /* Vidéo solution - coins verts */
    .video-card.video-hover-corners.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    /* Vidéo alerte - coins rouges */
    .video-card.video-hover-red.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    /* Cartes features - coins bleus + highlight */
    .feature-item.phase-card.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    .feature-item.phase-card.mobile-centered .feature-highlight {
        color: var(--blue-tech) !important;
    }

    /* Cartes stats - coins verts + highlight + valeur */
    .stat-item-tw.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    .stat-item-tw.mobile-centered .feature-highlight,
    .stat-item-tw.mobile-centered .stat-value {
        color: var(--blue-tech) !important;
    }

    /* Message défi - coins bleus */
    .phase-card-red.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    /* Blocs texte des phases déploiement - coins bleus + highlight */
    #simplicity .phase-text-block.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    #simplicity .phase-text-block.mobile-centered .feature-highlight {
        color: var(--blue-tech) !important;
    }

    /* Blocs images des phases déploiement - coins verts (via video-hover-corners déjà défini) */
    #simplicity .phase-image-block.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    /* Titre de la carte autonomie (seulement le h4 direct, pas les items) */
    #simplicity .autonomy-card.mobile-centered > div > div > h4 .feature-highlight {
        color: var(--blue-tech) !important;
    }

    /* Items autonomie (à l'intérieur de la carte autonomie) - coins bleus + highlight */
    #simplicity .autonomy-item.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }

    #simplicity .autonomy-item.mobile-centered .feature-highlight {
        color: var(--blue-tech) !important;
    }

    /* Images d'illustration déploiement (déjà gérées par video-hover-corners) */
    /* Pas besoin de règle supplémentaire, déjà couvert par .video-card.video-hover-corners.mobile-centered */

    /* Formulaire démo - coins bleus */
    #demoForm.mobile-centered span[class^="corner-"] {
        opacity: 1 !important;
    }
}

/* Coins rouges pour vidéo d'alerte */
.video-card.video-hover-red span[class^="corner-"] {
    border-color: #EF4444;
}

.video-card.video-hover-red:hover span[class^="corner-"] {
    opacity: 1;
}

/* Overlay rouge sur container vidéo d'alerte */
.video-container-alert::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(239, 68, 68, 0.2);
    pointer-events: none;
    z-index: 10;
    opacity: 0;
}

@keyframes alert-blink {
    0%, 49% { opacity: 0; }
    50%, 99% { opacity: 1; }
    100% { opacity: 0; }
}

.video-container-alert.alert-active::after {
    animation: alert-blink 0.4s steps(1, end) infinite;
}

/* Icône gyrophare qui clignote avec l'alerte */
.alert-sound-icon {
    bottom: 8px;
    right: 8px;
}

.video-container-alert.alert-active .alert-sound-icon {
    animation: alert-blink 0.4s steps(1, end) infinite;
}

/* ========== HAMBURGER MENU ========== */
#mobile-menu-toggle span {
    height: 2px;
    background-color: #1F2937;
}

/* ========== CTA NAVBAR ========== */
.btn-navbar-cta {
    font-family: monospace;
    font-weight: 400;
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 10px 24px;
    background-color: transparent;
    color: var(--gray-dark);
    font-size: 16px;
    border: 2px solid #000;
    border-radius: 0;
    transition: all 0.3s ease;
    position: relative;
    text-decoration: none;
}

.btn-navbar-cta span[class^="corner-"] {
    position: absolute;
    width: 15px;
    height: 15px;
    border-color: var(--blue-tech);
    border-style: solid;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 1;
}

.btn-navbar-cta .corner-tl {
    top: -6px;
    left: -6px;
    border-width: 1px 0 0 1px;
}

.btn-navbar-cta .corner-tr {
    top: -6px;
    right: -6px;
    border-width: 1px 1px 0 0;
}

.btn-navbar-cta .corner-bl {
    bottom: -6px;
    left: -6px;
    border-width: 0 0 1px 1px;
}

.btn-navbar-cta .corner-br {
    bottom: -6px;
    right: -6px;
    border-width: 0 1px 1px 0;
}

.btn-navbar-cta:hover span[class^="corner-"] {
    opacity: 1;
}

.btn-navbar-cta:hover {
    background-color: var(--blue-tech);
    color: var(--white);
    border-color: var(--blue-tech);
}

/* CTA mobile navbar */
.btn-navbar-cta-mobile {
    font-family: monospace;
    display: inline-block;
    align-self: flex-start;
    padding: 12px 16px;
    background-color: transparent;
    color: var(--gray-dark);
    font-weight: 400;
    border: 2px solid var(--gray-dark);
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-navbar-cta-mobile:hover {
    background-color: var(--blue-tech);
    color: var(--white);
    border-color: var(--blue-tech);
}

/* ========== NAV LINKS ========== */
.nav-link {
    font-weight: 400;
    text-decoration: none;
    color: var(--gray-dark);
    position: relative;
    padding: 8px 12px;
}

.nav-link-mobile {
    font-weight: 400;
    text-decoration: none;
    color: var(--gray-dark);
    padding: 12px 16px;
    transition: background-color 0.3s ease;
}

.nav-link-mobile:hover {
    background-color: #f3f4f6;
}

/* ========== FOOTER ========== */
footer {
    background-color: var(--gray-dark);
    color: var(--white);
}

footer a {
    width: fit-content;
    color: var(--white);
    text-decoration: none;
    font-weight: 400;
    font-size: 16px;
    opacity: 0.7;
    margin-bottom: 12px;
}

/* Footer links avec animation coins verts */
.footer-link {
    position: relative;
    padding: 4px 0;
    display: inline-block;
}

.footer-link span[class^="corner-"] {
    position: absolute;
    width: 15px;
    height: 15px;
    border-color: var(--green-safety);
    border-style: solid;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 1;
}

.footer-link .corner-tl {
    top: -6px;
    left: -6px;
    border-width: 1px 0 0 1px;
}

.footer-link .corner-tr {
    top: -6px;
    right: -6px;
    border-width: 1px 1px 0 0;
}

.footer-link .corner-bl {
    bottom: -6px;
    left: -6px;
    border-width: 0 0 1px 1px;
}

.footer-link .corner-br {
    bottom: -6px;
    right: -6px;
    border-width: 0 1px 1px 0;
}

.footer-link:hover span[class^="corner-"] {
    opacity: 1;
}

/* ========== FORM HOVER CORNERS ========== */
.form-hover-corners span[class^="corner-"] {
    position: absolute;
    width: 20px;
    height: 20px;
    border-color: var(--blue-tech);
    border-style: solid;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 100;
}

.form-hover-corners .corner-tl {
    top: -6px;
    left: -6px;
    border-width: 1px 0 0 1px;
}

.form-hover-corners .corner-tr {
    top: -6px;
    right: -6px;
    border-width: 1px 1px 0 0;
}

.form-hover-corners .corner-bl {
    bottom: -6px;
    left: -6px;
    border-width: 0 0 1px 1px;
}

.form-hover-corners .corner-br {
    bottom: -6px;
    right: -6px;
    border-width: 0 1px 1px 0;
}

/* Test formulaire mobile - EN DEHORS du media query */
#demoForm.mobile-centered span[class^="corner-"] {
    opacity: 1 !important;
}

footer h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 16px;
}

/* ========== PHASE CARD (Features et Stats) ========== */
/* Coins BLEUS par défaut pour phase-card */
.phase-card span[class^="corner-"] {
    width: 20px;
    height: 20px;
    border-color: var(--blue-tech);
    z-index: 10;
}

/* Coins plus petits pour stats */
.stat-item-tw span[class^="corner-"] {
    width: 15px;
    height: 15px;
}

/* Activation au hover (règle générale) */
.phase-card:hover span[class^="corner-"] {
    opacity: 1;
}

/* Exception: autonomy-card ne déclenche PAS les corners descendants */
.phase-card.autonomy-card:hover span[class^="corner-"] {
    opacity: 0;
}

/* Seuls les autonomy-item individuels activent leurs coins */
.phase-card.autonomy-item:hover > span[class^="corner-"] {
    opacity: 1;
}

/* Exception: video-card dans autonomy-card garde son animation verte */
.autonomy-card .video-card.video-hover-corners:hover span[class^="corner-"] {
    opacity: 1;
}

/* EXCEPTION: Coins rouges pour cartes d'alerte */
.phase-card-red span[class^="corner-"] {
    border-color: #EF4444;
}

/* Override: si data-corners="green" ou "blue" est explicite, utiliser cette couleur */
[data-corners="green"].phase-card-red span[class^="corner-"] {
    border-color: #10B981 !important;
}

[data-corners="blue"].phase-card-red span[class^="corner-"] {
    border-color: var(--blue-tech) !important;
}

/* ========== HIGHLIGHTS ========== */
/* Mots qui deviennent bleus au survol des cartes */

/* Feature highlights - survol de la feature card */
.phase-card:not(.autonomy-item):not(.stat-item-tw):not(.autonomy-card) .feature-highlight {
    transition: color 0.3s ease;
}

.phase-card:not(.autonomy-item):not(.stat-item-tw):not(.autonomy-card):hover .feature-highlight {
    color: var(--blue-tech);
}

/* Stat values et labels - survol de la stat card */
.stat-item-tw .stat-value,
.stat-item-tw .feature-highlight {
    transition: color 0.3s ease;
}

.stat-item-tw:hover .stat-value,
.stat-item-tw:hover .feature-highlight {
    color: var(--blue-tech);
}

/* Autonomy card title - survol de la carte entière */
.autonomy-card .feature-highlight,
.autonomy-section .feature-highlight {
    transition: color 0.3s ease;
}

.autonomy-card:hover h4 .feature-highlight,
.autonomy-section:hover > div > div > h4 .feature-highlight {
    color: var(--blue-tech);
}

/* Autonomy items - survol de chaque item */
.autonomy-item .autonomy-label .feature-highlight {
    transition: color 0.3s ease;
}

.autonomy-item:hover .autonomy-label .feature-highlight {
    color: var(--blue-tech);
}

/* ========== VIDEO CARD ========== */
/* Box-shadow standard pour les vidéos dans les cartes */
.video-card {
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 8px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
