/* London1 Admission Form - Front-end styles */
.l1af-wrap {
	--l1af-navy: #1a1a4d;
	--l1af-navy-dark: #12123a;
	--l1af-red: #d92b2b;
	--l1af-grey-bg: #eef0f3;
	--l1af-border: #d7dbe2;
	--l1af-text: #22262e;
	--l1af-muted: #6b7280;
	max-width: 920px;
	margin: 32px auto;
	padding: 0 16px;
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--l1af-text);
}
.l1af-wrap *, .l1af-wrap *::before, .l1af-wrap *::after { box-sizing: border-box; }

.l1af-card {
	background: #ffffff;
	border: 1px solid var(--l1af-border);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(20, 20, 60, 0.06);
}

.l1af-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 28px;
	border-bottom: 3px solid var(--l1af-red);
	background: linear-gradient(180deg, #ffffff 0%, #fbfbfd 100%);
	flex-wrap: wrap;
}
.l1af-header-left {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.l1af-logo {
	display: block;
	height: auto;
	width: auto;
	max-height: 64px;
	max-width: 220px;
	object-fit: contain;
}
.l1af-header-right {
	flex: 1 1 auto;
	min-width: 180px;
	text-align: right;
}
.l1af-header-right h1 {
	font-size: 20px;
	line-height: 1.3;
	margin: 0;
	color: var(--l1af-navy);
	font-weight: 800;
	letter-spacing: 0.2px;
}

.l1af-alert {
	margin: 16px 28px 0;
	padding: 12px 16px;
	border-radius: 8px;
	background: #fdecec;
	border: 1px solid #f5b8b8;
	color: #9c1f1f;
	font-size: 14px;
}

.l1af-form { padding: 8px 28px 28px; }

.l1af-photo-section { margin-top: 12px; }
.l1af-photo-box { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.l1af-photo-preview {
	width: 96px;
	height: 118px;
	border: 2px dashed var(--l1af-border);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background: #fafbfc;
	color: #9aa1ab;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.5px;
	overflow: hidden;
}
.l1af-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.l1af-photo-label { cursor: pointer; }
.l1af-photo-label input[type="file"] { display: none; }
.l1af-upload-btn {
	display: inline-block;
	padding: 10px 18px;
	background: var(--l1af-navy);
	color: #fff;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	transition: background 0.15s ease;
}
.l1af-upload-btn:hover { background: var(--l1af-navy-dark); }

.l1af-section { margin-top: 26px; }
.l1af-section-title {
	background: var(--l1af-navy);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.3px;
	padding: 11px 16px;
	border-radius: 8px 8px 0 0;
}

.l1af-box {
	background: var(--l1af-grey-bg);
	border: 1px solid var(--l1af-border);
	border-top: none;
	padding: 18px 16px 10px;
	margin-bottom: 4px;
}
.l1af-section .l1af-box:first-of-type { border-radius: 0 0 8px 8px; }
.l1af-section .l1af-box:not(:first-of-type) {
	border-top: 1px solid var(--l1af-border);
	border-radius: 8px;
	margin-top: 10px;
}

.l1af-subtitle {
	font-size: 12px;
	font-weight: 800;
	color: var(--l1af-navy);
	letter-spacing: 0.4px;
	margin-bottom: 10px;
}

.l1af-grid {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -8px;
}

.l1af-field { padding: 0 8px; margin-bottom: 16px; }
.l1af-w-full { width: 100%; }
.l1af-w-half { width: 50%; }
.l1af-w-third { width: 33.3333%; }
.l1af-w-fourth { width: 25%; }

.l1af-note {
	font-size: 12.5px;
	font-style: italic;
	color: var(--l1af-muted);
	margin-bottom: 12px;
}

.l1af-label {
	display: block;
	font-size: 12.5px;
	font-weight: 600;
	color: #414752;
	margin-bottom: 6px;
}
.l1af-req { color: var(--l1af-red); }

.l1af-input {
	width: 100%;
	padding: 10px 12px;
	font-size: 14px;
	border: 1px solid var(--l1af-border);
	border-radius: 7px;
	background: #fff;
	color: var(--l1af-text);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	font-family: inherit;
}
.l1af-input:focus {
	outline: none;
	border-color: var(--l1af-navy);
	box-shadow: 0 0 0 3px rgba(26, 26, 77, 0.12);
}
textarea.l1af-input { resize: vertical; min-height: 70px; }

.l1af-radio-group, .l1af-checkbox-group {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	padding-top: 2px;
}
.l1af-radio-item, .l1af-checkbox-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	color: var(--l1af-text);
	cursor: pointer;
}
.l1af-radio-item input, .l1af-checkbox-item input { width: 16px; height: 16px; accent-color: var(--l1af-navy); cursor: pointer; }

.l1af-file-input { padding: 8px; }

.l1af-submit-row { margin-top: 30px; text-align: center; }
.l1af-submit-btn {
	background: var(--l1af-red);
	color: #fff;
	border: none;
	padding: 14px 46px;
	font-size: 16px;
	font-weight: 700;
	border-radius: 9px;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.05s ease;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.l1af-submit-btn:hover { background: #c31f1f; }
.l1af-submit-btn:active { transform: translateY(1px); }
.l1af-submit-btn:disabled { opacity: 0.7; cursor: not-allowed; }

.l1af-spinner {
	width: 16px; height: 16px;
	border: 2px solid rgba(255,255,255,0.5);
	border-top-color: #fff;
	border-radius: 50%;
	animation: l1af-spin 0.7s linear infinite;
}
@keyframes l1af-spin { to { transform: rotate(360deg); } }

.l1af-success {
	text-align: center;
	padding: 60px 28px;
}
.l1af-success-icon {
	width: 64px; height: 64px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #e7f8ee;
	color: #1f9d55;
	font-size: 30px;
	display: flex; align-items: center; justify-content: center;
}
.l1af-success h2 { color: var(--l1af-navy); margin: 0 0 8px; }
.l1af-success p { color: var(--l1af-muted); max-width: 460px; margin: 0 auto 18px; }
.l1af-download-btn {
	display: inline-block;
	background: var(--l1af-navy);
	color: #fff;
	padding: 12px 26px;
	border-radius: 8px;
	font-weight: 600;
	text-decoration: none;
}

.l1af-field-error .l1af-input { border-color: var(--l1af-red); }

/* Responsive */
@media (max-width: 780px) {
	.l1af-w-third { width: 50%; }
	.l1af-w-fourth { width: 50%; }
}
@media (max-width: 560px) {
	.l1af-wrap { margin: 12px auto; padding: 0 8px; }
	.l1af-header { padding: 16px; justify-content: center; text-align: center; }
	.l1af-header-left { justify-content: center; width: 100%; }
	.l1af-header-right { text-align: center; width: 100%; }
	.l1af-form { padding: 6px 16px 22px; }
	.l1af-header-right h1 { font-size: 17px; }
	.l1af-w-half, .l1af-w-third, .l1af-w-fourth { width: 100%; }
	.l1af-submit-btn { width: 100%; justify-content: center; }
	.l1af-logo { max-height: 48px; max-width: 160px; }
}
