/**
 * Coach Prisme — Styles boutique Stripe v2.3.4
 * Design repensé : layout carte horizontal top/bottom, coupon par carte.
 */

/* ── CSS Custom Properties (défauts) ─────────────────────────────────── */
.cp-shop {
	--cp-primary:        #0073aa;
	--cp-primary-dark:   #005a8c;
	--cp-btn-text:       #ffffff;
	--cp-card-bg:        #ffffff;
	--cp-card-border:    #e8e8e8;
	--cp-card-radius:    16px;
	--cp-price-color:    #1d2327;
	--cp-discount-color: #1a7e24;
	--cp-badge-bg:       #dc3232;
	--cp-badge-text:     #ffffff;
	--cp-text-muted:     #6b7280;
	--cp-coupon-btn:     #c0392b;
}

/* ── Grille produits ─────────────────────────────────────────────────── */
.cp-shop { display:grid; gap:24px; margin:28px 0; }
.cp-shop--cols-1 { grid-template-columns:1fr; max-width:520px; }
.cp-shop--cols-2 { grid-template-columns:repeat(2,1fr); }
.cp-shop--cols-3 { grid-template-columns:repeat(3,1fr); }
.cp-shop--cols-4 { grid-template-columns:repeat(4,1fr); }
.cp-shop-empty   { color:var(--cp-text-muted); font-style:italic; text-align:center; padding:32px; }

/* ── Carte produit ───────────────────────────────────────────────────── */
.cp-product-card {
	display:flex;
	flex-direction:column;
	background:var(--cp-card-bg);
	border:1px solid var(--cp-card-border);
	border-radius:var(--cp-card-radius);
	box-shadow:0 2px 12px rgba(0,0,0,.06);
	overflow:hidden;
	transition:box-shadow .25s, transform .2s;
}
.cp-product-card:hover {
	box-shadow:0 8px 28px rgba(0,0,0,.12);
	transform:translateY(-3px);
}

/* ── Haut de carte : infos + prix côte à côte ────────────────────────── */
.cp-product-card__top {
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:16px;
	padding:20px 20px 16px;
}
.cp-product-card__info {
	display:flex;
	flex-direction:column;
	gap:6px;
	flex:1;
	min-width:0;
	overflow:hidden;
}
.cp-product-card__price-col {
	flex-shrink:0;
	flex-grow:0;
	text-align:right;
	min-width:80px;
	max-width:140px;
}

/* ── Badge type ──────────────────────────────────────────────────────── */
.cp-product-card__type {
	display:inline-block;
	padding:4px 12px;
	border-radius:20px;
	font-size:.72rem;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.05em;
	align-self:flex-start;
}
.cp-type--coach      { background:#e8f4f8; color:var(--cp-primary); border:1px solid #b8d4ea; }
.cp-type--individual { background:#edf7ed; color:var(--cp-discount-color); border:1px solid #b7dfb8; }

/* ── Nom, description, tokens ─────────────────────────────────────────── */
.cp-product-card__name   {
	margin:0;
	font-size:1.15rem;
	font-weight:700;
	color:var(--cp-price-color);
	line-height:1.3;
}
.cp-product-card__desc   {
	font-size:.85rem;
	color:var(--cp-text-muted);
	margin:0;
	line-height:1.4;
}
.cp-product-card__tokens {
	font-size:.88rem;
	color:var(--cp-text-muted);
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

/* ── Prix ────────────────────────────────────────────────────────────── */
.cp-product-card__price {
	font-size:1.6rem;
	font-weight:800;
	color:var(--cp-price-color);
	line-height:1;
	white-space:nowrap;
}

/* ── Séparateur ──────────────────────────────────────────────────────── */
.cp-product-card__sep {
	height:1px;
	background:var(--cp-card-border);
	margin:0;
}

/* ── Bas de carte : coupon + bouton ──────────────────────────────────── */
.cp-product-card__bottom {
	padding:16px 20px 20px;
	display:flex;
	flex-direction:column;
	gap:10px;
}

/* ── Ligne coupon (input + bouton Appliquer) ─────────────────────────── */
.cp-coupon-row {
	display:flex;
	gap:8px;
	align-items:stretch;
}
.cp-coupon-card-input {
	flex:1;
	min-width:0;
	padding:10px 14px;
	border:1.5px solid var(--cp-card-border);
	border-radius:8px;
	font-size:.9rem;
	color:var(--cp-price-color);
	background:#fff;
	text-transform:uppercase;
	letter-spacing:.05em;
	font-weight:600;
	transition:border-color .15s;
	outline:none;
}
.cp-coupon-card-input::placeholder {
	text-transform:uppercase;
	letter-spacing:.08em;
	color:#b0b7c0;
	font-weight:500;
	font-size:.82rem;
}
.cp-coupon-card-input:focus { border-color:var(--cp-primary); }
.cp-coupon-card-input[readonly] {
	background:#f0fdf4;
	border-color:var(--cp-discount-color);
	color:var(--cp-discount-color);
}

.cp-coupon-card-apply {
	padding:10px 16px;
	border:1.5px solid var(--cp-coupon-btn);
	border-radius:8px;
	background:transparent;
	color:var(--cp-coupon-btn);
	font-size:.88rem;
	font-weight:600;
	cursor:pointer;
	white-space:nowrap;
	transition:background .15s, color .15s;
}
.cp-coupon-card-apply:hover {
	background:var(--cp-coupon-btn);
	color:#fff;
}
.cp-coupon-card-apply:disabled {
	opacity:.6;
	cursor:wait;
}

/* Messages coupon inline ─────────────────────────────────────────────── */
.cp-coupon-card-msg { margin:0; }
.cp-coupon-card-msg--ok      { color:var(--cp-discount-color); }
.cp-coupon-card-msg--error   { color:var(--cp-badge-bg); }
.cp-coupon-card-msg--loading { color:var(--cp-text-muted); }

/* Zone email (affichée après coupon appliqué) ───────────────────────── */
.cp-checkout-email-zone {
	display:flex;
	flex-direction:column;
	gap:6px;
}
.cp-coupon-email-input,
.cp-coupon-name-input {
	width:100%;
	padding:10px 14px;
	border:1.5px solid var(--cp-card-border);
	border-radius:8px;
	font-size:.88rem;
	background:#f9fafb;
	box-sizing:border-box;
	outline:none;
	transition:border-color .15s;
}
.cp-coupon-email-input:focus,
.cp-coupon-name-input:focus { border-color:var(--cp-primary); background:#fff; }

/* ── Bouton Acheter ──────────────────────────────────────────────────── */
.cp-btn { display:inline-block; text-align:center; cursor:pointer; border:none; }
.cp-btn--primary {
	background:var(--cp-primary);
	color:var(--cp-btn-text) !important;
	padding:13px 20px;
	border-radius:10px;
	font-size:.95rem;
	font-weight:700;
	transition:background .15s, transform .1s;
	width:100%;
	box-sizing:border-box;
	text-decoration:none;
	letter-spacing:.01em;
}
.cp-btn--primary:hover  { background:var(--cp-primary-dark); }
.cp-btn--primary:active { transform:scale(.98); }
.cp-checkout-btn { white-space:nowrap; }
.cp-checkout-btn:disabled { opacity:.6; cursor:wait; }

/* ── Carte avec coupon appliqué ──────────────────────────────────────── */
.cp-product-card--coupon-applied {
	border-color:var(--cp-discount-color);
	box-shadow:0 4px 20px rgba(26,126,36,.15);
}
/* Bannière "Code appliqué" injectée par JS en tête de carte */
.cp-coupon-applied-banner {
	background:#edfaee;
	color:var(--cp-discount-color);
	border-bottom:1px solid #b7dfb8;
	text-align:center;
	padding:6px 12px;
	font-size:.75rem;
	font-weight:700;
	letter-spacing:.06em;
}
/* ::before supprimé — voir .cp-coupon-applied-banner injecté par JS */
.cp-price-original {
	display:block;
	text-decoration:line-through;
	color:var(--cp-text-muted);
	font-size:.85rem;
	font-weight:400;
	white-space:nowrap;
}
.cp-price-discounted {
	display:block;
	color:var(--cp-discount-color);
	font-size:1.1rem;
	font-weight:800;
	white-space:nowrap;
	word-break:break-word;
}
.cp-discount-badge {
	display:inline-block;
	background:var(--cp-badge-bg);
	color:var(--cp-badge-text);
	font-size:.68rem;
	font-weight:700;
	padding:2px 6px;
	border-radius:10px;
	margin-top:3px;
	white-space:nowrap;
}


/* ── Feedback checkout global ────────────────────────────────────────── */
.cp-checkout-feedback {
	margin:16px 0;
	padding:12px 18px;
	border-radius:8px;
	font-size:.9rem;
}
.cp-checkout-feedback--error   { background:#fef2f2; border-left:4px solid #dc3232; color:#dc3232; }
.cp-checkout-feedback--loading { background:#f0f6fb; border-left:4px solid var(--cp-primary); color:var(--cp-primary); }

/* ── Page confirmation ───────────────────────────────────────────────── */
.cp-confirm {
	text-align:center; padding:48px 24px; max-width:560px; margin:0 auto;
	background:var(--cp-card-bg);
	border-radius:var(--cp-card-radius);
	border:1px solid var(--cp-card-border);
	box-shadow:0 4px 16px rgba(0,0,0,.06);
}
.cp-confirm__icon  { font-size:3.5rem; margin-bottom:16px; }
.cp-confirm__title { font-size:1.6rem; margin:0 0 12px; color:var(--cp-price-color); }
.cp-confirm--processing .cp-confirm__status { color:var(--cp-text-muted); font-size:.9rem; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media(max-width:900px) {
	.cp-shop--cols-3, .cp-shop--cols-4 { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:580px) {
	.cp-shop--cols-2, .cp-shop--cols-3, .cp-shop--cols-4 { grid-template-columns:1fr; }
	.cp-shop--cols-1 { max-width:100%; }
	.cp-product-card__top { gap:10px; }
	.cp-product-card__price { font-size:1.3rem; }
}

/* ── Image produit ──────────────────────────────────────────────────── */
.cp-product-card__right {
	display:flex;
	flex-direction:column;
	align-items:flex-end;
	gap:10px;
	flex-shrink:0;
}
.cp-product-card__img {
	width:60px;
	height:60px;
	border-radius:8px;
	overflow:hidden;
	background:var(--cp-ui-bg, #f6f7f7);
	border:1px solid var(--cp-card-border);
}
.cp-product-card__img img {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .3s;
}
.cp-product-card:hover .cp-product-card__img img { transform:scale(1.06); }
