/* ── VDB Delivery Calculator ─────────────────────────────────────────────── */

#vdb-delivery-wrap {
	background: #f8faf8;
	border: 1px solid #c8ddc8;
	border-radius: 8px;
	padding: 20px 24px 18px;
	margin-bottom: 24px;
	font-size: 0.93em;
}

/* ── Header ── */
.vdb-header { margin-bottom: 18px; }
.vdb-heading {
	margin: 0 0 4px;
	font-size: 1.05em;
	font-weight: 700;
	color: #1e3a1e;
}
.vdb-sub {
	margin: 0;
	color: #555;
	font-size: 0.88em;
}

/* ── Two column layout ── */
.vdb-two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 28px;
}

.vdb-col { display: flex; flex-direction: column; gap: 6px; }
.vdb-full-row { width: 100%; }

/* ── Section labels ── */
.vdb-section-label {
	font-size: 0.8em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #4a7c4a;
	margin-bottom: 2px;
}

/* ── Inputs ── */
.vdb-input-full,
#vdb_addr_street,
#vdb_delivery_date,
#vdb_delivery_time {
	width: 100%;
	padding: 8px 10px;
	border: 1.5px solid #b8d0b8;
	border-radius: 4px;
	font-size: 0.95em;
	background: #fff;
	color: #222;
	transition: border-color 0.15s;
	box-sizing: border-box;
}

.vdb-input-full:focus,
#vdb_addr_street:focus,
#vdb_delivery_date:focus,
#vdb_delivery_time:focus,
#vdb_addr_city:focus,
#vdb_addr_state:focus,
#vdb_addr_zip:focus {
	border-color: #4a7c4a;
	outline: none;
	box-shadow: 0 0 0 2px rgba(74,124,74,0.12);
}

/* ── City / State / ZIP row ── */
.vdb-addr-inline {
	display: flex;
	gap: 6px;
}

#vdb_addr_city {
	flex: 1;
	padding: 8px 10px;
	border: 1.5px solid #b8d0b8;
	border-radius: 4px;
	font-size: 0.95em;
	min-width: 0;
}

#vdb_addr_state {
	width: 62px;
	padding: 8px 4px;
	border: 1.5px solid #b8d0b8;
	border-radius: 4px;
	font-size: 0.95em;
}

#vdb_addr_zip {
	width: 76px;
	padding: 8px 10px;
	border: 1.5px solid #b8d0b8;
	border-radius: 4px;
	font-size: 0.95em;
	letter-spacing: 1px;
}

/* ── Textarea ── */
.vdb-textarea {
	padding: 8px 10px !important;
	border: 1.5px solid #b8d0b8 !important;
	border-radius: 4px !important;
	resize: vertical;
	font-size: 0.95em !important;
	line-height: 1.45;
}

.vdb-textarea:focus {
	border-color: #4a7c4a !important;
	outline: none;
	box-shadow: 0 0 0 2px rgba(74,124,74,0.12);
}

/* ── Calculate button ── */
#vdb-calc-btn {
	padding: 9px 18px;
	background: #3a6b3a;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 0.9em;
	font-weight: 600;
	letter-spacing: 0.02em;
	transition: background 0.15s;
	align-self: flex-start;
	margin-top: 2px;
}
#vdb-calc-btn:hover    { background: #2e5a2e; }
#vdb-calc-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ── Hint text ── */
.vdb-hint-text {
	margin: 4px 0 0;
	font-size: 0.8em;
	color: #666;
	font-style: italic;
	line-height: 1.4;
}

/* ── Status messages ── */
.vdb-msg {
	display: none;
	margin: 6px 0 0;
	padding: 7px 10px;
	border-radius: 4px;
	font-size: 0.85em;
	line-height: 1.4;
}
.vdb-msg.vdb-success { display:block; background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7; }
.vdb-msg.vdb-error   { display:block; background:#ffebee; color:#c62828; border:1px solid #ef9a9a; }
.vdb-msg.vdb-loading { display:block; background:#e3f2fd; color:#1565c0; border:1px solid #90caf9; }
.vdb-msg.vdb-warning { display:block; background:#fff8e1; color:#e65100; border:1px solid #ffcc80; }

/* ── Confirmed summary bar ── */
.vdb-confirmed {
	margin-top: 16px;
	padding: 10px 14px;
	background: #e8f5e9;
	border: 1px solid #a5d6a7;
	border-radius: 4px;
	font-size: 0.88em;
	font-weight: 600;
	color: #2e7d32;
}

/* ── Warning notices ── */
.vdb-notice {
	margin-top: 12px;
	padding: 12px 14px;
	border-radius: 4px;
	font-size: 0.88em;
	line-height: 1.55;
	color: #333;
}

.vdb-notice strong {
	display: block;
	margin-bottom: 4px;
	font-size: 0.95em;
}

.vdb-notice--warn {
	background: #fff3e0;
	border: 2px solid #e65100;
}

.vdb-notice--warn strong { color: #e65100; }
.vdb-notice--warn a { color: #e65100; font-weight: 700; }

/* ── Liability checkbox ── */
.vdb-liability-wrap {
	margin: 16px 0;
	padding: 14px 16px;
	background: #fff8e1;
	border: 2px solid #f9a825;
	border-radius: 4px;
}

.vdb-liability-label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	font-size: 0.9em;
	line-height: 1.5;
	color: #333;
}

.vdb-liability-label input[type="checkbox"] {
	margin-top: 3px;
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	accent-color: #c62828;
	cursor: pointer;
}

.vdb-liability-required { color: #c62828; font-weight: 700; margin-left: 2px; }

/* ── Responsive ── */
#vdb-delivery-wrap,
#vdb-delivery-wrap * {
	box-sizing: border-box;
}

@media (max-width: 782px) {
	.vdb-two-col {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	#vdb-delivery-wrap {
		padding: 14px 14px 16px;
	}
	.vdb-input-full,
	#vdb_addr_street,
	#vdb_delivery_date,
	#vdb_delivery_time,
	.vdb-textarea {
		width: 100% !important;
	}
}

@media (max-width: 480px) {
	.vdb-addr-inline {
		flex-wrap: wrap;
		gap: 6px;
	}
	#vdb_addr_city  { width: 100%; flex: unset; }
	#vdb_addr_state { width: 70px; }
	#vdb_addr_zip   { width: calc(100% - 76px); flex: 1; }
	#vdb-delivery-wrap { padding: 12px; }
}

/* ── Disabled checkout button ── */
.vdb-btn-disabled {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
}
