/* Nhãn, nút liên hệ, mua ngay, hộp thoại, form, thanh thông báo – dùng design tokens. */

/* ---------- Nhãn sản phẩm ---------- */
.bcy-badges {
	position: absolute;
	z-index: 5;
	top: var(--bcy-space-3, 12px);
	left: var(--bcy-space-3, 12px);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	pointer-events: none;
}
li.product, .product .woocommerce-product-gallery, .product .images { position: relative; }
.bcy-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: var(--bcy-radius-pill, 999px);
	background: var(--bcy-color-secondary, #1f2937);
	color: #fff;
	font-family: var(--bcy-font-sans, inherit);
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .02em;
}
.bcy-badge--sale { background: var(--bcy-color-cta, #e4572e); }
.bcy-badge--new { background: var(--bcy-color-primary, #0f5132); }
.bcy-badge--hot { background: var(--bcy-color-warning, #b45309); }
.bcy-badge--out { background: color-mix(in srgb, var(--bcy-color-text, #111827) 55%, transparent); }

.bcy-price-hidden { font-weight: 600; color: var(--bcy-color-primary, #0f5132); }

/* ---------- Mua ngay ---------- */
.bcy-buy-now.button,
button.bcy-buy-now {
	margin-left: var(--bcy-space-2, 8px);
	background: var(--bcy-color-cta, #e4572e) !important;
	border-color: var(--bcy-color-cta, #e4572e) !important;
	color: #fff !important;
}
.bcy-buy-now:hover { background: var(--bcy-color-cta-hover, #c2410c) !important; }
.bcy-buy-now.disabled { opacity: .5; cursor: not-allowed; }

/* ---------- Nút liên hệ ---------- */
.bcy-contact-actions {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--bcy-space-2, 8px);
	margin: var(--bcy-space-4, 16px) 0;
	font-family: var(--bcy-font-sans, inherit);
}
.bcy-contact-actions__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--bcy-space-2, 8px);
	min-height: 44px;
	padding: 0 var(--bcy-space-4, 16px);
	border: 1px solid var(--bcy-color-border, #e5e7eb);
	border-radius: var(--bcy-radius-sm, 6px);
	background: var(--bcy-color-bg, #fff);
	color: var(--bcy-color-text, #111827);
	font-size: .875rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--bcy-transition, 180ms ease), background-color var(--bcy-transition, 180ms ease);
}
.bcy-contact-actions__item:hover { border-color: var(--bcy-color-primary, #0f5132); background: var(--bcy-color-primary-soft, #ecf5f0); color: var(--bcy-color-text, #111827); }
.bcy-contact-actions__item:focus-visible { outline: none; box-shadow: var(--bcy-focus-ring, 0 0 0 3px rgb(15 81 50 / .35)); }
.bcy-contact-actions__item--zalo svg { color: #0068ff; }
.bcy-contact-actions__item--hotline svg { color: var(--bcy-color-cta, #e4572e); }
.bcy-contact-actions__item--dealer svg { color: var(--bcy-color-primary, #0f5132); }

/* ---------- Nút báo giá / video ---------- */
.bcy-quote-open { margin: 0 0 var(--bcy-space-3, 12px); }
.bcy-video-open {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: var(--bcy-space-3, 12px);
	padding: 8px 14px;
	border: 1px solid var(--bcy-color-border, #e5e7eb);
	border-radius: var(--bcy-radius-pill, 999px);
	background: var(--bcy-color-bg, #fff);
	color: var(--bcy-color-text, #111827);
	font: inherit;
	font-size: .875rem;
	font-weight: 600;
	cursor: pointer;
}
.bcy-video-open:hover { border-color: var(--bcy-color-text, #111827); }

/* ---------- Dialog ---------- */
.bcy-dialog {
	width: min(560px, calc(100vw - 32px));
	max-height: calc(100dvh - 32px);
	padding: var(--bcy-space-5, 24px);
	border: 0;
	border-radius: var(--bcy-radius-lg, 20px);
	background: var(--bcy-color-bg, #fff);
	color: var(--bcy-color-text, #111827);
	box-shadow: var(--bcy-shadow-pop, 0 12px 40px rgb(0 0 0 / .12));
	font-family: var(--bcy-font-sans, inherit);
}
.bcy-dialog::backdrop { background: rgb(0 0 0 / .5); }
.bcy-dialog[open] { animation: bcy-dialog-in .2s ease-out; }
@keyframes bcy-dialog-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
.bcy-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: var(--bcy-space-3, 12px); }
.bcy-dialog__title { margin: 0; font-size: 1.25rem; }
.bcy-dialog__subtitle { margin: 4px 0 var(--bcy-space-4, 16px); color: var(--bcy-color-muted, #6b7280); }
.bcy-dialog__close {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--bcy-color-surface, #f9fafb);
	color: inherit;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}
.bcy-dialog__foot { display: flex; justify-content: flex-end; gap: var(--bcy-space-2, 8px); margin-top: var(--bcy-space-4, 16px); }
.bcy-dialog--video { width: min(960px, calc(100vw - 32px)); padding: var(--bcy-space-3, 12px); background: #000; }
.bcy-dialog--video .bcy-dialog__close { position: absolute; top: 8px; right: 8px; z-index: 2; background: rgb(255 255 255 / .9); color: #111; }
.bcy-video-frame { aspect-ratio: 16 / 9; }
.bcy-video-frame iframe, .bcy-video-frame video { width: 100%; height: 100%; border: 0; }

/* ---------- Form ---------- */
.bcy-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bcy-space-3, 12px); }
.bcy-input { display: grid; gap: 4px; }
.bcy-input--wide { grid-column: 1 / -1; }
.bcy-input__label { font-size: .875rem; font-weight: 500; }
.bcy-input__label abbr { color: var(--bcy-color-danger, #b91c1c); text-decoration: none; }
.bcy-input input, .bcy-input textarea {
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--bcy-color-border, #e5e7eb);
	border-radius: var(--bcy-radius-sm, 6px);
	background: var(--bcy-color-bg, #fff);
	color: inherit;
	font: inherit;
	box-shadow: none;
}
.bcy-input input:focus, .bcy-input textarea:focus { outline: none; border-color: var(--bcy-color-primary, #0f5132); box-shadow: var(--bcy-focus-ring, 0 0 0 3px rgb(15 81 50 / .35)); }
.bcy-input [aria-invalid="true"] { border-color: var(--bcy-color-danger, #b91c1c); }
.bcy-input__error { min-height: 1em; color: var(--bcy-color-danger, #b91c1c); font-size: .8125rem; }
.bcy-input__error:empty { display: none; }
.bcy-consent { display: flex; gap: var(--bcy-space-2, 8px); align-items: flex-start; margin-top: var(--bcy-space-4, 16px); font-size: .875rem; }
.bcy-consent input { margin-top: 3px; }
.bcy-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.bcy-form-status { margin-top: var(--bcy-space-3, 12px); font-size: .9375rem; }
.bcy-form-status:empty { display: none; }
.bcy-form-status.is-success { padding: 10px 12px; border-radius: var(--bcy-radius-sm, 6px); background: color-mix(in srgb, var(--bcy-color-success, #15803d) 12%, transparent); color: var(--bcy-color-success, #15803d); }
.bcy-form-status.is-error { padding: 10px 12px; border-radius: var(--bcy-radius-sm, 6px); background: color-mix(in srgb, var(--bcy-color-danger, #b91c1c) 10%, transparent); color: var(--bcy-color-danger, #b91c1c); }
.bcy-quote-form.is-loading { opacity: .7; pointer-events: none; }
.bcy-btn--ghost { background: transparent !important; color: var(--bcy-color-text, #111827) !important; border: 1px solid var(--bcy-color-border, #e5e7eb) !important; }

@media (max-width: 599px) {
	.bcy-form-grid { grid-template-columns: 1fr; }
	.bcy-dialog { padding: var(--bcy-space-4, 16px); border-radius: var(--bcy-radius-md, 12px); }
}

/* ---------- Thanh thông báo ---------- */
.bcy-notice-bar { background: var(--bcy-color-secondary, #1f2937); color: #fff; font-family: var(--bcy-font-sans, inherit); font-size: .875rem; }
.bcy-notice-bar[hidden] { display: none; }
.bcy-notice-bar__inner { position: relative; max-width: 1200px; margin: 0 auto; padding: 10px 48px; text-align: center; }
.bcy-notice-bar__text, .bcy-notice-bar__text:hover { color: #fff; text-decoration: none; }
a.bcy-notice-bar__text:hover { text-decoration: underline; }
.bcy-notice-bar__close { position: absolute; top: 50%; right: 8px; width: 36px; height: 36px; margin-top: -18px; border: 0; background: none; color: #fff; font-size: 1.25rem; cursor: pointer; border-radius: 999px; }
.bcy-notice-bar__close:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }

.bcy-link-arrow::after { content: " →"; }
