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

/* Wrapper */
.gol-form-wrap {
	max-width: 640px;
	margin: 0 auto;
	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; }
