/* Product Landing Builder — frontend base styles.
   Intentionally minimal: imported HTML brings its own design (spec §38,
   "prioritise visual fidelity"). These rules only cover the dynamic
   WooCommerce widgets we render (buttons, forms, variation selectors)
   so they're usable even if the imported CSS doesn't style them. */

.plb-landing-page { box-sizing: border-box; }
.plb-landing-page *, .plb-landing-page *::before, .plb-landing-page *::after { box-sizing: inherit; }

.plb-btn {
	display: inline-block;
	cursor: pointer;
	border: 0;
	font: inherit;
	padding: 0.75em 1.5em;
	border-radius: 6px;
	background: #111827;
	color: #fff;
	text-decoration: none;
	transition: opacity .15s ease;
}
.plb-btn:hover { opacity: .85; }
.plb-btn[disabled] { opacity: .5; cursor: not-allowed; }
.plb-btn--checkout, .plb-btn--buy_now { background: #16a34a; }
.plb-btn--whatsapp { background: #25D366; }

.plb-variations { margin: 1em 0; display: flex; flex-direction: column; gap: .75em; }
.plb-variation-row label { display: block; margin-bottom: .25em; font-weight: 600; }
.plb-variation-row select { padding: .5em; width: 100%; max-width: 320px; }

.plb-form-wrap, .plb-cod-form {
	max-width: 480px;
	display: flex;
	flex-direction: column;
	gap: .85em;
}
.plb-field label, .plb-cod-form .plb-field label { display: block; margin-bottom: .25em; font-weight: 600; font-size: .9em; }
.plb-field-row { display: flex; gap: .85em; }
.plb-field-row .plb-field { flex: 1; }
.plb-cod-form input, .plb-cod-form select {
	width: 100%;
	padding: .65em .75em;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font: inherit;
}
.plb-cod-message { min-height: 1.2em; font-size: .9em; }
.plb-cod-message.is-error { color: #dc2626; }
.plb-cod-message.is-success { color: #16a34a; }

.plb-coupon-field { display: flex; gap: .5em; align-items: center; margin: 1em 0; }
.plb-coupon-input { padding: .5em .75em; border: 1px solid #d1d5db; border-radius: 6px; }
.plb-coupon-message { margin-top: .35em; font-size: .9em; }

.plb-faq-item { border-bottom: 1px solid #e5e7eb; padding: .75em 0; }
.plb-faq-item summary { cursor: pointer; font-weight: 600; }

.plb-out-of-stock { color: #dc2626; font-weight: 600; }
.plb-in-stock { color: #16a34a; font-weight: 600; }

.plb-toast {
	position: fixed;
	bottom: 24px;
	right: 24px;
	background: #111827;
	color: #fff;
	padding: .85em 1.25em;
	border-radius: 8px;
	z-index: 99999;
	box-shadow: 0 8px 24px rgba(0,0,0,.2);
}
.plb-toast.is-error { background: #dc2626; }

.plb-full-width-content { max-width: none; }
body.plb-canvas-mode { margin: 0; }
