/**
 * Article Link Accessibility
 * Ensures links within articles meet WCAG 2.2 AA standards
 * - Minimum touch target size: 44×44 pixels (Level AAA) / 24×24 pixels (Level AA)
 * - Adequate spacing between interactive elements
 * - Focus indicators for all interactive elements
 *
 * SCOPED TO FRONT-END ONLY - Does not affect admin pages
 */

/* ==========================================================================
   Touch Target Sizes - WCAG 2.5.5 (Level AAA) & 2.5.8 (Level AA - WCAG 2.2)
   ========================================================================== */

/* Wrapper links around articles - block display, no minimum size needed */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.latest-news-link-wrapper,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Hover effects for wrapper links */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper:hover,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.latest-news-link-wrapper:hover,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Ensure button-style links and action buttons meet minimum touch target */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-link,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .dept-news-link a,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .latest-news-read-more,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .read-more-btn,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-link,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .featured-news-read-more {
	min-height: 44px;
	min-width: 44px;
	padding: 0.75rem 1rem;
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.375rem;
	text-transform: uppercase;
	font-size: 0.75rem;
	font-weight: bold;
}

/* Text links within article content (like paragraphs, lists) */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article p a,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article li a:not(.egr-news-block-link):not(.read-more-btn) {
	min-height: 24px; /* WCAG 2.2 Level AA minimum */
	padding: 0.125rem 0;
	display: inline;
}

/* Image links - ensure adequate size */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-image-link,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-image-link,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-thumbnail,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .news-image-section {
	min-height: 100px;
	min-width: 100px;
	display: block;
}

/* ==========================================================================
   Link Spacing - WCAG 2.5.5 & 2.5.8 (Target Size)
   ========================================================================== */

/* Spacing between consecutive standalone links */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-link + a,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.read-more-btn + a,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .dept-news-link + a {
	margin-top: 1rem;
}

/* Spacing between image link and text content links */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-thumbnail + .egr-news-block-content a:first-of-type {
	margin-top: 1rem;
}

/* Vertical spacing in card layouts */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-content > a,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-content > .egr-news-block-link {
	margin-top: 0.875rem;
}

/* Horizontal spacing for inline links (when multiple links are side by side) */
/* Exclude button components from automatic spacing */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a:not(.egr-content-block__link-button):not(.egr-button__link):not(.btn):not([class*="button"]):not([class*="-btn"]):not(.egr-cta__button):not(.cta) + a:not(.egr-content-block__link-button):not(.egr-button__link):not(.btn):not([class*="button"]):not([class*="-btn"]):not(.egr-cta__button):not(.cta) {
	margin-left: 1rem;
}

/* Ensure adequate spacing within list items */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article li {
	margin-bottom: 0.5rem;
}

/* ==========================================================================
   Focus States - WCAG 2.4.7 (Focus Visible - Level AA)
   ========================================================================== */

/* Enhanced focus for wrapper links */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper:focus-visible,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.latest-news-link-wrapper:focus-visible,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link:focus-visible {
	outline: 3px solid var(--focus-color, #18453b);
	outline-offset: 2px;
	border-radius: 0;
}

/* Focus for button-style links */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-link:focus-visible,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .read-more-btn:focus-visible {
	outline: 2px solid var(--focus-color, #18453b);
	outline-offset: 2px;
}

/* ==========================================================================
   Accessibility Overrides for Decorative Elements
   ========================================================================== */

/* When "Read More" is decorative inside a wrapper link */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper .egr-news-block-link[aria-hidden="true"],
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.latest-news-link-wrapper .latest-news-read-more[aria-hidden="true"],
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link .read-more-btn[aria-hidden="true"] {
	pointer-events: none;
	cursor: default;
}

/* Ensure decorative spans don't look like links but maintain button styling */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article span.egr-news-block-link,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article span.read-more-btn,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article span.latest-news-read-more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

/* ==========================================================================
   News Card Specific Styles
   ========================================================================== */

/* Ensure news cards have proper interactive area */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) .egr-news-block-card,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) .egr-news-list-item,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) .latest-news-card {
	position: relative;
	transition: all 0.3s ease;
}

/* Make entire card clickable with wrapper link */
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper .egr-news-block-card,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.latest-news-link-wrapper .latest-news-card,
body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link .egr-news-list-item {
	cursor: pointer;
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 768px) {
	/* Increase touch target on mobile for better usability */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-link,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .dept-news-link a,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .read-more-btn {
		min-height: 48px;
		padding: 0.875rem 1.25rem;
		font-size: 1rem;
	}

	/* Ensure wrapper links have adequate spacing on mobile */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link {
		margin-bottom: 1rem;
	}

	/* Increase spacing between elements on mobile */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-content > a,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-content > .egr-news-block-link {
		margin-top: 1rem;
	}
}

@media (max-width: 576px) {
	/* Further increase touch targets on very small screens */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-link,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .read-more-btn,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .featured-news-read-more {
		width: 100%;
		justify-content: flex-end;
		min-height: 48px;
	}
}

/* ==========================================================================
   High Contrast Mode Support
   ========================================================================== */

@media (prefers-contrast: high) {
	/* Stronger borders for interactive elements in high contrast mode */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link {
		border: 2px solid currentColor;
	}

	/* Ensure focus indicators are highly visible */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a:focus-visible {
		outline-width: 4px !important;
		outline-style: solid !important;
	}
}

/* ==========================================================================
   Reduced Motion Support
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	/* Disable transitions and transforms for users who prefer reduced motion */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a *,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) .egr-news-block-card,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) .egr-news-list-item,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) .latest-news-card {
		transition: none !important;
		transform: none !important;
	}

	/* Remove hover effects that use transforms */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper:hover,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link:hover {
		transform: none !important;
	}
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
	/* Hide decorative "Read More" text in print */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .egr-news-block-link[aria-hidden="true"],
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article .read-more-btn[aria-hidden="true"] {
		display: none;
	}

	/* Ensure links show their URLs in print */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a[href]::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
		color: #666;
	}

	/* Don't show URL for wrapper links (too noisy) */
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.egr-news-block-wrapper::after,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.news-wrapper-link::after,
	body:not(.path-admin):not(.toolbar-horizontal):not(.toolbar-vertical):not(.toolbar-fixed):not(.gin--vertical-toolbar):not(.gin--horizontal-toolbar):not(.toolbar-tray-open) article a.latest-news-link-wrapper::after {
		content: none;
	}
}
