/* AICAD Faculty Recruitment landings — public CSS */

.faculty-master,
.faculty-index {
	color: #1f2a44;
	line-height: 1.6;
}

.faculty-master section,
.faculty-index section {
	scroll-margin-top: 100px;
}

.faculty-master h1,
.faculty-index h1 {
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 1.15;
	margin-bottom: 1rem;
}

.faculty-master h2,
.faculty-index h2 {
	font-size: clamp(1.6rem, 2.6vw, 2.2rem);
	font-weight: 700;
	margin-bottom: 1.25rem;
}

.faculty-master h3,
.faculty-master h4,
.faculty-index h3,
.faculty-index h4 {
	font-weight: 600;
	margin-bottom: .65rem;
}

.section-lead {
	color: #5b6478;
	max-width: 760px;
	font-size: 1.05rem;
}

/* HERO */
.faculty-hero {
	background: linear-gradient(135deg, #f4f7fc 0%, #ffffff 100%);
	padding: 2rem 0;
}

.hero-meta-pills {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.meta-pill {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .35rem .75rem;
	border-radius: 999px;
	background: rgba(58, 110, 255, .08);
	color: #2754d6;
	font-size: .85rem;
	font-weight: 500;
}

.faculty-hero .hero-img {
	max-width: 100%;
	border-radius: 18px;
	box-shadow: 0 25px 60px rgba(31, 42, 68, .12);
}

/* DESCRIPTION + META CARDS */
.meta-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.meta-card {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	padding: 1rem 1.1rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
	box-shadow: 0 6px 16px rgba(31, 42, 68, .04);
}

.meta-card .meta-label {
	font-size: .85rem;
	color: #6b7589;
}

.meta-card .meta-value {
	font-size: 1.15rem;
	font-weight: 700;
	color: #1f2a44;
}

/* PARTICIPATE GRID */
.participate-grid {
	margin-top: 1.5rem;
}

.participate-card {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	padding: 1.5rem;
	height: 100%;
	transition: transform .15s ease, box-shadow .15s ease;
}

.participate-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(31, 42, 68, .08);
}

.participate-card i {
	font-size: 1.6rem;
	color: #2754d6;
	margin-bottom: .75rem;
}

/* IMPORTANT CALLOUT */
.faculty-important-callout {
	padding: 1rem 0 2rem;
}

.callout {
	background: #fff7e6;
	border-left: 4px solid #f5a623;
	border-radius: 10px;
	padding: 1rem 1.25rem;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}

.callout-icon i {
	color: #f5a623;
	font-size: 1.3rem;
}

.callout h4 {
	margin: 0 0 .35rem;
}

.callout p {
	margin: 0;
	color: #5b6478;
}

/* CHECK LISTS (Requirements / Benefits / Qué buscamos) */
.check-list {
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
}

.check-list li {
	padding: .5rem 0;
	display: flex;
	gap: .65rem;
	align-items: flex-start;
}

.check-list li i {
	color: #28b364;
	margin-top: .25rem;
	flex-shrink: 0;
}

@media (min-width: 768px) {
	.check-list.two-col {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 2rem;
	}
}

/* RICH CONTENT (TinyMCE output) */
.rich-content {
	color: #2a364f;
	font-size: 1rem;
}

.rich-content ul,
.rich-content ol {
	padding-left: 1.25rem;
}

.rich-content p {
	margin-bottom: 1rem;
}

/* FORM SECTION */
.faculty-form-section {
	background: #f7f9fc;
	padding: 3rem 0;
}

.faculty-form {
	max-width: 832px;
	margin: 2rem auto 0;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 30px 70px rgba(31, 42, 68, .08);
	padding: 2.25rem 2rem;
}

.step-indicator {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 2rem;
	gap: .25rem;
}

.step-indicator .step {
	display: flex;
	align-items: center;
	gap: .55rem;
	color: #95a0b6;
	font-weight: 500;
	font-size: .95rem;
}

.step-indicator .step .step-num {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #e8ecf3;
	color: #95a0b6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: .95rem;
	transition: background .15s ease, color .15s ease;
}

.step-indicator .step.active .step-num,
.step-indicator .step.done .step-num {
	background: #2754d6;
	color: #fff;
}

.step-indicator .step.active {
	color: #1f2a44;
}

.step-indicator .step-divider {
	width: 60px;
	height: 2px;
	background: #e8ecf3;
}

.form-step {
	display: none;
}

.form-step.active {
	display: block;
	animation: stepFade .25s ease-out;
}

@keyframes stepFade {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

.form-step h3 {
	font-size: 1.25rem;
	margin-bottom: 1.25rem;
}

.faculty-form label {
	font-size: .9rem;
	font-weight: 500;
	color: #2a364f;
	margin-bottom: .35rem;
	display: block;
}

.faculty-form .form-control {
	border-radius: 10px;
	border: 1px solid #d8dde7;
	padding: .65rem .85rem;
}

.faculty-form .form-control:focus {
	border-color: #2754d6;
	box-shadow: 0 0 0 3px rgba(39, 84, 214, .12);
}

/* CV uploader */
.cv-uploader {
	border: 2px dashed #c8d0e0;
	border-radius: 12px;
	padding: 1.75rem;
	text-align: center;
	background: #fbfcfe;
	transition: border-color .15s ease, background .15s ease;
}

.cv-uploader.is-drag-over {
	border-color: #2754d6;
	background: rgba(39, 84, 214, .06);
}

.cv-uploader-label {
	cursor: pointer;
	display: block;
	margin: 0;
}

.cv-uploader i {
	font-size: 1.6rem;
	color: #2754d6;
	display: block;
	margin-bottom: .5rem;
}

.cv-prompt {
	font-weight: 500;
}

.cv-hint {
	color: #95a0b6;
	margin-top: .25rem;
}

.cv-selected {
	background: #ecf2ff;
	border-radius: 8px;
	padding: .65rem .9rem;
	font-size: .9rem;
	margin-top: .75rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.cv-selected .cv-remove {
	cursor: pointer;
	color: #d04141;
	background: none;
	border: 0;
}

/* Optional toggle */
.toggle-optional {
	padding: 0;
	color: #2754d6;
	text-decoration: none;
	font-weight: 500;
}

.toggle-optional i {
	transition: transform .15s ease;
}

.toggle-optional.expanded i {
	transform: rotate(180deg);
}

/* Submit success */
.form-success {
	text-align: center;
	padding: 2rem 1rem;
}

.form-success .success-icon i {
	font-size: 4rem;
	color: #28b364;
	margin-bottom: 1rem;
}

/* OPPORTUNITY CARDS (cross-sell + index grid) */
.opportunity-card {
	display: block;
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 16px;
	padding: 1.5rem;
	height: 100%;
	color: inherit;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}

.opportunity-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px rgba(31, 42, 68, .1);
	color: inherit;
	text-decoration: none;
}

.opportunity-tag {
	display: inline-block;
	background: rgba(39, 84, 214, .08);
	color: #2754d6;
	font-size: .8rem;
	padding: .2rem .65rem;
	border-radius: 999px;
	font-weight: 500;
	margin-bottom: .75rem;
}

.opportunity-card h3 {
	font-size: 1.15rem;
	margin-bottom: .5rem;
}

.opportunity-card p {
	color: #5b6478;
	font-size: .92rem;
	margin-bottom: 1rem;
}

.opportunity-pills {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin-bottom: 1rem;
}

.opportunity-pills span {
	font-size: .78rem;
	color: #5b6478;
	background: #f1f4fa;
	padding: .2rem .55rem;
	border-radius: 999px;
}

.opportunity-cta {
	color: #2754d6;
	font-weight: 600;
	font-size: .9rem;
}

/* GENERAL INDEX EXTRAS */
.faculty-index .stats-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1rem;
	margin-top: 2rem;
}

.faculty-index .stat-card {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	padding: 1.25rem;
	text-align: center;
}

.faculty-index .stat-card .stat-num {
	font-size: 1.8rem;
	font-weight: 700;
	color: #2754d6;
	display: block;
}

.faculty-index .stat-card .stat-label {
	font-size: .9rem;
	color: #5b6478;
}

.faculty-index .benefit-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.25rem;
}

.faculty-index .benefit-card {
	background: #fff;
	border-radius: 14px;
	border: 1px solid #e8ecf3;
	padding: 1.5rem;
}

.faculty-index .benefit-card i {
	font-size: 1.6rem;
	color: #2754d6;
	margin-bottom: .75rem;
}

/* INDEX — Stat cards: icon */
.faculty-index .stat-card .stat-icon {
	font-size: 1.6rem;
	color: #2754d6;
	display: block;
	margin-bottom: .35rem;
}

/* INDEX — Recognitions strip */
.faculty-recognitions {
	background: linear-gradient(135deg, #f4f7fc 0%, #ffffff 100%);
}

.recognitions-logos {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1rem;
}

.recognition-logo {
	flex: 1 1 220px;
	max-width: 280px;
}

.recognition-badge {
	display: block;
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	padding: 1.25rem 1rem;
	text-align: center;
	color: #1f2a44;
	font-size: 1.05rem;
	box-shadow: 0 6px 18px rgba(31, 42, 68, .05);
}

.recognition-badge small {
	color: #6b7589;
	font-weight: normal;
	font-size: .8rem;
}

.recognitions-paragraph {
	max-width: 960px;
	margin: 1.25rem auto 0;
	color: #4a5365;
	font-size: 1rem;
	text-align: center;
}

/* INDEX — Student experience */
.faculty-student-experience {
	background: #f7f9fc;
}

.student-experience-img {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 16px;
	height: 320px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	color: #2754d6;
}

.student-experience-img i {
	font-size: 3rem;
}

.student-experience-img span {
	color: #1f2a44;
	font-weight: 600;
}

.experience-tiles {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: .85rem;
}

.experience-tile {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 12px;
	padding: 1rem;
	display: flex;
	gap: .75rem;
	align-items: center;
	transition: transform .15s ease, box-shadow .15s ease;
}

.experience-tile:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(31, 42, 68, .06);
}

.experience-tile i {
	color: #2754d6;
	font-size: 1.25rem;
	flex-shrink: 0;
}

.experience-summary {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 16px;
	padding: 1.75rem 1.5rem;
}

.experience-summary h4 {
	font-size: 1rem;
	color: #2754d6;
}

/* INDEX — Tech areas */
.tech-areas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.tech-area-card {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	padding: 1.25rem;
	text-align: center;
	transition: transform .15s ease, box-shadow .15s ease;
}

.tech-area-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(31, 42, 68, .07);
}

.tech-area-card i {
	font-size: 1.8rem;
	color: #2754d6;
	display: block;
	margin-bottom: .5rem;
}

.tech-area-card span {
	font-weight: 600;
	color: #1f2a44;
	font-size: .95rem;
}

/* INDEX — Discipline pills */
.discipline-pills {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: 1rem;
}

.discipline-pill {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 999px;
	padding: .45rem 1rem;
	font-size: .9rem;
	color: #4a5365;
	transition: background .15s ease, color .15s ease;
	cursor: default;
}

.discipline-pill:hover {
	background: #2754d6;
	color: #fff;
}

/* INDEX — Recognition cards */
.recognition-card {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 16px;
	padding: 2rem 1.5rem;
	height: 100%;
}

.recognition-card .icon {
	font-size: 2rem;
	color: #2754d6;
	margin-bottom: 1rem;
	display: block;
}

.recognition-card h3 {
	font-size: 1.3rem;
	margin-bottom: .75rem;
}

.recognition-card .check-list {
	margin-top: 1rem;
}

.recognition-strip {
	background: linear-gradient(135deg, #2754d6 0%, #1a3aa6 100%);
	color: #fff;
	border-radius: 16px;
	padding: 1.5rem 2rem;
	display: flex;
	gap: 1.5rem;
	align-items: center;
}

.recognition-strip i {
	font-size: 2.5rem;
	color: #f5d76e;
	flex-shrink: 0;
}

.recognition-strip h3 {
	color: #fff;
	margin-bottom: .35rem;
	font-size: 1.25rem;
}

.recognition-strip p {
	margin: 0;
	color: rgba(255, 255, 255, .9);
}

/* INDEX — Teaching call requirement cards */
.requirement-card {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	padding: 1.25rem;
	height: 100%;
}

.requirement-card i {
	font-size: 1.5rem;
	color: #2754d6;
	margin-bottom: .5rem;
}

.requirement-card h4 {
	font-size: 1rem;
	margin-bottom: .35rem;
}

.requirement-card p {
	font-size: .9rem;
	color: #5b6478;
	margin: 0;
}

/* INDEX — FAQ accordion */
.faq-accordion {
	max-width: 760px;
	margin: 0 auto;
}

.faq-item {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 12px;
	margin-bottom: .75rem;
	overflow: hidden;
}

.faq-trigger {
	width: 100%;
	background: none;
	border: 0;
	text-align: left;
	padding: 1rem 1.25rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-weight: 600;
	color: #1f2a44;
	cursor: pointer;
}

.faq-trigger i {
	color: #95a0b6;
	transition: transform .2s ease;
	flex-shrink: 0;
}

.faq-item.is-open .faq-trigger i {
	transform: rotate(180deg);
}

.faq-body {
	padding: 0 1.25rem;
	max-height: 0;
	overflow: hidden;
	transition: max-height .25s ease, padding .25s ease;
	color: #4a5365;
}

.faq-item.is-open .faq-body {
	padding: 0 1.25rem 1rem;
	max-height: 600px;
}

/* MASTER — Hero with embedded form */
.faculty-hero-with-form .hero-form-card {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 16px;
	box-shadow: 0 30px 70px rgba(31, 42, 68, .1);
	padding: 1.5rem;
	max-width: 100%;
}

.faculty-hero-with-form .hero-form-card h3 {
	font-size: 1.1rem;
	margin-bottom: 1rem;
}

/* MASTER — Plan de estudios accordion */
.plan-estudios-list {
	max-width: 960px;
	margin: 1.5rem auto 0;
}

.plan-estudios-item {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 12px;
	margin-bottom: .75rem;
	overflow: hidden;
}

.plan-estudios-trigger {
	width: 100%;
	background: none;
	border: 0;
	text-align: left;
	padding: 1rem 1.25rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	cursor: pointer;
}

.plan-estudios-trigger .area-title {
	font-weight: 600;
	color: #1f2a44;
}

.plan-estudios-trigger .area-meta {
	display: flex;
	gap: .65rem;
	align-items: center;
}

.plan-estudios-trigger .area-ects {
	background: rgba(39, 84, 214, .1);
	color: #2754d6;
	padding: .2rem .65rem;
	border-radius: 999px;
	font-size: .8rem;
	font-weight: 600;
}

.plan-estudios-trigger i {
	color: #95a0b6;
	transition: transform .2s ease;
}

.plan-estudios-item.is-open .plan-estudios-trigger i {
	transform: rotate(180deg);
}

.plan-estudios-body {
	padding: 0 1.25rem;
	max-height: 0;
	overflow: hidden;
	transition: max-height .25s ease, padding .25s ease;
}

.plan-estudios-item.is-open .plan-estudios-body {
	padding: 0 1.25rem 1.25rem;
	max-height: 4000px;
}

.plan-estudios-body .rich-content {
	color: #4a5365;
	font-size: .95rem;
}

/* Process steps (general index) */
.process-steps {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 1rem;
	counter-reset: process;
}

.process-steps li {
	background: #fff;
	border: 1px solid #e8ecf3;
	border-radius: 14px;
	padding: 1.25rem;
	position: relative;
}

.process-steps .step-num {
	display: inline-flex;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #2754d6;
	color: #fff;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	margin-bottom: .5rem;
}

.faculty-bottom-cta {
	background: linear-gradient(135deg, #2754d6 0%, #1a3aa6 100%);
	color: #fff;
	border-radius: 0;
}

.faculty-bottom-cta h2 { color: #fff; }
.faculty-bottom-cta .section-lead { color: rgba(255,255,255,.85); max-width: 640px; }
.faculty-bottom-cta .btn-primary {
	background: #fff;
	color: #2754d6;
	border-color: #fff;
}

.faculty-bottom-cta .btn-primary:hover {
	background: #f4f7fc;
	color: #1a3aa6;
}

@media (max-width: 575.98px) {
	.faculty-form { padding: 1.5rem 1rem; }
	.step-indicator .step-divider { width: 24px; }
	.step-indicator .step .step-label { display: none; }
	.meta-cards { grid-template-columns: 1fr; }
}
