/* ==========================================================
   Base
   ========================================================== */
*, *::before, *::after { box-sizing: border-box; }

img { max-width: 100%; height: auto; }

body
	{
		margin: 0;
		padding: 8px;
		background: url("../images/fond.jpg");
	}

/* ==========================================================
   Menu
   ========================================================== */
ul
	{
		padding: 0;
		margin: 0;
		list-style: none;
		line-height: 20px;
		text-align: center;
		font-weight: bold;
		font-family: 'CalligraffitiRegular', Arial, serif;
		font-size: 14px;
		text-transform: uppercase;
	}
a
	{
		text-decoration: none;
	}
ul a
	{
		display: block;
		padding: 6px 12px;
		background-color: rgb(140,240,90);
		color: rgb(49,49,49);
	}
ul a:hover
	{
		color: #000;
		background-color: rgb(250,240,90);
	}

.menu
	{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 2px;
	}
.menu > li
	{
		position: relative;
	}
.sous-menu
	{
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 100;
		min-width: 100%;
		border: 3px solid red;
		white-space: nowrap;
	}
.sous-menu li
	{
		display: block;
	}
.menu-toggle
	{
		display: none;
		width: 100%;
		padding: 12px;
		font-size: 16px;
		font-weight: bold;
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		background-color: rgb(140,240,90);
		color: rgb(49,49,49);
		border: 0;
		cursor: pointer;
	}
@media (min-width: 901px)
	{
		.menu li:hover > .sous-menu,
		.menu li:focus-within > .sous-menu
			{
				display: block;
			}
	}

/* ==========================================================
   En-tête
   ========================================================== */
header
	{
		text-align: center;
		margin-bottom: 10px;
	}
header h1
	{
		vertical-align: top;
		font-size: 1.6em;
		font-weight: normal;
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		line-height: 1.2;
		text-align: center;
	}
.site-tagline
	{
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		font-size: clamp(1.1rem, 4vw, 1.8rem);
		margin: 0.4em 0 0.6em;
	}
header nav
	{
		text-align: center;
	}

/* ==========================================================
   Structure générale
   ========================================================== */
mark
	{
		background-color: rgb(255,220,250);
	}
article p
	{
		text-align: center;
		line-height: 1.3;
		font-size: clamp(16px, 2.4vw, 24px);
		color: blue;
		padding: 0 10px;
	}
article mark
	{
		text-align: left;
		text-transform: uppercase;
		font-size: clamp(16px, 2vw, 21px);
		line-height: 30px;
	}
article h4
	{
		text-align: left;
		line-height: 20px;
		font-size: 18px;
		color: blue;
	}
article strong
	{
		color: red;
		font-weight: bold;
		font-style: italic;
	}

section
	{
		min-width: 0;
		text-align: center;
		border: 1px solid black;
		overflow-x: auto;
		font-size: 1.2em;
		background-color: rgb(250,250,240);
	}
aside
	{
		min-width: 0;
		text-align: justify;
		border: 1px solid black;
		overflow: auto;
		font-size: 1.2em;
		background-color: rgb(250,250,240);
	}

/* Conteneur section + aside, dans les proportions d'origine (42% / 57%) */
.page-coupe
	{
		display: grid;
		grid-template-columns: 42% 57%;
		gap: 1%;
		align-items: start;
	}
@media (max-width: 900px)
	{
		.page-coupe { grid-template-columns: 1fr; }
	}

/* ==========================================================
   Titres
   ========================================================== */
h3
	{
		vertical-align: top;
		font-size: 1.1em;
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		color: rgb(200,60,60);
	}
h2
	{
		vertical-align: top;
		font-size: 1.1em;
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		color: blue;
	}
aside h3
	{
		vertical-align: top;
		font-size: 0.9em;
		font-family: Arial, serif;
		text-transform: uppercase;
		color: rgb(100,60,60);
	}
h3 em
	{
		font-size: 0.7em;
		font-family: Arial, serif;
		text-transform: lowercase;
		color: rgb(200,200,200);
	}
h5
	{
		font-size: 1.5em;
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		font-weight: normal;
		background-color: rgb(210,210,210);
		color: rgb(36,36,36);
		line-height: 25px;
		padding: 0;
		margin: 15px;
	}
h5 em
	{
		text-transform: lowercase;
		vertical-align: middle;
	}
h5 strong
	{
		vertical-align: middle;
	}

/* ==========================================================
   Articles
   ========================================================== */
section article
	{
		border: 1px solid black;
		margin: 2%;
		min-height: 0%;
		text-align: center;
		line-height: 1.1;
	}
article
	{
		border: 1px solid black;
		margin: 2%;
		min-height: 14%;
		text-align: center;
		line-height: 1;
	}

/* ==========================================================
   Formulaires
   ========================================================== */
input[type=submit]
	{
		width: 220px;
		max-width: 100%;
		min-height: 36px;
		font-size: 18px;
		text-transform: uppercase;
		text-align: center;
		box-shadow: 1px 1px 1px #D83F3D;
		cursor: pointer;
		background-color: rgb(120,120,220);
		color: rgb(220,240,20);
	}
input[type=button]
	{
		width: 80px;
		min-height: 32px;
		font-size: 12px;
		text-transform: uppercase;
		text-align: center;
		cursor: pointer;
		margin: 10px 6px;
		background-color: rgb(120,240,20);
		color: rgb(120,120,120);
	}
input[type=file]
	{
		width: 400px;
		max-width: 100%;
		min-height: 32px;
		font-size: 16px;
		text-transform: uppercase;
		text-align: center;
		box-shadow: 1px 1px 1px #D83F3D;
		cursor: pointer;
		background-color: rgb(190,190,190);
		color: rgb(30,30,30);
	}
.text_form
	{
		font-size: 1.1em;
		height: 40px;
		width: 65%;
	}
.textarea_form
	{
		font-size: 1.5em;
		height: 240px;
		width: 65%;
	}
.ligne_espace
	{
		border-collapse: separate;
		border-spacing: 150px;
	}

/* ==========================================================
   Tableaux
   ========================================================== */
table
	{
		border-collapse: collapse;
		width: 100%;
	}
td
	{
		border: 1px solid black;
		padding: 6px;
	}
table h3
	{
		vertical-align: top;
		font-size: 0.5em;
		font-family: Arial, serif;
		color: rgb(60,150,60);
	}
section th
	{
		font-size: 0.8em;
		font-family: 'CalligraffitiRegular', Arial, serif;
		font-weight: normal;
		background-color: rgb(170,170,170);
		color: rgb(36,36,36);
	}
section td
	{
		font-size: 1.1em;
		font-family: 'CalligraffitiRegular', Arial, serif;
		font-weight: normal;
		background-color: #fff;
		color: rgb(36,36,36);
	}
section caption
	{
		font-size: 1.1em;
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		font-weight: normal;
		background-color: rgb(170,170,170);
		color: rgb(36,36,36);
	}
section td em
	{
		font-size: 1.1em;
		font-family: 'CalligraffitiRegular', Arial, serif;
		text-transform: uppercase;
		font-weight: normal;
		background-color: #fff;
		color: rgb(154,154,36);
	}

/* Liste des joueurs inscrits (coupe de champagne) */
.ligne-joueur
	{
		border-bottom: 1px solid #ccc;
	}
.nom
	{
		font-weight: bold;
		color: blue;
		width: 35%;
	}
.position
	{
		width: 8%;
		text-align: center;
	}
.repas
	{
		width: 7%;
		text-align: center;
	}

/* ==========================================================
   Divers
   ========================================================== */
.imageflottante  { float: left; }
.imageflottante2 { float: right; }
.championnat
	{
		background-color: rgb(180,220,210);
		color: rgb(30,30,30);
	}
#titre_principal
	{
		display: inline-block;
	}
p em
	{
		color: rgb(110,120,120);
		font-size: 1.5em;
	}
footer
	{
		margin-top: 10px;
		text-align: center;
		font-size: 0.8rem;
	}
#conteneur
	{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-around;
	}

/* ==========================================================
   Tablette / mobile  (≤ 900px)
   ========================================================== */
@media (max-width: 900px)
	{
		.menu-toggle { display: block; }
		.menu
			{
				display: none;
				flex-direction: column;
				flex-wrap: nowrap;
				gap: 0;
			}
		.menu.open { display: flex; }
		.menu > li { position: static; }
		.menu a { padding: 12px; }
		.sous-menu
			{
				position: static;
				border-width: 0 0 0 6px;
				white-space: normal;
			}
		.sous-menu a
			{
				background-color: rgb(225,250,210);
				color: rgb(49,49,49);
				padding-left: 28px;
				font-size: 12px;
			}
		.sous-menu a:hover
			{
				background-color: rgb(250,240,90);
			}
		.menu li.open > .sous-menu { display: block; }

		.imageflottante, .imageflottante2
			{
				float: none;
				display: block;
				margin: 0 auto;
			}
		.text_form, .textarea_form { width: 100%; }
		.ligne_espace { border-spacing: 10px; }
	}

@media (max-width: 480px)
	{
		body { padding: 4px; }
		section, aside { font-size: 1em; }
		article { margin: 6px; }
		td, th { padding: 2px 4px; }
	}
