/*
Theme Name: Shiny Corner (Astra Child)
Theme URI: https://shiny-corner.fr
Description: Thème enfant Astra pour la boutique TCG Shiny Corner — Pokémon, Riftbound, One Piece.
Author: Shiny Corner
Template: astra
Version: 1.0.0
Text Domain: shiny-corner
*/

/* ==========================================================================
   1. Jetons de design
   Les couleurs viennent des couleurs globales Astra (palette turquoise).
   Les valeurs après la virgule sont les replis si Astra ne les émet pas.
   ========================================================================== */

:root {
	--sc-teal:        var(--ast-global-color-0, #3AA6B9);
	--sc-teal-dark:   var(--ast-global-color-1, #2997AA);
	--sc-ink:         var(--ast-global-color-2, #0F172A);
	--sc-body:        var(--ast-global-color-3, #454F5E);
	--sc-tint:        var(--ast-global-color-4, #E9F8F9);
	--sc-white:       var(--ast-global-color-5, #FFFFFF);
	--sc-border:      var(--ast-global-color-6, #CAE6E8);
	--sc-dark:        var(--ast-global-color-7, #181823);

	--sc-muted:       #7A8794;
	--sc-alert:       #B4531F;
	--sc-alert-tint:  #FDECE2;
	--sc-success:     #2E7D5B;

	--sc-font-head:   'Lexend', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--sc-font-body:   'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--sc-radius-card: 14px;
	--sc-radius-box:  16px;
	--sc-radius-pill: 50px;

	--sc-gap:         26px;
	--sc-section:     88px;
	--sc-container:   1200px;
}

/* ==========================================================================
   2. Base
   ========================================================================== */

.sc-container {
	max-width: var(--sc-container);
	margin: 0 auto;
	padding: 0 40px;
}

.sc-section {
	padding-top: var(--sc-section);
}

.sc-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--sc-teal);
}

.sc-lead {
	font-size: 17px;
	line-height: 1.5;
	text-wrap: pretty;
}

.sc-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 30px;
}

.sc-section-head h2 {
	font-size: 42px;
	letter-spacing: -0.02em;
	margin: 0;
}

.sc-section-head p {
	margin: 12px 0 0;
	font-size: 17px;
}

/* Boutons — reprend le radius 50px et le padding 15/30 réglés dans Astra. */

.sc-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: none;
	border-radius: var(--sc-radius-pill);
	padding: 15px 30px;
	font-family: var(--sc-font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	background: var(--sc-teal);
	color: var(--sc-white);
	cursor: pointer;
	transition: background 0.15s ease;
}

.sc-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--sc-teal-dark);
	color: var(--sc-white);
}

.sc-btn--ghost,
.woocommerce a.button.alt--ghost {
	background: var(--sc-white);
	color: var(--sc-ink);
	box-shadow: inset 0 0 0 1px var(--sc-border);
}

.sc-btn--ghost:hover {
	background: var(--sc-tint);
	color: var(--sc-ink);
}

.sc-btn--dark {
	background: var(--sc-ink);
	color: var(--sc-white);
}

.sc-btn--icon {
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: var(--sc-radius-pill);
}

.sc-btn--sm {
	padding: 11px 20px;
	font-size: 14px;
}

/* ==========================================================================
   3. Bandeau d'annonce + en-tête
   (l'en-tête réel est monté avec header-footer-elementor ; ces règles
   habillent le bandeau ajouté par le thème enfant et la pastille panier)
   ========================================================================== */

.sc-topbar {
	background: var(--sc-dark);
	color: var(--sc-border);
	font-size: 13px;
}

.sc-topbar__inner {
	max-width: var(--sc-container);
	margin: 0 auto;
	padding: 0 40px;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.sc-topbar a {
	color: var(--sc-border);
}

.sc-topbar a:hover {
	color: var(--sc-white);
}

.sc-topbar__links {
	display: flex;
	gap: 24px;
	align-items: center;
}

.sc-cart-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--sc-tint);
	border-radius: var(--sc-radius-pill);
	padding: 9px 16px;
	font-size: 14px;
	font-weight: 700;
	color: var(--sc-ink);
	line-height: 1;
}

.sc-cart-pill--full {
	background: var(--sc-teal);
	color: var(--sc-white);
}

.sc-cart-pill--full svg {
	stroke: var(--sc-white);
}

/* ==========================================================================
   4. Carte produit (grilles boutique, accueil, articles similaires)
   ========================================================================== */

.sc-grid {
	display: grid;
	gap: var(--sc-gap);
}

.sc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sc-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* La grille WooCommerce est reprise en CSS grid pour tenir le gap.
   Le nombre de colonnes suit la classe columns-N posée par WooCommerce. */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sc-gap);
	margin: 0;
	padding: 0;
}

.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

.woocommerce ul.products li.product {
	width: 100%;
	margin: 0;
	float: none;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-card);
	overflow: hidden;
	background: var(--sc-white);
}

.sc-card__media {
	position: relative;
	height: 208px;
	background: var(--sc-tint);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.sc-card__media img {
	max-height: 168px;
	width: auto;
	margin: 0;
	object-fit: contain;
}

.sc-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--sc-white);
	color: var(--sc-ink);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: var(--sc-radius-pill);
	line-height: 1.3;
}

.sc-card__badge--dark {
	background: var(--sc-ink);
	color: var(--sc-white);
}

.sc-card__body {
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex-grow: 1;
}

.sc-card__kicker {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--sc-teal);
}

.woocommerce ul.products li.product .sc-card__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--sc-font-head);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--sc-ink);
	padding: 0;
	margin: 0;
}

.sc-card__meta {
	font-size: 13px;
	color: var(--sc-body);
}

.sc-card__meta--muted {
	color: var(--sc-muted);
	flex-grow: 1;
}

.sc-card__foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 8px;
}

.woocommerce ul.products li.product .price {
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 20px;
	color: var(--sc-ink);
	margin: 0;
}

.woocommerce ul.products li.product .price del {
	font-family: var(--sc-font-body);
	font-size: 14px;
	font-weight: 400;
	color: var(--sc-muted);
	margin-right: 6px;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

.woocommerce ul.products li.product a.button {
	margin: 0;
	padding: 11px 20px;
	font-size: 14px;
}

.sc-card__stock {
	font-size: 13px;
	font-weight: 500;
	color: var(--sc-body);
}

.sc-card__stock--low {
	color: var(--sc-alert);
}

/* Le rang des meilleures ventes remplace le badge. */
.sc-card__rank {
	position: absolute;
	top: 12px;
	left: 12px;
	width: 30px;
	height: 30px;
	border-radius: var(--sc-radius-pill);
	background: var(--sc-ink);
	color: var(--sc-white);
	font-family: var(--sc-font-head);
	font-size: 13px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ==========================================================================
   5. Archive boutique : en-tête de rayon, filtres, barre d'outils
   ========================================================================== */

.sc-shop-hero {
	position: relative;
	background: var(--sc-tint);
	border-bottom: 1px solid var(--sc-border);
	padding: 34px 0 38px;
	margin-bottom: 34px;
	overflow: hidden;
}

.sc-shop-hero__inner {
	position: relative;
}

.sc-shop-hero h1 {
	font-size: 42px;
	letter-spacing: -0.02em;
	margin: 0;
}

.sc-shop-hero .sc-eyebrow {
	margin-bottom: 10px;
}

.sc-shop-hero p,
.sc-shop-hero__desc {
	margin: 12px 0 0;
	font-size: 17px;
	max-width: 700px;
	text-wrap: pretty;
}

/* Archives de catégorie : hero sombre, image de catégorie en fond. */

.sc-shop-hero--dark {
	background: var(--sc-dark);
	border-bottom: none;
	padding: 56px 0 64px;
}

.sc-shop-hero--dark h1 {
	color: var(--sc-white);
	font-size: 52px;
}

.sc-shop-hero--dark .sc-shop-hero__desc,
.sc-shop-hero--dark .sc-shop-hero__desc p {
	color: var(--sc-border);
}

.sc-shop-hero--dark .sc-breadcrumb,
.sc-shop-hero--dark .sc-breadcrumb a,
.sc-shop-hero--dark .sc-breadcrumb span {
	color: var(--sc-border);
}

.sc-shop-hero--dark .sc-breadcrumb a:hover {
	color: var(--sc-white);
}

.sc-shop-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.5;
}

.sc-shop-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--sc-dark) 20%, rgba(24, 24, 35, 0.7) 58%, rgba(24, 24, 35, 0.25) 100%);
}

.sc-breadcrumb {
	font-size: 13px;
	color: var(--sc-body);
	margin-bottom: 12px;
}

.sc-breadcrumb span[aria-current] {
	color: var(--sc-ink);
	font-weight: 500;
}

.sc-shop {
	display: flex;
	gap: 36px;
	align-items: flex-start;
	padding-bottom: 72px;
}

.sc-shop__results {
	flex-grow: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 22px;
}

/* --- Panneau de filtres --- */

.sc-filters {
	width: 282px;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: 26px;
}

.sc-filters__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.sc-filters__head h2 {
	font-size: 20px;
	margin: 0;
}

.sc-filters__reset {
	background: none;
	border: none;
	padding: 0;
	color: var(--sc-teal);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}

.sc-filters__search {
	position: relative;
}

.sc-filters__search input {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-pill);
	padding: 12px 18px 12px 42px;
	font-family: var(--sc-font-body);
	font-size: 15px;
	color: var(--sc-body);
	background: var(--sc-white);
}

.sc-filters__search svg {
	position: absolute;
	left: 16px;
	top: 13px;
	stroke: var(--sc-muted);
}

.sc-filters__panel {
	display: flex;
	flex-direction: column;
	gap: 26px;
}

.sc-filters__toggle {
	display: none;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 14px 18px;
	background: var(--sc-tint);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-card);
	font-family: var(--sc-font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--sc-ink);
	cursor: pointer;
}

.sc-filters__toggle-label {
	display: flex;
	align-items: center;
	gap: 10px;
}

.sc-filters__badge {
	background: var(--sc-teal);
	color: var(--sc-white);
	font-size: 12px;
	font-weight: 700;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: var(--sc-radius-pill);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.sc-filters__chevron {
	display: flex;
	transition: transform 0.15s ease;
}

.sc-filters__toggle[aria-expanded="true"] .sc-filters__chevron {
	transform: rotate(180deg);
}

.sc-filters__subgroup {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--sc-muted);
	margin: 6px 0 2px;
}

.sc-filters__group:first-of-type .sc-filters__subgroup:first-child,
.sc-filters__subgroup:first-child {
	margin-top: 0;
}

.sc-filters__group {
	border-top: 1px solid var(--sc-border);
	padding-top: 20px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.sc-filters__group h3 {
	font-size: 15px;
	font-weight: 600;
	margin: 0;
}

.sc-check {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	font-size: 15px;
	color: var(--sc-body);
}

.sc-check input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.sc-check__box {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	border: 1px solid var(--sc-border);
	border-radius: 5px;
	background: var(--sc-white);
	display: flex;
	align-items: center;
	justify-content: center;
}

.sc-check__box svg {
	stroke: transparent;
}

.sc-check input:checked + .sc-check__box {
	background: var(--sc-teal);
	border-color: var(--sc-teal);
}

.sc-check input:checked + .sc-check__box svg {
	stroke: var(--sc-white);
}

.sc-check input:focus-visible + .sc-check__box {
	outline: 2px solid var(--sc-teal);
	outline-offset: 2px;
}

.sc-check__label {
	flex-grow: 1;
}

.sc-check__count {
	font-size: 13px;
	color: var(--sc-muted);
}

.sc-price {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.sc-price input[type="range"] {
	width: 100%;
	accent-color: var(--sc-teal);
}

.sc-price__legend {
	display: flex;
	justify-content: space-between;
	font-size: 14px;
	color: var(--sc-body);
}

.sc-price__legend strong {
	color: var(--sc-ink);
}

.sc-switch {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	font-size: 15px;
	font-weight: 500;
	color: var(--sc-ink);
}

.sc-switch input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.sc-switch__track {
	width: 42px;
	height: 24px;
	border-radius: var(--sc-radius-pill);
	background: var(--sc-border);
	padding: 3px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	transition: background 0.15s ease;
}

.sc-switch__track::after {
	content: '';
	width: 18px;
	height: 18px;
	border-radius: var(--sc-radius-pill);
	background: var(--sc-white);
	transition: transform 0.15s ease;
}

.sc-switch input:checked + .sc-switch__track {
	background: var(--sc-teal);
}

.sc-switch input:checked + .sc-switch__track::after {
	transform: translateX(18px);
}

/* --- Barre d'outils des résultats --- */

.sc-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.sc-toolbar__count {
	font-size: 15px;
	color: var(--sc-body);
}

.sc-toolbar__count strong {
	color: var(--sc-ink);
}

.sc-toolbar__actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.sc-toolbar__actions .woocommerce-ordering,
.woocommerce .sc-toolbar__actions .woocommerce-ordering {
	margin: 0;
	display: flex;
	align-items: center;
}

.woocommerce .sc-toolbar select,
.sc-toolbar select {
	height: 44px;
	box-sizing: border-box;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-pill);
	padding: 0 18px;
	font-family: var(--sc-font-body);
	font-size: 15px;
	line-height: 1;
	color: var(--sc-ink);
	background-color: var(--sc-white);
	vertical-align: middle;
}

.sc-view {
	display: flex;
	align-items: stretch;
	height: 44px;
	box-sizing: border-box;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-pill);
	overflow: hidden;
}

.sc-view button {
	border: none;
	background: var(--sc-white);
	color: var(--sc-body);
	padding: 0 15px;
	display: flex;
	align-items: center;
	cursor: pointer;
}

.sc-view button[aria-pressed="true"] {
	background: var(--sc-ink);
	color: var(--sc-white);
}

/* Puces de filtres actifs */

.sc-activefilters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.sc-activefilters a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--sc-tint);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-pill);
	padding: 8px 14px;
	font-size: 14px;
	color: var(--sc-ink);
	text-decoration: none;
}

/* Vue liste */

.sc-shop--list ul.products {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.sc-shop--list ul.products li.product {
	flex-direction: row;
}

.sc-shop--list .sc-card__media {
	width: 220px;
	height: auto;
	flex-shrink: 0;
}

.sc-shop--list .sc-card__body {
	padding: 22px 26px;
}

/* Aucun résultat */

.sc-empty {
	border: 1px dashed var(--sc-border);
	border-radius: var(--sc-radius-card);
	padding: 56px 40px;
	text-align: center;
}

.sc-empty h3 {
	font-size: 20px;
	margin: 0 0 10px;
}

.sc-empty p {
	margin: 0 0 20px;
}

/* Pagination */

.woocommerce nav.woocommerce-pagination ul {
	border: none;
	display: flex;
	gap: 8px;
	justify-content: center;
	padding-top: 18px;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: none;
	margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-pill);
	padding: 0 14px;
	font-size: 15px;
	color: var(--sc-ink);
	background: var(--sc-white);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--sc-ink);
	color: var(--sc-white);
	border-color: var(--sc-ink);
}

/* ==========================================================================
   6. Fiche produit
   ========================================================================== */

.woocommerce div.product {
	padding-top: 26px;
}

.woocommerce div.product div.images {
	width: 520px;
	float: none;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image {
	background: var(--sc-tint);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-box);
	padding: 34px;
	box-sizing: border-box;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	border-radius: 10px;
	box-shadow: 0 18px 40px rgba(15, 23, 42, 0.22);
}

.woocommerce div.product .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin-top: 14px;
}

.woocommerce div.product .flex-control-thumbs li {
	width: 100%;
	margin: 0;
}

.woocommerce div.product .flex-control-thumbs img {
	border: 1px solid var(--sc-border);
	border-radius: 12px;
}

.woocommerce div.product .flex-control-thumbs img.flex-active {
	border-color: var(--sc-teal);
}

.woocommerce div.product div.summary {
	width: auto;
	float: none;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.sc-product-layout {
	display: flex;
	gap: 56px;
	align-items: flex-start;
}

.woocommerce div.product .product_title {
	font-size: 42px;
	letter-spacing: -0.02em;
	margin: 0;
}

.sc-product-tags {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.sc-product-tags .sc-pill {
	background: var(--sc-tint);
	color: var(--sc-ink);
	font-size: 12px;
	font-weight: 600;
	padding: 5px 12px;
	border-radius: var(--sc-radius-pill);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 38px;
	color: var(--sc-ink);
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0;
}

.woocommerce div.product p.price del {
	font-family: var(--sc-font-body);
	font-size: 16px;
	font-weight: 400;
	color: var(--sc-muted);
	opacity: 1;
}

.woocommerce div.product p.price ins {
	text-decoration: none;
}

.sc-tax-note {
	font-size: 14px;
	color: var(--sc-muted);
	margin: -12px 0 0;
}

.sc-stock-note {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--sc-tint);
	border-radius: 12px;
	padding: 14px 18px;
	font-size: 15px;
	font-weight: 500;
	color: var(--sc-ink);
	margin: 0;
}

/* Variations présentées en pastilles plutôt qu'en menus déroulants. */

.woocommerce div.product form.cart .variations {
	border: none;
	margin: 0;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
	display: block;
	padding: 0;
	border: none;
	text-align: left;
}

.woocommerce div.product form.cart .variations tr {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 20px;
}

.woocommerce div.product form.cart .variations label {
	font-size: 15px;
	font-weight: 600;
	color: var(--sc-ink);
}

.woocommerce div.product form.cart .variations select {
	border: 1px solid var(--sc-border);
	border-radius: 12px;
	padding: 12px 18px;
	font-family: var(--sc-font-body);
	font-size: 15px;
	color: var(--sc-ink);
	background: var(--sc-white);
	max-width: 320px;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
}

.woocommerce div.product form.cart .sc-cart-row {
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
}

.woocommerce .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-pill);
	height: 48px;
	overflow: hidden;
}

/* La fiche produit garde un sélecteur plus généreux. */
.woocommerce div.product form.cart .quantity {
	height: 52px;
}

.woocommerce div.product form.cart .quantity .sc-qty-btn {
	flex-basis: 46px;
	width: 46px;
	min-width: 46px;
	font-size: 22px;
}

.woocommerce .quantity .sc-qty-btn {
	flex: 0 0 40px;
	width: 40px;
	min-width: 40px;
	height: 100%;
	padding: 0;
	box-sizing: border-box;
	border: none;
	background: none;
	font-size: 20px;
	line-height: 1;
	color: var(--sc-ink);
	cursor: pointer;
}

.woocommerce .quantity input.qty {
	width: 44px;
	min-width: 44px;
	padding: 0;
	border: none;
	background: none;
	text-align: center;
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 17px;
	color: var(--sc-ink);
	-moz-appearance: textfield;
	appearance: textfield;
}

.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button {
	appearance: none;
	margin: 0;
}

.woocommerce div.product form.cart button.single_add_to_cart_button {
	height: 52px;
	padding: 15px 34px;
}

.sc-wishlist {
	width: 52px;
	height: 52px;
	border: 1px solid var(--sc-border);
	background: var(--sc-white);
	border-radius: var(--sc-radius-pill);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

/* Bloc réassurance sous le formulaire */

.sc-assurances {
	border-top: 1px solid var(--sc-border);
	padding-top: 22px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	list-style: none;
}

.sc-assurances li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 15px;
	margin: 0;
}

.sc-assurances svg {
	flex-shrink: 0;
	stroke: var(--sc-teal);
}

/* Onglets */

.woocommerce div.product .woocommerce-tabs {
	padding-top: 72px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 4px;
	border-bottom: 1px solid var(--sc-border);
	margin: 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none;
	border: none;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 14px 22px;
	font-family: var(--sc-font-body);
	font-size: 16px;
	font-weight: 500;
	color: var(--sc-body);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	font-weight: 600;
	color: var(--sc-ink);
	border-bottom-color: var(--sc-teal);
}

.woocommerce div.product .woocommerce-tabs .panel {
	padding-top: 34px;
	margin: 0;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
	font-size: 26px;
	margin: 0 0 14px;
}

.woocommerce table.shop_attributes {
	border: none;
	max-width: 640px;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	border: none;
	border-bottom: 1px solid var(--sc-border);
	padding: 13px 0;
	font-size: 15px;
	font-style: normal;
	background: none;
}

.woocommerce table.shop_attributes th {
	width: 220px;
	color: var(--sc-muted);
	font-weight: 400;
}

.woocommerce table.shop_attributes td {
	color: var(--sc-ink);
	font-weight: 500;
}

/* Articles similaires */

.woocommerce .related > h2,
.woocommerce .up-sells > h2 {
	font-size: 32px;
	letter-spacing: -0.01em;
	margin: 0 0 28px;
}

.woocommerce .related {
	padding-top: 76px;
}

/* ==========================================================================
   7. Panier
   ========================================================================== */

.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header,
.woocommerce-account .entry-header {
	padding-top: 52px;
}

.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-account .entry-title {
	font-size: 42px;
	letter-spacing: -0.02em;
	margin-bottom: 26px;
}

.sc-cart-progress {
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-card);
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 18px;
}

.sc-cart-progress__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 15px;
	gap: 16px;
}

.sc-cart-progress__head strong {
	color: var(--sc-ink);
	font-weight: 500;
}

.sc-cart-progress__head span {
	color: var(--sc-muted);
}

.sc-cart-progress__track {
	height: 8px;
	border-radius: var(--sc-radius-pill);
	background: var(--sc-tint);
	overflow: hidden;
}

.sc-cart-progress__bar {
	height: 100%;
	background: var(--sc-teal);
	border-radius: var(--sc-radius-pill);
}

.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 40px;
	align-items: start;
}

/* Les messages WooCommerce occupent toute la largeur, au-dessus des deux
   colonnes : sans cette règle ils prennent une cellule de la grille et
   décalent le récapitulatif. */
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.woocommerce-cart form.woocommerce-cart-form {
	grid-column: 1;
	min-width: 0;
	margin: 0;
}

.woocommerce-cart .woocommerce > .cart-empty,
.woocommerce-cart .woocommerce > .return-to-shop,
.woocommerce-cart .woocommerce > .wc-empty-cart-message {
	grid-column: 1 / -1;
}

.woocommerce-cart table.shop_table {
	border: none;
	border-radius: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.woocommerce-cart table.shop_table thead {
	display: none;
}

.woocommerce-cart table.shop_table tbody,
.woocommerce-cart table.shop_table tfoot {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: 100%;
}

.woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
	position: relative;
	display: grid;
	grid-template-columns: 116px minmax(0, 1fr) 110px auto 130px;
	grid-template-areas: "thumb name price quantity subtotal";
	align-items: center;
	column-gap: 22px;
	row-gap: 14px;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-card);
	padding: 20px 52px 20px 20px;
}

.woocommerce-cart table.shop_table td {
	border: none;
	padding: 0;
}

/* WooCommerce répète l'intitulé de colonne devant chaque cellule sur petit
   écran ; la mise en page du panier s'en passe. Sélecteur volontairement
   spécifique pour passer devant la feuille de style de l'extension. */
.woocommerce-cart .woocommerce table.shop_table tr.woocommerce-cart-form__cart-item td::before {
	content: none;
	display: none;
}

.woocommerce-cart td.product-remove {
	position: absolute;
	top: 14px;
	right: 16px;
	width: auto;
}

.woocommerce-cart td.product-remove a.remove {
	color: var(--sc-muted) !important;
	font-size: 22px;
	line-height: 1;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.woocommerce-cart td.product-remove a.remove:hover {
	color: var(--sc-alert) !important;
	background: none;
}

.woocommerce-cart td.product-thumbnail {
	grid-area: thumb;
	width: 116px;
}

.woocommerce-cart td.product-thumbnail img {
	width: 116px;
	height: 140px;
	object-fit: contain;
	background: var(--sc-tint);
	border-radius: 10px;
}

.woocommerce-cart td.product-name {
	grid-area: name;
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.woocommerce-cart td.product-name a {
	font-family: var(--sc-font-head);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--sc-ink);
}

.woocommerce-cart td.product-name .variation {
	font-size: 14px;
	color: var(--sc-body);
	margin: 0;
}

.woocommerce-cart td.product-price {
	grid-area: price;
	font-size: 15px;
	color: var(--sc-body);
}

.woocommerce-cart td.product-quantity {
	grid-area: quantity;
}

.woocommerce-cart td.product-subtotal {
	grid-area: subtotal;
	text-align: right;
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 20px;
	color: var(--sc-ink);
}

/* Le sélecteur de quantité garde sa largeur : les boutons ne se coupent plus. */
.woocommerce-cart .quantity,
.woocommerce div.product .quantity {
	width: max-content;
	flex-shrink: 0;
}

.woocommerce .quantity .sc-qty-btn {
	flex: 0 0 auto;
}

/* Ligne d'actions : code promo et mise à jour. */
.woocommerce-cart table.shop_table tr:not(.woocommerce-cart-form__cart-item) td.actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 0;
}

.woocommerce-cart .cart-collaterals {
	grid-column: 2;
	width: 100%;
	float: none;
	margin: 0;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100%;
	float: none;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-box);
	padding: 28px;
	box-sizing: border-box;
}

.woocommerce-cart .cart_totals h2 {
	font-size: 22px;
	margin: 0 0 18px;
}

.woocommerce-cart .cart_totals table {
	border: none;
	margin: 0;
}

.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	border: none;
	padding: 6px 0;
	font-size: 15px;
	background: none;
}

.woocommerce-cart .cart_totals table th {
	font-weight: 400;
	color: var(--sc-body);
	width: auto;
}

.woocommerce-cart .cart_totals table td {
	text-align: right;
	color: var(--sc-ink);
	font-weight: 500;
}

.woocommerce-cart .cart_totals tr.order-total {
	border-top: 1px solid var(--sc-border);
}

.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td {
	padding-top: 18px;
	font-family: var(--sc-font-head);
	font-weight: 600;
	color: var(--sc-ink);
}

.woocommerce-cart .cart_totals tr.order-total th {
	font-size: 18px;
}

.woocommerce-cart .cart_totals tr.order-total td {
	font-size: 30px;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 16px 30px;
}

.woocommerce-cart .coupon {
	display: flex;
	gap: 10px;
	margin-top: 18px;
}

.woocommerce-cart .coupon input#coupon_code {
	flex-grow: 1;
	min-width: 0;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-pill);
	padding: 12px 18px;
	font-family: var(--sc-font-body);
	font-size: 15px;
}

.woocommerce-cart .coupon button {
	background: var(--sc-white);
	color: var(--sc-ink);
	box-shadow: inset 0 0 0 1px var(--sc-ink);
	padding: 12px 22px;
	font-size: 15px;
}

.woocommerce-cart .coupon button:hover {
	background: var(--sc-tint);
	color: var(--sc-ink);
}

.sc-cart-notes {
	border-top: 1px solid var(--sc-border);
	padding-top: 18px;
	margin-top: 18px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-size: 14px;
	list-style: none;
}

.sc-cart-notes li {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	margin: 0;
}

.sc-cart-notes svg {
	flex-shrink: 0;
	stroke: var(--sc-teal);
}

/* ==========================================================================
   8. Blocs de contenu réutilisables (accueil, à propos, pages légales)
   Utilisables depuis Elementor via un widget HTML ou les classes CSS.
   ========================================================================== */

.sc-hero {
	position: relative;
	background: var(--sc-dark);
	overflow: hidden;
}

.sc-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.5;
}

.sc-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--sc-dark) 22%, rgba(24, 24, 35, 0.72) 55%, rgba(24, 24, 35, 0.3) 100%);
}

.sc-hero__inner {
	position: relative;
	max-width: var(--sc-container);
	margin: 0 auto;
	padding: 92px 40px 96px;
}

.sc-hero__content {
	max-width: 620px;
	display: flex;
	flex-direction: column;
	gap: 22px;
	align-items: flex-start;
}

.sc-hero h1 {
	font-size: 64px;
	color: var(--sc-white);
	letter-spacing: -0.02em;
	margin: 0;
}

.sc-hero p {
	font-size: 19px;
	color: var(--sc-border);
	margin: 0;
	max-width: 520px;
	text-wrap: pretty;
}

.sc-hero .sc-eyebrow {
	background: var(--sc-teal);
	color: var(--sc-white);
	padding: 7px 14px;
	border-radius: var(--sc-radius-pill);
}

.sc-band {
	position: relative;
	border-radius: var(--sc-radius-box);
	overflow: hidden;
	background: var(--sc-dark);
}

.sc-band__inner {
	position: relative;
	padding: 58px 56px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: flex-start;
	max-width: 560px;
}

.sc-band h2 {
	font-size: 38px;
	color: var(--sc-white);
	letter-spacing: -0.02em;
	margin: 0;
}

.sc-band p {
	color: var(--sc-border);
	font-size: 16px;
	margin: 0;
	max-width: 460px;
}

/* Cartes univers TCG */

.sc-tcg {
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-card);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	background: var(--sc-white);
}

.sc-tcg__head {
	height: 132px;
	background: var(--sc-tint);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 28px;
	font-family: var(--sc-font-head);
	font-weight: 700;
	font-size: 25px;
	color: var(--sc-ink);
	letter-spacing: -0.01em;
	text-align: center;
}

.sc-tcg__body {
	padding: 26px 28px 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex-grow: 1;
}

.sc-tcg__body p {
	margin: 0;
	font-size: 15px;
	flex-grow: 1;
	text-wrap: pretty;
}

.sc-tcg__stats {
	display: flex;
	gap: 20px;
	font-size: 13px;
	font-weight: 500;
	color: var(--sc-ink);
	border-top: 1px solid var(--sc-border);
	padding-top: 14px;
}

/* Bandeau réassurance */

.sc-trust {
	background: var(--sc-tint);
	margin-top: var(--sc-section);
}

.sc-trust__inner {
	max-width: var(--sc-container);
	margin: 0 auto;
	padding: 46px 40px;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 36px;
}

.sc-trust__item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.sc-trust__item svg {
	flex-shrink: 0;
	stroke: var(--sc-teal);
}

.sc-trust__item h4 {
	font-size: 16px;
	font-weight: 600;
	margin: 0;
}

.sc-trust__item p {
	margin: 5px 0 0;
	font-size: 14px;
}

/* Étapes numérotées (à propos) */

.sc-step {
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-card);
	padding: 26px 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.sc-step__num {
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 15px;
	color: var(--sc-teal);
}

.sc-step h3 {
	font-size: 19px;
	margin: 0;
}

.sc-step p {
	margin: 0;
	font-size: 15px;
}

/* Encadré chiffres */

.sc-figures {
	background: var(--sc-tint);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius-box);
	padding: 30px 32px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.sc-figures__item + .sc-figures__item {
	border-top: 1px solid var(--sc-border);
	padding-top: 18px;
}

.sc-figures__value {
	display: block;
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 32px;
	color: var(--sc-ink);
}

/* Pages légales */

.sc-legal {
	display: flex;
	gap: 64px;
	align-items: flex-start;
	padding: 44px 0 80px;
}

.sc-legal__toc {
	width: 280px;
	flex-shrink: 0;
	position: sticky;
	top: 100px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.sc-legal__toc h2 {
	font-size: 15px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--sc-muted);
	margin: 0;
}

.sc-legal__toc a {
	display: block;
	font-size: 14px;
	color: var(--sc-body);
	padding: 8px 0 8px 14px;
	border-left: 2px solid var(--sc-border);
	text-decoration: none;
}

.sc-legal__toc a:hover,
.sc-legal__toc a.is-current {
	color: var(--sc-ink);
	font-weight: 500;
	border-left-color: var(--sc-teal);
}

.sc-legal__body {
	flex-grow: 1;
	max-width: 760px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.sc-legal__body h2 {
	font-size: 24px;
	margin: 0 0 14px;
}

.sc-legal__body p {
	margin: 0 0 14px;
	font-size: 16px;
	text-wrap: pretty;
}

.sc-callout {
	border: 1px solid var(--sc-border);
	border-radius: 12px;
	padding: 20px 24px;
	display: flex;
	gap: 14px;
	align-items: flex-start;
	font-size: 15px;
}

.sc-callout svg {
	flex-shrink: 0;
	margin-top: 2px;
	stroke: var(--sc-alert);
}

/* ==========================================================================
   9. Pied de page
   ========================================================================== */

.sc-footer {
	background: var(--sc-dark);
	color: var(--sc-border);
}

.sc-footer__cols {
	max-width: var(--sc-container);
	margin: 0 auto;
	padding: 64px 40px 28px;
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 48px;
	border-bottom: 1px solid rgba(202, 230, 232, 0.18);
}

.sc-footer h4 {
	font-size: 14px;
	color: var(--sc-white);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin: 0 0 11px;
}

.sc-footer a {
	color: var(--sc-border);
	font-size: 14px;
	display: block;
	padding: 5px 0;
}

.sc-footer a:hover {
	color: var(--sc-white);
}

.sc-footer__bottom {
	max-width: var(--sc-container);
	margin: 0 auto;
	padding: 22px 40px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	font-size: 13px;
}

/* ==========================================================================
   10. Responsive
   ========================================================================== */

@media (max-width: 1200px) {
	.sc-container,
	.sc-hero__inner,
	.sc-trust__inner,
	.sc-footer__cols,
	.sc-footer__bottom,
	.sc-topbar__inner {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 1024px) {
	:root {
		--sc-section: 64px;
		--sc-gap: 20px;
	}

	.woocommerce ul.products,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.sc-grid--3,
	.sc-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sc-shop {
		flex-direction: column;
	}

	.sc-filters {
		width: 100%;
	}

	.sc-product-layout {
		flex-direction: column;
		gap: 34px;
	}

	.woocommerce div.product div.images {
		width: 100%;
	}

	.sc-hero h1 {
		font-size: 50px;
	}

	.sc-shop-hero h1,
	.sc-section-head h2 {
		font-size: 36px;
	}

	.sc-trust__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sc-footer__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sc-legal {
		flex-direction: column;
		gap: 34px;
	}

	.sc-legal__toc {
		position: static;
		width: 100%;
	}

	.woocommerce-cart .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart form.woocommerce-cart-form,
	.woocommerce-cart .cart-collaterals {
		grid-column: 1;
	}

	/* Panneau de filtres replié derrière un bouton sur les petits écrans. */
	.sc-filters__toggle {
		display: flex;
	}

	.sc-filters__panel {
		display: none;
	}

	.sc-filters.is-open .sc-filters__panel {
		display: flex;
		padding-top: 22px;
	}
}

@media (max-width: 767px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-2,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.sc-grid--3,
	.sc-grid--4 {
		grid-template-columns: 1fr;
	}

	.sc-hero h1 {
		font-size: 42px;
	}

	.sc-hero__inner {
		padding: 56px 24px 60px;
	}

	.sc-shop-hero h1,
	.sc-section-head h2 {
		font-size: 34px;
	}

	.sc-section-head,
	.sc-toolbar {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.sc-band__inner {
		padding: 40px 28px;
	}

	.woocommerce div.product .product_title {
		font-size: 34px;
	}

	.woocommerce div.product p.price,
	.woocommerce div.product span.price {
		font-size: 32px;
	}

	.woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
		flex-wrap: wrap;
	}

	.woocommerce-cart td.product-subtotal {
		width: 100%;
		text-align: left;
		margin-left: 0;
	}

	.sc-trust__inner,
	.sc-footer__cols {
		grid-template-columns: 1fr;
	}

	.sc-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	/* Cibles tactiles : jamais sous 44 px sur mobile. */
	.sc-check,
	.sc-chip,
	.sc-view button {
		min-height: 44px;
	}
}

/* ==========================================================================
   11. Compléments
   ========================================================================== */

.sc-shop-hero__desc p:last-child {
	margin-bottom: 0;
}

.sc-cart-continue {
	padding-top: 6px;
	margin: 0;
}

.sc-cart-continue a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 500;
	color: var(--sc-teal);
}

.sc-icon {
	flex-shrink: 0;
}

.sc-breadcrumb__sep {
	padding: 0 8px;
	color: var(--sc-muted);
}

/* Pied de page : marque */

.sc-footer__brand {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
	color: var(--sc-white);
}

.sc-footer__brand span {
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 20px;
	color: var(--sc-white);
}

.sc-footer__brand svg {
	stroke: var(--sc-teal);
}

.sc-footer p {
	margin: 0 0 12px;
	font-size: 14px;
	max-width: 300px;
	text-wrap: pretty;
}

/* ==========================================================================
   12. Ajustements du thème parent
   Astra ajoute sur la boutique des éléments absents de la maquette :
   bandeau d'archive, ligne de stock en double, badges de paiement.
   ========================================================================== */

.post-type-archive-product .ast-archive-entry-banner,
.tax-product_cat .ast-archive-entry-banner {
	display: none;
}

.woocommerce div.product .ast-shipping-text,
.woocommerce div.product .ast-stock-avail,
.woocommerce div.product .summary .stock,
.woocommerce div.product .single-product-category,
.woocommerce div.product .ast-single-product-payments {
	display: none;
}

/* Le nom du site remplace le logo : Astra masque .site-title par défaut. */
.ast-site-identity .site-title {
	display: block;
}

/* Réseaux sociaux de la démonstration retirés de l'en-tête. */
.ast-header-social-1-wrap {
	display: none;
}

.woocommerce div.product .product_meta {
	font-size: 14px;
	color: var(--sc-muted);
	border-top: 1px solid var(--sc-border);
	padding-top: 18px;
}

.woocommerce div.product .product_meta > span {
	display: inline-block;
	margin-right: 18px;
}

/* Hero et blocs de page */

.sc-hero__actions {
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 6px;
}

.sc-hero__link {
	color: var(--sc-white);
	font-size: 16px;
	font-weight: 500;
	padding: 15px 8px;
}

.sc-hero__link:hover {
	color: var(--sc-border);
}

.sc-apropos-hero {
	max-width: 780px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.sc-apropos-hero h1 {
	font-size: 64px;
	letter-spacing: -0.02em;
	margin: 0;
}

.sc-apropos-split {
	display: flex;
	gap: 64px;
	align-items: flex-start;
}

.sc-apropos-split > div:first-child {
	flex-grow: 1;
	max-width: 640px;
}

.sc-apropos-split .sc-figures {
	width: 400px;
	flex-shrink: 0;
	box-sizing: border-box;
}

.sc-figures__item span:last-child {
	font-size: 15px;
}

.sc-band .sc-btn--ghost {
	margin-top: 8px;
}

@media (max-width: 1024px) {
	.sc-apropos-hero h1 {
		font-size: 44px;
	}

	.sc-apropos-split {
		flex-direction: column;
		gap: 34px;
	}

	.sc-apropos-split .sc-figures {
		width: 100%;
	}
}

/* En-tête : nom du site en guise de logo */

.site-title,
.ast-site-identity .site-title a {
	font-family: var(--sc-font-head);
	font-weight: 600;
	font-size: 21px;
	letter-spacing: -0.01em;
	color: var(--sc-ink);
}

.ast-site-identity .site-title a:hover {
	color: var(--sc-teal);
}

/* Carte produit : titre en encre, bouton d'ajout réduit à l'icône panier */

.woocommerce ul.products li.product .sc-card__title a {
	color: var(--sc-ink);
}

.woocommerce ul.products li.product .sc-card__title a:hover {
	color: var(--sc-teal);
}

.woocommerce ul.products li.product a.sc-card__cta,
.woocommerce ul.products li.product .sc-card__foot a.added_to_cart {
	width: 38px;
	height: 38px;
	padding: 0;
	font-size: 0;
	line-height: 0;
	border-radius: var(--sc-radius-pill);
	background-color: var(--sc-teal);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h2.2l2 11h10l2-8H7'/%3E%3Ccircle cx='9.5' cy='20' r='1.3'/%3E%3Ccircle cx='17.5' cy='20' r='1.3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
}

.woocommerce ul.products li.product a.sc-card__cta:hover {
	background-color: var(--sc-teal-dark);
}

/* Le lien « Voir le panier » ajouté après l'ajax reprend la même pastille. */
.woocommerce ul.products li.product a.added_to_cart {
	margin-left: 8px;
}

/* ==========================================================================
   13. En-tête collante
   ========================================================================== */

.site-header .ast-main-header-wrap,
#ast-mobile-header .ast-main-header-wrap {
	position: sticky;
	top: 0;
	z-index: 99;
	background: var(--sc-white);
	box-shadow: 0 1px 0 var(--sc-border);
}

.admin-bar .site-header .ast-main-header-wrap,
.admin-bar #ast-mobile-header .ast-main-header-wrap {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header .ast-main-header-wrap,
	.admin-bar #ast-mobile-header .ast-main-header-wrap {
		top: 46px;
	}
}

/* Les ancres du sommaire des pages légales ne passent plus sous l'en-tête. */
html {
	scroll-padding-top: 110px;
}

.sc-legal__toc {
	top: 120px;
}

@media (max-width: 1024px) {
	.sc-shop-hero--dark h1 {
		font-size: 38px;
	}
}

/* ==========================================================================
   14. Bandeau d'annonce, panier et vue liste sur petits écrans
   ========================================================================== */

.sc-topbar__text--short {
	display: none;
}

.sc-footer__logo {
	display: block;
	height: auto;
}

@media (max-width: 1200px) {
	/* Cinq colonnes ne tiennent plus : le prix et la quantité passent sous le
	   titre, la vignette reste à gauche. */
	.woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 116px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name     subtotal"
			"thumb price    price"
			"thumb quantity quantity";
		align-items: start;
		row-gap: 10px;
	}

	.woocommerce-cart td.product-name {
		padding-top: 2px;
	}
}

@media (max-width: 767px) {
	/* Bandeau d'annonce : message court, centré, sans les liens. */
	.sc-topbar {
		font-size: 12px;
	}

	.sc-topbar__inner {
		height: auto;
		min-height: 34px;
		padding: 7px 24px;
		justify-content: center;
		text-align: center;
	}

	.sc-topbar__links {
		display: none;
	}

	.sc-topbar__text--full {
		display: none;
	}

	.sc-topbar__text--short {
		display: inline;
	}

	/* Panier : la vignette et le titre en haut, le prix unitaire dessous,
	   puis la quantité et le sous-total sur une même ligne. */
	.woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 88px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb    name     name"
			"thumb    price    price"
			"quantity quantity subtotal";
		align-items: start;
		column-gap: 16px;
		row-gap: 10px;
		padding: 18px 46px 18px 18px;
	}

	.woocommerce-cart td.product-thumbnail,
	.woocommerce-cart td.product-thumbnail img {
		width: 88px;
	}

	.woocommerce-cart td.product-thumbnail img {
		height: 108px;
	}

	.woocommerce-cart td.product-name a {
		font-size: 16px;
	}

	.woocommerce-cart td.product-price {
		font-size: 14px;
		color: var(--sc-muted);
	}

	/* Lève l'ambiguïté avec le sous-total, sans ajouter de libellé. */
	.woocommerce-cart td.product-price::after {
		content: ' / unité';
	}

	.woocommerce-cart td.product-quantity,
	.woocommerce-cart td.product-subtotal {
		align-self: center;
		margin-top: 4px;
	}

	.woocommerce-cart td.product-subtotal {
		font-size: 22px;
	}

	/* Un prix ne se coupe jamais en deux lignes. */
	.woocommerce-cart td.product-price,
	.woocommerce-cart td.product-subtotal {
		white-space: nowrap;
	}

	.woocommerce-cart table.shop_table tr:not(.woocommerce-cart-form__cart-item) td.actions {
		flex-direction: column;
		align-items: stretch;
	}

	.woocommerce-cart .coupon {
		width: 100%;
	}

	/* Vue liste : les cartes reprennent la mise en page verticale. */
	.sc-shop--list ul.products li.product {
		flex-direction: column;
	}

	.sc-shop--list .sc-card__media {
		width: 100%;
		height: 208px;
	}

	.sc-shop--list .sc-card__body {
		padding: 18px;
	}
}
