/* ========================================================================
   Yokai Detective Agency — Mobile refinement layer (Ver.13)
   Desktop remains controlled by styles.css.  This file only overrides
   layouts at tablet / phone widths so content updates stay shared.
   ======================================================================== */

@media (max-width: 820px) {
  html, body { overflow-x: hidden; }
  body { -webkit-text-size-adjust: 100%; }

  /* Shared header / navigation */
  .site-header {
    height: 64px;
    padding: 0 14px 0 80px;
    position: sticky;
    top: 0;
    z-index: 100;
  }
  .header-logo { width: 76px; height: 76px; left: 5px; top: 3px; }
  .menu-toggle {
    min-height: 38px;
    min-width: 70px;
    padding: 8px 13px;
    font-size: 11px;
    letter-spacing: .06em;
  }
  .global-nav {
    top: 64px;
    max-height: calc(100dvh - 64px);
    overflow-y: auto;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 4px 10px;
    padding: 13px 14px 17px;
  }
  .global-nav a { padding: 11px 4px 10px; font-size: 12px; }
  .global-nav small { font-size: 7px; }
  .global-nav a.active:after { left: 24%; right: 24%; bottom: 3px; }

  /* Shared shells and headings */
  .page-shell,
  .episodes-page-shell,
  .special-page-shell,
  .music-page-shell,
  .news-page-shell,
  .story-page-shell { width: calc(100% - 24px); }
  .subpage-header { padding-left: 18px; padding-right: 18px; }
  .subpage-header h1 { line-height: 1.35; }
  .panel { border-radius: 11px; }

  /* TOP */
  .hero {
    height: clamp(390px, 108vw, 520px);
    min-height: 390px;
  }
  .hero-image {
    width: 100%;
    max-width: none;
    margin-left: 0;
    object-fit: cover;
    object-position: center 48%;
  }
  .hero-wash {
    background: linear-gradient(180deg,rgba(255,255,255,.02) 20%,rgba(255,255,255,.08) 52%,rgba(255,251,248,.98) 89%);
  }
  .hero-copy { width: calc(100% - 34px); bottom: 20px; }
  .hero-copy p { font-size: clamp(27px,8vw,36px); letter-spacing: .035em; line-height: 1.45; }
  .hero-copy span { margin-top: 7px; font-size: 10px; line-height: 1.7; letter-spacing: .035em; }
  .hero-copy .hero-credit { margin-top: 6px; font-size: 18px; line-height: 1.25; }

  .lead-grid,
  .story-episodes-row,
  .lower-grid { grid-template-columns: 1fr; }
  .lead-grid { gap: 12px; }
  .story-episodes-row,
  .lower-grid { gap: 12px; margin-top: 12px; }
  .trailer-panel .video-frame { aspect-ratio: 16/9; }
  .patreon-panel { grid-column: auto; display: block; }

  .episode-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .character-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
  .character-card:last-child { grid-column: 1/-1; }
  .special-grid { grid-template-columns: 1fr; }
  .special-art { height: 210px; }
  .music-feature { grid-template-columns: 128px 1fr; }

  .support-banner {
    height: auto;
    min-height: 210px;
    grid-template-columns: 88px minmax(0,1fr) 80px;
    grid-template-rows: auto auto;
    gap: 10px;
    padding: 16px 10px;
  }
  .support-copy { grid-column: 2; grid-row: 1; min-width: 0; }
  .support-copy h2 { margin-top: 3px; line-height: 1.4; }
  .support-copy p { line-height: 1.65; }
  .support-button { grid-column: 2; grid-row: 2; width: 100%; text-align: center; }
  .support-mascot.cow { grid-column: 1; grid-row: 1/3; align-self: end; }
  .support-mascot.wall { grid-column: 3; grid-row: 1/3; align-self: end; }
  .support-mascot img { width: 100%; height: auto; max-height: 150px; object-fit: contain; }

  /* EPISODES */
  .episodes-page-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
  .episodes-page-grid .episode-art { height: auto; aspect-ratio: 16/9; }

  /* CHARACTER */
  .character-feature { padding-top: 61vw; min-height: 0; }
  .character-feature-image { height: 64vw; }
  .character-feature-fade { height: 67vw; }
  .character-profile-card { width: 100%; padding: 22px 18px 28px; }
  .character-profile-titleline { gap: 12px; }
  .character-profile-titleline h1 { font-size: clamp(29px,8vw,40px); }
  .character-facts { grid-template-columns: 1fr 1fr; }
  .character-selector-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .other-character-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }

  /* SPECIAL */
  .special-section-head,
  .music-section-head { align-items: flex-start; flex-direction: column; gap: 5px; }
  .special-video-grid,
  .music-video-grid { grid-template-columns: 1fr; }
  .special-short-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .special-patreon-cta { grid-template-columns: 1fr; gap: 17px; }
  .special-patreon-cta > a { justify-self: stretch; text-align: center; }

  /* MUSIC */
  .music-album-card { grid-template-columns: minmax(170px,260px) 1fr; gap: 18px; }

  /* NEWS */
  .news-archive-row { grid-template-columns: 82px 72px minmax(0,1fr) 18px; gap: 8px 10px; }
  .news-archive-row strong { font-size: 13px; line-height: 1.55; }
  .news-archive-row .news-access { grid-column: 3; grid-row: 2; }
  .news-arrow { grid-column: 4; grid-row: 1/3; }

  /* STORY */
  .story-copy-card { width: 100%; }
  .story-split { grid-template-columns: 1fr; }
  .story-secondary-image { min-height: 0; }
  .story-secondary-image img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }

  /* ABOUT / CONTACT */
  .about-section { grid-template-columns: 120px 1fr; gap: 22px; padding: 24px; }
  .about-icon-wrap img { width: 105px; height: 105px; }
  .contact-section { grid-template-columns: 1fr; gap: 22px; }
}

@media (max-width: 560px) {
  /* Shared */
  .page-shell,
  .episodes-page-shell,
  .special-page-shell,
  .music-page-shell,
  .news-page-shell,
  .story-page-shell { width: calc(100% - 20px); }
  .panel { padding: 14px; }
  .section-head h2,
  .special-section-head h2,
  .music-section-head h2 { font-size: 23px; }
  .section-head h2 small,
  .special-section-head h2 small,
  .music-section-head h2 small { display: block; margin: 4px 0 0; }

  /* TOP */
  .hero { height: clamp(410px, 122vw, 520px); }
  .hero-copy { width: calc(100% - 24px); bottom: 17px; }
  .hero-copy p { font-size: clamp(25px,8vw,31px); }
  .hero-copy span { font-size: 9px; }
  .hero-copy .hero-credit { font-size: 16px; }
  .news-list a { grid-template-columns: 68px 34px 1fr; gap: 7px; }
  .episode-grid { grid-template-columns: 1fr; }
  .episode-art { height: auto; aspect-ratio: 16/9; }
  .character-grid { grid-template-columns: 1fr; }
  .character-card:last-child { grid-column: auto; }
  .character-card { grid-template-columns: 36% 64%; min-height: 142px; }
  .portrait { min-height: 142px; height: 100%; }
  .special-art { height: 180px; }
  .music-feature { grid-template-columns: 96px 1fr; gap: 13px; }
  .music-feature h3 { font-size: 19px; }

  .support-banner { grid-template-columns: 58px minmax(0,1fr) 58px; padding: 14px 6px; }
  .support-copy span { font-size: 8px; }
  .support-copy h2 { font-size: 20px; }
  .support-copy p { font-size: 9px; }
  .support-mascot img { max-height: 112px; }

  /* EPISODES */
  .episodes-page-grid { grid-template-columns: 1fr; gap: 17px; }

  /* CHARACTER */
  .character-feature { padding-top: 78vw; }
  .character-feature-image { height: 82vw; }
  .character-feature-fade { height: 85vw; }
  .character-feature-image.portrait-mode { background-size: auto calc(82vw - 12px)!important; }
  .character-profile-card { padding: 18px 14px 24px; }
  .character-facts { grid-template-columns: 1fr; }
  .character-selector-grid,
  .other-character-grid { grid-template-columns: 1fr; }

  /* SPECIAL */
  .special-short-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .special-short-copy { padding: 10px; }
  .special-short-copy h3 { font-size: 12px; }
  .special-card-copy { padding: 14px; }
  .special-card-copy h2 { font-size: 15px; }

  /* MUSIC */
  .music-album-card { grid-template-columns: 1fr; padding: 13px; }
  .music-album-copy { padding: 4px 4px 8px; }
  .music-card-copy { padding: 14px; }

  /* NEWS — compact but readable */
  .news-archive-row {
    grid-template-columns: 72px minmax(0,1fr) 18px;
    gap: 6px 9px;
    padding: 15px 2px;
  }
  .news-archive-row time { grid-column: 1; grid-row: 1; font-size: 10px; }
  .news-platform { grid-column: 2; grid-row: 1; }
  .news-archive-row strong { grid-column: 1/3; grid-row: 2; font-size: 12px; }
  .news-archive-row .news-access { grid-column: 1/3; grid-row: 3; }
  .news-arrow { grid-column: 3; grid-row: 1/4; }

  /* STORY */
  .story-hero-card img { aspect-ratio: auto; height: auto; object-fit: contain; }
  .story-hero-caption { padding: 13px 14px; }
  .story-copy-card,
  .story-side-copy { padding: 22px 17px; }
  .story-copy-card p,
  .story-side-copy p { font-size: 12px; line-height: 1.95; }
  .story-final-line { margin-top: 25px; padding: 27px 10px; }

  /* ABOUT */
  .about-hero { width: calc(100% - 20px); margin-top: 14px; }
  .about-hero-inner { padding: 28px 19px; }
  .about-section { grid-template-columns: 1fr; gap: 8px; padding: 20px 18px; }
  .about-icon-wrap { justify-content: flex-start; }
  .about-icon-wrap img { width: 82px; height: 82px; }
  .about-copy h2 { font-size: 22px; }
  .about-copy p { font-size: 12px; line-height: 1.9; }
  .about-links-section,
  .contact-section { padding: 20px 18px; }
  .official-link-grid,
  .form-grid { grid-template-columns: 1fr; }
  .contact-form input,
  .contact-form select,
  .contact-form textarea { font-size: 16px; } /* prevents iOS input zoom */
  .form-foot { flex-direction: column; align-items: stretch; }
  .contact-submit { width: 100%; min-height: 46px; }

  /* Footer */
  .site-footer { padding-left: 16px; padding-right: 16px; }
  .footer-links { row-gap: 8px; }
}

@media (max-width: 390px) {
  .global-nav { padding-left: 10px; padding-right: 10px; }
  .global-nav a { font-size: 11px; }
  .hero-copy p { font-size: 25px; }
  .special-short-grid { gap: 7px; }
  .support-banner { grid-template-columns: 50px minmax(0,1fr) 50px; }
}

/* v14: phone hero uses the dedicated 3:4 artwork. */
@media (max-width:520px){
  .hero{height:auto;min-height:0;aspect-ratio:3/4;}
  .hero-picture{position:absolute;inset:0;width:100%;height:100%;}
  .hero-picture .hero-image{width:100%;height:100%;margin-left:0;max-width:none;object-fit:cover;object-position:center center;}
  .hero-wash{background:linear-gradient(180deg,rgba(255,255,255,.01) 12%,rgba(255,255,255,.05) 57%,rgba(255,251,248,.98) 91%);}
}
