/*
 * NouraTech Boutique : feuille de styles du site public.
 *
 * Ne lit que les variables --nt-* injectées depuis nt_settings.style (addendum D).
 * Mobile d'abord (maquettes en 390 px), puis tablette ≥ 600 px (820 px) et ordinateur ≥ 1024 px (addendum G).
 * Valeurs reprises des sources design/sources/*.dc.html.
 */

/* ---------- Base ---------- */

/*
 * Couleurs officielles de WhatsApp : vert #25D366 (fonds, logo), texte sombre #111B21 sur ce vert (8,9:1),
 * vert foncé #075E54 pour un texte sur fond blanc (7,7:1).
 */
:root {
	--nt-whatsapp: #25d366;
	--nt-on-whatsapp: #111b21;
	--nt-whatsapp-texte: #075e54;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--nt-surface);
	color: var(--nt-ink);
	font-family: var(--nt-font-text);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

h1,
h2,
h3,
p,
ul,
ol,
dl,
dd,
figure,
blockquote,
fieldset {
	margin: 0;
	padding: 0;
}

ul,
ol {
	list-style: none;
}

fieldset {
	border: 0;
	min-width: 0;
}

del {
	text-decoration: line-through;
}

:focus-visible {
	outline: 2px solid var(--nt-ink);
	outline-offset: 2px;
}

[hidden] {
	display: none !important;
}

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

.nt-lien-evitement {
	position: absolute;
	left: 8px;
	top: -100px;
	z-index: 100;
	padding: 12px 16px;
	background: var(--nt-ink);
	color: var(--nt-surface);
	border-radius: var(--nt-radius-button);
}

.nt-lien-evitement:focus {
	top: 8px;
}

.nt-principal:focus {
	outline: none;
}

.nt-piege {
	position: absolute;
	left: -9999px;
}

/* ---------- Mise en page ---------- */

.nt-conteneur {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 16px;
}

.nt-section {
	padding-block: 24px;
}

.nt-section__entete {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 12px;
}

.nt-fond-alt {
	background: var(--nt-surface-alt);
}

.nt-fond-ink {
	background: var(--nt-ink);
	color: #fff;
}

.nt-fond-primary {
	background: var(--nt-primary);
	color: var(--nt-on-primary);
}

.nt-centre {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

/* ---------- Typographie ---------- */

.nt-titre-display,
.nt-titre-page,
.nt-titre-h1,
.nt-titre-h2,
.nt-titre-h3,
.nt-logo {
	font-family: var(--nt-font-title);
	font-weight: var(--nt-title-weight);
	color: inherit;
}

.nt-titre-display {
	font-size: 38px;
	line-height: 1.05;
}

.nt-titre-page {
	font-size: 32px;
	line-height: 1.08;
}

.nt-titre-h1 {
	font-size: 30px;
	line-height: 1.1;
}

.nt-titre-h2 {
	font-size: 26px;
	line-height: 1.15;
}

.nt-titre-h3 {
	font-size: 22px;
	line-height: 1.15;
}

.nt-surtitre {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.nt-texte-couleur {
	color: var(--nt-primary-text);
}

.nt-texte-discret {
	color: var(--nt-ink-muted);
}

.nt-texte-succes {
	color: var(--nt-success);
	font-weight: 600;
}

.nt-texte-danger {
	color: var(--nt-danger);
}

.nt-lien-couleur {
	color: var(--nt-primary-text);
	font-weight: 600;
	font-size: 14px;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 3px;
	transition: text-decoration-color 0.15s;
}

.nt-lien-couleur:hover {
	text-decoration-color: currentColor;
}

.nt-lien-petit {
	font-size: 13px;
	font-weight: 600;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.nt-contenu p + p,
.nt-contenu p + ul,
.nt-contenu ul + p {
	margin-top: 14px;
}

.nt-contenu {
	font-size: 16px;
	line-height: 1.6;
}

.nt-contenu a {
	color: var(--nt-primary-text);
	text-decoration: underline;
}

.nt-intro {
	font-size: 15px;
	line-height: 1.5;
}

.nt-note {
	margin-top: 12px;
	font-size: 13px;
	line-height: 1.5;
}

.nt-legende {
	font-family: var(--nt-font-text);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nt-ink-muted);
	margin-bottom: 12px;
}

.nt-etiquette {
	position: absolute;
	left: 20px;
	bottom: 20px;
	padding: 6px 12px;
	border-radius: var(--nt-radius-field);
	background: var(--nt-surface);
	color: var(--nt-ink);
	font-size: 13px;
	font-weight: 600;
}

/* ---------- Boutons ---------- */

.nt-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 22px;
	border: 1.5px solid var(--nt-primary);
	border-radius: var(--nt-radius-button);
	background: var(--nt-primary);
	color: var(--nt-on-primary);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	transition: filter 0.15s, background-color 0.15s;
}

.nt-bouton:hover {
	filter: brightness(0.93);
}

.nt-bouton:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	filter: none;
}

/* Réglage « boutons contour » : le bouton principal devient un contour. */
.nt-boutons-contour .nt-bouton:not(.nt-bouton--accent):not(.nt-bouton--whatsapp):not(.nt-bouton--whatsapp-contour) {
	background: transparent;
	color: var(--nt-ink);
	border-color: var(--nt-ink);
}

.nt-bouton--contour {
	background: transparent;
	color: var(--nt-ink);
	border-color: var(--nt-ink);
}

.nt-bouton--accent {
	background: var(--nt-accent);
	border-color: var(--nt-accent);
	color: var(--nt-on-accent);
	font-weight: 700;
}

.nt-bouton--whatsapp {
	background: var(--nt-whatsapp);
	border-color: var(--nt-whatsapp);
	color: var(--nt-on-whatsapp);
}

.nt-bouton--whatsapp-contour {
	background: transparent;
	border-color: var(--nt-whatsapp);
	color: var(--nt-whatsapp-texte);
}

.nt-bouton--whatsapp-contour .nt-icone,
.nt-lien-whatsapp .nt-icone {
	color: var(--nt-whatsapp);
}

.nt-bouton--bloc {
	display: flex;
	width: 100%;
}

.nt-bouton--large {
	min-height: 52px;
}

.nt-bouton--petit {
	min-height: 44px;
	padding: 0 18px;
	font-size: 14px;
}

.nt-boutons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.nt-lien-whatsapp {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	font-size: 14px;
	font-weight: 600;
	color: var(--nt-whatsapp-texte);
}

.nt-pastille,
.nt-filtre {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-button);
	background: var(--nt-surface-alt);
	color: var(--nt-ink);
	font-size: 14px;
	white-space: nowrap;
}

.nt-filtre.est-actif {
	background: var(--nt-primary);
	border-color: var(--nt-primary);
	color: var(--nt-on-primary);
	font-weight: 600;
}

.nt-pilule-blanche {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 14px;
	border-radius: 22px;
	background: var(--nt-surface);
	color: var(--nt-ink);
	font-size: 13px;
	font-weight: 600;
}

.nt-defilant {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	scroll-snap-type: x proximity;
	padding-bottom: 2px;
}

.nt-defilant::-webkit-scrollbar {
	display: none;
}

.nt-defilant > * {
	flex-shrink: 0;
	scroll-snap-align: start;
}

/* ---------- Badges, prix, étoiles ---------- */

.nt-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	background: var(--nt-surface);
	color: var(--nt-ink);
}

.nt-badge--vente,
.nt-badge--nouveau {
	background: var(--nt-accent);
	color: var(--nt-on-accent);
}

.nt-badge--promo {
	background: var(--nt-primary);
	color: var(--nt-on-primary);
}

.nt-badge--epuise {
	background: var(--nt-danger);
	color: #fff;
}

.nt-prix {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 8px;
	white-space: nowrap;
}

.nt-prix__courant {
	font-weight: 600;
}

.nt-prix__promo {
	font-weight: 600;
	color: var(--nt-primary-text);
}

.nt-prix__des {
	font-weight: 400;
	font-size: 0.87em;
}

.nt-prix__barre {
	font-size: 0.87em;
	color: var(--nt-ink-muted);
}

.nt-etoiles {
	display: inline-flex;
	gap: 2px;
	color: var(--nt-accent);
}

.nt-alerte-stock {
	display: inline-flex;
	padding: 3px 9px;
	border-radius: 999px;
	background: #fff6e0;
	color: #6e4500;
	font-size: 12px;
	font-weight: 700;
}

.nt-pastille-couleur {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 7px;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

/* ---------- Visuels (photo ou aplat de la famille) ---------- */

.nt-visuel {
	display: block;
	position: relative;
	overflow: hidden;
	background: var(--nt-photo);
}

.nt-teinte-2 {
	background: var(--nt-photo-2);
}

.nt-teinte-3 {
	background: var(--nt-surface-alt);
}

.nt-visuel__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---------- En-tête B1 ---------- */

.nt-annonce {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 6px 16px;
	background: var(--nt-accent);
	color: var(--nt-on-accent);
	font-size: 13px;
	font-weight: 600;
	text-align: center;
}

.nt-entete__barre {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	height: 60px;
	padding: 0 16px;
	border-bottom: 1px solid var(--nt-line);
}

.nt-entete__icone {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--nt-ink);
	cursor: pointer;
}

.nt-entete--centre .nt-entete__menu {
	justify-content: flex-start;
}

/* Téléphone, en-tête A : menu | logo centré | recherche et panier. */
.nt-entete--centre .nt-entete__barre {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
}

.nt-entete--centre .nt-logo {
	justify-self: center;
	max-width: 100%;
}

.nt-entete__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	justify-self: end;
}

/* Sur téléphone, « Mon compte » est dans le panneau du menu (en-tête A). */
.nt-entete--centre .nt-entete__compte {
	display: none;
}

.nt-logo {
	font-size: 26px;
	font-weight: var(--nt-logo-weight);
	letter-spacing: 0.02em;
	line-height: 1.1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nt-logo__img {
	max-height: 44px;
	width: auto;
}

.nt-lien-panier__nombre {
	position: absolute;
	top: 4px;
	right: -6px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--nt-primary);
	color: var(--nt-on-primary);
	font-size: 11px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
}

.nt-nav-large {
	display: none;
}

.nt-entete--recherche .nt-entete__barre {
	height: auto;
	padding: 10px 16px 0;
	border-bottom: 0;
}

.nt-entete--recherche .nt-logo {
	font-size: 24px;
	margin-right: auto;
}

.nt-entete__recherche {
	padding: 10px 16px 14px;
	border-bottom: 1px solid var(--nt-line);
}

.nt-recherche__champ {
	display: flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 12px;
	border-radius: var(--nt-radius-button);
	background: var(--nt-surface-alt);
	color: var(--nt-ink-muted);
}

.nt-recherche__champ input {
	flex-grow: 1;
	min-width: 0;
	height: 40px;
	border: 0;
	outline: none;
	background: transparent;
	font-size: 15px;
	color: var(--nt-ink);
}

.nt-recherche__champ:focus-within {
	outline: 2px solid var(--nt-ink);
	outline-offset: 2px;
}

/* ---------- Menu (maquette 02) ---------- */

.nt-menu {
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--nt-surface);
	color: var(--nt-ink);
	flex-direction: column;
}

.nt-menu[open] {
	display: flex;
}

.nt-menu::backdrop {
	background: rgba(0, 0, 0, 0.4);
}

.nt-menu__entete {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 60px;
	flex-shrink: 0;
	padding: 0 16px;
	border-bottom: 1px solid var(--nt-line);
}

.nt-menu__entete .nt-entete__icone {
	justify-content: flex-end;
}

.nt-menu__corps {
	flex-grow: 1;
	overflow-y: auto;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.nt-recherche--menu .nt-recherche__champ {
	height: 50px;
	padding: 0 14px;
	gap: 10px;
	border: 1px solid color-mix(in srgb, var(--nt-ink-muted) 55%, #fff);
	border-radius: var(--nt-radius-field);
	background: var(--nt-surface);
}

.nt-menu__populaires {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
}

.nt-menu__legende {
	width: 100%;
	color: var(--nt-ink-muted);
}

.nt-menu__populaires .nt-pastille {
	border-color: var(--nt-surface-alt);
	border-radius: var(--nt-radius-field);
	font-size: 13px;
	padding: 0 12px;
}

.nt-menu__categories a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 56px;
	border-bottom: 1px solid var(--nt-line);
	font-family: var(--nt-font-title);
	font-size: 24px;
	font-weight: var(--nt-title-weight);
}

.nt-menu__compte {
	font-family: var(--nt-font-text);
	font-size: 13px;
	font-weight: 400;
	color: var(--nt-ink-muted);
}

.nt-menu__pages {
	display: flex;
	flex-direction: column;
	font-size: 15px;
}

.nt-menu__pages a {
	display: flex;
	align-items: center;
	min-height: 44px;
}

.nt-menu__pied {
	flex-shrink: 0;
	padding: 16px;
	border-top: 1px solid var(--nt-line);
}

/* ---------- B2 Bannière ---------- */

.nt-banniere {
	padding-block: 0;
}

.nt-banniere--photo {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 330px;
	padding: 24px 20px;
	overflow: hidden;
	background: var(--nt-photo);
}

.nt-banniere--photo .nt-banniere__photo {
	position: absolute;
	inset: 0;
	background: transparent;
}

.nt-banniere--photo:has(.nt-visuel__img) .nt-banniere__forme {
	display: none;
}

.nt-banniere--photo:has(.nt-visuel__img)::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(255, 255, 255, 0.92) 10%, rgba(255, 255, 255, 0) 70%);
}

.nt-banniere__forme {
	position: absolute;
	background: var(--nt-surface);
}

.nt-banniere__forme--rond {
	right: -40px;
	top: -30px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	opacity: 0.3;
}

.nt-banniere__forme--arche {
	right: 30px;
	top: 60px;
	width: 120px;
	height: 160px;
	border-radius: 60px 60px 8px 8px;
	opacity: 0.45;
}

.nt-banniere__texte {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.nt-banniere--photo .nt-titre-display {
	font-size: 40px;
	line-height: 1.02;
}

.nt-banniere__intro {
	font-size: 15px;
	line-height: 1.4;
}

.nt-banniere--split {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px 16px 16px;
}

.nt-banniere--split .nt-banniere__texte {
	gap: 14px;
}

.nt-banniere--split .nt-banniere__photo {
	height: 150px;
	border-radius: var(--nt-radius-card);
}

.nt-banniere--split .nt-bouton {
	min-height: 46px;
	padding: 0 18px;
}

.nt-banniere--couleur {
	padding: 32px 24px;
	min-height: 260px;
	display: flex;
	align-items: center;
	background: var(--nt-primary);
	color: var(--nt-on-primary);
}

.nt-banniere--couleur .nt-titre-h1 {
	font-size: 32px;
	line-height: 1.05;
}

.nt-banniere--couleur .nt-banniere__texte {
	gap: 14px;
}

/* B2-C carrousel */
.nt-banniere--carrousel {
	position: relative;
}

.nt-carrousel__piste,
.nt-fiche__piste {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.nt-carrousel__piste::-webkit-scrollbar,
.nt-fiche__piste::-webkit-scrollbar {
	display: none;
}

.nt-carrousel__diapo {
	flex: 0 0 100%;
	scroll-snap-align: start;
}

.nt-carrousel__visuel {
	height: 240px;
}

.nt-carrousel__legende {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 16px 30px;
}

.nt-carrousel__fleche {
	position: absolute;
	top: 98px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 22px;
	background: var(--nt-surface);
	color: var(--nt-ink);
	cursor: pointer;
}

.nt-carrousel__fleche--prec {
	left: 12px;
}

.nt-carrousel__fleche--suiv {
	right: 12px;
}

.nt-carrousel__points {
	display: flex;
	gap: 6px;
}

.nt-banniere--carrousel .nt-carrousel__points {
	position: absolute;
	right: 16px;
	top: 270px;
}

.nt-carrousel__point {
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background: var(--nt-line);
	transition: width 0.2s;
}

.nt-carrousel__point.est-actif {
	width: 20px;
	background: var(--nt-primary);
}

/* ---------- B3 Garanties ---------- */

.nt-garanties {
	padding-block: 0;
}

.nt-garanties--ligne {
	border-bottom: 1px solid var(--nt-line);
}

.nt-garanties--ligne .nt-garanties__liste {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	max-width: 1280px;
	margin-inline: auto;
	padding: 16px;
}

.nt-garanties--ligne .nt-garanties__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
}

.nt-garanties--detail .nt-garanties__liste {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-block: 20px;
}

.nt-garanties--detail .nt-garanties__item {
	display: flex;
	gap: 14px;
	align-items: center;
}

.nt-rond-icone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--nt-surface);
	color: var(--nt-primary-text);
}

.nt-garanties__texte {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 14px;
	color: var(--nt-ink-muted);
}

.nt-garanties__texte strong {
	font-size: 15px;
	color: var(--nt-ink);
}

/* ---------- B4 Catégories ---------- */

.nt-categories--ronds {
	padding: 24px 0 8px;
}

.nt-categories .nt-titre-h2 {
	margin-bottom: 12px;
}

.nt-categories--ronds .nt-categories__liste {
	display: flex;
	justify-content: space-between;
	gap: 4px;
}

.nt-categories--ronds .nt-categories__lien {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: 80px;
	font-size: 13px;
	font-weight: 500;
	text-align: center;
}

.nt-categories--ronds .nt-categories__visuel {
	width: 68px;
	height: 68px;
	border-radius: 50%;
}

.nt-categories--tuiles .nt-categories__liste {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.nt-categories--tuiles .nt-categories__lien {
	position: relative;
	display: block;
}

.nt-categories--tuiles .nt-categories__visuel {
	height: 158px;
	border-radius: var(--nt-radius-card);
}

.nt-categories--tuiles .nt-categories__nom {
	position: absolute;
	left: 10px;
	bottom: 10px;
	padding: 6px 12px;
	border-radius: var(--nt-radius-button);
	background: var(--nt-surface);
	font-size: 14px;
	font-weight: 600;
}

.nt-categories--pastilles {
	padding: 18px 0 18px 16px;
}

.nt-categories__legende {
	margin-bottom: 12px;
	font-family: var(--nt-font-text);
	font-size: 14px;
	font-weight: 600;
	color: var(--nt-ink-muted);
}

/* ---------- B5 Produits et cartes ---------- */

.nt-grille-produits {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 12px;
}

.nt-carte {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.nt-carte__lien {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

/* Toute la carte est cliquable, le lien reste unique pour les lecteurs d'écran. */
.nt-carte__lien::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.nt-carte__lien:focus-visible {
	outline: none;
}

.nt-carte__lien:focus-visible::after {
	outline: 2px solid var(--nt-ink);
	outline-offset: 2px;
	border-radius: var(--nt-radius-card);
}

.nt-carte__media {
	position: relative;
	display: block;
}

.nt-carte__visuel {
	aspect-ratio: 1 / 1;
	border-radius: var(--nt-radius-card);
}

.nt-grille-produits--catalogue .nt-carte__visuel {
	aspect-ratio: 10 / 11;
}

.nt-carte__badge {
	position: absolute;
	left: 8px;
	top: 8px;
}

.nt-carte__nom {
	font-family: var(--nt-font-text);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
}

.nt-carte__note {
	font-size: 12px;
	color: var(--nt-ink-muted);
}

.nt-carte__prix {
	font-size: 15px;
}

.nt-carte__prix .nt-prix__barre {
	font-size: 13px;
}

.nt-carte__pastilles {
	display: flex;
	gap: 6px;
	margin-top: 1px;
}

/* Réglage « cartes » : photo + fond, ou encadrée. */
.nt-cartes-fond .nt-carte {
	padding: 8px 8px 12px;
	border-radius: var(--nt-radius-card);
	background: var(--nt-surface-alt);
	box-shadow: 0 1px 3px rgba(20, 16, 12, 0.12);
}

.nt-cartes-encadree .nt-carte {
	padding: 8px 8px 12px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
}

.nt-produits--carrousel {
	padding-left: 0;
}

.nt-defilant--produits {
	gap: 12px;
	padding-inline: 16px;
}

.nt-carte--carrousel {
	width: 200px;
}

.nt-carte--carrousel .nt-carte__visuel {
	aspect-ratio: auto;
	height: 230px;
}

.nt-produits--star .nt-titre-h2 {
	margin-bottom: 14px;
}

.nt-star {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nt-star__principal {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.nt-star__visuel {
	height: 240px;
	border-radius: var(--nt-radius-card);
}

.nt-star__ligne {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
}

.nt-star__ligne .nt-titre-h3 {
	font-size: 20px;
}

.nt-star__principal .nt-texte-discret {
	font-size: 14px;
}

.nt-star__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 10px;
	border-top: 1px solid var(--nt-line);
}

.nt-star__liste {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nt-star__mini {
	width: 64px;
	height: 72px;
	flex-shrink: 0;
	border-radius: var(--nt-radius-card);
}

.nt-star__nom {
	flex-grow: 1;
	font-size: 14px;
}

/* ---------- B6 Offre ---------- */

.nt-offre {
	padding-top: 0;
}

.nt-offre__bloc {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 20px;
	border-radius: var(--nt-radius-card);
}

.nt-offre__titres {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.nt-offre__titres .nt-surtitre {
	font-weight: 700;
	letter-spacing: 0.1em;
}

.nt-offre__titres .nt-titre-h2 {
	line-height: 1.1;
}

.nt-compte {
	display: flex;
	gap: 8px;
}

.nt-compte__case {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 54px;
	border-radius: var(--nt-radius-card);
	background: var(--nt-surface);
}

.nt-compte__valeur {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
}

.nt-compte__unite {
	font-size: 11px;
	color: var(--nt-ink-muted);
}

.nt-offre__duo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: 210px;
	border-radius: var(--nt-radius-card);
	overflow: hidden;
}

.nt-offre__texte {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	padding: 18px 16px;
	font-size: 13px;
}

.nt-offre__code {
	align-self: flex-start;
	padding: 6px 12px;
	border-radius: var(--nt-radius-button);
	background: var(--nt-accent);
	color: var(--nt-on-accent);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

/* ---------- B7 Avis ---------- */

.nt-avis--note {
	padding: 8px 0 28px;
}

.nt-avis__entete {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 14px;
}

.nt-avis__note {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
}

.nt-avis__liste {
	display: grid;
	gap: 14px;
}

.nt-avis__carte {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
}

.nt-avis__carte blockquote p {
	font-size: 15px;
	line-height: 1.5;
}

.nt-avis__carte figcaption {
	font-size: 13px;
	font-weight: 600;
}

.nt-avis--citation {
	padding: 36px 0;
}

.nt-citation {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
	padding-inline: 24px;
}

.nt-citation__texte {
	font-family: var(--nt-font-title);
	font-weight: var(--nt-title-weight);
	font-size: 24px;
	line-height: 1.3;
	max-width: 36ch;
}

.nt-citation figcaption {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 13px;
}

.nt-citation__auteur {
	font-size: 14px;
	font-weight: 600;
}

/* ---------- B8 Histoire ---------- */

.nt-histoire--portrait {
	padding: 0 0 28px;
}

.nt-histoire__duo {
	display: flex;
	align-items: center;
	gap: 14px;
}

.nt-histoire__portrait {
	width: 130px;
	height: 170px;
	flex-shrink: 0;
	border-radius: 65px 65px var(--nt-radius-card) var(--nt-radius-card);
}

.nt-histoire__texte {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.nt-histoire__texte .nt-surtitre {
	letter-spacing: 0.1em;
}

.nt-histoire--photo {
	padding: 0;
}

.nt-histoire__photo {
	height: 220px;
}

.nt-histoire__citation {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 22px 20px;
}

.nt-histoire__citation .nt-titre-h3 {
	line-height: 1.3;
}

/* ---------- B9 Liste VIP ---------- */

.nt-vip--fonce {
	padding: 0 0 28px;
}

.nt-vip__bloc {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px;
	border-radius: var(--nt-radius-card);
}

.nt-vip__bloc .nt-titre-h3 {
	font-size: 24px;
	line-height: 1.1;
}

.nt-vip__texte {
	font-size: 14px;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.85);
}

.nt-vip__merci {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nt-vip__merci:focus {
	outline: none;
}

.nt-vip [hidden] {
	display: none !important;
}

.nt-vip__formulaire {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nt-vip--clair {
	padding-block: 20px;
}

.nt-vip__ligne {
	display: flex;
	align-items: center;
	gap: 14px;
}

.nt-vip__ligne > div {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.nt-vip__titre {
	font-family: var(--nt-font-text);
	font-size: 16px;
	font-weight: 700;
}

.nt-vip__ligne .nt-texte-discret {
	font-size: 13px;
}

/* ---------- Champs de formulaire ---------- */

.nt-champ,
.woocommerce-checkout .form-row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 13px;
	color: var(--nt-ink-muted);
}

.nt-champ input,
.nt-champ textarea,
.woocommerce-checkout .form-row .input-text,
.nt-panier__code-champ .input-text {
	width: 100%;
	min-height: 46px;
	padding: 0 12px;
	border: 1px solid color-mix(in srgb, var(--nt-ink-muted) 55%, #fff);
	border-radius: var(--nt-radius-field);
	background: var(--nt-surface);
	color: var(--nt-ink);
	font-size: 15px;
}

.nt-champ textarea {
	padding: 10px 12px;
	resize: vertical;
}

.nt-champ--clair select,
.nt-champ select {
	width: 100%;
	min-height: 46px;
	padding: 0 12px;
	border: 1px solid color-mix(in srgb, var(--nt-ink-muted) 55%, #fff);
	border-radius: var(--nt-radius-field);
	background: var(--nt-surface);
	color: var(--nt-ink);
	font-size: 16px;
}

.nt-vip__accord {
	color: rgba(255, 255, 255, 0.75);
	font-size: 12px;
	line-height: 1.4;
}

.nt-champ--clair {
	color: rgba(255, 255, 255, 0.85);
}

.nt-champ--clair input {
	border: 0;
}

.nt-formulaire {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nt-message {
	padding: 10px 14px;
	border-radius: var(--nt-radius-field);
	font-size: 14px;
	font-weight: 600;
	background: #e7f3ec;
	color: var(--nt-success);
}

.nt-message--erreur {
	background: #fdecea;
	color: var(--nt-danger);
}

/* ---------- B10 Instagram ---------- */

.nt-instagram__grille {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
	margin-bottom: 14px;
}

.nt-instagram__visuel {
	aspect-ratio: 1 / 1;
	border-radius: var(--nt-radius-card);
}

/* ---------- B11 Contact rapide et bloc boutique ---------- */

.nt-boutique {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nt-plan {
	position: relative;
	height: 170px;
	overflow: hidden;
	border-radius: var(--nt-radius-card);
	background: var(--nt-surface);
}

.nt-plan__rue {
	position: absolute;
	background: var(--nt-line);
}

.nt-plan__rue--h {
	left: 0;
	right: 0;
	top: 70px;
	height: 14px;
}

.nt-plan__rue--v {
	top: 0;
	bottom: 0;
	left: 40%;
	width: 14px;
}

.nt-plan__repere {
	position: absolute;
	left: calc(40% - 10px);
	top: 40px;
	width: 34px;
	height: 34px;
	border-radius: 17px 17px 17px 0;
	transform: rotate(-45deg);
	background: var(--nt-primary);
}

.nt-boutique__adresse {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 15px;
}

.nt-horaires {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
}

.nt-horaires__ligne {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.nt-horaires__ligne dd {
	font-weight: 600;
	text-align: right;
}

.nt-horaires__ligne dd.nt-texte-discret {
	font-weight: 400;
}

.nt-contact-rapide--whatsapp {
	padding: 28px 0;
}

.nt-contact-rapide--whatsapp .nt-titre-h3 {
	font-size: 24px;
}

/* ---------- B12 FAQ ---------- */

.nt-faq .nt-titre-h2 {
	margin-bottom: 8px;
}

.nt-faq__item {
	border-bottom: 1px solid var(--nt-line);
}

.nt-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 52px;
	padding: 10px 0;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.nt-faq__question::-webkit-details-marker {
	display: none;
}

.nt-faq__signe::before {
	content: "+";
	font-size: 20px;
	font-weight: 400;
}

.nt-faq__item[open] .nt-faq__signe::before {
	content: "−";
}

.nt-faq__reponse {
	padding: 0 0 14px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--nt-ink-muted);
}

/* ---------- B13 Pied de page ---------- */

.nt-pied--complet {
	padding: 24px 0 96px;
}

.nt-pied__grille {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.nt-pied .nt-logo {
	font-size: 24px;
}

.nt-pied__boutique {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 14px;
}

.nt-pied__liens {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 16px;
	font-size: 14px;
}

.nt-pied__liens a {
	display: flex;
	align-items: center;
	min-height: 40px;
}

.nt-pied__reseaux {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.nt-pied__mentions {
	margin-top: 18px;
	margin-bottom: 0;
	font-size: 12px;
	line-height: 1.5;
}

.nt-pied--compact {
	padding: 20px 0 96px;
}

.nt-pied--compact .nt-conteneur {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nt-pied__ligne {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	font-size: 13px;
}

.nt-pied--compact .nt-logo {
	font-size: 22px;
}

.nt-pied__liens-compacts {
	display: flex;
	flex-wrap: wrap;
	gap: 0 16px;
	font-size: 13px;
}

.nt-pied__liens-compacts a,
.nt-pied__ligne a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: #fff;
}

.nt-pied__credit {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.8);
}

/* ---------- Bouton WhatsApp flottant ---------- */

.nt-whatsapp-flottant {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 28px;
	background: var(--nt-whatsapp);
	color: #fff;
	box-shadow: 0 4px 14px rgba(20, 16, 12, 0.18);
}

/* ---------- Motifs décoratifs (réglage « motif ») ---------- */

.nt-motif-lignes .nt-bandeau {
	background-image: repeating-linear-gradient(135deg, color-mix(in srgb, var(--nt-accent) 22%, transparent) 0 2px, transparent 2px 14px);
}

.nt-motif-textile .nt-bandeau {
	background-image:
		radial-gradient(circle at 25% 25%, color-mix(in srgb, var(--nt-accent) 30%, transparent) 0 3px, transparent 4px),
		radial-gradient(circle at 75% 75%, color-mix(in srgb, var(--nt-accent) 30%, transparent) 0 3px, transparent 4px),
		repeating-linear-gradient(45deg, color-mix(in srgb, var(--nt-accent) 14%, transparent) 0 1px, transparent 1px 10px);
	background-size: 24px 24px, 24px 24px, auto;
}

.nt-motif-formes .nt-bandeau {
	background-image:
		radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--nt-accent) 35%, transparent) 0 40px, transparent 41px),
		radial-gradient(circle at 5% 95%, color-mix(in srgb, var(--nt-accent) 25%, transparent) 0 28px, transparent 29px);
}

/* ---------- Catalogue (maquette 03) ---------- */

.nt-catalogue {
	padding-bottom: 32px;
}

.nt-catalogue__entete {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 20px 0 12px;
}

.nt-catalogue__entete .nt-titre-page {
	font-size: 34px;
}

.nt-catalogue__entete .nt-texte-discret {
	font-size: 14px;
}

.nt-catalogue__filtres {
	margin: 0 -16px 12px 0;
}

.nt-catalogue__filtres .nt-filtre {
	min-height: 44px;
}

.nt-catalogue__outils {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.nt-catalogue__filtrer {
	gap: 6px;
}

.nt-catalogue__compte {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: var(--nt-primary);
	color: var(--nt-on-primary);
	font-size: 12px;
	font-weight: 700;
}

/* Filtres actifs : un clic retire le filtre. */
.nt-actifs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
}

.nt-actifs__filtre {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 36px;
	padding: 0 12px;
	border-radius: 999px;
	background: var(--nt-surface-alt);
	border: 1px solid var(--nt-line);
	font-size: 13px;
	font-weight: 600;
}

.nt-actifs__effacer {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	font-size: 13px;
	font-weight: 600;
	color: var(--nt-primary-text);
	text-decoration: underline;
}

/* Panneau « Filtrer » : feuille en bas sur téléphone, panneau latéral sur tablette. */
.nt-filtres {
	width: 100%;
	max-width: 100%;
	max-height: 88vh;
	margin: auto 0 0;
	padding: 0;
	border: 0;
	border-radius: 16px 16px 0 0;
	background: var(--nt-surface);
	color: var(--nt-ink);
}

.nt-filtres::backdrop {
	background: rgba(0, 0, 0, 0.4);
}

.nt-filtres__formulaire {
	display: flex;
	flex-direction: column;
	max-height: 88vh;
}

.nt-filtres__entete {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 8px 8px 16px;
	border-bottom: 1px solid var(--nt-line);
}

.nt-filtres__corps {
	flex: 1;
	overflow-y: auto;
	padding: 8px 16px 16px;
}

.nt-filtres__groupe {
	padding: 14px 0;
	border-bottom: 1px solid var(--nt-line);
}

.nt-filtres__groupe:last-child {
	border-bottom: 0;
}

.nt-filtres__groupe legend {
	float: left;
	width: 100%;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 700;
}

.nt-filtres__choix {
	clear: both;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.nt-choix {
	position: relative;
	cursor: pointer;
}

.nt-choix input {
	position: absolute;
	inset: 0;
	opacity: 0;
	margin: 0;
	cursor: pointer;
}

.nt-choix > span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-button);
	background: var(--nt-surface-alt);
	font-size: 14px;
}

.nt-choix input:checked + span {
	background: var(--nt-ink);
	border-color: var(--nt-ink);
	color: var(--nt-surface);
	font-weight: 600;
}

.nt-choix input:focus-visible + span {
	outline: 2px solid var(--nt-ink);
	outline-offset: 2px;
}

.nt-filtres__prix {
	clear: both;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.nt-filtres__pied {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
	padding: 12px 16px 16px;
	border-top: 1px solid var(--nt-line);
}

.nt-tri {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--nt-ink-muted);
}

.nt-tri select {
	min-height: 44px;
	padding: 0 8px;
	border: 0;
	background: transparent;
	color: var(--nt-ink);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.nt-pagination .nav-links {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 28px;
}

.nt-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-button);
}

.nt-pagination .page-numbers.current {
	background: var(--nt-ink);
	border-color: var(--nt-ink);
	color: var(--nt-surface);
}

.nt-vide {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 48px 0;
	text-align: center;
}

.nt-vide .nt-recherche {
	width: 100%;
	max-width: 420px;
}

/* ---------- Fiche produit (maquette 04) ---------- */

.nt-fiche {
	position: relative;
	padding-bottom: 24px;
}

.nt-fiche__galerie {
	position: relative;
}

.nt-fiche__visuel {
	flex: 0 0 100%;
	height: 400px;
	scroll-snap-align: start;
}

.nt-fiche__badge {
	position: absolute;
	left: 12px;
	bottom: 14px;
	padding: 4px 10px;
	font-size: 12px;
}

.nt-fiche__points {
	position: absolute;
	right: 16px;
	bottom: 18px;
}

.nt-fiche__points .nt-carrousel__point {
	width: 6px;
	height: 6px;
	background: var(--nt-surface);
}

.nt-fiche__points .nt-carrousel__point.est-actif {
	width: 18px;
	background: var(--nt-ink);
}

.nt-fiche__infos {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 18px 16px 0;
}

.nt-fiche__entete {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.nt-fiche__entete .nt-surtitre {
	letter-spacing: 0.1em;
}

.nt-fiche__note {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
}

.nt-fiche__note a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-block: -12px;
	color: var(--nt-ink-muted);
	text-decoration: underline;
}

.nt-fiche__prix {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 22px;
}

.nt-fiche__prix .nt-prix__barre {
	font-size: 16px;
}

.nt-fiche__formulaire {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.nt-variante {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.nt-variante__legende {
	font-size: 14px;
	margin-bottom: 8px;
}

.nt-variante__options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.nt-variante--couleur .nt-variante__options {
	gap: 12px;
}

.nt-option {
	position: relative;
	cursor: pointer;
}

.nt-option input {
	position: absolute;
	opacity: 0;
	inset: 0;
	margin: 0;
	cursor: pointer;
}

.nt-option__texte {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-field);
	background: var(--nt-surface-alt);
	font-size: 14px;
	font-weight: 600;
}

.nt-option input:checked + .nt-option__texte {
	background: var(--nt-ink);
	border-color: var(--nt-ink);
	color: var(--nt-surface);
}

.nt-option input:focus-visible + .nt-option__texte,
.nt-option input:focus-visible + .nt-option__pastille {
	outline: 2px solid var(--nt-ink);
	outline-offset: 3px;
}

.nt-option__pastille {
	display: block;
	width: 44px;
	height: 44px;
	border: 2px solid var(--nt-line);
	border-radius: 22px;
	box-shadow: inset 0 0 0 4px var(--nt-surface);
}

.nt-option input:checked + .nt-option__pastille {
	border-color: var(--nt-ink);
}

.nt-fiche__achat {
	display: flex;
	gap: 10px;
}

.nt-quantite {
	display: flex;
	align-items: center;
	height: 52px;
	flex-shrink: 0;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-field);
}

.nt-quantite__bouton {
	width: 44px;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 20px;
	cursor: pointer;
}

.nt-quantite__valeur {
	width: 32px;
	padding: 0;
	border: 0;
	background: transparent;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.nt-quantite__valeur::-webkit-outer-spin-button,
.nt-quantite__valeur::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.nt-quantite--petite {
	height: 44px;
}

.nt-fiche__ajouter {
	flex-grow: 1;
	padding: 0 14px;
}

.nt-fiche__indisponible {
	font-size: 14px;
	font-weight: 600;
}

.nt-fiche__epuise {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
}

.nt-fiche__garanties {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 14px;
	border-radius: var(--nt-radius-card);
	font-size: 14px;
}

.nt-fiche__garanties li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.nt-fiche__description {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.nt-fiche__description .nt-contenu {
	font-size: 14px;
	line-height: 1.55;
}

.nt-fiche__avis {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 24px;
}

.nt-fiche__avis .nt-avis__liste {
	gap: 10px;
}

.nt-fiche__avis .nt-avis__carte {
	padding: 14px;
	gap: 6px;
}

.nt-fiche__avis blockquote p {
	font-size: 14px;
}

.nt-fiche__avis figcaption {
	font-size: 12px;
}

.nt-fiche__complements {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 24px;
}

.nt-grille-produits--petite {
	gap: 12px;
}

.nt-grille-produits--petite .nt-carte__visuel {
	aspect-ratio: auto;
	height: 120px;
}

.nt-grille-produits--petite .nt-carte__nom,
.nt-grille-produits--petite .nt-carte__prix {
	font-size: 14px;
}

/* ---------- Panier (maquette 05) ---------- */

.nt-page-boutique {
	padding-bottom: 24px;
}

.nt-panier__entete {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 16px 0 12px;
	border-bottom: 1px solid var(--nt-line);
}

.nt-panier__entete .nt-titre-page {
	font-size: 26px;
}

.nt-panier__entete .nt-texte-discret {
	margin-left: auto;
	font-size: 14px;
}

.nt-panier__formulaire {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-top: 16px;
}

.nt-panier__lignes {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nt-panier__ligne {
	display: flex;
	gap: 12px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--nt-line);
}

.nt-panier__visuel {
	width: 88px;
	height: 104px;
	flex-shrink: 0;
	border-radius: var(--nt-radius-card);
}

.nt-panier__details {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.nt-panier__nom {
	font-size: 15px;
	font-weight: 600;
}

.nt-panier__variante {
	font-size: 13px;
}

.nt-panier__bas {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.nt-panier__prix {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	font-size: 15px;
}

.nt-panier__prix .nt-prix__barre {
	font-size: 12px;
}

.nt-panier__retirer {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	font-size: 12px;
	color: var(--nt-ink-muted);
	text-decoration: underline;
}

.nt-panier__offerte {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-radius: var(--nt-radius-card);
	font-size: 14px;
}

.nt-panier__offerte .nt-icone {
	flex-shrink: 0;
	color: var(--nt-primary-text);
}

.nt-panier__code {
	border: 1px dashed var(--nt-line);
	border-radius: var(--nt-radius-card);
	font-size: 14px;
}

.nt-panier__code summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	padding: 0 14px;
	color: var(--nt-ink-muted);
	cursor: pointer;
	list-style: none;
}

.nt-panier__code summary::-webkit-details-marker {
	display: none;
}

.nt-panier__code summary .nt-texte-couleur {
	font-weight: 600;
}

.nt-panier__code-champ {
	display: flex;
	gap: 8px;
	padding: 0 14px 14px;
}

.nt-panier__maj {
	position: absolute;
	left: -9999px;
}

.nt-panier__totaux {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--nt-line);
}

.nt-totaux {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.nt-totaux__ligne {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
	color: var(--nt-ink-muted);
}

.nt-totaux__ligne dt {
	display: flex;
	align-items: center;
	gap: 8px;
}

.nt-totaux__ligne--total {
	font-size: 18px;
	font-weight: 700;
	color: var(--nt-ink);
}

/* ---------- Commande (maquette 06) ---------- */

.nt-commande__entete {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 0 12px;
	border-bottom: 1px solid var(--nt-line);
}

.nt-commande__entete .nt-entete__icone {
	justify-content: flex-start;
}

.nt-commande__entete .nt-titre-page {
	font-size: 26px;
}

.nt-commande__formulaire {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-top: 16px;
}

.woocommerce-billing-fields h3,
.woocommerce-additional-fields {
	display: none;
}

.woocommerce-billing-fields__field-wrapper {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.woocommerce-checkout .form-row {
	margin: 0;
}

/* Pays fixé au Sénégal (champ caché), sauf si la boutique livre à l'international. */
#billing_country_field:has(input[type="hidden"]) {
	display: none;
}

.woocommerce-checkout .form-row select {
	width: 100%;
	min-height: 46px;
	padding: 0 12px;
	border: 1px solid color-mix(in srgb, var(--nt-ink-muted) 55%, #fff);
	border-radius: var(--nt-radius-field);
	background: var(--nt-surface);
	font-size: 15px;
}

/* Options de livraison (addendum B) : cartes à cocher. */
.nt-options {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.nt-option-livraison {
	position: relative;
}

.nt-option-livraison input[type="radio"] {
	position: absolute;
	left: 14px;
	top: 50%;
	width: 20px;
	height: 20px;
	margin: -10px 0 0;
	accent-color: var(--nt-primary);
}

.nt-option-livraison label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 56px;
	padding: 10px 14px 10px 46px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
	background: var(--nt-surface);
	cursor: pointer;
}

.nt-option-livraison input[type="hidden"] + label {
	padding-left: 14px;
}

.nt-option-livraison:has(input:checked) label,
.nt-option-livraison:has(input[type="hidden"]) label {
	border: 2px solid var(--nt-primary);
	background: var(--nt-surface-alt);
}

.nt-option-livraison__texte {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 15px;
}

.nt-option-livraison__texte .nt-texte-discret {
	font-size: 12px;
	line-height: 1.4;
}

.nt-option-livraison__tarif {
	flex-shrink: 0;
	font-size: 15px;
	white-space: nowrap;
}

.nt-recapitulatif {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.nt-commande__articles {
	margin-bottom: 12px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
	font-size: 14px;
}

.nt-commande__articles summary {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 14px;
	cursor: pointer;
}

.nt-commande__articles ul {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 0 14px 12px;
}

.nt-commande__articles li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.woocommerce-checkout .form-row label .required {
	color: var(--nt-danger);
	text-decoration: none;
	border: 0;
}

.woocommerce-checkout .form-row .optional {
	display: none;
}

.woocommerce-checkout .woocommerce-invalid .input-text {
	border-color: var(--nt-danger);
}

.nt-commande__recap {
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
}

.nt-commande__recap summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 48px;
	padding: 0 14px;
	font-size: 14px;
	cursor: pointer;
}

.nt-commande__recap .shop_table {
	width: calc(100% - 28px);
	margin: 0 14px 14px;
	border-collapse: collapse;
	font-size: 14px;
}

.nt-commande__recap .shop_table th,
.nt-commande__recap .shop_table td {
	padding: 8px 0;
	border-top: 1px solid var(--nt-line);
	text-align: left;
	vertical-align: top;
}

.nt-commande__recap .shop_table td:last-child,
.nt-commande__recap .shop_table th:last-child {
	text-align: right;
}

.nt-commande__recap .shop_table ul {
	list-style: none;
}

.wc_payment_methods {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.wc_payment_method {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 12px;
	min-height: 56px;
	padding: 8px 14px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
	background: var(--nt-surface);
}

.wc_payment_method:has(input:checked) {
	border: 2px solid var(--nt-primary);
	background: var(--nt-surface-alt);
}

.wc_payment_method > input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--nt-primary);
}

.wc_payment_method > label {
	flex: 1;
	min-height: 40px;
	display: flex;
	align-items: center;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.wc_payment_method > label img {
	order: 2;
	max-height: 24px;
	width: auto;
	margin-left: auto;
}

.wc_payment_method .payment_box {
	width: 100%;
	padding: 0 0 4px 32px;
	font-size: 12px;
	color: var(--nt-ink-muted);
}

.nt-commande__paiement .place-order {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--nt-line);
}

#place_order {
	display: flex;
	width: 100%;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: var(--nt-radius-button);
	background: var(--nt-primary);
	color: var(--nt-on-primary);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.woocommerce-terms-and-conditions-wrapper {
	font-size: 12px;
	color: var(--nt-ink-muted);
}

.woocommerce-terms-and-conditions-wrapper a {
	text-decoration: underline;
}

.nt-mention-securite {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 12px;
	color: var(--nt-ink-muted);
}

/* Messages WooCommerce */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.woocommerce-NoticeGroup .woocommerce-error {
	margin: 12px 0;
	padding: 12px 14px;
	border-radius: var(--nt-radius-field);
	list-style: none;
	font-size: 14px;
	background: var(--nt-surface-alt);
}

.woocommerce-error {
	background: #fdecea;
	color: var(--nt-danger);
}

.woocommerce-cart .woocommerce-message .wc-forward,
.woocommerce-checkout .woocommerce-message .wc-forward {
	display: none;
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	font-weight: 600;
	text-decoration: underline;
}

.blockUI.blockOverlay {
	background: var(--nt-surface) !important;
}

/* ---------- Confirmation (maquette 07) ---------- */

.nt-confirmation {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 32px 4px 16px;
}

.nt-confirmation__haut {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	text-align: center;
}

.nt-confirmation__haut .nt-titre-page {
	font-size: 34px;
	line-height: 1.05;
}

.nt-confirmation__haut .nt-texte-discret {
	font-size: 15px;
	line-height: 1.5;
}

.nt-confirmation__icone {
	position: relative;
	width: 96px;
	height: 96px;
}

.nt-confirmation__rond {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--nt-surface-alt);
}

.nt-confettis {
	position: absolute;
	border-radius: 50%;
	background: var(--nt-accent);
}

.nt-confettis--1 {
	left: -14px;
	top: 6px;
	width: 16px;
	height: 16px;
}

.nt-confettis--2 {
	right: -18px;
	top: 0;
	width: 10px;
	height: 10px;
	background: var(--nt-photo);
}

.nt-confettis--3 {
	right: -10px;
	bottom: -4px;
	width: 14px;
	height: 14px;
	border-radius: 3px;
	transform: rotate(20deg);
}

.nt-recap {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px;
	border-radius: var(--nt-radius-card);
	font-size: 14px;
}

.nt-recap__ligne {
	display: flex;
	justify-content: space-between;
	gap: 16px;
}

.nt-recap__ligne dt {
	color: var(--nt-ink-muted);
	flex-shrink: 0;
}

.nt-recap__ligne dd {
	text-align: right;
}

.nt-recap__ligne--total {
	padding-top: 10px;
	border-top: 1px solid var(--nt-line);
	font-size: 16px;
}

.nt-recap__ligne--total dt {
	color: var(--nt-ink);
}

.nt-confirmation__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.nt-confirmation .woocommerce-bacs-bank-details,
.nt-confirmation > p {
	font-size: 14px;
	color: var(--nt-ink-muted);
	text-align: center;
}

/* ---------- Pages fixes ---------- */

.nt-page {
	padding-block: 28px 32px;
	max-width: 760px;
}

.nt-page .nt-titre-page {
	margin-bottom: 20px;
}

.nt-page__entete {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 28px;
	padding-bottom: 16px;
}

.nt-appel {
	padding: 24px 0;
}

.nt-appel .nt-conteneur {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nt-appel .nt-titre-h2 {
	line-height: 1.1;
}

.nt-appel__petit-titre {
	font-size: 15px;
	font-weight: 600;
}

.nt-appel__note {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.85);
}

/* À propos (maquette 08) */
.nt-apropos__entete {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 28px;
	padding-bottom: 20px;
}

.nt-apropos__portrait {
	position: relative;
}

.nt-apropos__photo {
	height: 300px;
	border-radius: 150px 150px var(--nt-radius-card) var(--nt-radius-card);
}

.nt-apropos__texte {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-block: 24px;
}

.nt-apropos__texte p + p {
	margin-top: 0;
}

.nt-apropos__citation p {
	font-family: var(--nt-font-title);
	font-weight: var(--nt-title-weight);
	font-size: 22px;
	line-height: 1.3;
}

.nt-engagements {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 18px;
}

.nt-engagements__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.nt-engagements__item .nt-rond-icone {
	width: 44px;
	height: 44px;
}

.nt-engagements__item > span:last-child {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 14px;
}

.nt-engagements__item strong {
	font-size: 16px;
}

.nt-chiffres {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
	gap: 8px;
	text-align: center;
}

.nt-chiffres__item {
	display: flex;
	flex-direction: column-reverse;
	gap: 2px;
}

.nt-chiffres__valeur {
	font-family: var(--nt-font-title);
	font-size: 32px;
	font-weight: var(--nt-logo-weight);
	line-height: 1.1;
}

.nt-chiffres__libelle {
	font-size: 12px;
	color: var(--nt-ink-muted);
}

.nt-apropos__boutique {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 0;
}

.nt-apropos__boutique-visuel {
	position: relative;
}

.nt-apropos__lieu {
	height: 160px;
	border-radius: var(--nt-radius-card);
}

.nt-apropos__boutique-visuel .nt-etiquette {
	left: 12px;
	top: 12px;
	bottom: auto;
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 700;
}

.nt-apropos__boutique-titre {
	font-family: var(--nt-font-text);
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 4px;
}

.nt-apropos__boutique .nt-texte-discret {
	font-size: 14px;
	margin-bottom: 8px;
}

/* Contact (maquette 09) */
.nt-contact__canaux {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-bottom: 24px;
}

.nt-contact__canaux > .nt-bouton {
	min-height: 56px;
	font-size: 16px;
}

.nt-contact__duo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.nt-contact__duo .nt-bouton {
	min-height: 52px;
	border-width: 1px;
}

.nt-contact__formulaire .nt-titre-h2 {
	margin-bottom: 12px;
}

.nt-contact__formulaire .nt-message {
	margin-bottom: 12px;
}

/* Livraison (maquette 10) */
.nt-livraison .nt-titre-h2 {
	margin-bottom: 12px;
}

.nt-livraison .nt-section:first-of-type {
	padding-top: 0;
}

.nt-tarifs {
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
	font-size: 14px;
}

.nt-tarifs__ligne {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px;
}

.nt-tarifs__ligne + .nt-tarifs__ligne {
	border-top: 1px solid var(--nt-line);
}

.nt-tarifs__zone,
.nt-tarifs__prix {
	display: flex;
	flex-direction: column;
}

.nt-tarifs__prix {
	text-align: right;
	flex-shrink: 0;
}

.nt-livraison .nt-contenu {
	font-size: 15px;
	line-height: 1.55;
}

.nt-livraison .nt-contenu p + p {
	margin-top: 10px;
}

.nt-moyens {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.nt-moyens__item {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 12px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-field);
	font-size: 13px;
	font-weight: 600;
}

/* ---------- Tablette (≥ 600 px, maquette 22) ---------- */


/* Contact : communauté WhatsApp (bloc mis en avant) et formulaire. */
.nt-contact__bas {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.nt-communaute {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
	background: var(--nt-surface-alt);
}

.nt-communaute__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--nt-whatsapp);
	color: var(--nt-on-whatsapp);
}

@media (min-width: 600px) {
	.nt-conteneur {
		padding-inline: 32px;
	}

	.nt-section {
		padding-block: 28px;
	}

	.nt-titre-h2 {
		font-size: 30px;
	}

	.nt-titre-display {
		font-size: 44px;
	}

	.nt-titre-page {
		font-size: 36px;
	}

	/* En-tête : logo à gauche, menu horizontal. */
	.nt-entete__barre {
		height: 72px;
		gap: 28px;
		padding: 0 32px;
	}

	.nt-entete__menu {
		display: none;
	}

	.nt-logo {
		font-size: 30px;
	}

	.nt-nav-large {
		display: flex;
		gap: 20px;
		font-size: 15px;
		font-weight: 500;
		white-space: nowrap;
		overflow: hidden;
	}

	.nt-nav-large a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	.nt-nav-large a:hover {
		color: var(--nt-primary-text);
	}

	/* Tablette et ordinateur : logo | menu centré | recherche, compte, panier. */
	.nt-entete--centre .nt-entete__barre,
	.nt-entete--recherche .nt-entete__barre {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
	}

	.nt-entete--centre .nt-logo,
	.nt-entete--recherche .nt-logo {
		justify-self: start;
	}

	.nt-nav-large {
		justify-self: center;
		max-width: 100%;
	}

	.nt-entete--centre .nt-entete__compte {
		display: inline-flex;
	}

	.nt-entete--recherche .nt-entete__barre {
		height: 72px;
		padding-top: 0;
	}

	.nt-entete--recherche .nt-logo {
		margin-right: 0;
	}

	.nt-entete--recherche .nt-entete__recherche {
		padding: 0 32px 14px;
	}

	/* Bannière en deux colonnes. */
	.nt-banniere--photo {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		min-height: 380px;
		padding: 0;
		background: var(--nt-surface-alt);
	}

	.nt-banniere--photo .nt-banniere__photo {
		position: relative;
		inset: auto;
		grid-column: 2;
		grid-row: 1;
		background: var(--nt-photo);
	}

	.nt-banniere--photo:has(.nt-visuel__img)::after {
		display: none;
	}

	.nt-banniere--photo .nt-banniere__texte {
		grid-column: 1;
		grid-row: 1;
		justify-content: center;
		gap: 16px;
		padding: 48px 32px;
	}

	.nt-banniere--photo .nt-titre-display {
		font-size: 48px;
	}

	.nt-banniere__intro {
		font-size: 16px;
		line-height: 1.45;
	}

	.nt-banniere--photo .nt-bouton {
		min-height: 52px;
		padding: 0 26px;
		font-size: 16px;
	}

	.nt-banniere__forme--rond {
		right: -40px;
		top: -40px;
		width: 260px;
		height: 260px;
		opacity: 0.25;
	}

	.nt-banniere__forme--arche {
		left: calc(50% + 90px);
		right: auto;
		top: 70px;
		width: 170px;
		height: 250px;
		border-radius: 85px 85px 8px 8px;
		opacity: 0.45;
	}

	.nt-banniere--split {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
		gap: 32px;
		padding: 40px 32px;
	}

	.nt-banniere--split .nt-banniere__photo {
		height: 320px;
	}

	.nt-banniere--split .nt-titre-h1 {
		font-size: 40px;
	}

	.nt-banniere--couleur {
		padding: 48px 32px;
	}

	.nt-banniere--couleur .nt-titre-h1 {
		font-size: 44px;
	}

	.nt-carrousel__visuel {
		height: 380px;
	}

	.nt-carrousel__fleche {
		top: 168px;
	}

	.nt-banniere--carrousel .nt-carrousel__points {
		top: 410px;
		right: 32px;
	}

	.nt-carrousel__legende {
		padding: 14px 32px 30px;
	}

	/* Garanties sur une ligne. */
	.nt-garanties--ligne .nt-garanties__liste {
		gap: 16px;
		padding: 20px 32px;
	}

	.nt-garanties--ligne .nt-garanties__item {
		flex-direction: row;
		gap: 10px;
		text-align: left;
		font-size: 14px;
	}

	.nt-garanties--detail .nt-garanties__liste {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 24px;
	}

	/* Catégories et produits sur 4 colonnes. */
	.nt-categories--ronds {
		padding: 28px 0 8px;
	}

	.nt-categories .nt-titre-h2 {
		margin-bottom: 16px;
	}

	.nt-categories--ronds .nt-categories__liste,
	.nt-categories--tuiles .nt-categories__liste {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 14px;
	}

	.nt-categories--ronds .nt-categories__lien {
		position: relative;
		display: block;
		width: auto;
	}

	.nt-categories--ronds .nt-categories__visuel,
	.nt-categories--tuiles .nt-categories__visuel {
		width: auto;
		height: 130px;
		border-radius: var(--nt-radius-card);
	}

	.nt-categories--ronds .nt-categories__nom {
		position: absolute;
		left: 10px;
		bottom: 10px;
		padding: 5px 12px;
		border-radius: var(--nt-radius-field);
		background: var(--nt-surface);
		font-size: 14px;
		font-weight: 600;
	}

	.nt-categories--pastilles {
		padding-left: 32px;
	}

	.nt-grille-produits {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 20px 14px;
	}

	.nt-section__entete {
		margin-bottom: 16px;
	}

	.nt-defilant--produits {
		padding-inline: 32px;
	}

	.nt-star {
		display: grid;
		grid-template-columns: 3fr 2fr;
		gap: 24px;
		align-items: start;
	}

	.nt-star__visuel {
		height: 360px;
	}

	.nt-offre__bloc {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		gap: 16px 24px;
		padding: 28px;
	}

	.nt-offre__bloc .nt-bouton {
		grid-column: 1 / -1;
		justify-self: start;
		width: auto;
		padding: 0 32px;
	}

	.nt-offre__duo {
		min-height: 280px;
	}

	/* Les avis remplissent la largeur, qu'il y en ait 2 ou 6. */
	.nt-avis__liste {
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	}

	.nt-histoire__portrait {
		width: 200px;
		height: 260px;
		border-radius: 100px 100px var(--nt-radius-card) var(--nt-radius-card);
	}

	.nt-histoire__duo {
		gap: 32px;
	}

	.nt-histoire__texte .nt-titre-h3 {
		font-size: 28px;
	}

	.nt-histoire--photo {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nt-histoire__photo {
		height: auto;
		min-height: 320px;
	}

	.nt-histoire__citation {
		justify-content: center;
		padding: 40px 32px;
	}

	.nt-vip__bloc {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px 32px;
		padding: 32px;
	}

	.nt-vip__bloc .nt-titre-h3,
	.nt-vip__texte {
		grid-column: 1;
	}

	.nt-vip__formulaire,
	.nt-vip__bloc .nt-message {
		grid-column: 2;
		grid-row: 1 / span 3;
		align-self: center;
	}

	.nt-instagram__grille {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.nt-instagram .nt-bouton--bloc {
		width: auto;
		display: inline-flex;
	}

	.nt-contact-rapide .nt-boutique {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 14px 32px;
	}

	.nt-contact-rapide .nt-boutique .nt-titre-h2 {
		grid-column: 1 / -1;
	}

	.nt-contact-rapide .nt-plan {
		grid-row: span 3;
		height: auto;
		min-height: 200px;
	}

	.nt-contact-rapide--whatsapp .nt-bouton--bloc {
		width: auto;
		padding: 0 40px;
	}

	.nt-faq__liste {
		max-width: 760px;
	}

	/* Pied de page en 3 colonnes. */
	.nt-pied--complet {
		padding: 24px 0 32px;
	}

	.nt-pied__grille {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-areas: "marque liens suivre" "boutique liens suivre";
		align-items: start;
		gap: 8px 24px;
	}

	.nt-pied__marque {
		grid-area: marque;
	}

	.nt-pied__liens {
		grid-area: liens;
	}

	.nt-pied__boutique {
		grid-area: boutique;
	}

	.nt-pied__suivre {
		grid-area: suivre;
	}

	.nt-pied__liens {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.nt-pied__liens a {
		min-height: 32px;
	}

	.nt-pied--compact {
		padding-bottom: 24px;
	}

	.nt-whatsapp-flottant {
		right: 24px;
		bottom: 24px;
		width: 60px;
		height: 60px;
		border-radius: 30px;
	}

	/* Catalogue : le panneau de filtres s'ouvre sur le côté. */
	.nt-filtres {
		width: 420px;
		max-height: 100vh;
		height: 100vh;
		margin: 0 0 0 auto;
		border-radius: 0;
	}

	.nt-filtres__formulaire {
		max-height: 100vh;
		height: 100%;
	}

	.nt-catalogue__entete {
		padding: 28px 0 16px;
	}

	.nt-catalogue__entete .nt-titre-page {
		font-size: 40px;
	}

	.nt-catalogue__filtres {
		margin-right: 0;
	}

	.nt-catalogue__barre {
		display: flex;
	}

	/* Fiche produit : galerie et infos côte à côte. */
	.nt-fiche {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 0 32px;
		max-width: 1280px;
		margin-inline: auto;
		padding: 24px 32px 32px;
	}

	.nt-fiche__galerie {
		position: sticky;
		top: 16px;
		align-self: start;
		overflow: hidden;
		border-radius: var(--nt-radius-card);
	}

	.nt-fiche__visuel {
		height: auto;
		aspect-ratio: 4 / 5;
	}

	.nt-fiche__infos {
		padding: 0;
	}

	.nt-fiche__avis,
	.nt-fiche__complements {
		grid-column: 1 / -1;
		padding-inline: 0;
	}

	.nt-fiche__complements .nt-grille-produits {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.nt-fiche__complements .nt-bouton--bloc {
		width: auto;
		align-self: flex-start;
		padding: 0 28px;
	}

	/* Panier et commande : colonne de lecture confortable. */
	.nt-panier,
	.nt-commande,
	.nt-confirmation {
		max-width: 720px;
		margin-inline: auto;
	}

	.nt-panier__visuel {
		width: 110px;
		height: 130px;
	}

	/* Pages. */
	.nt-apropos__recit {
		display: grid;
		grid-template-columns: 2fr 3fr;
		gap: 40px;
		align-items: start;
	}

	.nt-apropos__photo {
		height: 420px;
		border-radius: 999px 999px var(--nt-radius-card) var(--nt-radius-card);
	}

	.nt-apropos__texte {
		padding-top: 0;
	}

	.nt-engagements {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 24px;
	}

	.nt-apropos__boutique {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 32px;
		align-items: center;
	}

	.nt-apropos__lieu {
		height: 240px;
	}

	.nt-appel .nt-conteneur {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
	}

	.nt-appel .nt-bouton--bloc {
		width: auto;
		padding: 0 32px;
	}

	.nt-contact__canaux {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		max-width: 760px;
		margin-inline: auto;
	}

	.nt-contact__canaux > .nt-bouton {
		height: 100%;
	}

	.nt-contact .nt-section.nt-fond-alt .nt-boutique {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 14px 32px;
	}

	.nt-contact .nt-boutique .nt-titre-h2 {
		grid-column: 1 / -1;
	}

	.nt-contact .nt-plan {
		grid-row: span 4;
		height: auto;
		min-height: 220px;
	}

	.nt-contact__formulaire .nt-formulaire,
	.nt-livraison .nt-tarifs,
	.nt-livraison .nt-contenu {
		max-width: 760px;
	}

	.nt-page__entete,
	.nt-apropos__entete {
		max-width: 1280px;
	}
}

/* ---------- Ordinateur (≥ 1024 px) : même grille, élargie à 1280 px ---------- */

@media (min-width: 1024px) {
	.nt-section {
		padding-block: 48px;
	}

	.nt-categories--ronds,
	.nt-avis--note,
	.nt-histoire--portrait,
	.nt-vip--fonce,
	.nt-offre {
		padding-block: 24px 48px;
	}

	.nt-banniere--photo {
		min-height: 460px;
	}

	.nt-banniere--photo .nt-titre-display {
		font-size: 56px;
	}

	.nt-banniere--photo .nt-banniere__texte {
		padding: 64px max(32px, calc((100vw - 1280px) / 2 + 32px));
	}

	.nt-entete__barre {
		max-width: 1280px;
		margin-inline: auto;
	}

	.nt-entete--centre,
	.nt-entete--recherche {
		border-bottom: 1px solid var(--nt-line);
	}

	.nt-entete__barre {
		border-bottom: 0;
	}

	.nt-entete--recherche .nt-entete__recherche {
		max-width: 1280px;
		margin-inline: auto;
		border-bottom: 0;
	}

	.nt-categories--ronds .nt-categories__visuel,
	.nt-categories--tuiles .nt-categories__visuel {
		height: 180px;
	}

	.nt-avis__liste {
		grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	}

	/* Bannière photo : fond sur toute la largeur, texte et photo alignés sur la colonne du site (1280 px). */
	.nt-banniere--photo {
		grid-template-columns: minmax(32px, 1fr) minmax(0, 608px) minmax(0, 608px) minmax(32px, 1fr);
	}

	.nt-banniere--photo .nt-banniere__texte {
		grid-column: 2;
		padding: 64px 48px 64px 0;
	}

	.nt-banniere--photo .nt-banniere__photo {
		grid-column: 3;
		margin-block: 40px;
		overflow: hidden;
		border-radius: var(--nt-radius-card);
	}

	/* Pages de lecture (livraison, formulaire de contact) : colonne centrée. */
	.nt-livraison > .nt-page__entete,
	.nt-livraison .nt-conteneur {
		max-width: 880px;
	}

	.nt-livraison .nt-tarifs,
	.nt-livraison .nt-conteneur.nt-contenu {
		max-width: 880px;
	}

	.nt-livraison .nt-tarifs {
		max-width: none;
	}

	/* Contact : formulaire et communauté WhatsApp côte à côte. */
	.nt-contact__bas--duo {
		display: grid;
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
		align-items: start;
		gap: 48px;
	}

	.nt-contact__bas--duo .nt-communaute {
		grid-column: 2;
		grid-row: 1;
		padding: 28px;
	}

	.nt-contact__bas--duo .nt-contact__formulaire {
		grid-column: 1;
		grid-row: 1;
	}

	.nt-contact__bas--duo .nt-contact__formulaire .nt-formulaire {
		max-width: none;
	}

	/* Contact : canaux sur une ligne, dans la colonne. */
	.nt-contact__canaux {
		max-width: 1280px;
		grid-template-columns: minmax(0, 360px) minmax(0, 420px);
		justify-content: start;
	}

	.nt-fiche__avis .nt-avis__liste {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}


/* Sous-catégories dans le menu : en retrait, plus discrètes. */
.nt-menu__categories .nt-menu__sous {
	padding-left: 20px;
	color: var(--nt-ink-muted);
	font-size: 15px;
}

/* ---------- Mon compte (WooCommerce) aux couleurs de la boutique ---------- */

.woocommerce-account .nt-page-boutique {
	padding-block: 24px 48px;
}

.woocommerce-account .nt-page-boutique h2 {
	margin: 0 0 14px;
	font-family: var(--nt-font-title);
	font-size: 26px;
	font-weight: var(--nt-title-weight);
}

.woocommerce-account .nt-page-boutique h3 {
	margin: 18px 0 8px;
	font-size: 18px;
}

.woocommerce-account .u-columns,
.woocommerce-account .col2-set {
	display: grid;
	gap: 24px;
}

.woocommerce-account .u-column1,
.woocommerce-account .u-column2,
.woocommerce-account .col-1,
.woocommerce-account .col-2 {
	width: auto;
	float: none;
	padding: 20px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
}

.woocommerce-account form .form-row,
.woocommerce-account .woocommerce-form-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 14px;
	padding: 0;
	font-size: 14px;
	font-weight: 500;
}

.woocommerce-account form .input-text,
.woocommerce-account form select,
.woocommerce-account form textarea {
	width: 100%;
	min-height: 46px;
	padding: 0 12px;
	border: 1px solid color-mix(in srgb, var(--nt-ink-muted) 55%, #fff);
	border-radius: var(--nt-radius-field);
	background: var(--nt-surface);
	color: var(--nt-ink);
	font-size: 16px;
}

.woocommerce-account .password-input {
	position: relative;
	display: block;
}

.woocommerce-account .show-password-input {
	position: absolute;
	top: 0;
	right: 0;
	width: 46px;
	height: 46px;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.woocommerce-account .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin-right: 16px;
}

.woocommerce-account .woocommerce-form-login__rememberme input {
	width: 20px;
	height: 20px;
	accent-color: var(--nt-primary);
}

.woocommerce-account .button,
.woocommerce-account button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	border: 1.5px solid var(--nt-primary);
	border-radius: var(--nt-radius-button);
	background: var(--nt-primary);
	color: var(--nt-on-primary);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.woocommerce-account .woocommerce-orders-table .button,
.woocommerce-account .woocommerce-Address .edit {
	min-height: 40px;
	padding: 0 14px;
	background: transparent;
	color: var(--nt-primary-text);
	font-size: 14px;
}

.woocommerce-account .lost_password a,
.woocommerce-account .woocommerce-MyAccount-content a:not(.button) {
	color: var(--nt-primary-text);
	font-weight: 600;
}

.woocommerce-account .woocommerce-privacy-policy-text {
	color: var(--nt-ink-muted);
	font-size: 13px;
}

/* Menu du compte : pastilles défilantes sur téléphone, colonne sur ordinateur. */
.woocommerce-MyAccount-navigation ul {
	display: flex;
	gap: 8px;
	margin: 0 -16px 20px;
	padding: 2px 16px 4px;
	overflow-x: auto;
	list-style: none;
	scrollbar-width: none;
}

.woocommerce-MyAccount-navigation a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--nt-line);
	border-radius: 999px;
	white-space: nowrap;
	font-size: 14px;
	font-weight: 600;
}

.woocommerce-MyAccount-navigation .is-active a {
	border-color: var(--nt-ink);
	background: var(--nt-ink);
	color: var(--nt-surface);
}

.woocommerce-MyAccount-content > p:first-child {
	font-size: 16px;
}

/* Commandes : cartes sur téléphone, tableau sur ordinateur. */
.woocommerce-account table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td {
	padding: 10px 8px;
	border-bottom: 1px solid var(--nt-line);
	text-align: left;
}

.woocommerce-account table.shop_table thead th {
	color: var(--nt-ink-muted);
	font-weight: 600;
}

.woocommerce-account .woocommerce-Address {
	padding: 16px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.woocommerce-account address {
	font-style: normal;
	line-height: 1.6;
}

.woocommerce-account fieldset {
	margin: 18px 0;
	padding: 16px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
}

@media (max-width: 599px) {
	.woocommerce-account table.shop_table_responsive thead {
		display: none;
	}

	.woocommerce-account table.shop_table_responsive tr {
		display: block;
		margin-bottom: 12px;
		padding: 8px 12px;
		border: 1px solid var(--nt-line);
		border-radius: var(--nt-radius-card);
	}

	.woocommerce-account table.shop_table_responsive td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		padding: 6px 0;
		border: 0;
		text-align: right;
	}

	.woocommerce-account table.shop_table_responsive td::before {
		content: attr(data-title);
		color: var(--nt-ink-muted);
		font-weight: 600;
		text-align: left;
	}
}

@media (min-width: 900px) {
	.woocommerce-account .u-columns,
	.woocommerce-account .col2-set {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 240px minmax(0, 1fr);
		gap: 40px;
		align-items: start;
	}

	.woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		margin: 0;
		padding: 0;
		overflow: visible;
	}

	.woocommerce-MyAccount-navigation a {
		width: 100%;
		border-radius: var(--nt-radius-button);
	}
}

/* ---------- Lignes qui défilent (témoignages, catégories) ---------- */

.nt-defilement {
	position: relative;
}

.nt-defilement__piste {
	/* Positionnée : les éléments en position absolue des cartes restent dans la ligne. */
	position: relative;
	display: flex;
	gap: 14px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	scroll-padding-inline: 16px;
	padding-inline: 16px;
	padding-block: 4px 8px;
	margin: 0;
	list-style: none;
}

.nt-defilement__piste::-webkit-scrollbar {
	display: none;
}

.nt-defilement__piste > * {
	flex-shrink: 0;
	scroll-snap-align: start;
}

.nt-defilement__piste:focus-visible {
	outline: 2px solid var(--nt-primary);
	outline-offset: 2px;
}

.nt-defilement__commandes {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 10px;
}

.nt-defilement__commandes[hidden],
.nt-defilement__bouton[hidden] {
	display: none;
}

.nt-defilement__bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--nt-line);
	border-radius: 50%;
	background: var(--nt-surface);
	color: var(--nt-ink);
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s;
}

.nt-defilement__bouton:hover {
	background: var(--nt-primary);
	border-color: var(--nt-primary);
	color: var(--nt-on-primary);
}

/* Une diapo à la fois (citations B7-B). */
.nt-defilement--un .nt-defilement__piste {
	gap: 0;
	padding-inline: 0;
	scroll-padding-inline: 0;
}

.nt-defilement--un .nt-defilement__diapo {
	width: 100%;
}

.nt-defilement--un .nt-defilement__commandes {
	justify-content: center;
}

/* Catégories nombreuses : la ligne défile au lieu de la grille. */
.nt-categories .nt-defilement__piste {
	padding-inline: 0;
	scroll-padding-inline: 0;
}

.nt-categories--ronds .nt-categories__liste--defile {
	justify-content: flex-start;
	gap: 10px;
}

/* Téléphone : la 5e catégorie dépasse un peu, pour montrer qu'il y en a d'autres. */
.nt-categories--ronds .nt-categories__liste--defile .nt-categories__lien {
	width: 76px;
}

.nt-categories--tuiles .nt-categories__liste--defile > li {
	width: 62%;
}

.nt-categories--pastilles .nt-defilement__commandes {
	padding-right: 16px;
}

/* ---------- Témoignages (B7) ---------- */

.nt-temoignages__element {
	display: flex;
	width: min(84%, 340px);
}

.nt-temoignage {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	padding: 18px;
	border: 1px solid var(--nt-line);
	border-radius: var(--nt-radius-card);
	background: var(--nt-surface);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.nt-temoignage__note {
	color: var(--nt-accent);
}

.nt-temoignage__note .nt-etoiles {
	display: inline-flex;
	gap: 2px;
}

.nt-temoignage__texte {
	flex: 1;
	margin: 0;
}

.nt-temoignage__texte p {
	font-size: 15px;
	line-height: 1.5;
}

.nt-temoignage__capture {
	display: block;
	overflow: hidden;
	max-height: 180px;
	border-radius: var(--nt-radius-field);
	border: 1px solid var(--nt-line);
}

.nt-temoignage__capture img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: top;
}

.nt-temoignage__auteur {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 14px;
}

.nt-temoignage__infos {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	font-size: 12px;
	font-weight: 600;
}

.nt-temoignage__source {
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--nt-surface-alt);
	color: var(--nt-ink);
}

.nt-temoignage__source--whatsapp {
	background: #E7F6EC;
	color: #135C2C;
}

@media (hover: hover) {
	.nt-temoignage:hover {
		transform: translateY(-3px);
		box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
	}
}

/* ---------- Animations qui donnent envie (désactivées si moins d'animations demandées) ---------- */

/* Apparition au défilement : le script n'ajoute nt-apparition qu'aux éléments encore sous l'écran. */
.nt-apparition {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	transition-delay: var(--nt-retard, 0ms);
}

.nt-apparition.est-apparu {
	opacity: 1;
	transform: none;
}

/* Bannière : la photo avance très lentement, le texte arrive en fondu. */
@keyframes nt-zoom-lent {
	from {
		transform: scale(1.08);
	}

	to {
		transform: scale(1);
	}
}

@keyframes nt-monte {
	from {
		opacity: 0;
		transform: translateY(16px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

.nt-banniere--photo .nt-banniere__photo img,
.nt-banniere--split .nt-visuel__img {
	animation: nt-zoom-lent 9s ease-out both;
}

.nt-banniere__texte > * {
	animation: nt-monte 0.7s ease-out both;
}

.nt-banniere__texte > *:nth-child(2) {
	animation-delay: 0.12s;
}

.nt-banniere__texte > *:nth-child(3) {
	animation-delay: 0.24s;
}

.nt-banniere__texte > *:nth-child(4) {
	animation-delay: 0.36s;
}

/* Cartes produits : la photo grossit doucement au survol. */
.nt-carte__media {
	overflow: hidden;
}

.nt-carte__visuel {
	transition: transform 0.45s ease;
}

@media (hover: hover) {
	.nt-carte:hover .nt-carte__visuel {
		transform: scale(1.05);
	}

	.nt-categories__lien .nt-categories__visuel {
		transition: transform 0.3s ease;
	}

	.nt-categories__lien:hover .nt-categories__visuel {
		transform: scale(1.06);
	}
}

/* Boutons : léger enfoncement au toucher. */
.nt-bouton:active {
	transform: scale(0.97);
}

/* Promo du moment : le bouton attire l'œil trois fois, sans clignoter en continu. */
@keyframes nt-pulsation {
	0%,
	100% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--nt-primary) 45%, transparent);
	}

	50% {
		box-shadow: 0 0 0 10px color-mix(in srgb, var(--nt-primary) 0%, transparent);
	}
}

.nt-offre .nt-bouton {
	animation: nt-pulsation 1.8s ease-out 1s 3;
}

/* Les secondes du compte à rebours changent en douceur. */
.nt-compte__valeur {
	display: inline-block;
	transition: transform 0.2s ease;
}

/* Badge promo : petit battement pour attirer l'œil (trois fois). */
@keyframes nt-battement {
	0%,
	100% {
		transform: scale(1);
	}

	50% {
		transform: scale(1.08);
	}
}

.nt-badge--promo {
	animation: nt-battement 1.6s ease-in-out 2s 3;
}

@media (min-width: 600px) {
	.nt-defilement__piste {
		padding-inline: 32px;
		scroll-padding-inline: 32px;
	}

	.nt-categories .nt-defilement__piste {
		padding-inline: 0;
		scroll-padding-inline: 0;
	}

	.nt-categories--ronds .nt-categories__liste--defile,
	.nt-categories--tuiles .nt-categories__liste--defile {
		display: flex;
		gap: 14px;
	}

	.nt-categories--ronds .nt-categories__liste--defile > li,
	.nt-categories--tuiles .nt-categories__liste--defile > li {
		width: calc((100% - 3 * 14px) / 4);
	}

	.nt-temoignages__element {
		width: 340px;
	}
}

@media (min-width: 1024px) {
	.nt-categories--ronds .nt-categories__liste--defile > li,
	.nt-categories--tuiles .nt-categories__liste--defile > li {
		width: calc((100% - 4 * 14px) / 5);
	}

	/* Les témoignages restent alignés sur le conteneur de 1280 px. */
	.nt-temoignages {
		padding-inline: max(32px, calc((100% - 1280px) / 2 + 32px));
		scroll-padding-inline: max(32px, calc((100% - 1280px) / 2 + 32px));
	}
}

/* ---------- Préférences ---------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}

	.nt-apparition {
		opacity: 1;
		transform: none;
	}
}
