/* GENERATED FILE — edit styles/*.css instead. */

/* ===== Blog ===== */

/* Blog */
.blog-page{max-width:760px;margin:0 auto}
.blog-page h1,.blog-page h2,.blog-page h3,.blog-page h4{font-family:var(--font-body)}
.blog-page__header,.blog-article__header{position:static;top:auto;z-index:auto;width:auto;margin:0;padding:clamp(1.25rem,3vw,2rem);background:linear-gradient(145deg,var(--surface),color-mix(in oklab,var(--accent) 7%,var(--surface)));border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-card);backdrop-filter:none;-webkit-backdrop-filter:none}
.blog-page__eyebrow{margin:0 0 .45rem;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.16em}
.blog-page__header h1,.blog-article__header h1{margin:0;font-size:clamp(1.6rem,4vw,2.25rem)}
.blog-page__header p:last-child{margin:.75rem 0 0;color:var(--muted)}
.blog-post-list{display:grid;gap:1rem;margin-top:1.25rem}
.blog-post-card{padding:1.25rem 1.4rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-card)}
.blog-post-card__date,.blog-article__meta{margin:0;color:var(--muted);font-size:.9rem}
.blog-post-card h2{margin:.25rem 0 .5rem;font-size:1.35rem}
.blog-post-card h2 a{color:var(--fg)}
.blog-post-card h2 a:hover{color:var(--link)}
.blog-post-card > p:not(.blog-post-card__date){margin:.5rem 0 0;color:var(--muted)}
.blog-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 0;padding:0;list-style:none}
.blog-tags li{padding:.2rem .55rem;border-radius:999px;background:color-mix(in oklab,var(--accent) 11%,var(--surface));color:var(--accent);font-size:.82rem;font-weight:600}
.blog-page__empty{margin:1.25rem 0;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--muted)}
.blog-article__header{margin-bottom:1.25rem}
.blog-article__meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin-top:.9rem}
.blog-article__content{padding:clamp(1.25rem,3vw,2rem);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-card)}
.blog-article__content > :first-child{margin-top:0}
.blog-article__content > :last-child{margin-bottom:0}
.blog-article__content h2,.blog-article__content h3{margin-top:2rem;color:var(--accent)}
.blog-article__content h2{font-size:1.4rem;padding-bottom:.45rem;border-bottom:1px solid var(--border)}
.blog-article__content a{text-decoration:underline;text-underline-offset:.15em}
.blog-article__back{margin:1.5rem 0 0}
/* Blog tables: validated to 2-4 columns with a 番号-first list schema
   (see scripts/modules/blog/validator.py). Fixed roles per column. */
.blog-table-scroll{margin:1.25rem 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-card)}
.blog-table-scroll table{width:100%;min-width:34rem;border-collapse:collapse;background:var(--surface);font-size:.95rem;line-height:1.7}
.blog-table-scroll th,.blog-table-scroll td{padding:.65rem .8rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.blog-table-scroll thead th{background:color-mix(in oklab,var(--accent) 10%,var(--surface));border-bottom:2px solid var(--border);white-space:nowrap;font-weight:700}
.blog-table-scroll tbody tr:nth-child(even){background:var(--surface-elevated)}
.blog-table-scroll tbody tr:last-child td{border-bottom:0}
.blog-table-scroll th:first-child,.blog-table-scroll td:first-child{text-align:center;color:var(--muted);white-space:nowrap}
.blog-table-scroll td:nth-child(2){font-size:1.25rem;font-weight:700;font-family:var(--font-display)}
.blog-table-scroll th:nth-child(3),.blog-table-scroll td:nth-child(3){white-space:nowrap}
@media (max-width:600px){
.blog-table-scroll{margin:1rem -.25rem}
.blog-table-scroll table{min-width:30rem;font-size:.9rem}
.blog-table-scroll th,.blog-table-scroll td{padding:.5rem .6rem}
}

/* ===== Phrase ===== */

/* Yoji-jukugo (四字熟語) page styles */
.phrase-hero-reading{text-align:center;font-size:1.1rem;color:var(--muted);margin:0.25rem 0 0.5rem;line-height:1.5;letter-spacing:0.06em}
.niji-page .kanji-hero-character,.sanji-page .kanji-hero-character{font-size:3rem;letter-spacing:.1em;padding-top:1rem;font-weight:600}
.niji-page .phrase-hero-reading,.sanji-page .phrase-hero-reading{letter-spacing:.08em;margin-top:.35rem}
.yoji-page .kanji-hero-character{font-size:3rem; letter-spacing: 0.1em; padding-top: 1rem;font-weight:600;}
.yoji-page .phrase-hero-reading{letter-spacing:0.08em;margin-top:0.35rem}
.yoji-page .yoji-badges{justify-content:center;margin-top:1rem}

.niji-intro,.sanji-intro{margin-bottom:1.5rem;color:var(--muted);line-height:1.8}
.niji-results .loading,.niji-results .no-results,.niji-results .error,.sanji-results .loading,.sanji-results .no-results,.sanji-results .error{text-align:center;padding:3rem 1rem;color:var(--muted);font-size:1.1rem}
.niji-results .error,.sanji-results .error{color:#d32f2f}
.niji-list,.sanji-list{display:flex;flex-direction:column;gap:1rem}
.niji-grid,.sanji-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:768px){
.niji-grid,.sanji-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
.niji-grid,.sanji-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.niji-card,.sanji-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:box-shadow .15s;display:block;color:var(--fg);text-decoration:none}
.niji-card:hover,.sanji-card:hover{box-shadow:0 4px 8px rgba(0,0,0,.1);color:var(--fg);text-decoration:none}
.niji-header,.sanji-header{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}
h3.niji-title,h3.sanji-title{font-family:var(--font-body);font-size:1.5rem;margin:0;color:var(--link);font-weight:600}
.niji-badges,.sanji-badges{display:flex;gap:.5rem;flex-wrap:wrap}
.niji-badge,.sanji-badge{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;font-weight:500}
.niji-meaning-ja,.sanji-meaning-ja{margin:0 0 .5rem;line-height:1.7;color:var(--fg)}
.niji-meaning-en,.sanji-meaning-en{margin:0;font-size:.95rem;color:var(--muted);line-height:1.6}
.niji-list-meta,.sanji-list-meta{margin:0 0 1rem}

.yoji-intro{margin-bottom:1.5rem;color:var(--muted);line-height:1.8}
.yoji-results .loading,.yoji-results .no-results,.yoji-results .error{text-align:center;padding:3rem 1rem;color:var(--muted);font-size:1.1rem}
.yoji-results .error{color:#d32f2f}
.yoji-list{display:flex;flex-direction:column;gap:1rem}
.yoji-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:768px){
.yoji-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
.yoji-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.yoji-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:box-shadow .15s;display:block;color:var(--fg);text-decoration:none}
.yoji-card:hover{box-shadow:0 4px 8px rgba(0,0,0,.1);color:var(--fg);text-decoration:none}
.yoji-header{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}
h3.yoji-title{font-family:var(--font-body);font-size:1.5rem;margin:0;color:var(--link);font-weight:600}
.yoji-badges{display:flex;gap:.5rem;flex-wrap:wrap}
.yoji-badge{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;font-weight:500}
.yoji-meaning-ja{margin:0 0 .5rem;line-height:1.7;color:var(--fg)}
.yoji-meaning-en{margin:0;font-size:.95rem;color:var(--muted);line-height:1.6}

.list-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 1rem}
.yoji-list-meta{margin:0 0 1rem}


/* Kotowaza (ことわざ) page styles */
.kotowaza-page .kanji-hero-character{font-size:clamp(2rem, 8vw, 2.5rem); letter-spacing: 0.05em; padding-top: 1rem;font-weight:600;}
.kotowaza-page .phrase-hero-reading{letter-spacing:0.04em;margin-top:0.35rem}

.kotowaza-intro{margin-bottom:1.5rem;color:var(--muted);line-height:1.8}
.kotowaza-results .loading,.kotowaza-results .no-results,.kotowaza-results .error{text-align:center;padding:3rem 1rem;color:var(--muted);font-size:1.1rem}
.kotowaza-results .error{color:#d32f2f}
.kotowaza-list{display:flex;flex-direction:column;gap:1rem}
.kotowaza-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:768px){
.kotowaza-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
.kotowaza-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.kotowaza-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:box-shadow .15s;display:block;color:var(--fg);text-decoration:none}
.kotowaza-card:hover{box-shadow:0 4px 8px rgba(0,0,0,.1);color:var(--fg);text-decoration:none}
.kotowaza-header{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}
h3.kotowaza-title{font-family:var(--font-body);font-size:1.5rem;margin:0;color:var(--link);font-weight:600}
.kotowaza-badges{display:flex;gap:.5rem;flex-wrap:wrap}
.kotowaza-badge{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;font-weight:500}
.kotowaza-meaning-ja{margin:0 0 .5rem;line-height:1.7;color:var(--fg)}

.kotowaza-list-meta{margin:0 0 1rem}

/* Phrase search and reading-order directories */
.phrase-search > h1,.phrase-directory > h1{font-size:clamp(1.55rem,3vw,2rem);line-height:1.35;margin-bottom:1rem;color:var(--fg)}
.phrase-search-controls{display:grid;gap:1rem;margin:0 0 1.25rem;padding:clamp(1rem,3vw,1.35rem);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-card)}
.phrase-search-input{display:grid;gap:.45rem;font-size:.9rem;font-weight:700;color:var(--muted)}
.phrase-search-input input{width:100%;min-width:0;padding:.75rem .85rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit}
.phrase-search-input input:focus,.phrase-filter select:focus{outline:3px solid color-mix(in oklab,var(--accent) 22%,transparent);border-color:var(--accent)}
.phrase-initial-filter{min-width:0;margin:0;padding:0;border:0}
.phrase-initial-filter legend{margin-bottom:.45rem;font-size:.9rem;font-weight:700;color:var(--muted)}
.phrase-initial-buttons{display:flex;flex-wrap:wrap;gap:.4rem}
.phrase-initial-buttons button{min-width:2.65rem;padding:.5rem .55rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-elevated);color:var(--fg);font:inherit;font-weight:700;cursor:pointer}
.phrase-initial-buttons button:hover,.phrase-initial-buttons button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:color-mix(in oklab,var(--accent) 9%,var(--surface))}
.phrase-structured-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}
.phrase-filter{display:grid;gap:.4rem;font-size:.85rem;font-weight:700;color:var(--muted)}
.phrase-filter select{width:100%;min-width:0;padding:.65rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit}
.phrase-search-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.phrase-search-actions .page-btn{min-width:0;padding:.65rem 1rem;font-size:.9rem}
.page-btn--secondary{background:var(--surface-elevated);font-weight:500}
.phrase-card{display:flex;flex-direction:column;min-height:132px}
.phrase-card .niji-header,.phrase-card .sanji-header,.phrase-card .yoji-header,.phrase-card .kotowaza-header{margin-bottom:.35rem}
.phrase-card__reading{margin:0 0 .75rem;color:var(--muted);font-size:.92rem;line-height:1.55}
.phrase-card__reading--empty{font-style:italic;opacity:.75}
.phrase-card__badges{margin-top:auto;gap:.35rem}
.phrase-card__badges .niji-badge,.phrase-card__badges .sanji-badge,.phrase-card__badges .yoji-badge,.phrase-card__badges .kotowaza-badge{background:color-mix(in oklab,var(--accent) 9%,var(--surface-elevated));color:var(--fg);border:1px solid color-mix(in oklab,var(--accent) 18%,var(--border))}
.phrase-directory__intro{margin:0 0 1rem;color:var(--muted);line-height:1.75}
.phrase-list-pagination{margin:.25rem 0 1rem}
.phrase-list-pagination .is-disabled{pointer-events:none}
.phrase-search-pagination{gap:.75rem}
#niji-pagination .phrase-search-pagination .pagination-info,#sanji-pagination .phrase-search-pagination .pagination-info,#yoji-pagination .phrase-search-pagination .pagination-info,#kotowaza-pagination .phrase-search-pagination .pagination-info{flex-basis:auto;text-align:center}
.phrase-sidebar-nav{margin-bottom:1rem}

@media (max-width:600px){
  .phrase-structured-filters{grid-template-columns:1fr}
  .phrase-search-actions{display:grid;grid-template-columns:1fr}
  .phrase-search-actions .page-btn{width:100%}
}

/* ===== Utilities ===== */

/* 404 Error page styles */
.error-page{text-align:center;padding:4rem 1rem}
.error-code{font-size:3rem;font-weight:700;color:var(--accent);margin:0;line-height:1}
.error-title{font-size:1.75rem;color:var(--fg);margin:1rem 0}
.error-message{font-size:1.1rem;color:var(--muted);margin:0 0 2rem}
.error-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.btn-home,.btn-search{display:inline-block;padding:.75rem 1.5rem;border-radius:6px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;box-shadow:0 2px 4px rgba(0,0,0,.1)}
.btn-home{background:var(--accent);color:#fff}
.btn-home:hover{color:#fff}
.btn-search{background:var(--surface);color:var(--accent);border:1px solid var(--border)}
.btn-search:hover{color:var(--accent)}

@media (max-width:600px){
.kanji-hero--split{gap:0.5rem}
.reading-group{gap:.65rem;padding:.6rem .75rem}
.reading-label{width:1.95rem;height:1.6rem;font-size:.78rem}
.reading-value{font-size:1.05rem}
.filter-group{grid-template-columns:1fr}
.welcome-section{padding:1rem 0}
.welcome-section h2{font-size:1.5rem}
.footer-content{grid-template-columns:1fr;gap:1.5rem}
.site-footer{padding:2rem 1rem 1rem}
.error-code{font-size:5rem}
.error-title{font-size:1.5rem}
.error-actions{flex-direction:column;align-items:center}
.kanji-section-page--radical-index .radical-grid,
.kanji-section-page--stroke-index .radical-grid,
.kanji-section-page--reading-index .radical-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}
.kanji-section-page--radical-index .radical-card,
.kanji-section-page--stroke-index .radical-card,
.kanji-section-page--reading-index .radical-card{min-height:72px;padding:.45rem .25rem;border-radius:10px}
.kanji-section-page--radical-index .radical-card__glyph,
.kanji-section-page--stroke-index .radical-card__glyph,
.kanji-section-page--reading-index .radical-card__glyph{font-size:1.4rem;line-height:1.05}
.kanji-section-page--radical-index .radical-card__label{font-size:.8rem}
.kanji-section-page--radical-index .radical-card__count,
.kanji-section-page--stroke-index .radical-card__count,
.kanji-section-page--reading-index .radical-card__count{font-size:.8rem;line-height:1.3}

.kanji-section-page--kanken-index .radical-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.kanji-section-page--kanken-index .radical-card{min-height:85px;padding:.6rem .4rem;border-radius:10px}
.kanji-section-page--kanken-index .radical-card__glyph{font-size:1.15rem;line-height:1.1}
.kanji-section-page--kanken-index .radical-card__label{font-size:.8rem}
.kanji-section-page--kanken-index .radical-card__count{font-size:.78rem;line-height:1.1}

}

/* Breadcrumb navigation at the bottom of entries */
.entry-breadcrumbs {
  margin-top: 2.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
  font-size: 0.875rem;
  color: var(--muted);
}
.entry-breadcrumbs .breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.35rem 0.5rem;
}
.entry-breadcrumbs .breadcrumb-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.entry-breadcrumbs .breadcrumb-item a {
  color: var(--link);
  text-decoration: none;
  transition: color 0.15s;
}
.entry-breadcrumbs .breadcrumb-item a:hover {
  color: var(--link-hover);
  text-decoration: underline;
}
.entry-breadcrumbs .breadcrumb-separator {
  color: color-mix(in oklab, var(--muted) 60%, transparent);
  font-size: 0.75rem;
  user-select: none;
}
.entry-breadcrumbs .breadcrumb-current {
  color: var(--fg);
  font-weight: 500;
}
