/* IWIN Catalogue Designer 0.40 : catalogue filtrable. Tout est limité à .iwin-cat pour ne pas déborder sur le thème (Uncode). */
.iwin-catalogue-template { padding: 0; margin: 0; }
.iwin-cat {
	--iwin-bordeaux: #6B1F32;
	--iwin-bordeaux-fonce: #4A1322;
	--iwin-bordeaux-nuit: #2B0A13;
	--iwin-laiton: #C9A86A;
	--iwin-laiton-fonce: #8A6E35;
	--iwin-ivoire: #F4F1EA;
	--iwin-scene: #FAF8F4;
	--iwin-encre: #1A1A1A;
	--iwin-texte: #3A3536;
	--iwin-texte-doux: #6A6465;
	--iwin-blanc: #FFFFFF;
	--iwin-filet: #E2DCCF;
	--iwin-sans: "Plus Jakarta Sans", "Segoe UI", Helvetica, Arial, sans-serif;
	--iwin-serif: "Instrument Serif", "Cormorant Garamond", Georgia, serif;
	max-width: calc(1300px + 2 * clamp(16px, 5vw, 48px)); margin: 0 auto; padding: 24px clamp(16px, 5vw, 48px) clamp(56px, 8vw, 104px);
	color: var(--iwin-texte); font: 400 17px/1.6 var(--iwin-sans); -webkit-font-smoothing: antialiased; text-align: left;
}
.iwin-cat, .iwin-cat *, .iwin-cat *::before, .iwin-cat *::after { box-sizing: border-box; }
.iwin-cat h1, .iwin-cat h2, .iwin-cat p, .iwin-cat ul { margin: 0; padding: 0; }
.iwin-cat ul { list-style: none; }
.iwin-cat a { text-decoration: none; color: inherit; }
.iwin-cat [hidden] { display: none !important; }
.iwin-cat :focus-visible { outline: 3px solid var(--iwin-laiton); outline-offset: 3px; border-radius: 6px; }

/* Bandeau */
.iwin-cat-head { position: relative; overflow: hidden; isolation: isolate; border-radius: 24px; background: var(--iwin-bordeaux); color: var(--iwin-ivoire); }
.iwin-cat-head::after { content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; right: -160px; top: -220px; border-radius: 50%; border: 44px solid rgba(255, 255, 255, 0.035); box-shadow: 0 0 0 1.5px rgba(201, 168, 106, 0.4); }
.iwin-cat-head-image::after { display: none; }
.iwin-cat .iwin-cat-head-bg { position: absolute; inset: 0; z-index: -2; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.iwin-cat-head-image::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, var(--iwin-bordeaux-fonce) 0, rgba(74, 19, 34, 0.94) 36%, rgba(74, 19, 34, 0.4) 64%, rgba(43, 10, 19, 0.1) 100%); }
.iwin-cat-head-text { display: grid; gap: 20px; padding: clamp(28px, 5vw, 64px); }
.iwin-cat-eyebrow { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--iwin-laiton); }
.iwin-cat-eyebrow::before { content: ""; width: 32px; height: 2px; background: currentColor; flex: none; }
.iwin-cat .iwin-cat-head h1 { max-width: 18ch; font-family: var(--iwin-sans) !important; font-size: clamp(34px, 4.8vw, 60px); font-weight: 800 !important; line-height: 1.04; letter-spacing: -0.03em; color: var(--iwin-blanc) !important; text-transform: none; text-wrap: balance; }
.iwin-cat-desc { max-width: 52ch; font-size: 18px; line-height: 1.55; color: var(--iwin-ivoire); }
.iwin-cat-desc p + p { margin-top: 10px; }
.iwin-cat-promises { display: flex; flex-wrap: wrap; gap: 14px 36px; margin-top: 6px; }
.iwin-cat-promises li { display: flex; align-items: center; gap: 12px; font-size: 13px; line-height: 1.35; color: #DCCBCB; }
.iwin-cat-promises svg { flex: none; width: 40px; height: 40px; padding: 9px; border-radius: 50%; border: 1.5px solid var(--iwin-laiton); color: var(--iwin-laiton); }
.iwin-cat-promises b { display: block; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--iwin-blanc); }
@media (max-width: 760px) { .iwin-cat-head-image::before { background: rgba(74, 19, 34, 0.88); } }

/* Filtres */
.iwin-cat-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; margin-top: 24px; padding: 20px; border-radius: 20px; background: var(--iwin-ivoire); }
.iwin-cat-tools label { display: grid; gap: 6px; min-width: 0; font-size: 13px; font-weight: 700; color: var(--iwin-encre); }
.iwin-cat-search-label { grid-column: span 2; }
.iwin-cat-tools select, .iwin-cat-tools input {
	width: 100%; min-height: 48px; margin: 0; padding: 10px 14px; border-radius: 12px; border: 1px solid #CFC8BB; background-color: var(--iwin-blanc); color: var(--iwin-encre);
	font: 500 15px/1.3 var(--iwin-sans); box-shadow: none; transition: border-color 200ms ease, box-shadow 200ms ease;
}
.iwin-cat-tools select:focus, .iwin-cat-tools input:focus { outline: none; border-color: var(--iwin-bordeaux); box-shadow: 0 0 0 3px rgba(107, 31, 50, 0.18); }
@media (max-width: 520px) { .iwin-cat-search-label { grid-column: auto; } }

.iwin-cat-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 32px 0 24px; }
.iwin-cat-count { font-weight: 700; color: var(--iwin-encre); font-variant-numeric: tabular-nums; }
.iwin-cat-views { display: flex; gap: 6px; }
.iwin-cat-view { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 10px; border: 1px solid var(--iwin-filet); background: var(--iwin-blanc); color: var(--iwin-texte-doux); cursor: pointer; transition: color 200ms ease, border-color 200ms ease; }
.iwin-cat-view svg { width: 20px; height: 20px; }
.iwin-cat-view[aria-pressed="true"] { color: var(--iwin-bordeaux); border-color: var(--iwin-bordeaux); }

/* Grille */
.iwin-cat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.iwin-cat-card { min-width: 0; background: var(--iwin-blanc); border: 1px solid var(--iwin-filet); border-radius: 16px; overflow: hidden; transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease; }
.iwin-cat-card:hover { transform: translateY(-4px); box-shadow: 0 24px 50px rgba(43, 10, 19, 0.1); border-color: transparent; }
.iwin-cat-card-link { display: grid; grid-template-rows: auto 1fr; height: 100%; }
.iwin-cat-image { display: grid; place-items: center; aspect-ratio: 1 / 0.85; padding: 0 !important; background: var(--iwin-scene); overflow: hidden; }
/* Le fond blanc de la photo se fond dans le cadre ivoire ; la machine reste entière. */
.iwin-cat .iwin-cat-image img { display: block; width: 78% !important; height: 86% !important; max-width: 78% !important; max-height: 86% !important; object-fit: contain !important; object-position: center !important; mix-blend-mode: multiply; transform: none; transition: transform 400ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.iwin-cat .iwin-cat-card:hover .iwin-cat-image img { transform: scale(1.05) !important; }
.iwin-cat-no-image { font-size: 13px; color: var(--iwin-texte-doux); }
.iwin-cat-card-body { display: grid; gap: 8px; align-content: start; grid-template-rows: auto auto auto 1fr auto; padding: 20px; }
.iwin-cat-type-label { font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--iwin-laiton-fonce); }
.iwin-cat .iwin-cat-card h2 { font-family: var(--iwin-sans) !important; font-size: 20px; font-weight: 800 !important; line-height: 1.25; letter-spacing: -0.015em; color: var(--iwin-bordeaux) !important; text-transform: none; }
.iwin-cat-ref { font-size: 15px; color: var(--iwin-texte); }
.iwin-cat-data { display: flex; align-items: center; gap: 7px; align-self: start; padding-block: 6px; font-size: 14px; font-weight: 600; color: var(--iwin-encre); font-variant-numeric: tabular-nums; }
.iwin-cat-data::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 2px solid var(--iwin-laiton-fonce); }
.iwin-cat-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 9px 20px; border-radius: 999px; border: 2px solid var(--iwin-bordeaux); font-size: 15px; font-weight: 700; line-height: 1.2; color: var(--iwin-bordeaux); transition: background-color 200ms ease, color 200ms ease; }
.iwin-cat-link svg { width: 18px; height: 18px; }
.iwin-cat-card:hover .iwin-cat-link { background: var(--iwin-bordeaux); color: var(--iwin-blanc); }

.iwin-cat-grid[data-view="list"] { grid-template-columns: minmax(0, 1fr); gap: 14px; }
.iwin-cat-grid[data-view="list"] .iwin-cat-card-link { grid-template-rows: none; grid-template-columns: 200px minmax(0, 1fr); }
.iwin-cat-grid[data-view="list"] .iwin-cat-image { aspect-ratio: auto; min-height: 170px; }
.iwin-cat-grid[data-view="list"] .iwin-cat-link { justify-self: start; }

.iwin-cat-more-wrap { display: flex; justify-content: center; margin-top: 40px; }
.iwin-cat-more, .iwin-cat-reset { min-height: 52px; padding: 13px 28px; border-radius: 999px; border: 2px solid var(--iwin-bordeaux); background: transparent; color: var(--iwin-bordeaux); font: 700 16px/1.2 var(--iwin-sans); cursor: pointer; transition: background-color 200ms ease, color 200ms ease; }
.iwin-cat-more:hover, .iwin-cat-reset:hover { background: var(--iwin-bordeaux); color: var(--iwin-blanc); }
.iwin-cat-empty { display: grid; gap: 14px; justify-items: center; padding: 48px 24px; border-radius: 16px; background: var(--iwin-ivoire); text-align: center; }
.iwin-cat-empty b { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; color: var(--iwin-bordeaux); }
.iwin-cat-admin { margin-top: 24px; font-size: 14px; color: var(--iwin-texte-doux); }
.iwin-cat .iwin-cat-admin a { color: var(--iwin-bordeaux); font-weight: 700; text-decoration: underline; }

@media (max-width: 1100px) { .iwin-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px) { .iwin-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 520px) {
	.iwin-cat-grid { grid-template-columns: minmax(0, 1fr); }
	.iwin-cat-grid[data-view="list"] .iwin-cat-card-link { grid-template-columns: 120px minmax(0, 1fr); }
}
/* Survol : la machine pivote de la vue de face à la vue de biais (image à la une, puis première image de la galerie). */
.iwin-cat .iwin-cat-image.iwin-cat-has-alt { position: relative; perspective: 900px; }
.iwin-cat .iwin-cat-image.iwin-cat-has-alt img { grid-area: 1 / 1; backface-visibility: hidden; transition: transform 1500ms cubic-bezier(0.22, 0.7, 0.2, 1), opacity 1100ms ease, filter 1200ms ease !important; }
.iwin-cat .iwin-cat-image.iwin-cat-has-alt img.iwin-cat-alt { opacity: 0; transform: rotateY(32deg) scale(0.94) !important; filter: blur(7px); }
.iwin-cat .iwin-cat-image.iwin-cat-has-alt::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, 0.75) 50%, transparent 62%); transform: translateX(-120%); pointer-events: none; }
@media (hover: hover) {
	.iwin-cat .iwin-cat-card:hover .iwin-cat-image.iwin-cat-has-alt img.iwin-cat-face { opacity: 0; transform: rotateY(-32deg) scale(0.94) !important; filter: blur(7px); }
	.iwin-cat .iwin-cat-card:hover .iwin-cat-image.iwin-cat-has-alt img.iwin-cat-alt { opacity: 1; transform: rotateY(0deg) scale(1.05) !important; filter: blur(0); }
	.iwin-cat .iwin-cat-card:hover .iwin-cat-image.iwin-cat-has-alt::after { transform: translateX(120%); transition: transform 1700ms cubic-bezier(0.22, 0.7, 0.2, 1) 150ms; }
}
.iwin-cat .iwin-cat-card-link:focus-visible .iwin-cat-image.iwin-cat-has-alt img.iwin-cat-face { opacity: 0; transform: rotateY(-32deg) scale(0.94) !important; filter: blur(7px); }
.iwin-cat .iwin-cat-card-link:focus-visible .iwin-cat-image.iwin-cat-has-alt img.iwin-cat-alt { opacity: 1; transform: rotateY(0deg) scale(1.05) !important; filter: blur(0); }

@media (prefers-reduced-motion: reduce) {
	.iwin-cat *, .iwin-cat *::before, .iwin-cat *::after { transition-duration: 0.01ms !important; }
	.iwin-cat .iwin-cat-image.iwin-cat-has-alt img { transform: none !important; filter: none !important; }
	.iwin-cat .iwin-cat-image.iwin-cat-has-alt::after { display: none; }
}

/* Uncode : le catalogue gère lui-même ses marges, sans celles que le thème ajoute autour du contenu. */
.row-parent:has(> .iwin-cat), .row-container:has(> .row-parent > .iwin-cat), .iwin-cat-plein.iwin-cat-plein { padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important; display: block !important; }

/* Le bandeau du catalogue reste sous l'en-tête et son méga-menu (le thème donne un z-index élevé aux balises header). */
.iwin-cat .iwin-cat-head { z-index: 0 !important; isolation: isolate; }
