/* ============================================
   UTILITY CLASSES
   ============================================ */

/* Colors */
.buzz-red {
  color: var(--buzz-red);
}

.buzz-middle-gray {
  color: var(--buzz-middle-gray);
}

.buzz-gray {
  color: var(--buzz-gray);
}

.bg-buzz-red {
  background-color: var(--buzz-red);
}

/* Widths */
.w-45 { width: 45%; }
.w-49 { width: 49%; }
.w-55 { width: 55%; }

/* Heights */
.min-h1 { min-height: 1rem; }
.min-h2 { min-height: 2rem; }
.min-h3 { min-height: 4rem; }
.min-h4 { min-height: 8rem; }
.min-h5 { min-height: 16rem; }

.vh-40 { height: 40vh; }
.vh-60 { height: 60vh; }

/* Typography Sizes */
.f1 { font-size: 64px; }
.f2 { font-size: 48px; }
.f3 { font-size: 34px; }
.f4 { font-size: 28px; }
.f5 { font-size: 21px; }
.f6 { font-size: 18px; }
.f7 { font-size: 16px; }

.mini {
  font-size: 14px;
}

.buzz-title {
  font-family: var(--font-buzz);
  font-size: 42px;
}

/* Hover Effects */
.hover-buzz-red {
  transition: var(--transition-fast);
}

.hover-buzz-red:hover,
.hover-buzz-red:focus {
  color: var(--buzz-red);
}

footer .hover-buzz-red:focus { 
  color: var(--black);
}

footer li .hover-buzz-red:focus {
  color: var(--gray);
}

footer .hover-bg-white:focus {
  background-color: #eee;
}

.hover-bg-buzz-red:hover,
.hover-bg-buzz-red:focus {
  background-color: var(--buzz-red);
}

.fh:hover { color: var(--buzz-red); }

.hover-shadow:hover {
  box-shadow: var(--shadow-xl);
  transition: var(--transition-base);
}

/* Toggle & Collapse Utilities */
.toggle-hidden-child.toggle-hidden .hidden-child,
.toggle-hidden-child .hidden-child-reverse {
  display: block;
}

.toggle-hidden-child .hidden-child,
.toggle-hidden-child.toggle-hidden .hidden-child-reverse {
  display: none;
}

.toggle-hidden-child .toggle-hidden-child.toggle-hidden .hidden-child,
.toggle-hidden-child .toggle-hidden-child .hidden-child-reverse {
  display: block;
}

.toggle-hidden-child .toggle-hidden-child .hidden-child,
.toggle-hidden-child .toggle-hidden-child.toggle-hidden .hidden-child-reverse {
  display: none;
}

.collapse-child .child {
  display: none;
}

.collapse-child:hover .child,
.collapse-child:focus .child,
.collapse-child:active .child {
  display: block;
}

/* Aspect Ratios */
.aspect-ratio--2x1 {
  padding-bottom: 66.66%;
}

/* Card Font Size Override */
.card {
  font-size: 72px;
}

.card.post-card,
.card.post-card * {
  font-size: inherit !important;
}

