/* Retro gaming theme base */
body.retro{
  font-family: 'VT323', monospace;
  font-size: 19px;
  background-color: #000;
  color: #00ffd1;
  background-image: radial-gradient(rgba(0,0,0,0.45), rgba(0,0,0,0.9)), url("image/vince games land youtube.png");
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  -webkit-font-smoothing: none;
  image-rendering: pixelated;
  position: relative;
}

/* Subtle scanline overlay for CRT feel */
body.retro::before{
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(0,0,0,0) 50%, rgba(0,0,0,0.06) 51%);
  background-size: 100% 4px;
  opacity: 0.35;
}

/* Slight vignette */
body.retro::after{
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0) 40%, rgba(0,0,0,0.6) 100%);
}


/******************************************** NAVBAR START ************************************************/

nav{
  height: auto;
}

.navbar .container-fluid{
  align-items: center;
}

.navbar-brand img{
  width: auto;
  height: 48px; /* fix height so navbar stays consistent */
  display: block;
}

.navbar-nav .nav-link{
  padding-top: .6rem;
  padding-bottom: .6rem;
  font-size: 18px;
}

.bg-body-tertiary {
  color: #fff;
  --bs-bg-opacity: 1;
  background-color: transparent !important;
  border-top: 3px solid #FF46C4;
  border-bottom: 3px solid #FF46C4;
  border-left: unset;
  border-radius: unset;
  -webkit-box-shadow: 5px 5px 5px 0px #FF46C4, inset 4px 4px 15px 0px #FF46C4, 5px 5px 15px 5px rgba(255,65,220,0); 
  box-shadow: 0px 4px 15px 0px #FF46C4, inset 0px 4px 35px 0px #FF46C4, 5px 5px 15px 5px rgba(255,65,220,0)
}

.btn {
  color: #fff;
  background-color: transparent;
  border-color: #ff46c4;
  border-width: 3px;
  padding: .6rem 1rem;
  text-shadow: 0 1px 0 rgba(0,0,0,0.6);
  transition: all 120ms linear;
  font-size: 17px;
}

.btn:hover {
  color: #000;
  background-color: #ff46c4;
  border-color: #5beef8;
}

.btn-check:checked+.btn, .btn.active, .btn.show, .btn:first-child:active, :not(.btn-check)+.btn:active {
  color: #fff;
  background-color: rgb(255, 0, 140);
  border-color: rgb(91 238 248);
}

.form-control:focus {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
  border-color: rgb(255, 0, 140);
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(255, 61, 252, 0.25);
}

.form-control{
  font-size: 17px;
}

.navbar-brand {
  padding-top: var(--bs-navbar-brand-padding-y);
  padding-bottom: var(--bs-navbar-brand-padding-y);
  margin-right: var(--bs-navbar-brand-margin-end);
  font-size: var(--bs-navbar-brand-font-size);
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
}

.nav-link{
  color: #fff !important;
}

.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
  color: rgb(91 238 248);
}

.logo-cutom{
  width: auto;
  height: 48px; /* ensure brand logo uses same height everywhere */
}

.navbar {
  transition: background-color 0.3s ease-in-out; /* Transition fluide */
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  min-height: 64px; /* consistent navbar height across pages */
}

/* Stronger enforcement: fix desktop navbar height and vertically center links */
@media (min-width: 992px) {
  .navbar {
    height: 64px !important;
    min-height: 64px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .navbar .container-fluid{ align-items: center; }

  .navbar-brand, .navbar-brand img, .logo-cutom {
    height: 48px !important;
    line-height: 48px !important;
    display: inline-block;
    vertical-align: middle;
  }

  .navbar-nav .nav-link{
    height: 64px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }

  /* Force consistent font-size for navbar links on desktop to avoid page differences */
  .navbar .nav-link {
    font-size: 18px !important;
    line-height: 1 !important;
  }

  /* Extra enforcement for typography to avoid any page-specific overrides */
  nav.navbar, nav.navbar .container-fluid, nav.navbar .navbar-nav, nav.navbar .nav-link {
    font-family: 'VT323', monospace !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    letter-spacing: 0.6px !important;
  }

  /* Override inherited body.retro font-size for navbar and all its children */
  nav.navbar *, nav.navbar *::before, nav.navbar *::after {
    font-size: 17px !important;
  }

  /* Re-apply specific sizes for known elements */
  nav.navbar .nav-link, nav.navbar .btn, nav.navbar .form-control {
    font-size: 17px !important;
  }

  /* Keep search input compact so it doesn't alter navbar height */
  .navbar .d-flex[role="search"] { height: 64px; display:flex; align-items:center; }
  .navbar .d-flex[role="search"] .form-control{ max-width:240px; }
}

/* Prevent navbar content from wrapping which can change navbar height on some pages */
.navbar .container-fluid{
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
}

.navbar-nav {
  white-space: nowrap; /* keep items on one line on desktop */
}

.navbar-nav .nav-link{
  white-space: nowrap;
  padding-top: .6rem;
  padding-bottom: .6rem;
}

/* Limit search input so it doesn't force wrap on medium/desktop */
.navbar .d-flex[role="search"] .form-control{ max-width: 280px; }

.navbar.scrolled {
  background-color: #000 !important; /* Couleur noire lorsque scrollé */
}



/******************************************** NAVBAR END ************************************************/

h1{
  margin: 50px auto 20px;
  font-size: 32px;
  padding: 18px 22px;
  font-family: 'Press Start 2P', monospace;
  text-transform: uppercase;
  color: #00ffd1;
  text-align: center;
  text-shadow: 0 0 8px #02d2fe, 0 0 12px #ff46c4;
  display: inline-block;
  background: rgba(0,0,0,0.6);
  border: 3px solid #02d2fe;
  border-radius: 6px;
}


/************************************************** CARD START **************************************************************/

.card {
  --bs-card-spacer-y: 1rem;
  --bs-card-spacer-x: 1rem;
  --bs-card-title-spacer-y: 0.5rem;
  --bs-card-title-color: ;
  --bs-card-subtitle-color: ;
  --bs-card-border-width: var(--bs-border-width);
  --bs-card-border-color: var(--bs-border-color-translucent);
  --bs-card-border-radius: var(--bs-border-radius);
  --bs-card-box-shadow: ;
  --bs-card-inner-border-radius: calc(var(--bs-border-radius) -(var(--bs-border-width)));
  --bs-card-cap-padding-y: 0.5rem;
  --bs-card-cap-padding-x: 1rem;
  --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);
  --bs-card-cap-color: ;
  --bs-card-height: ;
  --bs-card-color: ;
  --bs-card-bg: var(--bs-body-bg);
  --bs-card-img-overlay-padding: 1rem;
  --bs-card-group-margin: 0.75rem;
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: var(--bs-card-height);
  color: #fff;
  word-wrap: break-word;
  background-color: rgba(0,0,0,0.6);
  background-clip: border-box;
  border: 3px solid #00ff99;
  border-radius: 6px;
  box-shadow: 0 0 18px #00ff99, inset 0 0 8px rgba(0,0,0,0.6);
}

/* Ensure h-100 utility makes the card fill column height */
.card.h-100{
  height: 100%;
}

/* Make card body stretch so footers/titles align */
.card .card-body{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1 1 auto;
}

/* Use natural image height so full image is visible (images have same size) */
.card-img-top{
  border-bottom: 3px solid #ff46c4;
  image-rendering: pixelated;
  width: 100%;
  height: auto; /* let image determine its height */
  object-fit: contain; /* show whole image */
  background: #000;
  display: block;
}

.card-title {
  margin-bottom: var(--bs-card-title-spacer-y);
  color: #02d2fe; /* cyan site color for card titles */
  font-size: 20px;
}

p.card-text{
  color: #fff;
  font-size: 18px;
}

.card-img-top{
  border-bottom: 3px solid #ff46c4;
  image-rendering: pixelated;
}

.g-4, .gy-4 {
  --bs-gutter-y: 4.5rem;
}

.g-4, .gx-4 {
  --bs-gutter-x: 4.5rem;
}


/************************************************** CARD END **************************************************************/

/************************************************** PAGE AFFICHE-VIDEO START **************************************************************/

.entry-row {
  padding: 20px;
}

.entry-row:nth-child(odd) {
  background-color: #00ffff62; 
}

.entry-row:nth-child(even) {
  background-color: #ff46c470; 
}

.full-width {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

.divCustom{
  color: #fff;
}

.pagination {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}

.page-item {
  margin: 0 5px;
}

.page-item.active .page-link {
  background-color: #02d2fe;
  border-color: #02d2fe;
  color: white;
}

.page-link {
  color: #02d2fe;
  border-radius: 5px;
}

.page-link:hover {
  background-color: #e9ecef;
  color: #ff46c4;
}


/************************************************** PAGE AFFICHE-VIDEO END **************************************************************/


/************************************************** PAGE PRESENTATION START **************************************************************/

.sectionPresentation{
  background: rgba(255,70,196,0.45);
  color: #fff;
  padding: 12px;
  border-radius: 6px;
  text-align: justify;
  display: block; /* was flex - use block so paragraphs flow normally */
  font-size: 16px;
  line-height: 1.6; /* improve readability */
  margin-top: 10px;
  margin-bottom: 10px;
}

.sectionPresentationBis{
  background: rgba(2,210,254,0.28);
  color: #fff;
  padding: 12px;
  border-radius: 6px;
  text-align: justify;
  display: block; /* was flex */
  font-size: 16px;
  line-height: 1.6;
  margin-top: 10px;
  margin-bottom: 10px;
}

/* Ensure paragraphs inside presentation blocks have sensible spacing */
.sectionPresentation p, .sectionPresentationBis p {
  margin-bottom: 0.9rem;
}

.sectionTitle {
  animation-name: sectionTitle;
  animation-duration: 3s; /* Durée de l'animation */
  animation-iteration-count: infinite; /* Répétition infinie */
  animation-direction: alternate; /* Reviens dans l'autre sens après chaque cycle */
  animation-timing-function: ease-in-out; /* Effet de transition fluide */
  text-align: center;
}

@keyframes sectionTitle {
  from {
    color: #02d2fe;
  }
  to {
    color: #ff46c4;
  }
}


/************************************************** PAGE PRESENTATION END **************************************************************/

/************************************************** FOOTER START **************************************************************/

body > footer{
  margin-top: 65px !important;
  background: #000;
  border-top: 3px solid #02d2fe;
  border-bottom: 3px solid #02d2fe;
  border-left: unset;
  border-radius: unset;
  -webkit-box-shadow: 5px 5px 5px 0px #02d2fe, inset 4px 4px 15px 0px #02d2fe, 5px 5px 15px 5px rgba(255,65,220,0); 
  box-shadow: 0px 4px 15px 0px #02d2fe, inset 0px 4px 35px 0px #02d2fe, 5px 5px 15px 5px rgba(255,65,220,0)
}

.img-fluid {
  max-width: 69%;
  height: auto;
}

h5{
  color: #02d2fe;
}

body > footer > div > div > div.col-md-4.text-center > ul > li > a:hover{
  color: #FF46C4 !important;
}


/************************************************** FOOTER END **************************************************************/

/* Styles specific to the videos listing page */
.video-section{
  background: linear-gradient(180deg, rgba(2,18,25,0.6), rgba(0,0,0,0.85));
  padding: 40px 20px 80px 20px;
  border-radius: 8px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.6) inset, 0 8px 40px rgba(0,0,0,0.6);
}

.video-card{
  background: linear-gradient(180deg, rgba(0,0,0,0.55), rgba(0,0,0,0.75));
  border: 2px solid #02d2fe;
  color: #e6fff8;
}

.video-card .card-title{
  color: #02d2fe;
  font-weight: 700;
}

.video-card .card-text{
  color: #bffaf2;
}

/* Date in cards: pink to match retro accent */
.video-card .video-date{
  color: #ff46c4;
  font-weight: 700;

}

/* Responsive: center content on tablet and mobile without touching desktop layout */
@media (max-width: 991.98px) {
  /* Center container content vertically stacked */
  .container {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* Center hero and titles */
  .presentation-hero {
    justify-content: center !important;
    text-align: center;
  }

  .presentation-hero .hero-mascotte {
    width: 96px !important;
  }

  .sectionTitle { text-align: center; }

  /* Navbar collapse: hidden by default (leave Bootstrap control), but when opened (.show) center the items */
  .navbar-collapse.collapse { display: none; }
  .navbar-collapse.collapse.show {
    display: flex !important;
    flex-direction: column;
    align-items: center;
  }

  .navbar-nav {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .navbar-nav .nav-item { width: 100%; text-align: center; }
  .navbar-nav .nav-link { display: inline-block; }

  /* Make the search form centered and narrow on mobile */
  .navbar .d-flex[role="search"] {
    width: 100%;
    justify-content: center;
    padding: 0.5rem 0;
  }
  .navbar .form-control { max-width: 320px; width: 90%; }

  /* Toggler (hamburger) styling: cyan border and icon */
  .navbar-toggler {
    border-color: #02d2fe !important;
  }
  .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='%2302d2fe' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/></svg>") !important;
  }

  /* Footer adjustments */
  footer.footer .row { display: flex; flex-direction: column; align-items: center; }
  footer.footer .col-md-4 { text-align: center; margin-bottom: 1rem; }
  footer.footer .col-md-4 img { max-width: 50%; }
  footer.footer form .form-control { margin-bottom: .5rem; }
  footer.footer .btn { width: 100%; }
}

@media (max-width: 575.98px) {
  /* Extra small screens: slightly larger line-height and font-size tuning */
  body.retro { font-size: 18px; }
  .presentation-hero .hero-mascotte { width: 80px !important; }
}
  text-shadow: 0 0 6px rgba(255,70,196,0.25);
}

.video-card .card-media{
  background: #000;
  overflow: hidden;
}

.video-card img.card-img-top{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}

.video-card img.card-img-top:hover{
  transform: scale(1.04);
}

/* Modal tweaks */
.modal-content.bg-dark{
  background: linear-gradient(180deg,#000,#00121a);
  border: 3px solid #02d2fe;
}

.video-section .input-group .form-control{
  background: rgba(255,255,255,0.03);
  border: 2px solid #02d2fe;
  color: #e6fff8;
}

.video-section .btn-primary{
  background: #02d2fe;
  border-color: #02d2fe;
  color: #001;
}

.video-section .pagination .page-link{
  background: rgba(255,255,255,0.02);
  color: #02d2fe;
  border: 1px solid rgba(2,210,254,0.15);
}

.video-section .pagination .page-item.active .page-link{
  background: #02d2fe;
  color: #001;
}

/* Presentation page styling */
.presentation-hero{
  border: 3px solid #02d2fe;
  padding: 14px;
  background: linear-gradient(90deg, rgba(0,0,0,0.55), rgba(2,18,25,0.6));
  align-items: center;
  gap: 18px;
  border-radius: 8px;
}
.hero-mascotte{
  image-rendering: pixelated;
  border: 3px solid #ff46c4;
  padding: 6px;
  background: #000;
  border-radius: 6px;
}
.presentation-container .sectionPresentation,
.presentation-container .sectionPresentationBis{
  background: linear-gradient(180deg, rgba(255,70,196,0.07), rgba(2,210,254,0.03));
  padding: 18px;
  border-radius: 8px;
  color: #e6fff8;
}
.presentation-container h1{
  font-family: 'Press Start 2P', monospace;
  font-size: 28px;
  color: #00ffd1;
  margin: 0 0 6px 0;
}
.presentation-container h2{
  color: #02d2fe;
  font-family: 'Press Start 2P', monospace;
  font-size: 18px;
}
.presentation-container h3{
  color: #bffaf2;
  font-size: 16px;
}

@media (max-width: 576px){
  .presentation-hero{flex-direction: column; text-align:center}
  .hero-mascotte{width:96px}
  .presentation-container h1{font-size:20px}
}

/* Tabs styling for better contrast in retro theme */
.video-section .nav-tabs{
  border-bottom: 2px solid rgba(2,210,254,0.08);
}
.video-section .nav-tabs .nav-link{
  color: #00ffd1;
  background: transparent;
  border: 1px solid transparent;
  margin-right: 6px;
}
.video-section .nav-tabs .nav-link:hover{
  color: #02d2fe;
}
.video-section .nav-tabs .nav-link.active{
  color: #001;
  background: #02d2fe;
  border-color: #02d2fe;
  box-shadow: 0 4px 16px rgba(2,210,254,0.12);
}

/* Desktop-only: add pipe separators between top-level navbar items */
@media (min-width: 992px) {
  .navbar-nav {
    display: flex;
    align-items: center;
  }

  /* place separators inline after each link to keep them vertically centered */
  .navbar-nav > .nav-item { position: relative; }
  .navbar-nav > .nav-item:not(:last-child) .nav-link {
    padding-right: 10px; /* space for separator */
  }
  .navbar-nav > .nav-item:not(:last-child) .nav-link::after {
    content: "|";
    color: #02d2fe;
    opacity: 0.9;
    margin-left: 12px;
    font-weight: 700;
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
  }
  /* Ensure dropdown menu text unaffected */
  .navbar-nav .dropdown-menu { margin-left: 0; }
}