.bluthem_composer {
	--bc-primary: #101828;
	--bc-accent: #e0708c;
	--bc-border: #e3e3e3;
	--bc-bg: #ffffff;
	--bc-muted: #6b7280;
	font-family: 'Poppins', sans-serif;
	max-width: 960px;
	margin: 0 auto;
	color: var(--bc-primary);
}

.bluthem_step-indicator { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 28px; }
.bc-dot { width: 34px; height: 34px; border-radius: 50%; background: #f1f1f4; color: var(--bc-muted); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 14px; }
.bc-dot.active { background: var(--bc-primary); color: #fff; }
.bc-line { width: 40px; height: 2px; background: var(--bc-border); }

.bluthem_step-title { font-size: 22px; font-weight: 700; margin-bottom: 18px; }
.bc-empty { color: var(--bc-muted); font-style: italic; }

.bc-card-img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; margin-bottom: 10px; background: #f1f1f4; }

/* Tipo / Empaque */
.bc-type-grid, .bc-packaging-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.bc-type-card, .bc-packaging-card {
	border: 2px solid var(--bc-border); border-radius: 12px; padding: 14px; cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease; background: var(--bc-bg);
}
.bc-type-card:hover, .bc-packaging-card:hover { border-color: var(--bc-accent); }
.bc-type-card.selected, .bc-packaging-card.selected { border-color: var(--bc-primary); box-shadow: 0 0 0 2px rgba(16,24,40,.08); }
.bc-type-card h3, .bc-packaging-card h3 { margin: 0 0 6px; font-size: 17px; }
.bc-type-card p { margin: 0; font-size: 13px; color: var(--bc-muted); }
.bc-packaging-card .bc-price { margin-top: 8px; font-weight: 600; }

/* Flores */
.bc-flower-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; }
.bc-flower-card {
	border: 2px solid var(--bc-border); border-radius: 12px; padding: 12px; background: var(--bc-bg);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.bc-flower-card.selected { border-color: var(--bc-primary); box-shadow: 0 0 0 2px rgba(16,24,40,.08); }
.bc-flower-body { display: flex; flex-direction: column; gap: 4px; }
.bc-color-dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.bc-flower-body strong { font-size: 14px; }
.bc-flower-price { font-size: 13px; color: var(--bc-muted); }
.bc-qty-control { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.bc-qty-control button { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--bc-border); background: #fff; cursor: pointer; font-size: 16px; line-height: 1; }
.bc-qty-control span { min-width: 20px; text-align: center; font-weight: 600; }

/* Revisión */
.bluthem_review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
@media (max-width: 640px) { .bluthem_review-grid { grid-template-columns: 1fr; } }
.bluthem_review-media { display: flex; flex-direction: column; gap: 10px; }
.bluthem_review-image { position: relative; border-radius: 12px; overflow: hidden; background: #f6f6f8; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; }
.bluthem_review-image img { width: 100%; height: 100%; object-fit: cover; }
.bluthem_image-loader { display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--bc-muted); font-size: 13px; padding: 20px; text-align: center; }
.bc-spinner { width: 28px; height: 28px; border-radius: 50%; border: 3px solid #e5e5e5; border-top-color: var(--bc-primary); animation: bc-spin 0.8s linear infinite; }
@keyframes bc-spin { to { transform: rotate(360deg); } }
.bluthem_review-caption { font-size: 12px; color: var(--bc-muted); text-align: center; }

.bluthem_review-details h4 { margin: 0 0 6px; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--bc-muted); }
.bc-summary-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px dashed var(--bc-border); font-size: 14px; }
.bc-summary-total { display: flex; justify-content: space-between; margin-top: 12px; padding-top: 12px; border-top: 2px solid var(--bc-primary); font-size: 18px; font-weight: 700; }

.bluthem_step-controls { display: flex; justify-content: space-between; margin-top: 32px; }
.bc-btn { padding: 12px 28px; border-radius: 999px; border: none; cursor: pointer; font-weight: 600; font-size: 14px; font-family: inherit; }
.bc-btn-primary { background: var(--bc-primary); color: #fff; }
.bc-btn-primary:disabled { opacity: .5; cursor: not-allowed; }
.bc-btn-secondary { background: transparent; color: var(--bc-primary); border: 1px solid var(--bc-border); }
.bc-notice { margin-top: 14px; padding: 10px 14px; border-radius: 8px; font-size: 13px; }
.bc-notice.error { background: #fdecea; color: #b3261e; }
.bc-notice.success { background: #e8f5e9; color: #1b5e20; }
.bc-notice.success a { color: #1b5e20; font-weight: 600; }
