/*
Theme Name: AI쓰임
Theme URI: https://aisseum.com
Author: 윤지선
Author URI: https://aisseum.com/author/yoon-jisun/
Description: Paperlogy 타이포그래피, 3D 히어로와 실전 가이드 JSON 렌더러를 갖춘 AI쓰임 classic WordPress 테마입니다.
Version: 1.0.9
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aisseum
Tags: blog, news, custom-menu, featured-images, accessibility-ready, wide-blocks
*/

/* Final WordPress integration and audited accessibility overrides.
   This file loads after globals.css and editorial.css. */
:root {
  --blue: #3345dc;
  --blue-deep: #2939c4;
  --muted: #555761;
}

html { scroll-padding-top: calc(var(--header-height) + 24px); }
body.admin-bar .site-header { top: 32px; }
body.admin-bar .mobile-menu { top: calc(var(--header-height) + 32px); }

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
  body.admin-bar .mobile-menu { top: calc(var(--header-height) + 46px); }
}

.menu-list,
.menu-list ul,
.footer-menu {
  display: contents;
  margin: 0;
  padding: 0;
  list-style: none;
}

.desktop-nav .menu-list {
  display: flex;
  align-items: center;
  gap: clamp(22px, 2.4vw, 42px);
}

.mobile-menu nav .menu-list {
  display: flex;
  flex-direction: column;
}

.mobile-menu nav li { display: contents; }
.mobile-menu nav a { width: 100%; }
.mobile-menu nav a::before {
  content: attr(data-index);
  color: var(--lime);
  font-size: 10px;
  font-weight: 700;
}

.mobile-menu nav a::after {
  content: "↗";
  font-size: 19px;
  font-weight: 400;
}

.desktop-nav a,
.guide-card-head,
.guide-card-foot,
.article-breadcrumb,
.article-toc a,
.search-suggestions button,
.search-status,
.search-result small,
.category-directory-index,
.category-directory-count,
.editorial-meta span,
.section-kicker {
  color: var(--ink-soft);
}

.section-kicker,
.category-directory-index,
.search-result small,
.article-category,
.editorial-kicker { color: var(--blue-deep); }

.weekly-use .light-kicker { color: var(--lime); }

.mobile-menu :focus-visible,
.site-footer :focus-visible,
.dark :focus-visible,
.weekly-use :focus-visible,
.theme-dark :focus-visible,
.not-found :focus-visible { outline-color: var(--lime); }

.guide-content .guide-card-copy > p,
.guide-content .guide-card-top,
.guide-content .guide-card-meta {
  color: rgba(255,255,255,.94);
}

.theme-dark .editorial-description,
.dark .section-lead > p,
.dark .method-card p,
.not-found p { color: rgba(255,255,255,.82); }

.menu-kicker,
.mobile-menu-note { color: rgba(255,255,255,.78); }

.screen-reader-text,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.screen-reader-text:focus {
  top: 16px;
  left: 16px;
  z-index: 100001;
  width: auto !important;
  height: auto !important;
  padding: 12px 16px !important;
  clip: auto !important;
  background: var(--white);
  color: var(--ink);
}

/* The 404 begins in obsidian, so its fixed header is intentionally dark from frame one. */
.error404 .site-header::before {
  opacity: 1;
  background: rgba(17,19,26,.9);
}

.error404 .site-header {
  border-bottom-color: rgba(255,255,255,.16);
}

.error404 .site-header .brand,
.error404 .site-header .desktop-nav a { color: var(--white); }
.error404 .site-header .brand-mark { background: var(--white); }
.error404 .site-header .brand-mark::before,
.error404 .site-header .brand-mark::after { border-color: rgba(17,18,25,.78); }
.error404 .site-header .search-action { border-color: rgba(255,255,255,.45); }
.error404 .site-header .search-action span { border-color: var(--white); }
.error404 .site-header .search-action span::after { background: var(--white); }
.error404 .site-header .desktop-nav a::after { background: var(--lime); }

.site-main { min-height: 60vh; }

.wp-block-image img,
.article-body img,
.document-body img {
  max-width: 100%;
  height: auto;
  border-radius: 18px;
}

.article-body iframe,
.document-body iframe { max-width: 100%; }

.article-body table,
.document-body table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.article-body th,
.article-body td,
.document-body th,
.document-body td {
  padding: 12px 14px;
  border: 1px solid var(--line);
  text-align: left;
}

.article-body > .content-fallback > *:first-child,
.document-body > .entry-content > *:first-child { margin-top: 0; }

.article-body pre,
.document-body pre,
.example-card pre,
.prompt-box pre {
  max-width: 100%;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.pagination,
.nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 64px;
}

.page-numbers {
  display: grid;
  min-width: 44px;
  min-height: 44px;
  padding: 10px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
}

.page-numbers.current {
  border-color: var(--blue);
  background: var(--blue);
  color: var(--white);
}

.archive-description {
  max-width: 760px;
  margin: -28px 0 58px;
  color: var(--ink-soft);
  font-size: 17px;
  line-height: 1.8;
}

.empty-result { border: 1px solid var(--line); }
.empty-result strong { display: block; margin-bottom: 10px; }

.search-input-wrap { display: block; }
.search-input-wrap .search-submit {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 14px;
  display: grid;
  width: 54px;
  height: 54px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--blue-deep);
  cursor: pointer;
  transform: translateY(-50%);
}
.search-input-wrap .search-submit span {
  position: static;
  color: inherit;
  transform: none;
}

.email-link {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.contact-panel .email-link .email-address,
.email-link .email-address {
  display: block;
  min-width: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.contact-panel .email-link .email-arrow,
.email-link .email-arrow { display: grid; flex: 0 0 auto; }

.contact-panel .email-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  width: fit-content;
}

.article-featured {
  margin: 0 0 46px;
  overflow: hidden;
  border-radius: 24px;
  background: var(--paper-deep);
}

.article-featured img { display: block; width: 100%; }

.revision-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.revision-list li {
  padding: 18px 20px;
  border-left: 3px solid var(--blue);
  background: var(--white);
  line-height: 1.7;
}

.footer-navs,
.footer-column,
.footer-contact,
.footer-column a { min-width: 0; }
.footer-column a { overflow-wrap: anywhere; }

/* Audited normal-text contrast: labels remain subtle without dropping below AA. */
.paper-sheet > span,
.visual-caption,
.hero-bottom,
.outcome-number,
.outcome-row small,
.outcome-before p,
.outcome-tag,
.guide-card-top > span,
.guide-card-copy > p,
.guide-card-meta,
.demo-output > p,
.brief-line span,
.brief-grid span,
.brief-tasks > span,
.principle-grid small,
.article-breadcrumb,
.article-toc p,
.article-toc a,
.example-card span,
.search-suggestions button {
  color: var(--ink-soft);
}

.footer-column p,
.footer-bottom { color: rgba(255,255,255,.72); }

@media (max-width: 760px) {
  .desktop-nav .menu-list { display: none; }
  .contact-panel { padding: 42px 28px; }
  .contact-panel .email-link { width: 100%; gap: 12px; font-size: clamp(15px, 4.2vw, 18px); }
  .contact-panel .email-link .email-arrow { display: grid; width: 42px; height: 42px; }
  .footer-navs { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 34px 18px; }
  .footer-column { width: 100%; }
}

@media (max-width: 380px) {
  .contact-panel { padding: 36px 20px; }
  .footer-navs { grid-template-columns: minmax(0,1fr); }
  .footer-column a { width: fit-content; max-width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-object-wrap { --tilt-x: 0deg !important; --tilt-y: 0deg !important; }
}
