/*
 * Mon Herbier — direction « Cyanotype » (docs/design-cyanotype/DESIGN.md).
 * Seule feuille de style du site, chargée après bootstrap.min.css :
 * 1. jetons, 2. base, 3. surcharges Bootstrap 3, 4. mise en page, 5. composants, 6. pages.
 * Aucune couleur en dur hors des jetons.
 */

/* ==================== 1. Jetons ==================== */
:root {
	/* Papier et encre */
	--mh-paper: #F3F0E6;
	--mh-paper-2: #FBF9F2;
	--mh-line: #D8D2BE;
	--mh-ink: #0B2447;
	--mh-ink-2: #2C4466;
	--mh-ink-3: #4E6585;

	/* Bleus */
	--mh-blue-900: #0A2750;
	--mh-blue-800: #0F3A6E;
	--mh-blue-700: #14498A;
	--mh-blue-600: #1D5A9E;
	--mh-blue-500: #2A73B8;
	--mh-blue-400: #4F83BE;
	--mh-blue-300: #8FBDE6;
	--mh-blue-250: #9CC8EE;
	--mh-blue-200: #B5D4F0;
	--mh-blue-100: #CFE3F4;
	--mh-light: #F3F7FB;

	/* Rôles */
	--mh-link: #0E3A6E;
	--mh-link-hover: #1F6FB5;
	--mh-accent: #1F6FB5;
	--mh-danger: #9B2C2C;
	--mh-field-border: #8AA0BC;

	/* Dégradés */
	--mh-banner: radial-gradient(ellipse at 70% 0%, #1D5A9E 0%, #0F3A6E 60%, #0A2750 100%);
	--mh-plate: radial-gradient(ellipse at 50% 40%, #2A73B8, #0C3466);

	/* Typographie */
	--mh-font-display: 'Cormorant Garamond', Georgia, serif;
	--mh-font-mono: 'Courier Prime', 'Courier New', monospace;
	--mh-font-body: 'Lato', Helvetica, Arial, sans-serif;

	--mh-shadow-menu: 0 14px 24px -12px rgba(10, 39, 80, .5);
	--mh-shadow-modal: 0 30px 60px -20px rgba(0, 10, 40, .7);
	--mh-shadow-print: 0 14px 24px -14px rgba(10, 39, 80, .6);

	--mh-gutter: 32px;
}

/* ==================== 2. Base ==================== */
body {
	background-color: var(--mh-paper);
	color: var(--mh-ink);
	font-family: var(--mh-font-body);
	font-size: 16px;
}

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

h1, h2, h3, h4 {
	font-family: var(--mh-font-display);
	color: var(--mh-ink);
	margin: 0;
}
h1 { font-weight: 500; font-size: 72px; line-height: .98; }
h2 { font-weight: 500; font-size: 44px; line-height: 1.05; }
h3 { font-weight: 600; font-size: 28px; }
/* Noms latins : toujours en italique serif */
/* Chiffres alignés (Cormorant a des chiffres elzéviriens par défaut) */
h1, h2, h3, h4, .mh-stat-value, .mh-taxon-card-name { font-variant-numeric: lining-nums; }
h1 em, h2 em, h3 em, .mh-taxon { font-family: var(--mh-font-display); font-style: italic; font-weight: 600; }

@media (max-width: 767px) {
	:root { --mh-gutter: 16px; }
	h1 { font-size: 40px; }
	h2 { font-size: 32px; }
}

/* ==================== 3. Surcharges Bootstrap 3 ==================== */
.container { width: auto; max-width: 1240px; padding: 0 var(--mh-gutter); }
/* Conteneurs en flex : sans les pseudo-éléments clearfix de Bootstrap */
footer .container::before, footer .container::after, .mh-hero .container::before, .mh-hero .container::after { display: none; }

/* Boutons : secondaire par défaut, principal pour .btn-success / .btn-primary / .active */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 20px;
	border: 1.5px solid var(--mh-blue-800); border-radius: 0;
	background: var(--mh-paper); color: var(--mh-blue-800);
	font-family: var(--mh-font-mono); font-size: 14px; font-weight: 700; letter-spacing: .02em;
	box-shadow: none;
}
.btn:hover, .btn:focus, .btn-default:hover, .btn-default:focus { background: var(--mh-paper-2); color: var(--mh-blue-800); border-color: var(--mh-blue-800); }
.btn-success, .btn-primary, .btn.active, .open > .btn.dropdown-toggle.btn-success {
	background: var(--mh-blue-800); border-color: var(--mh-blue-800); color: var(--mh-light);
	box-shadow: none;
}
.btn-success:hover, .btn-success:focus, .btn-success:active,
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn.active:hover {
	background: var(--mh-blue-700); border-color: var(--mh-blue-700); color: #fff;
}
.btn-default { background: var(--mh-paper); border-color: var(--mh-blue-800); color: var(--mh-blue-800); }
.btn-danger, .btn-warning { background: transparent; border-color: var(--mh-danger); color: var(--mh-danger); }
.text-success { color: var(--mh-blue-800); }
.text-danger { color: var(--mh-danger); }
.btn-link, .btn-link:hover, .btn-link:focus { border-color: transparent; background: transparent; color: var(--mh-link); font-family: var(--mh-font-body); font-weight: 400; font-size: 16px; }
.btn[disabled], .btn.disabled { opacity: .4; pointer-events: none; }
.btn-sm, .btn-xs { min-height: 30px; padding: 0 10px; font-size: 12px; }
.btn .glyphicon { top: 0; }
.btn-group > .btn + .btn, .btn-group > .btn + .btn-group, .btn-group > .btn-group + .btn { margin-left: -1.5px; }
.btn-group > .btn.dropdown-toggle:only-child, .btn-icon { padding: 0 14px; }

/* Menus déroulants */
.dropdown-menu {
	min-width: 220px; padding: 0; margin-top: 6px;
	background: var(--mh-paper-2);
	border: 1.5px solid var(--mh-blue-800); border-radius: 0;
	box-shadow: var(--mh-shadow-menu);
	font-family: var(--mh-font-body); font-size: 15px;
}
.dropdown-menu > li > a { color: var(--mh-ink); padding: 13px 18px; }
.dropdown-menu > li + li > a { border-top: 1px solid var(--mh-line); }
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { background: var(--mh-paper); color: var(--mh-blue-800); }
.dropdown-menu .divider { margin: 0; height: 1px; background: var(--mh-line); }
.dropdown-menu .divider + li > a { border-top: 0; }
.dropdown-header { padding: 12px 18px 8px; font-family: var(--mh-font-mono); font-size: 12px; letter-spacing: .06em; color: var(--mh-ink-3); }
.dropdown-menu .mh-danger > a { color: var(--mh-danger); font-weight: 700; }

/* Formulaires */
.form-control {
	height: 48px; padding: 0 16px;
	background: #fff;
	border: 1px solid var(--mh-field-border); border-radius: 0;
	box-shadow: none;
	font-family: var(--mh-font-body); font-size: 16px; color: var(--mh-ink);
}
textarea.form-control { height: auto; padding: 12px 16px; }
.form-control:focus { border: 1.5px solid var(--mh-blue-800); box-shadow: none; }
.input-group-btn > .btn { height: 48px; border-left: 0; }
label { font-weight: 400; }
.radio label, .checkbox label { display: flex; align-items: center; gap: 12px; min-height: 44px; padding-left: 0; }
.radio input[type=radio], .checkbox input[type=checkbox] { position: static; margin: 0; width: 18px; height: 18px; accent-color: var(--mh-blue-800); }

/* Panneaux, listes, tableaux, alertes */
.panel, .well, .list-group { background: var(--mh-paper-2); border: 1px solid var(--mh-line); border-radius: 0; box-shadow: none; }
.list-group-item { background: transparent; border-color: var(--mh-line); border-radius: 0 !important; }
.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { background: var(--mh-blue-800); border-color: var(--mh-blue-800); color: var(--mh-light); }
.badge {
	border-radius: 999px; padding: 3px 10px;
	background: var(--mh-ink-2); color: var(--mh-light);
	font-family: var(--mh-font-mono); font-size: 12px; font-weight: 700;
}
.active > a > .badge, .list-group-item.active > .badge { background: var(--mh-light); color: var(--mh-blue-800); }
.table { background: var(--mh-paper-2); }
.table > tbody > tr > td, .table > tbody > tr > th { border-color: var(--mh-line); }
.table-hover > tbody > tr:hover { background: var(--mh-paper); }
.alert, p[class^="bg-"] { border-radius: 0; border: 1px solid var(--mh-line); background: var(--mh-paper-2); color: var(--mh-ink); padding: 12px 16px; }
.bg-danger { border-left: 4px solid var(--mh-danger) !important; }
.bg-success, .alert-info { border-left: 4px solid var(--mh-blue-800) !important; }
.progress { border-radius: 0; background: var(--mh-paper-2); box-shadow: none; }
.progress-bar, .progress-bar-success { background-color: var(--mh-blue-800); }

/* Bulles */
.popover { border-radius: 0; border: 1.5px solid var(--mh-blue-800); }
.popover-title { background: var(--mh-blue-800); color: var(--mh-light); font-family: var(--mh-font-mono); font-weight: 700; border-radius: 0; }
.popover-content { background: var(--mh-paper-2); color: var(--mh-ink); }

/* Modales (les modales au-dessus de la liste de l'autocomplétion Google des lieux) */
.modal { z-index: 200; }
.modal-backdrop { z-index: 199; background: var(--mh-blue-900); }
.modal-backdrop.in { opacity: .65; }
.modal-dialog { max-width: 600px; }
#mh-modal-diaporama .modal-dialog { max-width: none; }
.modal-content { background: var(--mh-paper-2); border: 0; border-radius: 0; box-shadow: var(--mh-shadow-modal); }
.modal-header { background: var(--mh-banner); border: 0; padding: 20px 28px; }
.modal-title { font-family: var(--mh-font-display); font-weight: 600; font-size: 34px; line-height: 1.1; color: #fff; }
.modal-header .close { margin-top: 2px; color: var(--mh-blue-100); opacity: 1; text-shadow: none; font-size: 30px; font-weight: 400; }
.modal-body { padding: 28px; color: var(--mh-ink); }
.modal-body .form-group { margin-bottom: 16px; }
.modal-body label { display: block; margin-bottom: 8px; }
.modal-footer { display: flex; flex-wrap: wrap; gap: 16px; justify-content: flex-end; align-items: center; background: var(--mh-paper); border-top: 1px solid var(--mh-line); padding: 20px 28px; }
.modal-footer .btn + .btn { margin-left: 0; }
.modal-footer:before, .modal-footer:after { display: none; }

/* Bandeau (navbar) */
.navbar-default {
	margin: 0; padding: 20px 0; min-height: 0;
	background: var(--mh-banner); border: 0; border-radius: 0;
	font-family: var(--mh-font-mono); font-size: 14px;
}
.navbar-default .navbar-brand, .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
	height: 44px; padding: 0; line-height: 44px;
	font-family: var(--mh-font-display); font-style: italic; font-weight: 600; font-size: 32px;
	color: #fff;
}
.navbar-default .navbar-nav > li > a,
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus,
.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {
	display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 4px;
	background: transparent; color: #EAF2FA;
}
.navbar-default .navbar-nav > li > a.mh-navbar-square { justify-content: center; width: 44px; border: 1px solid var(--mh-blue-300); }
.navbar-default .navbar-nav > li > a#navbar-btn-login { padding: 0 20px; background: var(--mh-paper); color: var(--mh-blue-900); }
.navbar-default .navbar-toggle { margin: 4px 0; border-color: var(--mh-blue-300); border-radius: 0; }
.navbar-default .navbar-toggle .icon-bar { background: #fff; }
.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background: transparent; }
.navbar-default .navbar-collapse { border: 0; box-shadow: none; }
.navbar-form { margin: 0; padding: 0; border: 0; box-shadow: none; }
.navbar-form .input-group { width: 304px; max-width: 100%; }
.navbar-form .form-control {
	height: 44px; padding: 0 14px;
	background: rgba(243, 240, 230, .1); color: #fff;
	border: 1px solid var(--mh-blue-300); border-right: 0;
	font-family: var(--mh-font-mono); font-size: 14px;
}
.navbar-form .form-control::placeholder { color: var(--mh-blue-100); }
.navbar-form .input-group-btn > .btn { height: 44px; width: 44px; padding: 0; background: var(--mh-paper); color: var(--mh-blue-900); border: 1px solid var(--mh-blue-300); }
@media (min-width: 768px) {
	.navbar-default .navbar-nav > li { margin-left: 20px; }
	.navbar-form.navbar-right { margin-right: 0; }
}
@media (max-width: 767px) {
	.navbar-default .navbar-collapse { padding: 16px 0 0; }
	.navbar-default .navbar-nav { margin: 0; }
	.navbar-default .navbar-nav .open .dropdown-menu { background: var(--mh-paper-2); }
	.navbar-form .input-group { width: 100%; }
}

/* ==================== 4. Mise en page ==================== */
/* Titre de page : sur-titre + h1 à gauche, actions à droite */
.mh-page-head { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; align-items: flex-end; padding: 44px 0 36px; }
/* Dès que la place le permet, les actions restent figées à droite et c'est le titre qui passe à la ligne */
@media (min-width: 768px) {
	.mh-page-head { flex-wrap: nowrap; align-items: flex-start; }
	.mh-page-head > :first-child { flex: 1 1 0; min-width: 0; overflow-wrap: anywhere; }
	.mh-page-head > :not(:first-child) { flex: none; }
}
.mh-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* Deux colonnes, empilées sous ~990 px (colonne gauche d'abord, sauf .mh-columns-main-first) */
.mh-columns { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; padding-bottom: 96px; }
.mh-aside { flex: 1 1 320px; max-width: 400px; min-width: 0; display: flex; flex-direction: column; gap: 32px; }
.mh-main { flex: 2.3 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 56px; }
@media (max-width: 991px) {
	.mh-aside { max-width: none; }
	.mh-columns-main-first > .mh-main { order: -1; }
}
.mh-section-head { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.mh-section-head-bare { margin-bottom: 20px; }

/* ==================== 5. Composants ==================== */
/* Textes */
.mh-eyebrow { margin-bottom: 6px; font-family: var(--mh-font-mono); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--mh-accent); }
.mh-count { color: var(--mh-accent); }
.mh-meta { font-family: var(--mh-font-mono); font-size: 12px; color: var(--mh-ink-3); }
.mh-empty { margin: 0; font-size: 17px; font-style: italic; color: var(--mh-ink-2); }
.mh-footnote { margin: 14px 0 0; font-family: var(--mh-font-mono); font-size: 12px; line-height: 1.5; color: var(--mh-ink-3); }

/* Bloc à filet supérieur et son libellé (« Photos par mois », « Lieux »…) */
.mh-ruled { border-top: 2px solid var(--mh-ink); padding-top: 16px; }
.mh-label { margin-bottom: 16px; font-family: var(--mh-font-mono); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--mh-ink); }

/* Cartes crème */
.mh-card { background: var(--mh-paper-2); border: 1px solid var(--mh-line); padding: 18px 20px; }
.mh-card > :last-child { margin-bottom: 0; }
.mh-note { border-left: 4px solid var(--mh-blue-800); padding: 20px 24px; font-size: 17px; line-height: 1.6; }

/* Onglets utilisateur */
.mh-tabs {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 36px; margin-top: 28px;
	border-bottom: 1px solid var(--mh-ink);
	font-family: var(--mh-font-mono); font-size: 14px; letter-spacing: .08em; text-transform: uppercase;
}
.mh-tabs > a { display: flex; align-items: center; gap: 10px; padding: 14px 2px; color: var(--mh-ink-2); text-decoration: none; }
.mh-tabs > a:hover { color: var(--mh-link-hover); }
.mh-tabs > a.active { color: var(--mh-ink); font-weight: 700; border-bottom: 3px solid var(--mh-blue-800); margin-bottom: -1px; }
.mh-tabs .mh-tabs-note { padding: 14px 2px; text-transform: none; letter-spacing: 0; color: var(--mh-ink-2); }

/* Vignettes : fond « tirage » sous la photo (image de fond en ligne) */
.mh-thumb { display: block; aspect-ratio: 4 / 3; background: var(--mh-plate); background-size: cover; background-position: center; }
.mh-thumb-square { aspect-ratio: 1 / 1; }

/* Grilles de photos (le sélecteur coche les .photos-list-thumb, le diaporama lit les [data-photo-id]) */
.mh-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.mh-photo-grid-sm { grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
.mh-photo-grid-sm .mh-thumb { aspect-ratio: 1 / 1; }
.photos-list-thumb { position: relative; }
.photos-list-thumb.photos-list-thumb-selected { outline: 3px solid var(--mh-paper); outline-offset: -3px; }
.photos-list-thumb.photos-list-thumb-selected::after {
	content: '\2713'; position: absolute; top: 6px; right: 6px; width: 22px; height: 22px;
	border-radius: 50%; background: var(--mh-paper); color: var(--mh-blue-800);
	font-weight: 700; line-height: 22px; text-align: center;
}

/* Vignettes construites par les scripts (diaporama, sélecteur de photos) */
ul.photos-list { padding: 0; margin: 0; list-style: none; }
ul.photos-list li { display: inline-block; margin: 0 6px 6px 0; }
.photos-list-thumb-sm, .photos-list-thumb-sm a { display: block; width: 60px; height: 45px; background-size: cover !important; }

/* Grilles de taxons */
.mh-taxon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(max(105px, calc((100% - 50px) / 6)), 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.mh-taxon-card { display: block; height: 100%; padding: 6px 6px 9px; background: var(--mh-paper-2); border: 1px solid var(--mh-line); text-decoration: none; }
.mh-taxon-card:hover, .mh-taxon-card:focus { text-decoration: none; border-color: var(--mh-blue-800); }
.mh-taxon-card-name, .mh-print-label, .mh-specimen span { display: block; }
.mh-taxon-card-name { margin-top: 8px; font-family: var(--mh-font-display); font-weight: 600; font-size: 16px; line-height: 1.15; color: var(--mh-link); overflow-wrap: anywhere; }
.mh-taxon-card-name em { font-style: italic; }

/* Cartes de chiffres */
.mh-stats { background: var(--mh-blue-800); color: var(--mh-light); padding: 24px; }
.mh-stats-title, .mh-stats-title:hover, .mh-stats-title:focus { display: block; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--mh-blue-400); font-family: var(--mh-font-display); font-weight: 600; font-size: 30px; line-height: 1.1; color: #fff; text-decoration: none; }
.mh-stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 8px; }
.mh-stats-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mh-stats-grid-3 > .mh-stat:nth-child(5) { grid-column: span 2; }
.mh-stat-value { font-family: var(--mh-font-display); font-weight: 600; font-size: 38px; line-height: 1; }
.mh-stat-label { margin-top: 4px; font-family: var(--mh-font-mono); font-size: 12px; color: var(--mh-blue-200); }
.mh-stats .mh-empty { color: var(--mh-blue-100); }

/* Histogramme « Photos par mois » */
.mh-histogram-bars, .mh-histogram-months { display: flex; gap: 6px; }
.mh-histogram-bars { align-items: flex-end; height: 170px; }
.mh-histogram-bars > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; font-family: var(--mh-font-mono); font-size: 10px; color: var(--mh-ink-2); }
.mh-histogram-bar { width: 100%; margin-top: 4px; background: var(--mh-blue-800); }
.mh-histogram-months { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--mh-ink); }
.mh-histogram-months > div { flex: 1 1 0; min-width: 0; text-align: center; font-family: var(--mh-font-mono); font-size: 11px; color: var(--mh-ink-2); }

/* Hiérarchie d'un taxon */
.mh-hierarchy { display: flex; flex-direction: column; gap: 10px; }
.mh-level-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; font-size: 17px; }
.mh-level-row .mh-taxon { font-size: 22px; }
.mh-level-type { flex: 0 0 auto; font-family: var(--mh-font-mono); font-size: 12px; color: var(--mh-ink-3); text-transform: capitalize; }
.mh-level + .mh-level, .mh-hierarchy > p { border-top: 1px solid var(--mh-line); padding-top: 10px; }
.mh-hierarchy > p { margin: 6px 0 0; padding-top: 14px; line-height: 1.6; }

/* Lignes séparées par un filet : nom à gauche, méta à droite */
.mh-rows > * { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 16px; padding: 10px 0; border-top: 1px solid var(--mh-line); font-size: 15px; }
.mh-rows > * > :last-child { align-self: center; font-family: var(--mh-font-mono); font-size: 13px; color: var(--mh-ink-3); }
.mh-rows > *.active { background: var(--mh-paper); }
.mh-label + .mh-rows > :first-child { border-top: 0; }

/* Listes à compteur (mois, lieux) */
.mh-counter-list { margin: 0; padding: 10px; list-style: none; }
.mh-counter-list a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 6px 14px; line-height: 1.3; text-decoration: none; }
.mh-counter-list .badge { flex: 0 0 auto; }
.mh-counter-list a:hover { background: var(--mh-paper); }
.mh-counter-list .active > a { background: var(--mh-blue-800); color: var(--mh-light); }

/* Tableaux « Référentiel » */
.mh-ref-table { width: 100%; border-collapse: collapse; background: var(--mh-paper-2); border: 1px solid var(--mh-line); }
.mh-ref-table th, .mh-ref-table td { padding: 14px 18px; border: 1px solid var(--mh-line); vertical-align: top; overflow-wrap: anywhere; }
.mh-ref-table th { width: 36%; background: var(--mh-paper); color: var(--mh-ink-2); font-weight: 400; text-align: left; }
.mh-ref-table em { font-family: var(--mh-font-display); font-weight: 600; font-size: 20px; }

/* Description de Coste (HTML produit par Views.costeHtml) */
.mh-coste { padding: 28px 32px; line-height: 1.65; }
.mh-coste-image { float: right; max-width: 300px; max-height: 300px; margin: 0 0 16px 20px; }
.taxon-coste-description p:first-child { font-family: var(--mh-font-display); font-weight: 600; font-size: 28px; line-height: 1.2; }
.taxon-coste-description ul { padding-left: 22px; }
.taxon-coste-description li + li { margin-top: 8px; }
.taxon-coste-description-header { font-family: var(--mh-font-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--mh-ink-3); }

/* Cartes Google Maps */
.mh-map { height: 380px; background: var(--mh-plate); }
.mh-map-sm { height: 260px; }
.mh-map-lg { height: 640px; }

/* Barre de vignettes et grande photo (page photo) */
.mh-strip { display: flex; align-items: center; gap: 12px; padding: 12px 16px; }
.mh-strip > a { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--mh-blue-800); }
.mh-strip .mh-photo-grid { flex: 1 1 0; display: flex; gap: 4px; overflow-x: auto; }
.mh-strip .mh-photo-grid > li { flex: 0 0 52px; }
.mh-photo-main img { display: block; width: 100%; max-height: 720px; object-fit: contain; background: var(--mh-blue-900); }
.mh-caption { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: flex-start; }
.mh-caption > :last-child { text-align: right; line-height: 1.7; }
.mh-photo-page { gap: 24px; }
.mh-map + .mh-caption { margin-top: 16px; }

/* Pied de page */
footer { margin-top: 0; background: var(--mh-blue-900); color: var(--mh-blue-100); font-family: var(--mh-font-mono); font-size: 13px; }
footer .container { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; padding-top: 32px; padding-bottom: 32px; }
footer a, footer a:hover, footer a:focus { color: var(--mh-blue-100); }

/* Éléments réservés au propriétaire, affichés par AuthorizationsHandler ; alertes vides masquées */
.authorized, #alert-container:empty { display: none; }

/* ==================== 6. Pages ==================== */
/* Accueil */
.mh-hero { background: var(--mh-banner); color: var(--mh-blue-100); }
.mh-hero .container { display: flex; flex-wrap: wrap; gap: 64px; align-items: center; padding-top: 72px; padding-bottom: 104px; }
.mh-hero-text { flex: 1 1 440px; min-width: 0; }
.mh-hero h1 { font-size: 84px; line-height: .96; letter-spacing: -.01em; color: #fff; }
.mh-hero h1 em { font-weight: 500; color: var(--mh-blue-250); }
.mh-hero-text p { max-width: 480px; margin: 32px 0 40px; font-size: 19px; line-height: 1.6; }
.mh-hero .btn { min-height: 52px; padding: 0 28px; background: var(--mh-paper); border-color: var(--mh-paper); color: var(--mh-blue-900); font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
.mh-hero .btn-link, .mh-hero .btn-link:hover { background: transparent; border-color: transparent; color: #EAF2FA; text-transform: none; letter-spacing: 0; text-decoration: underline; text-underline-offset: 5px; }
.mh-hero-plate { flex: 1 1 400px; min-width: 0; display: flex; justify-content: center; }
@media (max-width: 767px) { .mh-hero h1 { font-size: 48px; } }

/* Tirage encadré : planche de l'accueil (scotch) et dernières photos */
.mh-print { position: relative; display: block; background: var(--mh-paper); padding: 12px 12px 14px; box-shadow: var(--mh-shadow-print); color: var(--mh-ink); text-decoration: none; transform: rotate(-1.2deg); }
.mh-print:nth-child(even) { transform: rotate(1deg); }
.mh-print > a, .mh-specimen > a { display: block; color: inherit; text-decoration: none; }
.mh-print-label { margin-top: 10px; line-height: 1.4; }
.mh-print > .mh-meta { color: var(--mh-accent); }
.mh-print-lg { width: 100%; max-width: 470px; padding: 26px 26px 20px; box-shadow: var(--mh-shadow-modal); transform: rotate(1.4deg); }
.mh-print-lg::before, .mh-print-lg::after { content: ''; position: absolute; top: -12px; left: 34px; width: 84px; height: 26px; background: var(--mh-blue-100); opacity: .8; transform: rotate(-6deg); }
.mh-print-lg::after { left: auto; right: 36px; transform: rotate(5deg); }
.mh-print-lg .mh-print-label { margin-top: 18px; border: 1px solid var(--mh-ink); padding: 14px 16px; font-family: var(--mh-font-mono); font-size: 13px; }
.mh-print-lg .mh-print-label .mh-taxon { font-size: 28px; line-height: 1.1; }

/* Grilles de l'accueil */
.mh-home-section { padding-top: 88px; }
.mh-home-section:last-child { padding-bottom: 104px; }
.mh-home-section > h2 { margin-bottom: 36px; font-size: 58px; }
.mh-planches { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 48px; }
.mh-planches > div { border-top: 2px solid var(--mh-ink); padding-top: 20px; }
.mh-planches h3 { margin: 10px 0; font-size: 40px; }
.mh-planches p { margin: 0; line-height: 1.6; color: var(--mh-ink-2); }
.mh-specimen-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 16px; }
.mh-specimen { display: flex; flex-direction: column; background: var(--mh-blue-800); color: var(--mh-light); padding: 0 14px 14px; text-decoration: none; }
.mh-specimen:hover { background: var(--mh-blue-700); }
.mh-specimen .mh-thumb { margin: 0 -14px 10px; }
.mh-specimen .mh-taxon-card-name { margin: 0; font-size: 21px; line-height: 1.1; color: var(--mh-light); }
.mh-specimen a > span:not([class]) { margin-top: 4px; font-size: 13px; color: var(--mh-blue-100); }
.mh-specimen > a { margin-bottom: 10px; }
.mh-specimen .mh-meta { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--mh-blue-400); color: var(--mh-blue-250); }
.mh-specimen .mh-meta a { color: var(--mh-blue-100); }
.mh-print-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 26px; }

/* Recherche */
.mh-search { padding-top: 56px; }
.mh-search h1 { font-size: 48px; line-height: 1; overflow-wrap: anywhere; }
.mh-search-options { margin-top: 24px; }
.mh-search-examples { display: flex; flex-direction: column; gap: 14px; font-size: 15px; line-height: 1.5; color: var(--mh-ink-2); }
.mh-search-examples a { font-family: var(--mh-font-display); font-style: italic; font-weight: 600; font-size: 20px; }
.mh-results { display: flex; flex-direction: column; gap: 20px; }
.mh-result { display: flex; gap: 20px; padding: 20px; }
.mh-result > .mh-thumb { flex: 0 0 120px; align-self: flex-start; }
.mh-result > div { flex: 1 1 0; min-width: 0; }
.mh-result h3 { margin: 0 0 10px; font-size: 32px; line-height: 1.1; }
.mh-result h3 a { color: var(--mh-ink); text-decoration: none; }
@media (max-width: 767px) { .mh-result > .mh-thumb { flex-basis: 80px; } }

/* Envoi de photos (blocs affichés par le script de la page) */
#list-top-actions, #list-top-finished, #progress, #list-bottom-actions { display: none; }
.mh-upload { gap: 20px; }
.mh-upload-empty, .mh-upload-actions { text-align: center; }
.mh-upload-empty .glyphicon { margin: 20px; font-size: 100px; color: var(--mh-blue-800); }
.file-container { margin-bottom: 10px; padding: 5px; }
.file-container:hover { background: var(--mh-paper-2); }
.file-container-preview { margin-right: 10px; }
.file-container-errors { color: var(--mh-danger); font-weight: 700; }
.file-container-actions { margin-right: 10px; display: none; }
.file-container-status { margin-top: 10px; }

/* Pages étroites (ré-initialisation du mot de passe, erreur) */
.mh-narrow { max-width: 600px; margin: 0 auto; padding-bottom: 96px; }
.mh-narrow .mh-card { padding: 28px; }

/* Index du référentiel */
.mh-index { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.mh-index a { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--mh-line); background: var(--mh-paper-2); font-family: var(--mh-font-display); font-weight: 600; font-size: 22px; text-decoration: none; }
.mh-index a:hover { border-color: var(--mh-blue-800); }

/* Associations au référentiel (administration) */
.mh-admin { padding-bottom: 96px; }
.mh-admin-row { margin-bottom: 20px; }
.mh-admin-suggestions { max-height: 200px; overflow-y: auto; }
