/* ===== CV BMA — Responsive ===== */

/* ===== Tablet (max-width: 1024px) ===== */
@media (max-width: 1024px) {
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 44px;
  }
  .hero-visual {
    order: -1;
    max-width: 460px;
    margin: 0 auto;
  }
  .hero-content {
    text-align: left;
  }
  .hero-description {
    max-width: 100%;
  }

  .about-short-grid,
  .about-detail-grid,
  .portfolio-detail-grid {
    grid-template-columns: 1fr;
    text-align: left;
  }
  .doc-frame {
    max-width: 380px;
  }

  .portfolio-grid,
  .services-grid,
  .articles-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }

  .vision-mission-grid,
  .identity-grid {
    grid-template-columns: 1fr;
  }
  .identity-item {
    flex-direction: column;
    gap: 4px;
    border-right: none;
  }
  .identity-value {
    text-align: left;
  }

  .service-card p {
    min-height: 0;
  }
}

/* ===== Mobile (max-width: 768px) ===== */
@media (max-width: 768px) {
  .navbar-toggle {
    display: flex !important;
  }

  /* backdrop-filter on an ancestor creates a containing block for
     fixed-position descendants, which was clipping the full-screen
     menu to the navbar's own (small) box. Drop it while the menu is open. */
  body.menu-open .navbar {
    backdrop-filter: none !important;
    background: var(--concrete) !important;
  }

  .navbar-menu {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    background: var(--ink) !important;
    background-image:
      linear-gradient(var(--cyan-a) 1px, transparent 1px),
      linear-gradient(90deg, var(--cyan-a) 1px, transparent 1px) !important;
    background-size: 40px 40px !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: center !important;
    padding: 32px !important;
    gap: 4px !important;
    transform: translateX(100%) !important;
    transition:
      transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
      visibility 0.4s !important;
    z-index: 1200 !important;
    overflow-y: auto !important;
    visibility: hidden !important;
  }
  .navbar-menu.active {
    transform: translateX(0) !important;
    visibility: visible !important;
  }

  .navbar-menu li {
    width: 100%;
    opacity: 0;
    transform: translateY(16px);
    transition: all 0.3s ease;
    border-bottom: 1px solid var(--line-dark);
  }
  .navbar-menu.active li {
    opacity: 1;
    transform: translateY(0);
  }
  .navbar-menu.active li:nth-child(1) {
    transition-delay: 0.05s;
  }
  .navbar-menu.active li:nth-child(2) {
    transition-delay: 0.1s;
  }
  .navbar-menu.active li:nth-child(3) {
    transition-delay: 0.15s;
  }
  .navbar-menu.active li:nth-child(4) {
    transition-delay: 0.2s;
  }
  .navbar-menu.active li:nth-child(5) {
    transition-delay: 0.25s;
  }
  .navbar-menu.active li:nth-child(6) {
    transition-delay: 0.3s;
  }

  .navbar-menu li a {
    padding: 18px 4px !important;
    width: 100% !important;
    font-size: 20px !important;
    font-family: var(--font-display) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
    color: var(--text-on-dark) !important;
  }
  .navbar-menu li a.active {
    color: var(--signal) !important;
  }
  .navbar-menu li .btn-consult {
    margin-top: 16px !important;
    width: 100% !important;
    justify-content: center !important;
    padding: 16px !important;
    font-size: 15px !important;
  }

  body.menu-open {
    overflow: hidden !important;
  }

  .hero {
    min-height: auto !important;
    padding: 118px 0 60px !important;
  }
  .hero-title {
    font-size: 32px !important;
  }
  .hero-stats {
    flex-wrap: wrap;
    gap: 16px 0;
  }
  .stat-item {
    flex: 1 1 33%;
    border-right: none !important;
    padding-right: 0 !important;
  }

  .hero-buttons {
    flex-direction: column;
    align-items: stretch;
  }
  .hero-buttons .btn {
    width: 100%;
    justify-content: center;
  }

  .portfolio-grid,
  .services-grid,
  .articles-grid {
    grid-template-columns: 1fr !important;
  }
  .services-grid {
    border: none;
    gap: 1px;
  }

  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .footer-bottom {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  .about-features {
    grid-template-columns: 1fr 1fr !important;
  }

  .cta-buttons {
    flex-direction: column;
    align-items: stretch;
  }
  .cta-buttons .btn {
    width: 100%;
    justify-content: center;
  }

  .section-title {
    font-size: 28px !important;
  }

  .help-popup {
    width: 90vw !important;
    right: -14px !important;
  }

  .page-hero {
    padding: 118px 0 44px !important;
  }
}

/* ===== Small mobile (max-width: 480px) ===== */
@media (max-width: 480px) {
  .container {
    padding: 0 18px !important;
  }
  .hero-title {
    font-size: 27px !important;
  }
  .section-title {
    font-size: 24px !important;
  }
  .stat-number {
    font-size: 21px !important;
  }
  .about-features {
    grid-template-columns: 1fr !important;
  }
  .portfolio-image {
    height: 190px !important;
  }
  .service-card {
    padding: 30px 22px !important;
  }
  .identity-doc-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .navbar-brand-text {
    font-size: 18px !important;
  }
  .navbar-logo {
    height: 30px !important;
  }
  .page-hero-content h1 {
    font-size: 27px !important;
  }
  .help-popup {
    bottom: 74px !important;
  }
}
