/* CSS Document */
:root{
    --color-embourg: #1560BD;
	--color-embourg-light: #96BEDC;
	--color-gray:#C5C5C5;
	--color-gray-light:#F5F5F5;
	
	--color-white: #EEE;
	
	--color-epee-text:#00B050;
	--color-epee-bg:#D6E3BC;
	--color-fleuret-text:#4472C4;
	--color-fleuret-bg:#DEEAF6;
	--color-sabre-text:#FF2F2F;
	--color-sabre-bg:#EECFCE;
	--color-laser-text:#AD33FF;
	--color-laser-bg:#DAA5FF;
		
	--color-result-gold:#C4C300;
	--color-result-silver:#868686;
	--color-result-bronze:#C86827;
	--color-result-honorable8:#80A0D0;
	--color-result-honorable16:#A0C0D0;
	--color-result-honorable32:#B0E0D0;
	--color-result-honorable64:#C0FFD0;
}

body{
    margin:0;
    font-family:Cambria, "Hoefler Text", "Liberation Serif", Times, "Times New Roman", "serif";
    background:var(--color-embourg);
}

/* COULEURS FOND */
.FondEmbourg{
	background-color: var(--color-embourg) !important;
}

.FondEmbourgLight{
	background-color: var(--color-embourg-light) !important;
}

.FondGris{
	background-color: var(--color-gray) !important;
}

.FondGrisLight{
	background-color: var(--color-gray-light) !important;
}

.FondNoir{
	background-color: #111 !important;
}

.FondEpee{
	background-color: var(--color-epee-bg) !important;
}

.FondFleuret{
	background-color: var(--color-fleuret-bg) !important;
}

.FondSabre{
	background-color: var(--color-sabre-bg) !important;
}

.FondLaser{
	background-color: var(--color-laser-bg) !important;
}

.FondProvince{
	background-color:#D90134 !important;
}

/* COULEURS TEXTE */
.TexteEmbourg{
	color:var(--color-embourg);
}

.TexteEmbourgLight{
	color:var(--color-embourg-light);
}

.TexteBlanc{
	color:var(--color-white) !important; 
}

.TexteNoir{
	color:#111 !important;
}

.TexteProvince{
	color:#D90134;
}

.TexteEpee{
	color: var(--color-epee-text);
}

.TexteFleuret{
	color: var(--color-fleuret-text);
}

.TexteSabre{
	color: var(--color-sabre-text);
}

.TexteLaser{
	color: var(--color-laser-text);
}

/***** INDEX */
/* HEADER */

		.index_site-header{
			display:flex;
			align-items:center;
			justify-content:space-between;
			padding:10px 20px;
			background:var(--color-embourg);
			color:var(--color-white);
			height: 110px;
		}

		/* Logo + name */

		.index_branding{
			display:flex;
			align-items:center;
			gap:15px;
		}

		/* Logo */

		.index_logo{
			width:100px;
			height:100px;
		}

		/* Website name */

		.index_site-name{
			font-size:30px;
			font-weight:bold;
			font-variant-caps: small-caps;
			font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", Verdana, "sans-serif";
		}

		/* REMINDER BAR */

		.index_reminder{
			background:#ffd24d;
			margin: 3px 10px;
			padding: 5px;
			font-weight:bold;
		}

		/* CANCEL BAR */

		.index_cancel{
			background:#f5c6cb;
			margin: 3px 10px;
			padding: 5px;
			border:solid thin;
			border-color:#E04F5F;
		}

		/* PAGE LAYOUT */

		.index_contenuGlobalSite{
			background:var(--color-embourg);
			margin:auto;
			padding:10px;
			display:flex;
			gap:10px;
			flex-wrap: wrap;
		}

		/* MAIN CONTENT (70%) */

		.index_main{
			flex:7;
			background:var(--color-gray-light);
			padding:10px;
			border-radius:6px;
			display: flex;
			flex-direction: column;
		}

		/* SIDEBAR (30%) */

		.index_panel{
			flex:3;
			background:var(--color-embourg-light);
			padding:10px;
			border-radius:6px;
			min-width: 480px;
			max-width: 480px;
		}

		@media (max-width: 1000px){

			.index_main,
			.index_panel{
				flex: 1 1 100%;
				max-width: 100%;
				min-width: 100%;
			}
		}
		/* FOOTER */

		.index_footer{
			display:flex;
			margin-top:5px;
			background:var(--color-embourg);
			padding:5px;
			gap:10px;
			color:var(--color-white);
			font-size: 0.8rem;
		}

		.index_footer a{
			color:var(--color-white);
		}

		/* ZONE SPONSORS ET SOUTIENS */

		.index_zoneSponsors{
			display:flex;
			margin-top:10px;
			background:var(--color-embourg-light);
			color:black;
			padding:10px;
			gap:5px;
		}

		/* MOBILE */

		@media (max-width:800px){

			.index_zoneSponsors{
				flex-direction:column;
			}
		}
/**** NEWS */
.timeline-news{
    position:relative;    
    margin:auto;
}

.timeline-news::before{
    content:"";
    position:absolute;
    left:145px;
    top:0;
    bottom:0;
    width:2px;
    background:#d7d7d7;
}

.timeline-news-item{
    display:grid;
    grid-template-columns:120px 30px 1fr;
    column-gap:20px;
    margin-bottom:1.5rem;
    position:relative;
}

.timeline-news-date{
    text-align:right;
    font-size:.9rem;
    color:#777;
    padding-top:.25rem;
    white-space:nowrap;
}

.timeline-news-dot{
    width:14px;
    height:14px;
    border-radius:50%;
    background:var(--color-embourg);
    border:4px solid #fff;
    box-shadow:0 0 0 2px #0d6efd;
    margin-top:.4rem;
    z-index:2;
}

.timeline-news-content{
    background:#fff;
    border:1px solid #e9ecef;
    border-radius:10px;
    padding:10px;
}

.timeline-news-content h3{
    margin-bottom:.4rem;
    font-size:1.35rem;
}

.timeline-news-author{
    color:#777;
    font-size:.9rem;
    margin-bottom:1rem;
	margin-left: 2rem;
	font-style: italic;
}

.timeline-news-text{
    line-height:1.3;
}

.timeline-news-signature{
	margin-left: 20px;
    text-align:left;
    font-style:italic;
    color:#666;
}

@media (max-width:768px){

    .timeline-news::before{
        left:10px;
    }

    .timeline-news-item{
        grid-template-columns:30px 1fr;
    }

    .timeline-news-date{
        grid-column:2;
        text-align:left;
        margin-bottom:.5rem;
        font-weight:600;
    }

    .timeline-news-dot{
        grid-row:1 / span 2;
    }

    .timeline-news-content{
        grid-column:2;
    }
}

.pagination-news {
    gap: .35rem;
}

.pagination-news .page-link {
    border: none;
    border-radius: .6rem;
    min-width: 42px;
    text-align: center;
    color: #555;
    transition: .2s;
}

.pagination-news .page-link:hover {
    background: #f1f3f5;
    color: #000;
}

.pagination-news .active .page-link {
    background: var(--bs-primary);
    color: white;
    font-weight: 600;
}

.pagination-news .disabled .page-link {
    background: transparent;
    color: #bbb;
}

/**** COMITE */
.orga-box {
  padding: 15px;
  border-radius: 12px;
  background: #f8f9fa;
  text-align: center;
  box-shadow: 0 3px 8px rgba(0,0,0,0.1);
}

.orga-main {
  background: #0d6efd;
  color: white;
}

.orga-secondary {
  background: #6c757d;
  color: white;
}

.orga-line {
  width: 2px;
  height: 15px;
  background: #ccc;
  margin: 15px auto;
}

.orga-contact {
  font-size: 0.9rem;
  line-height: 1.6;
}

/**** STAFF */
/* CARD */

.staff-card{
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    transition:.25s ease;
    position:relative;
    border:none;
}

.staff-card:hover{
    transform:translateY(-5px);
}

/* DIFFERENT LEVELS */

.staff-card.master{
    box-shadow:0 14px 35px rgba(11,94,215,.18);
}

.staff-card.init{
    box-shadow:0 10px 25px rgba(108,99,255,.12);
}

.staff-card.aide{
    border:1px solid #e6ebf2;
    background:#fbfcfe;
}

/* SMALL HEADER */

.staff-top{
    height:50px;
	background:var(--color-embourg);
}

/* AVATAR */

.staff-avatar-wrapper{
    margin-top:-38px;
}

.staff-avatar{
    width:90px;
    height:90px;
    border-radius:50%;
    object-fit:cover;
    border:4px solid white;
    box-shadow:0 5px 15px rgba(0,0,0,.12);
}

/* LEVEL */

.staff-member-level{
    background:var(--color-gray);
	display:inline-block;
    padding:6px 14px;
    border-radius:30px;
    font-size:.75rem;
    font-weight:700;
    margin-bottom:10px;
}

/* NAME */

.staff-card h5{
    color:#1d2b4f;
    font-size:1.1rem;
}

/* ROLE */

.staff-member-role{
    font-size:.95rem;
    font-weight:600;
    color:#4c5a6a;
}

.circuit_result
{
	margin-top: -5px;
	border-radius:6px;
	font-size: 0.7rem;
	font-weight: bold;

    border:1px solid rgba(0,0,0,.15);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);

}

/**** ROI */
.roi{
    margin:auto;
    padding:2rem;
    border-radius:8px;
    box-shadow:0 2px 10px rgba(0,0,0,.08);
}

.roi p{
    text-align:justify;
    line-height:1.7;
}

.roi h2{
    padding-bottom: .4rem;
    border-bottom: 3px solid #0d6efd;
    color: var(--color-embourg);
}

.roi h3{
    padding: .5rem .8rem;
    background: var(--color-gray);
    border-left: 5px solid var(--color-embourg);
    border-radius: .3rem;
    font-size: 1.15rem;
}
	
.roi .texte {
    text-align: justify;
    line-height: 1.7;
    margin-bottom: 1rem;
}

/**** PALMARES */
.palmares-main td {
    border-bottom: 0 !important;
}

.palmares-team td {
    border-top: 0 !important;
    padding-top: 0;
}

/* Hover synchronisé */
tbody tr.palmares-main:hover td,
tbody tr.palmares-main:hover + tr.palmares-team td,
tbody tr:has(+ tr.palmares-team:hover) td,
tbody tr.palmares-team:hover td {
    color: var(--bs-table-hover-color);
    background-color: var(--bs-table-hover-bg);
    box-shadow: inset 0 0 0 9999px var(--bs-table-hover-bg);
}

#errors
{
	width:100%;
	position:relative;
	z-index:10;
	bottom:0px;
	background:#C80000;
	color:#FFF;
	font-size:9px;
	line-height:10px;
}

.TitrePage {
	margin-left: 5px;
	font-weight: bold;
}

.CadreNews {
	border:solid;
	border-width: thin;
	border-radius: 8px;
	border-bottom-color: black;
	padding-left: 5px;
	padding-right: 5px;
}

.TitreNews {
	margin: 10px 5px 5px 10px;
}

.TimeNews {
	margin: 2px 5px 10px 35px;
	font-size:small;
}

.Texte{
	font-size: 0.9rem;
  	font-weight: 350;
  	line-height: 1.2;
  	text-align: left;
}

.TexteSignature{
	font-size: 0.9rem;
  	font-weight: 350;
  	line-height: 1.2;
  	text-align: left;
	margin-left: 15px;
}

.bootstrap-wrapper {
  flex: 0 0 100%;
  width: 100%;
	display: block;
	z-index: 1;
}

.container {
  max-width: 100% !important;
}

.stack-containers {
    display: flex;
    flex-direction: column;
    white-space: normal;
	gap: 3px;
}

.stack-containers span {
    display: block;   
}

.contour {
    text-shadow:
    0.5px 0 0 rgba(0,0,0,0.6),
   -0.5px 0 0 rgba(0,0,0,0.6),
    0 0.5px 0 rgba(0,0,0,0.6),
    0 -0.5px 0 rgba(0,0,0,0.6);
}

.choices {
    width: 100%;
    min-width: 225px;
	max-width: 300px;
}

.icon-border {
    border: 1px solid #ccc;
    padding: 6px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Podium */
.bg-gold    { background-color: var(--color-result-gold); }
.bg-silver  { background-color: var(--color-result-silver); }
.bg-bronze  { background-color: var(--color-result-bronze); }

/* Classements honorables */
.bg-honorable8  { background-color: var(--color-result-honorable8); }
.bg-honorable16 { background-color: var(--color-result-honorable16); }
.bg-honorable32 { background-color: var(--color-result-honorable32); }
.bg-honorable64 { background-color: var(--color-result-honorable64); }

/* Option UX */
.result-highlight {
    font-weight: 600;
    border-radius: 6px;
    /*padding: 2px 6px;*/
}

.dropdown-custom {
	position: relative;
	display: inline-block;
}

.dropdown-toggle-custom {
	text-decoration: none;
	color: #000;
	cursor: pointer;
	display: inline-block;
}

.dropdown-menu-custom {
	display: none;
	position: absolute;
	right: 0;
	top: 100%;
	background: #fff;
	border: 1px solid #ccc;
	min-width: 220px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.1);
	z-index: 999;
}

.dropdown-item-custom {
	display: block;
	padding: 8px 10px;
	text-decoration: none;
	color: #333;
}

.dropdown-item-custom:hover {
	background: #f2f2f2;
}

/* SPONSORS COMPET */
.logo-card{

    position: relative;

    background: white;

    border-radius: 28px;

    height: 180px;

    overflow: hidden;

    display: flex;

    align-items: center;

    justify-content: center;

    transition: all .3s ease;

    box-shadow:
        0 2px 6px rgba(0,0,0,.03),
        0 12px 30px rgba(0,0,0,.06);

}

.logo-card:hover{

    transform: translateY(-6px);

    box-shadow:
        0 8px 20px rgba(0,0,0,.08),
        0 20px 40px rgba(0,0,0,.12);

}

.logo-wrapper{

    padding: 2rem;

    width: 100%;

    height: 100%;

    display: flex;

    align-items: center;

    justify-content: center;

}

.sponsor-logo{

    max-height: 90px;

    max-width: 100%;

    object-fit: contain;

    transition: all .3s ease;

}

.logo-card:hover .sponsor-logo{

    transform: scale(.92);

    opacity: .12;

}

.logo-overlay{

    position: absolute;

    inset: 0;

    padding: 1.5rem;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    text-align: center;

    opacity: 0;

    transition: opacity .25s ease;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.96),
            rgba(245,247,250,.96)
        );

}

.logo-card:hover .logo-overlay{

    opacity: 1;

}

.logo-overlay p{

    color: #6c757d;

    line-height: 1.4;

}

.carousel-control-prev,
.carousel-control-next{

    width: auto;

}
/* */