/*
Theme Name: PMA TOKYO
Theme URI: https://pma.tokyo
Author: ULTRA PLANET Inc.
Description: Official theme for PMA TOKYO
Version: 1.1.0
License: Private
Text Domain: pma-tokyo
*/

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:       #050505;
  --bg2:      #0a0a0a;
  --bg3:      #111111;
  --accent:   #019cf5;
  --white:    #f2f2f2;
  --gray1:    #cccccc;
  --gray2:    rgba(242,242,242,0.82);
  --gray3:    #444444;
  --border:   rgba(255,255,255,0.1);
  --font-mono:    'Space Mono', 'Courier New', monospace;
  --font-body:    'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
  --font-display: 'Bebas Neue', 'Arial Black', Impact, sans-serif;
  --nav-h:    72px;
}

html { font-size: 16px; scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--white);
  font-family: var(--font-body);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

/* ============================================================
   ADMIN BAR
   ============================================================ */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  background: rgba(5,5,7,0.97);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 1000;
  display: flex;
  align-items: center;
  padding: 0 40px;
}

.header-inner {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}

.site-logo {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: var(--nav-h);
  gap: 3px;
  text-decoration: none;
}

.site-logo .logo-main {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 0.15em;
  color: var(--white);
  line-height: 1;
}

.site-logo .logo-main span { color: var(--accent); }

.site-logo .logo-sub {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.22em;
  color: rgba(242,242,242,0.85);
  text-transform: uppercase;
  line-height: 1;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 32px;
  list-style: none;
  margin-left: auto;
}

.site-nav > li > a {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--gray2);
  transition: color 0.2s;
  text-transform: uppercase;
}

.site-nav > li > a:hover,
.site-nav > li.current-menu-item > a { color: var(--accent); }

/* ============================================================
   PAGE WRAPPER
   ============================================================ */
.site-content {
  padding-top: var(--nav-h);
}

.container      { max-width: 900px;  margin: 0 auto; padding: 0 24px; }
.container--wide{ max-width: 1100px; margin: 0 auto; padding: 0 24px; }

/* ============================================================
   BREADCRUMB
   ============================================================ */
.breadcrumb {
  padding: 20px 0 0;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--gray2);
  text-transform: uppercase;
}
.breadcrumb a { color: var(--gray2); transition: color 0.2s; }
.breadcrumb a:hover { color: var(--accent); }
.breadcrumb span { margin: 0 8px; color: var(--gray3); }
.breadcrumb .current {
  color: var(--white);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 280px; display: inline-block; vertical-align: bottom;
}

/* ============================================================
   NEWS ARCHIVE
   ============================================================ */
.news-archive-header {
  padding: 60px 0 40px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 40px;
}
.news-archive-header h1 {
  font-family: var(--font-display);
  font-size: clamp(32px, 4vw, 48px);
  letter-spacing: 0.08em;
  color: var(--white);
  text-transform: uppercase;
}

.news-grid { display: grid; gap: 0; padding-bottom: 80px; }

.news-card {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
  transition: background 0.2s;
}
.news-card:hover .news-card__title { color: var(--accent); }

.news-card__meta { display: flex; flex-direction: column; gap: 8px; padding-top: 2px; }
.news-card__date { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--gray2); }
.news-card__cat {
  display: inline-block;
  font-family: var(--font-mono); font-size: 0.65rem; letter-spacing: 0.12em; font-weight: 700;
  padding: 3px 10px; border: 1px solid var(--accent); color: var(--accent);
  text-transform: uppercase; width: fit-content;
}
.news-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.news-card__tag {
  font-family: var(--font-mono); font-size: 0.6rem; letter-spacing: 0.1em;
  padding: 2px 8px; border: 1px solid var(--gray3); color: var(--gray2);
}
.news-card__body { display: flex; flex-direction: column; gap: 10px; }
.news-card__title { font-size: 1rem; font-weight: 700; line-height: 1.6; color: var(--white); transition: color 0.2s; }
.news-card__excerpt { font-size: 0.88rem; color: var(--gray2); line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ============================================================
   NEWS SINGLE
   ============================================================ */
.news-single { padding: 40px 0 100px; }

.news-single__header { padding-bottom: 40px; border-bottom: 1px solid var(--border); margin-bottom: 48px; }
.news-single__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 24px; }
.news-single__cat {
  font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.12em; font-weight: 700;
  padding: 4px 12px; border: 1px solid var(--accent); color: var(--accent); text-transform: uppercase;
}
.news-single__date { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--gray2); }
.news-single__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.news-single__tag { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.1em; padding: 3px 10px; border: 1px solid var(--gray3); color: var(--gray2); }
.news-single__title { font-size: clamp(24px, 4vw, 40px); font-weight: 700; line-height: 1.35; color: var(--white); margin-bottom: 24px; }
.news-single__lead { font-size: 1rem; line-height: 1.8; color: var(--accent); font-weight: 500; padding: 20px 24px; border-left: 3px solid var(--accent); background: rgba(1,156,245,0.06); }

/* ============================================================
   ENTRY CONTENT
   ============================================================ */
.entry-content { font-size: 1rem; line-height: 1.9; color: var(--gray1); }
.entry-content h2 { font-size: 1.4rem; font-weight: 700; color: var(--white); margin: 56px 0 20px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.entry-content h3 { font-size: 1.15rem; font-weight: 700; color: var(--white); margin: 40px 0 16px; }
.entry-content p { margin-bottom: 20px; }
.entry-content a { color: var(--accent); border-bottom: 1px solid rgba(1,156,245,0.4); transition: border-color 0.2s; }
.entry-content a:hover { border-color: var(--accent); }
.entry-content strong { color: var(--white); font-weight: 700; }
.entry-content ul, .entry-content ol { margin: 0 0 20px 24px; }
.entry-content li { margin-bottom: 8px; }
.entry-content table { width: 100%; border-collapse: collapse; margin: 32px 0; font-size: 0.9rem; }
.entry-content th { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gray2); padding: 12px 16px; border-bottom: 1px solid var(--border); text-align: left; font-weight: 400; }
.entry-content td { padding: 14px 16px; border-bottom: 1px solid var(--border); color: var(--gray1); vertical-align: top; }
.entry-content blockquote { margin: 32px 0; padding: 20px 24px; border-left: 3px solid var(--accent); background: rgba(1,156,245,0.05); color: var(--gray1); font-style: italic; }
.entry-content hr { border: none; border-top: 1px solid var(--border); margin: 48px 0; }

.press-release-box { background: var(--bg3); border: 1px solid var(--border); padding: 32px; margin: 40px 0; }
.press-release-box h4 { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.2em; color: var(--gray2); text-transform: uppercase; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }

/* ============================================================
   POST NAVIGATION
   ============================================================ */
.post-navigation { margin-top: 60px; padding-top: 32px; border-top: 1px solid var(--border); display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.nav-previous a, .nav-next a { color: var(--gray2); transition: color 0.2s; font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.08em; display: block; }
.nav-previous a:hover, .nav-next a:hover { color: var(--accent); }
.nav-next { text-align: right; }
.back-to-list { display: flex; justify-content: center; margin-top: 48px; }
.back-to-list a { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gray2); border: 1px solid var(--gray3); padding: 14px 36px; transition: all 0.2s; display: inline-block; }
.back-to-list a:hover { color: var(--accent); border-color: var(--accent); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { background: var(--bg2); border-top: 1px solid var(--border); padding: 48px 40px; text-align: center; }
.site-footer .footer-logo { font-family: var(--font-display); font-size: 18px; letter-spacing: 0.12em; color: var(--gray2); margin-bottom: 16px; }
.site-footer .footer-logo span { color: var(--accent); }
.site-footer .footer-copy { font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.08em; color: var(--gray3); }

/* ============================================================
   PAGINATION
   ============================================================ */
.pagination { display: flex; justify-content: center; gap: 8px; padding: 48px 0; }
.pagination .page-numbers { font-family: var(--font-mono); font-size: 0.8rem; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--border); color: var(--gray2); transition: all 0.2s; }
.pagination .page-numbers.current, .pagination .page-numbers:hover { border-color: var(--accent); color: var(--accent); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .site-header { padding: 0 16px; }
  .site-nav { display: none; }
  .container, .container--wide { padding: 0 16px; }

  .news-card { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; }
  .news-card__meta { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
  .news-card__date { font-size: 0.82rem; }
  .news-card__cat { font-size: 0.72rem; padding: 4px 12px; }
  .news-card__title { font-size: 1.05rem; line-height: 1.65; }
  .news-card__excerpt { font-size: 0.92rem; }

  .news-single__title { font-size: clamp(22px, 6vw, 30px); }
  .news-single__lead { font-size: 0.95rem; padding: 16px 18px; }
  .news-single__cat { font-size: 0.75rem; padding: 5px 14px; }
  .news-single__date { font-size: 0.82rem; }

  .entry-content { font-size: 1rem; }
  .entry-content h2 { font-size: 1.25rem; margin: 40px 0 16px; }
  .entry-content h3 { font-size: 1.05rem; }

  .post-navigation { grid-template-columns: 1fr; }
  .nav-next { text-align: left; }
  .nav-previous a, .nav-next a { font-size: 0.82rem; }
  .back-to-list a { font-size: 0.82rem; padding: 13px 28px; }

  .press-release-box { padding: 20px 16px; }
  .site-footer { padding: 40px 20px 32px; }
  .site-footer .footer-copy { font-size: 0.72rem; }
}
