/* ==========================================================================
   Base — typographie et éléments HTML par défaut
   ========================================================================== */

body {
	margin: 0;
	background-color: var(--hsb-bg-page);
	color: var(--hsb-text);
	font-family: var(--hsb-font-sans);
	font-weight: 400;
	line-height: var(--hsb-lh-ui);
}

/* Dancing Script : marque, H1, titres de section, H2 d'article — jamais ailleurs */
h1,
h2 {
	margin: 0;
	font-family: var(--hsb-font-script);
	font-weight: 700;
	line-height: 1.15;
	color: var(--hsb-text);
}

h3,
h4,
h5,
h6 {
	margin: 0;
	font-family: var(--hsb-font-sans);
	font-weight: 600;
	line-height: 1.35;
	color: var(--hsb-text);
}

a {
	color: var(--hsb-turquoise-dark);
	text-decoration: none;
	transition: color var(--hsb-transition), background-color var(--hsb-transition), border-color var(--hsb-transition);
}

a:hover {
	color: var(--hsb-turquoise);
}

/* Focus clavier : jamais le bleu du navigateur */
:focus-visible {
	outline: 2px solid var(--hsb-turquoise);
	outline-offset: 2px;
}

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

input,
select,
textarea,
button {
	font-family: var(--hsb-font-sans);
}

input[type="text"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="password"],
textarea,
select {
	padding: 12px 18px;
	background-color: var(--hsb-bg-card);
	border: 1px solid var(--hsb-border);
	border-radius: var(--hsb-radius-md);
	color: var(--hsb-text);
	font-size: 14px;
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--hsb-turquoise);
}

hr {
	border: 0;
	border-top: 1px solid var(--hsb-border);
}

::selection {
	background-color: var(--hsb-bg-mint);
	color: var(--hsb-green-deep);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* Lien « Aller au contenu », visible au clavier */
.skip-link:focus {
	top: 8px;
	left: 8px;
	z-index: 100;
	width: auto;
	height: auto;
	padding: 10px 20px;
	clip: auto;
	border-radius: var(--hsb-radius-pill);
	background-color: var(--hsb-yellow);
	color: var(--hsb-text-on-yellow);
}
