/* WOWSight Theme B - Open Design: Editorial × Modern Minimal */
:root {
  --ws-primary: #C31023;
  --ws-primary-hover: #A00D1C;
  --ws-bg: #FAFAFA;
  --ws-surface: #FFFFFF;
  --ws-text: #1A1A1A;
  --ws-text-secondary: #6B6B6B;
  --ws-border: #E5E5E5;
  --ws-radius: 0px;
  --ws-transition: 180ms ease;
  --ws-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, 'Noto Sans TC', sans-serif;
  --ws-font-heading: 'Iowan Old Style', 'Charter', 'Noto Serif TC', Georgia, serif;
  --ws-font-mono: ui-monospace, 'JetBrains Mono', monospace;
  --ws-content-width: 720px;
  --ws-wide-width: 1200px;
}

[data-theme="dark"] {
  --ws-bg: #0A0A0A;
  --ws-surface: #141414;
  --ws-text: #F5F5F5;
  --ws-text-secondary: #999;
  --ws-border: #2A2A2A;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  background: #FAFAFA !important;
  background: var(--ws-bg) !important;
  color: var(--ws-text);
  font-family: var(--ws-font-body);
  font-size: 1rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  transition: background var(--ws-transition), color var(--ws-transition);
  margin: 0;
}

a { color: inherit; text-decoration: none; }
a:hover { color: var(--ws-primary); }
img { max-width: 100%; height: auto; border-radius: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
:focus-visible { outline: 2px solid var(--ws-primary); outline-offset: 2px; }
button, [role="button"], a { cursor: pointer; }

/* Header - thin, serif logo area, no borders except bottom hairline */
.ws-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--ws-surface);
  border-bottom: 1px solid var(--ws-border);
  padding: 0.875rem 2rem;
  transition: background var(--ws-transition);
}

.ws-header__inner {
  max-width: var(--ws-wide-width);
  margin: 0 auto;
  align-items: center;
  gap: 2.5rem;
}

.ws-header__nav a {
  font-family: var(--ws-font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ws-text-secondary);
}
.ws-header__nav a:hover { color: var(--ws-primary); }

.ws-theme-toggle {
  background: none;
  border: 1px solid var(--ws-border);
  border-radius: 50%;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  color: var(--ws-text-secondary);
  transition: all var(--ws-transition);
}
.ws-theme-toggle:hover { border-color: var(--ws-primary); color: var(--ws-primary); }

[data-theme="dark"] .ws-icon-sun { display: block; }
[data-theme="dark"] .ws-icon-moon { display: none; }
:root:not([data-theme="dark"]) .ws-icon-sun { display: none; }
:root:not([data-theme="dark"]) .ws-icon-moon { display: block; }

/* Hero - editorial: one decisive image, no overlay tricks, text below */
.ws-hero__item {
  position: relative;
  overflow: hidden;
  margin-bottom: 4rem;
}

.ws-hero__image img {
  width: 100%;
  object-fit: cover;
  object-position: center top;
}

.ws-hero__overlay {
  position: relative;
  padding: 2rem 0 0;
  background: none;
}

.ws-hero__cat a {
  font-family: var(--ws-font-mono);
  font-size: 0.65rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ws-primary) !important;
  background: none;
  padding: 0;
  border-bottom: 1px solid var(--ws-primary);
}

.ws-hero__title {
  font-family: var(--ws-font-heading);
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-top: 0.75rem !important;
  color: var(--ws-text) !important;
}
.ws-hero__title a { color: inherit !important; }
.ws-hero__title a:hover { color: var(--ws-primary) !important; }

.ws-hero__date {
  font-family: var(--ws-font-mono);
  font-size: 0.75rem;
  color: var(--ws-text-secondary) !important;
  font-variant-numeric: tabular-nums;
  margin-top: 0.5rem;
}

/* Cards - no shadows, no radius, hairline border only */
.ws-card {
  background: var(--ws-surface);
  overflow: hidden;
  border: 1px solid var(--ws-border);
  transition: border-color var(--ws-transition);
}
.ws-card:hover { border-color: var(--ws-text); }

.ws-card__image img { width: 100%; object-fit: cover; }

.ws-card__content { padding: 1.25rem 1.25rem 1.5rem; }

.ws-card__cat a {
  font-family: var(--ws-font-mono);
  font-size: 0.65rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ws-primary) !important;
}

.ws-card__title {
  font-family: var(--ws-font-heading);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
  margin-top: 0.5rem !important;
}
.ws-card__title a { color: var(--ws-text) !important; }
.ws-card__title a:hover { color: var(--ws-primary) !important; }

.ws-card__date {
  font-family: var(--ws-font-mono);
  font-size: 0.7rem;
  color: var(--ws-text-secondary);
  font-variant-numeric: tabular-nums;
  margin-top: 0.5rem;
}

/* Featured */
.ws-featured__grid { gap: 1.25rem; margin-bottom: 4rem; }

/* Latest - clean horizontal list, generous whitespace */
.ws-latest__item {
  display: flex;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px solid var(--ws-border);
  align-items: flex-start;
}

.ws-latest__image { flex-shrink: 0; width: 260px; }
.ws-latest__image img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }

.ws-latest__title {
  font-family: var(--ws-font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
}
.ws-latest__title a { color: var(--ws-text) !important; }
.ws-latest__title a:hover { color: var(--ws-primary) !important; }

.ws-latest__excerpt { color: var(--ws-text-secondary); font-size: 0.9rem; margin-top: 0.5rem; line-height: 1.6; }

/* Section Title - minimal: just text + thin red underline */
.ws-section-title {
  font-family: var(--ws-font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ws-primary);
  margin-bottom: 1.5rem !important;
  display: inline-block;
}

/* Single */
.ws-single__hero img { width: 100%; max-height: 65vh; object-fit: cover; }
.ws-single__container { padding-top: 2.5rem; }
.ws-single__title {
  font-family: var(--ws-font-heading);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.ws-single__meta {
  font-family: var(--ws-font-mono);
  color: var(--ws-text-secondary);
  font-size: 0.8rem;
  gap: 1rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--ws-border);
  margin-bottom: 2rem !important;
  font-variant-numeric: tabular-nums;
}
.ws-single__content { font-size: 1.0625rem; line-height: 1.85; }
.ws-single__content img { margin: 2rem 0; }
.ws-single__tags a {
  display: inline-block;
  border: 1px solid var(--ws-border);
  padding: 0.2rem 0.6rem;
  font-family: var(--ws-font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.02em;
  margin: 0.2rem;
}
.ws-single__tags a:hover { border-color: var(--ws-primary); color: var(--ws-primary); }

/* Share */
.ws-share { padding: 2rem 0; margin-top: 2rem !important; border-top: 1px solid var(--ws-border); gap: 1rem; }
.ws-share__label { font-weight: 600; font-size: 0.8rem; font-family: var(--ws-font-mono); text-transform: uppercase; letter-spacing: 0.05em; }

/* Related */
.ws-related { padding: 4rem 0; margin-top: 4rem !important; border-top: 1px solid var(--ws-border); }

/* Archive */
.ws-archive__title { font-family: var(--ws-font-heading); font-size: 2rem; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 2.5rem !important; }

/* 404 */
.ws-404 { text-align: center; padding: 8rem 2rem; }
.ws-404__title { color: var(--ws-primary) !important; font-family: var(--ws-font-heading); }

/* Footer - restrained */
.ws-footer {
  background: var(--ws-surface);
  border-top: 1px solid var(--ws-border);
  padding: 3rem 2rem 2rem;
  margin-top: 5rem;
}
.ws-footer__inner { gap: 2rem; }
.ws-footer__desc { color: var(--ws-text-secondary); font-size: 0.875rem; }
.ws-footer__nav a { font-size: 0.8rem; color: var(--ws-text-secondary); font-family: var(--ws-font-mono); }
.ws-footer__nav a:hover { color: var(--ws-primary); }
.ws-footer__social-links .wp-social-link { background: transparent !important; border: 1px solid var(--ws-border); border-radius: 0; }
.ws-footer__social-links .wp-social-link:hover { border-color: var(--ws-primary); background: var(--ws-primary) !important; }
.ws-footer__divider { border-color: var(--ws-border) !important; margin: 2rem 0 !important; }
.ws-footer__copyright { color: var(--ws-text-secondary); font-size: 0.8rem; }

/* Pagination */
.wp-block-query-pagination { margin-top: 2.5rem; gap: 0.25rem; }
.wp-block-query-pagination-numbers .page-numbers,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next { padding: 0.4rem 0.9rem; border: 1px solid var(--ws-border); font-size: 0.8rem; font-family: var(--ws-font-mono); }
.wp-block-query-pagination-numbers .page-numbers.current,
.wp-block-query-pagination-numbers .page-numbers:hover { background: var(--ws-text); color: var(--ws-bg); border-color: var(--ws-text); }

/* Grid */
.ws-post-grid { gap: 1.25rem; }

/* Main */
.ws-main { padding: 2.5rem 2rem; }

/* Responsive */
@media (max-width: 1024px) {
  .ws-main { padding: 2rem 1.5rem; }
}
@media (max-width: 768px) {
  .ws-header { padding: 0.625rem 1rem; }
  .ws-main { padding: 1.25rem 1rem; }
  .ws-hero__title { font-size: 1.5rem; }
  .ws-featured__grid,
  .ws-post-grid { grid-template-columns: 1fr !important; }
  .ws-latest__item { flex-direction: column; gap: 1rem; }
  .ws-latest__image { width: 100%; }
  .ws-footer__inner { flex-direction: column; }
}
@media (max-width: 375px) {
  .ws-card__title { font-size: 1rem; }
  .ws-single__title { font-size: 1.5rem; }
}
