/* ==========================================================================
   SNK Contracting, LLC — Responsive rules (every @media query lives here)
   1280 · 1100 (mobile navigation) · 900 · 700 · 480 · hover:none · reduced motion
   ========================================================================== */

/* ---------- ≤ 1280px ---------------------------------------------------------- */
@media (max-width: 1280px) {
  .snk-footer__grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.75fr) minmax(0, 1fr) minmax(0, 1.2fr);
  }
}

/* ---------- ≤ 1100px: off-canvas navigation, stacked hero ------------------------ */
@media (max-width: 1100px) {
  .snk-burger {
    display: block;
  }

  .snk-nav {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: -1;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    width: min(420px, 100%);
    height: 100vh;
    height: 100dvh;
    padding: calc(var(--snk-nav-h) + 1.25rem) var(--snk-gutter) 2rem;
    overflow-y: auto;
    background: var(--snk-band-deep);
    box-shadow: var(--snk-shadow-lg);
    visibility: hidden;
    transform: translateX(100%);
    transition: transform 0.5s var(--snk-ease-out), visibility 0s linear 0.5s;
  }

  .snk-nav.is-open {
    visibility: visible;
    transform: none;
    transition: transform 0.5s var(--snk-ease-out), visibility 0s;
  }

  .snk-nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .snk-nav__list li {
    border-bottom: 1px solid var(--snk-band-line);
  }

  .snk-nav__link {
    display: flex;
    padding-block: 1.05rem;
    font-size: 1.45rem;
    font-weight: var(--snk-fw-bold);
    color: var(--snk-band-t1);
    opacity: 0;
    transform: translateX(28px);
    transition: opacity 0.5s var(--snk-ease-out), transform 0.5s var(--snk-ease-out), color var(--snk-duration) var(--snk-ease);
  }

  .snk-nav__link::after {
    display: none;
  }

  .snk-nav__link.is-active,
  .snk-nav__link:hover {
    color: var(--snk-orange);
  }

  .snk-nav.is-open .snk-nav__link {
    opacity: 1;
    transform: none;
  }

  .snk-nav.is-open li:nth-child(2) .snk-nav__link { transition-delay: 0.05s; }
  .snk-nav.is-open li:nth-child(3) .snk-nav__link { transition-delay: 0.1s; }
  .snk-nav.is-open li:nth-child(4) .snk-nav__link { transition-delay: 0.15s; }
  .snk-nav.is-open li:nth-child(5) .snk-nav__link { transition-delay: 0.2s; }

  .snk-nav__extra {
    display: grid;
    justify-items: start;
    gap: 0.7rem;
    margin-top: auto;
    --snk-t3: var(--snk-band-t3);
  }

  .snk-nav__extra .snk-btn {
    margin-top: 0.75rem;
  }

  .snk-hero {
    padding-bottom: 0;
  }

  .snk-hero__inner {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding-top: calc(var(--snk-nav-h) + clamp(2.5rem, 1rem + 5vw, 4.5rem));
    padding-bottom: 0;
  }

  .snk-hero__content {
    max-width: 720px;
  }

  .snk-hero__gallery {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    width: auto;
    height: clamp(380px, 52vw, 540px);
    margin: 0 calc(-1 * var(--snk-gutter));
    padding-inline: var(--snk-gutter);
  }

  .snk-about__grid,
  .snk-process__grid,
  .snk-testimonials__grid,
  .snk-contact-cta__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-about__media,
  .snk-process__media {
    max-width: 680px;
  }

  .snk-projects__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: clamp(220px, 30vw, 320px);
  }

  .snk-why__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .snk-footer__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .snk-footer__brand {
    grid-column: 1 / -1;
  }

  .snk-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---------- ≤ 900px ------------------------------------------------------------- */
@media (max-width: 900px) {
  .snk-section-header--split {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--snk-sp-lg);
    align-items: start;
  }

  .snk-band__inner {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* Services explorer: tabs become a scrollable pill row above the stage */
  .snk-explorer {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }

  .snk-explorer__list {
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 0.5rem;
    margin-inline: calc(-1 * var(--snk-gutter));
    padding: 0.25rem var(--snk-gutter) 0.5rem;
    overflow-x: auto;
    border-top: 0;
    scrollbar-width: none;
    scroll-padding-inline: var(--snk-gutter);
  }

  .snk-explorer__list::-webkit-scrollbar {
    display: none;
  }

  .snk-explorer__tab,
  .snk-explorer__tab.is-active {
    grid-template-columns: auto auto;
    gap: 0.5rem;
    padding: 0.7rem 1.1rem;
    border: 1px solid var(--snk-line-strong);
    border-radius: var(--snk-r-full);
  }

  .snk-explorer__tab.is-active {
    border-color: var(--snk-orange);
    background: var(--snk-orange);
    color: var(--snk-navy);
  }

  .snk-explorer__tab::after,
  .snk-explorer__arrow {
    display: none;
  }

  .snk-explorer__name {
    font-size: 0.9375rem;
    white-space: nowrap;
  }

  .snk-explorer__figure {
    aspect-ratio: 4 / 3.4;
  }

  .snk-explorer__card {
    position: relative;
    inset: auto;
    max-width: none;
    margin: -3.5rem 1rem 0;
  }

  .snk-quote {
    min-height: 0;
  }
}

/* ---------- ≤ 700px ------------------------------------------------------------- */
@media (max-width: 700px) {
  :root {
    --snk-nav-h: 76px;
    --snk-nav-h-scrolled: 68px;
    --snk-logo-w: 118px;
    --snk-logo-w-scrolled: 108px;
    --snk-fs-body: 1rem;
  }

  .snk-header__cta {
    display: none;
  }

  .snk-header__actions {
    gap: 0.6rem;
  }

  .snk-hero__trust {
    flex-direction: column;
    gap: 0.7rem;
  }

  .snk-hero__gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    height: 380px;
    gap: 0.75rem;
  }

  .snk-hero__col--slow {
    display: none;
  }

  .snk-hero__track {
    gap: 0.75rem;
    padding-bottom: 0.75rem;
  }

  .snk-grid--2,
  .snk-grid--3,
  .snk-grid--4,
  .snk-why__grid,
  .snk-form__row {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-about__media {
    padding-right: 8%;
    padding-bottom: 22%;
  }

  .snk-about__img--inset {
    width: 46%;
    border-width: 6px;
  }

  .snk-about__badge {
    left: auto;
    right: 0;
    bottom: auto;
    top: -1.5rem;
  }

  .snk-about__stats {
    gap: 1.75rem 1.25rem;
  }

  .snk-projects__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: 300px;
  }

  .snk-project--wide {
    grid-column: auto;
  }

  .snk-project--tall {
    grid-row: span 1;
  }

  .snk-process__step {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .snk-process__num {
    display: none;
  }

  .snk-process__media {
    padding-right: 0;
  }

  .snk-process__badge {
    top: -1.75rem;
    right: 1rem;
  }

  .snk-quote {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-quote__media {
    min-height: 220px;
  }

  .snk-footer__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .snk-footer__col:last-child {
    grid-column: 1 / -1;
  }

  .snk-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ---------- ≤ 480px ------------------------------------------------------------- */
@media (max-width: 480px) {
  .snk-hero__actions .snk-btn,
  .snk-form__footer .snk-btn {
    flex: 1 1 100%;
  }

  .snk-footer__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-contact-cta__item {
    align-items: flex-start;
  }

  .snk-contact-cta__value {
    font-size: 1rem;
    overflow-wrap: anywhere;
  }
}

/* ---------- Inner pages ------------------------------------------------------------------ */
@media (max-width: 1100px) {
  .snk-values__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .snk-values__item:nth-child(2n) {
    border-right: 0;
  }

  .snk-values__item:nth-child(-n + 2) {
    border-bottom: 1px solid var(--snk-line-strong);
  }
}

@media (max-width: 900px) {
  .snk-story__row,
  .snk-story__row--reverse {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-story__row--reverse .snk-story__media {
    order: 0;
  }

  .snk-story__media {
    aspect-ratio: 4 / 3.2;
  }
}

@media (max-width: 700px) {
  .snk-figures__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 2rem;
  }

  .snk-figures__item:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  .snk-values__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-values__item,
  .snk-values__item:nth-child(-n + 2) {
    padding-inline: 0;
    border-right: 0;
    border-bottom: 1px solid var(--snk-line-strong);
  }

  .snk-values__item:last-child {
    border-bottom: 0;
  }

  .snk-timeline::before {
    left: 9px;
  }

  .snk-timeline__item {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 2.5rem;
  }

  .snk-timeline__item::before {
    left: 9px;
  }

  .snk-timeline__card,
  .snk-timeline__item:nth-child(even) .snk-timeline__card {
    grid-column: 1;
    text-align: left;
  }
}

@media (max-width: 900px) {
  .snk-service-row,
  .snk-service-row--reverse,
  .snk-faq__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-service-row--reverse .snk-service-row__media {
    order: 0;
  }

  .snk-service-row__media {
    width: 100%;
    max-width: 640px;
  }

  .snk-faq__intro {
    position: static;
  }
}

@media (max-width: 560px) {
  .snk-service-row__scope {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1100px) {
  .snk-cases__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .snk-cases__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1100px) {
  .snk-contact__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 900px) {
  .snk-next__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .snk-next__step:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: calc(var(--snk-grid-gap) / -2 - 6px);
    left: 50%;
    transform: translateX(-50%) rotate(135deg);
  }

  .snk-strip__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .snk-status__inner {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  .snk-status__media {
    width: 100%;
    max-width: 560px;
    height: clamp(320px, 70vw, 440px);
  }
}

@media (max-width: 480px) {
  .snk-status__tape {
    letter-spacing: 0.08em;
  }
}

/* ---------- Touch devices: show project details without hover ---------------------- */
@media (hover: none) {
  .snk-project__body {
    transform: none;
  }

  .snk-project__more {
    opacity: 1;
  }
}

/* ---------- Reduced motion ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
  }

  .snk-js .snk-reveal {
    opacity: 1;
    transform: none;
  }

  .snk-hero__track,
  .snk-marquee__track,
  .snk-badge-circle__text {
    animation: none !important;
  }
}
