/* =========================================================================
   Metronome & Kalista — feuille de style principale
   =========================================================================
   Système à 3 "tiers" visuels validé avec Julien le 20/08 :
     - .tier--kalista          fond très sombre, accent or/champagne, serif
     - .tier--aqwo-classica    fond sombre, accent bronze/cuivre, serif
     - .tier--digital-sharing  fond clair, accent bronze, sans-serif only

   Les tokens ci-dessous reprennent exactement les couleurs utilisées dans
   les maquettes montrées à Julien (hero homepage + comparatif 3 tiers).
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600&family=Michroma&display=swap');

:root {
	/* Neutres communs */
	--mk-bg-dark:        #000000;
	--mk-bg-dark-2:      #000000;
	--mk-text-light:     #f2ede6;
	--mk-text-light-70:  rgba(242, 237, 230, 0.7);
	--mk-bg-light:       #ece7da;
	--mk-text-dark:      #2c2c2a;
	--mk-border:         rgba(255, 255, 255, 0.12);

	/* "Chrome" du site (header, footer, pages communes, formulaires) —
	   noir par défaut. Redéfini en beige pour l'univers Metronome plus
	   bas — demande du 23/08 : essai d'un environnement Metronome
	   entièrement beige, y compris le header/footer/menu et les pages
	   partagées (About Us, Support, Find Us, Register product...),
	   pas seulement les pages produits comme précédemment. */
	--mk-chrome-bg:       var(--mk-bg-dark-2);
	--mk-chrome-bg-2:     #0a0a0a;
	--mk-chrome-text:     var(--mk-text-light);
	--mk-chrome-text-70:  var(--mk-text-light-70);
	--mk-chrome-border:   var(--mk-border);

	/* Accents par univers */
	--mk-accent-kalista:   #d9c07a; /* or / champagne */
	--mk-accent-metronome: #cf9a5f; /* bronze / cuivre */

	/* Couleur des boutons — dorée par défaut (Kalista, fond sombre).
	   Redéfinie plus bas en bronze/cuivre pour l'univers Metronome (fond
	   clair) où le doré manque de contraste — demande du 23/08, même
	   principe que pour les bordures (--mk-border). */
	--mk-btn-color: var(--mk-accent-kalista);

	/* Typographie */
	/* Michroma pour titres/sous-titres/menus/boutons, Space Grotesk pour
	   le texte courant (même esprit géométrique/technique, mais bien
	   plus lisible en continu) — demande du 22/08, suite à l'essai
	   Michroma partout qui était difficile à lire sur les paragraphes. */
	--mk-font-display: 'Michroma', Georgia, serif;
	--mk-font-body:    'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;

	--mk-radius: 6px;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--mk-font-body);
	background: var(--mk-bg-dark);
	color: var(--mk-text-light);
}
/* Univers Metronome entier en fond clair/beige (comme Digital Sharing
   auparavant) — Kalista reste en noir. Demande du 23/08 : plutôt que de
   retoucher chaque section une par une, un seul changement au niveau du
   <body> (déjà marqué "univers-metronome" ou "univers-kalista" par
   mk_get_current_univers(), voir header.php) suffit à propager la bonne
   couleur de fond/texte par défaut à tout le contenu qui n'a pas de
   fond spécifique déjà défini. */
/* Univers Metronome : essai d'un environnement entièrement beige — fond
   de page, header, footer, menu ET pages communes (About Us, Support,
   Find Us, Register/Compare product...) — demande du 23/08. On ne
   restreint plus à ".mk-produits-section" comme avant : tout l'univers
   Metronome bascule désormais, page par page, via cette seule règle sur
   le <body>. Kalista reste inchangé (noir partout). */
body.univers-metronome {
	background: var(--mk-bg-light);
	color: var(--mk-text-dark);
	/* Bordures sombres plutôt que blanches semi-transparentes : sur fond
	   clair, une bordure blanche à 12% d'opacité devient quasi invisible.
	   Redéfinir la variable ici la propage automatiquement à tous les
	   composants qui l'utilisent (cartes, bandeaux, boutons...). */
	--mk-border: rgba(44, 44, 42, 0.15);
	--mk-btn-color: var(--mk-accent-metronome);
	/* "Chrome" du site (header, footer, sous-menu déroulant, pages
	   communes, champs de formulaire) — beige avec texte sombre. */
	--mk-chrome-bg: var(--mk-bg-light);
	--mk-chrome-bg-2: var(--mk-bg-light); /* même beige que le fond des pages, demande du 23/08 */
	--mk-chrome-text: var(--mk-text-dark);
	--mk-chrome-text-70: rgba(44, 44, 42, 0.7);
	--mk-chrome-border: rgba(44, 44, 42, 0.15);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

/* -------------------------------------------------------------------------
   Header
   ------------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	padding: 20px 40px;
	/* Fond solide et sticky plutôt que transparent/flottant par-dessus le
	   contenu : demandé par Julien le 21/08 pour un rendu plus net façon
	   dcsaudio.com, et ça règle définitivement les problèmes de contraste
	   avec le contenu qui défile en dessous (le header ne chevauche plus
	   jamais rien, il pousse le contenu en dessous de lui). */
	background: var(--mk-chrome-bg-2);
	border-bottom: 1px solid var(--mk-chrome-border);
	/* Le header suit désormais la couleur "chrome" de l'univers en cours
	   (beige/texte sombre pour Metronome, noir/texte clair pour Kalista)
	   — essai demandé le 23/08. */
	color: var(--mk-chrome-text);
}
.site-header__inner {
	display: flex;
	align-items: center;
	gap: 36px;
	max-width: 1400px;
	margin: 0 auto;
}
.site-header__logo img { height: 28px; width: auto; }
.site-header__nav {
	/* Occupe tout l'espace disponible entre le logo et "Find Us" plutôt
	   que de se limiter à sa largeur de contenu — c'est ce qui permet à
	   .mk-nav-push-right (ci-dessous) de pousser certains items jusqu'au
	   bord droit, juste à côté de "Find Us" (demande du 22/08). */
	flex: 1;
}
.site-header__nav ul {
	display: flex;
	gap: 28px;
	list-style: none;
	margin: 0; padding: 0;
	/* Police géométrique proche des formes du logo METRONOME (majuscules
	   fines, espacement large) plutôt que la police de texte courant —
	   demande du 22/08. Michroma est la police Google Fonts la plus proche
	   visuellement du logotype (pas de police exacte disponible, le logo
	   étant vectorisé sur mesure). */
	font-family: 'Michroma', var(--mk-font-body);
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
/* Sous-menus (ex : Products > Collections > Kalista/AQWO/Classica/Digital Sharing).
   WordPress imbrique naturellement un <ul class="sub-menu"> dans le <li>
   parent — on le cache par défaut et on l'affiche au survol/focus. */
.site-header__nav li { position: relative; }
.site-header__nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	flex-direction: column;
	gap: 0;
	min-width: 200px;
	padding: 8px 0;
	margin-top: 8px;
	background: var(--mk-chrome-bg-2);
	border: 1px solid var(--mk-chrome-border);
	border-radius: var(--mk-radius);
	z-index: 20;
}
.site-header__nav .sub-menu .sub-menu {
	top: 0;
	left: 100%;
	margin-top: -9px;
}
.site-header__nav li:hover > .sub-menu,
.site-header__nav li:focus-within > .sub-menu,
.site-header__nav li.is-open > .sub-menu {
	display: flex;
}
.site-header__nav .sub-menu a {
	display: block;
	padding: 8px 16px;
	white-space: nowrap;
}
.site-header__nav .sub-menu a:hover { color: var(--mk-accent-metronome); }

/* Regroupe About Us / Craftsmanship a droite, juste a cote de "Find Us",
   plutot que colles a "Products" a gauche (demande du 22/08). La classe
   "mk-nav-push-right" est ajoutee automatiquement en PHP sur l'item de
   menu "About Us" (voir inc/helpers.php, filtre nav_menu_css_class) --
   aucune manipulation manuelle requise dans l'editeur de menu. */
.site-header__nav li.mk-nav-push-right {
	margin-left: auto;
}

.site-header__locator {
	margin-left: auto;
	font-size: 10px;
	font-family: 'Michroma', var(--mk-font-body);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: 1px solid var(--mk-chrome-border);
	padding: 8px 16px;
	border-radius: var(--mk-radius);
}

/* -------------------------------------------------------------------------
   Hero (page d'accueil) — texte et photo dans deux panneaux séparés.
   Les photos produits sont shootées en studio sur fond clair : les
   superposer directement sous du texte clair les rendait illisibles
   (repéré le 21/08 sur le premier produit publié). On sépare donc
   clairement : panneau de texte sur fond uni sombre + panneau photo
   encadré avec de l'air autour, comme chez dCS.
   ------------------------------------------------------------------------- */
.hero {
	display: flex;
	min-height: 70vh;
}
.hero__link {
	display: flex;
	width: 100%;
	align-items: stretch;
}
.hero__content {
	flex: 0 0 42%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 60px;
}
.hero__visual {
	flex: 1;
	background: var(--mk-bg-light);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px;
}
.hero__image {
	max-width: 100%;
	max-height: 60vh;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.25));
}
.hero__eyebrow {
	display: block;
	font-size: 13px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 12px;
}
.hero__title {
	font-family: var(--mk-font-display);
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 600;
	margin: 0 0 12px;
}
.hero__tagline {
	font-size: 16px;
	margin: 0 0 24px;
	color: var(--mk-text-light-70);
	max-width: 38ch;
}
.hero__cta {
	align-self: flex-start;
}

.hero--aqwo-classica { background: var(--mk-bg-light); color: var(--mk-text-dark); }
.hero--aqwo-classica .hero__eyebrow { color: var(--mk-accent-metronome); }
.hero--aqwo-classica .hero__tagline { color: rgba(44, 44, 42, 0.7); }

.hero--kalista { background: #000; }
.hero--kalista .hero__title { font-style: italic; }
.hero--kalista .hero__eyebrow { color: var(--mk-accent-kalista); }
.hero--kalista .hero__visual { background: #f7f5f2; } /* léger camaïeu plus froid pour Kalista */

/* -------------------------------------------------------------------------
   Vue d'ensemble des gammes Metronome (page d'accueil)
   ------------------------------------------------------------------------- */
.ranges-overview {
	padding: 80px 40px;
	text-align: center;
	/* Suit désormais le "chrome" de l'univers (beige/texte sombre pour
	   Metronome, noir/texte clair pour Kalista) — demande du 23/08. */
	background: var(--mk-chrome-bg-2);
	color: var(--mk-chrome-text);
}
.ranges-overview__title {
	font-family: var(--mk-font-display);
	font-size: 28px;
	margin-bottom: 32px;
}
.ranges-overview__grid {
	display: flex;
	justify-content: center;
	gap: 20px;
	flex-wrap: wrap;
}
.ranges-overview__item {
	padding: 18px 32px;
	border: 1px solid var(--mk-chrome-border);
	border-radius: var(--mk-radius);
	font-family: 'Michroma', var(--mk-font-body);
	font-size: 11px;
	letter-spacing: 0.08em;
}
.ranges-overview__item:hover { border-color: var(--mk-accent-metronome); }
.ranges-overview__item.is-active {
	border-color: var(--mk-accent-kalista);
	color: var(--mk-accent-kalista);
}

/* Variante compacte : bandeau juste sous le header, sur la page d'accueil
   (demande du 22/08 — remonter les gammes juste sous le menu plutôt que
   sous le hero). Padding réduit, pas de titre, juste les liens. */
.ranges-overview--top {
	padding: 20px 40px;
	border-bottom: 1px solid var(--mk-chrome-border);
	/* Reste visible au défilement, juste sous le header principal, plutôt
	   que de disparaître en scrollant vers le bas — demande du 23/08.
	   --mk-header-height est calculée en JS (voir main.js) pour se caler
	   exactement sous le header, quelle que soit sa hauteur réelle. */
	position: sticky;
	top: var(--mk-header-height, 76px);
	z-index: 90;
}
.ranges-overview--top .ranges-overview__item {
	padding: 8px 20px;
	font-size: 10px;
}

/* -------------------------------------------------------------------------
   Fiche produit — structure commune aux 3 tiers.
   Même principe que le hero de l'accueil : texte sur fond uni + photo
   encadrée dans son propre panneau clair, jamais de texte superposé
   directement sur une photo produit (illisible, cf. note du 21/08).
   ------------------------------------------------------------------------- */
.produit__hero {
	display: flex;
	min-height: 53vh;
	padding-top: 30px;
}
.produit__hero-content {
	flex: 0 0 40%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 60px;
}
.produit__hero-visual {
	flex: 1;
	background: transparent; /* hérite du fond de la marque (.tier--X), même que le texte */
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px;
}
.produit__hero-image {
	max-width: 70%;
	max-height: 42vh;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.25));
}
.produit__categorie {
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 10px;
}
.produit__titre {
	font-family: var(--mk-font-display);
	font-size: clamp(28px, 3.6vw, 42px);
	margin: 0 0 10px;
}
.produit__accroche { font-size: 16px; max-width: 34ch; }

.produit__description,
.produit__caracteristiques {
	max-width: 860px;
	margin: 0 auto;
	padding: 15px 40px 48px;
}
.produit__finitions {
	max-width: 860px;
	margin: 0 auto;
	/* Espace encore réduit avec la section du dessus — demande du 23/08. */
	padding: 5px 40px 48px;
}
.produit__associes {
	max-width: 860px;
	margin: 0 auto;
	padding: 48px 40px;
}
.produit__caracteristiques ul { padding-left: 20px; line-height: 1.9; }
.produit__finitions-grid,
.produit__associes-grid {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	justify-content: center;
	/* Centrage explicite du bloc lui-même dans son conteneur, en plus du
	   centrage des éléments entre eux — demande du 23/08. */
	text-align: center;
	margin: 0 auto;
}
.produit__finition { text-align: center; width: 320px; margin: 0; }
.produit__associe { text-align: center; width: 160px; margin: 0; }
.produit__finition img,
.produit__associe img { border-radius: var(--mk-radius); }
.produit__fiche-pdf {
	text-align: center;
	padding: 20px 40px 60px;
	display: flex;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
}
.produit__pdf-link { display: inline-block; }
.produit__cta { display: inline-block; }

/* --- Tier : Kalista (flagship) ------------------------------------------ */
.tier--kalista { background: #000; color: var(--mk-text-light); }
.tier--kalista .produit__titre { font-family: var(--mk-font-display); font-style: italic; }
.tier--kalista .produit__accroche,
.tier--kalista .produit__categorie { color: var(--mk-accent-kalista); }

/* --- Tier : AQWO / Classica (Metronome, milieu/haut de gamme) ----------- */
.tier--aqwo-classica { background: var(--mk-bg-light); color: var(--mk-text-dark); }
.tier--aqwo-classica .produit__titre { font-family: var(--mk-font-display); }
.tier--aqwo-classica .produit__accroche,
.tier--aqwo-classica .produit__categorie { color: var(--mk-accent-metronome); }

/* --- Tier : Digital Sharing (Metronome, entrée de gamme) ---------------- */
.tier--digital-sharing { background: var(--mk-bg-light); color: var(--mk-text-dark); }
.tier--digital-sharing .produit__titre { font-family: var(--mk-font-body); font-weight: 600; }
.tier--digital-sharing .produit__accroche,
.tier--digital-sharing .produit__categorie { color: var(--mk-accent-metronome); }
.tier--digital-sharing .produit__hero-content { background: transparent; }
.tier--digital-sharing .produit__hero-visual { background: var(--mk-bg-light); }

/* -------------------------------------------------------------------------
   Archive produits
   ------------------------------------------------------------------------- */
.archive-produits { padding: 48px 40px 80px; background: var(--mk-bg-dark); min-height: 100vh; }
/* Univers Metronome (gammes + /marque/metronome/) en fond clair — Kalista
   garde le fond sombre par défaut ci-dessus. Demande du 23/08. */
body.univers-metronome .archive-produits { background: var(--mk-bg-light); }
.archive-produits__titre { font-family: var(--mk-font-display); font-size: 32px; text-align: center; margin-bottom: 48px; }
.archive-produits__titre--logo { display: flex; justify-content: center; }
.archive-produits__logo { height: 56px; width: auto; }
.archive-produits__intro { max-width: 640px; margin: -24px auto 48px; text-align: center; opacity: 0.8; }
.page-standard__titre { font-family: var(--mk-font-display); font-size: 32px; margin-bottom: 12px; }
.page-standard__accroche { font-size: 18px; font-style: italic; opacity: 0.8; margin: 0 0 24px; }
.archive-produits__description-longue {
	max-width: 700px;
	margin: 0 auto 48px;
	line-height: 1.7;
	text-align: left;
}
.archive-produits__description-longue p { margin: 0 0 1rem; }

/* -------------------------------------------------------------------------
   Bannière pleine largeur sur les pages de gamme/marque (demande du
   23/08). Hauteur généreuse sur desktop, réduite en mobile pour éviter
   qu'une image très large ne prenne tout l'écran sur un petit téléphone
   — recadrée (object-fit: cover), jamais écrasée.
   ------------------------------------------------------------------------- */
.terme-banniere {
	/* Pleine largeur malgré le padding du <main> parent (.archive-produits)
	   — technique de "breakout" plutôt que de sortir cet élément du
	   <main>, pour ne pas casser la structure de page (demande du 23/08 :
	   la bannière doit venir après le titre/descriptions, donc à
	   l'intérieur du <main>). */
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-bottom: 48px;
	overflow: hidden;
}
.terme-banniere__image {
	display: block;
	width: 100%;
	/* +100px cumulés (deux demandes de +50px le 23/08), à chaque palier */
	height: calc(50vh + 100px);
	object-fit: cover;
}
@media (max-width: 780px) {
	.terme-banniere__image { height: calc(38vh + 100px); }
}
@media (max-width: 480px) {
	.terme-banniere__image { height: calc(30vh + 100px); }
}
/* Logo/titre + descriptions en surimpression sur la bannière — demande
   du 23/08. Voile dégradé (plus sombre au centre où vit le texte) pour
   garantir la lisibilité quelle que soit la photo choisie, plutôt que de
   compter sur le contraste naturel de l'image (leçon du 21/08 sur les
   fiches produit). Texte toujours clair ici, contrairement au reste de
   la page qui s'adapte à la marque : sur une photo, seul un texte clair
   avec voile sombre est fiable dans tous les cas. */
.terme-banniere__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.35) 60%, rgba(0, 0, 0, 0.25) 100%);
	padding: 24px 24px 24px 48px;
}
.terme-banniere__content {
	max-width: 560px;
	text-align: left;
	color: var(--mk-text-light);
}
.terme-banniere__content .archive-produits__titre {
	margin-bottom: 16px;
	text-align: left;
}
.terme-banniere__content .archive-produits__titre--logo { justify-content: flex-start; }
.terme-banniere__content .archive-produits__logo { height: 56px; width: auto; }
.terme-banniere__content .archive-produits__intro,
.terme-banniere__content .archive-produits__description-longue {
	color: var(--mk-text-light);
	opacity: 0.95;
	margin: 0 0 12px;
	text-align: left;
}
.terme-banniere__accroche {
	font-size: 18px;
	font-style: italic;
	margin: 0 0 12px;
	opacity: 0.95;
}
.archive-produits__vide {
	grid-column: 1 / -1;
	text-align: center;
	opacity: 0.6;
	padding: 40px 0;
	font-style: italic;
}
.archive-produits__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 32px;
	max-width: 1200px;
	margin: 0 auto;
}
.produit-card { border-radius: var(--mk-radius); overflow: hidden; }
.produit-card__image-wrap {
	background: var(--mk-bg-light);
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	border-radius: var(--mk-radius);
}
.produit-card__image {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.produit-card__content { padding: 16px 4px; }
.produit-card__titre { font-family: var(--mk-font-display); font-size: 20px; margin: 0 0 4px; }
.produit-card__categorie { font-size: 12px; opacity: 0.7; margin: 0; }

.produit-card.tier--digital-sharing { background: #fff; color: var(--mk-text-dark); }
.produit-card.tier--digital-sharing .produit-card__image-wrap { background: #f0ede6; }

/* -------------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------------- */
.site-footer {
	background: var(--mk-chrome-bg-2);
	color: var(--mk-chrome-text-70);
	padding: 48px 40px;
}
.site-footer__inner { max-width: 1200px; margin: 0 auto; text-align: center; }
.site-footer__brands { display: flex; justify-content: center; gap: 32px; margin-bottom: 24px; }
.site-footer__logo { height: 20px; width: auto; opacity: 0.8; }
.site-footer__meta { font-size: 12px; margin-top: 16px; color: var(--mk-chrome-text); }
.site-footer__meta a { color: var(--mk-chrome-text); text-decoration: underline; }

/* -------------------------------------------------------------------------
   Gabarit de secours (index.php) — même si peu utilisé en pratique
   maintenant que taxonomy.php existe, on lui donne un padding-top correct
   pour ne jamais se superposer au header (qui est en position absolue).
   ------------------------------------------------------------------------- */
.content-generique {
	padding: 48px 40px 80px;
	max-width: 800px;
	margin: 0 auto;
	min-height: 60vh;
}

/* -------------------------------------------------------------------------
   Pages standard (à propos, distributeurs, mentions légales, support,
   comparateur, enregistrement produit). Fond et texte fixes, toujours
   sombres, indépendamment de la marque consultée — demande du 23/08 :
   seule la section Products (accueil, fiches, gammes) doit varier selon
   Metronome/Kalista, pas ces pages génériques partagées.
   ------------------------------------------------------------------------- */
.page-standard,
.page-distributeurs {
	max-width: 800px;
	margin: 0 auto;
	padding: 48px 24px 80px;
	line-height: 1.7;
	/* Ces pages suivent désormais l'univers en cours (fond/texte hérités
	   du <body>, cf. body.univers-metronome plus haut) plutôt qu'un fond
	   sombre fixe — essai demandé le 23/08 : le beige Metronome doit
	   s'étendre aux pages communes aussi, pas seulement aux fiches
	   produits. Kalista continue d'utiliser le fond sombre par défaut
	   du <body>.
	*/
}
.page-distributeurs__pays { margin-bottom: 32px; }
.page-standard__contenu h2 {
	font-family: var(--mk-font-display);
	font-size: 22px;
	color: var(--mk-accent-metronome);
	margin: 2rem 0 0.75rem;
}
.page-standard__contenu p { margin: 0 0 1rem; }

/* -------------------------------------------------------------------------
   Page "Find Us" — recherche + filtre région + cartes distributeur/dealer
   (demande du 22/08, sur le modèle de goldmund.com/find-a-distributor)
   ------------------------------------------------------------------------- */
.find-us {
	max-width: 1100px;
	margin: 0 auto;
	padding: 48px 24px 80px;
	/* Suit l'univers en cours (voir .page-standard ci-dessus, même
	   principe) — demande du 23/08. */
}
.find-us__intro { max-width: 700px; margin: 0 auto 32px; text-align: center; }
.find-us__controls {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	margin-bottom: 40px;
}
.find-us__search {
	width: 100%;
	max-width: 420px;
	padding: 12px 18px;
	background: var(--mk-chrome-bg-2);
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius);
	color: var(--mk-chrome-text);
	font-size: 14px;
}
.find-us__search::placeholder { color: var(--mk-chrome-text-70); }
.find-us__regions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}
.find-us__region-btn {
	background: transparent;
}
.find-us__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
}
.find-us__card {
	background: var(--mk-chrome-bg-2);
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius);
	padding: 20px;
}
.find-us__badge {
	display: inline-block;
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
	margin-bottom: 10px;
}
.find-us__badge--distributor { background: rgba(207, 154, 95, 0.18); color: var(--mk-accent-metronome); }
.find-us__badge--dealer { background: rgba(255, 255, 255, 0.08); color: var(--mk-text-light-70); }
.find-us__card-name {
	font-family: var(--mk-font-display);
	font-size: 19px;
	margin: 0 0 8px;
}
.find-us__card-address {
	font-size: 13px;
	color: var(--mk-text-light-70);
	margin: 0 0 12px;
	line-height: 1.5;
}
.find-us__card-contact {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
	font-size: 13px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.find-us__card-contact a { color: var(--mk-accent-metronome); }
.find-us__card-marques { display: flex; gap: 6px; flex-wrap: wrap; }
.find-us__marque-tag {
	font-size: 11px;
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius);
	padding: 3px 8px;
	color: var(--mk-text-light-70);
}
.find-us__empty {
	text-align: center;
	opacity: 0.6;
	font-style: italic;
	padding: 40px 0;
}
.find-us__load-more-wrap {
	text-align: center;
	margin-top: 32px;
}

/* -------------------------------------------------------------------------
   Page "Support" — manuels dynamiques + firmware/garantie/FAQ éditables
   (demande du 22/08)
   ------------------------------------------------------------------------- */
.support__manuals {
	max-width: 800px;
	margin: 0 auto 40px;
}
.support__manuals h2 {
	font-family: var(--mk-font-display);
	font-size: 22px;
	color: var(--mk-btn-color);
	margin: 0 0 16px;
}
.support__manuals-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.support__manuals-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 18px;
	background: var(--mk-chrome-bg-2);
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius);
}
.support__manuals-name { font-size: 14px; }
.support__manuals-links { display: flex; gap: 10px; }
.support__manuals-list .mk-btn { padding: 6px 16px; font-size: 12px; }
.support__manuals-empty { opacity: 0.6; font-style: italic; }

/* -------------------------------------------------------------------------
   Page "Compare products" (demande du 22/08)
   ------------------------------------------------------------------------- */
.compare__hint { opacity: 0.7; font-size: 14px; }
.compare__picker {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	max-width: 900px;
	margin: 0 auto 40px;
}
.compare__picker-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius);
	font-size: 13px;
	cursor: pointer;
}
.compare__table-wrap {
	max-width: 1000px;
	margin: 0 auto;
	overflow-x: auto;
}
.compare__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.compare__table th,
.compare__table td {
	border: 1px solid var(--mk-border);
	padding: 12px 16px;
	text-align: left;
	vertical-align: top;
}
.compare__table thead th {
	font-family: var(--mk-font-display);
	font-size: 16px;
	color: var(--mk-btn-color);
}
.compare__table tbody th {
	white-space: nowrap;
	color: var(--mk-chrome-text-70);
	font-weight: 500;
}
.compare__table ul { margin: 0; padding-left: 18px; }
.compare__table ul li { margin-bottom: 4px; }

/* -------------------------------------------------------------------------
   Bandeau de cookies (demande du 22/08)
   ------------------------------------------------------------------------- */
.mk-cookie-banner {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 200;
	background: var(--mk-chrome-bg-2);
	color: var(--mk-chrome-text);
	border-top: 1px solid var(--mk-border);
	padding: 18px 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 20px;
}
/* Le sélecteur de classe ci-dessus et le sélecteur d'attribut [hidden] du
   navigateur ont la même spécificité — sans cette règle, "display: flex"
   l'emporte et le bandeau reste visible même quand hidden=true est bien
   posé par le JavaScript (bug repéré le 22/08 : le clic fonctionnait
   réellement, mais restait invisible à l'écran). */
.mk-cookie-banner[hidden] {
	display: none !important;
}
.mk-cookie-banner__text {
	margin: 0;
	font-size: 13px;
	color: var(--mk-chrome-text-70);
	max-width: 560px;
}
.mk-cookie-banner__text a { color: var(--mk-btn-color); }
.mk-cookie-banner__actions {
	display: flex;
	gap: 12px;
	flex-shrink: 0;
}
.mk-cookie-banner .mk-btn { padding: 8px 18px; font-size: 11px; }
#mk-cookie-settings-link { color: var(--mk-text-light-70); }

@media (max-width: 640px) {
	.mk-cookie-banner { flex-direction: column; text-align: center; }
}
.page-distributeurs__espace-pro {
	margin-top: 60px;
	padding-top: 40px;
	border-top: 1px solid var(--mk-border);
}
.page-distributeurs__note {
	font-size: 12px;
	opacity: 0.6;
	margin-top: 16px;
	font-style: italic;
}

/* -------------------------------------------------------------------------
   Formulaire d'enregistrement produit
   ------------------------------------------------------------------------- */
.page-register__form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 480px;
	margin-top: 32px;
}
.page-register__field { display: flex; flex-direction: column; gap: 6px; }
.page-register__field label { font-size: 13px; color: var(--mk-chrome-text-70); }
.page-register__field input,
.page-register__field select {
	background: var(--mk-chrome-bg-2);
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius);
	color: var(--mk-chrome-text);
	padding: 10px 12px;
	font-size: 14px;
	font-family: var(--mk-font-body);
}
.page-register__form button {
	align-self: flex-start;
}
.page-register__notice {
	padding: 12px 16px;
	border-radius: var(--mk-radius);
	font-size: 14px;
	margin-top: 24px;
}
.page-register__notice--success { background: rgba(99, 153, 34, 0.15); color: #97c459; }
.page-register__notice--error { background: rgba(226, 75, 74, 0.15); color: #f09595; }

/* -------------------------------------------------------------------------
   Accessibilité : focus visible + réduction de mouvement
   ------------------------------------------------------------------------- */
a:focus-visible, button:focus-visible {
	outline: 2px solid var(--mk-accent-metronome);
	outline-offset: 2px;
}

/* -------------------------------------------------------------------------
   Boutons — style unique, plat et doré, utilisé sur tout le site : CTA du
   hero, téléchargement PDF, "Register my product", filtres région, "Load
   more"... (demande du 22/08). Un seul et même style pour tous les
   boutons actuels et à venir plutôt que des variantes par tier — ajouter
   ".mk-btn" à tout nouveau bouton/lien suffit à lui donner ce rendu.
   ------------------------------------------------------------------------- */
.hero__cta,
.produit__cta,
.produit__pdf-link,
.find-us__region-btn,
#find-us-load-more,
.page-register__form button,
.mk-btn {
	display: inline-block;
	padding: 10px 26px;
	background: transparent;
	border: 1px solid var(--mk-btn-color);
	border-radius: var(--mk-radius);
	color: var(--mk-btn-color);
	font-family: 'Michroma', var(--mk-font-body);
	font-size: 12px;
	letter-spacing: 0.04em;
	cursor: pointer;
	box-shadow: none; /* explicitement "sans relief" — pas d'ombre portée */
	transition: background-color 0.15s ease;
}
.hero__cta:hover,
.produit__cta:hover,
.produit__pdf-link:hover,
.find-us__region-btn:hover,
#find-us-load-more:hover,
.page-register__form button:hover,
.mk-btn:hover {
	background: rgba(217, 192, 122, 0.12);
}
.find-us__region-btn.is-active {
	background: rgba(217, 192, 122, 0.12);
}
@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; }
}

/* -------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------- */
@media (max-width: 780px) {
	.hero__link, .produit__hero { flex-direction: column; }
	.hero__content, .produit__hero-content { flex: none; padding: 40px 24px; }
	.hero__visual, .produit__hero-visual { padding: 32px 24px 48px; }
}

@media (max-width: 640px) {
	.site-header { padding: 16px 20px; }
	.site-header__nav { display: none; } /* à remplacer par un menu burger (voir main.js) */
}

/* -------------------------------------------------------------------------
   Lecteur 360° produit (demande du 22/08)
   ------------------------------------------------------------------------- */
.produit-360 {
	position: relative;
	width: 100%;
	max-width: 100%;
	max-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: grab;
	user-select: none;
	touch-action: pan-y;
}
.produit-360.is-dragging { cursor: grabbing; }
.produit-360__frame {
	max-width: 100%;
	max-height: 60vh;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.25));
	pointer-events: none;
}
.produit-360__hint {
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 6px 14px;
	border-radius: 999px;
	pointer-events: none;
}

/* -------------------------------------------------------------------------
   Home Metronome — sections additionnelles (demande du 22/08)
   ------------------------------------------------------------------------- */
.reassurance-strip {
	padding: 32px 40px;
	background: var(--mk-bg-light);
	border-top: 1px solid var(--mk-border);
	border-bottom: 1px solid var(--mk-border);
	text-align: center;
}
.reassurance-strip__line {
	font-family: var(--mk-font-display);
	font-size: 16px;
	margin: 0 0 12px;
	color: var(--mk-text-dark);
}
.reassurance-strip__points {
	font-size: 12px;
	letter-spacing: 0.04em;
	color: rgba(44, 44, 42, 0.7);
	display: flex;
	justify-content: center;
	gap: 10px;
}

.craftsmanship-teaser {
	padding: 80px 40px;
	background: var(--mk-bg-light);
	text-align: center;
}
.craftsmanship-teaser__quote {
	font-family: var(--mk-font-display);
	font-size: 22px;
	max-width: 640px;
	margin: 0 auto 28px;
	color: var(--mk-text-dark);
	font-style: italic;
}

@media (max-width: 780px) {
	.range-teaser__grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   Lignes alternées photo/texte sur les pages de gamme et de marque,
   façon dcsaudio.com/product/lina-system (demande du 22/08)
   ------------------------------------------------------------------------- */
.produits-alternes { display: flex; flex-direction: column; gap: 30px; }
.produits-alternes__row {
	display: flex;
	min-height: 60vh;
}
.produits-alternes__row--reverse { flex-direction: row-reverse; }
.produits-alternes__visual {
	flex: 1;
	background: var(--mk-bg-light);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px;
}
.produits-alternes__image {
	max-width: 100%;
	max-height: 50vh;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 20px 32px rgba(0, 0, 0, 0.2));
}
.produits-alternes__content {
	flex: 0 0 38%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 50px;
}
.produits-alternes__categorie {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	opacity: 0.75;
	margin-bottom: 10px;
}
.produits-alternes__titre {
	font-family: var(--mk-font-display);
	font-size: 28px;
	margin: 0 0 12px;
}
.produits-alternes__accroche { font-size: 15px; margin: 0 0 16px; max-width: 34ch; }
.produits-alternes__caracs {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	font-size: 13px;
	opacity: 0.85;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.produits-alternes__caracs li { padding-left: 14px; position: relative; }
.produits-alternes__caracs li::before {
	content: '';
	position: absolute;
	left: 0; top: 8px;
	width: 5px; height: 5px;
	border-radius: 50%;
	background: currentColor;
}

.produits-alternes .tier--kalista { background: #000; color: var(--mk-text-light); }
.produits-alternes .tier--kalista .produits-alternes__categorie,
.produits-alternes .tier--kalista .produits-alternes__accroche { color: var(--mk-accent-kalista); }
.produits-alternes .tier--kalista .produits-alternes__visual { background: transparent; }
.produits-alternes .tier--aqwo-classica { background: var(--mk-bg-light); color: var(--mk-text-dark); }
.produits-alternes .tier--aqwo-classica .produits-alternes__categorie,
.produits-alternes .tier--aqwo-classica .produits-alternes__accroche { color: var(--mk-accent-metronome); }
.produits-alternes .tier--digital-sharing { background: var(--mk-bg-light); color: var(--mk-text-dark); }
.produits-alternes .tier--digital-sharing .produits-alternes__visual { background: #ffffff; }

@media (max-width: 780px) {
	.produits-alternes__row,
	.produits-alternes__row--reverse { flex-direction: column; min-height: auto; }
	.produits-alternes__content { flex: none; padding: 32px 24px; }
	.produits-alternes__visual { padding: 24px; }
}

/* -------------------------------------------------------------------------
   Photos en quinconce sur les pages génériques (About Us, Craftsmanship)
   — demande du 23/08, réutilise .produits-alternes (fiches produits)
   mais sans les couleurs par tier, qui n'ont pas de sens ici : ces
   sections suivent simplement le fond de la page (beige/noir selon
   l'univers, comme le reste du texte de la page).
   ------------------------------------------------------------------------- */
.page-quinconce { margin-top: 48px; }
.page-quinconce__row { min-height: 45vh; }
.page-quinconce__texte p { margin: 0 0 1rem; }
.page-banniere--haut { margin-bottom: 0; }
.page-banniere--bas { margin-top: 48px; margin-bottom: 0; }

/* -------------------------------------------------------------------------
   Hero pleine largeur (home Metronome), façon
   goldmund.com/speaker-collection — demande du 22/08. Pas de texte
   superposé à la photo : la légende vit dans son propre bandeau en
   dessous, sur fond uni (contrainte de lisibilité déjà rencontrée sur
   les fiches produit, cf. note du 21/08).
   ------------------------------------------------------------------------- */
.hero-full__link { display: block; }
.hero-full__visual {
	width: 100%;
	height: 62vh;
	background: var(--mk-bg-light);
	overflow: hidden;
}
.hero-full__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero-full__caption {
	background: var(--mk-bg-light);
	padding: 36px 40px;
	text-align: center;
}
.hero-full__eyebrow {
	display: block;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mk-accent-metronome);
	margin-bottom: 10px;
}
.hero-full__title {
	font-family: var(--mk-font-display);
	font-size: clamp(26px, 3.6vw, 38px);
	margin: 0 0 10px;
	color: var(--mk-text-dark);
}
.hero-full__tagline {
	font-size: 15px;
	color: rgba(44, 44, 42, 0.7);
	max-width: 46ch;
	margin: 0 auto 20px;
}

/* Tuiles de gammes en grandes photos cliquables, avec légende protégée
   par un dégradé (jamais de texte directement sur une photo claire sans
   protection). */
.range-teaser { padding: 0; background: var(--mk-bg-light); }
.range-teaser__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	max-width: none;
	margin: 0;
}
.range-teaser__item {
	position: relative;
	display: block;
	height: 42vh;
	overflow: hidden;
}
.range-teaser__image-wrap {
	width: 100%;
	height: 100%;
	background: var(--mk-bg-light);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border-radius: 0;
}
.range-teaser__image { width: 100%; height: 100%; object-fit: cover; }
.range-teaser__caption {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 24px 20px 18px;
	background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, transparent 100%);
}
.range-teaser__label {
	font-family: 'Michroma', var(--mk-font-body);
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
}
.range-teaser__item:hover .range-teaser__image { transform: scale(1.03); }
.range-teaser__image { transition: transform 0.3s ease; }

@media (max-width: 780px) {
	.range-teaser__grid { grid-template-columns: 1fr; }
	.hero-full__visual { height: 46vh; }
}

/* -------------------------------------------------------------------------
   Pages "Events" et "Press" (demande du 23/08, menu "Events & Press") —
   cartes réutilisant le même vocabulaire visuel que les cartes déjà en
   place ailleurs sur le site (find-us__card, produit-card).
   ------------------------------------------------------------------------- */
.events__grid,
.press__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	max-width: 1100px;
	margin: 40px auto 0;
}
.events__card,
.press__card {
	background: var(--mk-chrome-bg-2);
	border: 1px solid var(--mk-border);
	border-radius: var(--mk-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.events__card-image-wrap,
.press__card-image-wrap {
	aspect-ratio: 4 / 3;
	background: var(--mk-bg-light);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.events__card-image,
.press__card-image { width: 100%; height: 100%; object-fit: cover; }
.events__card-content,
.press__card-content { padding: 20px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.events__card-badge,
.press__card-badge {
	display: inline-block;
	align-self: flex-start;
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--mk-chrome-text-70);
}
.events__card-badge--upcoming { color: var(--mk-btn-color); }
.events__card-title,
.press__card-title {
	font-family: var(--mk-font-display);
	font-size: 18px;
	margin: 0;
}
.events__card-desc,
.press__card-desc { font-size: 13px; color: var(--mk-chrome-text-70); margin: 0; }
.events__card .mk-btn,
.press__card .mk-btn { align-self: flex-start; margin-top: 4px; }

/* Section "In the press" sur la fiche produit (demande du 23/08) */
.produit__presse {
	max-width: 860px;
	margin: 0 auto;
	padding: 30px 40px 48px;
}
.produit__presse-grid {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
}
.produit__presse-item {
	width: 220px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}
.produit__presse-image { border-radius: var(--mk-radius); aspect-ratio: 4/3; object-fit: cover; }
.produit__presse-pub {
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	opacity: 0.7;
}
.produit__presse-titre { font-family: var(--mk-font-display); font-size: 16px; margin: 0; }
