/**
 * ASCOG Miembros Directory and Front-end UI Stylesheet
 * Brand Colors:
 * - Teal (Primary): #1B6B6B
 * - Gold (Secondary): #C9A96E
 * - Cream (Background accent): #F5F0E8
 * - Dark Blue (Text primary): #1A2F4A
 */

:root {
	--ascog-primary: #1B6B6B;
	--ascog-primary-dark: #143D3D;
	--ascog-gold: #C9A96E;
	--ascog-gold-light: #E8D5A3;
	--ascog-cream: #F5F0E8;
	--ascog-text: #1A2F4A;
	--ascog-gray: #6B7280;
	--ascog-light-gray: #E5E7EB;
	--ascog-white: #ffffff;
	--ascog-shadow-sm: 0 1px 3px rgba(0,0,0,0.05);
	--ascog-shadow-md: 0 4px 6px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.05);
	--ascog-shadow-gold: 0 4px 15px rgba(201, 169, 110, 0.25);
}

/* Base styles for Directory Wrapper */
.ascog-directory-wrapper {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
	font-family: 'Open Sans', sans-serif;
	color: var(--ascog-text);
}

/* Typography Headings */
.ascog-directory-wrapper h4, 
.ascog-profile-wrapper h1, 
.ascog-profile-wrapper h3, 
.ascog-dashboard-container h2, 
.ascog-dashboard-container h3, 
.ascog-auth-card h2 {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
}

/* Shimmer Loader Placeholder */
.ascog-shimmer {
	background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
	background-size: 200% 100%;
	animation: ascogShimmerAnim 1.5s infinite;
}

@keyframes ascogShimmerAnim {
	0% {
		background-position: 200% 0;
	}
	100% {
		background-position: -200% 0;
	}
}

/* Grid Cards Hover Micro-animations */
.ascog-card {
	background: var(--ascog-white);
	border: 1px solid var(--ascog-light-gray);
	border-radius: 12px;
	padding: 20px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease;
	position: relative;
	overflow: hidden;
}

.ascog-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--ascog-shadow-md);
}

/* Premium Card custom styling */
.ascog-card-premium {
	border: 2px solid var(--ascog-gold) !important;
	box-shadow: var(--ascog-shadow-gold);
}

.ascog-card-premium::before {
	content: '';
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: linear-gradient(
		to bottom right,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0) 40%,
		rgba(255, 255, 255, 0.3) 50%,
		rgba(255, 255, 255, 0) 60%,
		rgba(255, 255, 255, 0) 100%
	);
	transform: rotate(30deg);
	transition: transform 0.8s ease;
	pointer-events: none;
}

.ascog-card-premium:hover::before {
	transform: rotate(30deg) translate(20%, 20%);
}

.ascog-pulse {
	animation: ascogGoldPulse 3s infinite alternate;
}

@keyframes ascogGoldPulse {
	0% {
		box-shadow: 0 4px 15px rgba(201, 169, 110, 0.15);
	}
	100% {
		box-shadow: 0 4px 20px rgba(201, 169, 110, 0.35);
	}
}

/* Premium Badges */
.ascog-profile-badge-gold {
	background: linear-gradient(45deg, var(--ascog-gold), var(--ascog-gold-light));
	color: #1A2F4A;
	box-shadow: var(--ascog-shadow-gold);
}

.ascog-profile-badge-basic {
	background: var(--ascog-gray);
	color: var(--ascog-white);
}

/* Buttons */
.ascog-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 20px;
	border-radius: 6px;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	border: 2px solid transparent;
	transition: all 0.3s ease;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	font-family: inherit;
	line-height: 1.4;
	box-sizing: border-box;
}

.ascog-btn:focus {
	outline: 3px solid rgba(27, 107, 107, 0.35);
	outline-offset: 2px;
}

.ascog-btn-primary {
	background: var(--ascog-primary) !important;
	color: #ffffff !important;
	border-color: var(--ascog-primary) !important;
}

.ascog-btn-primary:hover,
.ascog-btn-primary:focus {
	background: var(--ascog-primary-dark) !important;
	color: #ffffff !important;
	border-color: var(--ascog-primary-dark) !important;
}

.ascog-btn-outline {
	background: transparent !important;
	color: var(--ascog-primary) !important;
	border: 2px solid var(--ascog-primary) !important;
}

.ascog-btn-outline:hover,
.ascog-btn-outline:focus {
	background: var(--ascog-primary) !important;
	color: #ffffff !important;
}

/* Botones <button> nativos — resetear estilos del tema */
button.ascog-btn {
	background-color: transparent;
	border-style: solid;
	margin: 0;
}

button.ascog-btn-primary {
	background-color: var(--ascog-primary) !important;
	color: #ffffff !important;
}

button.ascog-btn-outline {
	background-color: transparent !important;
	color: var(--ascog-primary) !important;
	border-color: var(--ascog-primary) !important;
}

button.ascog-btn-outline:hover {
	background-color: var(--ascog-primary) !important;
	color: #ffffff !important;
}

/* Filters Layout UI */
.ascog-filter-bar input[type="text"]:focus,
.ascog-filter-bar select:focus,
.ascog-dashboard-form input[type="text"]:focus,
.ascog-dashboard-form input[type="email"]:focus,
.ascog-dashboard-form select:focus,
.ascog-dashboard-form textarea:focus,
.ascog-auth-card input:focus {
	border-color: var(--ascog-primary) !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(27, 107, 107, 0.15);
}

.ascog-filter-group input[type="checkbox"] {
	accent-color: var(--ascog-primary);
}

/* Authenticator / Forms UI */
.ascog-auth-wrapper {
	max-width: 480px;
	margin: 50px auto;
	padding: 0 20px;
}

.ascog-auth-card {
	background: var(--ascog-white);
	border: 1px solid var(--ascog-light-gray);
	border-radius: 16px;
	padding: 40px 30px;
	box-shadow: var(--ascog-shadow-md);
}

.ascog-auth-card h2 {
	margin: 0 0 10px 0;
	text-align: center;
	color: var(--ascog-primary);
	font-size: 24px;
}

.ascog-auth-card p.subtitle {
	text-align: center;
	color: var(--ascog-gray);
	font-size: 14px;
	margin: 0 0 30px 0;
}

.ascog-auth-field {
	margin-bottom: 20px;
}

.ascog-auth-field label {
	display: block;
	font-weight: 700;
	margin-bottom: 6px;
	font-size: 13.5px;
}

.ascog-auth-field input[type="text"],
.ascog-auth-field input[type="password"],
.ascog-auth-field input[type="email"] {
	width: 100%;
	padding: 12px 15px;
	border: 2px solid var(--ascog-light-gray);
	border-radius: 8px;
	font-size: 15px;
	transition: all 0.3s ease;
}

.ascog-auth-submit {
	width: 100%;
	justify-content: center;
	padding: 12px;
	font-size: 16px;
	margin-top: 10px;
}

.ascog-auth-footer {
	text-align: center;
	margin-top: 25px;
	font-size: 13.5px;
	color: var(--ascog-gray);
}

.ascog-auth-footer a {
	color: var(--ascog-primary);
	font-weight: 700;
	text-decoration: none;
}

.ascog-auth-footer a:hover {
	text-decoration: underline;
}

/* Alert Boxes */
.ascog-auth-error, 
.ascog-auth-success, 
.ascog-auth-msg {
	border-left: 4px solid;
	border-radius: 6px;
	padding: 15px;
	font-size: 14px;
	margin-bottom: 20px;
	line-height: 1.5;
}

.ascog-auth-error {
	background: #fdf2f2;
	color: #9b1c1c;
	border-color: #f05252;
}

.ascog-auth-success {
	background: #f3faf7;
	color: #03543f;
	border-color: #31c48d;
}

.ascog-auth-msg {
	background: #fdf8f6;
	color: #c2410c;
	border-color: #f97316;
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.ascog-filter-bar form {
		flex-direction: column;
		align-items: stretch;
	}
	.ascog-filter-group {
		width: 100% !important;
	}
	.ascog-dashboard-grid {
		grid-template-columns: 1fr !important;
		gap: 30px !important;
	}
}
