/*
Theme Name: Ichigo Ichie
Theme URI: https://example.com/ichigo-ichie
Author: Lili
Description: A minimalist archaeology news theme built on Japanese design principles — ichigo ichie (一期一会), one time, one meeting: every layer exposed is a moment that will never come again. Clean editorial layout with natural color images. Fast, lightweight, SEO-sane markup.
Version: 1.1.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: ichigo-ichie
*/

/* ==========================================================================
   TOKENS
   ========================================================================== */

:root{
  --paper: #ffffff;
  --ink: #0a0a0a;
  --ink-60: rgba(10,10,10,.6);
  --ink-35: rgba(10,10,10,.35);
  --ink-12: rgba(10,10,10,.12);
  --ink-06: rgba(10,10,10,.06);

  --serif: Georgia, "Times New Roman", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

  --rule: 1px solid var(--ink-12);
  --ma: clamp(1.25rem, 4vw, 4rem);
  --max: 1280px;
  --max-text: 680px;

  --speed: 180ms;
  --ease: cubic-bezier(.4,0,.2,1);
}

/* ==========================================================================
   RESET
   ========================================================================== */

*,*::before,*::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--ink); text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; background:none; border:none; color:var(--ink); cursor:pointer; }
input,textarea{ font-family:inherit; }
::selection{ background:var(--ink); color:var(--paper); }

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

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  line-height:1.25;
  margin:0;
  letter-spacing:.01em;
}
h1{ font-size:clamp(2rem, 5vw, 3.4rem); font-weight:600; }
h2{ font-size:clamp(1.3rem, 2.4vw, 1.7rem); }
h3{ font-size:1.1rem; }
p{ margin:0 0 1.2em; max-width:var(--max-text); }
.eyebrow{
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-60);
}

/* ==========================================================================
   LAYOUT SHELL
   ========================================================================== */

.wrap{ max-width:var(--max); margin:0 auto; padding-inline:var(--ma); }
.site{ display:flex; flex-direction:column; min-height:100vh; padding-top:64px; }
.site-main{ flex:1; }
.strata{ border:none; border-top:var(--rule); margin:0; }
.strata--thick{ border-top-width:2px; border-color:var(--ink); }

/* ==========================================================================
   HEADER — wordmark left, menu/search controls right
   ========================================================================== */

.site-header{
  border-bottom:0;
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:50;
  background:var(--paper);
}

body.admin-bar .site-header{ top:32px; }
@media (max-width: 782px){ body.admin-bar .site-header{ top:46px; } }

.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:64px;
  gap:1.5rem;
}
.site-title{
  margin:0;
  padding:0;
  font-family:var(--serif);
  font-size:1.2rem;
  font-weight:600;
  letter-spacing:.02em;
  line-height:1;
  white-space:nowrap;
  text-transform:uppercase;
}
.site-title a{ display:flex; align-items:baseline; gap:.5rem; }
.site-title .mark{ font-family:var(--mono); font-size:.65rem; color:var(--ink-60); letter-spacing:.08em; text-transform:none; }

.header-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1.35rem;
  min-width:0;
}
.header-buttons{ display:flex; align-items:center; gap:.95rem; }

.primary-nav ul{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
}
.primary-nav li{ display:flex; align-items:center; }
.primary-nav li + li::before{
  content:"·";
  color:var(--ink-35);
  margin-inline:.7rem;
  font-family:var(--mono);
}
.primary-nav a{
  color:var(--ink);
  -webkit-text-fill-color:var(--ink);
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.primary-nav a:hover{ color:var(--ink-60); }

.nav-toggle,
.search-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.12em;
  line-height:1;
  text-transform:uppercase;
  border:1px solid var(--ink-12);
  color:var(--ink);
  -webkit-text-fill-color:var(--ink);
  padding:.55rem .9rem;
}
.nav-toggle{ display:none; }
.nav-toggle:hover,
.search-toggle:hover{ border-color:var(--ink); color:var(--ink); }
.nav-toggle:visited,
.search-toggle:visited{ color:var(--ink); }

.header-search{
  position:absolute;
  top:64px;
  left:0;
  right:0;
  z-index:60;
  background:var(--paper);
  border-bottom:0;
  padding-block:1rem;
}
.header-search[hidden]{ display:none; }
.header-search .wrap{ min-height:0; justify-content:flex-end; }
.header-search .search-form{ width:min(100%, 420px); }

@media (max-width: 760px){
  .site-title{ font-size:1rem; }
  .site-title .mark{ display:none; }
  .header-controls{ margin-left:auto; gap:1rem; }
  .header-buttons{ gap:1.05rem; }
  .primary-nav{
    display:none;
    position:absolute;
    top:64px; left:0; right:0;
    z-index:60;
    background:var(--paper);
    border-bottom:var(--rule);
    padding: 1.25rem var(--ma) 1.5rem;
  }
  .primary-nav.is-open{ display:block; }
  .primary-nav ul{ flex-direction:column; align-items:flex-start; gap:1.05rem; }
  .primary-nav li{ width:100%; }
  .primary-nav li + li::before{ content:none; }
  .primary-nav a{ color:var(--ink); -webkit-text-fill-color:var(--ink); font-size:.82rem; }
  .nav-toggle{ display:inline-flex; }
  .header-search .search-form{ width:100%; }
}

/* ==========================================================================
   HOME HERO — three featured articles, no slider bloat
   ========================================================================== */

.home-hero{
  padding-block:clamp(1.5rem,3vw,2.5rem) clamp(1.75rem,4vw,3rem);
  border-bottom:0;
}
.home-hero-header{
  display:flex;
  align-items:center;
  gap:.8rem;
  margin-bottom:1.45rem;
}
.home-hero-header::after{
  content:none;
}
.home-hero-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.25rem,3vw,2.5rem);
}
.home-hero-card{
  display:grid;
  gap:.9rem;
  min-width:0;
}
.home-hero-image{
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius:14px;
  background:var(--ink-06);
}
.home-hero-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s var(--ease);
}
.home-hero-image:hover img{ transform:scale(1.025); }
.home-hero-copy{ display:grid; gap:.45rem; }
.home-hero-copy .eyebrow{ font-size:.64rem; letter-spacing:.12em; }
.home-hero-copy h2{
  font-size:clamp(1.12rem,1.8vw,1.45rem);
  line-height:1.28;
}
.home-hero-copy h2 a:hover{ text-decoration:underline; }

@media (max-width: 900px){
  .home-hero-grid{ grid-template-columns:1fr; gap:1.35rem; }
  .home-hero-card{ grid-template-columns:120px minmax(0,1fr); align-items:center; }
  .home-hero-image{ aspect-ratio:4/3; border-radius:10px; }
}
@media (max-width: 560px){
  .home-hero-card{ grid-template-columns:96px minmax(0,1fr); }
  .home-hero-copy h2{ font-size:1rem; }
}

/* ==========================================================================
   FEED — 2-per-row, image-left / text-right cards, paginated
   ========================================================================== */

.archive-header{ padding-block:1rem 1.5rem; }
.archive-header .eyebrow{ display:block; margin-bottom:.5rem; }

.feed-section{ padding-block: clamp(2rem,4vw,3rem) 1rem; content-visibility:auto; contain-intrinsic-size: 900px; }
.feed-section .section-label{
  display:flex; align-items:center; gap:.8rem;
  margin-bottom:1.75rem;
}
.feed-section .section-label::after{
  content:none;
}

.feed-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem var(--ma);
}
.feed-card{
  display:grid;
  grid-template-columns: 130px 1fr;
  gap: 1.1rem;
  padding-block:1.5rem;
  border-top:var(--rule);
}
.feed-grid .feed-card:nth-child(1),
.feed-grid .feed-card:nth-child(2){ border-top:none; }

.feed-card figure{
  aspect-ratio: 1/1;
  overflow:hidden;
  background:var(--ink-06);
  margin:0;
  border-radius:8px;
}
.feed-card figure img{ width:100%; height:100%; object-fit:cover; }
.feed-card .eyebrow{ display:block; margin-bottom:.4rem; }
.feed-card h3{ font-size:1rem; line-height:1.4; margin-bottom:.4rem; }
.feed-card h3 a:hover{ text-decoration:underline; }
.feed-card .excerpt{ color:var(--ink-60); font-size:.85rem; margin:0; }


@media (max-width: 760px){
  .feed-grid{ grid-template-columns:1fr; gap:0; }
  .feed-grid .feed-card:nth-child(2){ border-top:var(--rule); }
  .feed-card{ grid-template-columns:96px 1fr; }
}

/* Pagination */
.pagination{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding-top:2.5rem;
  margin-top:1rem;
  border-top:var(--rule);
}
.pagination .nav-previous,
.pagination .nav-next{ min-width:1px; color:var(--ink); -webkit-text-fill-color:var(--ink); }
.pagination a,
.pagination span,
.pagination button{
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.pagination button{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--ink);
  padding:0;
  cursor:pointer;
}
.pagination button:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.pagination.is-loading{ opacity:.65; }
.pagination-status{ color:var(--ink-60); }
.pagination .nav-previous a::before,
.pagination button.nav-previous::before{ content:"← "; }
.pagination .nav-next a::after,
.pagination button.nav-next::after{ content:" →"; }

/* ==========================================================================
   SINGLE POST
   ========================================================================== */


.breadcrumbs{
  max-width:820px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.45rem;
  margin-bottom:1.2rem;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.04em;
  color:var(--ink-60);
}
.breadcrumbs a{ color:var(--ink); -webkit-text-fill-color:var(--ink); }
.breadcrumbs a:hover{ text-decoration:underline; }
.breadcrumbs span[aria-current="page"]{ color:var(--ink-60); }

.single-entry{ padding-block: clamp(2rem,5vw,3.5rem); content-visibility:auto; contain-intrinsic-size: 1000px; }
.single-entry .entry-header{ max-width:820px; margin-bottom:2rem; }
.single-entry .entry-header .eyebrow{ display:block; margin-bottom:1rem; }
.single-entry .entry-header h1{ margin-bottom:1rem; }
.single-entry .byline{ display:flex; gap:1rem; color:var(--ink-60); font-size:.85rem; }
.single-entry .featured-figure{ margin:2.5rem 0; aspect-ratio:16/9; overflow:hidden; background:var(--ink-06); }
.single-entry .featured-figure img{ width:100%; height:100%; object-fit:cover; }
.single-entry .featured-figure figcaption{
  font-family:var(--mono); font-size:.72rem; color:var(--ink-60);
  margin-top:.6rem; letter-spacing:.02em;
}
.entry-content{ max-width:820px; font-size:1.06rem; }
.entry-content > *:first-child{ margin-top:0; }
.entry-content h2{ margin:2.4em 0 .8em; }
.entry-content h3{ margin:2em 0 .6em; }
.entry-content blockquote{
  border-left:2px solid var(--ink);
  padding-left:1.4rem;
  margin:2rem 0;
  font-family:var(--serif);
  font-style:italic;
  color:var(--ink-60);
}
.entry-content a{ border-bottom:1px solid var(--ink-35); }
.entry-content a:hover{ border-bottom-color:var(--ink); }
.entry-content figure{ margin:2rem 0; }
.entry-content figcaption{ font-family:var(--mono); font-size:.72rem; color:var(--ink-60); margin-top:.5rem; }

.tags-line{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:2.5rem; padding-top:1.5rem; border-top:var(--rule); }
.tags-line a{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.3rem .7rem; border:1px solid var(--ink-12);
}
.tags-line a:hover{ border-color:var(--ink); }

.with-sidebar{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(240px, 3fr); gap:clamp(2rem, 4vw, 3.5rem); align-items:start; }
.theme-sidebar{ padding-block:clamp(2rem, 5vw, 3.5rem); position:sticky; top:88px; }
.theme-sidebar-inner{ border-left:var(--rule); padding-left:clamp(1.25rem, 2vw, 1.8rem); }
.theme-sidebar-title{ font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-60); margin-bottom:1rem; }
.theme-random-list{ display:grid; gap:0; }
.theme-random-item{ border-top:var(--rule); }
.theme-random-item:first-child{ border-top:none; }
.theme-random-link{ display:grid; grid-template-columns:74px minmax(0, 1fr); gap:.85rem; align-items:center; padding:.85rem 0; color:var(--ink); -webkit-text-fill-color:var(--ink); }
.theme-random-thumb{ display:block; aspect-ratio:4/3; overflow:hidden; border-radius:8px; background:var(--ink-06); }
.theme-random-thumb img{ width:100%; height:100%; object-fit:cover; }
.theme-random-title{ font-family:var(--serif); font-size:.96rem; line-height:1.32; letter-spacing:.005em; }
.theme-random-link:hover .theme-random-title{ text-decoration:underline; }
@media (max-width: 900px){
	.with-sidebar{ grid-template-columns:1fr; }
	.theme-sidebar{ position:static; padding-top:0; }
	.theme-sidebar-inner{ border-left:none; padding-left:0; border-top:var(--rule); padding-top:1.5rem; }
	.theme-random-link{ grid-template-columns:86px minmax(0, 1fr); }
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.site-footer{ border-top:0; margin-top: clamp(3rem,6vw,5rem); }
.footer-bottom{
  border-top:none;
  padding-block:1.45rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.04em;
  color:var(--ink-60);
}
.footer-copy{ color:var(--ink-60); margin-left:auto; text-align:right; }
.footer-links{ display:flex; align-items:center; flex-wrap:wrap; gap:.9rem; }
.footer-links a{ color:var(--ink); -webkit-text-fill-color:var(--ink); }
.footer-links a + a::before{ content:"|"; color:var(--ink-35); margin-right:.9rem; }
.footer-links a:hover{ text-decoration:underline; }
@media (max-width: 760px){
  .footer-bottom{ align-items:flex-start; flex-direction:column; gap:.85rem; }
  .footer-copy{ margin-left:0; text-align:left; }
}

/* ==========================================================================
   UTILITIES
   ========================================================================== */

.screen-reader-text{
  position:absolute !important;
  clip:rect(1px,1px,1px,1px);
  overflow:hidden; height:1px; width:1px;
  word-wrap:normal !important;
}
.skip-link{
  position:absolute; left:-999px; top:0; z-index:9999;
  background:var(--ink); color:var(--paper); padding:.8rem 1.2rem;
}
.skip-link:focus{ left:var(--ma); }
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:2px solid var(--ink); outline-offset:2px;
}
.search-form{ display:flex; border:var(--rule); }
.search-form input[type="search"]{
  flex:1; border:none; padding:.6rem .9rem; font-size:.85rem; background:none; color:var(--ink); -webkit-text-fill-color:var(--ink);
}
.search-form button{ padding:.6rem .9rem; border-left:var(--rule); color:var(--ink); -webkit-text-fill-color:var(--ink); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; }

.alignwide{ width:100%; }
.aligncenter{ margin-left:auto; margin-right:auto; }
.wp-caption-text{ font-family:var(--mono); font-size:.72rem; color:var(--ink-60); }

/* Mobile image balance: keep desktop unchanged. */
@media (max-width: 760px){
  .home-hero-grid{ gap:1.75rem; }
  .home-hero-card{ grid-template-columns:1fr; align-items:start; gap:.85rem; }
  .home-hero-image{ width:100%; aspect-ratio:16/9; border-radius:12px; }
  .home-hero-copy h2{ font-size:1.08rem; line-height:1.28; }
  .feed-card{ grid-template-columns:clamp(128px, 38vw, 210px) minmax(0,1fr); align-items:stretch; gap:1rem; padding-block:1.35rem; }
  .feed-card > a{ display:block; min-height:100%; }
  .feed-card figure{ height:100%; min-height:clamp(118px, 32vw, 150px); aspect-ratio:auto; }
  .feed-card .eyebrow,
  .feed-card .excerpt{ display:none; }
  .feed-card h3{ margin-bottom:0; }
}
@media (max-width: 420px){
  .feed-card{ grid-template-columns:clamp(120px, 43vw, 165px) minmax(0,1fr); gap:.9rem; }
  .feed-card figure{ min-height:clamp(112px, 35vw, 142px); }
}
