/* ============================================================
   ANCIENS AUTOCOLLANTS — Design vintage / rétro
   Palette : bleu royal, or antique, crème ivoire, noir graphite
   ============================================================ */
:root {
	--brand-red:        #1e3a8a;
	--brand-red-dark:   #152d6e;
	--brand-red-lgt:    #2548c2;
	--brand-gold:       #c9a84c;
	--brand-gold-lgt:   #e8c96a;
	--brand-dark:       #1a1a1a;
	--brand-charcoal:   #2d2d2d;
	--brand-creme:      #faf6ef;
	--brand-creme-dk:   #ede5d4;
	--brand-ivoire:     #f5f0e8;
	--brand-muted:      #666;
	--brand-light:      #f8f6f2;
}

/* --- Typographie --- */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;600;700&family=Source+Sans+3:wght@400;500;600&display=swap');

body {
	font-family: 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
	color: var(--brand-dark);
	background: #fff;
}

h1, h2, h3, .display-font {
	font-family: 'Oswald', 'Impact', sans-serif;
	letter-spacing: .02em;
}

/* --- Barre supérieure --- */
.topbar {
	background: var(--brand-dark);
	color: rgba(255,255,255,.78);
	font-size: .82rem;
}
.topbar a { color: rgba(255,255,255,.85); text-decoration: none; }
.topbar a:hover { color: #fff; }
.topbar-sep { opacity: .35; margin: 0 .3rem; }

/* --- Navbar --- */
.navbar {
	background: var(--brand-red) !important;
	padding: .45rem 0;
}
.navbar-brand {
	background: #fff;
	border-radius: 6px;
	padding: .3rem .7rem;
}
.navbar-brand img { height: 56px; width: auto; display: block; }
.navbar .nav-link {
	color: rgba(255,255,255,.88) !important;
	font-family: 'Oswald', sans-serif;
	font-weight: 400;
	font-size: 1rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: .5rem .9rem !important;
	border-radius: 4px;
	transition: background .15s, color .15s;
}
.navbar .nav-link:hover { color: #fff !important; background: rgba(255,255,255,.12); }
.navbar .nav-link.active { color: var(--brand-gold-lgt) !important; font-weight: 600; }
.navbar-toggler { border: 1px solid rgba(255,255,255,.4); }
.navbar-toggler-icon { filter: invert(1); }
.btn-nav-icon, .btn-panier {
	background: rgba(255,255,255,.15);
	color: #fff;
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 5px;
	transition: background .15s;
}
.btn-nav-icon { padding: .42rem .7rem; font-size: .9rem; }
.btn-panier   { padding: .42rem .75rem; font-size: 1rem; }
.btn-nav-icon:hover, .btn-panier:hover { background: rgba(255,255,255,.25); color: #fff; }
.btn-nav-icon::after { display: none; }
.navbar .dropdown-menu { border-radius: 8px; box-shadow: 0 6px 24px rgba(0,0,0,.14); min-width: 180px; border: 0; }
.navbar .dropdown-item { font-size: .9rem; padding: .5rem 1rem; }
.navbar .dropdown-item:hover { background: var(--brand-creme); }

/* --- Bandeau promo --- */
.promo-banner {
	background: var(--brand-gold);
	color: #fff;
	text-align: center;
	padding: .45rem 1rem;
	font-weight: 700;
	font-family: 'Oswald', sans-serif;
	letter-spacing: .05em;
	font-size: .9rem;
}
.promo-banner .code {
	background: rgba(255,255,255,.2);
	border-radius: 4px;
	padding: 2px 9px;
	margin: 0 4px;
	letter-spacing: .12em;
}

/* --- Layout main --- */
main.main-fullwidth { width: 100%; padding: 0; margin: 0; }

/* --- Boutons généraux --- */
.btn-primary { background: var(--brand-red); border-color: var(--brand-red); font-weight: 600; }
.btn-primary:hover { background: var(--brand-red-lgt); border-color: var(--brand-red-lgt); }
.btn-outline-secondary { border-color: var(--brand-red); color: var(--brand-red); font-weight: 600; }
.btn-outline-secondary:hover { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }

/* --- Héro accueil --- */
.hero-home {
	background: var(--brand-dark);
	padding: 0;
	position: relative;
	overflow: hidden;
	min-height: 480px;
	display: flex;
	align-items: center;
}
.hero-home-inner {
	position: relative;
	z-index: 1;
	padding: 5rem 0 4rem;
}
.hero-badge-top {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(30,58,138,.15);
	color: var(--brand-gold-lgt);
	border: 1px solid rgba(201,162,39,.3);
	border-radius: 3px;
	font-family: 'Oswald', sans-serif;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: .3rem 1rem;
	margin-bottom: .75rem;
}
.hero-title {
	font-family: 'Oswald', sans-serif;
	font-size: clamp(2.2rem, 5vw, 3.8rem);
	font-weight: 700;
	color: #fff;
	line-height: 1.12;
	margin-bottom: 1rem;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.hero-title span { color: var(--brand-gold-lgt); }
.hero-subtitle {
	font-size: 1.05rem;
	color: rgba(255,255,255,.72);
	margin-bottom: 2rem;
	max-width: 480px;
	line-height: 1.65;
}
.hero-badges { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.hero-badge {
	background: rgba(255,255,255,.08);
	border-radius: 3px;
	padding: .28rem .9rem;
	font-size: .8rem;
	font-weight: 600;
	border: 1px solid rgba(255,255,255,.12);
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: rgba(255,255,255,.88);
	font-family: 'Oswald', sans-serif;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.hero-badge i { color: var(--brand-gold-lgt); }
.btn-hero-primary, .btn-hero-outline {
	border-radius: 4px;
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .75rem 1.8rem;
	transition: all .18s;
}
.btn-hero-primary { background: var(--brand-red); color: #fff; border: none; }
.btn-hero-primary:hover { background: var(--brand-red-lgt); color: #fff; }
.btn-hero-outline { border: 1.5px solid rgba(255,255,255,.4); color: #fff; background: transparent; }
.btn-hero-outline:hover { background: rgba(255,255,255,.1); color: #fff; }

/* Collage stickers hero */
.hero-stickers-wall {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	padding: 2rem 0;
}
.hero-sticker-item {
	background: var(--brand-creme);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 3px 3px 12px rgba(0,0,0,.3);
	transform: rotate(var(--rot, 0deg));
	transition: transform .2s;
}
.hero-sticker-item:hover { transform: rotate(0deg) scale(1.04); }
.hero-sticker-item img { width: 100%; height: 80px; object-fit: cover; display: block; }

/* --- Bande arguments --- */
.args-strip { background: var(--brand-charcoal); padding: 2.5rem 0; }
.arg-item { text-align: center; color: #fff; }
.arg-icon {
	width: 52px; height: 52px; border-radius: 50%;
	background: rgba(30,58,138,.25);
	border: 1px solid rgba(30,58,138,.4);
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto .9rem; font-size: 1.3rem; color: var(--brand-gold-lgt);
}
.arg-item h5 { font-family: 'Oswald', sans-serif; font-weight: 600; font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .25rem; }
.arg-item p  { font-size: .8rem; opacity: .68; margin: 0; line-height: 1.4; }

/* --- Sections --- */
.home-section, .home-section-creme { padding: 4.5rem 0; }
.home-section { background: #fff; }
.home-section-creme { background: var(--brand-creme); }

.section-label {
	font-family: 'Oswald', sans-serif;
	font-size: .72rem; font-weight: 700;
	letter-spacing: .2em; text-transform: uppercase;
	color: var(--brand-red); margin-bottom: .35rem;
}
.section-title {
	font-size: clamp(1.6rem, 3vw, 2.3rem);
	font-weight: 700; color: var(--brand-dark); margin-bottom: .5rem;
	text-transform: uppercase;
}
.section-subtitle { color: var(--brand-muted); font-size: 1rem; }

/* --- Page header --- */
.page-header-strip {
	background: var(--brand-dark);
	border-bottom: 3px solid var(--brand-red);
	padding: 2.5rem 0 2rem;
}
.page-header-title { font-size: clamp(1.7rem, 3vw, 2.4rem); color: #fff; margin-bottom: .3rem; text-transform: uppercase; }
.page-header-sub { color: rgba(255,255,255,.55); font-size: .95rem; margin: 0; }

/* --- Cartes produits --- */
.product-card {
	background: #fff;
	border-radius: 6px;
	border: 1.5px solid var(--brand-creme-dk);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: box-shadow .2s, transform .2s;
}
.product-card:hover { box-shadow: 0 8px 30px rgba(0,0,0,.1); transform: translateY(-2px); }
.product-card--featured { border-color: var(--brand-red); }
.product-badge-bestseller {
	position: absolute; top: 10px; left: 10px;
	background: var(--brand-red); color: #fff;
	border-radius: 3px; font-size: .7rem; font-weight: 700;
	font-family: 'Oswald', sans-serif; letter-spacing: .08em;
	text-transform: uppercase; padding: 3px 10px; z-index: 1;
}
.product-card-img { height: 220px; background-size: cover; background-position: center; }
.product-card-img-tag { width: 100%; height: 210px; object-fit: cover; display: block; border-radius: 5px 5px 0 0; }
.product-card-body { padding: 1.2rem 1.2rem 1.4rem; flex: 1; display: flex; flex-direction: column; }
.product-card h3, .product-card-title {
	font-family: 'Oswald', sans-serif;
	font-weight: 600; color: var(--brand-dark);
	text-transform: uppercase; letter-spacing: .04em;
}
.product-card h3 { font-size: 1.2rem; margin-bottom: .45rem; }
.product-card-title { font-size: 1.1rem; }
.product-card p { font-size: .9rem; color: var(--brand-muted); margin-bottom: .7rem; line-height: 1.55; }
.spec-tag {
	display: inline-block; background: var(--brand-creme);
	border-radius: 3px; font-size: .72rem; font-weight: 600;
	color: var(--brand-red); padding: 2px 8px;
	font-family: 'Oswald', sans-serif; letter-spacing: .06em; text-transform: uppercase;
}
.product-price-line { display: flex; align-items: baseline; gap: 6px; margin-bottom: 1rem; }
.price-label { font-size: .8rem; color: var(--brand-muted); }
.price-value { font-family: 'Oswald', sans-serif; font-size: 1.5rem; font-weight: 700; color: var(--brand-red); }

/* Badge marque */
.marque-badge {
	display: inline-block;
	background: var(--brand-charcoal);
	color: rgba(255,255,255,.85);
	font-family: 'Oswald', sans-serif;
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: 3px;
	padding: 2px 8px;
	margin-bottom: .5rem;
}

/* Badge sur mesure */
.sur-mesure-badge {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	background: rgba(30,58,138,.1);
	color: var(--brand-red);
	border: 1px solid rgba(30,58,138,.2);
	border-radius: 3px;
	font-family: 'Oswald', sans-serif;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 2px 8px;
}

/* Filtres marques */
.filter-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-tab {
	background: #fff;
	border: 1.5px solid var(--brand-creme-dk);
	border-radius: 3px;
	color: var(--brand-muted);
	font-family: 'Oswald', sans-serif;
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: .38rem 1rem;
	cursor: pointer;
	transition: all .15s;
	text-decoration: none;
}
.filter-tab:hover { border-color: var(--brand-red); color: var(--brand-red); }
.filter-tab.active { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }

/* --- Layout produits --- */
.produits-layout, .produit-detail-layout { padding-top: 2.5rem; padding-bottom: 4rem; }
.products-type-heading {
	font-family: 'Oswald', sans-serif;
	font-size: 1.4rem; font-weight: 700;
	color: var(--brand-dark);
	text-transform: uppercase; letter-spacing: .06em;
	padding: .6rem 0 .25rem;
	border-bottom: 2px solid var(--brand-red);
	margin-bottom: .5rem;
}

/* Breadcrumb produit */
.produit-breadcrumb { font-size: .82rem; margin-bottom: 0; }
.produit-breadcrumb .breadcrumb-item a { color: var(--brand-red); text-decoration: none; }
.produit-breadcrumb .breadcrumb-item.active { color: var(--brand-muted); }
.produit-img-wrap {
	border-radius: 8px; overflow: hidden;
	border: 1.5px solid var(--brand-creme-dk);
	position: sticky; top: 80px;
}
.produit-img { width: 100%; height: auto; display: block; }
.produit-detail-title {
	font-family: 'Oswald', sans-serif;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	color: var(--brand-dark); text-transform: uppercase;
	letter-spacing: .04em; margin-bottom: .75rem;
}
.produit-description { font-size: .95rem; color: var(--brand-muted); line-height: 1.7; }

/* Prix produit */
.produit-prix-block {
	background: var(--brand-dark);
	border-radius: 6px;
	padding: 1rem 1.25rem;
	color: #fff;
}
.produit-prix-label { font-size: .8rem; color: rgba(255,255,255,.6); }
.produit-prix-value { font-family: 'Oswald', sans-serif; font-size: 2.2rem; font-weight: 700; color: var(--brand-gold-lgt); }
.produit-prix-ht { font-size: .85rem; color: rgba(255,255,255,.5); }

/* Sélecteur dimensions sur mesure */
.dim-selector-block {
	background: var(--brand-creme);
	border: 1.5px solid var(--brand-creme-dk);
	border-left: 4px solid var(--brand-red);
	border-radius: 6px;
	padding: 1.1rem 1.25rem;
	margin-bottom: 1.25rem;
}
.dim-selector-title {
	font-family: 'Oswald', sans-serif;
	font-size: .95rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .08em;
	color: var(--brand-dark); margin-bottom: .85rem;
}
/* Rangée L × H côte à côte */
.dim-inputs-row {
	display: flex;
	align-items: flex-end;
	gap: .6rem;
}
.dim-field { display: flex; flex-direction: column; gap: .25rem; }
.dim-field-label {
	font-size: .75rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .07em;
	color: var(--brand-muted);
}
.dim-field-input-wrap { display: flex; align-items: center; gap: .3rem; }
.dim-cross {
	font-size: 1.3rem; font-weight: 700;
	color: var(--brand-muted);
	padding-bottom: .35rem;
	flex-shrink: 0;
}
.dim-input {
	width: 90px; text-align: center;
	font-size: 1.05rem; font-weight: 700;
	border: 1.5px solid var(--brand-creme-dk);
	border-radius: 5px; padding: .45rem .5rem;
	background: #fff;
	-moz-appearance: textfield;
}
.dim-input::-webkit-outer-spin-button,
.dim-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.dim-input:focus { border-color: var(--brand-red); outline: none; box-shadow: 0 0 0 3px rgba(30,58,138,.1); }
.dim-unit-inline { font-size: .8rem; color: var(--brand-muted); flex-shrink: 0; }
.dim-surface-result { font-size: .88rem; color: var(--brand-muted); }
.dim-surface-result strong { color: var(--brand-dark); font-weight: 700; }

/* Sélecteur qté */
.qty-stepper { display: inline-flex; align-items: center; border: 1.5px solid var(--brand-creme-dk); border-radius: 5px; overflow: hidden; }
.qty-btn { width: 40px; height: 42px; background: var(--brand-creme); border: none; font-size: 1.2rem; font-weight: 600; color: var(--brand-dark); cursor: pointer; flex-shrink: 0; transition: background .15s; }
.qty-btn:hover { background: var(--brand-creme-dk); }
.qty-input { flex: 1; min-width: 40px; width: 54px; border: none; text-align: center; font-size: .97rem; font-weight: 700; color: var(--brand-dark); height: 42px; background: #fff; -moz-appearance: textfield; }
.qty-input::-webkit-outer-spin-button, .qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.qty-input:focus { outline: none; }

/* Réassurance produit */
.produit-reassurance { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; padding: 1rem; background: var(--brand-creme); border-radius: 6px; }
.reassurance-item { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--brand-muted); }
.reassurance-item i { color: var(--brand-red); font-size: .9rem; min-width: 14px; }

/* --- Zone livraison --- */
.zone-select-block {
	background: #fff;
	border: 1.5px solid var(--brand-creme-dk);
	border-left: 4px solid var(--brand-red);
	border-radius: 6px;
	padding: 1.1rem 1.25rem;
	margin-bottom: 1.75rem;
}
.zone-select-label { font-family: 'Oswald', sans-serif; font-size: .9rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--brand-dark); margin-bottom: .85rem; }
.zone-btns { display: flex; gap: .5rem; flex-wrap: wrap; }
.zone-btn {
	flex: 1; min-width: 120px;
	padding: .65rem 1rem;
	border: 2px solid var(--brand-creme-dk);
	border-radius: 5px;
	background: #fff;
	cursor: pointer;
	font-family: 'Oswald', sans-serif;
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--brand-muted);
	transition: all .18s;
	text-align: center;
}
.zone-btn:hover { border-color: var(--brand-red); color: var(--brand-red); }
.zone-btn.active { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }
.zone-btn i { display: block; font-size: 1.4rem; margin-bottom: .25rem; }

/* --- Panier --- */
.panier-layout { padding-top: 2.5rem; padding-bottom: 4rem; }
.panier-section-title { font-family: 'Oswald', sans-serif; font-size: 1.3rem; font-weight: 700; color: var(--brand-dark); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 1.25rem; }
.panier-items { display: flex; flex-direction: column; gap: 1px; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; overflow: hidden; margin-bottom: 1.25rem; }
.panier-item { display: flex; align-items: center; gap: 1rem; background: #fff; padding: 1rem 1.1rem; border-bottom: 1px solid var(--brand-creme-dk); transition: background .15s; }
.panier-item:last-child { border-bottom: none; }
.panier-item:hover { background: var(--brand-creme); }
.panier-item-img { width: 68px; height: 68px; border-radius: 6px; overflow: hidden; flex-shrink: 0; background: var(--brand-creme); }
.panier-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.panier-item-info { flex: 1; min-width: 0; }
.panier-item-nom { font-weight: 600; font-size: .93rem; color: var(--brand-dark); margin-bottom: .2rem; }
.panier-item-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.panier-item-pu { font-size: .82rem; color: var(--brand-muted); }
.panier-item-qty { display: flex; align-items: center; gap: .35rem; flex-shrink: 0; }
.panier-qty-btn { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--brand-creme-dk); background: var(--brand-creme); color: var(--brand-charcoal); font-size: .7rem; transition: background .15s, border-color .15s; text-decoration: none; }
.panier-qty-btn:hover { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }
.panier-qty-value { font-size: .9rem; font-weight: 700; min-width: 22px; text-align: center; color: var(--brand-dark); }
.panier-item-total { font-family: 'Oswald', sans-serif; font-size: 1.1rem; font-weight: 700; color: var(--brand-red); white-space: nowrap; flex-shrink: 0; }
.panier-remove-btn { width: 32px; height: 32px; border-radius: 5px; background: transparent; border: 1.5px solid var(--brand-creme-dk); color: var(--brand-muted); display: inline-flex; align-items: center; justify-content: center; font-size: .85rem; text-decoration: none; transition: all .15s; }
.panier-remove-btn:hover { background: #eef; border-color: var(--brand-red); color: var(--brand-red); }
.panier-clear-btn { font-size: .875rem; text-decoration: none; padding: 0; }
.panier-clear-btn:hover { text-decoration: underline; }
.panier-summary { background: #fff; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; padding: 1.5rem; position: sticky; top: 80px; }
.panier-summary-title { font-family: 'Oswald', sans-serif; font-size: 1.2rem; font-weight: 700; color: var(--brand-dark); text-transform: uppercase; margin-bottom: 1.25rem; padding-bottom: .8rem; border-bottom: 1px solid var(--brand-creme-dk); }
.panier-summary-line { display: flex; justify-content: space-between; align-items: flex-start; gap: .5rem; font-size: .9rem; color: var(--brand-dark); padding: .55rem 0; border-bottom: 1px solid var(--brand-creme-dk); }
.panier-summary-line span:last-child { font-weight: 600; white-space: nowrap; flex-shrink: 0; }
.panier-summary-total { display: flex; justify-content: space-between; align-items: center; padding: .9rem 0 1.1rem; font-weight: 700; font-size: 1.05rem; color: var(--brand-dark); }
.panier-summary-total span:last-child { font-family: 'Oswald', sans-serif; font-size: 1.6rem; color: var(--brand-red); }
.panier-checkout-btn { font-size: .97rem; padding: .85rem; font-family: 'Oswald', sans-serif; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.panier-reassurance { display: flex; flex-direction: column; gap: .45rem; padding: .9rem; background: var(--brand-creme); border-radius: 6px; }
.panier-empty { text-align: center; padding: 5rem 1rem; }
.panier-empty-icon { font-size: 3.5rem; color: var(--brand-creme-dk); margin-bottom: 1.25rem; }
.panier-empty-title { font-family: 'Oswald', sans-serif; font-size: 1.9rem; color: var(--brand-dark); text-transform: uppercase; margin-bottom: .5rem; }
.panier-empty-sub { color: var(--brand-muted); max-width: 420px; margin: 0 auto 2rem; }

.panier-footer-links { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: .5rem; }
.panier-code-form { margin: .25rem 0; }

/* --- Stats strip --- */
.stats-strip { background: var(--brand-red-dark); padding: 2.8rem 0; }
.stat-val { font-family: 'Oswald', sans-serif; font-size: 2.4rem; font-weight: 700; color: #fff; display: block; }
.stat-lbl { font-size: .82rem; color: rgba(255,255,255,.7); margin-top: .2rem; }

/* --- CTA band --- */
.cta-band { background: var(--brand-dark); padding: 3.5rem 0; }
.cta-band-title { color: #fff; font-size: clamp(1.5rem, 3vw, 2rem); font-family: 'Oswald', sans-serif; text-transform: uppercase; margin-bottom: .5rem; }
.cta-band-sub { color: rgba(255,255,255,.65); margin: 0; font-size: .95rem; }
.btn-cta-tel { background: var(--brand-red); color: #fff; border: none; font-family: 'Oswald', sans-serif; font-size: 1rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: .75rem 1.6rem; border-radius: 4px; }
.btn-cta-tel:hover { background: var(--brand-red-lgt); color: #fff; }
.btn-cta-outline { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.35); font-family: 'Oswald', sans-serif; font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; padding: .72rem 1.4rem; border-radius: 4px; }
.btn-cta-outline:hover { background: rgba(255,255,255,.1); color: #fff; }

/* --- Témoignages --- */
.testimonial-card { background: #fff; border-radius: 8px; border: 1.5px solid var(--brand-creme-dk); padding: 1.6rem 1.5rem; height: 100%; }
.testi-stars { color: var(--brand-gold); font-size: .9rem; margin-bottom: .4rem; letter-spacing: .05em; }
.testimonial-card .quote-icon { font-size: 1.8rem; color: var(--brand-creme-dk); margin-bottom: .4rem; }
.testimonial-card blockquote { font-size: .93rem; color: var(--brand-muted); margin: 0 0 .9rem; line-height: 1.65; }
.testimonial-card .author { font-weight: 700; color: var(--brand-red); font-size: .88rem; }

/* --- News cards --- */
.news-card { background: #fff; border-radius: 8px; border: 1.5px solid var(--brand-creme-dk); overflow: hidden; height: 100%; display: flex; flex-direction: column; transition: box-shadow .18s; }
.news-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); }
.news-card-img { height: 220px; background-size: cover; background-position: center; }
.news-card-body { padding: 1.2rem 1.25rem 1.3rem; flex: 1; display: flex; flex-direction: column; }
.news-tag { font-size: .7rem; font-weight: 700; font-family: 'Oswald', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-red); margin-bottom: .5rem; display: block; }
.news-card h3 { font-family: 'Oswald', sans-serif; font-size: 1.05rem; font-weight: 700; color: var(--brand-dark); margin-bottom: .45rem; text-transform: uppercase; }
.news-card p { font-size: .88rem; color: var(--brand-muted); margin-bottom: .75rem; line-height: 1.55; }
.news-link { color: var(--brand-red); font-weight: 600; font-size: .875rem; text-decoration: none; margin-top: auto; }
.news-link:hover { color: var(--brand-red-dark); }

/* --- Footer --- */
.site-footer { background: var(--brand-dark); color: rgba(255,255,255,.65); }
.footer-brand { font-family: 'Oswald', sans-serif; color: #fff; font-size: 1.35rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.footer-tagline { font-size: .85rem; color: rgba(255,255,255,.45); line-height: 1.55; }
.footer-heading { color: var(--brand-gold-lgt); font-family: 'Oswald', sans-serif; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 1rem; }
.footer-links { margin: 0; }
.footer-links li { margin-bottom: .45rem; }
.footer-links a, .site-footer a { color: rgba(255,255,255,.55); text-decoration: none; font-size: .875rem; transition: color .15s; }
.footer-links a:hover, .site-footer a:hover { color: #fff; }
.footer-contact-item { display: flex; align-items: flex-start; gap: 10px; margin-bottom: .65rem; font-size: .875rem; }
.footer-contact-item i { color: var(--brand-red); margin-top: 2px; min-width: 14px; }
.footer-social { display: flex; gap: 8px; }
.footer-social-link { width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.55); text-decoration: none; font-size: .95rem; transition: all .18s; }
.footer-social-link:hover { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }
.footer-copy { border-top: 1px solid rgba(255,255,255,.08); font-size: .77rem; color: rgba(255,255,255,.3); }

/* --- Auth --- */
.auth-layout { min-height: calc(100vh - 120px); display: flex; align-items: center; padding: 3rem 0; background: var(--brand-creme); }
.auth-row { background: #fff; border-radius: 12px; overflow: hidden; border: 1.5px solid var(--brand-creme-dk); min-height: 500px; }
.auth-form-col { padding: 2.75rem 2.5rem; display: flex; flex-direction: column; justify-content: center; }
.auth-title { font-family: 'Oswald', sans-serif; font-size: 1.9rem; font-weight: 700; color: var(--brand-dark); text-transform: uppercase; margin-bottom: .35rem; }
.auth-sub { font-size: .9rem; color: var(--brand-muted); margin-bottom: 1.75rem; }
.auth-input { width: 100%; height: 44px; border: 1.5px solid var(--brand-creme-dk); border-radius: 6px; padding: 0 .9rem; font-size: .93rem; color: var(--brand-dark); background: #fff; transition: border-color .15s; font-family: 'Source Sans 3', Arial, sans-serif; }
.auth-input:focus { outline: none; border-color: var(--brand-red); box-shadow: 0 0 0 3px rgba(30,58,138,.1); }
.auth-submit { margin-top: .5rem; font-size: .97rem; padding: .8rem; font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .06em; }
.auth-side-col { background: var(--brand-dark); padding: 3rem 2.5rem; display: flex; align-items: center; justify-content: center; }
.auth-side-title { font-family: 'Oswald', sans-serif; font-size: 1.9rem; font-weight: 700; color: #fff; text-transform: uppercase; margin-bottom: .75rem; }
.auth-side-sub { font-size: .93rem; color: rgba(255,255,255,.65); line-height: 1.65; margin-bottom: 2rem; }
.auth-side-arg i { color: var(--brand-gold-lgt); font-size: 1rem; min-width: 16px; }

/* --- Checkout steps --- */
.checkout-steps { display: flex; align-items: center; gap: 0; margin-top: .75rem; flex-wrap: wrap; }
.checkout-step { display: flex; align-items: center; gap: 7px; font-size: .82rem; color: var(--brand-muted); }
.checkout-step-num { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; background: var(--brand-creme-dk); color: var(--brand-muted); flex-shrink: 0; }
.checkout-step--done .checkout-step-num { background: var(--brand-charcoal); color: #fff; }
.checkout-step--done .checkout-step-lbl { color: var(--brand-charcoal); }
.checkout-step--active .checkout-step-num { background: var(--brand-red); color: #fff; }
.checkout-step--active .checkout-step-lbl { color: var(--brand-red); font-weight: 700; }
.checkout-step-line { flex: 1; min-width: 24px; height: 2px; background: var(--brand-creme-dk); margin: 0 6px; }
.checkout-step-line--done { background: var(--brand-charcoal); }

/* Confirmation */
.confirm-hero { text-align: center; padding: 2.5rem 1rem 1.75rem; }
.confirm-hero-icon { width: 72px; height: 72px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.9rem; margin: 0 auto 1.25rem; }
.confirm-hero-icon--green { background: rgba(22,163,74,.1); color: #16a34a; }
.confirm-hero-icon--blue { background: rgba(37,99,235,.1); color: #2563eb; }
.confirm-hero-title { font-family: 'Oswald', sans-serif; font-size: clamp(1.7rem, 3vw, 2.3rem); color: var(--brand-dark); text-transform: uppercase; margin-bottom: .5rem; }
.confirm-hero-sub { font-size: 1.05rem; color: var(--brand-dark); max-width: 580px; margin: 0 auto .5rem; line-height: 1.6; }
.confirm-hero-email { font-size: .87rem; color: var(--brand-muted); margin-top: .6rem; }
.confirm-steps-list { display: flex; flex-direction: column; gap: .75rem; margin-top: .75rem; }
.confirm-step { display: flex; align-items: flex-start; gap: 1rem; }
.confirm-step-num { width: 28px; height: 28px; border-radius: 50%; background: var(--brand-red); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; flex-shrink: 0; margin-top: 1px; }
.confirm-step-text { flex: 1; }
.confirm-step-label { font-weight: 700; font-size: .9rem; color: var(--brand-dark); }
.confirm-step-sub { font-size: .8rem; color: var(--brand-muted); margin-top: 2px; line-height: 1.45; }

/* Paginateur produits */
.produits-pagination { display: flex; justify-content: center; gap: 4px; margin-top: 3rem; flex-wrap: wrap; list-style: none; padding: 0; margin-left: 0; }
.produits-pagination li { display: contents; }
.produits-pagination a, .produits-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; border-radius: 4px; border: 1.5px solid var(--brand-creme-dk); font-size: .88rem; font-weight: 700; color: var(--brand-red); text-decoration: none; padding: 0 10px; transition: all .15s; font-family: 'Oswald', sans-serif; }
.produits-pagination a:hover, .produits-pagination .current a { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }
.produits-pagination .disabled a { opacity: .4; pointer-events: none; }

/* Pagination CakePHP 2.x + Bootstrap 5
   CakePHP génère : - lien courant = texte brut dans <li class="page-item active">
                    - disabled     = <li class="disabled"> (sans page-item)      */
.pagination li { list-style: none; }
.pagination .page-item > a,
.pagination .page-item > span { display: block; padding: .375rem .72rem; color: var(--brand-red); text-decoration: none; border: 1px solid var(--brand-creme-dk); background: #fff; line-height: 1.25; transition: color .15s, background .15s, border-color .15s; }
.pagination .page-item > a:hover { background: var(--brand-creme); border-color: var(--brand-red); color: var(--brand-red); }
/* Page courante : texte brut (pas de <a>), on style le <li> directement */
.pagination .page-item.active { padding: .375rem .72rem; background: var(--brand-red); border: 1px solid var(--brand-red); color: #fff; line-height: 1.25; z-index: 3; }
/* Disabled : CakePHP omet page-item, on cible li.disabled */
.pagination li.disabled > a,
.pagination li.disabled > span { display: block; padding: .375rem .72rem; color: var(--brand-muted); text-decoration: none; background: #fff; border: 1px solid var(--brand-creme-dk); pointer-events: none; line-height: 1.25; }
.pagination li:first-child > a,
.pagination li:first-child > span { border-radius: .375rem 0 0 .375rem; }
.pagination li:last-child > a,
.pagination li:last-child > span { border-radius: 0 .375rem .375rem 0; }

/* Flash toast */
#flash-container .toast { border-left: 4px solid var(--brand-red); }

/* Utilitaires */
.price { color: var(--brand-red); font-weight: 700; }
.badge.bg-primary { background-color: var(--brand-red) !important; }
.badge.bg-danger  { background-color: var(--brand-red-dark) !important; }
.pac-container { z-index: 99999 !important; }

/* Livraison layout */
.livraison-layout { padding-top: 2.5rem; padding-bottom: 4rem; }
.livraison-card { background: #fff; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; padding: 1.5rem; margin-bottom: .75rem; }
.livraison-card-title { font-family: 'Oswald', sans-serif; font-size: 1.05rem; font-weight: 700; color: var(--brand-dark); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 1.1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--brand-creme-dk); }

/* Récap */
.recap-layout { padding-top: 2.5rem; padding-bottom: 4rem; }
.recap-card { background: #fff; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; padding: 1.25rem 1.3rem; margin-bottom: .75rem; }
.recap-card-title { font-family: 'Oswald', sans-serif; font-size: 1rem; font-weight: 700; color: var(--brand-dark); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 1rem; padding-bottom: .65rem; border-bottom: 1px solid var(--brand-creme-dk); }
.recap-item { display: flex; align-items: center; gap: .75rem; padding: .7rem 0; border-bottom: 1px solid var(--brand-creme-dk); }
.recap-item:last-child { border-bottom: none; padding-bottom: 0; }
.recap-item-nom { flex: 1; font-size: .9rem; font-weight: 600; color: var(--brand-dark); }
.recap-item-total { font-family: 'Oswald', sans-serif; font-size: 1rem; font-weight: 700; color: var(--brand-red); white-space: nowrap; flex-shrink: 0; min-width: 80px; text-align: right; }
.recap-summary { background: #fff; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; padding: 1.4rem; position: sticky; top: 80px; }
.recap-summary-title { font-family: 'Oswald', sans-serif; font-size: 1.2rem; font-weight: 700; color: var(--brand-dark); text-transform: uppercase; margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--brand-creme-dk); }

/* Modal accueil */
.modal-backdrop { backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); background-color: rgba(0,0,0,.5); opacity: 1 !important; }
.modal-accueil-dialog { max-width: 720px; }
.modal-accueil-content { border: none; border-radius: 8px; overflow: hidden; box-shadow: 0 12px 48px rgba(0,0,0,.3); position: relative; }
.modal-accueil-close { position: absolute; top: .75rem; right: .75rem; z-index: 10; background-color: rgba(255,255,255,.9); border-radius: 50%; width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; opacity: 1; }
.modal-accueil-body { padding: 1.75rem 2rem 2rem; text-align: center; }
.modal-accueil-titre { font-family: 'Oswald', sans-serif; font-size: 1.6rem; color: var(--brand-dark); text-transform: uppercase; margin-bottom: .75rem; }
.modal-accueil-btn { background: var(--brand-red); color: #fff; border: none; border-radius: 4px; padding: .65rem 2rem; font-family: 'Oswald', sans-serif; font-weight: 600; font-size: .95rem; text-transform: uppercase; letter-spacing: .06em; text-decoration: none; display: inline-block; }
.modal-accueil-btn:hover { background: var(--brand-red-dark); color: #fff; }

/* Contact */
.contact-form-card, .contact-info-card { background: #fff; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.06); padding: 1.6rem 1.5rem; height: 100%; }
.contact-form-card .form-control:focus { border-color: var(--brand-red); box-shadow: 0 0 0 .15rem rgba(30,58,138,.12); }
.contact-info-item i { color: var(--brand-red); }

/* Identifiant / livraison forms */
.ident-layout, .livraison-layout, .checkout-layout, .confirm-layout { padding-top: 2.5rem; padding-bottom: 4rem; }
.ident-card { background: #fff; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; padding: 1.75rem; height: 100%; }
.ident-card--register { border-top: 3px solid var(--brand-red); }
.ident-card-icon { background: rgba(30,58,138,.1); color: var(--brand-red); }
.checkout-card { background: #fff; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; padding: 1.5rem; }
.payment-option--active { border-color: var(--brand-red); }
.payment-option--active .payment-option-inner { background: rgba(30,58,138,.04); }
.payment-option--active .payment-option-check { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }
.confirm-hero-title { font-family: 'Oswald', sans-serif; }
.confirm-step-num { background: var(--brand-red); color: #fff; }
.recap-check-input { accent-color: var(--brand-red); }

/* Zone card (livraison step) */
.zone-card {
	border: 2px solid var(--brand-creme-dk);
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	transition: border-color .18s, background .18s;
	text-decoration: none;
}
.zone-card--active {
	border-color: var(--brand-red);
	background: rgba(30,58,138,.04);
}
.zone-card:hover { border-color: var(--brand-red); }

/* Panier image placeholder */
.panier-img-placeholder {
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	background: var(--brand-creme);
	color: var(--brand-creme-dk);
	font-size: 1.4rem;
}

/* Livraison same-address check */
.livraison-same-check { margin-bottom: .75rem; }
.livraison-same-label { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; font-size: .9rem; color: var(--brand-dark); }
.livraison-check-input { display: none; }
.livraison-check-box { width: 18px; height: 18px; border: 1.5px solid var(--brand-creme-dk); border-radius: 3px; background: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.livraison-check-input:checked ~ .livraison-check-box { background: var(--brand-red); border-color: var(--brand-red); color: #fff; }
.livraison-check-box i { font-size: .65rem; display: none; }
.livraison-check-input:checked ~ .livraison-check-box i { display: block; }
.livraison-card--fac { border-color: var(--brand-creme-dk); }
.auth-field { margin-bottom: 1rem; }
.auth-label { display: block; font-size: .8rem; font-weight: 600; color: var(--brand-dark); margin-bottom: .35rem; text-transform: uppercase; letter-spacing: .05em; }
.auth-label-row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .35rem; }
.auth-forgot-link { font-size: .8rem; color: var(--brand-red); text-decoration: none; }

/* Recap zone block */
.recap-zone {
	background: #fff;
	border: 1.5px solid var(--brand-creme-dk);
	border-left: 4px solid var(--brand-red);
	border-radius: 8px;
	padding: 1.1rem 1.25rem;
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex-wrap: wrap;
}
.recap-zone-left { display: flex; align-items: flex-start; gap: .85rem; flex: 1; }
.zone-block-icon { width: 42px; height: 42px; border-radius: 50%; background: rgba(30,58,138,.1); color: var(--brand-red); display: flex; align-items: center; justify-content: center; font-size: 1rem; flex-shrink: 0; }
.recap-zone-title { font-family: 'Oswald', sans-serif; font-size: .95rem; color: var(--brand-dark); text-transform: uppercase; letter-spacing: .04em; margin-bottom: .2rem; }
.recap-zone-dist { font-size: .82rem; color: var(--brand-muted); }
.recap-zone-tarifs { display: flex; flex-direction: column; gap: .35rem; }
.zone-tarif-item { display: flex; align-items: center; gap: .6rem; font-size: .85rem; color: var(--brand-dark); }
.zone-tarif-item span { color: var(--brand-muted); }

/* Recap misc */
.recap-item-meta { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-top: .2rem; }
.recap-item-qty { font-size: .8rem; color: var(--brand-muted); }
.recap-item-pu { font-size: .8rem; color: var(--brand-muted); }
.recap-legal-alert { background: rgba(30,58,138,.06); border: 1px solid rgba(30,58,138,.2); border-radius: 6px; padding: .8rem 1rem; font-size: .82rem; color: var(--brand-dark); margin: 1rem 0; }
.recap-check-item { margin-bottom: .5rem; }
.recap-check-label { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; font-size: .88rem; color: var(--brand-dark); }
.recap-edit-link { font-size: .78rem; color: var(--brand-red); text-decoration: none; display: inline-flex; align-items: center; gap: 3px; margin-top: .6rem; }
.recap-edit-link:hover { text-decoration: underline; color: var(--brand-red-dark); }
.recap-addr { font-size: .87rem; color: var(--brand-dark); line-height: 1.65; }
.recap-back-link { font-size: .82rem; color: var(--brand-muted); text-decoration: none; }
.recap-back-link:hover { color: var(--brand-dark); }
.recap-card--sm { padding: 1rem 1.1rem; }

/* Ident card misc */
.ident-card-header { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; }
.ident-card-icon { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; }
.ident-card-title { font-family: 'Oswald', sans-serif; font-size: 1.1rem; font-weight: 700; color: var(--brand-dark); text-transform: uppercase; }
.ident-card-sub { font-size: .83rem; color: var(--brand-muted); }
.ident-card-icon--orange { background: rgba(230,126,34,.12); color: #e67e22; }
.ident-cgv-note { font-size: .8rem; color: var(--brand-muted); }
.ident-form { display: flex; flex-direction: column; }

/* Payment options */
.payment-options { display: flex; flex-direction: column; gap: .6rem; }
.payment-option { display: block; cursor: pointer; border: 1.5px solid var(--brand-creme-dk); border-radius: 8px; overflow: hidden; transition: border-color .18s; position: relative; }
.payment-option:hover { border-color: var(--brand-charcoal); }
.payment-radio { position: absolute; opacity: 0; pointer-events: none; }
.payment-option-inner { display: flex; align-items: center; gap: .9rem; padding: .95rem 1.1rem; }
.payment-option-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1rem; flex-shrink: 0; }
.payment-option-icon--purple { background: rgba(124,58,237,.1); color: #7c3aed; }
.payment-option-icon--blue { background: rgba(37,99,235,.1); color: #2563eb; }
.payment-option-icon--green { background: rgba(22,163,74,.1); color: #16a34a; }
.payment-option-body { flex: 1; }
.payment-option-title { font-weight: 700; font-size: .93rem; color: var(--brand-dark); }
.payment-option-sub { font-size: .8rem; color: var(--brand-muted); line-height: 1.45; }
.payment-option-check { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--brand-creme-dk); display: flex; align-items: center; justify-content: center; font-size: .55rem; color: transparent; flex-shrink: 0; }
.checkout-pay-btn { font-family: 'Oswald', sans-serif; font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; padding: .85rem 2rem; }

/* Responsive */
@media (max-width: 991.98px) {
	.hero-home-inner { padding: 3rem 0 2.5rem; }
}
@media (max-width: 767.98px) {
	.hero-title { font-size: 2rem; }
	.args-strip { padding: 2rem 0; }
	.stats-strip { padding: 2rem 0; }
	.stat-val { font-size: 2rem; }
	.home-section, .home-section-creme { padding: 3rem 0; }
	.produit-img-wrap { position: static; }
	.produit-reassurance { grid-template-columns: 1fr; }
	.panier-item { gap: .65rem; padding: .8rem .85rem; }
	.panier-item-img { width: 52px; height: 52px; }
	.panier-summary { position: static; margin-top: 1rem; }
	.checkout-step-lbl { display: none; }
	.checkout-step-line { min-width: 12px; }
	.recap-summary { position: static; }
	.auth-layout { align-items: flex-start; padding: 1.5rem 0; }
	.auth-form-col { padding: 2rem 1.5rem; }
	.zone-btns { flex-direction: column; }
}
