.memo-number-hover,
.memo-box-hover,
.memo-cta-shadow,
.memo-cta-hover {
    transition: color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.memo-title-rule {
    border-bottom: 4px solid var(--bs-primary);
}

.memo-principle-rule {
    border-top: 2px solid rgba(var(--bs-emphasis-color-rgb), 0.2);
}

.memo-principle-group:hover .memo-number-hover {
    color: var(--bs-primary) !important;
}

.memo-principle-group:hover .memo-box-hover {
    border-top-color: rgba(var(--bs-primary-rgb), 0.4) !important;
}

.memo-cta-shadow {
    transform: translate(0.375rem, 0.375rem);
}

.memo-cta-group:hover .memo-cta-shadow {
    transform: translate(0, 0);
}

.memo-cta-hover:hover {
    background-color: var(--bs-primary, rgb(var(--tw-primary-600, 37 99 235) / 1)) !important;
    color: #fff !important;
    border-color: var(--bs-primary, rgb(var(--tw-primary-700, 29 78 216) / 1)) !important;
}

/* Grid + gap: @sem may obfuscate Tailwind grid/gap — stable class for Bootstrap */
.hover-principles-grid {
    display: grid;
    width: 100%;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 768px) {
    .hover-principles-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .hover-principles-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.philosophy-hover-badge {
    width: 3rem;
    height: 3rem;
}

.philosophy-hover-corner {
    width: 2rem;
    height: 2rem;
}

.philosophy-bg__img {
    object-fit: cover;
}

/* team v22 — grid with click-to-expand detail overlay */
.team-flipcard__card {
  cursor: pointer;
  height: 100%;
  min-height: 24rem;
}

.team-flipcard__card-face {
  position: relative;
  display: block;
  width: 100%;
  min-height: 24rem;
  height: 100%;
  overflow: hidden;
}

.team-flipcard__card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 200ms ease;
  z-index: 0;
}

.team-flipcard__card:hover .team-flipcard__card-img {
  transform: scale(1.08);
}

.team-flipcard__card-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  transition: opacity 200ms ease;
}

.team-flipcard__card:hover .team-flipcard__card-overlay {
  opacity: 0.75;
}

.team-flipcard__label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: 1.5rem;
  transition: opacity 200ms ease;
  pointer-events: none;
}

.team-flipcard__card:hover .team-flipcard__label {
  opacity: 0;
}

.team-flipcard__detail {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
}

.team-flipcard__detail.show {
  opacity: 1;
  pointer-events: auto;
}

.team-flipcard__detail-panel {
  width: 100%;
  max-height: 100%;
  overflow-y: auto;
}

.neon-circuit-timeline__circuit-bg {
    background-image:
        repeating-linear-gradient(0deg, transparent, transparent 39px, currentColor 39px, currentColor 40px),
        repeating-linear-gradient(90deg, transparent, transparent 39px, currentColor 39px, currentColor 40px);
}

@keyframes neon-circuit-timeline__glow-pulse {
    0%, 100% { box-shadow: 0 0 4px 2px currentColor, 0 0 12px 4px currentColor; opacity: 1; }
    50% { box-shadow: 0 0 8px 4px currentColor, 0 0 24px 8px currentColor; opacity: 0.7; }
}

.neon-circuit-timeline__node-glow {
    animation: neon-circuit-timeline__glow-pulse 2.5s ease-in-out infinite;
}

@keyframes neon-circuit-timeline__ring-expand {
    0%, 100% { transform: scale(1); opacity: 0.4; }
    50% { transform: scale(1.4); opacity: 0; }
}

.neon-circuit-timeline__ring {
    animation: neon-circuit-timeline__ring-expand 2.5s ease-in-out infinite;
}

.neon-circuit-timeline__decor-left {
    top: 50%;
    left: 25%;
    transform: translateY(-50%);
    width: 16rem;
    height: 16rem;
}

.neon-circuit-timeline__decor-right {
    top: 50%;
    right: 25%;
    transform: translateY(-50%);
    width: 16rem;
    height: 16rem;
}

.neon-circuit-timeline__accent-line {
    height: 5rem;
    width: 1px;
}

.neon-circuit-timeline__node-wrap {
    z-index: 10;
}

.neon-circuit-timeline__node {
    width: 1rem;
    height: 1rem;
}

.neon-circuit-timeline__ring-size {
    width: 2rem;
    height: 2rem;
}

.neon-circuit-timeline__card-width {
    max-width: 11rem;
}

@media (min-width: 768px) {
    .neon-circuit-timeline__item--upper .neon-circuit-timeline__box,
    .neon-circuit-timeline__accent-line--first {
        order: -1;
    }

    .neon-circuit-timeline__item--lower .neon-circuit-timeline__box,
    .neon-circuit-timeline__accent-line--last {
        order: 1;
    }
}

