/* Kakurin — phone layout + nav + motion */

@media (max-width: 1100px) {
  .kk-hero__stage { grid-template-columns: 1fr 1fr; }
  .kk-plate { grid-column: 1 / -1; order: -1; transform: none; min-height: 0; }
  .kk-cover--w, .kk-cover--m { transform: none; }
  .kk-cats__grid, .kk-arrivals__grid { grid-template-columns: repeat(2, 1fr); }
  .kk-steps__list, .kk-values__grid, .kk-timeline__list, .kk-season__grid, .kk-tips__grid, .kk-gallery__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .kk-topics__grid { grid-template-columns: repeat(3, 1fr); }
  .kk-foot__grid { grid-template-columns: 1fr 1fr; gap: 1.6rem; }
  .kk-vert--l, .kk-vert--r { display: none; }
}

@media (max-width: 768px) {
  :root { --kk-nav: 60px; }
  html, body.kk { overflow-x: hidden; max-width: 100%; }
  body.kk { font-size: 16px; }

  .kk-nav {
    z-index: 90;
    animation: kkNavIn 0.55s var(--kk-ease) both;
  }
  body.is-nav-open .kk-nav {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .kk-nav__links, .kk-nav__cta { display: none; }
  .kk-nav__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 58vw;
  }
  .kk-burger {
    display: block;
    position: relative;
    z-index: 92;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(14, 14, 14, 0.06);
    -webkit-tap-highlight-color: transparent;
    transition: background 0.25s, transform 0.2s var(--kk-ease);
  }
  .kk-burger i:first-child { top: 20px; }
  .kk-burger i:last-child { top: 28px; }
  .is-nav-open .kk-burger i:first-child,
  .is-nav-open .kk-burger i:last-child { top: 24px; }
  body.is-nav-open .kk-burger { background: rgba(250, 246, 240, 0.12); }
  .kk-burger:active { transform: scale(0.92); }

  .kk-backdrop[hidden] { display: block !important; pointer-events: none; }
  .kk-drawer[hidden] {
    display: flex !important;
    pointer-events: none;
  }
  .kk-drawer {
    z-index: 80;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: calc(var(--kk-nav) + env(safe-area-inset-top) + 1.2rem) 1.25rem max(1.6rem, env(safe-area-inset-bottom));
  }
  .kk-drawer.is-open { pointer-events: auto; }
  .kk-drawer__brand {
    opacity: 0;
    transform: translateY(12px);
  }
  .kk-drawer.is-open .kk-drawer__brand {
    animation: kkIn 0.55s var(--kk-ease) forwards;
  }
  .kk-drawer.is-open .kk-drawer__nav a:nth-child(1) { animation-delay: 0.05s; }
  .kk-drawer.is-open .kk-drawer__nav a:nth-child(2) { animation-delay: 0.12s; }
  .kk-drawer.is-open .kk-drawer__nav a:nth-child(3) { animation-delay: 0.19s; }
  .kk-drawer.is-open .kk-drawer__nav a:nth-child(4) { animation-delay: 0.26s; }
  .kk-drawer.is-open .kk-drawer__nav a:nth-child(5) { animation-delay: 0.33s; }
  .kk-drawer.is-open .kk-drawer__nav a:nth-child(6) { animation-delay: 0.4s; }
  .kk-drawer__nav a {
    min-height: 48px;
    display: flex;
    align-items: center;
  }

  .kk-hero { padding: calc(var(--kk-nav) + 0.6rem) 0.9rem 1.6rem; }
  .kk-hero__stage { grid-template-columns: 1fr; gap: 1rem; }
  .kk-cover--w { order: 1; }
  .kk-plate { order: 0; padding: 1.4rem 1rem; }
  .kk-cover--m { order: 2; }
  .kk-frame--cover { min-height: 300px; }
  .kk-plate__brand { font-size: clamp(2rem, 11vw, 2.6rem); }
  .kk-plate h1 { font-size: clamp(1.45rem, 6vw, 1.9rem); }
  .js .kk-plate [data-kk] { opacity: 1; transform: none; }
  .kk-plate .kk-k { animation: kkMobRise 0.7s var(--kk-ease) both; }
  .kk-plate h1 { animation: kkMobRise 0.7s var(--kk-ease) 0.12s both; }
  .kk-plate__lead { animation: kkMobRise 0.7s var(--kk-ease) 0.2s both; }
  .kk-plate .kk-actions { animation: kkMobRise 0.7s var(--kk-ease) 0.28s both; }

  .kk-atelier__grid,
  .kk-spread,
  .kk-spread--m,
  .kk-faq__grid,
  .kk-fabric__grid,
  .kk-featured__grid,
  .kk-contact__grid,
  .kk-map__grid,
  .kk-dual {
    grid-template-columns: 1fr;
  }
  .kk-spread--m .kk-spread__media,
  .kk-spread--m .kk-spread__copy { order: unset; }
  .kk-spread__media .kk-frame { min-height: 280px; }
  .kk-spread__copy { padding: 1.8rem 1.1rem 2.2rem; }
  .kk-spread { min-height: 0; }

  .kk-voices__list,
  .kk-journal__grid,
  .kk-journal__grid--6,
  .kk-team__grid,
  .kk-hours__grid,
  .kk-social__grid,
  .kk-values__grid--3 {
    grid-template-columns: 1fr;
  }

  .kk-cats, .kk-arrivals, .kk-voices, .kk-journal, .kk-steps, .kk-values, .kk-team,
  .kk-gallery, .kk-price, .kk-topics, .kk-season, .kk-hours, .kk-tips, .kk-social,
  .kk-timeline, .kk-manifesto, .kk-featured, .kk-atelier, .kk-fabric, .kk-faq,
  .kk-contact, .kk-map, .kk-filmsec {
    padding: 2.8rem 0;
  }

  .kk-wrap { width: min(100% - 1.4rem, 1240px); }

  .kk-film__frame { flex-basis: min(78vw, 260px); }
  .kk-fabric__row { grid-template-columns: repeat(2, 1fr); }
  .kk-price__row { grid-template-columns: auto 1fr; }
  .kk-price__num { grid-column: 2; }

  .kk-visit, .kk-finale, section.kk-quote { min-height: 380px; }
  .kk-visit__media .kk-frame,
  .kk-finale__media .kk-frame,
  .kk-quote__media .kk-frame { min-height: 380px; }
  .kk-visit__in, .kk-finale__in, .kk-quote__in { padding: 3rem 0; }

  .kk-actions { flex-direction: column; align-items: stretch; }
  .kk-btn { width: 100%; min-height: 48px; }
  .kk-btn:active { transform: scale(0.97); }
  .kk-btn--gold { animation: kkBtnPulse 2.4s ease-in-out infinite; }
  .kk-btn--gold:active { animation: none; transform: scale(0.97); }

  .kk-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .kk-kb img { animation: kkKen 16s ease-in-out infinite alternate; }
  .js [data-kk] img,
  .js [data-kk-clip] img {
    transform: scale(1.08);
    transition: transform 1.05s var(--kk-ease);
  }
  .js [data-kk].in img,
  .js [data-kk-clip].in img { transform: scale(1); }

  .kk-foot { padding: 2.4rem 0 1.3rem; }
  .kk-foot__grid { grid-template-columns: 1fr; }
  .kk-foot__vert { display: none; }
  .kk-manifesto__pics .kk-frame:last-child { transform: none; }
  .kk-map__frame, .kk-map iframe { min-height: 280px; }
}

@media (max-width: 480px) {
  .kk-cats__grid, .kk-arrivals__grid, .kk-steps__list, .kk-values__grid,
  .kk-timeline__list, .kk-season__grid, .kk-tips__grid, .kk-gallery__grid,
  .kk-topics__grid, .kk-fabric__row {
    grid-template-columns: 1fr;
  }
  h1 { font-size: 1.7rem; }
  .kk-plate__brand { font-size: 2rem; }
  .kk-frame--cover,
  .kk-spread__media .kk-frame,
  .kk-visit__media .kk-frame,
  .kk-finale__media .kk-frame {
    min-height: 240px;
  }
}

@media (min-width: 769px) {
  .kk-burger, .kk-drawer, .kk-backdrop { display: none !important; }
}

@keyframes kkNavIn {
  from { transform: translateY(-110%); }
  to { transform: none; }
}
@keyframes kkBtnPulse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes kkMobRise {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .kk-kb img,
  .kk-btn--gold,
  .kk-nav,
  .kk-drawer__brand,
  .kk-plate .kk-k,
  .kk-plate h1,
  .kk-plate__lead,
  .kk-plate .kk-actions,
  .js [data-kk] img,
  .js [data-kk-clip] img,
  .js [data-kk],
  .js [data-kk-letters] .kk-ch {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
