.top-section-grid {
    display: grid;
    grid-template-columns: clamp(75px, 22vw, 300px) 1fr clamp(75px, 22vw, 300px);
    align-items: start;
    max-width: 100%;
    width: 100%;
    gap: 2vw;
    box-sizing: border-box;
}

.icon-stack {
    display: flex;
    flex-direction: column;
    gap: 2vw;
	width: 100%;
}

.align-left {
    align-items: flex-start;
}

.align-right {
    align-items: flex-end;
}

.icon-row-link {
    display: grid;
    grid-template-rows: auto auto;
    text-decoration: none;
    color: inherit;
	column-gap: 1vw;
}

.icon-row-link:hover {
    background: #333;
    cursor: pointer;
}

.icon-cell {
    display: flex;
    justify-content: center;
    align-items: center;
}

.icon-img {
    width: max(4vw, 24px);
    height: auto;
    object-fit: contain;
    display: block;
}

.icon-row-left {
    grid-template-columns: max-content 1fr;
    grid-template-areas:
        "icon top"
        "icon bottom";
}

.icon-row-left .icon-cell {
    grid-area: icon;
}

.top-cell {
	font-size: clamp(8px, 1.75vw, 16px);
    grid-area: top;
	align-self: end;
	font-weight: bold;
}

.bottom-cell {
	font-size: clamp(6px, 1.25vw, 12px);
    grid-area: bottom;
	align-self: center;
}

.icon-row-left .top-cell {
    grid-area: top;
    text-align: left;
}

.icon-row-left .bottom-cell {
    grid-area: bottom;
    text-align: left;
}

.icon-row-right {
    grid-template-columns: 1fr max-content;
    grid-template-areas:
        "top icon"
        "bottom icon";
}

.icon-row-right .icon-cell {
    grid-area: icon;
}

.icon-row-right .top-cell {
    grid-area: top;
    text-align: right;
}

.icon-row-right .bottom-cell {
    grid-area: bottom;
    text-align: right;
}

.bottom-cell,
.top-cell {
	white-space: nowrap;
	max-width: 100%;
}

.main-label {
    font-size: max(1.25vw, 0.75rem);
    font-weight: bold;
}

.sub-label {
    font-size: max(1vw, 0.75rem);
    opacity: 0.8;
}

.logo-container {
    display: flex;
    justify-content: center;
    width: 100%;
}

.logo-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
}

.logo-img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

.tagline {
    font-size: 2.5vw;
    font-weight: bold;
    margin-top: 0.5vw;
    margin-bottom: 0;
    color: #f5f5f5;
    text-align: center;
}


/* Menu */
.main-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    padding: 1vw;
    box-sizing: border-box;
}

.main-menu a {
    text-decoration: none;
    font-weight: bold;
    padding-top: clamp(0.3em, 1vw, 0.6em);
    padding-bottom: clamp(0.3em, 1vw, 0.6em);
    padding-left: clamp(0.5em, 2vw, 1em);
    padding-right: clamp(0.5em, 2vw, 1em);
    color: gold;
    text-shadow:
        1px 1px 0 #aa8800,
        2px 2px 1px #444,
        0 0 5px #ffcc00;
    transition: transform 0.2s ease;
}

.main-menu a h2 {
    font-size: 2.25vw;
	margin: 0;
}

.main-menu a:hover {
    transform: scale(1.05);
    text-shadow:
        1px 1px 0 #ffcc00,
        2px 2px 2px #666,
        0 0 8px #ffd700;
	outline: 2px solid gold;
	border-radius: 4px;
}


@keyframes shimmer {
    {
        background-position: 200% center;
    }
    100% {
        background-position: -200% center;
    }
}





/*********************************/
/****** Light sweep overlay ******/
/*********************************/
.logo-sweep-wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: -50%;
  width: 20%;
  height: 100%;
  background: linear-gradient(
    135deg, /* 👈 Diagonal angle */
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.75) 44%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: skewX(-20deg); /* 👈 Slants the sweep */
  filter: blur(3px) brightness(1.4);
  animation: logoSweep 2.5s ease-in-out forwards;
  pointer-events: none;
  z-index: 2;
  opacity: 0;
}

@keyframes logoSweep {
  0% {
    left: -40%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    left: 100%;
    opacity: 0;
  }
}

.logo-sweep-wrapper {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
