/* =======================
	 PAGE LAYOUT
	 ======================= */
.page-endorsements .endorsements-content {
  margin: 0 auto;
}

.page-endorsements .endorsements-header h1 {
	color: var(--primary);
	font-weight: 800;
	margin-bottom: 0.5rem;
	text-align: center;
}

.page-endorsements .endorsements-header p {
	font-size: 1.1rem;
	color: var(--muted);
	margin-top: 0;
	text-align: center;
}

/* ===========================
	 Endorsement summary cards grid
	 =========================== */
.page-endorsements .endorsement-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 1.5rem;
}

.page-endorsements .endorsement-cards {
	display: grid;
  grid-template-columns: repeat(3, minmax(260px, 320px));
	justify-content: center;
  gap: 1.2rem;
  margin-top: 1.2rem;
  margin-bottom: 2rem;
}

@media (max-width: 900px) {
	.page-endorsements .endorsement-cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.page-endorsements .endorsement-cards {
		grid-template-columns: repeat(1, 1fr);
	}
}

/* ===========================
	 Endorsement Card Title
	 =========================== */
.page-endorsements .endorsement-card h4 {
	color: var(--primary);
	margin: 0.5rem 0;
}

/* ===========================
	 Endorsement Card
	 =========================== */
.page-endorsements a.endorsement-card {
	background: #f7fbf7;
  border-radius: 14px;
  border: 1px solid #d6ead6;
  padding: 1rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);

  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  align-items: center;
  text-align: center;

  /* remove default link styling */
  text-decoration: none;
  color: inherit;

  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.page-endorsements a.endorsement-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
}

/* Keyboard accessibility */
.page-endorsements a.endorsement-card:focus-visible {
  outline: 3px solid rgba(0, 128, 55, 0.35); /* fallback if var not set */
  outline-offset: 4px;
}

/* Make the "Visit Website" line look like a link */
.page-endorsements .endorsement-card .link span {
  color: var(--primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Add external link arrow after "Visit Website" */
.page-endorsements .endorsement-card .link span::after {
  content: " ↗";
  font-size: 0.9em;
  opacity: 0;
  transition: opacity 0.15s ease;
}

/* Show the arrow on hover/focus by increasing opacity */
.page-endorsements a.endorsement-card:hover .link span::after,
.page-endorsements a.endorsement-card:focus-visible .link span::after {
  opacity: 0.8;
}

/* Logo frame */
/* Keep container invisible */
/* Do not add background or border to container, as it will interfere with cropping */
/* Do not add effects to container, as it will interfere with cropping */
.page-endorsements .endorsement-card .endorsement-icon {
  width: 160px;
  height: 110px;
  overflow: hidden;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* Specific endorsement icon adjustments */
.page-endorsements .endorsement-icon.movement-4-freedom img {
  width: 100%;
  height: 100%;

  object-fit: cover;      /* crops cleanly */
  border-radius: 16px;    /* shape control */

  display: block;
}

.page-endorsements .endorsement-icon.ilgp img {
	width: 95%; /* Scale down to fit otherwise image crops unintentionally */
	height: 95%; /* Scale down to fit otherwise image crops unintentionally */

	object-fit: contain; /* no cropping (image has whitespace) */

	display: block;
}

.page-endorsements .endorsement-icon.uhva img {
	width: 100%;
	height: 100%;

	object-fit: contain;      /* crops cleanly */

	display: block;
}

/* ===========================
	 Anti-Endorsements section
	 =========================== */
.page-endorsements .anti-endorsements {
	background: rgba(0, 128, 55, 0.75);
	padding: 2rem 1.5rem;
}

.page-endorsements .anti-endorsement-header {
	margin: 0 auto;
	max-width: 1100px;
	padding: 1.5rem;
	text-align: center;
}

.page-endorsements .anti-endorsement-header h2 {
	color: var(--accent);
	font-size: 2.5rem;
	font-weight: 800;
	margin-bottom: 0.5rem;
}

.page-endorsements .anti-endorsement-header p {
	font-size: 1.1rem;
	color: white;
	margin-top: 0;
}

.page-endorsements .anti-endorsement-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(260px, 320px));
	justify-content: center;
	gap: 1.2rem;
	margin-top: 1.2rem;
	align-self: start;
}

.page-endorsements .anti-endorsement-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;

	gap: 0.8rem;
}

.page-endorsements .anti-endorsement-icon {
	width: 200px;
	height: 200px;
	overflow: hidden;

	display: flex;
	align-items: center;
	justify-content: center;
}

.page-endorsements .anti-endorsement-icon img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.page-endorsements .anti-endorsement-card .title-container {
	font-size: 2rem;
	font-weight: 600;
	color: var(--accent);
}

.page-endorsements .anti-endorsement-card .description {
	font-size: 0.95rem;
	color: white;
	margin: 0;
}

@media (max-width: 900px) {
	.page-endorsements .anti-endorsement-cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.page-endorsements .anti-endorsement-cards {
		grid-template-columns: repeat(1, 1fr);
	}
}
/* ===========================
   ENDORSEMENTS: MOBILE OVERRIDES
   =========================== */

@media (max-width: 600px) {

  /* Scale down the oversized anti-endorsement heading */
  .page-endorsements .anti-endorsement-header h2 {
    font-size: 1.75rem;
  }

  /* Reduce anti-endorsement icon sizes */
  .page-endorsements .anti-endorsement-icon {
    width: 140px;
    height: 140px;
  }

  /* Tighten section padding */
  .page-endorsements .endorsement-inner {
    padding: 1rem;
  }

  .page-endorsements .anti-endorsements {
    padding: 1.5rem 1rem;
  }

  .page-endorsements .anti-endorsement-header {
    padding: 1rem;
  }
}
/* ============================================================
   ACCESSIBILITY: DARK MODE
   ============================================================ */

html.a11y-dark .page-endorsements a.endorsement-card {
  background: #242424;
  border-color: #444;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

html.a11y-dark .page-endorsements a.endorsement-card:hover {
  border-color: #4cc97a;
}

html.a11y-dark .page-endorsements .endorsement-card h4 {
  color: #4cc97a;
}

html.a11y-dark .page-endorsements .endorsement-card .link span {
  color: #4cc97a;
}

html.a11y-dark .page-endorsements .anti-endorsements {
  background: rgba(10, 28, 16, 0.97);
}

/* ============================================================
   ACCESSIBILITY: COMFORT MODE
   ============================================================ */

html.a11y-comfort .page-endorsements a.endorsement-card {
  background: #faf5ee;
  border-color: #e0d5c5;
}

html.a11y-comfort .page-endorsements a.endorsement-card:hover {
  border-color: var(--primary);
}

html.a11y-comfort .page-endorsements .anti-endorsements {
  background: rgba(55, 44, 28, 0.88);
}

/* ============================================================
   ACCESSIBILITY: HIGH CONTRAST
   ============================================================ */

html.a11y-highcontrast .page-endorsements a.endorsement-card {
  background: #ffffff;
  border: 2px solid #000000;
  box-shadow: none;
}

html.a11y-highcontrast .page-endorsements a.endorsement-card:hover {
  border-color: #000000;
  box-shadow: 0 0 0 3px #000000;
}

html.a11y-highcontrast .page-endorsements a.endorsement-card:focus-visible {
  outline: 3px solid #000000;
  outline-offset: 4px;
}

html.a11y-highcontrast .page-endorsements .endorsement-card .link span {
  color: #005a25;
  text-decoration: underline;
}

html.a11y-highcontrast .page-endorsements .anti-endorsements {
  background: #003d18;
}

html.a11y-highcontrast .page-endorsements .anti-endorsement-header h2 {
  color: #FFD700;
}

html.a11y-highcontrast .page-endorsements .anti-endorsement-header p {
  color: #ffffff;
}

html.a11y-highcontrast .page-endorsements .anti-endorsement-card .title-container {
  color: #FFD700;
}

html.a11y-highcontrast .page-endorsements .anti-endorsement-card .description {
  color: #ffffff;
}