/* =========================================================
   Forms
   ========================================================= */
.swis-form { max-width: 640px; }

.form-group { margin-bottom: 1.25rem; }

.form-row { display: flex; gap: 1rem; }
.form-row--half .form-group { flex: 1; }

.form-group label {
	display: block;
	font-weight: 600;
	font-size: .9rem;
	margin-bottom: .35rem;
	color: var(--swis-text);
}

.form-group label span[aria-hidden] { color: #c0392b; }

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
	width: 100%;
	padding: .65rem .85rem;
	border: 1px solid var(--swis-border);
	border-radius: var(--swis-radius);
	background: var(--swis-input-bg);
	font-family: var(--swis-font-body);
	font-size: .95rem;
	color: var(--swis-text);
	transition: border-color .15s, box-shadow .15s;
	-webkit-appearance: none;
	appearance: none;
}

.form-group select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23555' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .85rem center;
	padding-right: 2.25rem;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
	outline: none;
	border-color: var(--swis-green-mid);
	box-shadow: 0 0 0 3px rgba(61, 139, 82, .18);
}

.form-group textarea { resize: vertical; min-height: 120px; line-height: 1.6; }

.form-group input[type="file"] {
	padding: .45rem .5rem;
	background: var(--swis-white);
	cursor: pointer;
}

.form-hint {
	font-size: .8rem;
	color: var(--swis-text-light);
	margin-top: .3rem;
	margin-bottom: 0;
}

/* Success / error messages */
.form-success {
	background: var(--swis-green-pale);
	border: 1px solid var(--swis-green-mid);
	border-left: 4px solid var(--swis-green-dark);
	border-radius: var(--swis-radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	color: var(--swis-green-dark);
	font-size: .95rem;
}

.form-success strong { display: block; margin-bottom: .25rem; }

.form-error {
	background: #fff0f0;
	border: 1px solid #e74c3c;
	border-left: 4px solid #c0392b;
	border-radius: var(--swis-radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	color: #c0392b;
	font-size: .95rem;
}

/* Validation */
.form-group input:invalid:not(:focus):not(:placeholder-shown),
.form-group select:invalid:not(:focus),
.form-group textarea:invalid:not(:focus):not(:placeholder-shown) {
	border-color: #e74c3c;
}

/* Footer nav list */
.footer-nav {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-nav li { margin-bottom: .5rem; }
.footer-nav a { font-size: .875rem; color: var(--swis-footer-text); transition: color .15s; }
.footer-nav a:hover { color: var(--swis-white); }

/* Responsive */
@media (max-width: 600px) {
	.form-row { flex-direction: column; gap: 0; }
}
