/* ==========================================================================
   Go Organized Leads – Frontend Styles
   Namespaced under .gol-* to avoid conflicts with Avada / other themes.
   ========================================================================== */

/* Wrapper – fills its container; width/centering is up to the page builder
   (Avada column, Gutenberg block, etc.). Earlier versions forced a 640px
   max-width with auto-margins, which clashed with column-based layouts. */
.gol-form-wrap {
	font-family: inherit;
}

/* Notices */
.gol-notice {
	padding: .75em 1em;
	margin-bottom: 1.25em;
	border-left: 4px solid #999;
	background: #f7f7f7;
	border-radius: 3px;
}
.gol-notice--success { border-color: #4caf50; background: #f0fff0; color: #2a6b2e; }
.gol-notice--error   { border-color: #e53935; background: #fff5f5; color: #c0392b; }

/* Fields – flex-wrap row so half/third-width fields can sit side by side */
.gol-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 1.1em;
}

.gol-field {
	display: flex;
	flex-direction: column;
	gap: .35em;
	flex: 1 1 100%;          /* full width by default */
	min-width: 0;            /* allow inputs to shrink inside flex item */
}

/* Layout widths – the gap (1.1em) is split across the columns.
   flex-grow:0 keeps a lone half/third field at its exact width instead of
   stretching it to fill the row. */
.gol-field--w-full  { flex: 0 0 100%; }
.gol-field--w-half  { flex: 0 0 calc(50%  - 0.55em); }
.gol-field--w-third { flex: 0 0 calc(33.333% - 0.74em); }

/* Heading / info-text blocks honour the same width classes */
.gol-heading,
.gol-info-text { flex: 0 0 100%; }
.gol-heading.gol-field--w-half,
.gol-info-text.gol-field--w-half  { flex: 0 0 calc(50%  - 0.55em); }
.gol-heading.gol-field--w-third,
.gol-info-text.gol-field--w-third { flex: 0 0 calc(33.333% - 0.74em); }

/* On narrow screens everything stacks to full width */
@media (max-width: 600px) {
	.gol-field--w-half,
	.gol-field--w-third,
	.gol-heading.gol-field--w-half,
	.gol-heading.gol-field--w-third,
	.gol-info-text.gol-field--w-half,
	.gol-info-text.gol-field--w-third { flex: 0 0 100%; }
}

.gol-label {
	display: inline-block;
	font-weight: 600;
	font-size: .95em;
}

.gol-required { color: #e53935; margin-left: .15em; }

.gol-input,
.gol-textarea,
.gol-select {
	width: 100%;
	padding: .55em .75em;
	font-size: 1em;
	font-family: inherit;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
	color: #333;
	box-sizing: border-box;
	transition: border-color .15s;
}
.gol-input:focus,
.gol-textarea:focus,
.gol-select:focus {
	outline: none;
	border-color: #0073aa;
	box-shadow: 0 0 0 2px rgba(0,115,170,.15);
}
.gol-input.gol--error,
.gol-textarea.gol--error,
.gol-select.gol--error {
	border-color: #e53935;
}

.gol-textarea { min-height: 120px; resize: vertical; }

/* Checkbox / Radio */
.gol-checkbox-label,
.gol-radio-label {
	display: flex;
	align-items: flex-start;
	gap: .5em;
	cursor: pointer;
	font-size: .95em;
}
.gol-checkbox-label input,
.gol-radio-label  input { margin-top: .2em; flex-shrink: 0; }

.gol-radio-group { border: none; padding: 0; margin: 0; }
.gol-radio-group legend { font-weight: 600; font-size: .95em; margin-bottom: .35em; }
.gol-radio-group .gol-radio-label + .gol-radio-label { margin-top: .3em; }

/* Privacy / Newsletter sections */
.gol-field--privacy,
.gol-field--newsletter {
	padding: .75em;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	background: #fafafa;
}

/* Field error message */
.gol-field-error {
	font-size: .85em;
	color: #e53935;
	min-height: 1.2em;
	display: block;
}

/* Submit */
.gol-submit-wrap {
	display: flex;
	align-items: center;
	gap: .75em;
	margin-top: .5em;
}

.gol-submit-btn {
	padding: .6em 1.5em;
	font-size: 1em;
	font-family: inherit;
	background: #0073aa;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background .15s;
}
.gol-submit-btn:hover  { background: #005a87; }
.gol-submit-btn:active { background: #004a70; }
.gol-submit-btn:disabled { opacity: .6; cursor: default; }

/* Spinner */
.gol-spinner {
	display: none;
	width: 20px;
	height: 20px;
	border: 2px solid #ccc;
	border-top-color: #0073aa;
	border-radius: 50%;
	animation: gol-spin .7s linear infinite;
}
.gol-form.gol--loading .gol-spinner { display: inline-block; }

@keyframes gol-spin { to { transform: rotate(360deg); } }

/* Messages block */
.gol-messages {
	margin-top: .75em;
	font-size: .95em;
}
/* Only style the box once it actually carries a state class, so an empty
   .gol-messages stays invisible. */
.gol-messages.gol--success,
.gol-messages.gol--error {
	padding: .7em 1em;
	border-radius: 4px;
}
.gol-messages.gol--success { color: #1e6b32; background: #e6f6ea; }
.gol-messages.gol--error   { color: #c0392b; background: #fdeaea; }

/* Honeypot – must stay invisible */
.gol-hp { position: absolute; left: -9999px; width: 0; height: 0; overflow: hidden; }

/* ==========================================================================
   Multi-Step
   ========================================================================== */

/* Progress bar – horizontal list of numbered / labelled steps */
.gol-progress {
	list-style: none;
	margin: 0 0 1.5em;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5em;
	counter-reset: gol-step;
}
.gol-progress-step {
	flex: 1 1 0;
	display: flex;
	align-items: center;
	gap: .5em;
	padding: .5em .75em;
	background: #f1f1f1;
	color: #666;
	border-radius: 4px;
	font-size: .9em;
	min-width: 0;
	position: relative;
}
.gol-progress-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.8em;
	height: 1.8em;
	background: #d0d0d0;
	color: #333;
	border-radius: 50%;
	font-weight: 600;
	flex-shrink: 0;
}
.gol-progress-step__label {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.gol-progress-step--active {
	background: #0073aa;
	color: #fff;
}
.gol-progress-step--active .gol-progress-step__num {
	background: #005a87;
	color: #fff;
}
.gol-progress-step--completed {
	background: #d4edda;
	color: #155724;
}
.gol-progress-step--completed .gol-progress-step__num {
	background: #46b450;
	color: #fff;
}
.gol-progress-step--completed .gol-progress-step__num::before {
	content: "\2713";
	font-size: .9em;
}
.gol-progress-step--completed .gol-progress-step__num > * { display: none; }

@media (max-width: 600px) {
	.gol-progress-step { flex-basis: auto; }
	.gol-progress-step__label { display: none; }
}

/* Step container – only one visible at a time */
.gol-step { animation: gol-step-fade .18s ease-out; }
@keyframes gol-step-fade {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: none; }
}

/* Prev / Next button row */
.gol-step-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: .75em;
	margin-top: 1.25em;
	flex-wrap: wrap;
}
.gol-step-nav .gol-submit-wrap { margin-left: auto; margin-top: 0; }
.gol-step-prev,
.gol-step-next {
	padding: .55em 1.2em;
	font-size: 1em;
	font-family: inherit;
	background: #f1f1f1;
	color: #333;
	border: 1px solid #ccc;
	border-radius: 4px;
	cursor: pointer;
	transition: background .15s;
}
.gol-step-prev:hover,
.gol-step-next:hover { background: #e5e5e5; }
.gol-step-next {
	background: #0073aa;
	color: #fff;
	border-color: #0073aa;
}
.gol-step-next:hover { background: #005a87; border-color: #005a87; }
.gol-step-prev:disabled,
.gol-step-next:disabled { opacity: .6; cursor: default; }
