/* BeenFramed Personaliser — customer widget styles. Mobile-first. */

.bf-personaliser {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin: 16px 0 24px;
	font-size: 15px;
	line-height: 1.45;
}

@media ( min-width: 720px ) {
	.bf-personaliser {
		grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1fr );
		gap: 24px;
	}
}

.bf-preview {
	background: #f6f6f4;
	border-radius: 6px;
	padding: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
}
.bf-canvas {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: 4px;
	box-shadow: 0 2px 12px rgba( 0, 0, 0, 0.08 );
}

.bf-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.bf-heading {
	margin: 0 0 8px;
	font-size: 1.15em;
	font-weight: 600;
	line-height: 1.3;
}

.bf-row { margin: 0; }

.bf-photo-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 4px 0;
}
.bf-photo-input {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.bf-personaliser .bf-photo-label,
.bf-personaliser label.bf-photo-label.button {
	display: inline-block;
	cursor: pointer;
	padding: 11px 22px;
	background: #1d2327;
	color: #fff;
	border: 0;
	border-radius: 4px;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.05s ease;
	user-select: none;
}
.bf-personaliser .bf-photo-label:hover,
.bf-personaliser label.bf-photo-label.button:hover {
	background: #2c3338;
	color: #fff;
}
.bf-personaliser .bf-photo-label:active { transform: translateY( 1px ); }
.bf-photo-input:focus + .bf-photo-label {
	outline: 3px solid #d9b3ff;
	outline-offset: 2px;
}
.bf-photo-status {
	color: #555;
	font-size: 0.9em;
	display: inline-block;
}

.bf-tf-row label {
	display: block;
	font-weight: 500;
	margin-bottom: 4px;
}
.bf-text-input {
	width: 100%;
	max-width: 360px;
	padding: 8px 10px;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	font: inherit;
	background: #fff;
}
.bf-text-input:focus {
	outline: 2px solid #2271b1;
	outline-offset: -1px;
	border-color: #2271b1;
}
.bf-req { color: #b32d2e; margin-left: 2px; }

.bf-consent label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.92em;
	color: #444;
}
.bf-consent input[type="checkbox"] {
	margin-top: 3px;
	flex: 0 0 auto;
}

.bf-error {
	margin: 0;
	padding: 8px 12px;
	border-left: 4px solid #b32d2e;
	background: #fef0f0;
	color: #6a1f1f;
	border-radius: 0 4px 4px 0;
}

.bf-personalised-tag {
	font-size: 0.85em;
	color: #555;
	font-style: italic;
}

/* Add-to-cart gate */
.bf-personaliser:not( .bf-ready ) ~ button[type="submit"],
.bf-personaliser:not( .bf-ready ) + button[type="submit"] {
	opacity: 0.5;
	cursor: not-allowed;
}
