/* ============================================
   DAGDA TEMPLATE - Offcanvas
   Menu mobile responsive
   ============================================ */

@layer components {
  /* Overlay */
  .offcanvas-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
    z-index: 200;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-base);
    
    &.active {
      opacity: 1;
      pointer-events: auto;
    }
  }
  
  /* Offcanvas panel */
  .offcanvas {
    position: fixed;
    top: 0;
    right: 0;
    width: 320px;
    height: 100vh;
    z-index: 201;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    overflow-y: auto;
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.5);
    
    /* Overlay léger pour lisibilité */
    &::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, rgba(15, 15, 15, 0.3) 0%, rgba(15, 15, 15, 0.2) 100%);
      pointer-events: none;
      z-index: -1;
    }
    
    &.active {
      transform: translateX(0);
    }
    
    /* Header offcanvas */
    .offcanvas-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: var(--space-lg);
      border-bottom: 1px solid rgba(74, 159, 181, 0.2);
      backdrop-filter: blur(8px);
      background: rgba(26, 26, 26, 0.5);
      
      h3 {
        margin: 0;
        font-size: var(--text-lg);
        color: var(--text-primary);
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
      }
    }
    
    /* Bouton fermer */
    .btn-close {
      width: 36px;
      height: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: var(--radius-sm);
      background: rgba(26, 26, 26, 0.6);
      border: 1px solid rgba(74, 159, 181, 0.2);
      color: var(--text-secondary);
      font-size: 1.75rem;
      font-weight: 300;
      cursor: pointer;
      transition: all var(--transition-fast);
      
      &:hover {
        background: var(--prim-glow);
        border-color: var(--prim-bright);
        color: var(--prim-bright);
        transform: rotate(90deg);
      }
    }
    
    /* Body offcanvas */
    .offcanvas-body {
      padding: var(--space-lg);
      display: flex;
      flex-direction: column;
      gap: var(--space-lg);
    }
    
    /* Animation cartes - apparaissent de la droite avec retard */
    .offcanvas-body > * {
      opacity: 0;
      transform: translateX(30px);
      transition: opacity 0.4s ease-out, transform 0.4s ease-out;
    }
    
    &.active .offcanvas-body > * {
      opacity: 1;
      transform: translateX(0);
    }
    
    /* Retards progressifs pour chaque carte */
    &.active .offcanvas-body > *:nth-child(1) {
      transition-delay: 0.4s;
    }
    
    &.active .offcanvas-body > *:nth-child(2) {
      transition-delay: 0.5s;
    }
    
    &.active .offcanvas-body > *:nth-child(3) {
      transition-delay: 0.6s;
    }
  }
  
  /* Responsive - Affichage btn-menu */
  @media (max-width: 768px) {
    .btn-menu {
      display: flex;
    }
  }
}