/* Bocconi Living Contact Form — all rules scoped to .bl-contact */
.bl-contact {
	--bl-dark: #1c1b19;
	--bl-cream: #f4efe7;
	--bl-paper: #fbf8f3;
	--bl-gold: #b8935f;
	--bl-gold-dark: #9a7a4c;
	--bl-text: #2b2926;
	--bl-muted: #7a746b;
	--bl-line: #ddd4c6;
	--bl-error: #b3402f;
	--bl-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	width: 100%;
	padding: clamp(32px, 6vw, 72px) 0;
	font-family: var(--bl-sans);
	color: var(--bl-text);
	-webkit-font-smoothing: antialiased;
}
.bl-contact *,
.bl-contact *::before,
.bl-contact *::after { box-sizing: border-box; }

.bl-contact .bl-contact__inner {
	max-width: 760px;
	margin: 0 auto;
	background: var(--bl-paper);
	padding: clamp(20px, 5vw, 40px);
	box-shadow: 0 1px 0 var(--bl-line), 0 20px 50px -30px rgba(28, 27, 25, .35);
}

/* Language flags */
.bl-contact .bl-lang { display: flex; justify-content: flex-end; gap: 10px; margin: 0 0 20px; }
.bl-contact .bl-flag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 28px;
	padding: 3px;
	margin: 0;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 3px;
	box-shadow: none;
	cursor: pointer;
	opacity: .45;
	transition: opacity .2s, border-color .2s;
}
.bl-contact .bl-flag svg { display: block; width: 26px; height: 18px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }
.bl-contact .bl-flag:hover { opacity: .8; background: transparent; }
.bl-contact .bl-flag[aria-pressed="true"] { opacity: 1; border-color: var(--bl-gold); }
.bl-contact .bl-flag:focus-visible { outline: 2px solid var(--bl-gold); outline-offset: 2px; }

/* Grid: 1 column on phones, 2 from 640px */
.bl-contact .bl-form { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 0; }
@media (min-width: 640px) {
	.bl-contact .bl-form { grid-template-columns: 1fr 1fr; gap: 22px 24px; }
	.bl-contact .bl-field--full { grid-column: 1 / -1; }
}

.bl-contact .bl-field { display: flex; flex-direction: column; margin: 0; }
.bl-contact .bl-label {
	display: block;
	font: 500 12px/1.4 var(--bl-sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	margin: 0 0 8px;
	color: var(--bl-text);
}
.bl-contact .bl-opt { text-transform: none; letter-spacing: 0; font-weight: 300; color: var(--bl-muted); }
.bl-contact .bl-req { color: var(--bl-gold-dark); }

.bl-contact .bl-input,
.bl-contact .bl-select,
.bl-contact .bl-textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	font: 400 16px/1.4 var(--bl-sans); /* 16px stops iOS zooming in on focus */
	color: var(--bl-text);
	background-color: #fff;
	border: 1px solid var(--bl-line);
	border-radius: 2px;
	box-shadow: none;
	padding: 13px 14px;
	min-height: 50px;
	margin: 0;
	transition: border-color .2s, box-shadow .2s;
	-webkit-appearance: none;
	appearance: none;
}
.bl-contact .bl-textarea { min-height: 140px; resize: vertical; }
.bl-contact .bl-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 d='M1 1l5 5 5-5' fill='none' stroke='%239a7a4c' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 40px;
	cursor: pointer;
}
.bl-contact .bl-input::placeholder,
.bl-contact .bl-textarea::placeholder { color: #aaa398; opacity: 1; }
.bl-contact .bl-input:focus,
.bl-contact .bl-select:focus,
.bl-contact .bl-textarea:focus {
	outline: none;
	border-color: var(--bl-gold);
	box-shadow: 0 0 0 3px rgba(184, 147, 95, .18);
}
.bl-contact .bl-field.is-invalid .bl-input,
.bl-contact .bl-field.is-invalid .bl-select,
.bl-contact .bl-field.is-invalid .bl-textarea { border-color: var(--bl-error); }
.bl-contact .bl-error { font: 400 13px/1.4 var(--bl-sans); color: var(--bl-error); margin-top: 6px; }
.bl-contact .bl-error:empty { display: none; }

/* Privacy checkbox */
.bl-contact .bl-check {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font: 400 14px/1.5 var(--bl-sans);
	color: var(--bl-muted);
	cursor: pointer;
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
}
.bl-contact .bl-check input {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 1px 0 0;
	accent-color: var(--bl-dark);
	cursor: pointer;
}
.bl-contact .bl-check a { color: var(--bl-gold-dark); text-decoration: underline; }

/* Button */
.bl-contact .bl-actions { display: flex; flex-direction: column; gap: 14px; }
@media (min-width: 640px) {
	.bl-contact .bl-actions { flex-direction: row; align-items: center; justify-content: space-between; }
}
.bl-contact .bl-btn {
	font: 500 13px/1 var(--bl-sans);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--bl-dark);
	background: var(--bl-gold);
	border: 1px solid var(--bl-gold);
	border-radius: 2px;
	box-shadow: none;
	min-height: 54px;
	padding: 0 36px;
	margin: 0;
	width: 100%;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
@media (min-width: 640px) { .bl-contact .bl-btn { width: auto; } }
.bl-contact .bl-btn:hover { background: var(--bl-dark); color: #fff; border-color: var(--bl-dark); }
.bl-contact .bl-btn:focus-visible { outline: 2px solid var(--bl-dark); outline-offset: 3px; }
.bl-contact .bl-btn[disabled] { opacity: .6; cursor: wait; }
.bl-contact .bl-note { font: 400 13px/1.4 var(--bl-sans); color: var(--bl-muted); margin: 0; }

/* Success / error message */
.bl-contact .bl-status {
	display: none;
	padding: 16px 18px;
	font: 400 15px/1.5 var(--bl-sans);
	border-left: 3px solid var(--bl-gold);
	background: var(--bl-cream);
}
.bl-contact .bl-status.is-visible { display: block; }
.bl-contact .bl-status.is-error { border-color: var(--bl-error); color: var(--bl-error); }

/* Spam trap, hidden from people */
.bl-contact .bl-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.bl-contact * { transition: none !important; }
}
