/*
 * Feuille de style principale — Mission MSFS2024
 * Thème sombre, style "ops center / dispatch aérien".
 * CSS maison, sans framework externe. Responsive desktop / tablette / mobile.
 */

/* ------------------------------------------------------------------ */
/* Variables globales                                                  */
/* ------------------------------------------------------------------ */
:root {
	/* Fonds */
	--c-bg: #0a0e14;
	--c-bg-alt: #0f1622;
	--c-surface: #131c2b;
	--c-surface-2: #182436;
	--c-border: #243244;

	/* Texte */
	--c-text: #e6edf5;
	--c-text-muted: #9fb0c3;
	--c-text-dim: #6b7c92;

	/* Accents */
	--c-accent: #35c9ff;        /* bleu clair / cyan */
	--c-accent-strong: #12a8e6;
	--c-accent-soft: rgba(53, 201, 255, 0.12);
	--c-orange: #ff8a3d;        /* rappel Air BlueFox, usage discret */

	/* États */
	--c-focus: #7fdcff;
	--c-success: #38d39f;

	/* Typographie */
	--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
	--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;

	/* Rayons & ombres */
	--radius: 14px;
	--radius-sm: 10px;
	--shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
	--shadow-soft: 0 4px 14px rgba(0, 0, 0, 0.25);

	/* Espacements */
	--space: 1rem;
	--container: 1120px;
	--flightbrief-shell-width: min(98vw, 1600px);
}

/* ------------------------------------------------------------------ */
/* Reset léger & base                                                  */
/* ------------------------------------------------------------------ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background-color: var(--c-bg);
	color: var(--c-text);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3 {
	line-height: 1.2;
	margin: 0 0 0.5em;
	font-weight: 700;
	letter-spacing: -0.01em;
}

p {
	margin: 0 0 1em;
}

a {
	color: var(--c-accent);
	text-decoration: none;
	transition: color 0.15s ease;
}

a:hover,
a:focus {
	color: var(--c-focus);
}

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

/* Accessibilité : liens masqués visuellement mais lisibles au clavier. */
.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px;
	height: 1px;
	overflow: hidden;
	padding: 0;
	border: 0;
}

.skip-link:focus {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 1000;
	width: auto;
	height: auto;
	clip: auto;
	padding: 10px 16px;
	background: var(--c-accent);
	color: #04121b;
	border-radius: var(--radius-sm);
	font-weight: 600;
}

/* Focus visible cohérent pour l'ensemble des éléments interactifs. */
:focus-visible {
	outline: 2px solid var(--c-focus);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ */
/* Layout : conteneurs & sections                                      */
/* ------------------------------------------------------------------ */
.container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 20px;
}

.container--mission {
	width: var(--flightbrief-shell-width);
	max-width: none;
	padding-inline: clamp(14px, 1.5vw, 24px);
}

.site-content {
	display: block;
}

.section {
	padding: 72px 0;
}

.section--alt {
	background-color: var(--c-bg-alt);
	border-top: 1px solid var(--c-border);
	border-bottom: 1px solid var(--c-border);
}

.section__title {
	font-size: 1.9rem;
	margin-bottom: 0.35em;
}

.section__lead {
	color: var(--c-text-muted);
	max-width: 640px;
	margin-bottom: 2rem;
}

/* ------------------------------------------------------------------ */
/* En-tête du site                                                     */
/* ------------------------------------------------------------------ */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: rgba(10, 14, 20, 0.85);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--c-border);
}

.site-header__inner {
	width: var(--flightbrief-shell-width);
	max-width: none;
	margin: 0 auto;
	padding: 14px clamp(16px, 1.5vw, 24px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.site-logo {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	font-weight: 800;
	font-size: 1.15rem;
	letter-spacing: 0.02em;
	color: var(--c-text);
}

.site-logo__accent {
	color: var(--c-accent);
}

.site-nav__list {
	display: flex;
	align-items: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav__list a {
	display: inline-block;
	padding: 8px 14px;
	border-radius: var(--radius-sm);
	color: var(--c-text-muted);
	font-weight: 600;
	font-size: 0.95rem;
}

.site-nav__list a:hover,
.site-nav__list a:focus {
	color: var(--c-text);
	background-color: var(--c-surface);
}

/* ------------------------------------------------------------------ */
/* Boutons                                                             */
/* ------------------------------------------------------------------ */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	font-weight: 700;
	font-size: 0.98rem;
	cursor: pointer;
	transition: transform 0.1s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	text-align: center;
}

.btn:active {
	transform: translateY(1px);
}

.btn--primary {
	background-color: var(--c-accent);
	color: #04121b;
}

.btn--primary:hover,
.btn--primary:focus {
	background-color: var(--c-focus);
	color: #04121b;
}

.btn--ghost {
	background-color: transparent;
	border-color: var(--c-border);
	color: var(--c-text);
}

.btn--ghost:hover,
.btn--ghost:focus {
	border-color: var(--c-accent);
	color: var(--c-accent);
}

/* ------------------------------------------------------------------ */
/* Hero                                                                */
/* ------------------------------------------------------------------ */
.hero {
	position: relative;
	padding: 96px 0 80px;
	background:
		radial-gradient(1200px 500px at 70% -10%, rgba(53, 201, 255, 0.15), transparent 60%),
		linear-gradient(180deg, var(--c-bg-alt), var(--c-bg));
	border-bottom: 1px solid var(--c-border);
	overflow: hidden;
}

.hero__inner {
	position: relative;
	z-index: 1;
	max-width: 780px;
}

/* Variante deux colonnes : texte à gauche, visuel à droite. */
.hero__inner--split {
	max-width: var(--container);
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: 40px;
	align-items: center;
}

.hero__content {
	max-width: 620px;
}

.hero__visual {
	position: relative;
	width: 100%;
}

.hero__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: 0.78rem;
	color: var(--c-accent);
	margin-bottom: 1rem;
	font-weight: 700;
}

.hero__title {
	font-size: clamp(2.4rem, 6vw, 3.8rem);
	margin-bottom: 0.2em;
}

.hero__subtitle {
	font-size: clamp(1.1rem, 2.5vw, 1.4rem);
	color: var(--c-text);
	font-weight: 600;
	margin-bottom: 0.8em;
}

.hero__text {
	color: var(--c-text-muted);
	font-size: 1.05rem;
	max-width: 640px;
	margin-bottom: 2rem;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* ------------------------------------------------------------------ */
/* Grilles                                                             */
/* ------------------------------------------------------------------ */
.grid {
	display: grid;
	gap: 20px;
}

.grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

.grid--generator {
	grid-template-columns: 2fr 1fr;
	align-items: start;
}

.grid--mission {
	grid-template-columns: repeat(2, 1fr);
}

.stack {
	display: grid;
	gap: 20px;
}

/* ------------------------------------------------------------------ */
/* Cartes                                                              */
/* ------------------------------------------------------------------ */
.card {
	background-color: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	padding: 24px;
	box-shadow: var(--shadow-soft);
}

.card__title {
	font-size: 1.15rem;
	margin-bottom: 0.6em;
}

.card__body {
	color: var(--c-text-muted);
	margin: 0;
}

.card--step {
	position: relative;
	padding-top: 30px;
}

.card__step-index {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.85rem;
	color: var(--c-accent);
	letter-spacing: 0.1em;
	margin-bottom: 8px;
}

.card--wide {
	grid-column: 1 / -1;
}

.card--preview .spec {
	margin: 1rem 0 1.5rem;
}

/* ------------------------------------------------------------------ */
/* Bloc "feature split" (texte + panneau ops)                          */
/* ------------------------------------------------------------------ */
.feature-split {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	gap: 32px;
	align-items: center;
}

.feature-split__text p {
	color: var(--c-text-muted);
}

.ops-panel {
	background-color: var(--c-surface-2);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	padding: 20px;
	font-family: var(--font-mono);
}

.ops-panel__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px dashed var(--c-border);
	font-size: 0.9rem;
	color: var(--c-text-dim);
}

.ops-panel__row:last-child {
	border-bottom: 0;
}

.ops-panel__row strong {
	color: var(--c-text);
}

.ops-panel__badge {
	color: var(--c-accent) !important;
}

/* ------------------------------------------------------------------ */
/* Liste de fonctionnalités                                            */
/* ------------------------------------------------------------------ */
.feature-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
}

.feature-list__item {
	background-color: var(--c-surface);
	border: 1px solid var(--c-border);
	border-left: 3px solid var(--c-accent);
	border-radius: var(--radius-sm);
	padding: 18px 20px;
}

.feature-list__title {
	font-size: 1.02rem;
	margin-bottom: 0.35em;
	display: flex;
	align-items: center;
	gap: 10px;
}

.feature-list__item p {
	color: var(--c-text-muted);
	margin: 0;
	font-size: 0.95rem;
}

.tag {
	display: inline-block;
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 3px 8px;
	border-radius: 999px;
}

.tag--soon {
	background-color: rgba(255, 138, 61, 0.15);
	color: var(--c-orange);
	border: 1px solid rgba(255, 138, 61, 0.35);
}

/* ------------------------------------------------------------------ */
/* En-têtes de page & notices                                          */
/* ------------------------------------------------------------------ */
.page-head {
	margin-bottom: 1.5rem;
}

.page-head__title {
	font-size: 2rem;
}

.page-head__lead {
	color: var(--c-text-muted);
	max-width: 640px;
}

.notice {
	border-radius: var(--radius-sm);
	padding: 14px 18px;
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
}

.notice--info {
	background-color: var(--c-accent-soft);
	border: 1px solid rgba(53, 201, 255, 0.35);
	color: var(--c-text);
}

.notice p {
	margin: 0;
}

/* ------------------------------------------------------------------ */
/* Formulaires                                                         */
/* ------------------------------------------------------------------ */
.form__field {
	margin-bottom: 1.1rem;
}

.form__label {
	display: block;
	font-weight: 600;
	font-size: 0.92rem;
	margin-bottom: 6px;
	color: var(--c-text);
}

.form__input {
	width: 100%;
	padding: 12px 14px;
	background-color: var(--c-bg-alt);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	color: var(--c-text);
	font-size: 1rem;
	font-family: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.form__input::placeholder {
	color: var(--c-text-dim);
}

.form__input:focus {
	border-color: var(--c-accent);
	box-shadow: 0 0 0 3px var(--c-accent-soft);
	outline: none;
}

.form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 1rem;
}

.form__actions--center {
	justify-content: center;
	margin-top: 1.5rem;
}

.form__hint,
.card__body + .form__hint {
	color: var(--c-text-dim);
	font-size: 0.85rem;
	margin-top: 0.8rem;
}

/* ------------------------------------------------------------------ */
/* Quota & aide                                                        */
/* ------------------------------------------------------------------ */
.card--quota .quota__value {
	font-size: 1rem;
	color: var(--c-text-muted);
	margin: 0 0 0.4em;
}

.quota__number {
	font-size: 2.2rem;
	font-weight: 800;
	color: var(--c-accent);
	display: inline-block;
	margin-right: 6px;
}

/* ------------------------------------------------------------------ */
/* Fiche mission                                                       */
/* ------------------------------------------------------------------ */
.mission-head {
	margin-bottom: 1.8rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--c-border);
}

.mission-head__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 0.75rem;
	color: var(--c-accent);
	font-weight: 700;
	margin-bottom: 0.5rem;
}

.mission-head__title {
	font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.mission-meta {
	list-style: none;
	margin: 1.2rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.mission-meta__item {
	background-color: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	padding: 10px 16px;
	display: flex;
	flex-direction: column;
	min-width: 120px;
}

.mission-meta__item span {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--c-text-dim);
}

.mission-meta__item strong {
	font-size: 1.05rem;
	color: var(--c-text);
	font-family: var(--font-mono);
}

.checklist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.checklist__item {
	position: relative;
	padding: 8px 0 8px 28px;
	color: var(--c-text-muted);
	border-bottom: 1px dashed var(--c-border);
}

.checklist__item:last-child {
	border-bottom: 0;
}

.checklist__item::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 15px;
	width: 10px;
	height: 10px;
	border: 2px solid var(--c-accent);
	border-radius: 3px;
}

.spec {
	margin: 0;
}

.spec__row {
	display: flex;
	justify-content: space-between;
	padding: 8px 0;
	border-bottom: 1px dashed var(--c-border);
}

.spec__row:last-child {
	border-bottom: 0;
}

.spec__key {
	color: var(--c-text-dim);
	font-size: 0.9rem;
}

.spec__val {
	color: var(--c-text);
	font-weight: 600;
	margin: 0;
}

/* ------------------------------------------------------------------ */
/* CTA de bas de page                                                  */
/* ------------------------------------------------------------------ */
.cta {
	margin: 40px 0 0;
	padding: 56px 0;
	background:
		radial-gradient(800px 300px at 50% 120%, rgba(53, 201, 255, 0.18), transparent 60%),
		var(--c-bg-alt);
	border-top: 1px solid var(--c-border);
}

.cta__inner {
	text-align: center;
	max-width: 560px;
}

.cta__title {
	font-size: 1.8rem;
}

.cta__text {
	color: var(--c-text-muted);
	margin-bottom: 1.5rem;
}

/* ------------------------------------------------------------------ */
/* Pied de page                                                        */
/* ------------------------------------------------------------------ */
.site-footer {
	background-color: var(--c-bg);
	border-top: 1px solid var(--c-border);
	padding: 28px 0;
}

.site-footer__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 20px;
	text-align: center;
}

.site-footer__credit {
	color: var(--c-text-dim);
	font-size: 0.9rem;
	margin: 0;
}

/* Bloc générique de contenu (index.php). */
.wrap .section .card + .card {
	margin-top: 20px;
}

/* ================================================================== */
/* Emplacements visuels & placeholders CSS                             */
/* ================================================================== */

/*
 * Système de blocs visuels :
 * - .visual-card         : cadre commun (image réelle ou placeholder).
 * - .visual-placeholder  : fond stylisé quand aucune image n'est présente.
 * Chaque zone (hero, générateur, bandeau mission) applique ensuite ses
 * propres dimensions et son contenu.
 */

/* --- Cadre commun ------------------------------------------------- */
.visual-card {
	position: relative;
	margin: 0;
	width: 100%;
	border-radius: var(--radius);
	overflow: hidden;
	border: 1px solid var(--c-border);
	box-shadow: var(--shadow);
	background-color: var(--c-surface-2);
}

/* Image réelle : occupe tout le cadre en cover. */
.visual-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.visual-card--hero .visual-card__img {
	aspect-ratio: 16 / 10;
}

.visual-card--generator .visual-card__img {
	aspect-ratio: 7 / 5;
}

.visual-card--banner .visual-card__img {
	aspect-ratio: 18 / 7;
}

/* --- Placeholder de base ------------------------------------------ */
.visual-placeholder {
	display: flex;
	flex-direction: column;
	background:
		radial-gradient(900px 360px at 80% -20%, rgba(53, 201, 255, 0.14), transparent 60%),
		linear-gradient(160deg, var(--c-surface-2), var(--c-bg));
	isolation: isolate;
}

/* Grille radar subtile commune à tous les placeholders. */
.visual-placeholder__grid {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image:
		linear-gradient(to right, rgba(53, 201, 255, 0.10) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(53, 201, 255, 0.10) 1px, transparent 1px);
	background-size: 38px 38px;
	mask-image: radial-gradient(circle at 60% 40%, #000 55%, transparent 100%);
	-webkit-mask-image: radial-gradient(circle at 60% 40%, #000 55%, transparent 100%);
	pointer-events: none;
}

/* Cercles concentriques (scope radar), utilisés sur le hero. */
.visual-placeholder__scope {
	position: absolute;
	top: 42%;
	left: 50%;
	width: 74%;
	aspect-ratio: 1;
	z-index: 0;
	transform: translate(-50%, -50%);
	border: 1px solid rgba(53, 201, 255, 0.20);
	border-radius: 50%;
	box-shadow:
		0 0 0 1px rgba(53, 201, 255, 0.08),
		0 0 60px rgba(53, 201, 255, 0.10) inset;
	pointer-events: none;
}

.visual-placeholder__scope::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 55%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border: 1px solid rgba(53, 201, 255, 0.16);
	border-radius: 50%;
}

/* --- Badges génériques -------------------------------------------- */
.badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	font-weight: 700;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
}

.badge--live {
	color: var(--c-success);
	background-color: rgba(56, 211, 159, 0.14);
	border: 1px solid rgba(56, 211, 159, 0.40);
}

.badge--accent {
	color: #04121b;
	background-color: var(--c-accent);
}

/* --- Composants de route réutilisables ---------------------------- */
.route-node {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-mono);
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--c-text);
	background-color: rgba(10, 14, 20, 0.72);
	border: 1px solid var(--c-border);
	border-radius: 8px;
	padding: 6px 10px;
	white-space: nowrap;
}

.route-node__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background-color: var(--c-accent);
	box-shadow: 0 0 0 4px rgba(53, 201, 255, 0.18);
}

.route-node--arr .route-node__dot {
	background-color: var(--c-orange);
	box-shadow: 0 0 0 4px rgba(255, 138, 61, 0.18);
}

.route-node--arr .route-node__code {
	color: var(--c-orange);
}

.route-node--pending .route-node__dot {
	background-color: var(--c-text-dim);
	box-shadow: 0 0 0 4px rgba(107, 124, 146, 0.15);
}

.route-node--pending .route-node__code {
	color: var(--c-text-dim);
}

.route-line {
	flex: 1;
	min-width: 28px;
	height: 2px;
	background: linear-gradient(90deg, rgba(53, 201, 255, 0.25), var(--c-accent), rgba(53, 201, 255, 0.25));
}

.route-line--dashed {
	background: none;
	border-top: 2px dashed rgba(53, 201, 255, 0.45);
	height: 0;
}

.route-plane {
	font-size: 0.95rem;
	color: var(--c-accent);
	font-family: var(--font-mono);
	font-weight: 700;
	white-space: nowrap;
}

/* --- Hero : grand bloc visuel ------------------------------------- */
.hero-visual {
	position: relative;
	min-height: 420px;
	padding: 20px;
}

.hero-visual__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 2;
}

.hero-visual__route {
	position: relative;
	z-index: 1;
	margin: auto 0;
	display: flex;
	align-items: center;
	gap: 12px;
}

.hero-visual__panel {
	position: relative;
	z-index: 1;
	margin-top: auto;
	align-self: flex-start;
	display: flex;
	flex-direction: column;
	gap: 2px;
	background-color: rgba(10, 14, 20, 0.66);
	border: 1px solid var(--c-border);
	border-left: 3px solid var(--c-accent);
	border-radius: var(--radius-sm);
	padding: 12px 16px;
	backdrop-filter: blur(4px);
}

.hero-visual__panel-title {
	font-family: var(--font-mono);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: var(--c-text);
}

.hero-visual__panel-sub {
	font-size: 0.82rem;
	color: var(--c-accent);
	letter-spacing: 0.04em;
}

/* --- Générateur : carte "Mission setup" --------------------------- */
.mission-setup {
	margin-bottom: 1.5rem;
}

.setup-visual {
	position: relative;
	padding: 22px;
	min-height: 300px;
}

.setup-visual__head {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 18px;
}

.setup-visual__title {
	font-family: var(--font-mono);
	font-size: 1rem;
	letter-spacing: 0.08em;
	font-weight: 800;
	color: var(--c-text);
}

.setup-visual__map {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px;
	margin-bottom: 18px;
	background-color: rgba(10, 14, 20, 0.45);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
}

.setup-visual__cells {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}

.setup-cell {
	display: flex;
	flex-direction: column;
	gap: 4px;
	background-color: var(--c-bg-alt);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	padding: 12px 14px;
}

.setup-cell__key {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--c-text-dim);
}

.setup-cell__val {
	font-family: var(--font-mono);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--c-text);
}

.setup-cell__val--pending {
	color: var(--c-orange);
	font-size: 0.9rem;
}

/* --- Fiche mission : bandeau horizontal --------------------------- */
.mission-banner {
	margin-bottom: 1.8rem;
}

.mission-visual-banner {
	position: relative;
	min-height: 280px;
	justify-content: center;
}

.mission-visual-banner__content {
	position: relative;
	z-index: 1;
	padding: 28px 30px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.mission-visual-banner__route {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}

.mission-visual-banner__route .route-node {
	font-size: 1.15rem;
	padding: 8px 14px;
}

.mission-visual-banner__meta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.mission-visual-banner__meta li {
	font-size: 0.82rem;
	color: var(--c-text-muted);
	background-color: rgba(10, 14, 20, 0.55);
	border: 1px solid var(--c-border);
	border-radius: 999px;
	padding: 5px 14px;
}

/* --- Texture de fond optionnelle (ops-grid-texture.webp) ---------- */
/* Appliquée uniquement si le fichier existe (classe ajoutée en PHP). */
body.has-ops-texture {
	background-image: var(--ops-texture, none);
	background-size: 480px 480px;
	background-attachment: fixed;
	background-blend-mode: overlay;
}

/* ------------------------------------------------------------------ */
/* Responsive : tablette                                               */
/* ------------------------------------------------------------------ */
@media (max-width: 900px) {
	.grid--3 {
		grid-template-columns: 1fr 1fr;
	}

	.grid--generator,
	.grid--mission,
	.feature-split {
		grid-template-columns: 1fr;
	}

	.feature-list {
		grid-template-columns: 1fr;
	}

	/* Le visuel du hero passe sous le texte sur tablette et mobile. */
	.hero__inner--split {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.hero__content {
		max-width: none;
	}

	/* Cellules du générateur sur deux colonnes en tablette. */
	.setup-visual__cells {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ------------------------------------------------------------------ */
/* Responsive : mobile                                                 */
/* ------------------------------------------------------------------ */
@media (max-width: 600px) {
	.section {
		padding: 48px 0;
	}

	.grid--3 {
		grid-template-columns: 1fr;
	}

	.site-header__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.site-nav__list {
		flex-wrap: wrap;
	}

	.hero {
		padding: 64px 0 56px;
	}

	.btn {
		width: 100%;
	}

	.form__actions .btn,
	.hero__actions .btn {
		width: 100%;
	}

	/* Placeholders : hauteurs adaptées et grilles simplifiées en mobile. */
	.hero-visual {
		min-height: 320px;
	}

	.setup-visual__cells {
		grid-template-columns: 1fr;
	}

	.setup-visual__map {
		flex-wrap: wrap;
	}

	.mission-visual-banner {
		min-height: 240px;
	}

	.mission-visual-banner__route .route-node {
		font-size: 1rem;
	}
}

/* ------------------------------------------------------------------ */
/* Préférence de mouvement réduit                                      */
/* ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	* {
		transition: none !important;
	}
}

/* Accueil Mission MSFS2024 : interface dispatch premium. */
.hero--premium { padding: clamp(5rem, 10vw, 8rem) 0 clamp(4.5rem, 8vw, 6.5rem); }.hero--premium::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 45%,rgba(53,201,255,.035)); }.hero--premium .hero__title { max-width: 11ch; font-size:clamp(3rem,6vw,5.2rem); letter-spacing:-.045em; }.hero--premium .hero__subtitle { max-width:34rem; color:#d7e8f6; }.hero__proof { display:flex; flex-wrap:wrap; gap:.7rem 1.2rem; padding:0; margin:1.4rem 0 0; list-style:none; color:var(--c-text-muted); font-size:.86rem; }.hero__proof li::before { content:"✓"; color:var(--c-success); margin-right:.45rem; }.hero-visual--premium { min-height:470px; border-color:rgba(53,201,255,.36); box-shadow:0 24px 70px rgba(0,0,0,.45),0 0 70px rgba(53,201,255,.09); }.hero-visual--premium .visual-placeholder__scope { animation:ops-pulse 4.5s ease-in-out infinite; }.hero-visual__modes { position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:.45rem; margin:0 0 auto; }.hero-visual__modes span { padding:.35rem .55rem; border:1px solid rgba(53,201,255,.25); border-radius:999px; background:rgba(10,14,20,.62); color:#bcecff; font:700 .7rem var(--font-mono); } @keyframes ops-pulse { 50% { transform:translate(-50%,-50%) scale(1.035); box-shadow:0 0 0 1px rgba(53,201,255,.13),0 0 85px rgba(53,201,255,.17) inset; } }
.section-kicker { margin:0 0 .7rem; color:var(--c-accent); font:700 .74rem var(--font-mono); letter-spacing:.13em; text-transform:uppercase; }.mission-flow { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2.5rem; }.mission-flow__step { position:relative; padding:1.4rem; border:1px solid var(--c-border); border-radius:var(--radius); background:linear-gradient(145deg,rgba(24,36,54,.9),rgba(15,22,34,.85)); }.mission-flow__step span { display:inline-grid; place-items:center; width:2rem; height:2rem; margin-bottom:1rem; border-radius:50%; background:var(--c-accent-soft); color:var(--c-accent); font:700 .76rem var(--font-mono); }.mission-flow__step h3 { font-size:1.1rem; }.mission-flow__step p,.mission-pilots p { margin:0; color:var(--c-text-muted); font-size:.95rem; }.mission-home__briefing { display:grid; grid-template-columns:.8fr 1.2fr; gap:3rem; align-items:center; }.mission-output-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; }.mission-output-grid div { min-height:8.5rem; padding:1.2rem; border:1px solid rgba(53,201,255,.16); border-radius:var(--radius-sm); background:rgba(10,14,20,.38); }.mission-output-grid strong { display:block; margin-bottom:.55rem; color:#dff4ff; }.mission-output-grid span { color:var(--c-text-muted); font-size:.88rem; }.mission-modes { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2.2rem; }.mission-modes article { padding:1.5rem; border-radius:var(--radius); border:1px solid var(--c-border); background:var(--c-surface); transition:transform .18s ease,border-color .18s ease; }.mission-modes article:hover { transform:translateY(-4px); border-color:rgba(53,201,255,.55); }.mission-modes__route { display:block; margin-bottom:1.1rem; color:var(--c-accent); font:700 .85rem var(--font-mono); }.mission-modes__route i { color:var(--c-text-dim); font-style:normal; }.mission-modes p { margin:0; color:var(--c-text-muted); }.mission-pilots { display:grid; grid-template-columns:1fr .9fr; gap:3rem; align-items:center; }.mission-pilots ul { display:grid; gap:.7rem; margin:0; padding:1.3rem 1.3rem 1.3rem 2.4rem; border-left:2px solid var(--c-accent); border-radius:0 var(--radius-sm) var(--radius-sm) 0; background:rgba(10,14,20,.28); color:var(--c-text-muted); }.mission-pilots li::marker { color:var(--c-accent); }
@media (max-width:900px){.mission-home__briefing,.mission-pilots{grid-template-columns:1fr;gap:2rem}.mission-flow,.mission-modes{grid-template-columns:1fr}.hero--premium .hero__title{max-width:14ch}}@media(max-width:600px){.mission-output-grid{grid-template-columns:1fr}.hero__proof{display:grid;gap:.45rem}.hero-visual--premium{min-height:360px}.hero-visual__modes span{font-size:.62rem}}
/* Accueil plus narratif et chaleureux : conserve l’identité ops sans froideur. */
.mission-home--warm .section { padding:clamp(3.5rem,7vw,5.75rem) 0; }.hero--warm { background:radial-gradient(900px 500px at 82% 22%,rgba(53,201,255,.19),transparent 62%),radial-gradient(650px 380px at 8% 95%,rgba(255,138,61,.09),transparent 60%),linear-gradient(180deg,#101b2a,#0a0e14); }.hero--warm .hero__title { max-width:12ch; text-wrap:balance; }.hero--warm .hero__text { max-width:34rem; font-size:1.08rem; }.hero--warm .hero__proof { margin-top:1.65rem; }.hero--warm .hero__proof span { padding:.42rem .65rem; border-radius:999px; background:rgba(255,255,255,.045); border:1px solid rgba(159,176,195,.18); color:#c7d6e5; font-size:.78rem; }.hero-visual--warm::before { content:""; position:absolute; inset:15% 10%; border-radius:50%; background:radial-gradient(circle,rgba(53,201,255,.15),transparent 67%); filter:blur(14px); }.hero-visual--warm .hero-visual__route { margin-top:32%; transform:rotate(-7deg); }.hero-visual--warm .hero-visual__panel { max-width:21rem; box-shadow:0 10px 30px rgba(0,0,0,.28); }.mission-home--warm .section__title { max-width:18ch; font-size:clamp(2rem,3.8vw,3rem); text-wrap:balance; }.mission-home--warm .section__lead { font-size:1.06rem; }.mission-flow--warm { gap:1.15rem; }.mission-flow--warm .mission-flow__step { overflow:hidden; min-height:13.5rem; border-color:rgba(53,201,255,.18); }.mission-flow--warm .mission-flow__step::after { content:""; position:absolute; width:8rem; height:8rem; right:-3.5rem; bottom:-4rem; border-radius:50%; background:rgba(53,201,255,.07); }.mission-flow--warm .mission-flow__step:nth-child(2)::after { background:rgba(255,138,61,.08); }.mission-flow--warm .mission-flow__step h3 { font-size:1.25rem; }.mission-home__copy { max-width:36rem; color:#c2d1df; }.mission-output-grid--warm div { position:relative; min-height:9.5rem; padding:1.35rem; border-color:rgba(53,201,255,.14); }.mission-output-grid--warm b { display:block; margin-bottom:.8rem; color:var(--c-accent); font-size:1.1rem; }.mission-output-grid--warm div:nth-child(2) b { color:var(--c-orange); }.mission-modes--warm article { min-height:14rem; background:linear-gradient(145deg,rgba(24,36,54,.9),rgba(15,22,34,.86)); }.mission-modes--warm article:nth-child(2) { border-top-color:rgba(255,138,61,.6); }.mission-modes--warm article:nth-child(3) { border-top-color:rgba(56,211,159,.55); }.mission-modes--warm .mission-modes__route { color:#a9e8ff; letter-spacing:.08em; }.mission-pilots--warm { align-items:stretch; }.mission-pilots--warm > div:first-child { padding:1rem 0; }.mission-pilots__quote { display:flex; flex-direction:column; justify-content:center; padding:2rem; border:1px solid rgba(53,201,255,.2); border-radius:var(--radius); background:linear-gradient(135deg,rgba(53,201,255,.09),rgba(15,22,34,.5)); }.mission-pilots__quote > span { color:var(--c-accent); font:4rem/.55 Georgia,serif; }.mission-pilots__quote p { margin:1rem 0; color:#e2edf6; font-size:1.16rem; }.mission-pilots__quote small { color:var(--c-text-dim); }.mission-home--warm .cta { margin-top:0; }
@media(max-width:900px){.hero-visual--warm .hero-visual__route{margin-top:auto;transform:none}.mission-flow--warm .mission-flow__step{min-height:auto}}@media(max-width:600px){.mission-home--warm .section__title{max-width:none}.hero--warm .hero__title{font-size:clamp(2.65rem,11vw,3.45rem)}.hero__proof{display:flex!important}.hero__proof span{width:100%}.mission-pilots__quote{padding:1.5rem}.mission-output-grid--warm div{min-height:auto}}
/* FlightBrief AI: product-led flight operations identity. */
.hero__eyebrow {
	align-items: center;
	color: #8eb5ca;
	gap: .6rem;
}

.hero__eyebrow > span {
	display: inline-flex;
	align-items: center;
	min-height: 1.65rem;
	padding: 0 .55rem;
	border: 1px solid rgba(56, 202, 255, .38);
	border-radius: 999px;
	background: rgba(12, 124, 174, .14);
	box-shadow: 0 0 18px rgba(36, 196, 255, .12);
	color: #72d7ff;
	font-size: .61rem;
	letter-spacing: .15em;
}

.hero__title--brand {
	max-width: none !important;
	margin-bottom: .7rem;
	font-size: clamp(3.5rem, 7vw, 6.35rem) !important;
	letter-spacing: -.07em;
	line-height: .9;
}

.hero__title--brand span {
	color: #f5f9ff;
}

.hero__title--brand em {
	font-style: normal;
	color: #46ceff;
	text-shadow: 0 0 28px rgba(46, 199, 255, .3);
}

.hero__subtitle--baseline {
	max-width: 33rem;
	margin: 0 0 1rem;
	color: #c5dfed;
	font-size: clamp(1.12rem, 2vw, 1.42rem);
	font-weight: 600;
	letter-spacing: -.018em;
	line-height: 1.35;
}

.hero-visual--warm {
	min-height: 31.25rem;
	box-shadow: inset 0 0 0 1px rgba(76, 211, 255, .2), 0 24px 60px rgba(0, 12, 25, .45), 0 0 46px rgba(20, 171, 234, .12);
}

.hero-visual--warm .visual-placeholder__grid {
	opacity: .82;
	background-size: 2rem 2rem;
}

.hero-visual--warm .hero-visual__badge {
	padding: .52rem .72rem;
	border-color: rgba(61, 230, 167, .45);
	background: rgba(10, 58, 54, .8);
	box-shadow: 0 0 20px rgba(50, 218, 165, .16);
	font-size: .61rem;
	letter-spacing: .12em;
}

.hero-visual--warm .hero-visual__route {
	filter: drop-shadow(0 0 9px rgba(44, 208, 255, .32));
}

.hero-visual--warm .route-node {
	min-width: 4.25rem;
	padding: .48rem .58rem;
	border-color: rgba(85, 212, 255, .38);
	background: rgba(5, 26, 42, .88);
	box-shadow: 0 8px 20px rgba(0, 0, 0, .28);
}

.hero-visual--warm .route-node--arr {
	border-color: rgba(255, 144, 74, .52);
	box-shadow: 0 0 22px rgba(255, 122, 62, .14);
}

.hero-visual--warm .hero-visual__modes {
	gap: .45rem;
}

.hero-visual--warm .hero-visual__modes span {
	padding: .43rem .56rem;
	border: 1px solid rgba(96, 203, 240, .22);
	border-radius: .38rem;
	background: rgba(6, 26, 42, .7);
	color: #a7d9ec;
	font-size: .54rem;
	font-weight: 700;
	letter-spacing: .08em;
}

.mission-flow--warm .mission-flow__step {
	padding: 1.55rem;
}

.mission-flow__icon {
	display: grid !important;
	width: 3.35rem !important;
	height: 3.35rem !important;
	place-items: center;
	margin-bottom: 1.2rem !important;
	border: 1px solid rgba(62, 201, 255, .42);
	border-radius: .85rem !important;
	background: linear-gradient(145deg, rgba(25, 148, 205, .28), rgba(8, 38, 62, .72));
	box-shadow: 0 10px 22px rgba(0, 0, 0, .22), inset 0 1px rgba(159, 235, 255, .14);
	color: #7ee0ff !important;
	font-family: var(--font-mono, monospace);
	font-size: .7rem !important;
	font-weight: 800;
	letter-spacing: .08em;
}

.mission-flow--warm .mission-flow__step:nth-child(2) .mission-flow__icon {
	border-color: rgba(255, 159, 86, .38);
	background: linear-gradient(145deg, rgba(128, 66, 38, .34), rgba(47, 29, 31, .6));
	color: #ffb079 !important;
}

.mission-flow--warm .mission-flow__step:nth-child(3) .mission-flow__icon {
	border-color: rgba(54, 211, 174, .38);
	background: linear-gradient(145deg, rgba(24, 116, 100, .32), rgba(8, 43, 46, .62));
	color: #71e7c7 !important;
}

.mission-output-grid--warm > div {
	min-height: 10.75rem;
	padding: 1.35rem;
}

.mission-output-grid__icon {
	display: grid !important;
	width: 2.9rem;
	height: 2.9rem;
	place-items: center;
	margin-bottom: 1rem;
	border: 1px solid rgba(55, 199, 255, .36);
	border-radius: .72rem;
	background: rgba(13, 73, 104, .3);
	box-shadow: inset 0 1px rgba(164, 235, 255, .13);
	color: #69d6ff;
	font-family: var(--font-mono, monospace);
	font-size: .64rem;
	letter-spacing: .08em;
}

.mission-output-grid--warm > div:nth-child(2) .mission-output-grid__icon {
	border-color: rgba(255, 166, 91, .34);
	background: rgba(113, 60, 35, .25);
	color: #ffb478;
}

.mission-output-grid--warm > div:nth-child(3) .mission-output-grid__icon {
	border-color: rgba(81, 210, 255, .34);
	background: rgba(24, 92, 127, .24);
}

.mission-output-grid--warm > div:nth-child(4) .mission-output-grid__icon {
	border-color: rgba(68, 215, 171, .34);
	background: rgba(17, 98, 81, .24);
	color: #77e3c4;
}

@media (max-width: 720px) {
	.hero__title--brand {
		font-size: clamp(3.25rem, 16vw, 4.45rem) !important;
	}

	.hero__subtitle--baseline {
		font-size: 1.08rem;
	}

	.hero-visual--warm {
		min-height: 25.5rem;
	}

	.hero-visual--warm .hero-visual__modes {
		flex-wrap: wrap;
	}
}

/* Accueil FlightBrief AI : presentation ops sobre et lisible. */
.site-logo {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.site-logo__image {
	display: block;
	width: auto;
	height: 2rem;
	max-width: min(11.5rem, 42vw);
	object-fit: contain;
}

.site-logo__fallback {
	color: #f3f8fc;
	font-size: 1.08rem;
	font-weight: 800;
	letter-spacing: -.03em;
	line-height: 1;
}

.site-logo__fallback span {
	color: var(--c-accent);
}

.hero--premium {
	padding: clamp(4.5rem, 8vw, 6.5rem) 0 clamp(4rem, 7vw, 5.5rem);
}

.hero__eyebrow {
	color: #74cdea;
	font-size: .67rem;
	letter-spacing: .15em;
}

.hero--warm .hero__text {
	max-width: 37rem;
	color: #c7d7e4;
	font-size: clamp(1.07rem, 1.45vw, 1.16rem);
	line-height: 1.65;
}

.hero-visual--warm {
	min-height: 28.5rem;
	box-shadow: inset 0 0 0 1px rgba(76, 211, 255, .16), 0 18px 46px rgba(0, 12, 25, .36);
}

.mission-flow--warm .mission-flow__step {
	min-height: 0;
	padding: 1.45rem;
	border-color: rgba(85, 183, 220, .2);
	background: linear-gradient(145deg, rgba(22, 37, 53, .82), rgba(13, 20, 30, .82));
}

.mission-flow--warm .mission-flow__step::after {
	content: none;
}

.mission-flow__icon {
	width: 2.65rem !important;
	height: 2.65rem !important;
	margin-bottom: 1rem !important;
	border-radius: .68rem !important;
	box-shadow: none;
}

.mission-output-grid--warm {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mission-output-grid--warm > div,
.mission-output-grid--warm > div:first-child {
	grid-row: auto;
	min-height: 10rem;
	padding: 1.3rem;
	border-color: rgba(78, 186, 224, .18);
	background: rgba(11, 24, 36, .52);
	box-shadow: none;
}

.mission-output-grid--warm > div:first-child {
	border-color: rgba(68, 209, 255, .34);
	background: linear-gradient(145deg, rgba(18, 70, 94, .3), rgba(11, 24, 36, .6));
}

.mission-output-grid__icon {
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: .85rem;
	border-radius: .6rem;
	box-shadow: none;
}

.mission-pilots__points {
	display: grid;
	gap: .55rem;
	margin: .4rem 0 1.15rem;
	padding: 0;
	border: 0;
	border-left: 0;
	border-radius: 0;
	background: none;
	list-style: none;
}

.mission-pilots__points li {
	position: relative;
	padding-left: 1.25rem;
	color: #c6d9e4;
	font-size: .88rem;
}

.mission-pilots__points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45rem;
	width: .38rem;
	height: .38rem;
	border-radius: 50%;
	background: var(--c-accent);
	box-shadow: 0 0 8px rgba(53, 201, 255, .35);
}

@media (max-width: 600px) {
	.site-logo__image {
		height: 1.78rem;
		max-width: 9.75rem;
	}

	.hero-visual--warm {
		min-height: 23rem;
	}

	.mission-output-grid--warm {
		grid-template-columns: 1fr;
	}

	.mission-output-grid--warm > div,
	.mission-output-grid--warm > div:first-child {
		min-height: auto;
	}
}

/* Fiche mission : rapproche le briefing du header sans affecter les autres pages. */
.section--mission {
	padding: clamp(2rem, 3.4vw, 3.5rem) 0 clamp(3.5rem, 6vw, 5rem);
}

@media (max-width: 600px) {
	.section--mission {
		padding-top: 1.35rem;
	}
}
/* Fiche mission : un départ de page plus direct, sans affecter les autres vues. */
.section--mission {
	padding-top: clamp(1rem, 2.1vw, 2rem);
}

@media (max-width: 600px) {
	.section--mission {
		padding-top: 1rem;
	}
}
/* Page Mes missions : en-tête éditorial et accès principal. */
.section--missions {
	padding-top: clamp(2rem, 4vw, 4rem);
}

.wrap--missions .container {
	width: var(--flightbrief-shell-width);
	max-width: none;
	padding-inline: clamp(14px, 1.5vw, 24px);
}

.page-head--missions {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	padding: clamp(1.4rem, 3vw, 2.25rem);
	border: 1px solid rgba(65, 188, 232, .18);
	border-radius: 1rem;
	background:
		radial-gradient(circle at 8% 0%, rgba(27, 153, 197, .16), transparent 35%),
		linear-gradient(145deg, rgba(13, 31, 46, .94), rgba(8, 18, 28, .96));
	box-shadow: 0 1.25rem 3rem rgba(0, 7, 14, .2), inset 0 1px rgba(211, 246, 255, .04);
}

.page-head--missions__copy {
	min-width: 0;
}

.page-head--missions .page-head__eyebrow {
	margin: 0 0 .55rem;
	color: var(--c-accent);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.page-head--missions .page-head__title {
	margin: 0;
	font-size: clamp(2.15rem, 5vw, 3.75rem);
	line-height: 1.02;
	letter-spacing: -.045em;
}

.page-head--missions .page-head__lead {
	max-width: 46rem;
	margin: .8rem 0 0;
	font-size: clamp(.98rem, 1.5vw, 1.1rem);
	line-height: 1.65;
}

.page-head--missions__action {
	flex: 0 0 auto;
}

@media (max-width: 720px) {
	.section--missions {
		padding-top: 1.25rem;
	}

	.page-head--missions {
		align-items: flex-start;
		flex-direction: column;
		gap: 1.25rem;
	}

	.page-head--missions__action {
		width: 100%;
		text-align: center;
	}
}
/* Accueil FlightBrief AI : alignement et finition premium. */
.hero--premium .hero__inner--split,
.mission-home--warm .container {
	width: var(--flightbrief-shell-width);
	max-width: none;
	padding-inline: clamp(14px, 1.5vw, 24px);
}

.hero--premium .hero__inner--split {
	grid-template-columns: minmax(0, .95fr) minmax(29rem, 1.05fr);
	gap: clamp(3rem, 5vw, 6rem);
}

.hero--premium .hero__content {
	max-width: 46rem;
}

.hero--premium .hero__title--brand {
	max-width: none !important;
	font-size: clamp(3.35rem, 5vw, 5rem) !important;
	line-height: .95;
	letter-spacing: -.06em;
}

.hero--premium .hero__text {
	max-width: 43rem;
}

.hero--premium .hero__actions {
	margin-top: .15rem;
}

.hero--premium .hero-visual--warm {
	min-height: clamp(29rem, 38vw, 35rem);
	border-color: rgba(74, 201, 240, .28);
	background:
		radial-gradient(circle at 50% 48%, rgba(35, 168, 210, .1), transparent 42%),
		rgba(7, 20, 31, .72);
	box-shadow:
		inset 0 0 0 1px rgba(105, 220, 252, .08),
		0 1.5rem 4rem rgba(0, 8, 18, .32);
}

.mission-home--warm .section {
	padding: clamp(4rem, 6.5vw, 6rem) 0;
}

.mission-home--warm .section__lead {
	max-width: 48rem;
	line-height: 1.65;
}

.mission-home--warm .mission-flow {
	gap: clamp(1rem, 1.7vw, 1.5rem);
	margin-top: 2.25rem;
}

.mission-home--warm .mission-flow__step,
.mission-home--warm .mission-output-grid > div,
.mission-home--warm .mission-modes article,
.mission-home--warm .mission-pilots__quote {
	border-color: rgba(76, 186, 224, .18);
	border-radius: .9rem;
	box-shadow:
		inset 0 1px rgba(218, 247, 255, .035),
		0 .8rem 2rem rgba(0, 7, 15, .09);
}

.mission-home--warm .mission-flow__step {
	padding: clamp(1.45rem, 2vw, 1.8rem);
}

.mission-home--warm .mission-flow__step h3,
.mission-home--warm .mission-modes h3 {
	margin-bottom: .65rem;
	color: #edf8fc;
	line-height: 1.25;
}

.mission-home--warm .mission-flow__step p,
.mission-home--warm .mission-modes p,
.mission-home--warm .mission-output-grid span {
	font-size: .95rem;
	line-height: 1.6;
}

.mission-home__briefing {
	grid-template-columns: minmax(18rem, .78fr) minmax(0, 1.22fr);
	gap: clamp(3rem, 6vw, 7rem);
}

.mission-output-grid--warm {
	gap: 1rem;
}

.mission-output-grid--warm > div,
.mission-output-grid--warm > div:first-child {
	min-height: 11rem;
	padding: clamp(1.35rem, 1.8vw, 1.65rem);
	background: linear-gradient(145deg, rgba(16, 38, 54, .72), rgba(8, 21, 32, .76));
}

.mission-output-grid--warm > div:first-child {
	background: linear-gradient(145deg, rgba(18, 76, 99, .34), rgba(8, 24, 36, .78));
}

.mission-home--warm .mission-modes {
	gap: clamp(1rem, 1.7vw, 1.5rem);
	margin-top: 2rem;
}

.mission-home--warm .mission-modes article {
	min-height: 13.25rem;
	padding: clamp(1.45rem, 2vw, 1.8rem);
	background: linear-gradient(145deg, rgba(20, 40, 57, .82), rgba(10, 23, 35, .88));
}

.mission-home--warm .mission-pilots {
	grid-template-columns: minmax(0, .9fr) minmax(24rem, 1.1fr);
	gap: clamp(3rem, 6vw, 7rem);
}

.mission-home--warm .mission-pilots__quote {
	padding: clamp(1.6rem, 2.5vw, 2.35rem);
	background: linear-gradient(135deg, rgba(25, 103, 132, .18), rgba(9, 24, 36, .76));
}

.mission-home--warm .cta__inner {
	padding-block: clamp(3rem, 5vw, 4.5rem);
	border-top: 1px solid rgba(78, 190, 227, .12);
}

@media (hover: hover) {
	.mission-home--warm .mission-flow__step,
	.mission-home--warm .mission-output-grid > div {
		transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
	}

	.mission-home--warm .mission-flow__step:hover,
	.mission-home--warm .mission-output-grid > div:hover {
		border-color: rgba(75, 201, 239, .32);
		box-shadow:
			inset 0 1px rgba(218, 247, 255, .05),
			0 1rem 2.4rem rgba(0, 8, 17, .16);
		transform: translateY(-2px);
	}
}

@media (min-width: 901px) {
	.hero--premium .hero__title--brand {
		white-space: nowrap;
	}
}

@media (max-width: 1100px) {
	.hero--premium .hero__inner--split {
		grid-template-columns: minmax(0, 1fr) minmax(25rem, .95fr);
		gap: 2.5rem;
	}

	.hero--premium .hero__title--brand {
		font-size: clamp(3.1rem, 5vw, 4.2rem) !important;
	}
}

@media (max-width: 900px) {
	.hero--premium .hero__inner--split,
	.mission-home__briefing,
	.mission-home--warm .mission-pilots {
		grid-template-columns: 1fr;
	}

	.hero--premium .hero__inner--split,
	.mission-home__briefing,
	.mission-home--warm .mission-pilots {
		gap: 2.25rem;
	}

	.hero--premium .hero__content {
		max-width: 45rem;
	}

	.hero--premium .hero-visual--warm {
		min-height: 27rem;
	}
}

@media (max-width: 600px) {
	.hero--premium .hero__title--brand {
		white-space: normal;
		font-size: clamp(2.65rem, 13vw, 3.7rem) !important;
		line-height: .98;
	}

	.hero--premium .hero-visual--warm {
		min-height: 22rem;
	}

	.mission-home--warm .section {
		padding: 3.5rem 0;
	}

	.mission-home--warm .mission-flow,
	.mission-home--warm .mission-modes {
		gap: .9rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mission-home--warm .mission-flow__step,
	.mission-home--warm .mission-output-grid > div {
		transition: none;
	}
}
/* Accueil : CTA final FlightBrief AI. */
.mission-home--warm .cta--home {
	margin: 0;
	padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(3rem, 5vw, 4.75rem);
	border-top: 0;
	background:
		radial-gradient(55rem 20rem at 50% 100%, rgba(31, 156, 202, .1), transparent 68%),
		#090e15;
}

.mission-home--warm .cta--home .cta__inner {
	max-width: none;
	padding-block: 0;
	border-top: 0;
}

.cta--home .cta__card {
	position: relative;
	display: flex;
	align-items: center;
	flex-direction: column;
	max-width: none;
	padding: clamp(2.15rem, 4vw, 3.65rem) clamp(1.25rem, 4vw, 4rem);
	overflow: hidden;
	border: 1px solid rgba(76, 197, 235, .22);
	border-radius: 1rem;
	background:
		radial-gradient(circle at 50% 0%, rgba(53, 201, 255, .15), transparent 42%),
		linear-gradient(135deg, rgba(15, 43, 61, .94), rgba(8, 22, 33, .97));
	box-shadow:
		inset 0 1px rgba(220, 249, 255, .055),
		0 1.25rem 3.5rem rgba(0, 7, 15, .22);
	text-align: center;
}

.cta--home .cta__card::before,
.cta--home .cta__card::after {
	position: absolute;
	border: 1px solid rgba(65, 198, 235, .08);
	border-radius: 50%;
	content: '';
	pointer-events: none;
}

.cta--home .cta__card::before {
	top: -10rem;
	left: -7rem;
	width: 22rem;
	height: 22rem;
}

.cta--home .cta__card::after {
	right: -5rem;
	bottom: -11rem;
	width: 25rem;
	height: 25rem;
}

.cta--home .cta__icon {
	position: relative;
	z-index: 1;
	display: grid;
	width: 3.35rem;
	height: 3.35rem;
	margin-bottom: 1rem;
	place-items: center;
	border: 1px solid rgba(80, 210, 244, .28);
	border-radius: .85rem;
	background: linear-gradient(145deg, rgba(34, 139, 176, .25), rgba(10, 40, 56, .72));
	box-shadow: 0 .75rem 1.8rem rgba(0, 14, 28, .22);
	color: #6bdcff;
}

.cta--home .cta__icon iconify-icon {
	font-size: 1.7rem;
}

.cta--home .cta__eyebrow {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin: 0 0 .75rem;
	color: #83cee5;
	font-family: var(--font-mono);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.cta--home .cta__eyebrow iconify-icon {
	font-size: 1rem;
}

.cta--home .cta__title {
	position: relative;
	z-index: 1;
	max-width: 48rem;
	margin: 0;
	color: #f1f9fd;
	font-size: clamp(1.8rem, 3.4vw, 3rem);
	line-height: 1.08;
	letter-spacing: -.035em;
}

.cta--home .cta__text {
	position: relative;
	z-index: 1;
	max-width: 52rem;
	margin: 1rem auto 1.6rem;
	color: #aac0cc;
	font-size: clamp(.98rem, 1.35vw, 1.08rem);
	line-height: 1.7;
}

.cta--home .cta__actions {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: .8rem;
}

.cta--home .cta__actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 2.85rem;
}

.cta--home .cta__actions iconify-icon {
	flex: 0 0 auto;
	font-size: 1.05rem;
}

body.home .site-footer {
	border-top: 0;
	background: #090e15;
}

@media (max-width: 600px) {
	.mission-home--warm .cta--home {
		padding: 2rem 0 3rem;
	}

	.cta--home .cta__card {
		padding: 2rem 1.15rem;
	}

	.cta--home .cta__actions {
		width: 100%;
	}

	.cta--home .cta__actions .btn {
		width: 100%;
	}
}
/* Accueil : pictogrammes Iconify et contenus intermédiaires. */
.mission-home--warm iconify-icon:not(:defined) {
	display: none;
}

.mission-home--warm iconify-icon:defined + .mission-icon-fallback {
	display: none !important;
}

.mission-home--warm .mission-icon-fallback {
	display: grid;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	place-items: center;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	color: inherit !important;
	font: inherit !important;
	line-height: 1 !important;
}

.mission-flow--warm .mission-flow__icon,
.mission-output-grid--warm .mission-output-grid__icon,
.mission-modes--warm .mission-modes__icon {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	border: 1px solid rgba(73, 201, 239, .32);
	background: linear-gradient(145deg, rgba(24, 112, 148, .3), rgba(8, 39, 56, .7));
	color: #6edcff;
}

.mission-flow--warm .mission-flow__icon iconify-icon {
	font-size: 1.4rem;
}

.mission-output-grid--warm .mission-output-grid__icon iconify-icon {
	font-size: 1.28rem;
}

.mission-flow--warm .mission-flow__step:nth-child(2) .mission-flow__icon,
.mission-output-grid--warm > div:nth-child(2) .mission-output-grid__icon {
	border-color: rgba(255, 166, 91, .34);
	background: linear-gradient(145deg, rgba(118, 61, 34, .28), rgba(45, 28, 29, .64));
	color: #ffb478;
}

.mission-flow--warm .mission-flow__step:nth-child(3) .mission-flow__icon,
.mission-output-grid--warm > div:nth-child(4) .mission-output-grid__icon {
	border-color: rgba(65, 215, 173, .34);
	background: linear-gradient(145deg, rgba(18, 104, 83, .27), rgba(7, 42, 43, .66));
	color: #73e3c4;
}

.mission-output-grid--warm > div:nth-child(3) .mission-output-grid__icon {
	border-color: rgba(81, 210, 255, .34);
	background: rgba(24, 92, 127, .24);
	color: #78dcfa;
}

.mission-modes--warm .mission-modes__head {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: 1rem;
}

.mission-modes--warm .mission-modes__icon {
	width: 2.45rem;
	height: 2.45rem;
	border-radius: .65rem;
}

.mission-modes--warm .mission-modes__icon iconify-icon {
	font-size: 1.2rem;
}

.mission-modes--warm article:nth-child(2) .mission-modes__icon {
	border-color: rgba(255, 165, 91, .34);
	background: rgba(106, 57, 34, .24);
	color: #ffb273;
}

.mission-modes--warm article:nth-child(3) .mission-modes__icon {
	border-color: rgba(66, 214, 174, .34);
	background: rgba(16, 94, 78, .25);
	color: #76dfc2;
}

.mission-modes--warm .mission-modes__route {
	margin: 0;
	font-size: .76rem;
	white-space: nowrap;
}

.mission-pilots--warm > div:first-child p {
	max-width: 46rem;
	line-height: 1.7;
}

.mission-pilots--warm > div:first-child p + p {
	margin-top: 1rem;
	color: #afc4cf;
}

@media (max-width: 420px) {
	.mission-modes--warm .mission-modes__head {
		align-items: flex-start;
		flex-direction: column;
		gap: .55rem;
	}

	.mission-modes--warm .mission-modes__route {
		white-space: normal;
	}
}
/* Générateur : aligne l’en-tête de page sur le panneau principal sans élargir la vue. */
.page-head.page-head--generator {
	width: 100%;
	max-width: none;
	margin: 0 0 clamp(1.35rem, 2.4vw, 1.85rem);
	padding-top: clamp(.5rem, 2vw, 1.5rem);
	text-align: left;
}

.page-head.page-head--generator .page-head__lead {
	max-width: 48rem;
	margin-right: 0;
	margin-left: 0;
}

@media (max-width: 600px) {
	.page-head.page-head--generator {
		margin-bottom: 1.25rem;
		padding-top: .25rem;
	}
}
/* Pages publiques du compte pilote FlightBrief AI. */
.section--pilot-access,
.section--pilot-account {
	padding-top: clamp(1.5rem, 3vw, 3rem);
}

.container--pilot-access {
	max-width: 58rem;
}

.container--pilot-account {
	width: var(--flightbrief-shell-width);
	max-width: none;
	padding-inline: clamp(14px, 1.5vw, 24px);
}

.site-nav__list .menu-item--register > a {
	border: 1px solid rgba(75, 203, 239, .28);
	background: rgba(35, 144, 179, .13);
	color: #80ddf5;
}

.site-nav__list .menu-item--logout > a {
	color: #dca5a5;
}

@media (max-width: 600px) {
	.section--pilot-access,
	.section--pilot-account {
		padding-top: 1rem;
	}
}
