/* =================== */
/* === HTML - Body === */
/* =================== */

body {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-family: monospace;
    background-color: #1a1a1a;
    color: #eeeeee;
    overflow-x: hidden;
}
h1,h2,h3 {
    margin: 0;
    color: inherit;
}
sub {
    color: inherit;
    font-size: inherit;
    vertical-align: baseline;
}
a {
    display: flex;
    color: inherit;
    text-decoration: none;
}
button {
    margin: 0;
    padding: 0;
    display: flex;
    color: inherit;
    background: none;
    border: none;
}


/* ==================================== */
/* === Header - Barre de navigation === */
/* ==================================== */

.headernav-background {
    display: flex;
    position: sticky;
    top: 0;
    height: 80px;
    width: 100%;
    align-items: center;
    justify-content: center;
    background: linear-gradient(#3f487e, #81aada);
    border-bottom: 2px solid #377fd1;
    border-radius: 0 0 30px 30px;
    z-index: 10;
}
.headernav-container {
    display: flex;
    width: 80%;
    align-items: center;
    justify-content: flex-end;
    color: #eeeeee;
}
.headernav-pages {
    display: flex;
    width: 80%;
    align-items: center;
    justify-content: flex-end;
    gap: 30px;
}
@media screen and (max-width: 768px) {
    .headernav-background {
        height: 60px;
    }
}
@media screen and (max-width: 425px) {
    .headernav-background {
        height: 50px;
    }
}

/* === Header - Logo de la barre de navigation === */
.headernav-logo {
    width: 60px;
    height: 60px;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .headernav-logo {
        width: 45px;
        height: 45px;
    }
}
@media screen and (max-width: 425px) {
    .headernav-logo {
        width: 30px;
        height: 30px;
    }
}

/* === Header - Liens de navigation === */
.links {
    padding: 14px;
    display: flex;
    height: max-content;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-shadow: #377fd1 0 0 10px;
    transition: text-shadow 0.3s;
}
.links:hover,
.links.cv-download:hover {
    text-shadow: #e7ad6b 0 0 12px;
    text-decoration: underline #eeeeee solid;
}
@media screen and (max-width: 768px) {
    .links {
        display: none;
    }
}

/* === Header - Menu de navigation === */
.burger-button {
    display: none;
    height: max-content;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    font-weight: 600;
    cursor: pointer;
    text-shadow: #377fd1 0 0 10px;
    transition: text-shadow 0.3s;
}
.burger-button:hover {
    text-shadow: #e7ad6b 0 0 12px;
}
@media screen and (max-width: 768px) {
    .burger-button {
        display: flex;
    }
}
@media screen and (max-width: 425px) {
    .burger-button {
        font-size: 26px;
    }
}


/* ============================== */
/* === Index - Page d'accueil === */
/* ============================== */

.index-background {
    display: flex;
    height: max-content;
    width: 100%;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    background-color: inherit;
}

/* === Presentation === */
.presentation-container {
    margin: 40px 0 20px 0;
    padding: 40px 0 0 0;
    display: flex;
    height: max-content;
    width: 90%;
    align-items: flex-start;
    justify-content: space-between;
}
@media screen and (max-width: 768px) {
    .presentation-container {
        margin: 10px 0 10px 0;
        width: 100%;
        flex-direction: column;
        align-items: center;
    }
}

/* === Presentation - Division en deux parties === */
.presentation-halfside {
    display: flex;
    width: 50%;
    flex-direction: column;
}
.presentation-halfside.leftside {
    margin: 0 40px 0 0;
    align-items: flex-end;
}
.presentation-halfside.rightside {
    margin: 20px 0 0 40px;
    align-items: flex-start;
    gap: 40px;
}
@media screen and (max-width: 768px) {
    .presentation-halfside.leftside {
        margin: 0;
        width: 90%;
        align-items: center;
    }
    .presentation-halfside.rightside {
        margin: 10px 0 0 0;
        width: 90%;
        align-items: flex-start;
    }
}

/* === Presentation - Image de profile et fond de l'image === */
.profile-background {
    display: flex;
    width: 500px;
    height: 500px;
    align-items: center;
    justify-content: center;
    background-color: #222222;
    border-radius: 100%;
}
.profile-image {
    display: block;
    width: 95%;
    height: 95%;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #377fd1;
}
@media screen and (max-width: 425px) {
    .profile-background {
        width: 360px;
        height: 360px;
    }
}

/* === Presentation - Nom du profil, emploi actuel et courte description === */
.presentation-profile {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.profile-name {
    font-size: 38px;
    font-weight: 600;
    text-shadow: #377fd1 0 0 10px;
}
.profile-job {
    font-size: 20px;
    font-weight: 600;
    color: #377fd1;;
    text-shadow: #eeeeee 0 0 15px;
}

.profile-description {
    margin: 0 100px 0 0;
    font-size: 22px;
}
@media screen and (max-width: 768px) {
    .profile-description {
        margin: 0;
        text-wrap: wrap;
    }
}

/* === Presentation - Lien du cv et des différents réseaux === */
.presentation-links {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
}
.links.cv-download {
    padding: 0;
    display: flex;
    height: max-content;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 600;
    cursor: pointer;
    text-shadow: #377fd1 0 0 10px;
}

.presentation-list {
    display: flex;
    gap: 20px;
}
.presentation-list.links {
    display: flex;
    width: 25px;
    height: 25px;
    align-items: center;
    justify-content: center;
    background-color: #222222;
    border: 1px solid #222222;
    border-radius: 10px;
    transition: background-color 0.3s, border 0.3s;
}
.presentation-list.links:hover {
    border: 1px solid #e7ad6b;
    background-color: #444444;
}
.link-icon {
    display: block;
    width: 35px;
    height: 35px;
    object-fit: cover;
}

/* === Noms des différentes catégories === */
.category-name {
    margin: 0 0 15px 0;
    position: relative;
    font-size: 38px;
    font-weight: 600;
    text-shadow: #377fd1 0 0 10px;
}
.category-name::after {
    position: absolute;
    content: '';
    width: 80%;
    height: 2px;
    left: 50%;
    bottom: -3px;
    background-color: #377fd1cc;
    box-shadow: 0 1px 10px #eeeeee;
    transform: translateX(-50%);
}


/* === Compétences === */
.skills-background {
    margin: 20px 0 20px 0;
    padding: 20px 0 20px 0;
    display: flex;
    height: auto;
    width: 100%;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    background-color: #222222;
    clip-path: polygon(0 30px, 100% 0px, 100% calc(100% - 30px), 0 100%);
}
.skills-container {
    margin: 20px 0 20px 0;
    display: flex;
    height: 100%;
    width: 90%;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
}

/* === Compétences - Frise chronologique de mes compétences === */
.skills-timeline {
    margin: 15px 0 20px 0;
    padding: 5px 0;
    display: flex;
    width: 90%;
    position: relative;
    flex-direction: column;
    gap: 15px;
}
.skills-timeline::before {
    content: '';
    position: absolute;
    left: 30px;
    top: 0;
    bottom: 0;
    width: 4px;
    background-color: #81aada;
}

/* === Compétences - Bloc avec marqueur de la frise === */
.timeline-block {
    margin: 0;
    padding-left: 100px;
    display: flex;
    position: relative;
    flex-direction: column;
}
.timeline-marker {
    position: absolute;
    left: 20px;
    top: 5px;
    width: 20px;
    height: 20px;
    background: radial-gradient(circle, #eeeeee 0%, #81aada 100%);
    border: 2px solid #111111;
    border-radius: 50%;
    z-index: 2;
}

/* === Compétences - Contenu du bloc === */
.timeline-content {
    padding: 15px;
    display: flex;
    background-color: #1a1a1a;
    border-left: 3px solid #377fd1;
    border-radius: 5px;
    flex-direction: column;
    transition: box-shadow 0.3s, transform 0.3s, border-left 0.3s;
}

.timeline-block:hover .timeline-content {
    border-left: 3px solid #e7ad6b;
    box-shadow: 0 0 10px #e7ad6b;
    transform: scale(1.02);
}

/* === Compétences - Titre et description du bloc === */
.timeline-title {
    margin: 0 0 3px 0;
    font-size: 20px;
    font-weight: 600;
    color: #eeeeee;
    text-shadow: #377fd1 0 0 10px;
    transition: text-shadow 0.3s;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.timeline-title .timeline-skill-icon {
    width: 20px;
    height: 20px;
}

.timeline-block:hover .timeline-title {
    text-shadow: #e7ad6b 0 0 10px;
}

/* === Compétences - Indicateur de période === */
.timeline-period {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: #81aada;
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
}

.timeline-period.icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.timeline-text {
    font-size: 14px;
    color: #eeeeee;
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    .timeline-block {
        padding-left: 60px;
    }
    .timeline-marker {
        left: 10px;
    }
    .skills-timeline::before {
        left: 20px;
    }
    .timeline-title {
        font-size: 18px;
    }
    .timeline-text {
        font-size: 12px;
    }
}
@media screen and (max-width: 425px) {
    .timeline-block {
        padding-left: 50px;
    }
    .timeline-marker {
        left: 5px;
        width: 18px;
        height: 18px;
    }
    .skills-timeline::before {
        left: 14px;
        width: 2px;
    }
    .timeline-content {
        padding: 12px;
    }
    .timeline-title {
        font-size: 16px;
        margin: 0 0 8px 0;
    }
    .timeline-text {
        font-size: 11px;
    }
}


/* === Certification === */
.certificates-container {
    margin: 0 0 20px 0;
    padding: 10px 0 0 0;
    display: flex;
    height: max-content;
    width: 90%;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
}

/* === Certification - Liste des différents certificats === */
.certificates-box {
    margin: 15px 0 0 0;
    display: flex;
    height: max-content;
    width: 100%;
    justify-content: center;
    gap: 30px;
}
.certificates-subbox {
    display: flex;
    height: max-content;
    justify-content: flex-start;
    gap: 30px;
}
.certificate-element {
    padding: 5px;
    display: flex;
    height: 500px;
    width: 400px;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    gap: 5px;
    background-color: #222222;
    border-radius: 15px;
    box-shadow: 0 0 10px #377fd1;
    border-bottom: 3px solid #377fd1;
    transition: box-shadow 0.3s, transform 0.3s, border-bottom 0.3s;
}
.certificate-element:hover {
    border-bottom: 3px solid #e7ad6b;
    box-shadow: 0 0 10px #e7ad6b;
    transform: scale(1.02);
}
.certificate-element:hover .element-title {
    text-shadow: #e7ad6b 0 0 10px;
}

@media screen and (max-width: 768px) {
    .certificates-box {
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
    }
    .certificate-element {
        height: 330px;
        width: 300px;
    }
}
@media screen and (max-width: 425px) {
    .certificates-subbox {
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
    }
}

/* === Certification - Attributs des certificats === */
.element-image {
    height: 280px;
    width: 99%;
    background-color: #eeeeee;
    border-radius: 10px;
    object-fit: cover;
}
.element-title {
    margin: 10px 0 0 0;
    font-size: 26px;
    font-weight: 600;
    text-shadow: #377fd1 0 0 10px;
    transition: text-shadow 0.3s;
}
.element-date {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #81aada;
    font-size: 18px;
    font-weight: 600;
}
.element-date.icon {
    width: 20px;
    height: 20px;
}
.element-text {
    margin: 10px;
    font-size: 18px;
}

@media screen and (max-width: 768px) {
    .element-image {
        height: 160px;
    }
    .element-title {
        font-size: 20px;
    }
    .element-date {
        font-size: 14px;
    }
    .element-date.icon {
        width: 16px;
        height: 16px;
    }
    .element-text {
        font-size: 12px;
    }
}


/* ======================= */
/* === Couleurs d'état === */
/* ======================= */

/* === Statut : Important(s) === */
.important {
    color: #87e0fc;
    text-shadow: #eeeeee 0 0 10px;
}
.important::after {
    content: ' ⓘ';
    text-shadow: #eeeeee 0 0 10px,#87e0fc 0 0 10px;
}
/* === Statut : Fini(s) / Accompli(s) === */
.accomplished {
    color: #37e63c;
    text-shadow: #eeeeee 0 0 10px;
}
.accomplished::after {
    content: ' ✓';
    text-shadow: #eeeeee 0 0 10px,#37e63c 0 0 10px;
}
/* === Statut : Attention === */
.warning {
    color: #ebd515;
    text-shadow: #eeeeee 0 0 10px;
}
.warning::after {
    content: ' ⚠';
    text-shadow: #eeeeee 0 0 10px,#ebd515 0 0 10px;
}
/* === Statut : Danger(s) === */
.danger {
    color: #d63311;
    text-shadow: #eeeeee 0 0 10px;
}
.danger::after {
    content: ' ✖';
    text-shadow: #eeeeee 0 0 10px,#d63311 0 0 10px;
}


/* ========================== */
/* === Footer - Copyright === */
/* ========================== */

.footerend-background {
    display: flex;
    height: 80px;
    width: 100%;
    align-items: center;
    justify-content: center;
    background: linear-gradient(#81aada, #3f487e);
    border-top: 2px solid #377fd1;
    border-radius: 30px 30px 0 0;
}
.footerend-container {
    display: flex;
    width: 80%;
    align-items: center;
    justify-content: center;
}

/* === Footer - Copyright Claim === */
.footer-copyright {
    color: #eeeeee;
    font-size: 18px;
    font-weight: 600;
    text-shadow: #377fd1 0 0 20px;
}

@media screen and (max-width: 768px) {
    .footerend-background {
        height: 60px;
    }
    .footer-copyright {
        font-size: 15px;
    }
}
@media screen and (max-width: 425px) {
    .footerend-background {
        height: 50px;
    }
    .footer-copyright {
        font-size: 12px;
    }
}