/* Copyright (c) California Commission on Teacher Credentialing. All rights reserved. */

/* ============================================
   BASE STYLES & OVERRIDES
   ============================================ */

/* Smooth scrolling for anchor links */
html,
body {
	scroll-behavior: smooth;
	/* Offset for fixed header when scrolling to anchors */
	scroll-padding-top: 80px;
}

/* Respect user preference for reduced motion */
@media (prefers-reduced-motion: reduce) {
	html,
	body {
		scroll-behavior: auto;
	}
}

/* Scroll offset for anchor targets */
[id] {
	scroll-margin-top: 80px;
}

.footer-text {
	color: #545b62;
	line-height: 18px;
	padding: 3px 4px 3px 6px;
}

.k-grid a.rowbutton {
	color: #fff;
}

body {
	color: #3d4551;
	line-height: 1.6;
}

.breadcrumb-item.active {
	color: #5e6974;
}

.breadcrumb-item > a {
	color: var(--primary);
}

label {
	margin-bottom: .1rem;
	font-size: .8rem;
	line-height: 1.2;
}

.text-danger {
	color: #b50909 !important;
}

.text-primary {
	color: var(--primary) !important;
}

.text-dark {
	color: #1b1b1b !important;
}

.text-light {
	color: #FFF !important;
}

a {
	color: var(--primary);
	text-decoration: none;
}

a:hover {
	color: var(--primary-dark);
}

.btn-primary {
	color: #fff;
	background-color: var(--primary);
	border-color: var(--primary);
}

.error {
	color: #b50909;
}

.k-dropzone-hint {
	color: #323232 !important;
}

/* ============================================
   PUBLIC PORTAL - MODERN CLEAN DESIGN
   Professional, minimal, no heavy borders
   R4 Compliant
   ============================================ */

:root {
	/* CTC Brand Colors - matches ctc.ca.gov header */
	--ctc-navy: #003366;
	--ctc-navy-dark: #002244;
	--ctc-navy-light: #004488;
	--ctc-gold: #B8860B;
	--ctc-gold-light: #DAA520;

	/* Primary Palette */
	--primary: #005ea2;
	--primary-dark: #1a4480;
	--primary-darker: #003366;
	--primary-light: #73b3e7;

	/* Semantic Colors */
	--success: #2e8540;
	--warning: #e5a000;
	--error: #d63e04;
	--info: #02bfe7;

	/* Neutral Palette */
	--gray-100: #f8f9fa;
	--gray-200: #e9ecef;
	--gray-300: #dee2e6;
	--gray-400: #ced4da;
	--gray-500: #71767a;
	--gray-600: #565c65;
	--gray-700: #495057;
	--gray-800: #3d4551;
	--gray-900: #1b1b1b;

	--white: #ffffff;
	--body-bg: #f8f9fa;
}

/* ============================================
   WELCOME SECTION
   ============================================ */

.welcome-title {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--ctc-navy);
	margin: 0 0 1.25rem 0;
	line-height: 1.3;
	text-align: center;
}

.welcome-text {
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--gray-700);
	margin-bottom: 0;
	text-align: center;
}

/* ============================================
   PROCESS FLOW - How It Works (numbered steps)
   ============================================ */

.process-flow {
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr;
	gap: 1rem;
	align-items: stretch;
	margin-top: 1.5rem;
}

.process-step {
	display: flex;
	flex-direction: column;
}

.process-step-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.process-step-number {
	width: 36px;
	height: 36px;
	background-color: var(--ctc-navy);
	color: var(--white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.125rem;
	font-weight: 700;
	flex-shrink: 0;
}

.process-step-header h3 {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0;
	color: var(--ctc-navy);
}

.process-step-body {
	background-color: var(--white);
	border-radius: 8px;
	padding: 1.5rem;
	border: 2px solid var(--gray-200);
	flex: 1;
}

.process-step-body:hover {
	border-color: var(--ctc-gold);
	box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.1);
}

.process-step-body > p {
	color: var(--gray-600);
	line-height: 1.7;
	margin-bottom: 0.75rem;
	font-size: 0.9375rem;
}

.process-checklist {
	border-top: 1px solid var(--gray-200);
	margin-top: 1rem;
	padding-top: 1rem;
}

.process-checklist h4 {
	font-size: 1rem;
	font-weight: 600;
	color: var(--gray-800);
	margin-bottom: 0.75rem;
}

.process-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 3rem;
	color: var(--ctc-gold);
	font-size: 1.5rem;
}

/* ============================================
   CHECKLISTS
   ============================================ */

.checklist {
	list-style: none;
	padding: 0;
	margin: 0;
}

.checklist li {
	padding: 0.625rem 0;
	padding-left: 2rem;
	position: relative;
	color: var(--gray-700);
	line-height: 1.6;
	font-size: 1rem;
	border-bottom: 1px solid var(--gray-100);
}

.checklist li:last-child {
	border-bottom: none;
}

.checklist li > .mdi-check {
	position: absolute;
	left: 0;
	color: var(--success);
	font-size: 1.25rem;
	line-height: 1.6;
}

.checklist li em {
	color: var(--gray-500);
	font-size: 0.9375rem;
}

/* ============================================
   CTA BUTTONS
   ============================================ */

.btn-cta {
	background-color: var(--ctc-navy);
	border-color: var(--ctc-navy);
	color: var(--white);
	font-size: 1.125rem;
	font-weight: 700;
	padding: 1rem 2rem;
	border-radius: 8px;
	text-decoration: none;
	transition: all 0.2s ease;
}

.btn-cta:hover {
	background-color: var(--ctc-navy-light);
	border-color: var(--ctc-navy-light);
	color: var(--white);
	text-decoration: none;
}

.btn-cta:focus,
.btn-cta:focus-visible {
	outline: 3px solid var(--ctc-gold);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px rgba(184, 134, 11, 0.3);
	background-color: var(--ctc-navy);
	border-color: var(--ctc-navy);
	color: var(--white);
}

/* ============================================
   CONTACT INFO
   ============================================ */

.contact-info {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.contact-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	color: var(--gray-700);
}

.contact-item strong {
	min-width: 80px;
}

.contact-item i {
	color: var(--primary);
	font-size: 1.25rem;
}


/* ============================================
   CONTENT SECTIONS
   ============================================ */

.content-section {
	margin-bottom: 3.5rem;
}

.section-title {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 2rem;
	color: var(--gray-900);
	text-align: left;
	letter-spacing: -0.3px;
}

.lead-text {
	font-size: 1.125rem;
	line-height: 1.8;
	margin-bottom: 2rem;
	color: var(--gray-600);
	text-align: center;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

/* ============================================
   CARD OVERRIDES - Public Portal Styling
   ============================================ */

.card.shadow {
	border-radius: 12px;
	overflow: hidden;
}

.card.shadow .card-header.bg-white {
	padding: 1.25rem 1.75rem;
	border-bottom: 1px solid var(--gray-200);
}

.card.shadow .card-header.bg-white h2 {
	margin: 0;
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--gray-900);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
}

.card.shadow .card-header.bg-white h2 i {
	color: var(--primary);
	font-size: 1.5rem;
}

.card.shadow .card-body {
	padding: 2rem;
}

/* ============================================
   INFO GRID - Statistics Cards
   ============================================ */

.info-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	margin-top: 2rem;
}

.info-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 1.75rem 1.25rem;
	background-color: var(--white);
	border-radius: 8px;
	border: 2px solid var(--gray-200);
	transition: all 0.2s ease;
}

.info-item:hover {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(0, 94, 162, 0.1);
}

.info-icon {
	width: 56px;
	height: 56px;
	background-color: var(--ctc-navy);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--white);
	margin-bottom: 1rem;
}

.info-icon i {
	font-size: 1.5rem;
}

.info-content h3 {
	font-size: 1.375rem;
	font-weight: 700;
	margin: 0 0 0.375rem 0;
	color: var(--ctc-navy);
}

.info-content p {
	margin: 0;
	color: var(--gray-600);
	line-height: 1.5;
	font-size: 0.875rem;
}

/* ============================================
   FEATURE CARDS - How It Works
   ============================================ */

.feature-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2rem;
}

.feature-card {
	background-color: var(--white);
	border-radius: 8px;
	padding: 1.75rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	border: 2px solid var(--gray-200);
	transition: all 0.2s ease;
}

.feature-card:hover {
	border-color: var(--ctc-gold);
	box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.1);
}

.feature-card-icon {
	width: 64px;
	height: 64px;
	background-color: var(--ctc-navy);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.25rem;
}

.feature-card-icon i {
	font-size: 1.75rem;
	color: var(--white);
}

.feature-card h3 {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 1rem 0;
	color: var(--gray-900);
}

.feature-card > p {
	color: var(--gray-600);
	line-height: 1.7;
	margin-bottom: 1.5rem;
	flex-grow: 1;
	font-size: 0.9375rem;
}

.feature-list {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem 0;
	width: 100%;
	text-align: left;
}

.feature-list li {
	padding: 0.5rem 0;
	padding-left: 1.75rem;
	position: relative;
	color: var(--gray-700);
	line-height: 1.5;
	font-size: 0.9375rem;
}

.feature-list li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: var(--success);
	font-weight: 700;
}

.feature-link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--primary);
	text-decoration: none;
	font-weight: 600;
	margin-top: auto;
	font-size: 0.9375rem;
	padding: 0.5rem 1rem;
	border-radius: 6px;
	transition: all 0.2s ease;
}

.feature-link:hover {
	color: var(--primary-dark);
	background-color: var(--gray-100);
	text-decoration: none;
}

/* ============================================
   QUICK LINKS - Left Aligned with Hover
   ============================================ */

.quick-links-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.quick-link-section {
	text-align: left;
}

.quick-link-section h4 {
	font-size: 0.9375rem;
	font-weight: 700;
	margin: 0 0 0.875rem 0;
	color: var(--ctc-navy);
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--ctc-navy);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.quick-links-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.quick-links-list li {
	margin-bottom: 0.25rem;
}

.quick-links-list a {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--primary);
	text-decoration: none;
	padding: 0.5rem 0.625rem;
	font-size: 0.9375rem;
	border-radius: 4px;
	margin-left: -0.625rem;
	transition: all 0.15s ease;
}

.quick-links-list a:hover {
	background-color: var(--gray-100);
	color: var(--primary-dark);
}

.quick-links-list i {
	font-size: 1rem;
	color: var(--primary);
	flex-shrink: 0;
	width: 20px;
	text-align: center;
}

.quick-links-subhead {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	color: var(--gray-700);
	padding: 0.5rem 0.75rem;
	margin-top: 0.5rem;
	font-size: 0.9375rem;
}

/* ============================================
   RESPONSIVE - Mobile First
   ============================================ */

@media (max-width: 1024px) {
	.info-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.feature-cards-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.process-flow {
		grid-template-columns: 1fr;
	}

	.process-arrow {
		padding-top: 0;
		transform: rotate(90deg);
	}

	.quick-links-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.welcome-title {
		font-size: 1.375rem;
	}

	.info-grid {
		grid-template-columns: 1fr;
	}

	.feature-cards-grid {
		grid-template-columns: 1fr;
	}

	.process-flow {
		grid-template-columns: 1fr;
	}

	.quick-links-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.btn-cta {
		font-size: 1rem;
		padding: 0.875rem 1.5rem;
	}

	.section-title {
		font-size: 1.5rem;
	}

	.card.shadow .card-body {
		padding: 1.25rem;
	}
}

/* ============================================
   ACCESSIBILITY - R4 Compliant
   ============================================ */

.feature-link:focus,
.quick-links-list a:focus {
	outline: 2px solid var(--primary);
	outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
	.card.shadow,
	.feature-card,
	.process-step-body,
	.info-item {
		border: 2px solid var(--gray-900);
	}
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
		transform: none !important;
	}
}

/* ============================================
   ACCORDION - Bootstrap 5 Overrides
   ============================================ */

.accordion-item {
	border: 1px solid var(--gray-300);
	margin-bottom: 0;
}

.accordion-item:first-of-type {
	border-top-left-radius: 8px;
	border-top-right-radius: 8px;
}

.accordion-item:last-of-type {
	border-bottom-left-radius: 8px;
	border-bottom-right-radius: 8px;
}

.accordion-button {
	font-size: 1rem;
	font-weight: 600;
	color: var(--gray-900);
	background-color: var(--white);
	padding: 1rem 1.25rem;
}

.accordion-button:not(.collapsed) {
	color: var(--ctc-navy);
	background-color: var(--gray-100);
	box-shadow: inset 0 -1px 0 var(--gray-300);
}

/* Fix purple focus state - use CTC brand colors */
.accordion-button:focus {
	border-color: var(--primary);
	box-shadow: 0 0 0 0.25rem rgba(0, 94, 162, 0.25);
	z-index: 3;
}

.accordion-button::after {
	/* Custom chevron color - CTC navy (Bootstrap rotates via transform) */
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003366'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-body {
	padding: 1.25rem;
	color: var(--gray-700);
	line-height: 1.7;
	font-size: 1rem;
}

/* Card body text - consolidated */
.card.shadow .card-body p,
.card.shadow .card-body li,
.card.shadow .card-body address {
	font-size: 1rem;
	line-height: 1.6;
}

/* Accordion responsive */
@media (max-width: 768px) {
	.accordion-button {
		padding: 0.875rem 1rem;
		font-size: 0.9375rem;
	}

	.accordion-body {
		padding: 1rem;
		font-size: 0.9375rem;
	}
}

/* ============================================
   CARD CONTENT ALIGNMENT
   ============================================ */

/* Lead text should be left-aligned and full width inside cards */
.card.shadow .card-body .lead-text {
	text-align: left;
	margin-left: 0;
	margin-right: 0;
	max-width: none;
}

/* Card body additional styling */
.card.shadow .card-body strong {
	font-weight: 600;
	color: var(--gray-900);
}

.card.shadow .card-body .text-muted {
	font-size: 0.9375rem;
}
