/* AFA IPSI - Brand Design System */

/* ---- Geist Sans (self-hosted, variable font) ---- */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/geist-latin-ext-3kGijE-.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                 U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
                 U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/geist-latin-911Pt7A.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
                 U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---- PlusGrid decorative borders ---- */
.plus-grid-row {
  position: relative;
  isolation: isolate;
  padding-top: calc(0.5rem + 1px);
}
.plus-grid-row:last-child {
  padding-bottom: calc(0.5rem + 1px);
}
.plus-grid-row::before,
.plus-grid-row::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  height: 0;
  border-top: 1px solid rgba(0,0,0,0.05);
  pointer-events: none;
  z-index: -1;
}
.plus-grid-row::before { top: 0; }
.plus-grid-row::after { top: 0.5rem; }
.plus-grid-row:last-child .plus-grid-border-bottom::before,
.plus-grid-row:last-child .plus-grid-border-bottom::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  height: 0;
  border-bottom: 1px solid rgba(0,0,0,0.05);
  pointer-events: none;
}
.plus-grid-row:last-child .plus-grid-border-bottom::before { bottom: 0; }
.plus-grid-row:last-child .plus-grid-border-bottom::after { bottom: 0.5rem; }

/* Plus icon at grid intersections */
.plus-icon {
  position: absolute;
  width: 15px;
  height: 15px;
  fill: rgba(0,0,0,0.1);
}
.plus-icon--tl { top: -0.5rem; left: -0.5rem; }
.plus-icon--tr { top: -0.5rem; right: -0.5rem; }
.plus-icon--bl { bottom: -0.5rem; left: -0.5rem; }
.plus-icon--br { bottom: -0.5rem; right: -0.5rem; }

/* ---- AFA Brand Gradient ---- */
/* Colors: #ead664 (yellow) → #a890bc (lavender) → #2d8c99 (teal) */
.radiant-gradient {
  background: linear-gradient(115deg, #ead664 20%, #a890bc 65%, #2d8c99);
}
@media (min-width: 640px) {
  .radiant-gradient {
    background: linear-gradient(145deg, #ead664 20%, #a890bc 65%, #2d8c99);
  }
}

.radiant-gradient-blur {
  background: linear-gradient(115deg, #ead664 20%, #a890bc 65%, #2d8c99);
  filter: blur(48px);
  border-radius: 9999px;
  transform: rotate(-10deg);
}

/* ---- Bento card hover effect ---- */
.bento-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.bento-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
}

/* ---- Mobile menu animation ---- */
.mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
  opacity: 0;
}
.mobile-menu.open {
  max-height: 400px;
  opacity: 1;
}

/* ---- Smooth scroll ---- */
html {
  scroll-behavior: smooth;
}

/* ---- Tag badges ---- */
.tag-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.25rem;
}
