/*
 * Boutique dynamique NicoBee
 * À copier dans :
 * /wp-content/themes/nicobee-child/nicobee-boutique.css
 */

:root {
	--nb-shop-navy: #062759;
	--nb-shop-blue: #0793cc;
	--nb-shop-cyan: #3fd2f2;
	--nb-shop-sky: #edf9fd;
	--nb-shop-sky-strong: #dff5fc;
	--nb-shop-line: #d7e9f0;
	--nb-shop-white: #ffffff;
	--nb-shop-text: #38506c;
	--nb-shop-honey: #ffc84a;
	--nb-shop-green: #35c58b;
	--nb-shop-shadow: 0 18px 50px rgba(6, 39, 89, 0.1);
	--nb-shop-radius: 28px;
}

body.post-type-archive-product .site-content > .ast-container {
	display: block;
	max-width: none;
	padding: 0;
}

body.post-type-archive-product #primary,
body.post-type-archive-product .content-area {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

body.post-type-archive-product .ast-woocommerce-container {
	padding: 0;
	background: transparent;
}

body.post-type-archive-product .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-products-header,
body.post-type-archive-product .woocommerce-result-count,
body.post-type-archive-product .woocommerce-ordering {
	display: none !important;
}

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

.nb-shop {
	overflow: hidden;
	color: var(--nb-shop-text);
	font-family: "Manrope", Arial, sans-serif;
	background: var(--nb-shop-white);
}

.nb-shop h1,
.nb-shop h2,
.nb-shop h3,
.nb-shop .woocommerce-loop-product__title {
	margin-top: 0;
	color: var(--nb-shop-navy);
	font-family: "Sora", Arial, sans-serif;
	font-weight: 600;
	letter-spacing: -0.045em;
}

.nb-shop a {
	text-decoration: none;
}

.nb-shop a:focus-visible,
.nb-shop button:focus-visible {
	outline: 3px solid var(--nb-shop-cyan);
	outline-offset: 4px;
}

.nb-shop-container {
	width: min(calc(100% - 64px), 1220px);
	margin-inline: auto;
}

.nb-shop-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	color: var(--nb-shop-blue);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	line-height: 1.2;
	text-transform: uppercase;
}

.nb-shop-eyebrow::before {
	width: 28px;
	height: 3px;
	border-radius: 999px;
	background: var(--nb-shop-cyan);
	content: "";
}

.nb-shop-hero {
	position: relative;
	padding: 76px 0 72px;
	background:
		radial-gradient(circle at 88% 15%, rgba(63, 210, 242, 0.26), transparent 30%),
		linear-gradient(135deg, #f7fcfe 0%, var(--nb-shop-sky) 58%, #e3f7fc 100%);
}

.nb-shop-hero::after {
	position: absolute;
	right: -140px;
	bottom: -230px;
	width: 480px;
	height: 480px;
	border: 1px solid rgba(7, 147, 204, 0.12);
	border-radius: 50%;
	content: "";
}

.nb-shop-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 370px;
	gap: 70px;
	align-items: center;
}

.nb-shop-hero__content {
	max-width: 760px;
}

.nb-shop-hero h1 {
	max-width: 790px;
	margin-bottom: 22px;
	font-size: clamp(2.6rem, 4.7vw, 4.75rem);
	line-height: 1.02;
}

.nb-shop-hero h1 span {
	display: block;
	color: var(--nb-shop-blue);
}

.nb-shop-hero__text {
	max-width: 690px;
	margin: 0;
	font-size: 1.08rem;
	line-height: 1.75;
}

.nb-shop-hero__actions,
.nb-shop-help__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 31px;
}

.nb-shop-button {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	gap: 13px;
	padding: 13px 22px;
	border: 1px solid transparent;
	border-radius: 13px;
	font-size: 0.96rem;
	font-weight: 800;
	line-height: 1.2;
	transition: transform 180ms ease, box-shadow 180ms ease, color 180ms ease, background 180ms ease;
}

.nb-shop-button:hover {
	transform: translateY(-2px);
}

.nb-shop-button--primary {
	color: var(--nb-shop-white);
	background: var(--nb-shop-blue);
	box-shadow: 0 12px 26px rgba(7, 147, 204, 0.24);
}

.nb-shop-button--primary:hover {
	color: var(--nb-shop-white);
	background: var(--nb-shop-navy);
}

.nb-shop-button--secondary {
	color: var(--nb-shop-navy);
	border-color: rgba(6, 39, 89, 0.16);
	background: rgba(255, 255, 255, 0.68);
}

.nb-shop-button--secondary:hover {
	color: var(--nb-shop-white);
	border-color: var(--nb-shop-blue);
	background: var(--nb-shop-blue);
}

.nb-shop-hero__visual {
	position: relative;
	display: grid;
	width: 330px;
	height: 330px;
	place-items: center;
	justify-self: end;
}

.nb-shop-hero__mark {
	position: relative;
	z-index: 2;
	display: grid;
	width: 190px;
	height: 190px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 42px;
	background: rgba(255, 255, 255, 0.74);
	box-shadow: var(--nb-shop-shadow);
	backdrop-filter: blur(12px);
	transform: rotate(-6deg);
}

.nb-shop-hero__mark svg {
	width: 108px;
	fill: none;
	stroke: var(--nb-shop-blue);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 5;
}

.nb-shop-hero__orb {
	position: absolute;
	border-radius: 50%;
}

.nb-shop-hero__orb--one {
	inset: 5px 10px 35px 20px;
	border: 1px solid rgba(7, 147, 204, 0.23);
}

.nb-shop-hero__orb--two {
	top: 38px;
	right: 0;
	width: 74px;
	height: 74px;
	background: linear-gradient(135deg, var(--nb-shop-cyan), var(--nb-shop-blue));
	box-shadow: 0 15px 35px rgba(7, 147, 204, 0.25);
}

.nb-shop-benefits {
	position: relative;
	z-index: 3;
	border-top: 1px solid rgba(215, 233, 240, 0.72);
	border-bottom: 1px solid var(--nb-shop-line);
	background: var(--nb-shop-white);
}

.nb-shop-benefits__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.nb-shop-benefit {
	display: flex;
	min-height: 118px;
	align-items: center;
	gap: 15px;
	padding: 25px 24px;
}

.nb-shop-benefit:not(:last-child) {
	border-right: 1px solid var(--nb-shop-line);
}

.nb-shop-benefit__icon {
	display: grid;
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	place-items: center;
	border-radius: 14px;
	color: var(--nb-shop-blue);
	background: var(--nb-shop-sky);
}

.nb-shop-benefit__icon svg {
	width: 23px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.nb-shop-benefit strong,
.nb-shop-benefit span {
	display: block;
}

.nb-shop-benefit strong {
	margin-bottom: 4px;
	color: var(--nb-shop-navy);
	font-family: "Sora", Arial, sans-serif;
	font-size: 0.92rem;
}

.nb-shop-benefit div > span {
	color: #6c8197;
	font-size: 0.76rem;
	line-height: 1.45;
}

.nb-shop-category-nav {
	padding: 31px 0;
	border-bottom: 1px solid var(--nb-shop-line);
	background: var(--nb-shop-white);
}

.nb-shop-category-nav .nb-shop-container {
	display: flex;
	align-items: center;
	gap: 28px;
}

.nb-shop-category-nav__title {
	flex: 0 0 auto;
	margin: 0;
	color: var(--nb-shop-navy);
	font-family: "Sora", Arial, sans-serif;
	font-size: 0.92rem;
	font-weight: 700;
}

.nb-shop-category-nav__links {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.nb-shop-category-nav__links a {
	padding: 9px 14px;
	border: 1px solid var(--nb-shop-line);
	border-radius: 999px;
	color: var(--nb-shop-navy);
	background: var(--nb-shop-white);
	font-size: 0.8rem;
	font-weight: 700;
	transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}

.nb-shop-category-nav__links a:first-child,
.nb-shop-category-nav__links a:hover {
	color: var(--nb-shop-white);
	border-color: var(--nb-shop-blue);
	background: var(--nb-shop-blue);
}

.nb-shop-category {
	padding: 86px 0 94px;
	scroll-margin-top: 100px;
}

.nb-shop-category--light {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.38), transparent 32%),
		var(--nb-shop-sky);
}

.nb-shop-category--white {
	background: var(--nb-shop-white);
}

.nb-shop-category__header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 44px;
}

.nb-shop-category__header > div {
	max-width: 760px;
}

.nb-shop-category__header h2 {
	margin-bottom: 14px;
	font-size: clamp(2rem, 3.2vw, 3.35rem);
	line-height: 1.08;
}

.nb-shop-category__description {
	max-width: 700px;
	margin: 0;
	font-size: 1rem;
	line-height: 1.7;
}

.nb-shop-category__description p:last-child {
	margin-bottom: 0;
}

.nb-shop-category__link {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 10px;
	padding-bottom: 5px;
	border-bottom: 1px solid rgba(7, 147, 204, 0.45);
	color: var(--nb-shop-blue);
	font-size: 0.9rem;
	font-weight: 800;
}

.nb-shop-category__link:hover {
	color: var(--nb-shop-navy);
	border-color: var(--nb-shop-navy);
}

/* Grille WooCommerce conservée, mais entièrement harmonisée. */
.nb-shop .nb-shop-category ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 0 !important;
	padding: 0;
}

.nb-shop .nb-shop-category ul.products::before,
.nb-shop .nb-shop-category ul.products::after {
	display: none !important;
}

.nb-shop .nb-shop-category ul.products li.product {
	position: relative;
	display: flex;
	float: none !important;
	width: auto !important;
	min-width: 0;
	height: 100%;
	flex-direction: column;
	margin: 0 !important;
	padding: 18px 18px 20px !important;
	overflow: hidden;
	border: 1px solid rgba(215, 233, 240, 0.95);
	border-radius: 23px;
	background: var(--nb-shop-white);
	box-shadow: 0 10px 34px rgba(6, 39, 89, 0.07);
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.nb-shop .nb-shop-category ul.products li.product:hover {
	border-color: rgba(7, 147, 204, 0.35);
	box-shadow: 0 20px 50px rgba(6, 39, 89, 0.13);
	transform: translateY(-6px);
}

.nb-shop .nb-shop-category ul.products li.product .woocommerce-loop-product__link {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.nb-shop .nb-shop-category ul.products li.product a img {
	width: 100%;
	height: 245px;
	margin: 0 0 21px !important;
	padding: 18px;
	border-radius: 17px;
	object-fit: contain;
	background: linear-gradient(145deg, #f9fcfd, #eef8fb);
	transition: transform 240ms ease;
}

.nb-shop .nb-shop-category ul.products li.product:hover a img {
	transform: scale(1.035);
}

.nb-shop .nb-shop-category .woocommerce-loop-product__title {
	margin: 0 3px 10px !important;
	padding: 0 !important;
	font-size: 1.08rem !important;
	line-height: 1.35;
}

.nb-shop .nb-shop-category .price {
	display: block !important;
	margin: auto 3px 17px !important;
	color: var(--nb-shop-navy) !important;
	font-family: "Sora", Arial, sans-serif;
	font-size: 1.08rem !important;
	font-weight: 700 !important;
}

.nb-shop .nb-shop-category .price del {
	margin-right: 5px;
	color: #8798aa;
	opacity: 0.75;
}

.nb-shop .nb-shop-category .price ins {
	color: var(--nb-shop-blue);
	font-weight: 800;
	text-decoration: none;
}

.nb-shop .nb-shop-category li.product .button,
.nb-shop .nb-shop-category li.product .added_to_cart {
	display: inline-flex;
	width: 100%;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 12px 15px !important;
	border: 1px solid var(--nb-shop-blue) !important;
	border-radius: 12px !important;
	color: var(--nb-shop-white) !important;
	background: var(--nb-shop-blue) !important;
	font-family: "Manrope", Arial, sans-serif;
	font-size: 0.86rem !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	text-align: center;
	transition: color 180ms ease, background 180ms ease, transform 180ms ease;
}

.nb-shop .nb-shop-category li.product .button:hover,
.nb-shop .nb-shop-category li.product .added_to_cart:hover {
	color: var(--nb-shop-white) !important;
	background: var(--nb-shop-navy) !important;
	transform: translateY(-1px);
}

.nb-shop .nb-shop-category li.product .added_to_cart {
	margin-top: 8px !important;
	color: var(--nb-shop-blue) !important;
	background: var(--nb-shop-white) !important;
}

.nb-shop .nb-shop-category li.product .onsale {
	top: 28px !important;
	right: 28px !important;
	left: auto !important;
	z-index: 2;
	display: grid;
	min-width: 52px;
	min-height: 52px;
	place-items: center;
	margin: 0 !important;
	padding: 8px !important;
	border: 3px solid var(--nb-shop-white);
	border-radius: 50%;
	color: var(--nb-shop-navy);
	background: var(--nb-shop-honey);
	font-size: 0.72rem;
	font-weight: 900;
	line-height: 1.1;
}

.nb-shop .nb-shop-category .star-rating {
	margin: 0 3px 12px;
	color: var(--nb-shop-honey);
}

.nb-shop .woocommerce-info,
.nb-shop .woocommerce-message,
.nb-shop .woocommerce-error {
	width: min(calc(100% - 64px), 1220px);
	margin: 24px auto !important;
	border-top-color: var(--nb-shop-blue);
	border-radius: 14px;
	background: var(--nb-shop-white);
	box-shadow: 0 8px 25px rgba(6, 39, 89, 0.08);
}

.nb-shop .woocommerce-message::before,
.nb-shop .woocommerce-info::before {
	color: var(--nb-shop-blue);
}

.nb-shop-empty {
	padding: 90px 0;
	text-align: center;
	background: var(--nb-shop-sky);
}

.nb-shop-empty h2 {
	margin-bottom: 12px;
	font-size: 2.25rem;
}

.nb-shop-help {
	padding: 82px 0 0;
	background: var(--nb-shop-white);
}

.nb-shop-help__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 50px;
	align-items: center;
	padding: 48px 54px;
	border-radius: var(--nb-shop-radius) var(--nb-shop-radius) 0 0;
	color: rgba(255, 255, 255, 0.78);
	background:
		radial-gradient(circle at 90% 10%, rgba(63, 210, 242, 0.26), transparent 32%),
		var(--nb-shop-navy);
	box-shadow: 0 -12px 42px rgba(6, 39, 89, 0.12);
}

.nb-shop-help .nb-shop-eyebrow {
	color: var(--nb-shop-cyan);
}

.nb-shop-help h2 {
	max-width: 720px;
	margin-bottom: 14px;
	color: var(--nb-shop-white);
	font-size: clamp(1.8rem, 3vw, 3rem);
	line-height: 1.12;
}

.nb-shop-help p:not(.nb-shop-eyebrow) {
	max-width: 690px;
	margin: 0;
	line-height: 1.7;
}

.nb-shop-help__actions {
	justify-content: flex-end;
	margin-top: 0;
}

.nb-shop-button--white {
	color: var(--nb-shop-navy);
	background: var(--nb-shop-white);
}

.nb-shop-button--white:hover {
	color: var(--nb-shop-white);
	background: var(--nb-shop-blue);
}

.nb-shop-button--outline-white {
	color: var(--nb-shop-white);
	border-color: rgba(255, 255, 255, 0.4);
	background: transparent;
}

.nb-shop-button--outline-white:hover {
	color: var(--nb-shop-navy);
	border-color: var(--nb-shop-white);
	background: var(--nb-shop-white);
}

@media (max-width: 1100px) {
	.nb-shop-hero__inner {
		grid-template-columns: minmax(0, 1fr) 270px;
		gap: 40px;
	}

	.nb-shop-hero__visual {
		width: 260px;
		height: 260px;
	}

	.nb-shop-benefits__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.nb-shop-benefit:nth-child(2) {
		border-right: 0;
	}

	.nb-shop-benefit:nth-child(-n + 2) {
		border-bottom: 1px solid var(--nb-shop-line);
	}

	.nb-shop .nb-shop-category ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.nb-shop-help__panel {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.nb-shop-help__actions {
		justify-content: flex-start;
	}
}

@media (max-width: 820px) {
	.nb-shop-container {
		width: min(calc(100% - 40px), 1220px);
	}

	.nb-shop-hero {
		padding: 58px 0 60px;
	}

	.nb-shop-hero__inner {
		display: block;
	}

	.nb-shop-hero__visual {
		display: none;
	}

	.nb-shop-hero h1 {
		font-size: clamp(2.25rem, 8vw, 3.75rem);
	}

	.nb-shop-category-nav .nb-shop-container {
		display: block;
	}

	.nb-shop-category-nav__title {
		margin-bottom: 14px;
	}

	.nb-shop-category {
		padding: 66px 0 72px;
	}

	.nb-shop-category__header {
		display: block;
		margin-bottom: 34px;
	}

	.nb-shop-category__link {
		margin-top: 19px;
	}

	.nb-shop .nb-shop-category ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}

	.nb-shop-help {
		padding-top: 58px;
	}

	.nb-shop-help__panel {
		padding: 40px 34px;
	}
}

@media (max-width: 560px) {
	.nb-shop-container {
		width: min(calc(100% - 28px), 1220px);
	}

	.nb-shop-hero {
		padding: 46px 0 50px;
	}

	.nb-shop-eyebrow {
		margin-bottom: 14px;
		font-size: 0.7rem;
	}

	.nb-shop-hero h1 {
		margin-bottom: 18px;
		font-size: clamp(2rem, 10.4vw, 2.85rem);
	}

	.nb-shop-hero__text {
		font-size: 0.96rem;
		line-height: 1.65;
	}

	.nb-shop-hero__actions,
	.nb-shop-help__actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.nb-shop-button {
		width: 100%;
	}

	.nb-shop-benefits__grid {
		grid-template-columns: 1fr;
	}

	.nb-shop-benefit {
		min-height: 100px;
		padding: 20px 4px;
		border-right: 0 !important;
		border-bottom: 1px solid var(--nb-shop-line);
	}

	.nb-shop-benefit:last-child {
		border-bottom: 0;
	}

	.nb-shop-category-nav__links {
		display: grid;
		grid-template-columns: 1fr;
	}

	.nb-shop-category-nav__links a {
		text-align: center;
	}

	.nb-shop-category {
		padding: 54px 0 60px;
	}

	.nb-shop-category__header h2 {
		font-size: 2rem;
	}

	.nb-shop .nb-shop-category ul.products {
		grid-template-columns: 1fr;
	}

	.nb-shop .nb-shop-category ul.products li.product a img {
		height: 260px;
	}

	.nb-shop-help {
		padding-top: 46px;
	}

	.nb-shop-help__panel {
		padding: 34px 22px;
		border-radius: 22px 22px 0 0;
	}

	.nb-shop .woocommerce-info,
	.nb-shop .woocommerce-message,
	.nb-shop .woocommerce-error {
		width: min(calc(100% - 28px), 1220px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nb-shop *,
	.nb-shop *::before,
	.nb-shop *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* =========================================================
   CORRECTIONS BOUTIQUE — HERO COMPACT + CTA ARRONDI
   ========================================================= */

/* Version ordinateur et tablette horizontale */
@media (min-width: 821px) {

	/* Hero moins haut */
	.nb-shop-hero {
		padding: 32px 0 30px;
	}

	.nb-shop-hero__inner {
		grid-template-columns: minmax(0, 1fr) 240px;
		gap: 38px;
	}

	.nb-shop-hero__content {
		max-width: 760px;
	}

	.nb-shop-hero .nb-shop-eyebrow {
		margin-bottom: 11px;
		font-size: 0.68rem;
	}

	.nb-shop-hero h1 {
		max-width: 760px;
		margin-bottom: 14px;
		font-size: clamp(2.45rem, 3.3vw, 3.45rem);
		line-height: 1.01;
	}

	.nb-shop-hero__text {
		max-width: 650px;
		font-size: 0.92rem;
		line-height: 1.55;
	}

	.nb-shop-hero__actions {
		margin-top: 18px;
	}

	.nb-shop-hero .nb-shop-button {
		min-height: 44px;
		padding: 10px 18px;
		font-size: 0.84rem;
		border-radius: 11px;
	}

	/* Illustration réduite */
	.nb-shop-hero__visual {
		width: 220px;
		height: 220px;
	}

	.nb-shop-hero__mark {
		width: 134px;
		height: 134px;
		border-radius: 31px;
	}

	.nb-shop-hero__mark svg {
		width: 73px;
		stroke-width: 4.5;
	}

	.nb-shop-hero__orb--one {
		inset: 4px 7px 23px 13px;
	}

	.nb-shop-hero__orb--two {
		top: 25px;
		width: 52px;
		height: 52px;
	}

	/* Barre de réassurance plus compacte */
	.nb-shop-benefit {
		min-height: 82px;
		gap: 11px;
		padding: 14px 17px;
	}

	.nb-shop-benefit__icon {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
		border-radius: 11px;
	}

	.nb-shop-benefit__icon svg {
		width: 19px;
	}

	.nb-shop-benefit strong {
		margin-bottom: 2px;
		font-size: 0.79rem;
	}

	.nb-shop-benefit div > span {
		font-size: 0.66rem;
		line-height: 1.35;
	}
}

/* Bloc final avec quatre coins arrondis */
.nb-shop-help {
	padding: 58px 0;
}

.nb-shop-help__panel {
	border-radius: var(--nb-shop-radius);
}

/* Arrondis adaptés sur mobile */
@media (max-width: 560px) {
	.nb-shop-help__panel {
		border-radius: 22px;
	}
}