/*
Theme Name: Cosmoshop
Template: twentytwentyfive
Description: Thème enfant de Twenty Twenty-Five pour cosmoshop-paris.com. Direction visuelle de l'accueil validée le 02/10/2026 (bleu nuit, turquoise, or) : design Novamira « Cosmoshop, le monde dans votre cuisine ».
Version: 0.1.0
Requires at least: 7.1
Requires PHP: 8.0
Text Domain: cosmoshop
License: GPL-2.0-or-later
*/

/* ==========================================================================
   Cosmoshop : styles du thème (chargés par novamira-sandbox/cosmo-theme.php)
   Jetons : theme.json (palette) et design/tokens.css du dossier projet.
   ========================================================================== */

:root {
	--cosmo-gouttiere: 16px;
	--cosmo-rayon: 10px;
	--cosmo-ombre: 0 1px 3px rgba(11, 18, 32, 0.10);
	--cosmo-ombre-forte: 0 6px 24px rgba(11, 18, 32, 0.16);
}
@media (min-width: 782px) { :root { --cosmo-gouttiere: 24px; } }
@media (min-width: 1200px) { :root { --cosmo-gouttiere: 32px; } }

a:focus-visible, button:focus-visible, input:focus-visible {
	outline: 2px solid #1272a6;
	outline-offset: 2px;
}

/* Barre d'annonce, en-tête, navigation, accueil, carte produit et pied de page : voir assets/vitrine.css (30/09/2026). */

/* ---------- Pages rayon (catégories) ---------- */
.cosmo-rayon { padding: 0 var(--cosmo-gouttiere) 64px; }
.cosmo-ariane { font-size: 0.875rem; color: var(--wp--preset--color--accent-4); margin: 20px 0 8px; }
.cosmo-ariane a { color: var(--wp--preset--color--accent-4); }
.cosmo-rayon__titre { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 8px; }
.cosmo-rayon__intro { color: var(--wp--preset--color--accent-4); max-width: 60rem; margin: 0 0 16px; }
.cosmo-rayon__intro p { margin: 0; }

.cosmo-bandeau-dates {
	background: var(--wp--preset--color--accent-5);
	border-left: 4px solid var(--wp--preset--color--alerte-date);
	border-radius: var(--cosmo-rayon);
	padding: 14px 18px;
	margin: 0 0 20px;
	font-size: 0.9375rem;
	max-width: 60rem;
}
.cosmo-bandeau-dates p { margin: 4px 0 0; }
.cosmo-bandeau-dates__titre { font-weight: 700; margin: 0; color: var(--wp--preset--color--alerte-date); }

.cosmo-sous-rayons { margin: 0 0 24px; }
.cosmo-sous-rayons ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cosmo-sous-rayons a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 40px;
	padding: 0 16px;
	background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
}
.cosmo-sous-rayons a:hover { border-color: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--accent-1); }
.cosmo-sous-rayons a[aria-current="page"] { background: var(--wp--preset--color--accent-1); border-color: var(--wp--preset--color--accent-1); color: #fff; }
.cosmo-sous-rayons__nombre { font-weight: 400; opacity: 0.75; }

.cosmo-rayon__corps { gap: 32px; }
.cosmo-filtres__titre { font-size: 1.125rem; margin: 0; }
.cosmo-filtres h3 { font-size: 0.9375rem; font-weight: 700; margin: 0 0 8px; }
.cosmo-filtres .wp-block-woocommerce-product-filter-attribute,
.cosmo-filtres .wp-block-woocommerce-product-filter-taxonomy,
.cosmo-filtres .wp-block-woocommerce-product-filter-price,
.cosmo-filtres .wp-block-woocommerce-product-filter-status { border-top: 1px solid var(--wp--preset--color--accent-6); padding-top: 14px; }

.cosmo-rayon__barre { margin: 0 0 16px; gap: 8px 16px; }
.cosmo-rayon__barre .wc-block-product-results-count { color: var(--wp--preset--color--accent-4); font-size: 0.9375rem; margin: 0; }
.cosmo-rayon__barre select { min-height: 40px; border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--cosmo-rayon); padding: 0 12px; background: #fff; }

.cosmo-pagination { margin-top: 32px; gap: 8px; }

.cosmo-rayon__vide {
	background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: var(--cosmo-rayon);
	padding: 32px;
}
.cosmo-rayon__vide h2 { font-size: 1.375rem; margin: 0 0 8px; }
.cosmo-rayon__vide p { color: var(--wp--preset--color--accent-4); max-width: 40rem; }

@media (min-width: 782px) {
	.cosmo-rayon__filtres { position: sticky; top: 16px; align-self: flex-start; }
}
@media (max-width: 781px) {
	.cosmo-rayon__corps { gap: 12px; }
	.cosmo-sous-rayons ul { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
	.cosmo-sous-rayons li { flex: 0 0 auto; }
	.cosmo-rayon__vide { padding: 20px; }
}

/* ---------- Fiche produit (refonte du 30/09/2026) ---------- */
.cosmo-fiche { padding: 0 var(--cosmo-gouttiere) 72px; }
.cosmo-fiche h1, .cosmo-fiche h2 { text-wrap: balance; }

/* Zone haute : galerie + colonne d'achat */
.cosmo-fiche__haut { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 12px; align-items: start; }
@media (min-width: 900px) {
	.cosmo-fiche__haut { grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr); gap: 56px; margin-top: 20px; }
}
@media (min-width: 900px) and (min-height: 880px) {
	.cosmo-fiche__achat, .cosmo-fiche__galerie { position: sticky; top: 16px; }
}

/* Galerie */
.cosmo-galerie { display: flex; flex-direction: column-reverse; gap: 12px; }
.cosmo-galerie__vignettes { display: flex; gap: 10px; list-style: none; margin: 0; padding: 2px; overflow-x: auto; }
.cosmo-galerie__vignette {
	display: block; width: 72px; height: 72px; padding: 6px; background: #fff; cursor: pointer;
	border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--cosmo-rayon);
}
.cosmo-galerie__vignette img { display: block; width: 100%; height: 100%; object-fit: contain; }
.cosmo-galerie__vignette[aria-pressed="true"] { border: 2px solid var(--wp--preset--color--accent-1); padding: 5px; }
.cosmo-galerie__scene { position: relative; }
.cosmo-galerie__cadre {
	display: grid; place-items: center; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--cosmo-rayon); cursor: zoom-in;
}
.cosmo-galerie__cadre.is-zoom { cursor: zoom-out; }
@media (min-width: 600px) and (max-width: 899px) { .cosmo-galerie__cadre { max-height: 520px; } }
.cosmo-galerie__image { display: block; width: 100%; height: 100%; object-fit: contain; padding: 28px; box-sizing: border-box; background: #fff; }
.cosmo-galerie__cadre.is-zoom .cosmo-galerie__image { transform: scale(2); }
.cosmo-galerie__zoom {
	position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
	background: #fff; color: var(--wp--preset--color--contrast); cursor: pointer;
	border: 1px solid var(--wp--preset--color--accent-6); border-radius: 50%;
}
.cosmo-galerie__zoom[aria-pressed="true"] { background: var(--wp--preset--color--accent-1); color: #fff; border-color: var(--wp--preset--color--accent-1); }
.cosmo-galerie--vide .cosmo-galerie__cadre { background: var(--wp--preset--color--accent-5); cursor: default; }
.cosmo-galerie__vide-texte { margin: 0; color: var(--wp--preset--color--accent-4); font-weight: 600; text-align: center; }
@media (min-width: 900px) {
	.cosmo-galerie { flex-direction: row-reverse; align-items: flex-start; }
	.cosmo-galerie__scene { flex: 1 1 auto; min-width: 0; }
	.cosmo-galerie__vignettes { flex: 0 0 76px; flex-direction: column; overflow: visible; }
}

/* Colonne d'achat */
.cosmo-fiche__marque { margin: 0 0 6px; font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.cosmo-fiche__marque a { color: var(--wp--preset--color--accent-1); text-decoration: none; }
.cosmo-fiche__marque a:hover { text-decoration: underline; }
.cosmo-fiche__nom { margin: 0 0 14px; font-size: clamp(1.75rem, 1.4rem + 1.3vw, 2.375rem); font-weight: 700; line-height: 1.1; letter-spacing: -0.02em; }
.cosmo-fiche__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0; }
.cosmo-fiche__meta:empty { display: none; }
.cosmo-fiche__contenance {
	background: var(--wp--preset--color--accent-5); border-radius: 999px; padding: 4px 14px;
	font-size: 0.875rem; font-weight: 700; color: var(--wp--preset--color--contrast);
}
.cosmo-fiche__note { display: inline-flex; align-items: center; gap: 8px; font-size: 0.875rem; font-weight: 700; color: var(--wp--preset--color--contrast); text-decoration: none; }
.cosmo-fiche__note:hover span:last-child { text-decoration: underline; }
.cosmo-etoiles {
	font-size: 1.125rem; letter-spacing: 2px; line-height: 1; color: transparent;
	background: linear-gradient(90deg, var(--wp--preset--color--accent-1) calc(var(--note) / 5 * 100%), var(--wp--preset--color--accent-6) 0);
	-webkit-background-clip: text; background-clip: text;
}
.cosmo-fiche__resume { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 14px 0 0; max-width: 46ch; font-size: 0.9375rem; line-height: 1.55; color: var(--wp--preset--color--accent-4); }
.cosmo-fiche__resume a { color: var(--wp--preset--color--contrast); font-weight: 600; }

/* Prix */
.cosmo-prix {
	margin: 18px 0 0; padding: 16px 22px; background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--cosmo-rayon);
}
.cosmo-prix p { margin: 0; }
.cosmo-prix__ligne { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.cosmo-prix__actuel { font-size: 2.5rem; font-weight: 800; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.cosmo-prix__actuel--promo { color: var(--wp--preset--color--promo-texte); }
.cosmo-prix__ancien { font-size: 1.125rem; color: var(--wp--preset--color--accent-4); font-variant-numeric: tabular-nums; }
.cosmo-prix__pct { align-self: center; background: var(--wp--preset--color--promo-texte); color: #fff; border-radius: 999px; padding: 4px 12px; font-size: 0.875rem; font-weight: 800; }
.cosmo-prix__eco { margin-top: 8px !important; font-size: 0.9375rem; font-weight: 700; color: var(--wp--preset--color--promo-texte); }
.cosmo-prix__unite { margin-top: 6px !important; font-size: 0.9375rem; font-weight: 600; color: var(--wp--preset--color--accent-4); font-variant-numeric: tabular-nums; }
.cosmo-prix__demo { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 12px !important; padding-top: 12px; border-top: 1px dashed var(--wp--preset--color--accent-6); font-size: 0.8125rem; color: var(--wp--preset--color--accent-4); }
.cosmo-prix__absent { font-size: 1.25rem; font-weight: 700; color: var(--wp--preset--color--accent-4); }
.cosmo-fiche-demo { display: inline-block; background: var(--wp--preset--color--accent-3); color: #fff; border-radius: 999px; padding: 2px 10px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.02em; vertical-align: middle; }

/* Allergènes (avant l'achat) */
.cosmo-allergenes {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 14px 0 0; padding: 12px 18px; background: var(--wp--preset--color--accent-5);
	border-left: 4px solid var(--wp--preset--color--alerte-date); border-radius: var(--cosmo-rayon);
}
.cosmo-allergenes p { margin: 0; }
.cosmo-allergenes__titre { display: flex; align-items: center; gap: 8px; font-size: 1rem; font-weight: 700; }
.cosmo-allergenes__titre .cosmo-ico { color: var(--wp--preset--color--alerte-date); }
.cosmo-allergenes__liste { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.cosmo-allergenes__liste li { background: #fff; border: 1.5px solid var(--wp--preset--color--alerte-date); border-radius: 999px; padding: 4px 14px; font-size: 0.9375rem; font-weight: 700; }
.cosmo-allergenes__aucun, .cosmo-allergenes__traces { flex: 1 1 100%; margin: 0 !important; font-size: 0.9375rem; }
.cosmo-allergenes__note { flex: 1 1 100%; margin: 0 !important; font-size: 0.8125rem; color: var(--wp--preset--color--accent-4); }

/* Bloc date DLC / DDM */
.cosmo-bloc-date {
	margin: 14px 0 0; padding: 12px 18px; background: #fff;
	border: 2px solid var(--wp--preset--color--alerte-date); border-radius: var(--cosmo-rayon);
}
.cosmo-bloc-date p { margin: 4px 0 0; font-size: 0.875rem; line-height: 1.45; }
.cosmo-bloc-date__type {
	display: inline-block; margin: 0 !important; padding: 2px 12px; background: var(--wp--preset--color--alerte-date); color: #fff;
	border-radius: 999px; font-size: 0.8125rem !important; font-weight: 800; letter-spacing: 0.04em;
}
.cosmo-bloc-date__date { margin-top: 8px !important; font-size: 1.0625rem !important; font-weight: 700; color: var(--wp--preset--color--contrast); }

/* Achat : quantité, bouton, disponibilité, réassurance */
.cosmo-achat { margin-top: 18px; }
.cosmo-achat__form { display: flex; gap: 12px; align-items: stretch; margin: 0; }
.cosmo-stepper { display: inline-flex; align-items: stretch; flex: 0 0 auto; background: #fff; border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent-4) 50%, #fff); border-radius: var(--cosmo-rayon); }
.cosmo-stepper__btn { width: 44px; min-height: 52px; padding: 0; background: transparent; color: var(--wp--preset--color--contrast); border: 0; border-radius: var(--cosmo-rayon); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.cosmo-stepper__btn:hover { background: var(--wp--preset--color--accent-5); }
.cosmo-stepper__champ { width: 48px; padding: 0; background: transparent; border: 0; text-align: center; font: inherit; font-size: 1.0625rem; font-weight: 700; -moz-appearance: textfield; appearance: textfield; }
.cosmo-stepper__champ::-webkit-outer-spin-button, .cosmo-stepper__champ::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cosmo-achat__bouton {
	flex: 1 1 auto; min-height: 52px; padding: 0 24px; background: var(--wp--preset--color--accent-1); color: #fff;
	border: 0; border-radius: var(--cosmo-rayon); font: inherit; font-size: 1.0625rem; font-weight: 700; cursor: pointer;
}
.cosmo-achat__bouton:hover { background: var(--wp--preset--color--bleu-fonce); }
.cosmo-achat__bouton:disabled { width: 100%; background: var(--wp--preset--color--accent-6); color: var(--wp--preset--color--accent-4); cursor: not-allowed; }
.cosmo-dispo { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; font-size: 0.9375rem; font-weight: 600; }
.cosmo-dispo .cosmo-ico { flex: 0 0 auto; width: 18px; height: 18px; }
.cosmo-dispo--oui, .cosmo-dispo--peu { color: var(--wp--preset--color--succes); }
.cosmo-dispo--peu { color: var(--wp--preset--color--alerte-date); }
.cosmo-dispo--attente, .cosmo-dispo--non { color: var(--wp--preset--color--accent-4); }
.cosmo-garanties { display: grid; gap: 10px; list-style: none; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid var(--wp--preset--color--accent-6); }
.cosmo-garanties li { display: flex; align-items: center; gap: 12px; font-size: 0.9375rem; color: var(--wp--preset--color--contrast); }
.cosmo-garanties .cosmo-ico { flex: 0 0 auto; color: var(--wp--preset--color--accent-1); }

/* Barre d'achat fixe (mobile et tablette) */
.cosmo-barre { display: none; }
@media (max-width: 899px) {
	.cosmo-barre {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; align-items: center; gap: 14px;
		padding: 10px var(--cosmo-gouttiere) calc(10px + env(safe-area-inset-bottom)); background: #fff;
		border-top: 1px solid var(--wp--preset--color--accent-6); box-shadow: 0 -4px 16px rgba(11, 18, 32, 0.10);
	}
	.cosmo-barre__prix { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
	.cosmo-barre__nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.75rem; color: var(--wp--preset--color--accent-4); }
	.cosmo-barre__montant { font-size: 1.25rem; font-weight: 800; line-height: 1.2; font-variant-numeric: tabular-nums; }
	.cosmo-barre .cosmo-achat__bouton { flex: 0 0 auto; min-height: 48px; padding: 0 22px; }
	body:has(.cosmo-barre) .cosmo-pied { padding-bottom: 92px; }
}

/* Sections d'information */
.cosmo-ancres { position: sticky; top: 0; z-index: 40; margin: 56px 0 0; background: var(--wp--preset--color--base); border-bottom: 1px solid var(--wp--preset--color--accent-6); }
.cosmo-ancres ul { display: flex; gap: 28px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.cosmo-ancres a { display: block; padding: 16px 0 13px; border-bottom: 3px solid transparent; font-size: 0.9375rem; font-weight: 700; color: var(--wp--preset--color--accent-4); text-decoration: none; white-space: nowrap; }
.cosmo-ancres a:hover { color: var(--wp--preset--color--contrast); border-bottom-color: var(--wp--preset--color--accent-1); }
.cosmo-infos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin: 28px 0 0; align-items: start; }
@media (min-width: 900px) {
	.cosmo-infos { display: block; columns: 2; column-gap: 24px; }
	.cosmo-infos__bloc { break-inside: avoid; margin: 0 0 24px; }
	.cosmo-infos__bloc--large { column-span: all; margin-top: 24px; }
}
.cosmo-infos__bloc { scroll-margin-top: 72px; padding: 24px 22px; background: #fff; border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--cosmo-rayon); }
@media (min-width: 900px) { .cosmo-infos__bloc { padding: 30px 34px; } }
.cosmo-infos__titre { margin: 0 0 16px; font-size: 1.25rem; font-weight: 700; line-height: 1.2; }
.cosmo-infos__contenu { font-size: 1rem; line-height: 1.65; }
.cosmo-infos__contenu p { max-width: 68ch; margin: 0 0 12px; }
.cosmo-infos__contenu > :last-child { margin-bottom: 0; }
.cosmo-infos__contenu strong { font-weight: 700; }
.cosmo-infos__allergenes { padding: 10px 14px; background: var(--wp--preset--color--accent-5); border-radius: 6px; }
.cosmo-nutrition { width: 100%; border-collapse: collapse; font-size: 1rem; font-variant-numeric: tabular-nums; }
.cosmo-nutrition caption { padding: 0 0 10px; text-align: left; font-size: 0.875rem; color: var(--wp--preset--color--accent-4); }
.cosmo-nutrition thead th { padding: 8px 0; border-bottom: 2px solid var(--wp--preset--color--contrast); text-align: left; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--wp--preset--color--accent-4); }
.cosmo-nutrition thead th:last-child, .cosmo-nutrition td { text-align: right; }
.cosmo-nutrition tbody th, .cosmo-nutrition td { padding: 10px 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); text-align: left; font-weight: 600; }
.cosmo-nutrition td { text-align: right; font-weight: 700; }
.cosmo-nutrition__sous th { padding-left: 18px !important; font-weight: 400 !important; color: var(--wp--preset--color--accent-4); }
.cosmo-nutrition__sous td { font-weight: 600; color: var(--wp--preset--color--accent-4); }
.cosmo-infos__liste { display: grid; grid-template-columns: minmax(96px, max-content) minmax(0, 1fr); gap: 12px 24px; margin: 0; }
.cosmo-infos__liste dt { font-weight: 600; color: var(--wp--preset--color--accent-4); }
.cosmo-infos__liste dd { margin: 0; overflow-wrap: anywhere; }
.cosmo-infos__source { margin: 16px 0 0; font-size: 0.875rem; color: var(--wp--preset--color--accent-4); }

/* Produits associés */
.cosmo-assoc { margin: 64px 0 0; }
.cosmo-assoc__entete { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.cosmo-assoc__entete h2 { margin: 0; font-size: 1.5rem; font-weight: 700; }
.cosmo-assoc__nav { display: none; gap: 8px; }
@media (min-width: 900px) { .cosmo-assoc__nav { display: flex; } }
.cosmo-assoc__fleche { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: #fff; color: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--accent-6); border-radius: 50%; cursor: pointer; }
.cosmo-assoc__fleche:hover { border-color: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--accent-1); }
.cosmo-assoc__piste { display: flex; align-items: stretch; gap: 16px; margin: 0; padding: 2px 2px 20px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.cosmo-assoc__carte { display: flex; flex: 0 0 172px; scroll-snap-align: start; }
@media (min-width: 900px) { .cosmo-assoc__carte { flex-basis: 232px; } }
.cosmo-assoc__lien { display: flex; flex: 1 1 auto; flex-direction: column; padding: 12px 12px 16px; background: #fff; color: var(--wp--preset--color--contrast); text-decoration: none; border: 1px solid var(--wp--preset--color--accent-6); border-radius: var(--cosmo-rayon); }
.cosmo-assoc__lien:hover { border-color: var(--wp--preset--color--accent-1); box-shadow: var(--cosmo-ombre-forte); }
.cosmo-assoc__photo { display: grid; place-items: center; aspect-ratio: 1 / 1; background: #fff; }
.cosmo-assoc__photo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.cosmo-assoc__sans-photo { padding: 12px; text-align: center; font-size: 0.8125rem; font-weight: 600; color: var(--wp--preset--color--accent-4); }
.cosmo-assoc__marque { margin-top: 12px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }
.cosmo-assoc__nom { margin-top: 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.9375rem; font-weight: 700; line-height: 1.3; }
.cosmo-assoc__format { margin-top: 4px; font-size: 0.8125rem; color: var(--wp--preset--color--accent-4); }
.cosmo-assoc__prix { margin-top: auto; padding-top: 12px; font-size: 1.0625rem; font-weight: 800; }
.cosmo-assoc__prix del { font-size: 0.8125rem; font-weight: 400; color: var(--wp--preset--color--accent-4); }
.cosmo-assoc__prix ins { text-decoration: none; color: var(--wp--preset--color--promo-texte); }
.cosmo-assoc__bientot { font-size: 0.8125rem; font-weight: 600; color: var(--wp--preset--color--accent-4); }
.cosmo-assoc .cosmo-fiche-demo { display: none; }

.cosmo-fiche .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* La barre d'accès rapide mobile du pied de page laisse la place à la barre d'achat de la fiche. */
@media (max-width: 899px) { body:has(.cosmo-barre) .cosmo-barre-mobile { display: none; } }


/* ---------- Promotions, Nouveautés, recherche (étape 3.4) ---------- */
.cosmo-rayon--promotions .cosmo-rayon__titre { color: var(--wp--preset--color--promo-texte); }
.cosmo-grille .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--promo-texte);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 700;
	padding: 2px 10px;
}
.cosmo-recherche--page { margin: 0 0 24px; max-width: 640px; }
.cosmo-recherche--page .wp-block-search__inside-wrapper { border: 1px solid var(--wp--preset--color--accent-4); }
.cosmo-rayon__conseils { color: var(--wp--preset--color--accent-4); margin: 0 0 20px; padding-left: 20px; }
.cosmo-rayon__conseils li { margin: 4px 0; }

/* ---------- Pages commerce : panier, commande, compte, 404 ---------- */
.cosmo-page { padding: 0 var(--cosmo-gouttiere) 64px; }
.cosmo-page__titre { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); font-weight: 800; letter-spacing: -0.02em; margin: 16px 0 20px; }
.cosmo-ariane + .cosmo-page__titre, .cosmo-ariane + .wc-block-store-notices + .cosmo-page__titre { margin-top: 0; }

/* Panier et commande (blocs WooCommerce) */
.cosmo-panier-page .wc-block-cart__main,
.cosmo-panier-page .wc-block-cart__sidebar,
.cosmo-commande-page .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: var(--cosmo-rayon);
	box-shadow: var(--cosmo-ombre);
}
.cosmo-panier-page .wc-block-cart__main { padding: 8px 20px 20px; }
.cosmo-panier-page .wc-block-cart__sidebar { padding: 20px; align-self: flex-start; }
.cosmo-page .wc-block-components-product-name { color: var(--wp--preset--color--contrast); font-weight: 600; text-decoration: none; }
.cosmo-page .wc-block-components-product-name:hover { color: var(--wp--preset--color--accent-1); }
.cosmo-page .wc-block-components-product-metadata { color: var(--wp--preset--color--accent-4); font-size: 0.875rem; }
.cosmo-page .wc-block-components-product-price__regular { color: var(--wp--preset--color--accent-4); }
.cosmo-page .wc-block-components-product-badge,
.cosmo-page .wc-block-components-sale-badge {
	background: var(--wp--preset--color--promo-doux);
	border: 1px solid var(--wp--preset--color--promo-texte);
	color: var(--wp--preset--color--promo-texte);
	border-radius: 999px;
	font-weight: 700;
}
.cosmo-page .wc-block-cart-item__remove-link { color: var(--wp--preset--color--accent-4) !important; font-size: 0.875rem !important; }
.cosmo-page .wc-block-cart-item__remove-link:hover { color: var(--wp--preset--color--erreur) !important; }
.cosmo-page .wc-block-components-quantity-selector { border-radius: var(--cosmo-rayon); }
.cosmo-page .wc-block-components-quantity-selector::after { border-color: var(--wp--preset--color--accent-4); border-radius: var(--cosmo-rayon); }
.cosmo-page .wc-block-components-quantity-selector__button { min-width: 40px; min-height: 40px; }
.cosmo-page .wc-block-components-totals-footer-item { font-size: 1.125rem; font-weight: 800; }
.cosmo-page .wc-block-components-totals-item__label,
.cosmo-page .wc-block-components-totals-item__value { font-weight: 600; }
.cosmo-page .wc-block-cart__submit-button,
.cosmo-page .wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 52px;
	border-radius: var(--cosmo-rayon);
	font-size: 1.0625rem;
	font-weight: 700;
}
.cosmo-page .wc-block-cart__empty-cart__title { font-size: 1.5rem; margin: 24px 0 8px; }
.cosmo-page .wc-block-cart__empty-cart__title.with-empty-cart-icon::before { background-color: var(--wp--preset--color--accent-4); }

/* Champs des formulaires (commande, compte) */
.cosmo-page .wc-block-components-text-input input,
.cosmo-page .wc-block-components-textarea,
.cosmo-page .wc-blocks-components-select .wc-blocks-components-select__select,
.cosmo-page .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	border: 1px solid var(--wp--preset--color--accent-4);
	border-radius: 6px;
	background: #fff;
	color: var(--wp--preset--color--contrast);
}
.cosmo-page .wc-block-components-text-input input:focus,
.cosmo-page .wc-block-components-textarea:focus,
.cosmo-page .wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--wp--preset--color--accent-1);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent-1);
	outline: 2px solid #1272a6;
	outline-offset: 2px;
}
.cosmo-page .wc-block-components-checkout-step__title { font-size: 1.25rem; font-weight: 700; }
.cosmo-page .wc-block-components-checkout-step__description { color: var(--wp--preset--color--accent-4); }
.cosmo-page .wc-block-components-checkout-return-to-cart-button { color: var(--wp--preset--color--accent-1); font-weight: 600; }
.cosmo-commande-page .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { padding: 4px 16px 12px; }

/* En-tête simplifié de la page Commande */
.cosmo-entete--commande .cosmo-entete__ligne { flex-wrap: nowrap; }
.cosmo-entete__retour { margin: 0; }
.cosmo-entete__retour a {
	color: #fff;
	font-weight: 600;
	font-size: 0.9375rem;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}
.cosmo-entete__retour a:hover { text-decoration: underline; }

/* Mon compte (formulaires WooCommerce classiques) */
.cosmo-compte-page .woocommerce { display: grid; gap: 24px; }
.cosmo-compte-page .woocommerce::before,
.cosmo-compte-page .woocommerce::after,
.cosmo-compte-page .col2-set::before,
.cosmo-compte-page .col2-set::after { display: none; }
.cosmo-compte-page .col2-set { display: grid; gap: 24px; }
.cosmo-compte-page .col2-set > .u-column1,
.cosmo-compte-page .col2-set > .u-column2,
.cosmo-compte-page .woocommerce-MyAccount-navigation,
.cosmo-compte-page .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }
.cosmo-compte-page .col2-set > div,
.cosmo-compte-page .woocommerce > .woocommerce-form-login,
.cosmo-compte-page .woocommerce-form-register,
.cosmo-compte-page .woocommerce-ResetPassword,
.cosmo-compte-page .woocommerce-MyAccount-content {
	background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: var(--cosmo-rayon);
	padding: 24px;
}
.cosmo-compte-page .col2-set .woocommerce-form-login,
.cosmo-compte-page .col2-set .woocommerce-form-register { border: 0; padding: 0; margin: 0; }
.cosmo-compte-page .woocommerce h2 { font-size: 1.375rem; margin: 0 0 16px; }
.cosmo-compte-page .woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.cosmo-compte-page .woocommerce form label { display: block; font-weight: 600; margin: 0 0 6px; }
.cosmo-compte-page .woocommerce form .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; }
.cosmo-compte-page .woocommerce .input-text,
.cosmo-compte-page .woocommerce select {
	width: 100%;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--wp--preset--color--accent-4);
	border-radius: 6px;
	background: #fff;
	color: var(--wp--preset--color--contrast);
	font-size: 1rem;
}
.cosmo-compte-page .woocommerce .input-text:focus,
.cosmo-compte-page .woocommerce select:focus { border-color: var(--wp--preset--color--accent-1); outline: 2px solid #1272a6; outline-offset: 2px; }
.cosmo-compte-page .woocommerce .button {
	background: var(--wp--preset--color--accent-1);
	color: #fff;
	border: 0;
	border-radius: var(--cosmo-rayon);
	min-height: 44px;
	padding: 0 20px;
	font-weight: 700;
	cursor: pointer;
}
.cosmo-compte-page .woocommerce .button:hover { background: var(--wp--preset--color--bleu-fonce); color: #fff; }
.cosmo-compte-page .woocommerce-form-login__submit { margin-top: 8px; }
.cosmo-compte-page .woocommerce-LostPassword { margin: 12px 0 0; }
.cosmo-compte-page .woocommerce-privacy-policy-text { font-size: 0.875rem; color: var(--wp--preset--color--accent-4); }
.cosmo-compte-page .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: var(--cosmo-rayon);
	overflow: hidden;
}
.cosmo-compte-page .woocommerce-MyAccount-navigation li + li { border-top: 1px solid var(--wp--preset--color--accent-6); }
.cosmo-compte-page .woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 16px;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}
.cosmo-compte-page .woocommerce-MyAccount-navigation a:hover { color: var(--wp--preset--color--accent-1); }
.cosmo-compte-page .woocommerce-MyAccount-navigation .is-active a { background: var(--wp--preset--color--bleu-doux); color: var(--wp--preset--color--accent-1); }
.cosmo-compte-page .woocommerce table.shop_table { width: 100%; border-collapse: collapse; background: #fff; }
.cosmo-compte-page .woocommerce table.shop_table th,
.cosmo-compte-page .woocommerce table.shop_table td { border-bottom: 1px solid var(--wp--preset--color--accent-6); padding: 10px 12px; text-align: left; }
@media (min-width: 782px) {
	.cosmo-compte-page .col2-set { grid-template-columns: 1fr 1fr; }
	.cosmo-compte-page .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: 260px 1fr; align-items: start; }
	.cosmo-compte-page .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.cosmo-compte-page .woocommerce > .woocommerce-form-login { max-width: 32rem; }
}

/* Page 404 */
.cosmo-404 { padding-top: 48px; }
.cosmo-404__code { color: var(--wp--preset--color--accent-1); font-weight: 700; font-size: 0.875rem; letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 8px; }
.cosmo-404__texte { color: var(--wp--preset--color--accent-4); font-size: 1.125rem; margin: 0 0 24px; }
.cosmo-404__actions { gap: 12px; margin: 0 0 40px; }
.cosmo-404__actions .wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; }
.cosmo-404__actions .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--accent-1);
	border: 2px solid var(--wp--preset--color--accent-1);
}
.cosmo-404__actions .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--bleu-doux); }
.cosmo-404__sous-titre { font-size: 1.125rem; margin: 0 0 12px; }

@media (max-width: 781px) {
	.cosmo-panier-page .wc-block-cart__main { padding: 4px 12px 12px; }
	.cosmo-404 { padding-top: 24px; }
	.cosmo-404__rayons ul { flex-wrap: wrap; }
}

/* Pages de service et pages légales (30/09/2026) */
.cosmo-version { color: var(--wp--preset--color--accent-4); margin-top: 2.5rem; }
.wp-block-post-content .wp-block-table { overflow-x: auto; }
.wp-block-post-content .wp-block-table th,
.wp-block-post-content .wp-block-table td { border: 1px solid var(--wp--preset--color--accent-6); padding: 8px 10px; vertical-align: top; text-align: left; }
.wp-block-post-content .wp-block-table thead th { background: var(--wp--preset--color--accent-5); }
.wp-block-post-content h2 { margin-top: 2rem; }
.cosmo-rayon__intro h2 { font-size: 1.25rem; margin-top: 1.25rem; }
.cosmo-rayon__intro ul { padding-left: 1.25rem; }
