/*
 * Contact Form 7 och Gravity Forms i Östra Aros-stil.
 * CF7: använd mallen inc/forms/cf7-offert.txt (klasserna oa-halv / oa-hel).
 * Gravity Forms: sätt fältbredd "Half" eller "Full" i fältets inställningar.
 */

/* ---------- Gemensamt för fält ---------- */
.oa-offert-form input[type="text"],
.oa-offert-form input[type="email"],
.oa-offert-form input[type="tel"],
.oa-offert-form input[type="date"],
.oa-offert-form input[type="number"],
.oa-offert-form select,
.oa-offert-form textarea,
.oa-form input[type="text"], .oa-form input[type="email"], .oa-form input[type="tel"],
.oa-form input[type="date"], .oa-form select, .oa-form textarea {
	font: inherit;
	font-size: 1rem;
	padding: .75em .85em;
	border: 1.5px solid var(--oa-gra);
	border-radius: 4px;
	background: var(--oa-vit);
	color: var(--oa-text);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	line-height: 1.3;
}
.oa-offert-form input:focus, .oa-offert-form select:focus, .oa-offert-form textarea:focus,
.oa-form input:focus, .oa-form select:focus, .oa-form textarea:focus {
	outline: none;
	border-color: var(--oa-morkgron);
	box-shadow: 0 0 0 3px rgba(0,85,92,.18);
}
.oa-offert-form textarea, .oa-form textarea { min-height: 110px; height: auto; resize: vertical; }

/* ---------- Contact Form 7 ---------- */
.oa-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; }
.oa-form > * { min-width: 0; margin: 0; }
.oa-form .oa-hel { grid-column: 1 / -1; }
.oa-form label { display: grid; gap: 6px; }
.oa-form label > span:first-child, .oa-form legend {
	font-family: var(--oa-rubrik);
	font-weight: 700;
	font-size: .88rem;
}
.oa-form fieldset { border: 0; padding: 0; margin: 0; }
.oa-form legend { padding: 0; margin-bottom: 6px; }
.oa-form .wpcf7-form-control-wrap { display: block; }

/* Radioknappar som piller */
.wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.wpcf7-radio .wpcf7-list-item { margin: 0; }
.wpcf7-radio .wpcf7-list-item label { display: block; cursor: pointer; }
.wpcf7-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.wpcf7-radio .wpcf7-list-item-label {
	display: inline-block;
	font-family: var(--oa-rubrik);
	font-weight: 700;
	font-size: .92rem;
	padding: .65em 1.1em;
	border: 1.5px solid var(--oa-gra);
	border-radius: 999px;
}
.wpcf7-radio input:checked + .wpcf7-list-item-label { background: var(--oa-morkgron); border-color: var(--oa-morkgron); color: var(--oa-vit); }
.wpcf7-radio input:focus-visible + .wpcf7-list-item-label { outline: 3px solid var(--oa-morkgron); outline-offset: 2px; }

.oa-form-fot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.oa-form-fot small { color: var(--oa-dampad); font-size: .85rem; }
.wpcf7-submit, .oa-offert-form .gform_button, .oa-offert-form .gform_wrapper input[type="submit"] {
	font-family: var(--oa-rubrik);
	font-weight: 800;
	font-size: 1rem;
	line-height: 1;
	padding: .95em 1.5em;
	border-radius: 999px;
	border: 0;
	background: var(--oa-gron);
	color: var(--oa-svart);
	cursor: pointer;
	width: auto;
}
.wpcf7-submit:hover, .oa-offert-form .gform_button:hover { background: var(--oa-gron-hover); }
.wpcf7-spinner { margin: 0; }
.wpcf7-not-valid-tip { color: #B3261E; font-size: .85rem; margin-top: 4px; }
.wpcf7 form .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: 18px 0 0;
	padding: 14px 16px;
	border: 0;
	border-left: 4px solid var(--oa-gron);
	background: var(--oa-ljusgra);
	border-radius: 4px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border-left-color: #B3261E; }

@media (max-width: 520px) { .oa-form { grid-template-columns: 1fr; } }

/* ---------- Gravity Forms ---------- */
.oa-offert-form .gform_wrapper.gravity-theme .gform_fields { grid-row-gap: 18px; grid-column-gap: 16px; }
.oa-offert-form .gform_wrapper .gfield_label,
.oa-offert-form .gform_wrapper legend.gfield_label {
	font-family: var(--oa-rubrik);
	font-weight: 700;
	font-size: .88rem;
	margin-bottom: 6px;
}
.oa-offert-form .gform_wrapper .gfield_required { color: var(--oa-morkgron); }
.oa-offert-form .gform_wrapper .gfield_radio { display: flex; flex-wrap: wrap; gap: 8px; }
.oa-offert-form .gform_wrapper .gfield_radio .gchoice { margin: 0; }
.oa-offert-form .gform_wrapper .gfield_radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.oa-offert-form .gform_wrapper .gfield_radio label {
	font-family: var(--oa-rubrik);
	font-weight: 700;
	font-size: .92rem;
	padding: .65em 1.1em;
	border: 1.5px solid var(--oa-gra);
	border-radius: 999px;
	cursor: pointer;
	margin: 0;
	max-width: none;
}
.oa-offert-form .gform_wrapper .gfield_radio input:checked + label { background: var(--oa-morkgron); border-color: var(--oa-morkgron); color: var(--oa-vit); }
.oa-offert-form .gform_wrapper .gfield_radio input:focus-visible + label { outline: 3px solid var(--oa-morkgron); outline-offset: 2px; }
.oa-offert-form .gform_wrapper .gform_footer { margin-top: 18px; padding: 0; }
.oa-offert-form .gform_wrapper .validation_message { color: #B3261E; font-size: .85rem; }
.oa-offert-form .gform_wrapper .gform_validation_errors { border-radius: 4px; }
.oa-offert-form .gform_confirmation_message {
	padding: 16px 18px;
	border-left: 4px solid var(--oa-gron);
	background: var(--oa-ljusgra);
	border-radius: 4px;
}
