/* =========================================================
   Template "floriane" — Floriane Reboh auteure
   Propre, léger, moderne. Style maison : Aladin (titres)
   + Yrsa (corps), blanc / gris foncé / bleu.
   ========================================================= */

:root {
	--flo-text:        #33312c;
	--flo-bg:          #faf7f1;   /* papier chaud */
	--flo-surface:     #fffdf9;   /* cartes */
	--flo-soft:        #f3eee3;   /* fond doux alterné */
	--flo-accent:      #0345bf;   /* bleu (logo, liens) */
	--flo-accent-2:    #2f6bdd;   /* bleu clair (hover) */
	--flo-navy:        #1c2f4a;   /* encre marine : titres, barres */
	--flo-navy-2:      #27405f;
	--flo-gold:        #b3852c;   /* or : accents, filets */
	--flo-gold-soft:   #d9b45f;
	--flo-bar:         #1c2f4a;   /* barre haut + footer (marine) */
	--flo-bar-text:    #f0ead9;
	--flo-muted:       #7a7466;
	--flo-border:      #e7dfcf;

	--flo-font-body:   "Yrsa", Georgia, "Times New Roman", serif;
	--flo-font-title:  "Cormorant Garamond", Georgia, serif;
	--flo-font-brand:  "Aladin", "Yrsa", cursive;

	--flo-container:   1200px;
	--flo-gap:         1.5rem;
	--flo-radius:      14px;
	--flo-radius-sm:   8px;

	--flo-shadow:      0 2px 4px rgba(28, 47, 74, .05), 0 14px 34px rgba(28, 47, 74, .10);
	--flo-shadow-sm:   0 1px 2px rgba(28, 47, 74, .05), 0 6px 18px rgba(28, 47, 74, .06);
	--flo-ease:        .3s cubic-bezier(.4, 0, .2, 1);
}

/* ----- Font Awesome : @font-face + alias icon-* Joomla -----
   Le CSS vendor (fontawesome.min.css) définit les classes fa-* mais ni les
   @font-face ni les alias icon-* (Cassiopeia les compile dans son propre CSS). */
@font-face {
	font-family: "Font Awesome 6 Free";
	font-style: normal;
	font-weight: 900;
	font-display: block;
	src: url("../../../media/vendor/fontawesome-free/webfonts/fa-solid-900.woff2") format("woff2"),
	     url("../../../media/vendor/fontawesome-free/webfonts/fa-solid-900.ttf") format("truetype");
}
@font-face {
	font-family: "Font Awesome 6 Free";
	font-style: normal;
	font-weight: 400;
	font-display: block;
	src: url("../../../media/vendor/fontawesome-free/webfonts/fa-regular-400.woff2") format("woff2"),
	     url("../../../media/vendor/fontawesome-free/webfonts/fa-regular-400.ttf") format("truetype");
}
@font-face {
	font-family: "Font Awesome 6 Brands";
	font-style: normal;
	font-weight: 400;
	font-display: block;
	src: url("../../../media/vendor/fontawesome-free/webfonts/fa-brands-400.woff2") format("woff2"),
	     url("../../../media/vendor/fontawesome-free/webfonts/fa-brands-400.ttf") format("truetype");
}

/* Familles / graisses des classes fa-* (absentes du CSS vendor) */
.fa,
.fas,
.fa-solid {
	font-family: "Font Awesome 6 Free" !important;
	font-weight: 900 !important;
	font-style: normal;
	display: inline-block;
	line-height: 1;
	/* compense le glyphe FA posé haut dans sa boîte (valeur officielle FA) */
	vertical-align: -0.125em;
	-webkit-font-smoothing: antialiased;
	text-rendering: auto;
}
.far,
.fa-regular {
	font-family: "Font Awesome 6 Free" !important;
	font-weight: 400 !important;
	font-style: normal;
	display: inline-block;
	line-height: 1;
	vertical-align: -0.125em;
	-webkit-font-smoothing: antialiased;
	text-rendering: auto;
}
.fab,
.fa-brands {
	font-family: "Font Awesome 6 Brands" !important;
	font-weight: 400 !important;
	font-style: normal;
	display: inline-block;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	text-rendering: auto;
}
/* alias FA4/5 encore utilisés par HikaShop */
.fa-shopping-cart::before { content: "\f07a"; }
.fa-refresh::before { content: "\f021"; }
.fa-trash-alt::before { content: "\f2ed"; }
.fa-save::before { content: "\f0c7"; }

/* Alias icon-* utilisés par Joomla et ses extensions */
[class^="icon-"],
[class*=" icon-"] {
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-style: normal;
	display: inline-block;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	text-rendering: auto;
}
.icon-eye::before { content: "\f06e"; }
.icon-eye-blocked::before, .icon-eye-slash::before, .icon-eye-close::before { content: "\f070"; }
.icon-search::before { content: "\f002"; }
.icon-user::before { content: "\f007"; }
.icon-lock::before, .icon-locked::before { content: "\f023"; }
.icon-home::before { content: "\f015"; }
.icon-cart::before, .icon-basket::before { content: "\f07a"; }
.icon-mail::before, .icon-envelope::before { content: "\f0e0"; }
.icon-phone::before { content: "\f095"; }
.icon-calendar::before { content: "\f133"; }
.icon-edit::before, .icon-pencil::before, .icon-pencil-2::before { content: "\f044"; }
.icon-trash::before, .icon-delete::before, .icon-remove::before, .icon-cancel-2::before { content: "\f2ed"; }
.icon-plus::before, .icon-new::before { content: "\2b"; }
.icon-minus::before { content: "\f068"; }
.icon-refresh::before, .icon-loop::before, .icon-sync::before { content: "\f2f1"; }
.icon-check::before, .icon-checkmark::before, .icon-ok::before, .icon-publish::before { content: "\f00c"; }
.icon-times::before, .icon-cancel::before, .icon-unpublish::before { content: "\f00d"; }
.icon-arrow-left::before, .icon-chevron-left::before, .icon-previous::before { content: "\f053"; }
.icon-arrow-right::before, .icon-chevron-right::before, .icon-next::before { content: "\f054"; }
.icon-arrow-up::before, .icon-chevron-up::before, .icon-uparrow::before { content: "\f077"; }
.icon-arrow-down::before, .icon-chevron-down::before, .icon-downarrow::before { content: "\f078"; }
.icon-download::before { content: "\f019"; }
.icon-upload::before { content: "\f093"; }
.icon-print::before, .icon-printer::before { content: "\f02f"; }
.icon-star::before, .icon-featured::before { content: "\f005"; }
.icon-star-empty::before { content: "\f005"; font-weight: 400; }
.icon-heart::before { content: "\f004"; }
.icon-info::before, .icon-info-circle::before { content: "\f05a"; }
.icon-warning::before, .icon-warning-2::before, .icon-notification::before { content: "\f071"; }
.icon-question::before, .icon-help::before { content: "\f059"; }
.icon-cog::before, .icon-options::before, .icon-wrench::before { content: "\f013"; }
.icon-list::before, .icon-menu::before { content: "\f0c9"; }
.icon-image::before, .icon-picture::before, .icon-pictures::before { content: "\f03e"; }
.icon-file::before, .icon-file-2::before { content: "\f15b"; }
.icon-folder::before, .icon-folder-2::before, .icon-folder-open::before { content: "\f07b"; }
.icon-link::before { content: "\f0c1"; }
.icon-out-2::before, .icon-external-link::before, .icon-new-tab::before { content: "\f35d"; }
.icon-comments::before, .icon-comment::before { content: "\f086"; }
.icon-clock::before { content: "\f017"; }
.icon-key::before { content: "\f084"; }
.icon-tag::before, .icon-tags::before { content: "\f02b"; }
.icon-credit-card::before, .icon-credit::before { content: "\f09d"; }
.icon-save::before, .icon-apply::before { content: "\f0c7"; }
.icon-exit::before, .icon-quit::before, .icon-logout::before { content: "\f2f5"; }
.icon-enter::before, .icon-login::before { content: "\f2f6"; }
.icon-plus-circle::before, .icon-plus-2::before { content: "\f055"; }
.icon-minus-circle::before, .icon-minus-2::before { content: "\f056"; }
.icon-move::before { content: "\f0b2"; }
.icon-copy::before { content: "\f0c5"; }
.icon-quote::before, .icon-quotes-left::before { content: "\f10d"; }
.icon-play::before { content: "\f04b"; }
.icon-pause::before { content: "\f04c"; }
.icon-eject::before { content: "\f052"; }
.icon-expand::before { content: "\f065"; }
.icon-contract::before, .icon-compress::before { content: "\f066"; }

/* ----- Base ----- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--flo-font-body);
	font-size: 21px;
	line-height: 1.6;
	color: var(--flo-text);
	background: var(--flo-bg);
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow-x: hidden;
}

::selection { background: rgba(3, 69, 191, .15); }

img,
svg,
video { max-width: 100%; height: auto; }

a {
	color: var(--flo-accent);
	text-decoration: none;
}
a:hover,
a:focus { color: var(--flo-accent-2); }

/* Transitions douces généralisées sur les éléments interactifs */
a,
button,
summary,
input,
select,
textarea,
.btn,
.button,
.hikabtn,
[class*="icon-"] {
	transition:
		color var(--flo-ease),
		background-color var(--flo-ease),
		border-color var(--flo-ease),
		box-shadow var(--flo-ease),
		transform var(--flo-ease),
		opacity var(--flo-ease);
}

/* ... et sur les cadres / cartes survolables */
.flo-card,
.flo-book,
.flo-tile,
.flo-tile img,
details.flo-acc,
.hikashop_subcontainer,
.hikashop_subcontainer img,
.hikashop_product_image img,
.hikashop_category_image img,
#hikashop_main_image_div img {
	transition:
		box-shadow .35s cubic-bezier(.4, 0, .2, 1),
		transform .35s cubic-bezier(.4, 0, .2, 1),
		border-color .35s cubic-bezier(.4, 0, .2, 1),
		background-color .35s cubic-bezier(.4, 0, .2, 1) !important;
}

:focus-visible {
	outline: 2px solid var(--flo-accent-2);
	outline-offset: 2px;
	border-radius: 3px;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--flo-font-title);
	font-weight: 600;
	line-height: 1.15;
	margin: 0 0 .5em;
	color: var(--flo-navy);
}
h1 { font-size: 2.7rem; }
h2 { font-size: 2.3rem; }
h3 { font-size: 1.6rem; }

p { margin: 0 0 1rem; }

.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	clip: rect(0 0 0 0); clip-path: inset(50%);
	overflow: hidden; white-space: nowrap;
}

/* ----- Conteneur ----- */
.flo-container {
	width: 100%;
	max-width: var(--flo-container);
	margin-inline: auto;
	padding-inline: var(--flo-gap);
}

/* ----- Barre supérieure ----- */
.flo-topbar {
	background: var(--flo-bar);
	color: var(--flo-bar-text);
	font-size: 1.14rem;
	border-bottom: 1px solid rgba(217, 180, 95, .25);
}
.flo-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--flo-gap);
	min-height: 50px;
	flex-wrap: wrap;
}
.flo-topbar a { color: var(--flo-bar-text); }
.flo-topbar a:hover { color: var(--flo-gold-soft); }
.flo-topbar__left,
.flo-topbar__right { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }

/* Icônes topbar */
.flo-topbar svg {
	width: 21px;
	height: 21px;
	fill: currentColor;
	vertical-align: middle;
}

/* Réseaux sociaux (gauche) */
.flo-social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: .55rem;
}
.flo-social li,
.flo-contact-list li { display: flex; align-items: center; }
.flo-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .3rem;
	transition: transform var(--flo-ease), opacity var(--flo-ease), color var(--flo-ease);
}
.flo-social svg { width: 23px; height: 23px; }
.flo-social a:hover { transform: translateY(-2px); opacity: .85; }

/* Contact (droite) : e-mail + téléphone */
.flo-contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 1.2rem;
	flex-wrap: wrap;
}
.flo-contact-list a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

/* ----- Header ----- */
.flo-header {
	background: var(--flo-surface);
	border-bottom: 1px solid var(--flo-border);
	transition: box-shadow var(--flo-ease), background var(--flo-ease);
	position: relative;
}
.has-sticky-header .flo-header {
	position: sticky;
	top: 0;
	z-index: 1000;
}
/* Ombre douce + léger fond translucide une fois défilé */
.flo-header.is-scrolled {
	box-shadow: var(--flo-shadow-sm);
	background: rgba(255, 253, 249, .92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.flo-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--flo-gap);
	min-height: 78px;
	transition: min-height var(--flo-ease);
}
.flo-header.is-scrolled .flo-header__inner { min-height: 64px; }

/* Logo : ne doit jamais se couper en deux lignes */
.flo-header__logo {
	flex: 0 0 auto;
	font-family: var(--flo-font-brand);
	font-size: 1.5rem;
	line-height: 1.1;
	color: var(--flo-accent);
	white-space: nowrap;
}
.flo-header__logo a { color: var(--flo-accent); }
.flo-header__logo img { max-height: 60px; width: auto; }

/* Marque : nom en dégradé encre, « auteure » en capitales or filetées */
a.flo-logo {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
	line-height: 1;
}
.flo-logo__name {
	font-family: var(--flo-font-brand);
	font-size: 2.05rem;
	background: linear-gradient(115deg, var(--flo-navy) 15%, var(--flo-accent) 85%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	transition: filter .3s;
}
a.flo-logo:hover .flo-logo__name { filter: brightness(1.25); }
.flo-logo__role {
	display: flex;
	align-items: center;
	gap: .55rem;
	margin-top: .42rem;
	font-family: var(--flo-font-body);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .42em;
	text-indent: .42em; /* compense la dernière lettre pour un centrage optique */
	text-transform: uppercase;
	color: var(--flo-gold);
}
.flo-logo__role::before,
.flo-logo__role::after {
	content: "";
	width: 26px;
	height: 1px;
	background: var(--flo-gold-soft);
	flex: 0 0 auto;
}
.flo-logo__role::after { margin-left: -.42em; }
@media (max-width: 700px) {
	.flo-logo__name { font-size: 1.6rem; }
	.flo-logo__role { font-size: .58rem; letter-spacing: .32em; }
}

/* ----- Navigation ----- */
.flo-nav { display: flex; align-items: center; }

/* Menu Joomla standard */
.flo-nav > ul,
.flo-nav ul.mod-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: .25rem;
}
.flo-nav ul.mod-menu a,
.flo-nav > ul a {
	position: relative;
	display: block;
	padding: .5rem .9rem;
	color: var(--flo-text);
	font-family: var(--flo-font-body);
}
/* soulignement animé */
.flo-nav ul.mod-menu a::after,
.flo-nav > ul a::after {
	content: "";
	position: absolute;
	left: .9rem; right: .9rem; bottom: .35rem;
	height: 2px;
	background: var(--flo-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--flo-ease);
}
.flo-nav ul.mod-menu a:hover::after,
.flo-nav ul.mod-menu .current > a::after,
.flo-nav > ul a:hover::after { transform: scaleX(1); }
/* connecté = 2 entrées de plus (Votre profil, Déconnexion) : resserrer
   pour que tout tienne sur une ligne jusqu'à ~1250px */
@media (min-width: 981px) and (max-width: 1350px) {
	.flo-nav ul.mod-menu a,
	.flo-nav > ul a { padding: .5rem .55rem; font-size: .95rem; }
	.flo-nav ul.mod-menu a::after,
	.flo-nav > ul a::after { left: .55rem; right: .55rem; }
}

/* ----- Entrées compte en ICÔNES : Connexion (251), Votre profil (253),
   Déconnexion (257), Panier (258) — desktop uniquement ----- */
@media (min-width: 981px) {
	.flo-nav ul .item-251 > a,
	.flo-nav ul .item-253 > a,
	.flo-nav ul .item-257 > a,
	.flo-nav ul .item-258 > a {
		font-size: 0 !important;
		line-height: 1;
		padding: .55rem .55rem;
	}
	.flo-nav ul .item-251 > a::after,
	.flo-nav ul .item-253 > a::after,
	.flo-nav ul .item-257 > a::after,
	.flo-nav ul .item-258 > a::after { display: none; }
	.flo-nav ul .item-251 > a::before,
	.flo-nav ul .item-253 > a::before,
	.flo-nav ul .item-257 > a::before,
	.flo-nav ul .item-258 > a::before {
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		font-size: 1.12rem;
		color: var(--flo-navy);
		transition: color var(--flo-ease), transform var(--flo-ease);
		display: inline-block;
	}
	.flo-nav ul .item-251 > a:hover::before,
	.flo-nav ul .item-253 > a:hover::before,
	.flo-nav ul .item-257 > a:hover::before,
	.flo-nav ul .item-258 > a:hover::before {
		color: var(--flo-gold);
		transform: translateY(-2px);
	}
	.flo-nav ul .item-251 > a::before { content: "\f007"; } /* connexion : utilisateur */
	.flo-nav ul .item-253 > a::before { content: "\f4fe"; } /* profil : utilisateur + engrenage */
	.flo-nav ul .item-257 > a::before { content: "\f2f5"; } /* déconnexion */
	.flo-nav ul .item-258 > a { position: relative; margin-right: .3rem; }
	.flo-nav ul .item-258 > a::before { content: "\f07a"; } /* panier */
	/* Administration du site (visible admin seulement) : rouage */
	.flo-nav ul .item-284 > a { font-size: 0 !important; line-height: 1; padding: .55rem .55rem; }
	.flo-nav ul .item-284 > a::after { display: none; }
	.flo-nav ul .item-284 > a::before {
		content: "\f013";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		font-size: 1.12rem;
		color: var(--flo-navy);
		transition: color var(--flo-ease), transform var(--flo-ease);
		display: inline-block;
	}
	.flo-nav ul .item-284 > a:hover::before { color: var(--flo-gold); transform: translateY(-2px) rotate(40deg); }
}
/* pastille nombre d'articles */
.flo-cart-badge {
	position: absolute;
	top: -3px;
	right: -7px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--flo-gold);
	color: #fff;
	font-size: .68rem;
	font-weight: 700;
	line-height: 17px;
	text-align: center;
	box-shadow: 0 1px 4px rgba(28, 47, 74, .3);
}

/* Bouton menu mobile */
.flo-nav-toggle {
	display: none;
	width: 46px; height: 46px;
	border: 1px solid var(--flo-border);
	background: var(--flo-bg);
	border-radius: var(--flo-radius-sm);
	cursor: pointer;
	position: relative;
}
.flo-nav-toggle__bar,
.flo-nav-toggle__bar::before,
.flo-nav-toggle__bar::after {
	content: "";
	position: absolute;
	left: 50%; transform: translateX(-50%);
	width: 22px; height: 2px;
	background: var(--flo-text);
	transition: var(--flo-ease);
}
.flo-nav-toggle__bar { top: 50%; margin-top: -1px; }
.flo-nav-toggle__bar::before { top: -7px; }
.flo-nav-toggle__bar::after  { top: 7px; }
.flo-nav-toggle[aria-expanded="true"] .flo-nav-toggle__bar { background: transparent; }
.flo-nav-toggle[aria-expanded="true"] .flo-nav-toggle__bar::before { top: 0; transform: translateX(-50%) rotate(45deg); }
.flo-nav-toggle[aria-expanded="true"] .flo-nav-toggle__bar::after  { top: 0; transform: translateX(-50%) rotate(-45deg); }

/* ----- Hero / Bannière ----- */
.flo-banner {
	position: relative;
	width: 100%;
	overflow: hidden;
	line-height: 0;
	border-bottom: 2px solid var(--flo-gold-soft);
}
.flo-banner img { display: block; width: 100%; height: auto; }
/* apparition douce */
.flo-banner > * { animation: floFadeIn 1s var(--flo-ease) both; }
/* léger dégradé en bas pour fondre vers le contenu (n'écrase pas le texte centré) */
.flo-banner::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 28%;
	background: linear-gradient(to top, rgba(0,0,0,.28), rgba(0,0,0,0));
	pointer-events: none;
}

@keyframes floFadeIn {
	from { opacity: 0; transform: scale(1.03); }
	to   { opacity: 1; transform: scale(1); }
}

/* ----- Contenu principal ----- */
.flo-main {
	flex: 1 0 auto;
	padding-block: 3rem;
}
.flo-maintop { margin-bottom: 2rem; }
.flo-mainbottom { margin-top: 2.5rem; }
.flo-breadcrumbs { margin-bottom: 1.2rem; font-size: .9rem; color: var(--flo-muted); }

/* Disposition contenu + sidebar (activée seulement si des modules
   sont publiés dans la position "sidebar") */
.flo-layout { display: block; }
.flo-layout.has-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 2.5rem;
	align-items: start;
}
@media (max-width: 980px) {
	.flo-layout.has-sidebar { grid-template-columns: 1fr; }
}

/* Carte module (chrome floCard) */
.flo-card {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	padding: 1.3rem 1.5rem;
	margin-bottom: var(--flo-gap);
	box-shadow: var(--flo-shadow-sm);
}
.flo-card__title {
	font-size: 1.45rem;
	color: var(--flo-navy);
	margin-bottom: .6rem;
}

/* Polissage doux des images de contenu (galerie, visuels) */
.flo-main figure img,
.flo-main .flo-card img {
	border-radius: var(--flo-radius);
	transition: transform .45s var(--flo-ease), box-shadow .45s var(--flo-ease);
}
.flo-main a:hover figure img { box-shadow: var(--flo-shadow); }

/* Boutons : pill encre marine, relief discret */
.btn,
.button,
.flo-main a.btn {
	display: inline-block;
	background: var(--flo-navy);
	border: 1px solid var(--flo-navy);
	color: #fdfbf5;
	padding: .55rem 1.5rem;
	border-radius: 999px;
	font-family: var(--flo-font-body);
	font-size: .98rem;
	letter-spacing: .01em;
	box-shadow: 0 2px 8px rgba(28, 47, 74, .18);
	transition: transform var(--flo-ease), box-shadow var(--flo-ease), background-color var(--flo-ease), color var(--flo-ease), border-color var(--flo-ease);
}
.btn:hover,
.button:hover {
	background: var(--flo-navy-2);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(28, 47, 74, .24);
}

/* Messages système */
.flo-main .alert { border-radius: var(--flo-radius-sm); }

/* ----- Formulaires (socle global) ----- */
.flo-main input[type="text"],
.flo-main input[type="email"],
.flo-main input[type="password"],
.flo-main input[type="tel"],
.flo-main input[type="number"],
.flo-main input[type="search"],
.flo-main input[type="url"],
.flo-main select,
.flo-main textarea {
	font-family: var(--flo-font-body);
	font-size: 1em;
	color: var(--flo-text);
	background: #fff;
	border: 1px solid #d9d6cd;
	border-radius: var(--flo-radius-sm);
	padding: .5rem .8rem;
	transition: border-color var(--flo-ease), box-shadow var(--flo-ease);
}
.flo-main input:focus,
.flo-main select:focus,
.flo-main textarea:focus {
	border-color: var(--flo-accent-2);
	box-shadow: 0 0 0 3px rgba(3, 69, 191, .12);
	outline: none;
}
/* selects : garder la place du chevron et un minimum de largeur */
.flo-main select.form-select {
	padding: .45rem 1.9rem .45rem .6rem;
	min-width: 4.4rem;
	background-position: right .55rem center;
}
.flo-main label,
.flo-main .control-label { font-weight: 600; }
.flo-main input[type="checkbox"],
.flo-main input[type="radio"] { accent-color: var(--flo-accent); width: 1.05rem; height: 1.05rem; }
.flo-main fieldset { border: 0; padding: 0; margin: 0 0 1rem; }
.flo-main legend,
.flo-main .page-header h1,
.flo-main .page-header h2 {
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.9rem;
	color: var(--flo-navy);
	border: 0;
	margin-bottom: 1rem;
}
/* bouton "voir le mot de passe" : discret, pas en pill */
.flo-main .input-group .btn {
	background: var(--flo-soft);
	color: var(--flo-muted);
	border: 1px solid #d9d6cd;
	border-radius: 0 var(--flo-radius-sm) var(--flo-radius-sm) 0;
	padding: .4rem .8rem;
	box-shadow: none;
}
.flo-main .input-group .btn:hover {
	background: var(--flo-border);
	color: var(--flo-text);
	transform: none;
}
.flo-main .input-group input { border-radius: var(--flo-radius-sm) 0 0 var(--flo-radius-sm); }

/* Boutons standard (Joomla + HikaShop) : pill encre marine */
.flo-main button.btn-primary,
.flo-main input[type="submit"].btn-primary,
.flo-main .hikabtn {
	display: inline-block;
	background: var(--flo-navy);
	color: #fdfbf5;
	border: 1px solid var(--flo-navy);
	border-radius: 999px;
	padding: .5rem 1.5rem;
	font-family: var(--flo-font-body);
	font-size: .98rem;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(28, 47, 74, .18);
	transition: transform var(--flo-ease), box-shadow var(--flo-ease), background-color var(--flo-ease), color var(--flo-ease), border-color var(--flo-ease);
}
.flo-main button.btn-primary:hover,
.flo-main input[type="submit"].btn-primary:hover,
.flo-main .hikabtn:hover {
	background: var(--flo-navy-2);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(28, 47, 74, .24);
}
/* variantes discrètes HikaShop (liens secondaires en bouton) */
.flo-main .hikabtn.hikabtn_secondary,
.flo-main .hikabtn[name="cancel"],
.flo-main .hikabtn.hika_j2 {
	background: var(--flo-soft);
	color: var(--flo-text);
	border: 1px solid var(--flo-border);
	box-shadow: none;
}

/* Cartes formulaire com_users (connexion, inscription, rappels, profil) */
.com_users .flo-content > [class*="com-users-"] {
	max-width: 560px;
	margin-inline: auto;
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-top: 3px solid var(--flo-gold);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 2.2rem 2.4rem;
}
.com_users .flo-content > [class*="com-users-"] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.com_users .flo-content > [class*="com-users-"] select { width: 100%; }
.com_users .flo-content > [class*="com-users-"] .input-group { display: flex; }
.com_users .flo-content > [class*="com-users-"] .input-group input { flex: 1; width: auto; }
.com_users.view-login .com-users-login { max-width: 480px; }
.com_users.view-login .com-users-login::before {
	content: "Connexion";
	display: block;
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 2.1rem;
	color: var(--flo-navy);
	text-align: center;
	margin-bottom: 1.2rem;
}
.com_users .flo-content [class*="com-users-"] ul {
	list-style: none;
	margin: 1.4rem 0 0;
	padding: .4rem 0 0;
	border-top: 1px solid var(--flo-border);
}
.com_users .flo-content [class*="com-users-"] ul li { padding: .25rem 0; }
.com_users .flo-content .com-users-registration__field,
.com_users .flo-content .control-group { margin-bottom: .9rem; }

/* ----- Sections de contenu (articles) ----- */
.flo-intro { max-width: 900px; margin-inline: auto; }
.flo-intro h2 {
	text-align: center;
	margin-bottom: 1.6rem;
	position: relative;
	padding-bottom: .9rem;
}
.flo-intro h2::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 72px;
	height: 2px;
	background: var(--flo-gold);
}

/* Bloc "Nouveauté" */
.flo-nouveaute { margin-top: 3rem; }
.flo-nouveaute__flash {
	text-align: center;
	color: #9c2f2f;
	margin-bottom: .2rem;
}
.flo-nouveaute__flash span {
	display: block;
	color: var(--flo-navy);
	margin-top: .15em;
}
.flo-nouveaute__grid {
	display: grid;
	grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
	gap: 2.5rem;
	align-items: center;
	max-width: 1000px;
	margin: 1.5rem auto 0;
}
.flo-nouveaute__grid img { border-radius: var(--flo-radius); }
@media (max-width: 860px) {
	.flo-nouveaute__grid { grid-template-columns: 1fr; text-align: center; }
}

/* Mosaïque photos / poèmes */
.flo-mosaic {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.4rem;
	margin-top: 3.5rem;
}
.flo-mosaic--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 980px) { .flo-mosaic, .flo-mosaic--3 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .flo-mosaic, .flo-mosaic--3 { grid-template-columns: repeat(2, 1fr); } }
.flo-tile {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
}
.flo-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s var(--flo-ease);
}
.flo-tile:hover img { transform: scale(1.06); }
.flo-tile__title {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .35rem;
	padding: 1rem;
	text-align: center;
	color: #fff;
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.55rem;
	line-height: 1.12;
	text-shadow: 0 2px 12px rgba(10, 18, 32, .65);
	background: linear-gradient(to top, rgba(15, 24, 40, .38), rgba(15, 24, 40, .10));
}
.flo-tile__title small {
	font-size: .72rem;
	font-family: var(--flo-font-body);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--flo-gold-soft);
	opacity: 0;
	transition: opacity var(--flo-ease);
}
.flo-tile:hover .flo-tile__title small { opacity: 1; }
.flo-tile__hover {
	position: absolute;
	inset: auto 0 0;
	padding: .65rem;
	text-align: center;
	color: var(--flo-gold-soft);
	font-size: .78rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	background: linear-gradient(to top, rgba(15, 24, 40, .72), rgba(15, 24, 40, 0));
	opacity: 0;
	transform: translateY(8px);
	transition: opacity var(--flo-ease), transform var(--flo-ease);
}
.flo-tile:hover .flo-tile__hover { opacity: 1; transform: translateY(0); }

/* Poème : texte centré sur photo adoucie */
.flo-poem {
	position: relative;
	overflow: hidden;
	border-radius: var(--flo-radius);
	padding: 3.4rem 1.5rem;
	text-align: center;
	background-size: cover;
	background-position: center;
	box-shadow: var(--flo-shadow-sm);
}
.flo-poem::before {
	content: "";
	position: absolute;
	inset: 0;
	/* voile léger : la photo reste vivante autour du panneau de lecture */
	background: rgba(250, 247, 241, .35);
}
.flo-poem__inner {
	position: relative;
	max-width: 700px;
	margin-inline: auto;
	background: rgba(255, 253, 249, .78);
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);
	border: 1px solid rgba(255, 255, 255, .65);
	border-radius: 14px;
	padding: 2.8rem 2.2rem 2.4rem;
	box-shadow: 0 10px 30px rgba(28, 47, 74, .14);
}
.flo-poem h2 {
	margin-bottom: 1.8rem;
	position: relative;
	padding-bottom: .9rem;
	font-size: 2.4rem;
}
.flo-poem h2::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 64px;
	height: 2px;
	background: var(--flo-gold);
}
.flo-poem p {
	margin: 0 0 .45rem;
	font-family: var(--flo-font-title);
	font-weight: 500;
	font-size: 1.35em;
	line-height: 1.5;
	color: #2c3347;
}
/* ornement de fin de poème */
.flo-poem__inner::after {
	content: "";
	display: block;
	width: 64px;
	height: 2px;
	margin: 1.6rem auto 0;
	background: var(--flo-gold);
	opacity: .65;
}

/* ----- Navigation article précédent / suivant (poèmes, etc.) ----- */
.pagenavigation { margin: 0 0 1.5rem; }
.pagenavigation .pagination {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	width: 100%;
	margin: 0;
}
.pagenavigation .pagination a.previous,
.pagenavigation .pagination a.next {
	display: inline-flex !important;
	align-items: center;
	gap: .6rem;
	max-width: 46%;
	background: #fff !important;
	border: 1px solid var(--flo-border) !important;
	color: var(--flo-navy) !important;
	border-radius: 999px !important;
	padding: .55rem 1.3rem !important;
	font-size: .98rem;
	font-weight: 600;
	line-height: 1.25;
	box-shadow: 0 2px 8px rgba(28, 47, 74, .06) !important;
}
.pagenavigation .pagination a.previous:hover,
.pagenavigation .pagination a.next:hover {
	border-color: var(--flo-gold) !important;
	color: var(--flo-gold) !important;
	background: #fff !important;
	box-shadow: 0 4px 14px rgba(28, 47, 74, .12) !important;
}
.pagenavigation .pagination [class*="icon-chevron"] { color: var(--flo-gold); font-size: 1rem; }
.pagenavigation .pagination a > span[aria-hidden]:not([class*="icon-"]) {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Galerie photo */
.flo-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1rem;
	margin-top: 2rem;
}
.flo-gallery a {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--flo-radius-sm);
	box-shadow: var(--flo-shadow-sm);
}
.flo-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s var(--flo-ease);
}
.flo-gallery a:hover img { transform: scale(1.06); }

/* ----- Tables de contenu (panier, checkout, listes) ----- */
.flo-main table.table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1rem;
}
.flo-main table.table th {
	font-weight: 600;
	text-align: left;
	padding: .65rem .8rem;
	color: var(--flo-navy);
	border-bottom: 2px solid var(--flo-gold);
}
.flo-main table.table td {
	padding: .65rem .8rem;
	border-bottom: 1px solid var(--flo-border);
	vertical-align: middle;
	transition: background-color var(--flo-ease);
}
.flo-main .table-striped > tbody > tr:nth-of-type(odd) > * { background: var(--flo-soft); box-shadow: none; }
.flo-main .table-hover > tbody > tr:hover > * { background: #f0eee8; box-shadow: none; }

/* ----- Checkout HikaShop ----- */
.hikashop_checkout_page > div[class*="hikashop_checkout_"]:not(.hikashop_checkout_buttons):has(> :not(.hikashop_checkout_loading_elem):not(.hikashop_checkout_loading_spinner):not(script)) {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 1.6rem 2rem;
	margin-bottom: 1.6rem;
}
.hikashop_checkout_page h1 {
	font-size: 1.9rem;
	margin-bottom: 1.2rem;
}
.hikashop_checkout_page h2 { font-size: 1.5rem; color: var(--flo-navy); }
.hikashop_checkout_page legend { font-size: 1.5rem; margin-bottom: .8rem; }
/* colonnes connexion / enregistrement */
.hikashop_checkout_login .hk-container-fluid { display: flex; flex-wrap: wrap; gap: 2.5rem; }
.hikashop_checkout_login .hkc-lg-4 { flex: 1 1 260px; min-width: 240px; }
.hikashop_checkout_login .hkc-lg-8 { flex: 2 1 380px; min-width: 280px; }
.hikashop_checkout_login .hkc-lg-4 { border-right: 1px solid var(--flo-border); padding-right: 2rem; }
@media (max-width: 860px) {
	.hikashop_checkout_login .hkc-lg-4 { border-right: 0; padding-right: 0; }
}
.hikashop_checkout_page input[type="text"],
.hikashop_checkout_page input[type="email"],
.hikashop_checkout_page input[type="password"],
.hikashop_checkout_page input[type="tel"] { width: 100%; max-width: 420px; }
/* tables livraison / paiement : cartes cliquables (au lieu du tableau bordé gris) */
.flo-main .hikashop_shipping_methods_table,
.flo-main .hikashop_payment_methods_table {
	display: block;
	width: 100% !important;
	border: 0 !important;
	margin: 0;
	background: transparent !important;
}
.flo-main .hikashop_shipping_methods_table tbody,
.flo-main .hikashop_payment_methods_table tbody { display: block; }
.flo-main .hikashop_shipping_methods_table tr,
.flo-main .hikashop_payment_methods_table tr {
	display: block;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
.flo-main .hikashop_shipping_methods_table tr + tr,
.flo-main .hikashop_payment_methods_table tr + tr { margin-top: .7rem; }
.flo-main .hikashop_shipping_methods_table td,
.flo-main .hikashop_payment_methods_table td {
	display: flex;
	align-items: center;
	gap: .9rem;
	background: #fff !important;
	border: 1px solid var(--flo-border) !important;
	border-radius: 10px;
	padding: 1rem 1.2rem !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: border-color var(--flo-ease), box-shadow var(--flo-ease);
}
.flo-main .hikashop_shipping_methods_table td:hover,
.flo-main .hikashop_payment_methods_table td:hover { border-color: var(--flo-gold-soft) !important; }
.flo-main .hikashop_shipping_methods_table td:has(input:checked),
.flo-main .hikashop_payment_methods_table td:has(input:checked) {
	border-color: var(--flo-gold) !important;
	box-shadow: 0 0 0 3px rgba(179, 133, 44, .13) !important;
}
.flo-main .hikashop_checkout_payment_radio,
.flo-main .hikashop_checkout_shipping_radio {
	accent-color: var(--flo-navy);
	width: 1.15rem;
	height: 1.15rem;
	flex: 0 0 auto;
	margin: 0 !important;
}
.flo-main .hikashop_payment_methods_table label,
.flo-main .hikashop_shipping_methods_table label {
	margin: 0;
	font-weight: 600;
	color: var(--flo-navy);
	cursor: pointer;
}

/* ----- Carrousel « Dans la même catégorie » (module 120, mainbottom) ----- */
/* visible uniquement sur les fiches produit */
.flo-mainbottom .flo-card.flo-samecat { display: none; }
body.view-product.task-show .flo-mainbottom .flo-card.flo-samecat { display: block; }
.flo-samecat .flo-card__title {
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.7rem;
	color: var(--flo-navy);
	margin: 0 0 1.2rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--flo-gold);
	display: inline-block;
}
/* la grille du listing devient une piste horizontale à défilement fluide */
.flo-samecat .hikashop_products_listing .hk-row-fluid {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 1.2rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: .4rem .2rem 1rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-color: var(--flo-gold-soft) transparent;
	scrollbar-width: thin;
}
.flo-samecat .hikashop_products_listing .hk-row-fluid > * {
	flex: 0 0 auto;
	width: clamp(180px, 22%, 240px) !important;
	max-width: none !important;
	scroll-snap-align: start;
	margin: 0 !important;
	padding: 0 !important;
}
.flo-samecat .hikashop_products_listing .hikashop_subcontainer {
	padding: 1.2rem 1rem 1.1rem !important;
}
.flo-samecat .hikashop_products_listing .hikashop_product_image img { max-height: 170px; }
.flo-samecat .hikashop_products_listing .hikashop_product_name { font-size: 1.05rem; }
.flo-samecat .hikashop_products_listing .hikashop_product_price_full { font-size: 1rem; }
/* pas de pagination dans le carrousel */
.flo-samecat .hikashop_products_pagination { display: none !important; }
.flo-samecat .hk-row-fluid::-webkit-scrollbar { height: 8px; }
.flo-samecat .hk-row-fluid::-webkit-scrollbar-thumb { background: var(--flo-gold-soft); border-radius: 999px; }
.flo-samecat .hk-row-fluid::-webkit-scrollbar-track { background: transparent; }

/* ----- Module « Mosaïque d'images » (mod_flo_mosaique) ----- */
/* chaque instance ne s'affiche que sur sa page */
.flo-mainbottom .flo-card.flo-mosaique-home,
.flo-mainbottom .flo-card.flo-mosaique-poemes,
.flo-mainbottom .flo-card.flo-mosaique-photos { display: none; }
body.is-home .flo-mainbottom .flo-card.flo-mosaique-home { display: block; }
body.itemid-245 .flo-mainbottom .flo-card.flo-mosaique-poemes { display: block; }
body.itemid-248 .flo-mainbottom .flo-card.flo-mosaique-photos { display: block; }
/* (styles génériques .flo-mosa déplacés dans media/mod_flo_mosaique/css/mosaique.css) */

/* ----- Section « Dans la presse » (accueil) ----- */
.flo-presse {
	margin: 3rem 0 1rem;
	text-align: center;
}
.flo-presse__badge {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	margin: 0 0 1.8rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .34em;
	text-indent: .34em;
	text-transform: uppercase;
	color: var(--flo-gold);
}
.flo-presse__badge::before,
.flo-presse__badge::after {
	content: "";
	width: 44px;
	height: 1px;
	background: var(--flo-gold-soft);
}
.flo-presse__badge::after { margin-left: -.34em; }
.flo-presse__grid {
	display: grid;
	grid-template-columns: minmax(260px, 420px) minmax(0, 1fr);
	gap: 2.6rem;
	align-items: center;
	text-align: left;
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 2.2rem 2.4rem;
}
.flo-presse__img {
	display: block;
	transform: rotate(-1.6deg);
	transition: transform .6s cubic-bezier(.22, .61, .36, 1), box-shadow .6s;
}
.flo-presse__img img {
	display: block;
	width: 100%;
	height: auto;
	background: #fff;
	padding: 10px;
	border: 1px solid var(--flo-border);
	border-radius: 4px;
	box-shadow: 0 10px 26px rgba(28, 47, 74, .18);
}
.flo-presse__img:hover { transform: rotate(0deg) scale(1.02); }
.flo-presse__img { position: relative; }
.flo-presse__img::after {
	content: "";
	position: absolute;
	inset: 11px;
	border-radius: 3px;
	background:
		url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fdfbf5' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20.5 20.5-4.8-4.8'/%3E%3Cpath d='M11 8.2v5.6M8.2 11h5.6'/%3E%3C/svg%3E") center / 52px no-repeat,
		radial-gradient(circle at center, rgba(13, 23, 40, .2), rgba(13, 23, 40, .55));
	opacity: 0;
	transition: opacity .45s ease;
}
.flo-presse__img:hover::after { opacity: 1; }
.flo-presse__source {
	margin: 0 0 .5rem;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--flo-muted);
}
/* guillemet décoratif dans le flux (au-dessus de la source, sans chevauchement) */
.flo-presse__source::before {
	content: "\201C";
	display: block;
	font-family: var(--flo-font-title);
	font-size: 4.4rem;
	line-height: .55;
	margin-bottom: .55rem;
	color: var(--flo-gold-soft);
	opacity: .55;
}
.flo-presse__text h2 {
	margin: 0 0 1rem;
	font-size: 1.9rem;
	line-height: 1.25;
	color: var(--flo-navy);
}
.flo-presse__actions {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	flex-wrap: wrap;
	margin-top: 1.4rem;
}
.flo-presse__zoomlink {
	font-size: .95rem;
	color: var(--flo-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.flo-presse__zoomlink:hover { color: var(--flo-gold); }
@media (max-width: 860px) {
	.flo-presse__grid { grid-template-columns: 1fr; padding: 1.6rem 1.4rem; gap: 1.8rem; }
	.flo-presse__text h2 { font-size: 1.5rem; }
}

/* mosaïque des poèmes : « Lire le poème » se déploie sous le titre au survol */
.flo-mosaique-poemes .flo-mosa__txt::after {
	content: "Lire le poème";
	display: block;
	font-size: .6rem;
	font-weight: 600;
	letter-spacing: .32em;
	text-indent: .32em;
	text-transform: uppercase;
	color: var(--flo-gold-soft);
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transform: translateY(8px);
	transition:
		max-height .5s ease,
		margin .5s ease,
		opacity .5s ease .08s,
		transform .55s cubic-bezier(.22, .61, .36, 1) .08s;
}
.flo-mosaique-poemes .flo-mosa__tile:hover .flo-mosa__txt::after {
	max-height: 1.6em;
	margin-top: .45rem;
	opacity: 1;
	transform: none;
}

/* ----- Effet « hero » au survol des tuiles de mosaïque ----- */
.flo-mosa .flo-mosa__tile:hover {
	transform: translateY(-6px) scale(1.02);
	box-shadow:
		0 18px 38px rgba(28, 47, 74, .30),
		0 6px 16px rgba(179, 133, 44, .22);
}
@media (prefers-reduced-motion: reduce) {
	.flo-mosa .flo-mosa__tile:hover { transform: none; }
}

/* ----- Badge « Nouveauté » (HikaShop) ----- */
/* pas de badge dans le carrousel « Dans la même catégorie » (tuiles trop petites) */
.flo-samecat .hikashop_badge_div { display: none !important; }
.hikashop_badge_div img.hikashop_product_badge_image {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	min-width: 118px;
}

/* ----- Accueil : « Les derniers livres parus » (module 117) ----- */
/* visible uniquement sur la page d'accueil */
.flo-mainbottom .flo-card.flo-newbooks { display: none; }
body.is-home .flo-mainbottom .flo-card.flo-newbooks { display: block; }
.flo-newbooks .flo-card__title {
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.8rem;
	color: var(--flo-navy);
	margin: 0 0 1.3rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--flo-gold);
	display: inline-block;
}
.flo-newbooks .hikashop_products_listing .hikashop_subcontainer { padding: 1.4rem 1.1rem 1.2rem !important; }
.flo-newbooks .hikashop_products_listing .hikashop_product_image img { max-height: 190px; }
.flo-newbooks .hikashop_products_listing .hikashop_product_name { font-size: 1.08rem; }
.flo-newbooks .hikashop_products_pagination { display: none !important; }

/* titre de section dans une description produit (ex. « Dans la presse ») */
.flo-presse-titre {
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.5rem;
	color: var(--flo-navy);
	margin: 1.8rem 0 .8rem;
	padding-bottom: .4rem;
	border-bottom: 2px solid var(--flo-gold);
	display: inline-block;
}
.flo-main .hikashop_product_description_main img { border-radius: 8px; box-shadow: 0 4px 14px rgba(28, 47, 74, .14); }

/* ----- Espace client HikaShop (Compte client) ----- */
/* menu latéral : carte, icônes et liens au thème */
.flo-main .hika_cpanel_icons {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	overflow: hidden;
}
.flo-main .hika_cpanel_icon {
	border-bottom: 1px solid var(--flo-border);
	transition: background-color var(--flo-ease);
}
.flo-main .hika_cpanel_icon:last-child { border-bottom: 0; }
.flo-main .hika_cpanel_icon:hover { background: var(--flo-soft); }
.flo-main .hika_cpanel_icon a { color: var(--flo-navy); font-weight: 500; }
/* icônes : une pastille fine par entrée (au lieu des piles FA massives) */
.flo-main a.hika_cpanel_icon {
	display: flex;
	align-items: center;
	gap: .95rem;
	padding: .75rem 1.15rem;
	color: var(--flo-navy);
	font-weight: 500;
	text-align: left;
}
.flo-main .hika_cpanel_icon .fa-stack {
	width: 38px;
	height: 38px;
	min-width: 38px;
	line-height: 1;
	font-size: 1rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--flo-soft);
	border: 1px solid var(--flo-gold-soft);
	border-radius: 50%;
	margin: 0;
	transition: background-color var(--flo-ease), border-color var(--flo-ease), transform var(--flo-ease);
}
.flo-main .hika_cpanel_icon .fa-stack > i { display: none !important; }
.flo-main .hika_cpanel_icon .fa-stack::before {
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: .92rem;
	color: var(--flo-gold) !important;
}
.flo-main .hikashop_cpanel_joomla_user_div .fa-stack::before { content: "\f007"; }        /* compte */
.flo-main .hikashop_cpanel_address_div .fa-stack::before { content: "\f3c5"; }            /* adresses */
.flo-main .hikashop_cpanel_order_div .fa-stack::before { content: "\f46d"; }              /* commandes */
.flo-main .hikashop_cpanel_cart_div .fa-stack::before { content: "\f07a"; }               /* paniers */
.flo-main .hikashop_cpanel_download_div .fa-stack::before { content: "\f019"; }           /* téléchargements */
.flo-main .hikashop_cpanel_affiliate_div .fa-stack::before { content: "\f0c0"; }          /* affiliation */
.flo-main .hikashop_cpanel_joomla_user_logout_div .fa-stack::before { content: "\f2f5"; } /* déconnexion */
.flo-main .hika_cpanel_icon:hover .fa-stack {
	background: var(--flo-gold);
	border-color: var(--flo-gold);
	transform: scale(1.06);
}
.flo-main .hika_cpanel_icon:hover .fa-stack::before { color: #fff !important; }
/* pas d'infobulle fantôme sur le menu */
.flo-main .hika_cpanel_icon [data-toggle],
.flo-main .hika_cpanel_icon .hkTooltip,
.flo-main .hikashop_cpanel .tooltip { pointer-events: auto; }
/* commandes : liens et étiquettes au thème */
.flo-main .hikashop_dashboard a:not(.hikabtn) { color: var(--flo-navy); }
.flo-main .hikashop_dashboard a:not(.hikabtn):hover { color: var(--flo-gold); }
.flo-main .hikashop_order_status,
.flo-main [class*="order_status"] {
	border-radius: 999px;
	padding: .15rem .8rem;
	font-size: .82rem;
	font-weight: 600;
}
.flo-main .hikashop_cpanel_main_interface h1,
.flo-main .hikashop_header_title { color: var(--flo-navy); }

/* — sous-pages de l'espace client — */
/* tous les boutons HikaShop à grosse icône (fa-2x) : icône inline normale */
.flo-main a.hikabtn:has(> .btnIcon),
.flo-main button.hikabtn:has(> .btnIcon) {
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	height: auto !important;
	padding: .5rem 1.3rem;
	text-align: left;
}
.flo-main a.hikabtn > .btnIcon,
.flo-main button.hikabtn > .btnIcon {
	font-size: 1rem !important;
	line-height: 1 !important;
	display: inline-flex;
	align-items: center;
	width: auto;
}
.flo-main a.hikabtn > .btnIcon i,
.flo-main button.hikabtn > .btnIcon i { color: inherit !important; font-size: 1rem !important; }
.flo-main a.hikabtn > .btnName,
.flo-main button.hikabtn > .btnName {
	display: inline !important;
	color: inherit !important; /* HikaShop force un texte marine, invisible sur bouton marine */
	width: auto !important;
}
/* spécificité renforcée : les règles div.hika_toolbar span.btnName de HikaShop gagnaient */
.flo-main div.hika_toolbar a.hikabtn span.btnName,
.flo-main div.hika_toolbar button.hikabtn span.btnName {
	display: inline !important;
	width: auto !important;
	color: inherit !important;
	float: none !important;
}
.flo-main div.hika_toolbar a.hikabtn span.btnIcon,
.flo-main div.hika_toolbar button.hikabtn span.btnIcon {
	float: none !important;
	font-size: 1rem !important;
	line-height: 1 !important;
}
.flo-main div.hika_toolbar a.hikabtn span.btnIcon i { color: inherit !important; }
.flo-main div.hika_toolbar a.hikabtn,
.flo-main div.hika_toolbar button.hikabtn {
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	width: auto !important;
	height: auto !important;
}
/* bouton Retour : petite pilule discrète (au lieu du gros rond marine) */
.flo-main a.hikabtn[href*="user/cpanel"] {
	background: #fff !important;
	border: 1px solid var(--flo-border) !important;
	color: var(--flo-navy) !important;
	box-shadow: 0 2px 6px rgba(28, 47, 74, .08) !important;
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	height: auto !important;
	padding: .45rem 1.15rem !important;
	border-radius: 999px !important;
	font-size: .95rem;
}
.flo-main a.hikabtn[href*="user/cpanel"]:hover {
	border-color: var(--flo-gold) !important;
	color: var(--flo-gold) !important;
	background: #fff !important;
}
.flo-main a.hikabtn[href*="user/cpanel"] .btnIcon {
	font-size: 1rem !important;
	line-height: 1 !important;
	display: inline-flex;
	align-items: center;
}
.flo-main a.hikabtn[href*="user/cpanel"] .btnIcon i { color: inherit !important; }

/* listes « adresse par défaut » (dl) : libellé au-dessus du champ
   (HikaShop force dt à 180px et indente les dd → tout écraser) */
.flo-main dl.hika_options { display: block; margin: 0 0 1.1rem; }
.flo-main dl.hika_options dt,
.flo-main dl.hika_options dd {
	margin: 0 !important;
	float: none !important;
	width: auto !important;
	text-align: left !important;
}
.flo-main dl.hika_options dt { margin-bottom: .35rem !important; }
.flo-main dl.hika_options dt label {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	font-weight: 600;
	color: var(--flo-navy);
	white-space: normal;
	text-align: left !important;
	float: none !important;
	display: inline-block;
}
.flo-main dl.hika_options dd select { max-width: 540px; }

/* cartes d'adresses */
.flo-main .hika_address_display,
.flo-main [class*="hikashop_user_address"] {
	border-radius: var(--flo-radius-sm);
}
.flo-main .hika_address_display { border: 1px solid var(--flo-border) !important; box-shadow: var(--flo-shadow-sm); overflow: hidden; }

/* recherche + filtres des commandes : groupe soigné */
.flo-main label[for="hikashop_search"] { display: none; }
.flo-main #hikashop_search { border-radius: 999px 0 0 999px !important; border-right: 0 !important; }
.flo-main #hikashop_search + .btn,
.flo-main form .btn.btn-primary {
	background: var(--flo-navy);
	border: 1px solid var(--flo-navy);
	color: #fdfbf5;
	border-radius: 0 999px 999px 0;
	padding: .45rem 1.3rem;
	transition: background-color var(--flo-ease);
}
.flo-main #hikashop_search + .btn:hover,
.flo-main form .btn.btn-primary:hover { background: var(--flo-navy-2); color: #fff; }

/* compat noms FontAwesome 4 utilisés par HikaShop (glyphes sinon absents) */
.fa.fa-times::before { content: "\f00d"; }
.fa.fa-save::before { content: "\f0c7"; }
.fa.fa-pencil::before { content: "\f303"; }
.fa.fa-trash-o::before { content: "\f2ed"; }

/* boutons OK / Annuler des formulaires d'adresse */
.flo-main .hikashop_checkout_address_ok_button,
.flo-main .hikashop_checkout_address_cancel_button {
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	height: auto !important;
	padding: .55rem 1.5rem !important;
}
.flo-main .hikashop_checkout_address_cancel_button {
	background: transparent !important;
	border: 1px solid var(--flo-border) !important;
	color: var(--flo-muted) !important;
	box-shadow: none !important;
}
.flo-main .hikashop_checkout_address_cancel_button:hover {
	border-color: #9c2f2f !important;
	color: #9c2f2f !important;
}
.flo-main .hikashop_checkout_address_cancel_button i,
.flo-main .hikashop_checkout_address_ok_button i { color: inherit !important; }

/* messages « vide » (pas de commandes, etc.) */
.flo-main .hk-well {
	background: var(--flo-surface);
	border: 1px dashed var(--flo-gold-soft);
	border-radius: var(--flo-radius);
	padding: 2rem 1.5rem;
	color: var(--flo-muted);
	text-align: center;
}

/* ----- Fiche produit : barre de partage ----- */
/* le tag Joomla (« New »…) ne s'affiche pas sur la fiche */
.flo-main .hikashop_product_tags { display: none !important; }
.flo-share {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: .7rem;
	margin: 2.2rem 0 .6rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--flo-border);
}
/* dans la carte d'achat : pleine largeur sous le bouton Ajouter */
#hikashop_product_right_part .flo-share {
	order: 5;
	flex: 1 1 100%;
	margin: 1rem 0 0;
	padding-top: 1rem;
}
.flo-share__label {
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--flo-muted);
	margin-right: .5rem;
}
.flo-share__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--flo-border);
	color: var(--flo-navy);
	font-size: 1.05rem;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(28, 47, 74, .08);
	transition: background-color var(--flo-ease), color var(--flo-ease), border-color var(--flo-ease), transform var(--flo-ease), box-shadow var(--flo-ease);
}
.flo-share__btn:hover {
	background: var(--flo-navy);
	border-color: var(--flo-navy);
	color: #fdfbf5;
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(28, 47, 74, .22);
}
.flo-share__btn i { color: inherit !important; }
.flo-share__btn svg { width: 18px; height: 18px; fill: currentColor; }
.flo-share__copy.is-copied {
	background: var(--flo-gold) !important;
	border-color: var(--flo-gold) !important;
	color: #fff !important;
}
.flo-share__copy.is-copied::after {
	content: "Lien copié !";
	position: absolute;
	transform: translateY(-140%);
	background: var(--flo-navy);
	color: #fdfbf5;
	font-size: .78rem;
	padding: .25rem .7rem;
	border-radius: 6px;
	white-space: nowrap;
}

/* ----- Fiche produit : liens livre précédent / suivant ----- */
.hikashop_previous_product_btn.flo-prodnav { float: left; margin: 0 0 1.4rem; }
.hikashop_next_product_btn.flo-prodnav { float: right; margin: 0 0 1.4rem; }
.flo-prodnav a {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	/* HikaShop force width:65px sur ces liens → annuler */
	width: auto !important;
	max-width: 100%;
	padding: .5rem 1.2rem !important;
	background: #fff;
	border: 1px solid var(--flo-border);
	border-radius: 999px;
	color: var(--flo-navy);
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(28, 47, 74, .06);
}
.flo-prodnav a:hover {
	border-color: var(--flo-gold);
	color: var(--flo-gold);
	box-shadow: 0 4px 14px rgba(28, 47, 74, .12);
}
.flo-prodnav a i { font-size: 1.15rem; color: var(--flo-gold); }
.flo-prodnav__label { display: block; line-height: 1.25; }
.flo-prodnav__label small {
	display: block;
	font-size: .68rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--flo-muted);
}
.flo-prodnav__label > span {
	display: block;
	font-weight: 600;
	max-width: 300px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.flo-prodnav--next .flo-prodnav__label { text-align: right; }
@media (max-width: 700px) {
	.flo-prodnav__label > span { max-width: 130px; }
	.flo-prodnav a { padding: .4rem .9rem; }
}

/* récapitulatif panier du checkout : même esprit que la page panier */
.flo-main .hikashop_checkout_cart table tr,
.flo-main .hikashop_checkout_cart table td,
.flo-main .hikashop_checkout_cart table th {
	background: transparent !important;
	box-shadow: none !important;
}
.flo-main .hikashop_checkout_cart thead th,
.flo-main .hikashop_checkout_cart thead td {
	font-size: .82rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--flo-muted);
	border-bottom: 2px solid var(--flo-gold);
	padding: .8rem;
}
.flo-main .hikashop_checkout_cart tbody td {
	padding: 1rem .8rem;
	border-bottom: 1px solid var(--flo-border);
	vertical-align: middle;
}
.flo-main .hikashop_checkout_cart .hikashop_cart_product_name a {
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.2rem;
	color: var(--flo-navy);
}
.flo-main .hikashop_checkout_cart .hikashop_cart_product_name a:hover { color: var(--flo-gold); }
.flo-main .hikashop_checkout_cart th.hikashop_cart_product_name_title,
.flo-main .hikashop_checkout_cart td.hikashop_cart_product_name_title {
	text-align: left !important;
}
/* prix à droite, en-têtes compris */
.flo-main .hikashop_checkout_cart th.hikashop_cart_product_price_title,
.flo-main .hikashop_checkout_cart td.hikashop_cart_product_price_title,
.flo-main .hikashop_checkout_cart th.hikashop_cart_product_total_title,
.flo-main .hikashop_checkout_cart td.hikashop_cart_product_total_title,
.flo-main .hikashop_checkout_cart .hikashop_cart_product_price_value,
.flo-main .hikashop_checkout_cart .hikashop_cart_product_total_value,
.flo-main .hikashop_checkout_cart .hikashop_cart_subtotal_value,
.flo-main .hikashop_checkout_cart .hikashop_cart_shipping_value,
.flo-main .hikashop_checkout_cart .hikashop_cart_total_value {
	text-align: right !important;
}
/* quantité centrée */
.flo-main .hikashop_checkout_cart th.hikashop_cart_product_quantity_title,
.flo-main .hikashop_checkout_cart td.hikashop_cart_product_quantity_title,
.flo-main .hikashop_checkout_cart .hikashop_cart_product_quantity_value {
	text-align: center !important;
}
/* lignes sous-total / livraison / total */
.flo-main .hikashop_checkout_cart .hikashop_cart_subtotal_row td,
.flo-main .hikashop_checkout_cart .hikashop_cart_shipping_row td {
	border-bottom: 0;
	padding: .55rem .8rem;
	color: var(--flo-text);
}
.flo-main .hikashop_checkout_cart .hikashop_cart_subtotal_row td { padding-top: 1rem; }
.flo-main .hikashop_checkout_cart .hikashop_cart_title {
	font-weight: 600;
	color: var(--flo-muted);
	text-align: right;
}
.flo-main .hikashop_checkout_cart .hikashop_cart_total_row td {
	border-bottom: 0;
	padding: .8rem .8rem .3rem;
	font-family: var(--flo-font-title);
	font-weight: 700;
	font-size: 1.3rem;
	color: var(--flo-navy);
}
.flo-main .hikashop_checkout_cart .hikashop_cart_total_row .hikashop_cart_title { color: var(--flo-navy); }
.flo-main .hikashop_checkout_cart .hikashop_cart_total_row td,
.flo-main .hikashop_checkout_cart .hikashop_cart_total_row .hikashop_cart_total_value {
	border-top: 2px solid var(--flo-gold);
}
.flo-main .hikashop_checkout_cart .hikashop_cart_total_row .hikashop_cart_empty_footer { border-top: 0; }

/* coupon : petit titre + groupe arrondi */
.hikashop_checkout_coupon::before {
	content: "Un code promo ?";
	display: block;
	font-size: .82rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--flo-muted);
	margin-bottom: .8rem;
}
.hikashop_checkout_coupon .input-group {
	display: flex !important;
	width: 100% !important;
	max-width: none !important;
}
.flo-main .hikashop_checkout_coupon .hikashop_checkout_coupon_field {
	border-radius: 999px 0 0 999px !important;
	border-right: 0 !important;
	padding: .55rem 1.2rem;
	flex: 1 1 auto;
	width: 100%;
	max-width: none !important;
}
.flo-main .hikabtn_checkout_coupon_add {
	border-radius: 0 999px 999px 0 !important;
	background: var(--flo-navy) !important;
	border: 1px solid var(--flo-navy) !important;
	color: #fdfbf5 !important;
	padding: .55rem 1.5rem !important;
	font-weight: 500;
}
.flo-main .hikabtn_checkout_coupon_add:hover { background: var(--flo-navy-2) !important; }

/* bouton Valider : action principale marine (cohérent avec le reste du site) */
.flo-main .hikabtn.hikabtn-success {
	background: var(--flo-navy) !important;
	border-color: var(--flo-navy) !important;
	color: #fdfbf5 !important;
	font-size: 1.08rem;
	font-weight: 600;
	padding: .85rem 2.6rem;
	box-shadow: 0 4px 14px rgba(28, 47, 74, .28) !important;
}
.flo-main .hikabtn.hikabtn-success:hover {
	background: var(--flo-navy-2) !important;
	box-shadow: 0 8px 22px rgba(28, 47, 74, .34) !important;
}
.hikashop_checkout_buttons { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.6rem; }
/* bouton Valider pleine largeur */
.hikashop_checkout_buttons .buttons_right { flex: 1 1 auto; }
.hikashop_checkout_buttons .buttons_left:not(:has(*)) { display: none; }
.flo-main .hikabtn_checkout_next {
	display: block !important;
	width: 100%;
	text-align: center;
}
/* tableaux responsives HikaShop (mobile) : le libellé est posé en absolu
   à gauche (frontend_default.css) et la valeur démarre à padding-left 30%,
   trop court pour « Prix à l'unité » → on passe le libellé en ligne dédiée. */
@media only screen and (max-width: 760px), (min-device-width: 768px) and (max-device-width: 1024px) {
	.flo-main .hikashop_checkout_cart table td,
	.flo-main .hikashop_show_cart_form table td {
		padding-left: .8rem !important;
	}
	.flo-main .hikashop_checkout_cart table td:before,
	.flo-main .hikashop_show_cart_form table td:before {
		position: static !important;
		display: block !important;
		margin-bottom: .15rem;
		font-weight: 600;
		color: var(--flo-navy);
	}
	.flo-main .hikashop_checkout_cart .hikashop_product_price_full { padding-left: 0 !important; }
}

/* groupes champ + bouton (œil, coupon) : rester sur une ligne */
.hikashop_checkout_page .input-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	max-width: 420px;
}
.hikashop_checkout_page .input-group input { flex: 1 1 auto; width: auto; min-width: 0; }
/* carte "champs personnalisés" vide : masquée */
.hikashop_checkout_page .hikashop_checkout_fields:not(:has(fieldset *)) { display: none; }
/* champ coupon : compact, bouton assorti */
.hikashop_checkout_coupon .input-group { max-width: 380px; }
.hikashop_checkout_coupon .input-group .btn {
	border-radius: 0 var(--flo-radius-sm) var(--flo-radius-sm) 0;
	background: var(--flo-navy);
	color: #fdfbf5;
	border-color: var(--flo-navy);
}
.hikashop_checkout_coupon .input-group .btn:hover { background: var(--flo-navy-2); color: #fff; }

/* Bouton "Ajouter" : marine sur TOUS ses états (le CSS HikaShop, chargé
   après, repeint le bouton en vert au clic) ; doré pendant l'ajout */
.flo-main a.hikabtn.hikacart,
.flo-main a.hikabtn.hikacart:visited {
	background: var(--flo-navy) !important;
	border-color: var(--flo-navy) !important;
	color: #fdfbf5 !important;
}
.flo-main a.hikabtn.hikacart:hover,
.flo-main a.hikabtn.hikacart:focus,
.flo-main a.hikabtn.hikacart:active {
	background: var(--flo-navy-2) !important;
	border-color: var(--flo-navy-2) !important;
	color: #fff !important;
}
.flo-main a.hikabtn.hikacart.add_in_progress,
.flo-main a.hikabtn.hikacart.add_in_progress:hover,
.flo-main a.hikabtn.hikacart.add_in_progress:focus,
.flo-main a.hikabtn.hikacart.add_in_progress:active {
	background: var(--flo-gold) !important;
	border-color: var(--flo-gold) !important;
	color: #fff !important;
	box-shadow: 0 4px 14px rgba(179, 133, 44, .4) !important;
}

/* ----- Notification d'ajout au panier : toast centré, au thème -----
   (notify.js injecte ses styles à l'exécution → tout en !important) */
@keyframes floToast {
	from { opacity: 0; transform: translateX(-50%) translateY(-14px); }
	to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.notifyjs-wrapper {
	position: fixed !important;
	top: 96px !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;
	margin: 0 !important;
	transform: translateX(-50%);
	z-index: 9999 !important;
	animation: floToast .45s cubic-bezier(.2, .8, .3, 1) both;
}
.notifyjs-wrapper .notifyjs-arrow { display: none !important; }
.notifyjs-container { margin: 0 !important; }
.notifyjs-metro-base {
	display: flex !important;
	align-items: center !important;
	gap: 1.1rem;
	min-width: 380px;
	max-width: 480px;
	min-height: 0 !important;
	padding: 1.1rem 1.5rem !important;
	background: var(--flo-surface) !important;
	color: var(--flo-text) !important;
	border: 1px solid var(--flo-border) !important;
	border-top: 3px solid var(--flo-gold) !important;
	border-radius: var(--flo-radius) !important;
	box-shadow: 0 10px 24px rgba(28, 47, 74, .16), 0 30px 70px rgba(28, 47, 74, .22) !important;
	font-family: var(--flo-font-body);
	white-space: normal !important;
}
.notifyjs-metro-base .image {
	position: static !important;
	transform: none !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto;
	width: auto !important;
	height: auto !important;
	font-size: 0 !important;
}
.notifyjs-metro-base .image img {
	max-height: 64px !important;
	max-width: 64px !important;
	width: auto !important;
	height: auto !important;
	border-radius: 4px;
	background: #fff;
	padding: 4px;
	border: 1px solid var(--flo-border);
	box-shadow: 0 2px 8px rgba(28, 47, 74, .16);
}
.notifyjs-metro-base .text-wrapper {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
	font-family: var(--flo-font-body) !important;
}
.notifyjs-metro-base .title {
	font-family: var(--flo-font-title) !important;
	font-weight: 600 !important;
	font-size: 1.35rem !important;
	line-height: 1.15 !important;
	color: var(--flo-navy) !important;
	max-width: none !important;
}
.notifyjs-metro-base .text {
	display: block;
	margin-top: .3rem !important;
	font-size: .98rem !important;
	color: var(--flo-muted) !important;
	max-width: none !important;
}
.notifyjs-metro-base .text::before {
	content: "\2713";
	display: inline-block;
	margin-right: .45rem;
	font-weight: 700;
	color: var(--flo-gold);
}

/* ----- Popup d'ajout au panier (mode fenêtre / vex) ----- */
.vex.vex-theme-default { padding-top: 12vh !important; }
.vex-overlay {
	background: rgba(15, 24, 40, .55) !important;
}
.vex.vex-theme-default .vex-content {
	background: var(--flo-surface) !important;
	border-radius: var(--flo-radius) !important;
	border-top: 3px solid var(--flo-gold) !important;
	box-shadow: 0 12px 30px rgba(28, 47, 74, .2), 0 40px 90px rgba(28, 47, 74, .28) !important;
	width: auto !important;
	max-width: 540px !important;
	padding: 2rem 2.2rem 1.6rem !important;
	font-family: var(--flo-font-body) !important;
	color: var(--flo-text) !important;
}
/* le bloc produit à l'intérieur : à plat (pas de carte dans la carte) */
.vex .notifyjs-metro-base {
	display: flex !important;
	align-items: center !important;
	gap: 1.2rem !important;
	position: static !important;
	min-height: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	white-space: normal !important;
}
.vex .notifyjs-metro-base .image {
	position: static !important;
	transform: none !important;
	display: flex !important;
	align-items: center !important;
	flex: 0 0 auto !important;
	width: auto !important;
	height: auto !important;
}
.vex .notifyjs-metro-base .image img {
	max-height: 112px !important;
	max-width: 112px !important;
	width: auto !important;
	height: auto !important;
	border-radius: 4px !important;
	background: #fff !important;
	padding: 4px !important;
	border: 1px solid var(--flo-border) !important;
	box-shadow: 0 3px 10px rgba(28, 47, 74, .16) !important;
}
.vex .notifyjs-metro-base .text-wrapper {
	display: block !important;
	margin: 0 !important;
	text-align: left !important;
	font-family: var(--flo-font-body) !important;
}
.vex .notifyjs-metro-base .title {
	font-family: var(--flo-font-title) !important;
	font-weight: 600 !important;
	font-size: 1.5rem !important;
	line-height: 1.15 !important;
	color: var(--flo-navy) !important;
	max-width: none !important;
}
.vex .notifyjs-metro-base .text {
	display: block !important;
	margin-top: .35rem !important;
	font-size: 1rem !important;
	color: var(--flo-muted) !important;
	max-width: none !important;
}
.vex .notifyjs-metro-base .text::before {
	content: "\2713";
	display: inline-block;
	margin-right: .45rem;
	font-weight: 700;
	color: var(--flo-gold);
}
/* boutons du popup : pill marine + ghost or */
.vex.vex-theme-default .vex-dialog-buttons {
	display: flex !important;
	justify-content: center !important;
	gap: .9rem !important;
	margin-top: 1.6rem !important;
	padding-top: 1.3rem !important;
	border-top: 1px solid var(--flo-border) !important;
	float: none !important;
}
.vex.vex-theme-default .vex-dialog-buttons::after { display: none !important; }
.vex.vex-theme-default .vex-dialog-button {
	float: none !important;
	margin: 0 !important;
	border-radius: 999px !important;
	text-transform: none !important;
	letter-spacing: .01em !important;
	font-family: var(--flo-font-body) !important;
	font-size: .98rem !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	padding: .6rem 1.5rem !important;
	height: auto !important;
	cursor: pointer;
	transition: background-color .3s, color .3s, border-color .3s, transform .3s !important;
}
/* "Terminer ma commande" : action principale, marine */
.vex.vex-theme-default .vex-dialog-button.vex-first {
	background: var(--flo-navy) !important;
	border: 1px solid var(--flo-navy) !important;
	color: #fdfbf5 !important;
	box-shadow: 0 2px 8px rgba(28, 47, 74, .22) !important;
}
.vex.vex-theme-default .vex-dialog-button.vex-first:hover {
	background: var(--flo-navy-2) !important;
	transform: translateY(-1px);
}
/* "Continuer vos achats" : secondaire, ghost à liseré or */
.vex.vex-theme-default .vex-dialog-button.vex-last {
	background: transparent !important;
	border: 1px solid var(--flo-gold) !important;
	color: var(--flo-navy) !important;
}
.vex.vex-theme-default .vex-dialog-button.vex-last:hover {
	background: var(--flo-soft) !important;
	color: var(--flo-gold) !important;
}

/* ----- Page Panier ----- */
.com_hikashop.view-cart .flo-content { display: flex; flex-direction: column; }
/* titre de page */
.com_hikashop.view-cart .flo-content::before {
	content: "Mon panier";
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 2.4rem;
	line-height: 1.15;
	color: var(--flo-navy);
	align-self: center;
	padding-bottom: .8rem;
	margin-bottom: 2rem;
	border-bottom: 2px solid var(--flo-gold);
}
/* tableau d'abord, boutons dessous */
.com_hikashop.view-cart #hikashop_show_cart_form { order: 1; }
.com_hikashop.view-cart .hika_toolbar { order: 2; margin-top: 1.6rem; }

/* carte autour du tableau */
.com_hikashop.view-cart #hikashop_show_cart_form {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 1rem 1.8rem 1.2rem;
}
.com_hikashop.view-cart .hikashop_cart_products { margin: 0 !important; }
.com_hikashop.view-cart .hikashop_cart_products thead th,
.com_hikashop.view-cart .hikashop_cart_products thead td {
	font-size: .82rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--flo-muted);
	border-bottom: 2px solid var(--flo-gold);
	padding: .9rem .8rem;
}
.com_hikashop.view-cart .hikashop_cart_products tbody td {
	padding: 1.1rem .8rem;
	border-bottom: 1px solid var(--flo-border);
	background: transparent !important;
	box-shadow: none !important;
	vertical-align: middle;
}
/* nom du livre : titre élégant */
.com_hikashop.view-cart .hikashop_cart_product_name a,
.com_hikashop.view-cart .hikashop_cart_product_name_value a {
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.3rem;
	color: var(--flo-navy);
}
.com_hikashop.view-cart .hikashop_cart_product_name a:hover,
.com_hikashop.view-cart .hikashop_cart_product_name_value a:hover { color: var(--flo-gold); }
/* vignette de couverture : pas de float (sinon le nom colle en haut), centrage vertical.
   ⚠️ deux graphies selon la vue HikaShop : cart_product_image (show.php) et product_cart_image (showcart.php) */
.com_hikashop.view-cart img.hikashop_cart_product_image,
.com_hikashop.view-cart img.hikashop_product_cart_image {
	float: none !important;
	display: inline-block;
	max-height: 84px;
	width: auto;
	border-radius: 4px;
	background: #fff;
	padding: 3px;
	border: 1px solid var(--flo-border);
	box-shadow: 0 2px 6px rgba(28, 47, 74, .12);
	vertical-align: middle;
	margin-right: 1rem !important;
}
.com_hikashop.view-cart .hikashop_cart_product_name {
	display: inline-block;
	vertical-align: middle;
	max-width: calc(100% - 130px);
}
/* colonne Quantité : centrée (steppers, en-tête et total alignés) */
.com_hikashop.view-cart .hikashop_cart_products thead tr > *:nth-child(4),
.com_hikashop.view-cart .hikashop_cart_products td[data-title="Quantité"],
.com_hikashop.view-cart .hikashop_cart_product_quantity_value {
	text-align: center !important;
}
/* colonnes de prix : alignées à droite (en-têtes, valeurs et total) */
.com_hikashop.view-cart .hikashop_cart_products thead tr > *:nth-child(3),
.com_hikashop.view-cart .hikashop_cart_products thead tr > *:last-child,
.com_hikashop.view-cart .hikashop_cart_products tbody td[data-title="Prix à l'unité"],
.com_hikashop.view-cart .hikashop_cart_products tbody tr > td:last-child,
.com_hikashop.view-cart .hikashop_cart_products tfoot td:last-child,
.com_hikashop.view-cart tr[class*="total"] td:last-child {
	text-align: right !important;
}
/* ligne de total */
.com_hikashop.view-cart .hikashop_cart_products tfoot td,
.com_hikashop.view-cart tr[class*="total"] td {
	border-top: 2px solid var(--flo-gold);
	border-bottom: 0;
	background: transparent !important;
	font-family: var(--flo-font-title);
	font-weight: 700;
	font-size: 1.35rem;
	color: var(--flo-navy);
	padding: 1.1rem .8rem .4rem;
}
.com_hikashop.view-cart .hikashop_cart_products tfoot td:nth-last-child(2),
.com_hikashop.view-cart tr[class*="total"] td:nth-last-child(2) {
	text-align: center !important;
}

/* barre d'actions : lien "Vider" discret à gauche, CTA "Passage en caisse" à droite */
.com_hikashop.view-cart .hika_toolbar,
.com_hikashop.view-cart .hika_toolbar_btn {
	width: 100% !important;
	float: none !important;
}
.com_hikashop.view-cart .hika_toolbar_btn {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	padding-inline: .4rem;
}
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn {
	display: inline-flex !important;
	align-items: center;
	gap: .55rem;
	height: auto;
}
.com_hikashop.view-cart .hika_toolbar_btn .btnIcon,
.com_hikashop.view-cart .hika_toolbar_btn .btnIcon * {
	font-size: 1rem !important;
	line-height: 1 !important;
	width: auto;
	color: inherit !important;
}
.com_hikashop.view-cart .hika_toolbar_btn .btnIcon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}
/* alignement optique du glyphe FA sur le texte (flex ignore vertical-align) */
.com_hikashop.view-cart .hika_toolbar_btn .btnIcon i {
	display: inline-block;
	transform: translateY(1px);
}
.com_hikashop.view-cart .hika_toolbar_btn .btnName { display: inline; }
/* "Sauver" (paniers enregistrés) : masqué — réactivable en supprimant cette règle */
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(3) { display: none !important; }
/* "Vider le panier" : simple lien texte discret */
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(1) {
	order: 1;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--flo-muted) !important;
	font-size: .95rem;
	padding: .4rem .2rem;
	border-radius: 0 !important;
}
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(1) .btnName {
	border-bottom: 1px solid transparent;
	transition: border-color var(--flo-ease);
}
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(1):hover {
	color: #9c2f2f !important;
	transform: none !important;
}
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(1):hover .btnName {
	border-bottom-color: #9c2f2f;
}
/* "Passage en caisse" : l'action principale, généreuse */
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(2) {
	order: 2;
	font-size: 1.08rem;
	font-weight: 600;
	padding: .85rem 2.4rem;
	box-shadow: 0 4px 14px rgba(28, 47, 74, .28) !important;
}
.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(2):hover {
	box-shadow: 0 8px 22px rgba(28, 47, 74, .34) !important;
}
@media (max-width: 640px) {
	.com_hikashop.view-cart .hika_toolbar_btn { flex-direction: column-reverse; align-items: stretch; }
	.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(2) { justify-content: center; }
	.com_hikashop.view-cart .hika_toolbar_btn > a.hikabtn:nth-child(1) { justify-content: center; }
	.com_hikashop.view-cart #hikashop_show_cart_form { padding: .8rem 1rem 1rem; }
}

/* Panier (page) : barre de boutons */
.hikashop_cart_module_buttons,
.hikashop_view_cart_buttons { display: flex; gap: .6rem; justify-content: flex-end; margin-bottom: 1rem; }

/* ----- Boutique HikaShop : tuiles catégories ----- */
.hikashop_subcategories_listing .hikashop_container { margin: 0 0 1.6rem; }
.hikashop_subcategories_listing .hikashop_subcontainer {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	/* !important : la classe .thumbnail de HikaShop (chargée après) écrase le padding */
	padding: 2.4rem 2rem 1.8rem !important;
	text-align: center;
	transition: box-shadow var(--flo-ease), transform var(--flo-ease);
	display: flex;
	flex-direction: column;
	/* neutralise l'égalisation JS des hauteurs (laisse du vide inutile) */
	height: auto !important;
	min-height: 0 !important;
}
.hikashop_subcategories_listing .hikashop_subcontainer:hover {
	box-shadow: var(--flo-shadow);
	transform: translateY(-3px);
	border-color: var(--flo-gold-soft);
}
.hikashop_subcategories_listing .hikashop_category_image {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	float: none;
	flex: 0 0 auto;
}
.hikashop_subcategories_listing .hikashop_category_image img {
	max-height: 240px;
	max-width: 78%;
	width: auto;
	background: #fff;
	padding: 12px;
	border: 1px solid var(--flo-border);
	border-radius: 6px;
	box-shadow: 0 3px 6px rgba(28, 47, 74, .12), 0 14px 30px rgba(28, 47, 74, .18);
	transition: transform var(--flo-ease);
}
.hikashop_subcategories_listing .hikashop_subcontainer:hover .hikashop_category_image img {
	transform: translateY(-4px) scale(1.02);
}
.hikashop_subcategories_listing .hikashop_category_name {
	margin: .7rem 0 0;
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.6rem;
}
/* les cartes prennent la hauteur de leur contenu (pas d'étirement de grille) */
.hikashop_subcategories_listing [class*="hk-row"],
.hikashop_subcategories_listing .hikashop_subcategories { align-items: start; }
.hikashop_subcategories_listing .hikashop_container { height: auto !important; }
/* le <br> que HikaShop insère entre l'image et le titre */
.hikashop_subcategories_listing .hikashop_subcontainer br,
.hikashop_products_listing .hikashop_subcontainer br { display: none; }
.hikashop_subcategories_listing .hikashop_category_name a { color: var(--flo-navy); }
.hikashop_subcategories_listing .hikashop_category_name a:hover { color: var(--flo-gold); }

/* ----- Boutique HikaShop : listing des produits d'une catégorie ----- */
/* masque l'image/description de catégorie redondantes en tête */
.hikashop_category_information > .hikashop_category_image,
.hikashop_category_information > .hikashop_category_description { display: none; }
.hikashop_products_listing .hikashop_product .hikashop_subcontainer {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 2rem 1.6rem 1.7rem !important;
	text-align: center;
	transition: box-shadow var(--flo-ease), transform var(--flo-ease);
	height: auto !important;
	min-height: 0 !important;
}
.hikashop_products_listing .hikashop_product_name { min-height: 0; }
.hikashop_products_listing .hikashop_product .hikashop_subcontainer:hover {
	box-shadow: var(--flo-shadow);
	transform: translateY(-3px);
	border-color: var(--flo-gold-soft);
}
.hikashop_products_listing .hikashop_product_image {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
	width: auto !important;
	max-width: 100%;
	height: auto !important;
	min-height: 0 !important;
	float: none;
}
.hikashop_products_listing .hikashop_product_name { margin-top: .8rem; }
.hikashop_products_listing .hikashop_product_price_full { margin: .6rem 0 .4rem; }
.hikashop_products_listing .hikashop_product_image img {
	max-height: 250px;
	max-width: 84%;
	width: auto;
	height: auto;
	object-fit: contain;
	background: #fff;
	padding: 12px;
	border: 1px solid var(--flo-border);
	border-radius: 6px;
	box-shadow: 0 3px 6px rgba(28, 47, 74, .12), 0 12px 26px rgba(28, 47, 74, .16);
}
.hikashop_products_listing .hikashop_product_name {
	margin-top: 1rem;
	font-family: var(--flo-font-title);
	font-weight: 600;
	font-size: 1.35rem;
	line-height: 1.15;
	min-height: 3.1rem;
}
.hikashop_products_listing .hikashop_product_name a { color: var(--flo-navy); }
.hikashop_products_listing .hikashop_product_name a:hover { color: var(--flo-gold); }
.hikashop_products_listing .hikashop_product_price_full {
	display: block;
	margin: .5rem 0 .7rem;
	color: var(--flo-muted);
}
.hikashop_products_listing .hikashop_product_price {
	color: var(--flo-navy);
	font-family: var(--flo-font-title);
	font-weight: 700;
	font-size: 1.4rem;
}
/* stepper + bouton Ajouter alignés et centrés dans la carte */
.hikashop_products_listing form[name^="hikashop_product_form"] {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .9rem;
	flex-wrap: wrap;
	margin-top: .8rem;
}
.hikashop_products_listing .hikashop_quantity_form { display: flex; align-items: center; }

/* ----- Boutique HikaShop : fiche produit ----- */
#hikashop_product_name_main {
	position: relative;
	padding-bottom: .9rem;
	margin-bottom: 1.6rem;
}
#hikashop_product_name_main::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 72px;
	height: 2px;
	background: var(--flo-gold);
}
/* disposition fiche : image à gauche ; achat puis descriptif à droite */
.hk-row-fluid:has(> #hikashop_product_left_part) {
	display: grid;
	grid-template-columns: minmax(300px, 440px) minmax(0, 1fr);
	grid-template-areas:
		"img buy"
		"img desc"
		".   desc";
	gap: 1.6rem 2.2rem;
	align-items: start;
}
.hk-row-fluid > #hikashop_product_left_part { grid-area: img; width: 100%; }
.hk-row-fluid > #hikashop_product_right_part { grid-area: buy; width: 100%; }
.hk-row-fluid > .flo-desc-cell { grid-area: desc; }
@media (max-width: 860px) {
	.hk-row-fluid:has(> #hikashop_product_left_part) {
		grid-template-columns: 1fr;
		grid-template-areas: "img" "buy" "desc";
		gap: 1.4rem;
	}
}
#hikashop_product_left_part {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 1.5rem;
	text-align: center;
}
#hikashop_main_image_div img {
	border-radius: 6px;
	max-height: 540px;
	width: auto;
	background: #fff;
	padding: 14px;
	border: 1px solid var(--flo-border);
	box-shadow: 0 3px 6px rgba(28, 47, 74, .10), 0 14px 30px rgba(28, 47, 74, .14);
}
#hikashop_product_price_main {
	font-family: var(--flo-font-title);
	font-weight: 700;
	font-size: 1.7rem;
	color: var(--flo-navy);
}
/* prix au poids : sans intérêt pour des livres */
.hikashop_product_price_per_weight_unit { display: none; }

/* colonne d'achat : carte structurée, prix + quantité + bouton sur une ligne */
.hk-row-fluid > div#hikashop_product_right_part,
#hikashop_product_right_part {
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 1.4rem 1.8rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.6rem;
}
#hikashop_product_right_part > br { display: none; }
#hikashop_product_right_part > * { order: 4; }
#hikashop_product_price_main { margin: 0; order: 1; }
#hikashop_product_quantity_main {
	margin: 0;
	order: 2;
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}
/* le libellé "l'unité" derrière le prix : superflu */
.flo-main .hikashop_product_price_per_unit { display: none; }
/* champ personnalisé (dédicace) : en bloc, pleine largeur de la carte,
   sous la ligne prix/quantité/bouton */
#hikashop_product_custom_item_info { margin: 0; flex-basis: 100%; order: 3; }
.hikashop_product_custom_item_info_table,
.hikashop_product_custom_item_info_table tbody,
.hikashop_product_custom_item_info_table tr,
.hikashop_product_custom_item_info_table td {
	display: block;
	width: 100%;
	border: 0;
	padding: 0;
	text-align: left;
}
.hikashop_product_custom_item_info_table td { margin-bottom: .35rem; }
#hikashop_product_custom_item_info textarea,
#hikashop_product_custom_item_info input[type="text"] {
	width: 100%;
	min-height: 88px;
}
#hikashop_product_custom_item_info input[type="text"] { min-height: 0; }
.hikashop_quantity_form {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.hikashop_quantity_form .hikashop_product_quantity_div { margin: 0; }

/* ----- Stepper quantité (−/+) : même hauteur que les boutons pill ----- */
.flo-qty {
	display: inline-flex;
	align-items: stretch;
	height: 40px;
	border: 1px solid #d9d6cd;
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
	vertical-align: middle;
}
.flo-qty button {
	width: 1.9rem;
	border: 0;
	background: transparent;
	color: var(--flo-navy);
	font-size: .95rem;
	line-height: 1;
	cursor: pointer;
	transition: background var(--flo-ease), color var(--flo-ease);
	padding: 0;
}
.flo-qty button:hover { background: var(--flo-soft); color: var(--flo-gold); }
.flo-main .flo-qty input.hikashop_product_quantity_field {
	width: 2rem;
	min-width: 0;
	height: 100%;
	border: 0;
	border-radius: 0;
	text-align: center;
	padding: 0;
	font-size: .98rem;
	background: transparent;
	box-shadow: none;
	-moz-appearance: textfield;
	appearance: textfield;
}
.flo-qty input::-webkit-outer-spin-button,
.flo-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.flo-main .flo-qty input.hikashop_product_quantity_field:focus { box-shadow: none; border: 0; }
.flo-qty__value {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.8rem;
	padding: 0 .1rem;
	font-size: .98rem;
	font-weight: 600;
	color: var(--flo-text);
}
.flo-qty-hidden { display: none !important; }
.hikashop_product_page .hikashop_product_description_main,
#hikashop_product_description_main {
	max-width: 900px;
	margin-top: 1.5rem;
	font-size: 1em;
	line-height: 1.65;
}
/* descriptif déplacé dans la colonne droite : pleine largeur de colonne */
#hikashop_product_description_main.flo-desc-cell {
	max-width: none;
	margin-top: 0;
}
/* l'aperçu (iframe) dans la description */
#hikashop_product_description_main details.flo-acc { max-width: 900px; }

/* Boutique : sous-menu, sections, livres */
.flo-shop-nav {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	justify-content: center;
	margin-bottom: 1.5rem;
}
/* ancres de sections : boutons "ghost" élégants */
.flo-main .flo-shop-nav a.btn {
	background: transparent;
	color: var(--flo-navy);
	border: 1px solid var(--flo-gold);
	box-shadow: none;
	font-size: .88rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .45rem 1.3rem;
}
.flo-main .flo-shop-nav a.btn:hover {
	background: var(--flo-navy);
	border-color: var(--flo-navy);
	color: #fdfbf5;
	transform: none;
	box-shadow: 0 4px 12px rgba(28, 47, 74, .18);
}
.flo-shop-section {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin: 3.4rem 0 1.6rem;
	scroll-margin-top: 110px;
	color: var(--flo-navy);
	position: relative;
}
.flo-shop-section::before,
.flo-shop-section::after {
	content: "";
	flex: 1;
	height: 1px;
	background: linear-gradient(to right, transparent, var(--flo-gold-soft));
}
.flo-shop-section::after { background: linear-gradient(to left, transparent, var(--flo-gold-soft)); }
.flo-shop-section img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	border-radius: 50%;
	border: 2px solid var(--flo-gold-soft);
	padding: 2px;
	background: var(--flo-surface);
	box-shadow: var(--flo-shadow-sm);
}

/* Carte livre */
.flo-book {
	display: grid;
	grid-template-columns: 270px minmax(0, 1fr);
	gap: 2.4rem;
	align-items: start;
	background: var(--flo-surface);
	border: 1px solid var(--flo-border);
	border-radius: var(--flo-radius);
	box-shadow: var(--flo-shadow-sm);
	padding: 2rem 2.2rem;
	margin-bottom: 1.8rem;
	transition: box-shadow var(--flo-ease), transform var(--flo-ease);
}
.flo-book:hover {
	box-shadow: var(--flo-shadow);
	transform: translateY(-2px);
}
.flo-book__media { text-align: center; }
.flo-book__media img {
	max-width: 225px;
	border-radius: 4px;
	box-shadow: 0 3px 6px rgba(28, 47, 74, .12), 0 14px 30px rgba(28, 47, 74, .18);
	transition: transform var(--flo-ease), box-shadow var(--flo-ease);
}
.flo-book__media a:hover img {
	transform: translateY(-4px) scale(1.015);
	box-shadow: 0 6px 10px rgba(28, 47, 74, .14), 0 22px 40px rgba(28, 47, 74, .22);
}
.flo-book__info h3 {
	position: relative;
	color: var(--flo-navy);
	font-size: 1.9rem;
	font-weight: 600;
	margin: 0 0 1rem;
	padding-bottom: .55rem;
}
.flo-book__info h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 56px;
	height: 2px;
	background: var(--flo-gold);
}
/* zone d'achat sous la couverture */
.flo-book__buy { margin-top: 1.3rem; }
.flo-book__buy .hikashop_product_price_full {
	display: block;
	font-size: 1.05rem;
	color: var(--flo-muted);
	margin-bottom: .7rem;
}
.flo-book__buy .hikashop_product_price {
	color: var(--flo-navy);
	font-family: var(--flo-font-title);
	font-weight: 700;
	font-size: 1.55rem;
	letter-spacing: .01em;
}
.flo-book__buy form > * { vertical-align: middle; }
.flo-book__buy .hikashop_product_quantity_div { display: inline-block; margin-right: .5rem; }
@media (max-width: 860px) {
	.flo-book { grid-template-columns: 1fr; padding: 1.4rem 1.2rem; }
}

/* Accordéons natifs (details/summary) */
details.flo-acc {
	border: 1px solid var(--flo-border);
	border-left: 3px solid var(--flo-gold-soft);
	border-radius: 0 var(--flo-radius-sm) var(--flo-radius-sm) 0;
	margin: .9rem 0;
	background: var(--flo-bg);
	transition: border-color var(--flo-ease);
}
details.flo-acc[open] { border-left-color: var(--flo-gold); }
details.flo-acc summary {
	cursor: pointer;
	padding: .6rem 1.1rem;
	font-weight: 600;
	font-size: .88rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--flo-navy);
}
details.flo-acc summary:hover { color: var(--flo-gold); }
details.flo-acc .flo-acc__body { padding: .3rem 1.2rem 1.1rem; }

/* Lightbox */
.flo-lightbox {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(10, 10, 15, .92);
	padding: 3rem;
}
.flo-lightbox.is-open { display: flex; }
.flo-lightbox img {
	max-width: 100%;
	max-height: calc(100vh - 6rem);
	width: auto;
	height: auto;
	border-radius: var(--flo-radius-sm);
	box-shadow: 0 10px 50px rgba(0, 0, 0, .6);
	cursor: zoom-in;
}
/* zoom de lecture : clic sur l'image → taille réelle + défilement */
.flo-lightbox.is-zoomed {
	display: block;
	overflow: auto;
	padding: 3rem;
	text-align: center;
}
.flo-lightbox.is-zoomed img {
	max-width: none;
	max-height: none;
	cursor: zoom-out;
}
.flo-lightbox button {
	position: absolute;
	background: none;
	border: 0;
	color: #fff;
	font-size: 2.2rem;
	line-height: 1;
	cursor: pointer;
	padding: .6rem .9rem;
	opacity: .75;
	transition: opacity var(--flo-ease);
}
.flo-lightbox button:hover { opacity: 1; }
.flo-lightbox__close { top: .6rem; right: .8rem; font-size: 2.8rem; }
.flo-lightbox__prev { left: .4rem; top: 50%; transform: translateY(-50%); }
.flo-lightbox__next { right: .4rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) {
	.flo-lightbox { padding: 2.6rem 1rem; }
}

/* ----- Footer ----- */
.flo-footer {
	background: var(--flo-bar);
	color: var(--flo-bar-text);
	padding-block: 1.8rem;
	margin-top: 2.5rem;
	text-align: center;
	font-size: 1rem;
	border-top: 3px solid var(--flo-gold);
}
.flo-footer a { color: var(--flo-bar-text); }
.flo-footer a:hover { color: #fff; }
.flo-footer__credit { margin: 0; }

/* ----- Bouton retour en haut ----- */
.flo-top {
	position: fixed;
	right: 18px; bottom: 18px;
	width: 46px; height: 46px;
	display: flex; align-items: center; justify-content: center;
	background: var(--flo-navy);
	color: var(--flo-gold-soft);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	box-shadow: var(--flo-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity var(--flo-ease), transform var(--flo-ease), background var(--flo-ease), visibility var(--flo-ease);
	z-index: 1100;
}
.flo-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.flo-top:hover { background: var(--flo-navy-2); transform: translateY(-3px); }
.flo-top svg { width: 20px; height: 20px; }

/* ----- Responsive ----- */
@media (max-width: 860px) {
	body { font-size: 19px; }
	.flo-main { padding-block: 2.2rem; }

	/* menu standard : on affiche le hamburger maison */
	.flo-nav-toggle { display: block; }
	.flo-nav {
		position: absolute;
		left: 0; right: 0; top: 100%;
		background: var(--flo-bg);
		border-bottom: 1px solid var(--flo-border);
		box-shadow: var(--flo-shadow);
		display: none;
	}
	.flo-nav.is-open { display: block; }
	.flo-nav > ul,
	.flo-nav ul.mod-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: .5rem var(--flo-gap);
	}
	.flo-nav ul.mod-menu a { padding: .7rem .25rem; border-bottom: 1px solid var(--flo-border); }

	.flo-topbar__inner { justify-content: center; row-gap: .3rem; }
	.flo-contact-list { justify-content: center; }
}

@media (max-width: 480px) {
	.flo-header__logo { font-size: 1.35rem; }
	h1 { font-size: 1.9rem; }
	h2 { font-size: 1.65rem; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.flo-banner > * { animation: none; }
	/* on coupe les animations et les déplacements/zooms, mais on garde
	   les fondus (opacité/couleur), sans risque et bien plus agréables */
	* { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
	.flo-mosa__img,
	.flo-tile img,
	.hikashop_subcontainer img { transition: none !important; }
	.flo-mosa__tile:hover .flo-mosa__img { transform: none; }
	a:hover, button:hover, .flo-card:hover, .hikashop_subcontainer:hover { transform: none !important; }
}
