﻿/* Korvanto — Responsive & accessibility */
/* Responsive */
@media (max-width: 1024px) {
  .hero-content { grid-template-columns: 1fr; }
  .hero-3d-wrap { display: none; }
  .editorial-grid { grid-template-columns: 1fr; }
  .export-layout { grid-template-columns: 1fr; }
  .testimonials-metrics { grid-template-columns: repeat(2, 1fr); }
  .testimonials-stage { grid-template-columns: 1fr; }
  .testimonials-spotlight { height: auto; min-height: 0; }
  .testimonials-sidebar { height: auto; }
  .testimonials-controls { justify-content: flex-end; }
  .journey-scroll-track { height: 440vh; }
  .journey-inner { grid-template-columns: 1fr; gap: 1rem; }
  .journey-visual { aspect-ratio: 16 / 9; max-height: 42vh; }
  .journey-flow { min-height: 240px; }
  .journey-steps { min-height: 240px; }
  .why-header { grid-template-columns: 1fr; }
  .why-header-lead { max-width: none; }
  .why-panels { grid-template-columns: repeat(2, 1fr); }
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem 1.5rem;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  .footer-contact {
    grid-column: 1 / -1;
  }
  .products-grid { grid-template-columns: repeat(2, 1fr); }
  .product-hero-grid { grid-template-columns: 1fr; }
  .content-block--2 { grid-template-columns: 1fr; }
  .content-block--reverse .content-block-media { order: 0; }
  .form-grid { grid-template-columns: 1fr; }
  .info-cards { grid-template-columns: 1fr; }
  .page-hero-split { grid-template-columns: 1fr; }
}

@media (max-width: 1360px) {
  .nav-list {
    gap: 0.8rem;
  }

  .nav-list a,
  .dropdown-trigger {
    font-size: 0.72rem;
  }
}

@media (max-width: 1200px) {
  .main-nav {
    gap: 1rem;
    padding-right: 52px;
  }

  .nav-list {
    gap: 0.95rem;
  }

  .nav-list a,
  .dropdown-trigger {
    font-size: 0.74rem;
  }
}

@media (max-width: 1100px) {
  .header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "logo . toggle";
    gap: 0.75rem;
  }

  .logo {
    grid-area: logo;
  }

  .main-nav {
    padding-right: 0;
    margin-left: 0;
  }

  .header-search {
    position: absolute;
    right: 3.6rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1010;
  }

  .header-search-toggle {
    display: flex;
    width: 38px;
    height: 38px;
  }

  .search-overlay {
    padding: 5.5rem 1rem 1.5rem;
  }

  .search-overlay-dialog {
    width: 100%;
  }

  .search-overlay-input {
    height: 50px;
    font-size: 0.95rem;
  }

  .search-overlay-results {
    max-height: 50vh;
  }

  .nav-toggle {
    grid-area: toggle;
  }

  .logo-img {
    height: 68px;
    max-width: 200px;
  }

  .site-header.is-scrolled .logo-img {
    height: 60px;
    max-width: 176px;
  }

  .nav-toggle {
    display: flex;
    position: relative;
    z-index: 1002;
  }

  body.nav-open .nav-toggle {
    visibility: hidden;
    pointer-events: none;
  }

  .nav-close {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    cursor: pointer;
    flex-shrink: 0;
    transition: background var(--transition), border-color var(--transition);
  }

  .nav-close:hover,
  .nav-close:focus-visible {
    background: rgba(197, 154, 74, 0.2);
    border-color: var(--gold);
    outline: none;
  }

  .main-nav {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1001;
    width: min(320px, 88vw);
    height: 100vh;
    height: 100dvh;
    background: var(--navy);
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 4.5rem 1.5rem 2rem;
    transform: translateX(100%);
    transition: transform var(--transition);
    box-shadow: -8px 0 40px rgba(0,0,0,0.3);
    overflow-y: auto;
  }

  .main-nav.is-open { transform: translateX(0); }

  .nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(9, 35, 61, 0.55);
    border: none;
    padding: 0;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--transition), visibility var(--transition);
  }

  body.nav-open .nav-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    flex: 0 0 auto;
  }
  .nav-list li { border-bottom: 1px solid rgba(255,255,255,0.08); }
  .nav-list a, .dropdown-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1rem 0;
    text-align: left;
  }
  .dropdown-menu {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    box-shadow: none;
    border: none;
    background: rgba(0,0,0,0.15);
    display: none;
    margin: 0 0 0.5rem;
  }
  .has-dropdown.is-open .dropdown-menu { display: block; }
  .has-mega .dropdown-menu.mega-menu {
    left: auto;
    width: 100%;
    min-width: 0;
    max-width: none;
    transform: none;
    max-height: none;
    overflow: visible;
  }
  .has-mega.is-open .dropdown-menu.mega-menu {
    transform: none;
  }
  .mega-menu-inner {
    grid-template-columns: 1fr;
  }
  .mega-col {
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    padding: 0.85rem 0.75rem;
  }
  .mega-links-grid {
    grid-template-columns: 1fr;
  }
  .mega-col a {
    padding: 0.55rem 0;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.88);
  }
  .mega-label {
    color: var(--gold);
    border-bottom-color: rgba(255,255,255,0.12);
  }
  .mega-col a:hover,
  .mega-col a:focus-visible {
    color: var(--gold);
  }
  body.nav-open .float-side-tabs,
  body.nav-open .float-contact {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

@media (max-width: 768px) {
  .journey-scroll-track { height: auto; }
  .journey-pin {
    position: relative;
    top: 0;
    height: auto;
    min-height: 0;
    padding: var(--section-pad) 0;
  }
  .journey-flow { min-height: 280px; }
  .journey-steps { min-height: 200px; }
  .atlas-index-name { white-space: normal; }
  .atlas-meta { flex-wrap: wrap; }
  .editorial-strip { grid-template-columns: 1fr; gap: 1rem; padding: 1.25rem; }
  .atlas-stage { min-height: 360px; }
  .atlas-panel-link { min-height: 360px; }
  .atlas-panel-content { min-height: 360px; }
  .atlas-index-item { scroll-snap-align: start; }
  .why-panels { grid-template-columns: 1fr; }
  .testimonials-metrics { grid-template-columns: 1fr 1fr; }
  .testimonial-pick:hover { transform: none; }
  .why-panel { min-height: 0; }
  .why-panel-body h3 { min-height: 0; }
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

  .footer-brand {
    grid-column: auto;
  }

  .products-grid { grid-template-columns: 1fr; }
  .contact-cards { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .atlas-index {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0.5rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .atlas-index-item {
    flex: 0 0 auto;
    min-width: 130px;
  }
}

@media (max-width: 1024px) {
  .atlas-layout { grid-template-columns: 1fr; }
}

@media (max-width: 1024px) {
  .premium-hero-layout,
  .p-editorial,
  .inner-premium .why-header { grid-template-columns: 1fr; }
  .p-card-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-visual-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
  .p-process { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .p-process::before { display: none; }
  .p-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto; min-height: 0; }
  .p-mosaic-item:first-child { grid-row: span 1; }
  .p-split-row { grid-template-columns: 1fr; }
  .p-split-row--reverse .premium-scene-3d,
  .p-split-row--reverse .prose { order: unset; }
  .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .p-card-grid--2,
  .p-card-grid--3,
  .p-card-grid--4 { grid-template-columns: 1fr; }
  .p-visual-grid--2,
  .p-visual-grid--3,
  .p-visual-grid--4 { grid-template-columns: 1fr; }
  .p-stage-grid { grid-template-columns: 1fr; }
  .p-mosaic { grid-template-columns: 1fr; }
  .p-process { grid-template-columns: 1fr; }
  .p-strip { grid-template-columns: 1fr; }
  .p-strip-item { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
  .products-grid { grid-template-columns: 1fr; }
  .product-hero-detail { min-height: auto; padding-bottom: 2.5rem; }
  .product-hero-grid { grid-template-columns: 1fr; }
  .product-hero-copy { align-self: auto; }
  .product-hero-layer {
    align-self: auto;
    height: clamp(220px, 52vw, 280px);
    min-height: clamp(220px, 52vw, 280px);
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
}
