*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:Calibri, Arial, sans-serif;
    background:#fff;
}

.hero{
    height:100vh;
    height:100dvh; /* corrige l'écran mobile avec la barre d'adresse */
    background:url('../images/fond-pc.png') center/cover no-repeat;
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.top-bar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:25px;
}

.site-title{
    font-family:Cambria, sans-serif;
    font-size:42px;
    color:white;
}

/* NOUVEAU : sous-titre sous le nom */
.site-subtitle {
    font-size: 1rem;       /* plus petit que le titre */
    font-style: italic;     /* italique */
    margin: 0;              /* pas de marge supplémentaire */
    color: white;           /* même couleur que le titre */
}

/* Style commun menu PC + mobile */
.menu a,
.mobile-menu-content a {
    font-family:Calibri, Arial, sans-serif;
    color:white;
    text-decoration:none;
    font-weight:bold;
    letter-spacing:1px;
    text-transform:uppercase;
    -webkit-text-stroke:0.5px black;
    font-size: clamp(16px, 2vw + 1rem, 22px); /* adaptatif PC ↔ mobile */
    display: inline-block;  /* pour que les marges fonctionnent correctement */
    margin-left: 25px;      /* espace horizontal entre items PC */
}

/* Retirer le margin-left du premier item du menu PC */
.menu a:first-child {
    margin-left: 0;
}

/* Espacement vertical pour le menu mobile (liens empilés) */
.mobile-menu-content a {
    margin: 10px 0;  /* espace entre items mobile */
}

/* Hover commun */
.menu a:hover,
.mobile-menu-content a:hover {
    opacity:0.7;
}

.video-box{
    position:absolute;
    bottom:20px;
    right:20px;
    width:320px;
    padding:6px;
    border:2px solid white;
    border-radius:6px;
    background:rgba(0,0,0,0.3);
}

.video-box iframe{
    width:100%;
    height:180px;
    border:none;
}

.bio{
    background:white;
    padding:80px 15%;
    text-align:center;
    font-size: clamp(16px, 2vw + 1rem, 22px); /* texte adaptatif PC ↔ mobile */
}

.social{
    margin-top:30px;
}

.social a{
    font-size:32px;
    margin:0 15px;
    text-decoration:none;
}

footer{
    background:black;
    color:white;
    text-align:center;
    padding:25px;
}

#topBtn{
    position:fixed;
    bottom:25px;
    right:25px;
    background:black;
    color:white;
    border:2px solid white;
    border-radius:50%;
    width:45px;
    height:45px;
    cursor:pointer;
    display:none;
    font-size:22px;
}

#preloader{
    position:fixed;
    width:100%;
    height:100%;
    background:black;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:9999;
}

#preloader img{
    width:198px;
    height:166px;
}

@media(max-width:768px){

    .hero{
        background:url('../images/fond-mobile.png') center/cover no-repeat;
    }

    .menu{
        display:none;
    }

    .video-box{
        position:static;
        margin:40px auto;
    }

}

@media (max-width:768px){
    /* Image d'accueil plein écran pour mobile */
    .hero{
        background-image: url('../images/fond-mobile.png');
        background-size: cover;
        background-position: center;
    }
    .video-box{
        position: static;
        margin: 20px auto;
        width: 90%;
        border:2px solid white;
        border-radius:6px;
        padding:6px;
        background:rgba(0,0,0,0.3);
    }
    #bio {
        padding: 20px;
        /* plus besoin de font-size fixe ici, clamp() gère tout */
    }

    #bio .social-icons{
        display: flex;
        justify-content: center;
        gap: 15px;
        margin-top: 15px;
    }
}

/* Menu mobile caché par défaut */
.menu-mobile {
    display: none;
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 999;
}

#hamburgerBtn {
    font-size: 30px;
    background: black;
    color: white;
    border: 2px solid white;
    border-radius: 5px;
    padding: 5px 10px;
    cursor: pointer;
}

.mobile-menu-content {
    display: none;
    flex-direction: column;
    background: rgba(0,0,0,0.9);
    position: absolute;
    top: 50px;
    right: 0;
    border: 2px solid white;
    border-radius: 5px;
    padding: 10px;
}

/* Afficher menu mobile sur petit écran */
@media (max-width:768px){
    .menu { display: none; }
    .menu-mobile { display: flex; }
}

/* NOUVEAU : responsive sous-titre */
@media (max-width:768px) {
    .site-subtitle {
        font-size: 0.9rem;
    }
}

@media (max-width:480px) {
    .site-subtitle {
        font-size: 0.8rem;
    }
}