:root {
    --bg-main: #ffffff;
    --bg-alt: #f5f5f5;
    --text-main: #000000;
    --border-color: rgba(0, 0, 0, 0.13);
    --border-strong: rgba(0, 0, 0, 0.2);
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html.dark-mode {
    --bg-main: #000000;
    --bg-alt: #111111;
    --text-main: #ffffff;
    --border-color: #ffffff;
    --border-strong: #ffffff;
}

html.dark-mode .chat-overlay {
    background-color: rgb(0 0 0 / 75%);
}

html.dark-mode .categories-grid {
    background-color: #FFF;
}

html.dark-mode .skills-pillar__text {
    color: #ffffff;
}

html.dark-mode .key-number-text {
    color: #ffffff;
}

html.dark-mode .tools-cat-label {
    color: #ffffff;
}

html.dark-mode .cv-download-button,
html.dark-mode .work-cta-submit {
    background-color: #ffffff;
    color: #000000;
}

.cv-download-button,
.work-cta-submit {
    border: 1px solid transparent;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.cv-download-button:hover,
.cv-download-button:active,
.work-cta-submit:hover,
.work-cta-submit:active {
    background-color: #ffffff !important;
    color: #000000 !important;
    border-color: #000000 !important;
}

html.dark-mode .cv-download-button:hover,
html.dark-mode .cv-download-button:active,
html.dark-mode .work-cta-submit:hover,
html.dark-mode .work-cta-submit:active {
    background-color: #000000 !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
}

html.dark-mode #map-sidebar,
html.dark-mode #map-points-list,
html.dark-mode #map-sidebar .map-list-item {
    background-color: #000000;
    color: #ffffff;
}

html.dark-mode #map-sidebar .map-list-item {
    border-bottom-color: #ffffff;
}

html.dark-mode #map-sidebar .production-map-intro,
html.dark-mode #map-sidebar .production-map-intro-title {
    border-color: #ffffff;
}

html.dark-mode #map-sidebar .map-list-item-title,
html.dark-mode #map-sidebar .map-list-item-address,
html.dark-mode #map-sidebar .ch-txt,
html.dark-mode #map-sidebar .production-map-intro-title {
    color: #ffffff;
}

html.dark-mode .ch-results-grid > div {
    background-color: #000000 !important;
}

html.dark-mode .ch-results-grid > div,
html.dark-mode .ch-results-grid > div p,
html.dark-mode .ch-results-grid > div div {
    color: #ffffff !important;
}

html.dark-mode .brands-more-info-text,
html.dark-mode .process-step-text,
html.dark-mode .process-step-number,
html.dark-mode .proof-item-school,
html.dark-mode .proof-item-label,
html.dark-mode .proof-item-teaching,
html.dark-mode .work-cta-tagline,
html.dark-mode .work-cta-label,
html.dark-mode .work-cta-footer-info {
    color: #ffffff;
}

html.dark-mode .testimonial-role {
    color: #ffffff;
}

html.dark-mode .timeline-item-title,
html.dark-mode .timeline-item-subtitle,
html.dark-mode .timeline-date,
html.dark-mode .timeline-item-description {
    color: #ffffff !important;
}

.nav-projects { border-bottom: 1px solid var(--border-color); }
.nav-projects-toggle { width: 100%; background: none; border: none; cursor: pointer; font-family: inherit; color: var(--text-main); font-size: 14px; font-weight: bold; text-transform: uppercase; padding: 0 15px; height: 60px; line-height: 60px; display: flex; align-items: center; justify-content: space-between; text-align: left; }
.nav-projects-chevron { width: 15px; height: 15px; object-fit: contain; flex-shrink: 0; }
.nav-projects-list { max-height: 0; overflow: hidden; transition: max-height 0.3s ease, opacity 0.3s ease; opacity: 0; }
.nav-projects.open .nav-projects-list { max-height: 400px; opacity: 1; }
.nav-project-link { display: flex; align-items: stretch; justify-content: space-between; text-decoration: none; color: var(--text-main); padding-right: 0; }
.nav-project-link:first-child { border-top: 1px solid var(--border-color); }
.nav-project-link:hover .nav-project-name { text-decoration: underline; }
.nav-project-name { font-size: 14px; font-weight: bold; text-transform: uppercase; display: flex; align-items: center; height: 60px; padding: 0; }

html.dark-mode .hamburger.active {
    background-image: url('../images/CROSS_WHITE.svg') !important;
}

html.dark-mode .footer-column h3::after {
    background-image: url('../images/DOWN_WHITE.svg');
}

html.dark-mode .footer-column.open h3::after {
    background-image: url('../images/UP_WHITE.svg');
}

html.dark-mode footer {
    border-top-color: #ffffff !important;
}

html.dark-mode .copyright-bar {
    border-top-color: #ffffff !important;
}

@media (min-width: 769px) {
    footer:has(.footer-column:nth-child(4)) {
        gap: 0 !important;
        grid-template-columns: repeat(4, 25%) !important;
    }

    footer:has(.footer-column:nth-child(4)) .footer-column {
        border-left: 1px solid var(--border-color) !important;
    }

    footer:has(.footer-column:nth-child(4)) .footer-column:first-child {
        border-left: none !important;
    }

    footer:has(.footer-column:nth-child(4)) .footer-column:last-child {
        border-left: none !important;
    }

    footer:has(.footer-column:nth-child(4)) .footer-column:nth-child(3) {
        border-right: 1px solid var(--border-color) !important;
    }
}

html.dark-mode footer:has(.footer-column:nth-child(4)) .footer-column {
    border-left-color: #ffffff !important;
}

html.dark-mode footer:has(.footer-column:nth-child(4)) .footer-column:nth-child(3) {
    border-right-color: #ffffff !important;
}

@media (max-width: 768px) {
    .footer-column:not(.open) {
        height: 60px;
        overflow: hidden;
        box-sizing: border-box;
    }

    .footer-column.open {
        height: auto;
        overflow: visible;
    }

    .footer-column {
        border-bottom: 1px solid var(--border-color) !important;
    }

    .footer-column:last-child {
        border-bottom: none !important;
    }
}

html.dark-mode .footer-column {
    border-bottom-color: #ffffff !important;
}

html.dark-mode .brand-accordion-chevron {
    background-image: url('../images/DOWN_WHITE.svg');
}

html.dark-mode .skill-accordion-chevron {
    background-image: url('../images/DOWN_WHITE.svg');
}

html.dark-mode .skill-accordion-subtitle {
    color: #ffffff;
}

html.dark-mode .map-list-item-head::after {
    background-image: url('../images/DOWN_WHITE.svg');
}

html.dark-mode .map-list-item.open .map-list-item-head::after {
    background-image: url('../images/UP_WHITE.svg');
}

.chat-popup .typing-indicator {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    gap: 2px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.chat-popup:hover .typing-indicator {
    opacity: 1;
}

.typing-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background-color: var(--text-main);
    animation: typing 1.4s infinite;
    opacity: 0;
}

.typing-dot:nth-child(1) {
    animation-delay: 0s;
}

.typing-dot:nth-child(2) {
    animation-delay: 0.2s;
}

.typing-dot:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes typing {
    0%, 60%, 100% {
        opacity: 0;
    }
    30%, 50% {
        opacity: 1;
    }
}

/* Uniformisation du corps de texte sur tout le site */
p:not(.hero-kicker-label):not(.hero-kicker-sub):not(.key-number-value):not([style*="font-size:32px"]):not([style*="font-size: 32px"]) {
    font-weight: 400;
    letter-spacing: 0.02em !important;
    line-height: 1.75 !important;
    font-size: 13px !important;
}
