/*
Theme Name: Japenet Renewal
Theme URI: https://japenet.net/
Description: japenet 데이터·여행 정보용 자식 테마
Author: japenet.net
Template: japenet
Version: 1.0.0
Text Domain: japenet-renewal
*/

/* 핵심 조작부는 손가락으로 누를 수 있는 44px 영역을 확보한다. */
.brand,
.site-nav .nav-root > li > a,
.chip,
.pager .page-numbers,
.mobile-bar a,
.entry table a,
.source-card a,
.source-list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
}

/* 본문·목차·푸터의 짧은 텍스트 링크도 44px 터치 영역을 갖는다. */
main :where(p, li, td, th, nav) a,
.site-footer a,
.more-link {
  display: inline-flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
}

/* 산문 링크는 줄바꿈을 유지한다. inline-flex는 긴 일본어 출처명을 밀어낸다. */
main p a {
  display: inline;
  min-width: 0;
  min-height: 0;
  padding: 12px 2px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  overflow-wrap: anywhere;
}

main :where(li, td, th, nav) a { max-width: 100%; white-space: normal; }

html, body { max-width: 100%; overflow-x: clip; }

.site-header .wrap { min-height: 64px; }
.site-nav .nav-root { gap: .4rem; }
.site-nav .nav-root > li > a { padding-inline: .65rem; }

.chip { padding-block: .45rem; }
.pager .page-numbers { min-width: 44px; justify-content: center; }

/* 계층이 긴 데이터 표에서는 링크가 값과 구분되게 한다. */
.entry table a {
  padding-block: .2rem;
  text-decoration-thickness: 1px;
}

/* 과장된 그림자 없이 철도 안내판처럼 또렷한 포커스를 유지한다. */
:where(a, button, input, summary):focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 3px;
}

.card,
.post-card,
.icon-grid a {
  transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

@media (hover: hover) {
  .card:hover,
  .post-card:hover,
  .icon-grid a:hover { transform: translateY(-2px); }
}

.entry > p:first-child:not(.aff-notice):not(.asof) {
  font-size: 1.03rem;
  color: var(--ink);
}

.toc a { padding: .25rem .2rem; }
.faq summary { min-height: 44px; display: flex; align-items: center; }

.renewal-seen { animation: renewal-settle 180ms ease-out both; }
@keyframes renewal-settle {
  from { opacity: .96; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .renewal-seen { animation: none; }
}

@media (max-width: 560px) {
  .site-header .wrap { align-items: flex-start; padding-block: .55rem; }
  .brand { min-height: 44px; }
  .site-nav .nav-root { gap: .15rem; }
  .site-nav .nav-root > li > a { min-height: 44px; padding-inline: .45rem; }
  .chip { min-height: 44px; }
  .season-stop a { display: inline-flex; align-items: center; min-height: 44px; }
}
