/* ==========================================================================
   360Bounce — responsive layer (desktop-first refinements)
   ========================================================================== */

@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
  .principle-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .principle-list li:nth-child(3) { padding-left: 0; border-left: 0; }
  .principle-list li:nth-child(n + 3) { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--color-border); }
  .dim-rail a em { display: none; }
}

@media (max-width: 900px) {
  :root { --header-h: 64px; }

  .hero-bottom { grid-template-columns: 1fr; align-items: start; }
  .scroll-cue { display: none; }
  .hero-top p:nth-child(2) { display: none; }

  /* dimensions become stacked chapters; the 3D stage sits behind */
  .dim { grid-template-columns: minmax(0, 1fr); align-content: center; row-gap: 32px; min-height: auto; padding-block: 120px 96px; }
  .dim--left .dim-inner, .dim--right .dim-inner { grid-column: 1; grid-row: 2; }
  .dim--left .dim-art, .dim--right .dim-art { grid-column: 1; grid-row: 1; max-width: 340px; width: 70%; justify-self: center; opacity: 0.85; }
  .dim-inner::before { display: none; }
  .dim-inner { padding: 22px; margin-inline: -6px; background: rgba(255, 255, 255, 0.92); border: 1px solid var(--color-border); box-shadow: var(--shadow-soft); }
  .dim-rail { display: none; }
  .kinetic { position: relative; grid-row: 3; bottom: auto; margin-inline: calc(var(--gutter) * -1); }
  .finale { min-height: 90vh; }

  .about-grid, .editorial-grid { grid-template-columns: 1fr; }
  .flow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow-item:nth-child(3) { padding-left: 0; border-left: 0; }
  .flow-item:nth-child(n + 3) { margin-top: 28px; border-top: 1px solid var(--color-border); }

  .projects { grid-template-columns: 1fr; }
  .project, .project--wide { grid-column: 1; }
  .project--offset { margin-top: 0; }
  .project--wide .project-media { aspect-ratio: 16 / 10; }

  .why-row { grid-template-columns: 48px minmax(0, 1fr); }
  .why-desc { grid-column: 2; }

  .contact { grid-template-columns: 1fr; }
  .contact-ring { display: none; }

  .page-hero--split { grid-template-columns: 1fr; }
  .page-hero--split .scene--contained { min-height: 46vh; order: -1; margin-top: 8px; }

  .svc { grid-template-columns: 1fr; min-height: auto; }
  .svc-head, .svc-body, .svc.dim--right .svc-head, .svc.dim--right .svc-body { grid-column: 1; grid-row: auto; }

  .orbit-section { grid-template-columns: 1fr; }
  .orbit-visual { order: -1; max-width: 420px; width: 100%; justify-self: center; }

  .case, .case--flip { grid-template-columns: 1fr; }
  .case-media, .case-info, .case--flip .case-media, .case--flip .case-info { grid-column: 1; grid-row: auto; }
}

@media (max-width: 640px) {
  .hero-title { font-size: clamp(2.25rem, 10.5vw, 2.75rem); }
  .line--indent { padding-left: 0.4em; }
  .hero-top { font-size: 0.65rem; }
  .hero-top p:last-child { display: none; }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .page-title { font-size: clamp(2.25rem, 10.5vw, 2.75rem); }

  .dim-services { grid-template-columns: 1fr; }
  .dim-services li:nth-child(odd) { padding-right: 0; }
  .dim-label { display: none; }
  .kinetic-row { font-size: clamp(1.75rem, 8vw, 2.5rem); }

  .flow-list { grid-template-columns: 1fr; }
  .flow-item + .flow-item { padding-left: 0; border-left: 0; margin-top: 0; border-top: 1px solid var(--color-border); padding-top: 20px; }
  .flow-item { padding-bottom: 20px; }

  .contact-form { grid-template-columns: 1fr; }
  .form-foot { flex-direction: column; align-items: stretch; }
  .form-foot .btn { justify-content: center; }

  .cap-list > div { grid-template-columns: 1fr; gap: 4px; }
  .principle-list { grid-template-columns: 1fr; }
  .principle-list li, .principle-list li + li { padding-left: 0; border-left: 0; }
  .principle-list li + li { margin-top: 0; padding-top: 24px; border-top: 1px solid var(--color-border); }
  .principle-list li { padding-bottom: 24px; }

  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
}

/* touch devices: no hover-only affordances */
@media (hover: none) {
  .project-link:hover .project-media { clip-path: inset(0 0 0 0); }
  .why-row::before { display: none; }
  .why-row:hover .why-num, .why-row:focus-visible .why-num { color: var(--color-black); }
  .why-row:hover .why-name, .why-row:hover .why-desc, .why-row:focus-visible .why-name { color: inherit; }
  .why-row:hover .why-desc, .why-row:focus-visible .why-desc { color: var(--color-text-secondary); }
}

/* very large screens: keep line lengths sensible */
@media (min-width: 1800px) {
  :root { --gutter: 96px; }
}

/* print */
@media print {
  .scene, .grain, .cursor, .preloader, .page-wipe, .site-header, .dim-rail, .kinetic { display: none !important; }
  body { background: #fff; color: #080808; }
  .line-i, .w-i, .ch { transform: none !important; opacity: 1 !important; }
}

/* ==========================================================================
   Multi-page components (header, cards, service pages, insights …)
   ========================================================================== */
@media (max-width: 1320px) {
  .mega-inner { grid-template-columns: 1fr; }
  .mega-intro { grid-template-columns: 1fr auto; align-items: center; border-right: 0; border-bottom: 1px solid var(--color-border); padding: 0 0 18px; }
  .mega-intro .meta { grid-column: 1 / -1; }
}
@media (max-width: 1180px) {
  .primary-nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .header-inner { grid-template-columns: auto 1fr; }
  .mega { display: none; }
  .svc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strategy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1181px) {
  .site-menu { display: none !important; }
}
@media (max-width: 1000px) {
  .article-grid, .usecase-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .combo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline { grid-template-columns: 1fr; padding-top: 0; padding-left: 36px; gap: 26px; }
  .timeline::before { left: 7px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .timeline-step::before { top: 4px; left: -36px; }
}
@media (max-width: 900px) {
  :root { --header-h: 80px; --header-h-scrolled: 74px; --header-inset: 8px; --header-x: 8px; }
  .section-head--split { grid-template-columns: 1fr; }
  .faq-layout, .arch-grid, .two-up, .case-body, .article-layout, .vm-grid, .split-cta { grid-template-columns: 1fr; }
  .case-aside, .article-aside { position: static; }
  .svc-hero { grid-template-columns: 1fr; min-height: auto; padding-top: calc(var(--header-h) + 24px); }
  .scene--svc { min-height: 44vh; order: 2; }
  .svc-row { grid-template-columns: 1fr; gap: 16px; }
  .svc-row-head { grid-template-columns: auto auto; justify-content: start; align-items: center; gap: 18px; }
  .process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-step:nth-child(3) { padding-left: 0; border-left: 0; }
  .process-step:nth-child(n + 3) { margin-top: 24px; border-top: 1px solid var(--color-border); }
  .models, .challenge-list, .why-grid, .ai-pillars { grid-template-columns: 1fr; }
  .why-grid li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--color-border); margin-top: 0; }
  .why-grid li { padding-bottom: 24px; }
  .industry { grid-template-columns: 1fr; gap: 16px; }
  .projects--index .project, .projects--index .project--wide, .projects--compact .project { grid-column: 1 / -1; }
  .article-card--featured .article-card-link { grid-template-columns: 1fr; }
  .article-card--featured .article-card-title { grid-row: auto; }
  .contact--page { grid-template-columns: 1fr; }
  .case-media-wide { aspect-ratio: 16 / 10; }
  .cta-band-art { opacity: 0.5; }
}
@media (max-width: 640px) {
  .svc-cards, .article-grid, .usecase-grid, .combo-grid, .cap-grid, .cap-grid--3, .process { grid-template-columns: 1fr; }
  .process-step, .process-step + .process-step { padding-left: 0; border-left: 0; }
  .process-step + .process-step { margin-top: 0; border-top: 1px solid var(--color-border); }
  .process-step { padding-bottom: 20px; }
  .strategy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-group { grid-template-columns: 1fr; }
  .steps-vertical li { grid-template-columns: 1fr; gap: 8px; }
  .model dl div { grid-template-columns: 1fr; gap: 2px; }
  .header-cta { display: none; }
  .search-form { flex-basis: 100%; max-width: none; }
  .breadcrumbs [aria-current="page"] { max-width: 22ch; }
  .page-title--case { font-size: clamp(2.25rem, 10.5vw, 2.75rem); }
  .faq-a { padding-right: 0; }
}
@media (max-width: 380px) {
  .brand-logo--header, .site-header.is-scrolled .brand-logo--header { height: 30px; }
  .header-cta.btn { display: none; }
  .menu-toggle-label { display: none; }
}

/* small phones (≤ 400 px): long button labels wrap inside the pill instead of running off-screen */
@media (max-width: 400px) {
  .btn { white-space: normal; text-align: center; justify-content: center; max-width: 100%; line-height: 1.35; }
  .btn--large { padding-inline: 1.4em; }
}
