/* ==========================================================================
   Responsive Styles – Dark Theme
   ==========================================================================
   Breakpoints:
     - 768px  → Tablet and below
     - 480px  → Small mobile
   All design tokens reference CSS custom properties (var(--name)).
   ========================================================================== */


/* ==========================================================================
   Tablet & Below (max-width: 768px)
   ========================================================================== */

@media (max-width: 768px) {

  /* -- Mobile Navigation ------------------------------------------------- */

  .nav__toggle {
    display: flex;
  }

  .nav__menu {
    position: fixed;
    top: var(--nav-height);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-2xl);
    transform: translateX(100%);
    transition: transform var(--transition-base),
                opacity var(--transition-base),
                visibility var(--transition-base);
    opacity: 0;
    visibility: hidden;
  }

  .nav__menu.is-open {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
  }

  .nav__menu .nav__link {
    font-size: var(--font-size-xl);
  }

  /* -- Sections ---------------------------------------------------------- */

  .section {
    padding: var(--space-4xl) 0;
  }

  .section__title {
    font-size: var(--font-size-2xl);
  }

  /* -- Hero -------------------------------------------------------------- */

  .hero {
    min-height: auto;
    padding-top: calc(var(--nav-height) + var(--space-3xl));
    padding-bottom: var(--space-3xl);
  }

  .hero__layout {
    flex-direction: column-reverse;
    text-align: center;
    gap: var(--space-2xl);
  }

  .hero__content {
    max-width: 100%;
  }

  .hero__description {
    max-width: 100%;
  }

  .hero__cta {
    justify-content: center;
  }

  .hero__img {
    width: 200px;
    height: 200px;
  }

  .hero__name {
    font-size: var(--font-size-4xl);
  }

  .hero__tagline {
    font-size: var(--font-size-lg);
  }

  /* -- Stats ------------------------------------------------------------- */

  .stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-xl);
  }

  .stat__number {
    font-size: var(--font-size-3xl);
  }

  /* -- Card Grids (single column) ---------------------------------------- */

  .card-grid,
  .tools__grid,
  .principles,
  .blog__grid,
  .videos__grid,
  .ideas__grid {
    grid-template-columns: 1fr;
  }

  /* -- Timeline ---------------------------------------------------------- */

  .timeline {
    padding-left: 1.5rem;
  }

  .timeline__item {
    padding-left: var(--space-lg);
    padding-bottom: var(--space-2xl);
  }

  .timeline__marker {
    left: calc(-1.5rem - 5px);
  }

  .timeline__title {
    font-size: var(--font-size-lg);
  }

  .timeline__text {
    font-size: var(--font-size-sm);
  }

  /* -- Contact ----------------------------------------------------------- */

  .contact__links {
    flex-direction: column;
  }

  .contact__link {
    width: 100%;
  }
}


/* ==========================================================================
   Small Mobile (max-width: 480px)
   ========================================================================== */

@media (max-width: 480px) {

  .hero__name {
    font-size: var(--font-size-3xl);
  }

  .hero__img {
    width: 160px;
    height: 160px;
  }

  .hero__cta {
    flex-direction: column;
    width: 100%;
  }

  .btn {
    width: 100%;
    justify-content: center;
  }

  .card,
  .principle,
  .blog-card,
  .idea-card {
    padding: var(--space-lg);
  }

  .stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
  }

  .stat__number {
    font-size: var(--font-size-2xl);
  }

  .timeline {
    padding-left: 1.25rem;
  }

  .timeline__item {
    padding-left: var(--space-md);
  }

  .timeline__marker {
    left: calc(-1.25rem - 5px);
    width: 10px;
    height: 10px;
  }
}


/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {

  .nav,
  .nav__toggle,
  .nav__menu {
    display: none !important;
  }

  .section {
    display: block !important;
    visibility: visible !important;
    page-break-inside: avoid;
  }

  * {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }

  body {
    color: #000;
    background: #fff;
  }

  a {
    text-decoration: underline;
  }

  .gradient-text {
    -webkit-text-fill-color: #000;
    background: none;
  }
}


/* ==========================================================================
   Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
