/*
 * Adelaide Skip Bin Form Styler V4.1.2
 * Structural presentation only. Elementor owns user-editable colours, fonts,
 * borders, radii, field spacing, responsive widths and button layout.
 */

.adelaide-skip-bin-booking-form {
	--asbh-positive: #1f7a4d;
	--asbh-positive-soft: #edf8f2;
	--asbh-warning: #a83d00;
	--asbh-warning-soft: #fff6e8;
	--asbh-information: #175cd3;
	--asbh-information-soft: #eff8ff;
	--asbh-card-text: var(--e-global-color-text, #182230);
	isolation: isolate;
}

.adelaide-skip-bin-booking-form,
.adelaide-skip-bin-booking-form *,
.adelaide-skip-bin-booking-form *::before,
.adelaide-skip-bin-booking-form *::after {
	box-sizing: border-box;
}

.adelaide-skip-bin-booking-form > .elementor-widget-container,
.adelaide-skip-bin-booking-form .elementor-form,
.adelaide-skip-bin-booking-form .elementor-form-fields-wrapper {
	overflow: visible;
}

/* Keep every plugin-generated or structural text element at an accessible size. */
.adelaide-skip-bin-booking-form .asbh-form-section-note,
.adelaide-skip-bin-booking-form .asbh-confirmation-note,
.adelaide-skip-bin-booking-form .asbh-guidance-card,
.adelaide-skip-bin-booking-form .asbh-logic-field-error,
.flatpickr-calendar.asbh-bin-form-calendar,
.flatpickr-calendar.asbh-bin-form-calendar input,
.flatpickr-calendar.asbh-bin-form-calendar select {
	font-size: 16px !important;
}

/* Internal guidance and pricing cards. Their Elementor field wrappers own width. */
.adelaide-skip-bin-booking-form .asbh-guidance-card {
	width: 100%;
	padding: clamp(16px, 2.4vw, 24px);
	border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
	border-left-width: 5px;
	border-radius: var(--asbh-control-radius, 8px);
	background: #fff;
	color: var(--asbh-card-text);
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.adelaide-skip-bin-booking-form .asbh-prohibited-notice {
	margin-top: 12px;
	border-color: color-mix(in srgb, var(--asbh-positive) 35%, transparent);
	border-left-color: var(--asbh-positive);
	background: var(--asbh-positive-soft);
}

.adelaide-skip-bin-booking-form .asbh-weight-guidance {
	border-color: color-mix(in srgb, var(--asbh-information) 28%, transparent);
	border-left-color: var(--asbh-information);
	background: var(--asbh-information-soft);
}

.adelaide-skip-bin-booking-form .asbh-pricing-summary {
	border-color: color-mix(in srgb, var(--asbh-positive) 30%, transparent);
	border-left-color: var(--asbh-positive);
	background: var(--asbh-positive-soft);
}

.adelaide-skip-bin-booking-form .asbh-guidance-eyebrow {
	margin: 0 0 5px;
	color: inherit;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.075em;
	line-height: 1.3;
	text-transform: uppercase;
	opacity: 0.74;
}

.adelaide-skip-bin-booking-form .asbh-guidance-title {
	margin: 0;
	font-size: clamp(19px, 2.2vw, 24px);
	font-weight: 700;
	line-height: 1.25;
}

.adelaide-skip-bin-booking-form .asbh-guidance-description,
.adelaide-skip-bin-booking-form .asbh-guidance-note {
	margin: 8px 0 0;
	font-size: 16px;
	line-height: 1.55;
}

.adelaide-skip-bin-booking-form .asbh-guidance-note {
	font-weight: 600;
}

.adelaide-skip-bin-booking-form .asbh-guidance-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px 24px;
	margin: 14px 0 0;
	padding-left: 1.25em;
	font-size: 16px;
	line-height: 1.5;
}

.adelaide-skip-bin-booking-form .asbh-prohibited-notice .asbh-guidance-list {
	grid-template-columns: 1fr;
}

.adelaide-skip-bin-booking-form .asbh-price-lines {
	display: grid;
	gap: 0;
	margin: 18px 0 0;
}

.adelaide-skip-bin-booking-form .asbh-price-line {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 16px;
	align-items: start;
	padding: 11px 0;
	border-bottom: 1px solid color-mix(in srgb, var(--asbh-card-text) 14%, transparent);
	font-size: 16px;
}

.adelaide-skip-bin-booking-form .asbh-price-line dt,
.adelaide-skip-bin-booking-form .asbh-price-line dd {
	margin: 0;
}

.adelaide-skip-bin-booking-form .asbh-price-line dd {
	font-weight: 700;
	text-align: right;
}

.adelaide-skip-bin-booking-form .asbh-price-line-pending dd {
	font-weight: 600;
}

.adelaide-skip-bin-booking-form .asbh-price-total {
	display: flex;
	gap: 16px;
	align-items: baseline;
	justify-content: space-between;
	margin-top: 16px;
	padding-top: 2px;
}

.adelaide-skip-bin-booking-form .asbh-price-total-label {
	font-size: 16px;
	font-weight: 700;
}

.adelaide-skip-bin-booking-form .asbh-price-total-value {
	font-size: clamp(26px, 4vw, 38px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1;
	text-align: right;
}

/* HTML section hierarchy is not separately editable inside Elementor's HTML field. */
.adelaide-skip-bin-booking-form .elementor-field-group.asbh-section-heading {
	margin-bottom: 4px;
}

.adelaide-skip-bin-booking-form .asbh-form-section-title {
	margin: 0 0 0.35em;
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 700;
	line-height: 1.15;
}

.adelaide-skip-bin-booking-form .asbh-form-section-note {
	max-width: 66ch;
	line-height: 1.6;
}

/* Keep Elementor-owned inactive multistep panels hidden if generated CSS arrives late. */
.adelaide-skip-bin-booking-form .e-form__step.elementor-hidden {
	display: none !important;
}

/* The client requested a clean form without the two step headings. */
.adelaide-skip-bin-booking-form .e-form__indicators {
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Field alignment. Elementor retains all visual field controls. */
.adelaide-skip-bin-booking-form .elementor-field-textual,
.adelaide-skip-bin-booking-form input,
.adelaide-skip-bin-booking-form select,
.adelaide-skip-bin-booking-form textarea,
.adelaide-skip-bin-booking-form button {
	margin-top: 0;
	margin-bottom: 0;
}

.adelaide-skip-bin-booking-form .elementor-select-wrapper {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
}

.adelaide-skip-bin-booking-form .elementor-select-wrapper select,
.adelaide-skip-bin-booking-form select.elementor-field {
	display: block;
	width: 100%;
	vertical-align: middle;
}

/* Elementor owns the one visible select caret. The Styler never creates one. */
.adelaide-skip-bin-booking-form .elementor-select-wrapper::before,
.adelaide-skip-bin-booking-form .elementor-select-wrapper .select-caret-down-wrapper {
	pointer-events: none;
}

.adelaide-skip-bin-booking-form textarea {
	resize: vertical;
}

/* Option groups become clear, responsive cards without replacing Elementor colours. */
.adelaide-skip-bin-booking-form .elementor-field-group.asbh-checkbox-options .elementor-field-subgroup {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
}

.adelaide-skip-bin-booking-form .elementor-field-group.asbh-checkbox-options .elementor-field-option,
.adelaide-skip-bin-booking-form .elementor-field-type-acceptance .elementor-field-option {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-width: 0;
	width: 100%;
	padding: 14px 16px;
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 22%, transparent);
	border-radius: var(--asbh-control-radius, 8px);
}

/*
 * Do not draw a full-row outline for checked options. The native checked state
 * remains visible and keyboard focus is indicated on the control itself.
 */
.adelaide-skip-bin-booking-form .elementor-field-option.asbh-option-selected,
.adelaide-skip-bin-booking-form .elementor-field-option:has(input:checked),
.adelaide-skip-bin-booking-form .elementor-field-option.asbh-option-focused,
.adelaide-skip-bin-booking-form .elementor-field-option:focus-within {
	outline: 0 !important;
	box-shadow: none !important;
}

.adelaide-skip-bin-booking-form .elementor-field-option input[type="checkbox"]:focus-visible,
.adelaide-skip-bin-booking-form .elementor-field-option input[type="radio"]:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.adelaide-skip-bin-booking-form .elementor-field-option input[type="checkbox"],
.adelaide-skip-bin-booking-form .elementor-field-option input[type="radio"] {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	min-width: 20px;
	margin: 2px 0 0;
}

.adelaide-skip-bin-booking-form .elementor-field-option label {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	font-size: 16px !important;
	line-height: 1.5;
	cursor: pointer;
}

/* Requested positive treatment for the final acknowledgement. */
.adelaide-skip-bin-booking-form .elementor-field-group-booking_acknowledgement .elementor-field-option,
.adelaide-skip-bin-booking-form .asbh-confirmation-positive .elementor-field-option {
	border-color: var(--asbh-positive) !important;
	background: var(--asbh-positive-soft) !important;
}

.adelaide-skip-bin-booking-form .elementor-field-group-booking_acknowledgement input[type="checkbox"],
.adelaide-skip-bin-booking-form .asbh-confirmation-positive input[type="checkbox"] {
	accent-color: var(--asbh-positive);
}

/* Minimal full-width confirmation note; no icon or absolute positioning. */
.adelaide-skip-bin-booking-form .elementor-field-group-confirmation_note {
	align-self: stretch;
}

.adelaide-skip-bin-booking-form .asbh-confirmation-note {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 52px;
	padding: 13px 16px;
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 20%, transparent);
	border-left: 4px solid currentColor;
	border-radius: var(--asbh-control-radius, 8px);
	line-height: 1.55;
}

.adelaide-skip-bin-booking-form .asbh-confirmation-note::before,
.adelaide-skip-bin-booking-form .asbh-confirmation-note::after {
	content: none !important;
	display: none !important;
}

/* Messages keep Elementor's colours and typography while receiving stable spacing. */
.adelaide-skip-bin-booking-form .elementor-message,
.adelaide-skip-bin-booking-form .asbh-logic-field-error {
	display: block;
	width: 100%;
	margin-top: 8px;
	line-height: 1.5;
}

/* Flatpickr structure. JavaScript copies colours from the Elementor date input. */
.flatpickr-calendar.asbh-bin-form-calendar {
	z-index: 10050 !important;
	overflow: hidden;
	border: 1px solid var(--asbh-calendar-border, currentColor) !important;
	border-radius: var(--asbh-calendar-radius, 8px) !important;
	background: var(--asbh-calendar-surface, Canvas) !important;
	color: var(--asbh-calendar-text, CanvasText) !important;
	box-shadow: 0 22px 48px rgba(0, 0, 0, 0.2), 0 5px 14px rgba(0, 0, 0, 0.08) !important;
}

.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-months,
.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-weekdays,
.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-days {
	background: var(--asbh-calendar-surface, Canvas) !important;
}

.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-month,
.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-current-month,
.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-weekday,
.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-day {
	color: var(--asbh-calendar-text, CanvasText) !important;
	font-size: 16px !important;
}

.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-day.selected,
.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-day.startRange,
.flatpickr-calendar.asbh-bin-form-calendar .flatpickr-day.endRange {
	border-color: var(--asbh-calendar-accent, currentColor) !important;
	background: var(--asbh-calendar-accent, currentColor) !important;
	color: var(--asbh-calendar-accent-text, Canvas) !important;
}

@media (max-width: 767px) {
	.adelaide-skip-bin-booking-form .elementor-field-group.asbh-checkbox-options .elementor-field-subgroup {
		grid-template-columns: 1fr;
	}

	.adelaide-skip-bin-booking-form .asbh-guidance-list {
		grid-template-columns: 1fr;
	}

	.adelaide-skip-bin-booking-form .asbh-price-line {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.adelaide-skip-bin-booking-form .asbh-price-line dd {
		text-align: left;
	}

	.adelaide-skip-bin-booking-form .asbh-price-total {
		align-items: flex-start;
		flex-direction: column;
		gap: 6px;
	}

	.adelaide-skip-bin-booking-form .asbh-price-total-value {
		text-align: left;
	}

}

@media (prefers-reduced-motion: reduce) {
	.adelaide-skip-bin-booking-form *,
	.adelaide-skip-bin-booking-form *::before,
	.adelaide-skip-bin-booking-form *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media (forced-colors: active) {
	.adelaide-skip-bin-booking-form .elementor-field-option,
	.adelaide-skip-bin-booking-form .asbh-confirmation-note,
	.adelaide-skip-bin-booking-form .asbh-guidance-card,
	.flatpickr-calendar.asbh-bin-form-calendar {
		border: 1px solid CanvasText !important;
		box-shadow: none !important;
	}
}


/* -------------------------------------------------------------------------
 * V4.1.2 conditional Allowed / Not Allowed waste guide.
 * The HTML panels remain in the Elementor form; Logic only changes `hidden`.
 * ---------------------------------------------------------------------- */
.adelaide-skip-bin-booking-form .elementor-field-group-waste_guide,
.adelaide-skip-bin-booking-form .elementor-field-group-field_waste_guide,
.adelaide-skip-bin-booking-form .elementor-field-group.asbh-waste-guide-field {
	align-self: stretch;
	min-width: 0;
}

.adelaide-skip-bin-booking-form .elementor-field-group-waste_guide .elementor-field,
.adelaide-skip-bin-booking-form .elementor-field-group-field_waste_guide .elementor-field,
.adelaide-skip-bin-booking-form .asbh-waste-guide-field .elementor-field {
	height: 100%;
}

.adelaide-skip-bin-booking-form .asbh-waste-guide {
	width: 100%;
	height: 100%;
	min-width: 0;
	font-size: 16px;
	color: var(--asbh-card-text);
}

.adelaide-skip-bin-booking-form .asbh-waste-panel {
	width: 100%;
	min-height: 100%;
	padding: clamp(18px, 2.4vw, 26px);
	border: 1px solid color-mix(in srgb, var(--asbh-card-text) 16%, transparent);
	border-radius: clamp(12px, 1.5vw, 18px);
	background: #fff;
	box-shadow: 0 12px 30px color-mix(in srgb, var(--asbh-card-text) 8%, transparent);
	overflow: hidden;
	overflow-wrap: anywhere;
}

.adelaide-skip-bin-booking-form .asbh-waste-panel[hidden] {
	display: none !important;
}

.adelaide-skip-bin-booking-form .asbh-waste-panel--default,
.adelaide-skip-bin-booking-form .asbh-waste-panel--help {
	background:
		linear-gradient(145deg, color-mix(in srgb, var(--asbh-information-soft) 88%, #fff), #fff 70%);
	border-color: color-mix(in srgb, var(--asbh-information) 28%, transparent);
}

.adelaide-skip-bin-booking-form .asbh-waste-panel__eyebrow {
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.25;
	text-transform: uppercase;
	opacity: 0.72;
}

.adelaide-skip-bin-booking-form .asbh-waste-panel__title {
	margin: 0;
	font-size: clamp(22px, 2.3vw, 30px);
	font-weight: 760;
	line-height: 1.16;
}

.adelaide-skip-bin-booking-form .asbh-waste-panel__intro,
.adelaide-skip-bin-booking-form .asbh-waste-panel__tip {
	margin: 10px 0 0;
	font-size: 16px;
	line-height: 1.55;
}

.adelaide-skip-bin-booking-form .asbh-waste-panel__tip {
	padding: 12px 14px;
	border-radius: 10px;
	background: color-mix(in srgb, var(--asbh-information-soft) 72%, #fff);
	font-weight: 600;
}

.adelaide-skip-bin-booking-form .asbh-waste-panel__columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 18px;
}

.adelaide-skip-bin-booking-form .asbh-waste-list {
	min-width: 0;
	padding: 15px;
	border: 1px solid transparent;
	border-radius: 12px;
}

.adelaide-skip-bin-booking-form .asbh-waste-list--allowed {
	border-color: color-mix(in srgb, var(--asbh-positive) 28%, transparent);
	background: var(--asbh-positive-soft);
}

.adelaide-skip-bin-booking-form .asbh-waste-list--not-allowed {
	border-color: color-mix(in srgb, #b42318 26%, transparent);
	background: #fff1f0;
}

.adelaide-skip-bin-booking-form .asbh-waste-list h4 {
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.3;
}

.adelaide-skip-bin-booking-form .asbh-waste-list--allowed h4 {
	color: #17663f;
}

.adelaide-skip-bin-booking-form .asbh-waste-list--not-allowed h4 {
	color: #912018;
}

.adelaide-skip-bin-booking-form .asbh-waste-list ul {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.adelaide-skip-bin-booking-form .asbh-waste-list li {
	position: relative;
	min-width: 0;
	padding-left: 25px;
	font-size: 15px;
	line-height: 1.42;
}

.adelaide-skip-bin-booking-form .asbh-waste-list li::before {
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 19px;
	height: 19px;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 900;
	line-height: 1;
}

.adelaide-skip-bin-booking-form .asbh-waste-list--allowed li::before {
	content: "✓";
	color: #17663f;
}

.adelaide-skip-bin-booking-form .asbh-waste-list--not-allowed li::before {
	content: "×";
	color: #912018;
}

.adelaide-skip-bin-booking-form .asbh-waste-warning {
	margin-top: 14px;
	padding: 13px 15px;
	border: 1px solid color-mix(in srgb, #b54708 30%, transparent);
	border-left: 4px solid #b54708;
	border-radius: 10px;
	background: #fffaeb;
	font-size: 15px;
	line-height: 1.5;
}

.adelaide-skip-bin-booking-form .asbh-waste-help-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 16px;
}

.adelaide-skip-bin-booking-form .asbh-waste-help-actions p {
	margin: 0;
	padding: 12px 14px;
	border: 1px solid color-mix(in srgb, var(--asbh-information) 22%, transparent);
	border-radius: 10px;
	background: #fff;
	font-size: 15px;
	line-height: 1.4;
}

.adelaide-skip-bin-booking-form .asbh-size-availability-message {
	padding: 11px 13px;
	border: 1px solid color-mix(in srgb, #b54708 30%, transparent);
	border-left: 4px solid #b54708;
	border-radius: 9px;
	background: #fffaeb;
	color: var(--asbh-card-text);
}

@media (max-width: 1024px) {
	.adelaide-skip-bin-booking-form .asbh-waste-panel {
		min-height: 0;
	}
}

@media (max-width: 767px) {

	.adelaide-skip-bin-booking-form .asbh-waste-panel {
		padding: 17px;
		border-radius: 13px;
		box-shadow: 0 8px 20px color-mix(in srgb, var(--asbh-card-text) 7%, transparent);
	}

	.adelaide-skip-bin-booking-form .asbh-waste-panel__columns,
	.adelaide-skip-bin-booking-form .asbh-waste-help-actions {
		grid-template-columns: 1fr;
	}

	.adelaide-skip-bin-booking-form .asbh-waste-list {
		padding: 13px;
	}

	.adelaide-skip-bin-booking-form .asbh-waste-list li,
	.adelaide-skip-bin-booking-form .asbh-waste-warning,
	.adelaide-skip-bin-booking-form .asbh-waste-help-actions p {
		font-size: 16px;
	}
}

@media (forced-colors: active) {
	.adelaide-skip-bin-booking-form .asbh-waste-panel,
	.adelaide-skip-bin-booking-form .asbh-waste-list,
	.adelaide-skip-bin-booking-form .asbh-waste-warning,
	.adelaide-skip-bin-booking-form .asbh-size-availability-message {
		border: 1px solid CanvasText !important;
		box-shadow: none !important;
	}
}
