/* RESET CSS */
*,
*:after,
*:before {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--font-family)
}


@import url('https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap');
/* POLICES ET COULEURS */
:root {
    --primary-color: #c1121f;
    --secondary-color: #780000;
    --black-color: #000000;
    --gray-color: #121212;
    --white-color: #fdf6f6;
    --darkblue-color: #003049;
    --blue-color: #669bbc;
    --success-color: #28a745;
    --font-family: 'Space Mono', serif;
}

body {
    background-color: var(--white-color);
}
/* Pour empecher le halo des boutons avec l'accessibilité */
button, svg {
    outline: none;
}
/* HEADER POUR LA PAGE D'ACCUEIL ET LA PAGE CRUNCHSWIPE */
#homePage header,
#swipePage header {
    margin: 0;
    padding: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(253, 246, 246, 0.8)), url('../images/header.png') no-repeat center center/cover;
    height: 80vh;
}

/* Menu */
.menu {
    padding: 10px 20px;
    transition: background 0.3s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
    top: 0;
    width: 100%;
    z-index: 1000;
}

.menu:hover {
    background: rgba(0, 0, 0, 0.7);
}

.logoAccueil img {
    width: 50px;
    height: 50px;
    transition: all 0.3s ease;
}

.logoAccueil:hover img {
    transform: scale(1.1);
}

.menuLeft a {
    text-decoration: none;
    color: var(--white-color);
    font-size: 1rem;
    margin: 0 15px;
    transition: color 0.3s ease;
    position: relative;
}

.menuLeft a:not(.logoAccueil)::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 100%;
    height: 2px;
    background-color: var(--blue-color);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease-in-out;
}

.menuLeft a:not(.logoAccueil):hover::after {
    transform: scaleX(1);
}

#active {
    color: var(--blue-color);
    font-weight: bold;
}

#active:hover {
    color: var(--white-color);
}

.menuLeft a:hover {
    color: var(--blue-color);
}

/* Menu pour les autres pages */
.menuOther {
    background-color: var(--darkblue-color);
}

.menuOther:hover {
    background-color: var(--darkblue-color);
}


/* Barre de recherche */
.searchBar {
    display: flex;
    align-items: center;
    text-align: center;
    background: var(--white-color);
    border-radius: 8px;
    padding: 8px 12px;
    width: 30%;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    cursor: text;

}

.searchInput {
    border: none;
    background: transparent;
    font-size: 1rem;
    color: var(--darkblue-color);
    outline: none;
}

.searchInput::placeholder {
    color: var(--gray-color);
}

.searchBar img {
    width: 25px;
    height: auto;
    vertical-align: middle;
    object-fit: contain;
}

/* Menu à gauche */
.menuLeft {
    display: flex;
    align-items: center;
}

.menuLeft a {
    margin-right: 20px;
}

/* Menu à droite (profil) */
.menuRight {
    position: relative;
}

/* bouton de connexion */

.btnLogin {
    background-color: var(--primary-color);
    color: var(--white-color);
    padding: 8px 15px;
    border-radius: 5px;
    font-size: 16px;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
}

.btnLogin:hover {
    background-color: var(--secondary-color);
    transform: scale(1.1);

}

/* menu du profil */
.profile {
    position: relative;
    display: inline-block;
}

.profile-img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
}

.profile-img:hover {
    transform: scale(1.2);
}

.dropdown-menu {
    display: none;
    position: absolute;
    text-align: center;
    align-items: center;
    right: 0;
    background-color: var(--blue-color);
    padding: 40px 50px;
    border-radius: 10px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    z-index: 1;
}

.dropdown-menu img {
    width: 100px;
    height: 100px;
}

.dropdown-menu p {
    margin: 0;
    color: var(--white-color);
    font-size: 1rem;
    margin-bottom: 20px;
}

.dropdown-menu a {
    color: var(--white-color);
    padding-bottom: 10px;
    text-align: left;
    text-decoration: none;
    display: block;
    margin: 0 auto;
    position: relative;
}

.dropdown-menu a:not(#logout)::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 8px;
    width: 100%;
    height: 2px;
    background-color: var(--darkblue-color);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease-in-out;
}

.dropdown-menu a:hover {
    color: var(--darkblue-color);
}

.dropdown-menu a:not(#logout):hover::after {
    transform: scaleX(1);
}

.dropdown-menu #logout {
    background-color: var(--primary-color);
    border-radius: 5px;
    color: var(--white-color);
    text-align: center;
    padding: 10px;
    margin: 10px 0;
    transition: all 0.3s ease;

}

.dropdown-menu #logout:active {
    transform: scale(0.95);
}

.dropdown-menu #logout:hover {
    background-color: var(--secondary-color);
}

.profile:hover .dropdown-menu {
    display: block;
}

.headerContent {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    color: var(--darkblue-color);
}

.headerContent h1 {
    font-size: 5rem;
    text-transform: uppercase;
    font-weight: bold;
    margin-bottom: 0, 5rem;
}

.headerContent p {
    font-size: 2rem;
}

/* CAROUSSEL DE FILMS */
.catTitle {
    margin-left: 2rem;
    font-size: 1.5rem;
}

.carousel-container {
    position: relative;
    max-width: 100%;
    margin: auto;
    overflow: hidden;
}

.carousel {
    display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
    gap: 20px;
    padding: 10px;
    scrollbar-width: none;
}

.carousel::-webkit-scrollbar {
    display: none;
}

.movie-card {
    flex: 0 0 auto;
    width: 250px;
    padding: 10px;
    text-align: center;
    transition: transform 0.3s ease-in-out;
    position: relative;
}

/* Style pour la date d'ajout */
.movie-card .added-date {
    font-size: 0.7rem;
    color: var(--gray-color);
    margin-top: 5px;
    font-style: italic;
}

/* Style pour l'icône en ligne à côté du titre */
.mediaTypeContainer {
    margin-bottom: 1.5rem;
}

.mediaTypeIcon {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: transparent;
    color: var(--secondary-color);
    font-size: 0.9rem;
    width: auto;
}

.mediaTypeIcon svg {
    width: 20px;
    height: 20px;
    fill: var(--secondary-color);
}

.mediaTypeIcon p {
    margin: 0;
    line-height: normal !important;
}

.media-title-container {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.media-title-container h4 {
    margin: 0;
    font-size: 1rem;
    flex: 1;
    line-height: 1.2;
}

.movie-card img {
    width: 100%;
    border-radius: 15px;
}

.movie-card:hover {
    transform: scale(1.05);
}

.movie-poster {
    position: relative;
    overflow: hidden;
    border-radius: 15px;
}

.movie-card h4,
.movie-card p {
    margin-top: 10px;
    text-align: left;
}

.navTitleArrow {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
}



/* Boutons de navigation du caroussel */
.next,
.prev {
    width: 60px;
    height: auto;
    border-radius: 50%;
    transition-duration: .3s;
}

.next path,
.prev path {
    fill: var(--blue-color);
}


.next:hover path,
.prev:hover path {
    fill: var(--primary-color);
    transition-duration: .3s;
}

.next:hover,
.prev:hover {
    transform: scale(1.1);
}


.buttonNav {
    margin-right: 2rem;
    display: flex;
    gap: 5px;
}

.prev {
    left: 10px;
}

.next {
    right: 10px;
}


/* Boutons pour la navigation de la page de recherche */
.buttonNavSearch {
    display: flex;
    justify-content: flex-end;
}


/* CSS de la section Call to action */
.cta {
    background: linear-gradient(to right, #DDEBF6 5%, var(--blue-color) 95%);
    color: var(--white-color);
    padding: 30px 0;
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.cta p {
    color: var(--darkblue-color);
    text-align: left;
    font-weight: bold;
}

.cta p:nth-of-type(1) {
    font-size: 1.5rem;
}

.cta p:nth-of-type(2) {
    font-size: 2rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.cta a {
    background-color: var(--primary-color);
    color: var(--white-color);
    padding: 10px 40px;
    border-radius: 5px;
    font-size: 1.5rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.3);
}

.cta a:hover {
    background-color: var(--secondary-color);
}

.cta a:active {
    transform: scale(0.95);
}



/* ------ 
    Page de connexion / inscription / déconnexion
        ------ */
#loginPage,
#registerPage,
#logoutSuccess {
    background-color: var(--blue-color);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

#loginPage main,
#registerPage main,
#logoutSuccess main {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem;
}

.loginContainer {
    background-color: var(--white-color);
    padding: 3rem;
    border-radius: 15px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
    max-width: 500px;
    width: 100%;
}

.logoContainer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 2rem;
}

.logoContainer img {
    width: 5rem;
}

.loginForm {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.successMessage .loginLink {
    text-decoration: underline;
}

.formInput {
    margin-bottom: 1rem;
}

.formInput label {
    display: block;
    margin-bottom: 0.5rem;
    color: var(--black-color);
    font-weight: 600;
}

.formInput input {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 1rem;
}

.submitButton {
    background-color: var(--primary-color);
    color: var(--white-color);
    border: none;
    padding: 1rem;
    border-radius: 5px;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 1rem;
    width: 100%;
}

.submitButton:hover {
    background-color: var(--secondary-color);
}

.registerLink {
    display: block;
    text-align: center;
    margin-top: 1.5rem;
    color: var(--darkblue-color);
    text-decoration: none;
    position: relative;
    font-weight: 600;
}

/* Styles pour le message de déconnexion */
.logout-message {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-color: var(--white-color);
}

.logout-message h2 {
    font-size: 1.5rem;
    text-transform: uppercase;
    color: var(--primary-color);
    margin-bottom: 1rem;
}

.logout-message p {
    font-size: 1rem;
    color: var(--black-color);
    font-weight: bold;
    margin-bottom: 30px;
}

/* Roue de chargement de la page de déconnexion */
.loader {
    width: 50px;
    padding: 8px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--primary-color);
    --_m:
        conic-gradient(#0000 10%, #000),
        linear-gradient(#000 0 0) content-box;
    -webkit-mask: var(--_m);
    mask: var(--_m);
    -webkit-mask-composite: source-out;
    mask-composite: subtract;
    animation: l3 1s infinite linear;
}

@keyframes l3 {
    to {
        transform: rotate(1turn)
    }
}

/* Gestion des messages d'erreurs et de succès */
.errorMessage {
    color: var(--primary-color);
    font-weight: bold;
    margin-bottom: 2rem;
}

.successMessage {
    color: var(--blue-color);
    font-weight: bold;
    margin-bottom: 2rem;
}

.successMessage a {
    color: var(--blue-color);
    text-decoration: none;
}

/* ------ 
    Page de profil 
        ------ */
/* Styles spécifiques pour la page profil */
#profilePage main {
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: var(--white-color);
}

#profilePage h2 {
    text-align: center;
    color: var(--darkblue-color);
    margin-top: 20px;
    font-size: 2rem;
    letter-spacing: 1px;
    position: relative;
}

.profileContainer {
    display: flex;
    margin-top: 20px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 3rem;
    width: 100%;
    max-width: 600px;
    background-color: rgba(253, 246, 246, 0.5);
}

.avatarContainer {
    position: relative;
    margin-bottom: 1rem;
}

.avatarContainer img {
    width: 100px;
    height: 100px;
    transition: all 0.3s ease;
}

.avatarContainer:hover img {
    transform: scale(1.05);
}

.userInfo {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    text-align: center;
}

.userInfo p {
    margin: 0.9rem 0;
    font-size: 1.1rem;
    color: var(--darkblue-color);
    padding-bottom: 0.9rem;
    width: 100%;
    border-bottom: 1px solid rgba(0, 48, 73, 0.1);
    transition: all 0.3s ease;
}

.userIdentity {
    font-size: 1.8rem !important;
    font-weight: bold;
    color: var(--darkblue-color) !important;
    border-bottom: none !important;
    margin-bottom: 1rem !important;
}

.userInfo strong {
    color: var(--primary-color);
    margin-right: 0.5rem;
    font-weight: 700;
}

.userRegisterDate {
    border-bottom: none !important;
    font-style: italic;
    color: var(--blue-color) !important;
}


/* ------ 
    Page de details des médias
        ------ */
.details-container {
    display: flex;
    color: var(--darkblue-color);
    margin: 3rem;
}

.details-poster {
    width: 30%;
}

.details-content {
    padding: 0 3rem;
    width: 70%;
}

.details-poster > img {
    width: 100%;
    border-radius: 10px;
}

.details-content h1 {
    font-size: 2.5rem;
    font-weight: bold;
    color: var(--blue-color);
}

.details-content .stars {
    color: gold;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.details-content p {
    font-size: 1.2rem;
    line-height: 2;
}

.details-resume {
    margin: 3rem 0;
    width: 70%;
}

.details-content strong {
    color: var(--blue-color);
}

.actors-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 20px;
}

.actor {
    width: 200px;
    text-align: center;
}

.actor img {
    width: 100%;
    border-radius: 10px;
}

.actor p {
    font-size: 1rem;
    margin: 5px 0;
}

.watchlist-action-container {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 3rem;
}

/* Style pour l'icône dans la page de détails */
.watchlist-action-container .media-type-icon.inline {
    position: static;
    width: 24px;
    height: 24px;
    min-width: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.watchlist-action-container .media-type-icon.inline svg {
    width: 100%;
    height: 100%;
    fill: var(--secondary-color);
    margin-bottom: 0.5rem;
    transition-duration: .3s;
}

.watchlist-action-container .media-type-icon.inline:hover svg {
    fill: var(--primary-color);
    transition-duration: .3s;
}

/* Ajustement pour le bouton watchlist */
.watchlist-action-container .watchlist-btn {
    margin-bottom: 0;
}

/* ------ 
    Page de recherche
        ------ */
.titleSearch {
    text-align: center;
    font-size: 2rem;
    margin-top: 20px;
    color: var(--darkblue-color);
}

.filters {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin: 20px 0;
    flex-wrap: wrap;
    background: var(--white-color);
    padding: 15px;
}

.filters select,
.filters input {
    padding: 10px;
    font-size: 1rem;
    border-radius: 5px;
    border: 1px solid #ccc;
    background: white;
    transition-duration: .3s;
}

.filters input:hover,
.filters input:active,
.filters select:hover {
    border: 1px solid var(--darkblue-color);
    transition-duration: .3s;
}

.yearInput {
    width: 100px;
}

.searchPageBtn {
    background-color: var(--secondary-color);
    color: var(--white-color);
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 1rem;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition-duration: .3s;
}

.searchPageBtn:hover {
    background-color: var(--primary-color);
    transition-duration: .3s;
}

.rating-filter {
    display: flex;
    gap: 5px;
    align-items: center;
}

.rating-filter input {
    display: none;
}

.rating-filter label {
    cursor: pointer;
    font-size: 2rem;
    color: gray;
    transition: color 0.2s;
}

.rating-filter label:hover,
.rating-filter label:hover ~ label,
.rating-filter input:checked ~ label {
    color: gold;
}

.movie-genres span {
    background: #f1f1f1;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 0.9em;
    margin-top: 5px;
    display: inline-block;
}

.star-rating {
    color: gold;
    font-size: 1.2rem;
}

.noResultsMessage {
    color: var(--primary-color);
    font-weight: bold;
    margin-bottom: 2rem;
    text-align: center;
}



/* ------ 
    WATCHLIST 
        ------ */
.watchlistTop {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.watchlist h2 {
    text-align: center;
    font-size: 2rem;
    margin-top: 20px;
    color: var(--darkblue-color);
}

.erreurWatchlist {
    color: var(--primary-color);
    font-weight: bold;
    margin-bottom: 2rem;
    text-align: center;
}

.media-type-icon.inline {
    position: static;
    width: 16px;
    height: 16px;
    min-width: 16px;
    background-color: transparent;
    border-radius: 0;
    margin-right: 3px;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    transform: translateY(-1px);
}

.media-type-icon.inline svg {
    width: 100%;
    height: 100%;
    margin-top: 0.7rem;
    fill: var(--primary-color);
}

/* ------ 
    Bouton ajout / suppression de la watchlist
    Crédits bouton : from Uiverse.io by vinodjangid07
        ------ */
.btnWatchlist {
    position: absolute;
}

.btnWatchlistAdd,
.btnWatchlistDelIndex {
    top: 20px;
    right: 20px;
}

.btnWatchlist .button {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: var(--gray-color);
    border: none;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.534);
    cursor: pointer;
    transition-duration: .3s;
    overflow: hidden;
    position: relative;
}

.btnWatchlist .button:hover {
    width: 140px;
    border-radius: 50px;
    transition-duration: .3s;
    background-color: var(--secondary-color);
    align-items: center;
}

.btnWatchlist .button:hover .svgIconBtn {
    opacity: 0;
}

.btnWatchlist .button:hover::before {
    font-size: 13px;
    opacity: 1;
    transform: translateY(30px);
    transition-duration: .3s;
}

.btnWatchlist .button::before {
    position: absolute;
    top: -25px;
    text-transform: uppercase;
    color: var(--white-color);
    transition-duration: .3s;
    font-size: 2px;
    font-weight: normal;
    content: var(--button-text, "Ajouter");
}

.btnWatchlistAddDetails {
    position: relative;
}

/* Style pour le conteneur de la coche verte */
.watchlist-added-indicator {
    position: absolute;
    top: 20px;
    right: 20px;
}

/* Style pour le bouton avec la coche */
.watchlist-added-indicator .success-check {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: var(--success-color);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.534);
    cursor: default;
}

.watchlist-added-indicator .checkIcon {
    width: 20px;
    height: 20px;
    fill: white;
}

/* Variante du bouton sur la page de la watchlist */
.btnWatchlistDel {
    top: 20px;
    right: 20px;
}

.btnWatchlistDel .button::before {
    content: "Supprimer";
}

/* Variante du bouton sur la page de détails */
.watchlist-btn {
    min-width: 200px;
    padding: 1rem;
    width: auto;
    height: 30px;
    border-radius: 50px;
    background-color: var(--secondary-color);
    border: none;
    display: flex;
    align-items: center;
    color: var(--white-color);
    justify-content: center;
    cursor: pointer;
    transition-duration: .3s;
    margin-bottom: 3rem;
    white-space: nowrap;
}

.watchlist-btn:hover {
    background-color: var(--primary-color);
    transition-duration: .3s;
}

.watchlist-btn:active {
    transform: scale(0.95);
    box-shadow: inset 0px 0px 20px rgba(0, 0, 0, 0.534);
    transition-duration: .3s;
}

/* Icone du bouton de la watchlist */
.svgIconBtn {
    width: 10px;
    transition-duration: .3s;
}

.svgIconBtn path {
    fill: var(--white-color);
}


/* ------ 
    MESSAGE WATCHLIST 
        ------ */
.messagewatchlist {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--secondary-color);
    color: white;
    padding: 0.8rem 1.5rem;
    border-radius: 4px;
    z-index: 100;
    opacity: 1;
    transition: opacity 1s ease-out;
}

/* Classe pour la disparition */
.masque {
    opacity: 0;
}

.supprime {
    display: none;
}


/* ------ 
    CRUNCHSWIPE
        ------ */
.mainSwipe {
    overflow: hidden;
    padding-top: 5rem;
    display: flex;
    color: var(--darkblue-color);
    ;
    padding-bottom: 3rem;
}

/* Infos du films  */

#swipeInfo {
    width: 27.5%;
    background-color: #FFF;
    border-radius: 0 50px 50px 0;
    box-shadow: 5px 0 10px rgba(0, 0, 0, 0.2),
        -5px 0 10px rgba(0, 0, 0, 0.2);
    padding: 2rem;
}

#swipeInfo h2 {
    font-size: 2rem;
}

#swipeInfo p {
    font-size: 1.1rem;
    margin-top: 0.5rem;
}

#swipeInfo .resume {
    font-size: 1rem;
    margin: 1rem 0;
}

#swipeInfo .actors {
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
}

#swipeInfo .actor {
    width: calc(25% - 1rem);
    text-align: center;
}

#swipeInfo .actors img {
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: 50% 50%;
    border-radius: 10%;
}

#swipeInfo .actors p {
    font-size: 0.7rem;
}

#swipeInfo .star-rating {
    font-size: 2rem;
}

.swipeBtnDetails {
    display: flex;
    justify-content: center;
    background-color: var(--blue-color);
    color: var(--white-color);
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 1rem;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 2rem;
}

.swipeBtnDetails:hover {
    background-color: var(--darkblue-color);
}

.swipeBtnDetails:active {
    transform: scale(0.95);
}

/* CSS pour le swipe */


#swipeFeature {
    margin-top: 10rem;
    width: 45%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

#swiper {
    height: 65vh;
    aspect-ratio: 2 / 3;
    perspective: 1000px;
    perspective-origin: center 50%;
    transform-style: preserve-3d;
    position: relative;
}



.card {
    width: 100%;
    height: 100%;
    position: absolute;
    border-radius: 20px;
    overflow: hidden;
    transform: translateZ(calc(-30px * var(--i))) translateY(calc(-20px * var(--i))) rotate(calc(-4deg * var(--i)));
    filter: drop-shadow(2px 2px 20px rgba(0, 0, 0, 0.5));
    cursor: pointer;
    user-select: none;
    transition: transform 0.5s, opacity 0.5s;
}

.card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
}

.card.dismissing {
    opacity: 0;
    pointer-events: none;
}

.swipeButtons {
    margin-top: 2rem;
    gap: 10rem;
    justify-content: center;
    display: flex;
    width: 100%;
}

#like,
#dislike {
    width: 10%;
    border-radius: 50%;
    padding: 15px;
    position: relative;
    z-index: 1;
}

#like path,
#dislike path {
    fill: var(--white-color);
}

#like {
    animation: animation1 1.4s ease-in-out both paused;
}

#like.trigger {
    animation: animation2 1.4s ease-in-out both;
}

#dislike {
    animation: animation3 1.4s ease-in-out both paused;
}

#dislike.trigger {
    animation: animation4 1.4s ease-in-out both;
}

#like {
    background-color: var(--primary-color);
}

#dislike {
    background-color: var(--blue-color);
}


@keyframes animation1 {
    50% {
        background-color: var(--success-color);
        /* opacity: 0.8; */
    }
}

@keyframes animation2 {
    50% {
        background-color: var(--success-color);
    }
}

@keyframes animation3 {
    50% {
        opacity: 0.5;
        background-color: var(--gray-color);
    }
}

@keyframes animation4 {
    50% {
        opacity: 0.5;
        background-color: var(--gray-color);
    }
}

/* Info de la watchlist */
.swipeWatchlist {

    width: 27.5%;
    background-color: #FFF;
    border-radius: 50px 0 0 50px;
    box-shadow: 5px 0 10px rgba(0, 0, 0, 0.2),
        -5px 0 10px rgba(0, 0, 0, 0.2);
}

#watchlist-container {
    margin-bottom: 3rem;
}

.swipeWatchlist h2 {
    margin: 2rem 0 1rem 2rem;
    font-size: 2rem;
    color: var(--primary-color);
}

.swipeWatchlist .star-rating {
    font-size: 2rem;
}

#media-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 0.5rem 0 0.5rem 5rem;
}

#media-poster-container {
    flex: 2 1 150px;
    transition: all 0.3s ease;
}

#media-poster-container:hover {
    transform: scale(1.05);
}

#media-poster-container img {
    width: 100%;
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 5px 0 10px rgba(0, 0, 0, 0.2),
        -5px 0 10px rgba(0, 0, 0, 0.2);
}

#media-title-container {
    flex: 1 1 400px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
    text-align: left;
}

#media-title-container h2 {
    font-size: 1.3rem;
}

#media-title-container p {
    font-size: 1.1rem;
}

.swipeBtnWatchlist {
    display: flex;
    justify-content: center;
    background-color: var(--primary-color);
    color: var(--white-color);
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 1rem;
    text-decoration: none;
    border: none;
    cursor: pointer;
    margin: 0 2rem 4rem 2rem;
    transition: all 0.3s ease;
}

.swipeBtnWatchlist:hover {
    background-color: var(--secondary-color);
}

.swipeBtnWatchlist:active {
    transform: scale(0.95);
}


/*---------
    Fournisseurs de streaming 
        ---------*/
.streaming-providers {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.streaming-providers > p {
    margin-bottom: 1.5rem;
    font-size: 1.2rem;
}

.streaming-providers-container {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
    flex-direction: row;
    margin-top: 1rem;
}

.providers-section {
    flex: 1;
    min-width: 180px;
    margin-bottom: 1rem;
    border: 1px solid rgba(0, 48, 73, 0.1);
    border-radius: 10px;
    padding: 1rem;
    background-color: rgba(253, 246, 246, 0.5);
    transition-duration: .3s;
}

.providers-section h4 {
    color: var(--darkblue-color);
    margin-bottom: 1rem;
    font-size: 1rem;
    text-align: center;
}

.providers-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.provider {
    width: 50px;
    height: 50px;
    transition: transform 0.3s ease;
}

.provider img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 8px;
}

.provider:hover {
    transform: scale(1.1);
}

.providers-section:hover {
    border-color: var(--darkblue-color);
    transition-duration: .3s;
}

/*------
    Style pour les affiches et ac en placeholder
        ------ */
.placeholder-poster {
    background-color: #253340;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    width: 100%;
    object-fit: cover;
}



/* ------


    RESPONSIVE
        
    
    ------ */

/* ---------- Menu ---------- */
@media screen and (max-width: 992px) {
    .menu {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        padding: 10px;
    }

    .searchBar {
        order: 3;
        width: 80%;
        margin-top: 10px;
        position: static;
        transform: none;
        margin: 1rem auto;
    }

    .menuLeft {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }

    .menuRight {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }

}

@media screen and (max-width: 768px) {


    .logoAccueil img {
        width: 35px;
        height: 35px;
    }

    .profile-img {
        width: 35px;
        height: 35px;
    }

    .linkAccueil {
        display: none;
    }

    .btnLogin {
        padding: 6px 12px;
        font-size: 12px;
    }
}


/* ---------- PAGE ACCUEIL ---------- */
@media screen and (max-width: 992px) {
    .headerContent {
        padding: 0 20px;
    }

    .headerContent h1 {
        font-size: 4rem;
    }

    .headerContent p {
        font-size: 1.3rem;
    }

    .movie-card {
        width: 180px;
    }

    .buttonNav {
        display: none;
    }

    .carousel {
        overflow-x: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding: 10px 5px;
    }

    .carousel::-webkit-scrollbar {
        display: none;
    }

    .catTitle {
        font-size: 1.3rem;
        margin-left: 1rem;
    }

    .cta {
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }

    .cta p {
        text-align: center;
    }

    .cta a {
        margin-top: 10px;
    }
}

@media screen and (max-width: 768px) {
    .headerContent {
        height: 60vh;
    }

    .headerContent h1 {
        font-size: 3.2rem;
        text-align: center;
    }

    .headerContent p {
        font-size: 1.1rem;
        text-align: center;
    }

    .movie-card {
        width: 150px;
        padding: 5px;
    }

    .movie-card:hover {
        transform: none;
    }

    .movie-card h4 {
        font-size: 0.9rem;
        margin-top: 5px;
    }

    .movie-card p {
        font-size: 0.8rem;
        margin-top: 5px;
    }

    .btnWatchlist .button {
        width: 30px;
        height: 30px;
    }

    .btnWatchlist .button:hover {
        width: 30px;
        border-radius: 50%;
        background-color: var(--gray-color);
        transition-duration: 0s;
    }

    .btnWatchlist .button:hover .svgIconBtn {
        opacity: 1;
    }

    .btnWatchlist .button:hover::before {
        opacity: 0;
        transform: none;
    }

    .btnWatchlist .button {
        box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
    }

    .btnWatchlist,
    .watchlist-added-indicator {
        top: 10px;
        right: 10px;
    }

    .filmsRecents,
    .seriesTendances,
    .filmsAction,
    .seriesTopRated {
        margin-bottom: 2rem;
    }

    .catTitle {
        font-size: 1.2rem;
    }

    .cta p:nth-of-type(2) {
        font-size: 1.5rem;
    }

    .cta a {
        padding: 8px 20px;
        font-size: 1.1rem;
    }
}

@media screen and (max-width: 576px) {
    .headerContent {
        height: 50vh;
    }

    .headerContent h1 {
        font-size: 2.5rem;
        margin-bottom: 0.3rem;
    }

    .headerContent p {
        font-size: 1rem;
    }

    .movie-card {
        width: 130px;
    }

    .movie-card h4 {
        font-size: 0.8rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .movie-card p {
        font-size: 0.7rem;
    }

    .btnWatchlist .button {
        width: 30px;
        height: 30px;
    }

    .svgIconBtn {
        width: 12px;
    }

    .catTitle {
        font-size: 1.1rem;
    }

    .cta {
        padding: 15px 10px;
    }

    .cta p:nth-of-type(1) {
        font-size: 1.1rem;
    }

    .cta p:nth-of-type(2) {
        font-size: 1.3rem;
        letter-spacing: 1px;
    }

    .cta a {
        padding: 8px 15px;
        font-size: 1rem;
    }

    main section {
        margin-bottom: 1.5rem;
    }
}

/* ---------- PAGE SWIPE ---------- */


@media screen and (max-width: 992px) {
    .mainSwipe {
        flex-direction: column;
        align-items: center;
        padding: 1rem;
    }

    #swiper {
        height: 60vh;
    }

    #swipeFeature {
        width: 100%;
        margin-top: 5rem;
    }

    #swipeInfo {
        width: 100%;
        border-radius: 50px;
        margin-top: 2rem;
    }

    #swipeInfo h2 {
        font-size: 1.8rem;
    }

    #swipeInfo p {
        font-size: 1rem;
    }

    #swipeInfo .resume,
    #swipeInfo .actors {
        display: none;
    }

    #swipeInfo .star-rating {
        font-size: 1.5rem;
    }

    .swipeBtnDetails {
        margin-top: 1rem;
    }

    .swipeWatchlist {
        width: 100%;
        border-radius: 50px;
        margin-top: 2rem;
    }

    .swipeWatchlist h2 {
        font-size: 1.8rem;
    }

    .swipeWatchlist .star-rating {
        font-size: 1.5rem;
    }

    #watchlist-container {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
        padding: 0 1rem;
    }

    #media-poster-container {
        width: 100%;
    }

    #media-poster-container img {
        width: 100%;
        height: auto;
        border-radius: 10px;
    }

    #media-title-container {
        font-size: 0.9rem;
    }
}

@media screen and (max-width: 768px) {
    #swipeInfo h2 {
        font-size: 1.6rem;
    }

    #swiper {
        height: 50vh;
    }

    #swipeInfo p {
        font-size: 0.9rem;
    }

    .swipeWatchlist h2 {
        font-size: 1.6rem;
    }

    #media-container {
        grid-template-columns: 1fr;
    }

    #media-poster-container {
        width: 40%;
        flex: none;
    }

    #media-title-container {
        gap: 5px;
    }

    #media-title-container h2 {
        font-size: 0.9rem;
    }

    #media-title-container p {
        font-size: 0.8rem;
    }
}

@media screen and (max-width: 576px) {
    #swipeInfo h2 {
        font-size: 1.4rem;
    }

    #swiper {
        height: 45vh;
    }

    #swipeInfo p {
        font-size: 0.8rem;
    }

    .swipeWatchlist h2 {
        font-size: 1.4rem;
    }

    #media-container {
        flex-direction: column;
        align-items: center;
        padding: 0;

    }

    #media-poster-container {
        width: 70%;
        max-width: 150px;
        margin: 0;

    }

    #media-title-container {
        width: 100%;
        text-align: center;
        flex: 1;
    }

    .swipeButtons {
        gap: 6rem;
    }

    #like,
    #dislike {
        padding: 10px;
    }

}



/* ---------- PAGE PROFIL ---------- */
@media screen and (max-width: 768px) {
    .profileContainer {
        padding: 2rem;
        max-width: 90%;
    }

    .userIdentity {
        font-size: 1.5rem !important;
    }

    .userInfo p {
        font-size: 1rem;
    }

    .avatarContainer:hover img {
        transform: none;
    }
}

@media screen and (max-width: 576px) {
    .profileContainer {
        padding: 1.5rem;
        margin-top: 10px;
        border-radius: 10px;
    }

    .avatarContainer img {
        width: 80px;
        height: 80px;
    }

    .userIdentity {
        font-size: 1.3rem !important;
    }

    .userInfo p {
        font-size: 0.9rem;
        padding-bottom: 0.7rem;
    }

    #profilePage h2 {
        font-size: 1.6rem;
        margin-top: 15px;
    }
}



/* ---------- WATCHLIST ---------- */
@media screen and (max-width: 992px) {
    .buttonNavSearch {
        display: none;
    }

    .watchlist .carousel {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 15px;
    }

    .watchlist .movie-card {
        width: 210px;
    }

    .watchlist .movie-card:hover {
        transform: none;
    }

    .btnWatchlistDel .button:hover {
        width: 30px;
        border-radius: 50%;
        background-color: var(--gray-color);
        transition-duration: 0s;
    }

    .btnWatchlistDel .button:hover .svgIconBtn {
        opacity: 1;
    }

    .btnWatchlistDel .button:hover::before {
        opacity: 0;
        transform: none;
    }

    .btnWatchlistDel .button {
        box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
    }

    .watchlist .carousel::-webkit-scrollbar {
        display: none;
    }

    .watchlist .carousel {
        scrollbar-width: none;
        -ms-overflow-style: none;
        overflow-x: scroll;
        flex-wrap: nowrap;
        justify-content: flex-start;
        padding: 10px 5px;
    }

    .watchlist h2 {
        font-size: 1.8rem;
    }
}

@media screen and (max-width: 576px) {
    .watchlist .carousel-container {
        width: 100%;
        display: flex;
        justify-content: center;
        padding: 0;
    }

    .watchlist .carousel {
        flex-direction: column;
        align-items: center;
        width: auto;
        max-width: 100%;
    }

    .watchlist .movie-card {
        width: 250px;
    }

    .watchlist .movie-card .media-title-container {
        margin-top: 5px;
    }

    .watchlist .movie-card h4 {
        font-size: 1rem;
    }

    .watchlist .movie-card .added-date {
        font-size: 0.65rem;
        margin: 3px 0;
    }

    .watchlist .btnWatchlistDel {
        top: 20px;
        right: 20px;
    }

    .watchlist .btnWatchlistDel .button {
        width: 30px;
        height: 30px;
    }

    .watchlist .btnWatchlistDel .svgIconBtn {
        width: 12px;
    }
}




/* ---------- PAGE DETAILS ---------- */
@media screen and (max-width: 992px) {
    .details-container {
        flex-direction: column;
        align-items: center;
        margin: 2rem 1rem;
    }

    .details-poster {
        width: 60%;
        margin-bottom: 1rem;
    }

    .mediaTypeContainer {
        margin-top: 1rem;
    }

    .details-content {
        width: 100%;
        padding: 0 1rem;
    }

    .details-resume {
        width: 100%;
    }

    .streaming-providers-container {
        justify-content: center;
    }

    .providers-section {
        min-width: 150px;
    }

    .providers-section:hover {
        border-color: rgba(0, 48, 73, 0.1);
    }

    .providers-section .provider:hover {
        transform: none;
    }

    .actors-container {
        justify-content: center;
    }

    .actor {
        width: 180px;
    }
}

@media screen and (max-width: 768px) {
    .details-container {
        margin: 1rem 0.5rem;
    }

    .details-poster {
        width: 80%;
    }

    .details-content h1 {
        font-size: 2rem;
        text-align: center;
    }

    .mediaTypeContainer {
        justify-content: center;
        display: flex;
    }

    .watchlist-action-container {
        justify-content: center;
        margin-bottom: 2rem;
    }

    .details-content p {
        font-size: 1rem;
        line-height: 1.5;
    }

    .actors-container {
        gap: 10px;
    }

    .actor {
        width: 140px;
    }

    .actor p {
        font-size: 0.9rem;
        margin: 3px 0;
    }

    .streaming-providers h2 {
        font-size: 1.5rem;
        text-align: center;
    }

    .providers-section {
        min-width: 120px;
    }

    .providers-section h4 {
        font-size: 0.9rem;
    }

    .provider {
        width: 40px;
        height: 40px;
    }
}

@media screen and (max-width: 576px) {
    .details-poster {
        width: 90%;
    }

    .details-content h1 {
        font-size: 1.8rem;
    }

    .watchlist-btn {
        min-width: auto;
        width: 90%;
        font-size: 0.9rem;
    }

    .details-content p {
        font-size: 0.9rem;
    }

    .details-content .star-rating {
        font-size: 1.2rem;
    }

    .streaming-providers-container {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }

    .providers-section {
        width: 90%;
    }

    .actors-container {
        justify-content: space-around;
    }

    .actor {
        width: 120px;
    }

    .actor p {
        font-size: 0.8rem;
    }

    .details-content h2 {
        font-size: 1.3rem;
        text-align: center;
        margin-top: 1.5rem;
    }
}
