/* =====================================================================
   FLSH Meknès – Style MODERNE · « باب المعرفة · La porte du savoir »
   Direction : moderne marocain. Bleu UMI profond, orange FLSH en éclat,
   motif d'étoiles à huit branches, et l'arche comme signature
   (dôme du bandeau d'accueil, bibliothèques en forme de portes).
   ===================================================================== */
@import url('../flsh_commun/fonts/fonts_moderne.css');
@import url('../flsh_commun/flsh_base.css');

:root {
	/* Palette tirée du logo */
	--c-primary: #0e6f96;
	--c-primary-2: #1a93bd;
	--c-night: #062f42;
	--c-accent: #f39200;
	--c-accent-soft: #fff1dc;

	--c-bg: #f2f6f9;
	--c-surface: #ffffff;
	--c-text: #13222b;
	--c-muted: #5a6a74;
	--c-border: #dbe4ea;
	--c-title: #0a2c3c;
	--c-link: #0d6a91;
	--c-link-hover: #084c69;

	--c-nav-text: #13222b;
	--c-btn: #f39200;
	--c-btn-hover: #ffab3d;
	--c-btn-text: #13222b;

	--c-tab-text: #0d6a91;
	--c-tab-current: #0e6f96;
	--c-tab-current-text: #ffffff;
	--c-search-bg: transparent;
	--c-search-text: #e8f5fb;

	--c-footer-bg: #062f42;
	--c-footer-text: #cfe3ec;

	--font-body: "Inter", "Cairo", "Segoe UI", Tahoma, sans-serif;
	--font-title: "Inter", "Cairo", "Segoe UI", Tahoma, sans-serif;
	--radius: 16px;
	--radius-input: 12px;
	--shadow-sm: 0 1px 2px rgba(6, 47, 66, .06);
	--shadow: 0 1px 2px rgba(6, 47, 66, .05), 0 8px 24px rgba(6, 47, 66, .07);
	--shadow-lg: 0 18px 50px rgba(6, 47, 66, .18);
	--logo-height: 58px;
	--side-width: 290px;
	--col-gap: 32px;
	--ease: cubic-bezier(.2, .7, .2, 1);

	/* Motif : étoile à huit branches (khatam) en treillis */
	--motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.1'%3E%3Crect x='18' y='18' width='28' height='28'/%3E%3Crect x='18' y='18' width='28' height='28' transform='rotate(45 32 32)'/%3E%3Ccircle cx='32' cy='32' r='6'/%3E%3Cpath d='M0 32h12M52 32h12M32 0v12M32 52v12M0 0l9 9M64 0l-9 9M0 64l9-9M64 64l-9-9'/%3E%3C/g%3E%3C/svg%3E");
}

/* Arabe : Cairo en tête, corps un peu plus grand */
html[lang=ar] { --font-body: "Cairo", "Inter", Tahoma, sans-serif; --font-title: "Cairo", "Inter", Tahoma, sans-serif; }
html[lang=ar] body#pmbopac { font-size: 17px; }

/* Transitions douces entre les pages (navigateurs récents) */
@view-transition { navigation: auto; }
html { overflow-x: clip; scroll-behavior: smooth; }
::selection { background: var(--c-accent); color: #13222b; }

/* ---------- Grille : une rangée « hero » sous l'en-tête ---------- */
#pmbopac #container {
	grid-template-columns: minmax(0, 1fr) var(--side-width);
	grid-template-areas:
		"intro   intro"
		"hero    hero"
		"mhead   side"
		"content side"
		"footer  footer";
}

/* ---------- En-tête collant et translucide ---------- */
#pmbopac #intro {
	position: sticky;
	top: 0;
	z-index: 60;
	isolation: isolate;
}
#pmbopac #intro::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0 calc(50% - 50vw);
	background: rgba(255, 255, 255, .86);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid rgba(6, 47, 66, .08);
	transition: box-shadow .3s var(--ease);
}
body.flsh-scrolled #intro::before { box-shadow: 0 12px 30px -18px rgba(6, 47, 66, .45); }
#pmbopac #intro #intro_bibli {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 28px;
	padding: 12px 0;
}
#pmbopac #intro #intro_bibli .p1 img.flsh-logo { transition: max-height .3s var(--ease); }
body.flsh-scrolled #intro #intro_bibli .p1 img.flsh-logo { max-height: 44px; }
#pmbopac #intro_bibli .p2 #menuDeroulant { gap: 2px; }
#pmbopac #intro_bibli .p2 #menuDeroulant li a {
	position: relative;
	padding: 8px 14px;
	border-radius: 999px;
	font-weight: 500;
	transition: background .2s, color .2s;
}
#pmbopac #intro_bibli .p2 #menuDeroulant li a::after {
	content: "";
	position: absolute;
	inset-inline: 14px;
	bottom: 3px;
	height: 2px;
	border-radius: 2px;
	background: var(--c-accent);
	transform: scaleX(0);
	transition: transform .25s var(--ease);
}
#pmbopac #intro_bibli .p2 #menuDeroulant li a:hover,
#pmbopac #intro_bibli .p2 #menuDeroulant li a:focus-visible {
	color: var(--c-primary);
	background: #e6f2f8;
	text-decoration: none;
}
#pmbopac #intro_bibli .p2 #menuDeroulant li a:hover::after { transform: scaleX(1); }

/* ---------- HERO d'accueil ---------- */
#flsh-hero {
	grid-area: hero;
	position: relative;
	z-index: 1;
	isolation: isolate;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding: clamp(48px, 8vw, 96px) 20px clamp(96px, 12vw, 150px);
	overflow: hidden;
	color: #fff;
	background:
		radial-gradient(1100px 520px at 88% -12%, rgba(243, 146, 0, .38), transparent 62%),
		radial-gradient(900px 620px at 6% 112%, rgba(26, 147, 189, .65), transparent 60%),
		linear-gradient(160deg, var(--c-night) 0%, #0a5376 52%, var(--c-primary) 100%);
}
/* motif qui dérive lentement, estompé vers les bords */
#flsh-hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -64px;
	background: var(--motif) 0 0 / 64px 64px repeat;
	opacity: .11;
	-webkit-mask-image: radial-gradient(ellipse 70% 80% at 50% 40%, #000 30%, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 80% at 50% 40%, #000 30%, transparent 75%);
	animation: flsh-drift 90s linear infinite;
}
/* le dôme : l'arche qui ferme le bandeau */
#flsh-hero::after {
	content: "";
	position: absolute;
	inset: auto -12% -2px;
	height: clamp(40px, 7vw, 90px);
	background: var(--c-bg);
	border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
@keyframes flsh-drift { to { transform: translate3d(64px, 64px, 0); } }

.flsh-hero-inner {
	max-width: 860px;
	margin: 0 auto;
	text-align: center;
	animation: flsh-rise .8s var(--ease) both;
}
@keyframes flsh-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.flsh-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	padding: 6px 14px;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #ffe1b3;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 999px;
}
html[lang=ar] .flsh-eyebrow { letter-spacing: 0; text-transform: none; font-size: .95rem; }
.flsh-eyebrow::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--c-accent);
	box-shadow: 0 0 0 4px rgba(243, 146, 0, .25);
}
#pmbopac .flsh-hero-title {
	margin: 0 0 14px;
	font-size: clamp(2.2rem, 5.2vw, 3.9rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -.025em;
	color: #fff;
	text-wrap: balance;
}
html[lang=ar] #pmbopac .flsh-hero-title { letter-spacing: 0; line-height: 1.35; }
.flsh-hero-sub {
	max-width: 620px;
	margin: 0 auto 34px;
	font-size: clamp(1rem, 1.6vw, 1.18rem);
	color: rgba(232, 245, 251, .86);
	text-wrap: pretty;
}

/* Recherche dans le hero : verre dépoli */
#flsh-hero #search { margin: 0 auto; text-align: start; }
#flsh-hero #search ul.search_tabs { justify-content: center; margin-bottom: 12px; }
#flsh-hero #search ul.search_tabs li a {
	padding: 7px 16px;
	font-size: .92rem;
	color: rgba(255, 255, 255, .85);
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 999px;
}
#flsh-hero #search ul.search_tabs li a:hover { background: rgba(255, 255, 255, .16); color: #fff; text-decoration: none; }
#pmbopac #flsh-hero #search ul.search_tabs li#current,
#pmbopac #flsh-hero #search ul.search_tabs li#current a { background: #fff; color: var(--c-night); border-color: #fff; }
#pmbopac #flsh-hero #search form[name=search_input] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px;
	background: rgba(255, 255, 255, .10);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 22px;
	box-shadow: 0 24px 60px -20px rgba(0, 0, 0, .45);
}
#pmbopac #flsh-hero #search select#typdoc_select {
	flex: 0 0 auto;
	margin: 0;
	padding: 14px 14px;
	color: #fff;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
}
#pmbopac #flsh-hero #search select#typdoc_select option { color: var(--c-text); }
#pmbopac #flsh-hero #search input.text_query {
	flex: 1 1 320px;
	width: auto;
	margin: 0;
	padding: 16px 22px;
	font-size: 1.12rem;
	color: var(--c-text);
	background: #fff;
	border: 0;
	border-radius: 999px;
	box-shadow: 0 0 0 0 rgba(243, 146, 0, 0);
	transition: box-shadow .2s;
}
#pmbopac #flsh-hero #search input.text_query:focus { outline: 0; box-shadow: 0 0 0 4px rgba(243, 146, 0, .55); }
#pmbopac #flsh-hero #search input.boutonrechercher {
	flex: 0 0 auto;
	padding: 16px 28px;
	font-size: 1.02rem;
	font-weight: 700;
	border-radius: 999px;
	box-shadow: 0 10px 24px -8px rgba(243, 146, 0, .7);
	transition: transform .15s var(--ease), background .2s;
}
#pmbopac #flsh-hero #search input.boutonrechercher:hover { transform: translateY(-1px); }
#pmbopac #flsh-hero #search input.button_search_help {
	flex: 0 0 auto;
	padding: 14px 18px;
	color: #fff;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
}
#pmbopac #flsh-hero #search #simple_search_zone { flex: 1 0 100%; margin: 4px 0 0; text-align: center; }
#pmbopac #flsh-hero #search #simple_search_zone .notice-heada { color: rgba(255, 255, 255, .8); font-size: .9rem; }
#pmbopac #flsh-hero #search #simple_search_zone img { filter: brightness(0) invert(1); opacity: .8; vertical-align: middle; }
#pmbopac #flsh-hero #zsimplesChild { width: 100% !important; margin: 12px 0 0 !important; text-align: start; color: #fff; }
#pmbopac #flsh-hero #zsimplesChild label { color: #fff; }

/* Raccourcis */
.flsh-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 26px 0 0; }
#pmbopac .flsh-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	font-size: .94rem;
	font-weight: 500;
	color: #fff;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 999px;
	transition: background .2s, color .2s, transform .2s var(--ease);
}
#pmbopac .flsh-chip:hover, #pmbopac .flsh-chip:focus-visible {
	color: var(--c-night);
	background: #fff;
	text-decoration: none;
	transform: translateY(-2px);
}
.flsh-chip-ico {
	display: inline-grid;
	place-items: center;
	width: 22px;
	height: 22px;
	font-size: .8rem;
	border-radius: 50%;
	background: rgba(243, 146, 0, .9);
	color: #13222b;
}

/* Chiffres clés */
.flsh-stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px clamp(24px, 5vw, 56px);
	margin: 38px 0 0;
	padding: 0;
	list-style: none;
}
.flsh-stats li { display: flex; flex-direction: column; align-items: center; }
.flsh-stats strong { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; letter-spacing: -.02em; color: #fff; }
.flsh-stats span { font-size: .88rem; color: rgba(232, 245, 251, .75); }
html[lang=ar] .flsh-stats strong { letter-spacing: 0; }

/* Sur l'accueil, le titre est dans le hero */
body.flsh-home #main_header { display: none; }
body.flsh-home #main_hors_footer, body.flsh-home #bandeau { position: relative; z-index: 2; margin-top: -36px; }

/* ---------- Titres de page et de section ---------- */
#pmbopac #main_header { padding: 30px 0 16px; }
#pmbopac #main_header h3 { font-size: 1.9rem; font-weight: 800; letter-spacing: -.015em; }
html[lang=ar] #pmbopac #main_header h3 { letter-spacing: 0; }
#pmbopac .flsh-section-title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 34px 0 6px;
	font-size: 1.35rem;
	font-weight: 800;
}
#pmbopac .flsh-section-title::before {
	content: "";
	width: 14px;
	height: 14px;
	background: var(--c-accent);
	transform: rotate(45deg);
	border-radius: 3px;
}

/* ---------- Colonne latérale : cartes ---------- */
#pmbopac #bandeau { padding-top: 22px; }
body.flsh-home #pmbopac #bandeau, body.flsh-home #bandeau { padding-top: 0; }
#pmbopac #bandeau > div {
	padding: 20px;
	border: 1px solid rgba(6, 47, 66, .06);
	box-shadow: var(--shadow);
}
#pmbopac #bandeau h3, #pmbopac #bandeau #accueil #lang_select h3 { font-size: 1rem; font-weight: 700; }
#pmbopac #bandeau #connexion { position: relative; overflow: hidden; }
#pmbopac #bandeau #connexion::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, var(--c-primary), var(--c-primary-2), var(--c-accent));
}
#pmbopac #bandeau input.login, #pmbopac #bandeau input.password, #pmbopac #bandeau select {
	padding: 10px 12px;
	background: #f7fafc;
	transition: border-color .2s, box-shadow .2s, background .2s;
}
#pmbopac #bandeau input.login:focus, #pmbopac #bandeau input.password:focus, #pmbopac #bandeau select:focus {
	outline: 0;
	background: #fff;
	border-color: var(--c-primary-2);
	box-shadow: 0 0 0 4px rgba(26, 147, 189, .18);
}
#pmbopac #bandeau #connexion input.bouton { width: 100%; margin-top: 4px; padding: 11px; }

/* ---------- Contenu ---------- */
#pmbopac #infopages > p {
	margin: 0 0 6px;
	padding: 14px 18px;
	font-size: .95rem;
	color: var(--c-text);
	background: var(--c-accent-soft);
	border-inline-start: 4px solid var(--c-accent);
	border-radius: 12px;
}

/* Les bibliothèques en « portes » (arc outrepassé) */
#pmbopac table.flsh-portes,
#pmbopac table.flsh-portes tbody { display: block; }
#pmbopac table.flsh-portes tr {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 20px;
	padding: 14px 0 0;
}
#pmbopac table.flsh-portes td {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 250px;
	padding: 26px 22px;
	overflow: hidden;
	text-align: center;
	color: #fff;
	background:
		var(--motif) center 30% / 46px 46px repeat,
		linear-gradient(170deg, #0a5376, var(--c-night));
	background-blend-mode: soft-light, normal;
	border-radius: 999px 999px 18px 18px;
	box-shadow: var(--shadow);
	transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
#pmbopac table.flsh-portes td:nth-child(2n) {
	background:
		var(--motif) center 30% / 46px 46px repeat,
		linear-gradient(170deg, #c86f00, #7a3d00);
	background-blend-mode: soft-light, normal;
}
/* l'ouverture lumineuse de la porte */
#pmbopac table.flsh-portes td::before {
	content: "";
	position: absolute;
	inset: 22px 22px auto;
	height: 120px;
	border-radius: 999px 999px 6px 6px;
	background: radial-gradient(ellipse at 50% 100%, rgba(255, 220, 160, .55), rgba(255, 255, 255, .06) 70%);
	border: 1px solid rgba(255, 255, 255, .25);
	transition: opacity .35s;
}
#pmbopac table.flsh-portes td:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
#pmbopac table.flsh-portes td > a:first-child,
#pmbopac table.flsh-portes td > br { display: none; }
#pmbopac table.flsh-portes td > a:last-of-type { color: #fff; font-size: 1.12rem; text-decoration: none; }
#pmbopac table.flsh-portes td > a:last-of-type::after { content: ""; position: absolute; inset: 0; }
#pmbopac table.flsh-portes td > a:last-of-type b { font-weight: 700; }

/* ---------- Résultats de recherche ---------- */
#pmbopac #resultatrech h3.searchResult-search { font-size: 1.15rem; font-weight: 600; }
#pmbopac #searchResult-nbResults b { color: var(--c-primary); font-size: 1.4rem; }
#pmbopac #resultatrech_liste > span { display: inline-block; margin: 4px 6px 10px 0; font-size: .9rem; }
#pmbopac .notice-parent {
	position: relative;
	margin: 14px 0 0;
	padding: 16px 18px;
	background: var(--c-surface);
	border: 1px solid rgba(6, 47, 66, .06);
	border-radius: 14px;
	box-shadow: var(--shadow-sm);
	transition: box-shadow .25s, transform .25s var(--ease);
}
#pmbopac .notice-parent:hover { box-shadow: var(--shadow); transform: translateY(-1px); }
#pmbopac .notice-parent::before {
	content: "";
	position: absolute;
	inset-block: 14px;
	inset-inline-start: 0;
	width: 4px;
	border-radius: 0 4px 4px 0;
	background: var(--c-primary-2);
}
html[lang=ar] #pmbopac .notice-parent::before { border-radius: 4px 0 0 4px; }
#pmbopac .notice-parent .header_title { font-size: 1.08rem; font-weight: 700; color: var(--c-title); }
#pmbopac .notice-parent .header_authors { color: var(--c-muted); }
#pmbopac .notice-child {
	margin: 4px 0 0;
	padding: 16px 18px;
	background: var(--c-surface);
	border-radius: 14px;
	box-shadow: var(--shadow-sm);
}
#pmbopac ul.onglets_isbd_public { display: flex; gap: 6px; margin: 0 0 12px; padding: 0; list-style: none; }
#pmbopac ul.onglets_isbd_public li { float: none; margin: 0; padding: 0; background: none; border: 0; }
#pmbopac ul.onglets_isbd_public li a { display: block; padding: 5px 12px; font-size: .85rem; border-radius: 999px; }
#pmbopac ul.onglets_isbd_public li.isbd_public_active a { color: #fff; background: var(--c-primary); }
#pmbopac ul.onglets_isbd_public li.isbd_public_inactive a { color: var(--c-link); background: #eaf3f8; }
#pmbopac .notice-child td.bg-grey, #pmbopac .notice-child td.align_right {
	color: var(--c-muted);
	background: transparent;
	font-size: .88rem;
	vertical-align: top;
}
#pmbopac .notice-child .vignetteimg { border-radius: 8px; box-shadow: var(--shadow); }

/* Exemplaires : tableau aéré et disponibilité en pastilles */
#pmbopac table.exemplaires, #pmbopac .notice-child table:has(.item_expl) {
	width: 100%;
	margin-top: 12px;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--c-border);
	border-radius: 12px;
	overflow: hidden;
	font-size: .9rem;
}
#pmbopac .notice-child table:has(.item_expl) th {
	padding: 9px 10px;
	text-align: start;
	font-weight: 600;
	color: var(--c-title);
	background: #eef5f9;
}
#pmbopac tr.item_expl td { padding: 8px 10px; border-top: 1px solid var(--c-border); background: #fff; }
#pmbopac tr.item_expl.odd td { background: #fafcfd; }
#pmbopac tr.item_expl td.expl_situation { white-space: nowrap; }
#pmbopac tr.expl_available td.expl_situation,
#pmbopac tr.expl_out td.expl_situation { font-weight: 600; }
#pmbopac tr.expl_available td.expl_situation { color: #11713a; }
#pmbopac tr.expl_out td.expl_situation { color: #a35400; }
#pmbopac tr.expl_available td.expl_situation::before,
#pmbopac tr.expl_out td.expl_situation::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-inline-end: 6px;
	border-radius: 50%;
	vertical-align: middle;
}
#pmbopac tr.expl_available td.expl_situation::before { background: #1fa45a; box-shadow: 0 0 0 3px rgba(31, 164, 90, .18); }
#pmbopac tr.expl_out td.expl_situation::before { background: var(--c-accent); box-shadow: 0 0 0 3px rgba(243, 146, 0, .2); }

/* Pagination */
#pmbopac #navbar .navbar { margin: 22px 0; text-align: center; }
#pmbopac #navbar .navbar a, #pmbopac #navbar .navbar strong, #pmbopac #navbar .navbar input {
	display: inline-block;
	min-width: 34px;
	margin: 2px;
	padding: 6px 10px;
	border-radius: 10px;
}
#pmbopac #navbar .navbar a { background: #fff; box-shadow: var(--shadow-sm); }
#pmbopac #navbar .navbar strong { color: #fff; background: var(--c-primary); }

/* ---------- Pied de page bleu nuit ---------- */
#pmbopac #footer {
	position: relative;
	isolation: isolate;
	margin-top: 64px;
	padding: 44px 0 26px;
	color: var(--c-footer-text);
	background: transparent;
	border: 0;
}
#pmbopac #footer::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0 calc(50% - 50vw);
	background:
		var(--motif) center / 64px 64px repeat,
		var(--c-footer-bg);
	background-blend-mode: soft-light, normal;
}
#pmbopac #footer::after {
	content: "";
	position: absolute;
	inset: -1px calc(50% - 50vw) auto;
	height: 4px;
	background: linear-gradient(90deg, var(--c-primary), var(--c-primary-2) 50%, var(--c-accent));
}
#pmbopac #footer a { color: #fff; }
#pmbopac #footer a:hover { color: #ffd08a; }
.flsh-footer-brand {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 28px;
	margin: 0 0 26px;
	padding: 0 0 26px;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.flsh-footer-logo { display: inline-block; padding: 12px 16px; background: #fff; border-radius: 14px; }
.flsh-footer-logo img { display: block; height: 52px; width: auto; }
.flsh-footer-text { display: flex; flex-direction: column; gap: 2px; line-height: 1.5; }
.flsh-footer-text strong { color: #fff; font-size: 1.05rem; }
.flsh-footer-text address { margin-top: 6px; font-style: normal; font-size: .9rem; color: rgba(207, 227, 236, .8); }

/* ---------- Accessibilité et mobile ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
}
@media (max-width: 860px) {
	#pmbopac #container { grid-template-areas: "intro" "hero" "mhead" "content" "side" "footer"; }
	#pmbopac #intro { position: static; }
	#pmbopac #intro #intro_bibli { justify-content: center; }
	#flsh-hero { padding-inline: 16px; }
	#pmbopac #flsh-hero #search form[name=search_input] { padding: 10px; border-radius: 18px; }
	#pmbopac #flsh-hero #search select#typdoc_select { flex: 1 1 100%; }
	#pmbopac #flsh-hero #search input.boutonrechercher { flex: 1 1 auto; }
	body.flsh-home #main_hors_footer, body.flsh-home #bandeau { margin-top: -20px; }
	.flsh-footer-brand { justify-content: center; text-align: center; }
}

/* =====================================================================
   FINITIONS (reprise du 11/11) : corrections genbib, pages intérieures,
   disciplines, apparition au défilement
   ===================================================================== */
/* Héritages genbib à neutraliser */
#pmbopac input, #pmbopac button { text-shadow: none !important; }
#pmbopac #intro_bibli .p2 #menuDeroulant li,
#pmbopac #intro_bibli .p2 #menuDeroulant li:hover { background: transparent !important; }
#pmbopac #main_header, #pmbopac #main_header h3 { background: transparent; }
#pmbopac #main_header h3 { color: var(--c-title); }
#pmbopac #location, #pmbopac #location-container { margin: 0; padding: 0; background: transparent; border: 0; }
#pmbopac #location h3, #pmbopac #location h3 span { background: transparent; }
#pmbopac.flsh-home #navigator, #pmbopac.flsh-home #intro_message { display: none; }
#pmbopac .flsh-ico-xs { width: 13px; height: 13px; }

/* Mot de passe : l'œil dans le champ, bouton OK en dessous */
#pmbopac #bandeau .myform-password-text-visually { position: relative; }
#pmbopac #bandeau .myform-password-text-visually button {
	position: absolute;
	inset-inline-end: 8px;
	top: 50%;
	transform: translateY(-50%);
	padding: 4px 6px;
	color: var(--c-muted);
	background: transparent;
	border: 0;
}
#pmbopac #bandeau #connexion input.bouton { display: block; color: #fff; background: var(--c-primary); }
#pmbopac #bandeau #connexion input.bouton:hover { background: #0a5376; }

/* Recherche sur les pages intérieures : carte blanche lisible */
#pmbopac:not(.flsh-home) #search ul.search_tabs { margin-bottom: 10px; }
#pmbopac:not(.flsh-home) #search ul.search_tabs li a { border-radius: 999px; background: #fff; border: 1px solid var(--c-border); font-size: .92rem; }
#pmbopac:not(.flsh-home) #search ul.search_tabs li#current a { color: #fff; background: var(--c-primary); border-color: var(--c-primary); }
#pmbopac:not(.flsh-home) #search form[name=search_input] {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 14px;
	background: #fff;
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}
#pmbopac:not(.flsh-home) #search form[name=search_input] > br { display: none; }
#pmbopac:not(.flsh-home) #search select#typdoc_select { margin: 0; }
#pmbopac:not(.flsh-home) #search input.text_query { flex: 1 1 280px; width: auto; margin: 0; border-radius: 999px; }
#pmbopac:not(.flsh-home) #search input.boutonrechercher, #pmbopac:not(.flsh-home) #search input.button_search_help { border-radius: 999px; }
#pmbopac:not(.flsh-home) #search #simple_search_zone { flex: 1 0 100%; margin: 0; }
#pmbopac:not(.flsh-home) #search #simple_search_zone,
#pmbopac:not(.flsh-home) #search #simple_search_zone .notice-heada,
#pmbopac:not(.flsh-home) #search #zsimplesChild label { color: var(--c-muted); }
#pmbopac:not(.flsh-home) #main_hors_footer { padding-top: 8px; }

/* Explorer par discipline */
#pmbopac #flsh-explore { margin: 0 0 30px; }
#pmbopac #flsh-explore .flsh-section-title { margin-top: 0; }
#pmbopac .flsh-section-sub { margin: 0 0 16px; color: var(--c-muted); }
#pmbopac .flsh-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(185px, 1fr)); gap: 12px; }
#pmbopac .flsh-tile {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	font-weight: 600;
	color: var(--c-title);
	background: var(--c-surface);
	border: 1px solid rgba(6, 47, 66, .07);
	border-radius: 14px;
	box-shadow: var(--shadow-sm);
	transition: transform .2s var(--ease), box-shadow .2s, border-color .2s;
}
#pmbopac .flsh-tile:hover, #pmbopac .flsh-tile:focus-visible {
	color: var(--c-title);
	text-decoration: none;
	transform: translateY(-3px);
	border-color: rgba(14, 111, 150, .3);
	box-shadow: var(--shadow);
}
#pmbopac .flsh-tile-ico {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	color: var(--c-primary);
	background: linear-gradient(135deg, #e3f2f8, #f3f9fc);
	border-radius: 12px;
	transition: color .2s, background .2s;
}
#pmbopac .flsh-tile:nth-child(even) .flsh-tile-ico { color: #b86b00; background: linear-gradient(135deg, var(--c-accent-soft), #fff8ee); }
#pmbopac .flsh-tile:hover .flsh-tile-ico { color: #fff; background: linear-gradient(135deg, var(--c-primary), var(--c-primary-2)); }
#pmbopac .flsh-tile:nth-child(even):hover .flsh-tile-ico { background: linear-gradient(135deg, #d97c00, var(--c-accent)); }
#pmbopac .flsh-ico { width: 22px; height: 22px; }
#pmbopac .flsh-tile-label { flex: 1; line-height: 1.3; }
#pmbopac .flsh-tile-arrow { width: 18px; height: 18px; opacity: 0; color: var(--c-primary); transform: translateX(-6px); transition: opacity .2s, transform .2s var(--ease); }
#pmbopac .flsh-tile:hover .flsh-tile-arrow { opacity: 1; transform: none; }
html[lang=ar] #pmbopac .flsh-tile-arrow { transform: scaleX(-1) translateX(-6px); }
html[lang=ar] #pmbopac .flsh-tile:hover .flsh-tile-arrow { transform: scaleX(-1); }

/* Pied de page : liens d'origine en ligne, discrets */
#pmbopac #footer > span { display: inline-block; margin-inline-end: 18px; font-size: .88rem; }
#pmbopac #footer .lien_pmb_footer img { display: none; }

/* Apparition au défilement (classes posées par zz_flsh.js) */
#pmbopac .flsh-reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
#pmbopac .flsh-tile.flsh-reveal { transition-delay: calc(var(--i, 0) * 45ms); }
#pmbopac .flsh-reveal.is-in { opacity: 1; transform: none; }
#pmbopac table.flsh-portes td.flsh-reveal.is-in:hover { transform: translateY(-6px); }

@media (max-width: 860px) {
	#pmbopac .flsh-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Correctifs de mise en page (vérifiés par captures) ---------- */
/* Le héros fait 100vw : sans border-box, ses marges intérieures débordaient de 40px */
#pmbopac #flsh-hero { box-sizing: border-box; }
/* La colonne latérale couvre deux rangées : c'est la rangée du contenu qui absorbe la hauteur, pas celle du titre */
#pmbopac #container { grid-template-rows: auto auto auto 1fr auto; }
@media (max-width: 860px) { #pmbopac #container { grid-template-rows: none; } }

/* « Rechercher dans… » : ne pas hériter du style des cartes de résultats */
#pmbopac #search .notice-parent {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	transform: none;
}
#pmbopac #search .notice-parent::before { display: none; }
#pmbopac #search .notice-child { padding: 10px 0 0; background: transparent; box-shadow: none; }

/* Panneau de recherche du héros : type de document + champ + bouton sur une ligne */
#pmbopac #flsh-hero #search input.text_query { order: 1; flex: 1 1 420px; }
#pmbopac #flsh-hero #search input.boutonrechercher { order: 2; }
#pmbopac #flsh-hero #search .flsh-break { order: 3; flex-basis: 100%; height: 0; }
#pmbopac #flsh-hero #search select#typdoc_select { order: 4; padding: 8px 14px; font-size: .9rem; }
#pmbopac #flsh-hero #search input.button_search_help { order: 5; padding: 8px 16px; font-size: .9rem; }
#pmbopac #flsh-hero #search #simple_search_zone { order: 6; flex: 1 1 auto; margin: 0; text-align: start; }
#pmbopac #flsh-hero #search form[name=search_input] { justify-content: flex-start; }

/* Connexion : le champ mot de passe garde toute sa hauteur */
#pmbopac #bandeau .myform-password-text-visually { display: block; height: auto; margin: 0 0 10px; }
#pmbopac #bandeau .myform-password-text-visually input.password { margin: 4px 0 0; }
/* Le champ a un attribut size : sans min-width:0 il refusait de partager la ligne avec le bouton */
#pmbopac #search input.text_query { min-width: 0; }
/* genbib place le bouton OK en absolu : on le remet dans le flux */
#pmbopac #bandeau #login_form input.bouton { position: static !important; inset: auto; }
#pmbopac #bandeau #login_form input.bouton { margin-inline: 0; }

/* ---------- Pages intérieures : titre, onglets de résultats, facettes ---------- */
#pmbopac #main_header { height: auto !important; min-height: 0; }
#pmbopac #main_header h3 { color: var(--c-title) !important; }
#pmbopac #resultatrech ul.search_tabs, #pmbopac ul#search_tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 16px; padding: 0; list-style: none; border: 0; }
#pmbopac ul#search_tabs li { float: none; margin: 0; padding: 0; background: none !important; border: 0; }
#pmbopac ul#search_tabs li a, #pmbopac ul#search_tabs li span {
	display: block; padding: 7px 16px; font-size: .92rem; color: var(--c-link);
	background: #fff; border: 1px solid var(--c-border); border-radius: 999px;
}
#pmbopac ul#search_tabs li.current a, #pmbopac ul#search_tabs li.current span { color: #fff; background: var(--c-primary); border-color: var(--c-primary); }
#pmbopac #facette table, #pmbopac #facette_wrapper table { width: 100%; border-collapse: collapse; }
#pmbopac #facette th, #pmbopac #facette_wrapper th {
	padding: 8px 10px; font-size: .85rem; font-weight: 700; letter-spacing: .02em; text-align: start;
	color: var(--c-title); background: #eef5f9 !important; border: 0; border-radius: 8px;
}
#pmbopac #facette td { padding: 3px 4px; font-size: .9rem; background: transparent; }
#pmbopac #facette input.bouton, #pmbopac #facette_wrapper input.bouton { padding: 7px 16px; }
#pmbopac #bandeau > div:empty { display: none; }
#pmbopac #resultatrech hr, #pmbopac #main_hors_footer hr { border: 0; border-top: 1px solid var(--c-border); }
/* genbib met le titre en absolu, semi-transparent et décalé : on le remet dans le flux */
#pmbopac #main_header h3 { position: static; opacity: 1; filter: none; margin: 0; top: auto; z-index: auto; }

/* ---------- Notice détaillée ---------- */
#pmbopac td.bg-grey, #pmbopac .bg-grey {
	color: var(--c-muted) !important; background: transparent !important;
	font-size: .88rem; font-weight: 600; vertical-align: top; padding: 6px 12px 6px 0; padding-inline: 0 12px;
}
#pmbopac td.bg-grey + td, #pmbopac .notice-child td { padding: 6px 0; border-bottom: 1px solid #edf2f5; }
#pmbopac table.exemplaires th, #pmbopac .exemplaires th, #pmbopac tr.expl_header th, #pmbopac th.expl_header_expl_cb,
#pmbopac table:has(tr.item_expl) th {
	padding: 9px 10px; text-align: start; font-weight: 600; color: var(--c-title); background: #eef5f9 !important; border: 0;
}
#pmbopac img.flsh-noimg { display: none !important; }

/* Mobile : l'en-tête n'est plus collant, mais reste le repère de son fond flou */
@media (max-width: 860px) {
	#pmbopac #intro { position: relative; }
	#pmbopac #intro #intro_bibli .p1 img.flsh-logo { max-height: 46px; }
	#pmbopac #intro_bibli .p2 #menuDeroulant { justify-content: center; }
	#pmbopac #intro_bibli .p2 #menuDeroulant li a { padding: 6px 10px; font-size: .92rem; }
	#pmbopac #flsh-hero #search ul.search_tabs li:not(#current) { display: none; }
	#pmbopac #flsh-hero #search input.text_query { flex-basis: 100%; }
	#pmbopac #flsh-hero #search input.boutonrechercher { flex: 1 1 100%; }
	.flsh-stats { gap: 14px 28px; }
}
@media (max-width: 860px) {
	#pmbopac #container { grid-template-columns: minmax(0, 1fr); }
	body.flsh-home #bandeau { margin-top: 0; }
}
@media (max-width: 860px) {
	#pmbopac table.flsh-portes tr { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	#pmbopac table.flsh-portes td { min-height: 190px; padding: 18px 12px; }
	#pmbopac table.flsh-portes td::before { inset: 14px 14px auto; height: 80px; }
}

/* ---------- Champs de saisie de toutes les recherches (multi-critères, termes…) ---------- */
#pmbopac #main_hors_footer input[type=text], #pmbopac #main_hors_footer input:not([type]),
#pmbopac #main_hors_footer input[type=search], #pmbopac #main_hors_footer input[type=number],
#pmbopac #main_hors_footer input[type=date], #pmbopac #main_hors_footer input[type=email],
#pmbopac #main_hors_footer textarea, #pmbopac #main_hors_footer select {
	box-sizing: border-box;
	max-width: 100%;
	min-height: 42px;
	padding: 8px 14px;
	font: inherit;
	font-size: 1rem;
	color: var(--c-text);
	background: #fff;
	border: 1px solid #c9d6de;
	border-radius: var(--radius-input);
	transition: border-color .2s, box-shadow .2s;
}
#pmbopac #main_hors_footer select { padding-inline-end: 34px; }
#pmbopac #main_hors_footer input[type=text]:focus, #pmbopac #main_hors_footer input:not([type]):focus,
#pmbopac #main_hors_footer textarea:focus, #pmbopac #main_hors_footer select:focus {
	outline: 0; border-color: var(--c-primary-2); box-shadow: 0 0 0 4px rgba(26, 147, 189, .18);
}
#pmbopac #main_hors_footer input[type=checkbox], #pmbopac #main_hors_footer input[type=radio] { min-height: 0; accent-color: var(--c-primary); }
/* Recherche par termes : champ large, cadre de navigation des termes en carte */
#pmbopac form[name=term_search_form] input[type=text], #pmbopac #term_search_form input[type=text] { width: min(100%, 460px); }
#pmbopac #main_hors_footer iframe { max-width: 100%; background: #fff; border: 1px solid var(--c-border) !important; border-radius: 12px; }
/* Recherche multi-critères : lignes de critères aérées */
#pmbopac form[name=search_form] table td { padding: 6px 8px 6px 0; vertical-align: middle; }
#pmbopac form[name=search_form] .bouton, #pmbopac form[name=search_form] input[type=button] { margin: 4px; }
#pmbopac #frame_term_search { height: 380px !important; }

/* Connexion : aide code Massar / CIN */
#pmbopac #bandeau .flsh-login-hint { margin: 10px 0 0; font-size: .82rem; line-height: 1.45; color: var(--c-muted); }
#pmbopac #bandeau .flsh-login-forgot { margin: 8px 0 0; font-size: .85rem; color: var(--c-muted); }
