/**
 * Invitation Banner Styles - Mobile Optimized
 * File: /assets/css/invitation-banner.css
 * Purpose: Clean, consolidated styling for the invitation banner
 * Version: 2.0.0
 */

/* ===================================================================
   INVITATION BANNER - BASE STYLES
   =================================================================== */

.invitation-banner {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	height: 40px !important;
	background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%) !important;
	color: white !important;
	z-index: 100 !important; /* Lower than modals but higher than navigation */
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	font-family: system-ui, -apple-system, sans-serif !important;
}

.banner-container {
	height: 100% !important;
	padding: 0 1rem !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	max-width: 100% !important;
	margin: 0 auto !important;
}

.banner-content {
	display: flex !important;
	align-items: center !important;
	flex: 1 !important;
	min-width: 0 !important; /* Allows text truncation */
}

.banner-icon {
	margin-right: 0.5rem !important;
	font-size: 14px !important;
	flex-shrink: 0 !important;
}

/* Text elements - desktop by default */
.invitation-banner .banner-text-desktop {
	display: inline-block !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

.invitation-banner .banner-text-mobile {
	display: none !important;
}

/* Button styles */
.invitation-banner .banner-button {
	background: white !important;
	color: #dc2626 !important;
	padding: 6px 12px !important;
	border-radius: 20px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	transition: all 0.2s ease !important;
	flex-shrink: 0 !important;
	margin-left: 0.5rem !important;
	display: inline-block !important;
}

.invitation-banner .banner-button:hover {
	background: #f3f4f6 !important;
	color: #b91c1c !important;
	transform: translateY(-1px) !important;
}

.invitation-banner .button-text-desktop {
	display: inline !important;
}

.invitation-banner .button-text-mobile {
	display: none !important;
}

/* Spacer to prevent content overlap */
.banner-spacer {
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Navigation adjustments when banner is present */
body.has-invitation-banner .main-navigation,
.invitation-banner ~ .main-navigation {
	position: fixed !important;
	top: 40px !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 999 !important;
}

/* Content adjustment when banner is present */
body.has-invitation-banner {
	padding-top: 40px !important;
}

/* ===================================================================
   MOBILE RESPONSIVE STYLES
   =================================================================== */

@media (max-width: 767px) {
	/* Adjust banner height for mobile */
	.invitation-banner {
		height: 44px !important;
	}
	
	.banner-spacer {
		height: 44px !important;
	}
	
	/* Adjust container padding */
	.invitation-banner .banner-container {
		padding: 0 0.75rem !important;
	}
	
	/* Hide desktop text, show mobile text - with higher specificity */
	.invitation-banner .banner-text-desktop {
		display: none !important;
		visibility: hidden !important;
		width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
	}
	
	.invitation-banner .banner-text-mobile {
		display: inline-block !important;
		visibility: visible !important;
		font-size: 13px !important;
		font-weight: 500 !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}
	
	/* Hide lock icon on very small screens to save space */
	.invitation-banner .banner-icon {
		display: inline-block !important;
		font-size: 12px !important;
		margin-right: 0.375rem !important;
	}
	
	/* Mobile button styles */
	.invitation-banner .banner-button {
		padding: 5px 10px !important;
		font-size: 11px !important;
		border-radius: 12px !important;
	}
	
	.invitation-banner .button-text-desktop {
		display: none !important;
		visibility: hidden !important;
		width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
	}
	
	.invitation-banner .button-text-mobile {
		display: inline !important;
		visibility: visible !important;
	}
	
	/* Navigation adjustment for mobile */
	body.has-invitation-banner .main-navigation,
	.invitation-banner ~ .main-navigation {
		top: 44px !important;
	}
	
	body.has-invitation-banner {
		padding-top: 44px !important;
	}
}

/* ===================================================================
   EXTRA SMALL DEVICES (iPhone SE, etc.)
   =================================================================== */

@media (max-width: 375px) {
	.banner-container {
		padding: 0 0.5rem !important;
	}
	
	.banner-text-mobile {
		font-size: 12px !important;
	}
	
	.banner-icon {
		font-size: 11px !important;
		margin-right: 0.25rem !important;
	}
	
	.banner-button {
		padding: 4px 8px !important;
		font-size: 10px !important;
		margin-left: 0.375rem !important;
	}
}

/* ===================================================================
   LANDSCAPE MOBILE
   =================================================================== */

@media (max-width: 767px) and (orientation: landscape) {
	.invitation-banner {
		height: 36px !important;
	}
	
	.banner-spacer {
		height: 36px !important;
	}
	
	body.has-invitation-banner .main-navigation,
	.invitation-banner ~ .main-navigation {
		top: 36px !important;
	}
	
	body.has-invitation-banner {
		padding-top: 36px !important;
	}
	
	.banner-text-mobile {
		font-size: 12px !important;
	}
	
	.banner-button {
		padding: 4px 8px !important;
		font-size: 10px !important;
	}
}

/* ===================================================================
   TABLET STYLES
   =================================================================== */

@media (min-width: 768px) and (max-width: 1024px) {
	.banner-container {
		max-width: 100% !important;
		padding: 0 1.5rem !important;
	}
}

/* ===================================================================
   HIGH CONTRAST MODE
   =================================================================== */

@media (prefers-contrast: high) {
	.invitation-banner {
		background: #dc2626 !important;
		border-bottom: 2px solid #000 !important;
	}
	
	.banner-button {
		background: #fff !important;
		color: #000 !important;
		border: 1px solid #000 !important;
	}
	
	.banner-button:hover {
		background: #f0f0f0 !important;
	}
}

/* ===================================================================
   REDUCED MOTION
   =================================================================== */

@media (prefers-reduced-motion: reduce) {
	.banner-button {
		transition: none !important;
	}
	
	.banner-button:hover {
		transform: none !important;
	}
}

/* ===================================================================
   PRINT STYLES
   =================================================================== */

@media print {
	.invitation-banner,
	.banner-spacer {
		display: none !important;
	}
	
	body.has-invitation-banner {
		padding-top: 0 !important;
	}
	
	body.has-invitation-banner .main-navigation,
	.invitation-banner ~ .main-navigation {
		position: relative !important;
		top: 0 !important;
	}
}