/* ==========================================================================
   gw.korea — shared stylesheet
   Extracted from the static publisher template.
   Base rules = index.html; page-specific differences are scoped by the
   <body> class (page-home, page-journals, page-journal, page-about, ...).
   ========================================================================== */
* { margin:0; padding:0; box-sizing:border-box; }
:root {
    --navy:#0F2540; --navy-2:#1E3A5F; --gold:#C9A961; --gold-2:#E8C97A;
    --ink:#1A202C; --gray:#4A5568; --light:#F5F7FA; --line:#E2E8F0;
}
body { font-family:'Inter',Arial,sans-serif; color:var(--ink); line-height:1.65; background:#fff; }
h1,h2,h3,h4 { font-family:'Playfair Display',Georgia,serif; color:var(--navy); }
a { text-decoration:none; }
.page-home img { display:block; max-width:100%; }
[hidden] { display:none !important; }

/* ---------- Top strip ---------- */
.top-strip { background:var(--navy); color:#cbd5e0; font-size:13px; }
.top-strip .inner { max-width:1280px; margin:0 auto; padding:8px 24px; display:flex; justify-content:space-between; align-items:center; }
.top-links { display:flex; align-items:center; gap:0; margin-left:16px; }
.top-links a { color:#cbd5e0; margin-left:14px; }
.top-links a:hover { color:var(--gold-2); }

/* ---------- Header / nav ---------- */
header { background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }
nav { max-width:1280px; margin:0 auto; padding:18px 24px; display:flex; justify-content:space-between; align-items:center; }
.brand { display:flex; align-items:center; gap:12px; color:inherit; }
.brand-mark { width:auto; min-width:40px; height:40px; background:var(--navy); color:var(--gold); display:flex; align-items:center; justify-content:center; font-family:'Playfair Display'; font-weight:700; font-size:20px; border-radius:3px; flex:0 0 auto; }
.brand-name { font-family:'Playfair Display'; font-size:20px; font-weight:700; color:var(--navy); line-height:1.1; }
.brand-sub { font-size:11px; color:var(--gray); letter-spacing:1px; }
/* logo from the API (/site/info logo) inside the brand mark */
.brand-mark.has-logo { background:#fff; padding:2px; }
.brand-mark img { width:auto; height:100%; object-fit:contain; display:block; }
.menu { display:flex; gap:26px; align-items:center; flex-wrap:wrap; }
.page-home .menu { gap:28px; }
.menu a { color:var(--ink); font-size:15px; font-weight:500; }
.menu a:hover { color:var(--gold); }
.menu a.active { color:var(--gold); }
.menu .cta { background:var(--navy); color:#fff; padding:9px 18px; border-radius:3px; }
.menu .cta:hover { background:var(--navy-2); }
.menu .cta.active { color:#fff; }
.burger { display:none; background:none; border:0; color:var(--navy); cursor:pointer; line-height:1; font-family:inherit; }

/* ---------- Home hero ---------- */
.hero { position:relative; color:#fff; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background:linear-gradient(115deg, rgba(15,37,64,.94) 0%, rgba(30,58,95,.88) 55%, rgba(15,37,64,.75) 100%), url('/assets/img/photo-1481627834876-b7833e8f5570-w1600.jpg') center/cover; }
.hero-inner { position:relative; max-width:1280px; margin:0 auto; padding:110px 24px 130px; }
.hero .eyebrow { color:var(--gold-2); letter-spacing:3px; font-size:13px; text-transform:uppercase; margin-bottom:18px; }
.hero h1 { color:#fff; font-size:52px; line-height:1.15; max-width:820px; margin-bottom:22px; }
.hero h1 em { color:var(--gold-2); font-style:normal; }
.hero p.lead { font-size:18px; max-width:680px; color:#e2e8f0; margin-bottom:34px; }
.search-bar { display:flex; max-width:680px; background:#fff; border-radius:4px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.2); }
.search-bar input { flex:1; border:0; padding:16px 20px; font-size:15px; outline:none; min-width:0; }
.search-bar button { background:var(--gold); color:var(--navy); border:0; padding:0 28px; font-weight:600; cursor:pointer; }
.hero-badges { display:flex; gap:22px; margin-top:30px; flex-wrap:wrap; }
.hero-badge { font-size:13px; color:#cbd5e0; display:flex; align-items:center; gap:8px; }
.hero-badge::before { content:"●"; color:var(--gold); font-size:10px; }

/* ---------- Stats band ---------- */
.stats { background:var(--navy); color:#fff; }
.stats .grid { max-width:1280px; margin:0 auto; padding:36px 24px; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; }
.stat .num { font-family:'Playfair Display'; font-size:40px; color:var(--gold-2); font-weight:700; }
.stat .lbl { font-size:13px; color:#cbd5e0; letter-spacing:1px; text-transform:uppercase; }

/* ---------- Generic containers ---------- */
.wrap { max-width:1280px; margin:0 auto; padding:80px 24px; }
.page-journals .wrap, .page-journal .wrap, .page-list .wrap { padding:70px 24px; }
.eyebrow { color:var(--gold); letter-spacing:3px; font-size:12px; text-transform:uppercase; font-weight:600; margin-bottom:10px; }
h2.title { font-size:36px; line-height:1.2; margin-bottom:16px; }
p.lead { color:var(--gray); max-width:760px; margin-bottom:40px; }
.page-about h2.title, .page-editors h2.title { font-size:34px; }
.page-authors h2.title, .page-services h2.title { font-size:32px; }
.page-authors h2.title { line-height:normal; line-height:1.65; }
.page-about p.lead { max-width:820px; margin-bottom:30px; }
.page-authors p.lead, .page-services p.lead { max-width:820px; }

/* Authors template uses a 1200px grid */
.page-authors .top-strip .inner, .page-authors nav, .page-authors .page-hero .inner,
.page-authors .wrap, .page-authors .f-grid, .page-authors .f-bottom { max-width:1200px; }

/* ---------- Inner page hero ---------- */
.page-hero { background:linear-gradient(115deg,rgba(15,37,64,.92),rgba(30,58,95,.85)), url('/assets/img/photo-1456513080510-7bf3a84b82f8-w1600.jpg') center/cover; color:#fff; padding:90px 24px; }
.page-hero.bg-about   { background:linear-gradient(115deg,rgba(15,37,64,.92),rgba(30,58,95,.85)), url('/assets/img/photo-1523240795612-9a054b0db644-w1600.jpg') center/cover; }
.page-hero.bg-authors { background:linear-gradient(115deg,rgba(15,37,64,.92),rgba(30,58,95,.85)), url('/assets/img/photo-1434030216411-0b793f4b4173-w1600.jpg') center/cover; }
.page-hero.bg-editors { background:linear-gradient(115deg,rgba(15,37,64,.92),rgba(30,58,95,.85)), url('/assets/img/photo-1524178232363-1fb2b075b655-w1600.jpg') center/cover; }
.page-hero.bg-services{ background:linear-gradient(115deg,rgba(15,37,64,.92),rgba(30,58,95,.85)), url('/assets/img/photo-1454165804606-c3d57bc86b40-w1600.jpg') center/cover; }
.page-hero.bg-contact { background:linear-gradient(115deg,rgba(15,37,64,.92),rgba(30,58,95,.85)), url('/assets/img/photo-1497366216548-37526070297c-w1600.jpg') center/cover; }
.page-hero.bg-news    { background:linear-gradient(115deg,rgba(15,37,64,.9),rgba(30,58,95,.82)), url('/assets/img/photo-1505373877841-8d25f7d46678-w1600.jpg') center/cover; }
.page-hero.bg-reviewers { background:linear-gradient(115deg,rgba(15,37,64,.92),rgba(30,58,95,.85)), url('/assets/img/photo-1521737604893-d14cc237f11d-w1600.jpg') center/cover; }
.page-hero .inner { max-width:1280px; margin:0 auto; }
.page-hero .eyebrow { color:var(--gold-2); letter-spacing:3px; font-size:13px; text-transform:uppercase; margin-bottom:14px; font-weight:400; }
/* about / services / authors / editor templates also carry the generic .eyebrow rule (weight 600) */
.page-about .page-hero .eyebrow, .page-services .page-hero .eyebrow, .page-authors .page-hero .eyebrow,
.page-editors .page-hero .eyebrow, .page-reviewers .page-hero .eyebrow { font-weight:600; }
.page-hero h1 { color:#fff; font-size:46px; max-width:800px; }
.page-hero p { color:#e2e8f0; max-width:680px; margin-top:16px; font-size:17px; }
.crumb { font-size:13px; color:#cbd5e0; margin-bottom:18px; }
.crumb a { color:var(--gold-2); }

/* ---------- Home: service cards ---------- */
.services { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.svc { background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden; transition:.25s; }
.svc:hover { transform:translateY(-4px); box-shadow:0 12px 30px rgba(15,37,64,.1); }
.svc .thumb { height:140px; background-size:cover; background-position:center; }
.svc .body { padding:22px; }
.svc h3 { font-size:19px; margin-bottom:10px; }
.svc p { font-size:14px; color:var(--gray); margin-bottom:14px; }
.svc a { color:var(--navy); font-weight:600; font-size:14px; border-bottom:2px solid var(--gold); }

/* ---------- Journal cards ---------- */
.journals-band { background:var(--light); }
.j-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.jcard { background:#fff; border-radius:6px; overflow:hidden; box-shadow:0 2px 10px rgba(15,37,64,.06); }
.jcard > a.jcover-link { display:block; color:#fff; font-size:16px; font-weight:400; }
.jcard .jcover { height:200px; position:relative; display:flex; align-items:center; justify-content:center; color:#fff; padding:20px; text-align:center; }
.page-journals .jcard .jcover { position:static; }
.jcard .jcover .jt { font-family:'Playfair Display'; font-size:18px; line-height:1.3; }
.jcard .jcover .js { font-size:11px; letter-spacing:2px; margin-top:8px; opacity:.85; }
/* Portrait (3:4) cover box inside the template's 200px gradient band */
.jcard .jcover.has-thumb { gap:20px; text-align:left; justify-content:flex-start; }
.jcard .jcover .jtxt { flex:1; min-width:0; overflow-wrap:break-word; }
.jthumb { flex:none; width:120px; height:160px; aspect-ratio:3/4; border-radius:3px; overflow:hidden; box-shadow:0 10px 24px rgba(0,0,0,.35);
          background:linear-gradient(160deg,#2B6CB0,#0F2540); display:flex; align-items:center; justify-content:center; text-align:center; padding:10px; }
.jthumb img { display:block; width:100%; height:100%; object-fit:cover; }
.jthumb.has-img { padding:0; background:#0F2540; }
.jthumb .ph-t { font-family:'Playfair Display'; font-size:20px; font-weight:700; line-height:1.15; color:#fff; letter-spacing:1px; }
.jthumb .ph-s { font-size:9px; letter-spacing:2px; margin-top:8px; color:var(--gold-2); text-transform:uppercase; }
.jc1 { background:linear-gradient(135deg,#0F2540,#2B6CB0); }
.jc2 { background:linear-gradient(135deg,#4A1D1D,#9B2C2C); }
.jc3 { background:linear-gradient(135deg,#1A3A2F,#2F855A); }
.jc4 { background:linear-gradient(135deg,#3B2F4F,#6B46C1); }
.jc5 { background:linear-gradient(135deg,#4A2E1D,#C05621); }
.jc6 { background:linear-gradient(135deg,#1D3A4A,#2C7A7B); }
.jcard .jb { padding:20px; }
.tag { display:inline-block; font-size:11px; padding:3px 9px; border-radius:20px; margin-right:6px; margin-bottom:10px; font-weight:600; }
.tag.g { background:#FEF3C7; color:#92400E; }
.tag.b { background:#DBEAFE; color:#1E40AF; }
.tag.t { background:#D1FAE5; color:#065F46; }
.jcard h4 { font-size:17px; margin-bottom:6px; }
.jcard h4 a { color:var(--navy); font-size:inherit; font-weight:inherit; }
.jcard .issn { font-size:13px; color:var(--gray); margin-bottom:12px; }
.jcard a { color:var(--navy); font-weight:600; font-size:14px; }
.jcard .jlinks a { margin-right:18px; }
.jcard .jlinks a:last-child { margin-right:0; }
.jcard .jlinks a:hover, .svc a:hover { color:var(--gold); }

/* ---------- About two columns (home) ---------- */
.about-2col { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.about-2col img { border-radius:6px; height:420px; object-fit:cover; width:100%; }
.checklist { list-style:none; margin:20px 0 26px; }
.checklist li { padding-left:28px; position:relative; margin-bottom:12px; color:var(--gray); }
.checklist li::before { content:"✓"; position:absolute; left:0; color:var(--gold); font-weight:700; }
/* API introduction (same rule as the os-korea theme About): long text -> disclosure */
.about-more { margin:-24px 0 22px; font-size:14px; }
.about-more summary { cursor:pointer; color:var(--navy); font-weight:600; list-style:none; display:inline-block; border-bottom:2px solid var(--gold); }
.about-more summary::-webkit-details-marker { display:none; }
.about-more summary::after { content:" \2193"; color:var(--gold); }
.about-more[open] summary::after { content:" \2191"; }
.about-full { margin-top:14px; color:var(--gray); line-height:1.75; }
.about-full p { margin:0 0 10px; }
.about-full p:last-child { margin-bottom:0; }
.page-services .checklist { margin:18px 0; }
.page-services .checklist li { margin-bottom:10px; }
.btn { display:inline-block; padding:12px 26px; border-radius:3px; font-weight:600; font-size:14px; border:0; cursor:pointer; }
.btn.navy { background:var(--navy); color:#fff; }
.btn.gold { background:var(--gold); color:var(--navy); }
.btn.ghost { border:1px solid var(--navy); color:var(--navy); }
.btn.navy:hover { background:var(--navy-2); }
.btn.gold:hover { background:var(--gold-2); }

/* ---------- Why ---------- */
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.why { padding:28px; border-left:3px solid var(--gold); background:var(--light); border-radius:0 6px 6px 0; }
.why .ic { font-size:28px; margin-bottom:14px; }
.why h3 { font-size:18px; margin-bottom:8px; }
.why p { font-size:14px; color:var(--gray); }

/* ---------- News (home) ---------- */
.news-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; }
.news-feature img { border-radius:6px; height:320px; width:100%; object-fit:cover; }
.news-feature .meta { font-size:13px; color:var(--gray); margin:14px 0 8px; }
.news-feature h3 { font-size:24px; margin-bottom:10px; }
.news-feature h3 a, .news-list .nrow h4 a { color:var(--navy); }
.news-feature h3 a:hover, .news-list .nrow h4 a:hover { color:var(--gold); }
.news-list .nrow { padding:18px 0; border-bottom:1px solid var(--line); }
.news-list .nrow .d { font-size:12px; color:var(--gray); }
.news-list .nrow h4 { font-size:16px; margin-top:4px; }
.more-link { color:var(--navy); font-weight:600; display:inline-block; }
.more-link:hover { color:var(--gold); }

/* ---------- Article rows (latest articles) ---------- */
.art-list .arow { padding:20px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:24px; align-items:start; }
.art-list .arow:first-child { padding-top:0; }
.art-list .arow .d { font-size:12px; color:var(--gray); letter-spacing:.3px; }
.art-list .arow .d strong { color:var(--navy); font-weight:600; }
.art-list .arow h4 { font-size:17px; margin-top:4px; line-height:1.4; }
.art-list .arow h4 a { color:var(--navy); }
.art-list .arow h4 a:hover { color:var(--gold); }
.art-list .arow .go { color:var(--navy); font-weight:600; font-size:14px; white-space:nowrap; border-bottom:2px solid var(--gold); }
.art-list .arow .go:hover { color:var(--gold); }

/* ---------- CTA ---------- */
.cta-band { background:linear-gradient(120deg,var(--navy),var(--navy-2)); color:#fff; position:relative; overflow:hidden; }
.cta-band::after { content:""; position:absolute; right:-80px; top:-80px; width:320px; height:320px; border:40px solid rgba(201,169,97,.15); border-radius:50%; }
.cta-inner { max-width:1280px; margin:0 auto; padding:70px 24px; display:flex; justify-content:space-between; align-items:center; gap:40px; position:relative; z-index:1; }
.cta-band h2 { color:#fff; font-size:34px; margin-bottom:10px; }
.cta-band p { color:#cbd5e0; max-width:560px; }

/* ---------- Partners ---------- */
.badges-row { display:flex; flex-wrap:wrap; gap:30px; align-items:center; justify-content:center; opacity:.75; }
.badge-logo { font-family:'Playfair Display'; font-size:18px; color:var(--gray); letter-spacing:1px; }

/* ---------- Footer ---------- */
footer { background:var(--navy); color:#cbd5e0; padding:70px 24px 30px; }
.f-grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
footer h4 { color:#fff; font-size:16px; margin-bottom:16px; }
footer ul { list-style:none; }
footer li { margin-bottom:9px; }
footer a { color:#cbd5e0; font-size:14px; }
footer a:hover { color:var(--gold-2); }
.f-bottom { max-width:1280px; margin:50px auto 0; padding-top:22px; border-top:1px solid rgba(255,255,255,.1); font-size:13px; color:#8a98ad; }

/* ---------- Journals list: filter / search bar ---------- */
.filter-bar { background:var(--light); padding:22px 26px; border-radius:6px; margin-bottom:36px; display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.filter-bar label { font-weight:600; font-size:14px; }
.filter-bar select, .filter-bar input { padding:9px 12px; border:1px solid var(--line); border-radius:4px; font-family:inherit; font-size:14px; background:#fff; }
.filter-bar input[type="search"], .filter-bar input[type="text"] { flex:1; min-width:220px; }
.filter-bar .btn { padding:10px 22px; }
.filter-bar .adv { margin-left:auto; color:var(--navy); font-weight:600; font-size:14px; border-bottom:2px solid var(--gold); }
.filter-bar .adv:hover { color:var(--gold); }
.result-meta { font-size:14px; color:var(--gray); margin:-14px 0 24px; }
.result-meta strong { color:var(--navy); }

/* ---------- Pager ---------- */
.pager { display:flex; justify-content:center; gap:8px; margin-top:44px; flex-wrap:wrap; list-style:none; }
.pager a, .pager span { display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 12px; border:1px solid var(--line); border-radius:3px; color:var(--navy); font-weight:600; font-size:14px; background:#fff; }
.pager a:hover { border-color:var(--gold); color:var(--gold); }
.pager .active span { background:var(--navy); border-color:var(--navy); color:#fff; }
.pager .disabled span { color:#a0aec0; }

/* ---------- Loading / empty / error states ---------- */
.loading, .empty, .error-box { color:var(--gray); font-size:15px; padding:30px 0; }
.loading::before { content:""; display:inline-block; width:14px; height:14px; border:2px solid var(--line); border-top-color:var(--gold); border-radius:50%; margin-right:10px; vertical-align:-2px; animation:spin .8s linear infinite; }
.error-box { color:#9B2C2C; }
@keyframes spin { to { transform:rotate(360deg); } }
.j-grid > .loading, .j-grid > .empty, .j-grid > .error-box { grid-column:1/-1; }

/* ---------- Journal single ---------- */
.jhero { background:linear-gradient(135deg,#0F2540,#1E3A5F); color:#fff; padding:70px 24px; }
.jhero .inner { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:220px 1fr; gap:40px; align-items:center; }
.jhero .jcover { height:280px; border-radius:6px; background:linear-gradient(160deg,#2B6CB0,#0F2540); display:flex; align-items:center; justify-content:center; text-align:center; padding:20px; box-shadow:0 20px 40px rgba(0,0,0,.3); overflow:hidden; }
.jhero .jcover.has-img { padding:0; background:#0F2540; }
.jhero .jcover img { display:block; width:100%; height:100%; object-fit:cover; }
.jhero .jcover .jt { font-family:'Playfair Display'; font-size:18px; line-height:1.3; color:#fff; }
.jhero .jcover .js { font-size:11px; letter-spacing:2px; margin-top:8px; color:var(--gold-2); }
.jhero h1 { color:#fff; font-size:38px; margin-bottom:10px; }
.jhero .meta { color:#cbd5e0; font-size:14px; margin-bottom:20px; }
.jhero .tag { padding:3px 10px; margin-bottom:0; }
.jhero .btn { padding:12px 24px; margin-right:10px; }
.jhero .btn.ghost { border:1px solid rgba(255,255,255,.4); color:#fff; }
.jhero .btn.ghost:hover { border-color:var(--gold-2); color:var(--gold-2); }
.two-col { display:grid; grid-template-columns:2fr 1fr; gap:40px; }
.section-title { font-size:24px; color:var(--navy); margin:36px 0 14px; font-family:'Playfair Display'; }
.section-title:first-child { margin-top:0; }
.section-title::after { content:""; display:block; width:50px; height:3px; background:var(--gold); margin-top:8px; }
p.body { color:#2d3748; margin-bottom:16px; }
p.body a { color:var(--navy); font-weight:600; border-bottom:1px solid var(--gold); }
.sidebar-card { border:1px solid var(--line); padding:24px; border-radius:6px; margin-bottom:20px; }
.sidebar-card h4 { font-size:16px; margin-bottom:14px; }
.sidebar-card p { font-size:14px; color:var(--gray); margin-bottom:8px; word-break:break-word; }
.sidebar-card a { color:var(--navy); font-size:14px; display:block; margin-bottom:8px; }
.sidebar-card a:hover { color:var(--gold); }
.sidebar-card p a { display:inline; }
.ext::after { content:" ↗"; font-size:.85em; color:var(--gold); }

/* ---------- Announcement list rows ---------- */
.ann-list .ann { display:grid; grid-template-columns:110px 1fr; gap:28px; padding:28px 0; border-bottom:1px solid var(--line); }
.ann-list .ann:first-child { padding-top:0; }
.ann .date { font-family:'Playfair Display'; color:var(--navy); text-align:center; border-top:3px solid var(--gold); background:var(--light); padding:14px 8px; border-radius:0 0 6px 6px; height:max-content; }
.ann .date .dd { font-size:32px; font-weight:700; line-height:1; }
.ann .date .my { font-family:'Inter',Arial,sans-serif; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--gray); margin-top:6px; }
.ann .src { font-size:12px; color:var(--gray); letter-spacing:.3px; margin-bottom:4px; }
.ann .src strong { color:var(--navy); font-weight:600; }
.ann h3 { font-size:21px; line-height:1.35; margin-bottom:8px; }
.ann h3 a { color:var(--navy); }
.ann h3 a:hover { color:var(--gold); }
.ann p { color:var(--gray); font-size:15px; margin-bottom:10px; }
.ann .more-link { font-size:14px; border-bottom:2px solid var(--gold); }

/* ---------- News / announcement detail ---------- */
.page-detail { line-height:1.75; }
.article-hero { background:linear-gradient(115deg,rgba(15,37,64,.9),rgba(30,58,95,.82)), url('/assets/img/photo-1505373877841-8d25f7d46678-w1600.jpg') center/cover; color:#fff; padding:90px 24px 100px; }
.article-hero .inner { max-width:900px; margin:0 auto; }
.article-hero h1 { color:#fff; font-size:44px; line-height:1.2; }
.article-meta { margin-top:22px; color:#e2e8f0; font-size:14px; display:flex; gap:20px; flex-wrap:wrap; }
.article-meta span::before { content:"·"; margin-right:10px; color:var(--gold); }
.article-meta span:first-child::before { display:none; }
.page-detail .wrap { max-width:1100px; padding:70px 24px; }
.article-body { max-width:780px; margin:0 auto; }
.article-body p, .article-body .rich div, .article-body li { color:#2d3748; font-size:16px; }
.article-body p { margin-bottom:20px; }
.article-body .rich div { margin-bottom:6px; }
.article-body ul, .article-body ol { padding-left:22px; margin-bottom:20px; }
.article-body h2 { font-size:26px; margin:36px 0 16px; }
.article-body h3 { font-size:21px; margin:28px 0 12px; }
.article-body .rich a { color:var(--navy); font-weight:600; border-bottom:1px solid var(--gold); }
.article-body blockquote { border-left:4px solid var(--gold); background:var(--light); padding:20px 24px; margin:26px 0; font-style:italic; color:var(--gray); }
.article-body img { border-radius:6px; margin:26px 0; width:100%; height:auto; max-width:100%; }
.share-row { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; margin:40px 0; display:flex; justify-content:space-between; align-items:center; }
.share-row .tags a, .share-row .tags span { display:inline-block; font-size:12px; background:#FEF3C7; color:#92400E; padding:4px 12px; border-radius:20px; margin-right:8px; }
.share-row .src-link { font-size:13px; color:var(--navy); font-weight:600; border:0; }
.share-row .src-link:hover { color:var(--gold); }
.related { background:var(--light); }
.related .wrap { padding-top:60px; padding-bottom:60px; }
.r-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:30px; }
.rcard { background:#fff; border-radius:6px; overflow:hidden; display:block; color:inherit; }
.rcard img { height:160px; width:100%; object-fit:cover; }
.rcard .rb { padding:18px; }
.rcard .d { font-size:12px; color:var(--gray); }
.rcard h4 { font-size:16px; margin-top:6px; }
.rcard:hover h4 { color:var(--gold); }

/* ---------- About page ---------- */
.page-about .two { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; margin-bottom:60px; }
.page-about .two img { border-radius:6px; height:380px; object-fit:cover; width:100%; }
.timeline { max-width:800px; }
.tl-item { padding-left:28px; border-left:2px solid var(--gold); margin-bottom:28px; position:relative; }
.tl-item::before { content:""; position:absolute; left:-7px; top:4px; width:12px; height:12px; background:var(--gold); border-radius:50%; }
.tl-item .yr { font-family:'Playfair Display'; font-weight:700; color:var(--navy); font-size:18px; }
.values { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; }
.v { padding:28px; background:var(--light); border-radius:6px; border-top:3px solid var(--gold); }
.v h3 { font-size:18px; margin-bottom:8px; }
.v p { font-size:14px; color:var(--gray); }

/* ---------- Authors / Editors / Reviewers ---------- */
.card { background:#fff; border:1px solid var(--line); border-radius:6px; padding:30px; }
.page-authors .card { background:none; }
.card h3 { font-size:20px; margin-bottom:14px; }
.card ul { padding-left:20px; color:var(--gray); }
.card li { margin-bottom:10px; }
.card li a { color:var(--navy); font-weight:600; border-bottom:1px solid var(--gold); }
.page-authors .two { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:40px; }
.page-editors .two, .page-reviewers .two { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.page-authors .steps { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin:40px 0; }
.page-authors .step { background:var(--light); padding:24px; border-radius:6px; border-top:3px solid var(--gold); }
.page-authors .step .n { font-family:'Playfair Display'; font-size:30px; color:var(--navy); font-weight:700; }
.page-authors .step h4 { font-size:16px; margin:8px 0; }
.page-authors .step p { font-size:13px; color:var(--gray); }
.page-editors .steps, .page-reviewers .steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:40px; }
.page-editors .step, .page-reviewers .step { border-top:3px solid var(--gold); padding-top:20px; }
.page-editors .step .n, .page-reviewers .step .n { font-family:'Playfair Display'; font-size:36px; color:var(--navy); font-weight:700; }
.page-editors .step h4, .page-reviewers .step h4 { font-size:17px; margin:8px 0; }
.page-editors .step p, .page-reviewers .step p { font-size:14px; color:var(--gray); }
.apply-band { background:var(--light); }
.apply-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:50px; align-items:center; }
.apply-grid img { border-radius:6px; height:380px; object-fit:cover; width:100%; }
.action-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }

/* ---------- Services ---------- */
.svc-row { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:60px; align-items:center; }
.svc-row img { border-radius:6px; height:340px; width:100%; object-fit:cover; }
.svc-row.rev .txt { order:2; }
.process-band { background:var(--light); }
.page-services .steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:40px; }
.page-services .step { background:#fff; padding:28px; border-radius:6px; border-top:3px solid var(--gold); }
.page-services .step .n { font-family:'Playfair Display'; font-size:36px; color:var(--navy); font-weight:700; }
.page-services .step h4 { font-size:17px; margin:8px 0; }
.page-services .step p { font-size:14px; color:var(--gray); }

/* ---------- Forms (contact / editors) ---------- */
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:50px; align-items:start; }
.info-card { background:var(--navy); color:#fff; padding:40px; border-radius:6px; }
.info-card h3 { color:#fff; font-size:22px; margin-bottom:20px; }
.info-card p { margin-bottom:14px; color:#cbd5e0; }
.info-card strong { color:var(--gold-2); }
.info-card a { color:#cbd5e0; }
.info-card a:hover { color:var(--gold-2); }
.form-box { background:#fff; padding:34px; border-radius:6px; box-shadow:0 10px 30px rgba(15,37,64,.08); }
.form-box h3 { margin-bottom:20px; }
.f-item { margin-bottom:16px; }
.f-item label { display:block; font-size:13px; color:var(--gray); margin-bottom:6px; font-weight:600; }
.f-item input, .f-item select, .f-item textarea { width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:4px; font-family:inherit; font-size:14px; }
.page-contact .form-box { border:1px solid var(--line); padding:40px; box-shadow:0 10px 30px rgba(15,37,64,.06); }
.page-contact .form-box h3 { font-size:22px; }
.page-contact .f-item { margin-bottom:18px; }
.page-contact .f-item input, .page-contact .f-item select, .page-contact .f-item textarea { padding:12px 14px; font-size:15px; }
.page-contact .btn { padding:13px 28px; font-size:15px; }
.form-note { font-size:12px; color:var(--gray); margin-top:12px; }

/* ---------- Advanced search ---------- */
.search-form { background:var(--light); padding:30px; border-radius:6px; margin-bottom:40px; display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:16px; align-items:end; }
.search-form .f-item { margin:0; }
.search-form .f-item input, .search-form .f-item select { background:#fff; }
.search-group { margin-bottom:50px; }
.search-group > h2 { font-size:26px; margin-bottom:6px; }
.search-group > .count { font-size:14px; color:var(--gray); margin-bottom:22px; }
.note { background:#FEF3C7; color:#92400E; border-radius:6px; padding:12px 16px; font-size:13px; margin-bottom:30px; }

/* ---------- 404 ---------- */
.nf { text-align:center; }
.nf .code { font-family:'Playfair Display'; font-size:120px; line-height:1; color:var(--gold); font-weight:700; }

/* ---------- Back to top ---------- */
.back-to-top { position:fixed; right:24px; bottom:24px; width:46px; height:46px; border-radius:3px; background:var(--navy); color:var(--gold-2); display:flex; align-items:center; justify-content:center; font-size:20px; box-shadow:0 8px 20px rgba(15,37,64,.25); opacity:0; visibility:hidden; transform:translateY(10px); transition:.25s; z-index:60; border:0; cursor:pointer; }
.back-to-top.is-visible { opacity:1; visibility:visible; transform:none; }
.back-to-top:hover { background:var(--gold); color:var(--navy); }

/* ---------- Responsive ---------- */
@media(max-width:992px){
    .services,.why-grid { grid-template-columns:repeat(2,1fr); }
    .news-grid,.about-2col { grid-template-columns:1fr; }
    .page-home .j-grid { grid-template-columns:1fr; }
    .j-grid { grid-template-columns:repeat(2,1fr); }
    .stats .grid { grid-template-columns:repeat(2,1fr); }
    .f-grid { grid-template-columns:repeat(2,1fr); }
    .jhero .inner { grid-template-columns:1fr; }
    .jhero .jcover { width:220px; }
    .jhero .btn { margin-bottom:10px; }
    .share-row { flex-wrap:wrap; gap:12px; }
    .two-col { grid-template-columns:1fr; }
    .r-grid { grid-template-columns:1fr; }
    .page-about .two, .values { grid-template-columns:1fr; }
    .page-authors .steps { grid-template-columns:repeat(2,1fr); }
    .page-authors .two, .page-editors .two, .page-reviewers .two, .apply-grid { grid-template-columns:1fr; }
    .page-editors .steps, .page-reviewers .steps, .page-services .steps { grid-template-columns:repeat(2,1fr); }
    .svc-row { grid-template-columns:1fr; }
    .svc-row.rev .txt { order:0; }
    .contact-grid { grid-template-columns:1fr; }
    .search-form { grid-template-columns:1fr 1fr; }
    .search-form .f-item:first-child { grid-column:1/-1; }
    .top-strip .inner > .msg { display:none; }
}
@media(max-width:680px){
    nav { position:relative; gap:12px; }
    .brand { min-width:0; }
    .brand-name { overflow-wrap:break-word; }
    .jthumb { width:96px; height:128px; }
    .jcard .jcover.has-thumb { gap:16px; }
    .jcard .jcover.has-thumb .jt { font-size:16px; }
    .menu { display:none; }
    .burger { display:block; font-size:24px; }
    .menu.open { display:flex; flex-direction:column; align-items:stretch; gap:0; position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 12px 24px rgba(15,37,64,.08); padding:8px 24px 18px; }
    .menu.open a { padding:12px 0; border-bottom:1px solid var(--line); }
    .menu.open a.cta { margin-top:14px; text-align:center; border-bottom:0; padding:11px 18px; }
    .services,.why-grid { grid-template-columns:1fr; }
    .hero h1 { font-size:34px; }
    .cta-inner { flex-direction:column; align-items:flex-start; }
    .j-grid { grid-template-columns:1fr; }
    .f-grid { grid-template-columns:1fr; }
    .page-home .f-grid { grid-template-columns:repeat(2,1fr); }
    .page-hero h1 { font-size:32px; }
    .article-hero h1 { font-size:30px; }
    .page-editors .steps, .page-reviewers .steps, .page-services .steps { grid-template-columns:1fr; }
    .ann-list .ann { grid-template-columns:1fr; gap:12px; }
    .ann .date { width:110px; }
    .art-list .arow { grid-template-columns:1fr; gap:8px; }
    .search-form { grid-template-columns:1fr; }
    .filter-bar .adv { margin-left:0; }
    .top-strip .inner { justify-content:flex-end; }
    .top-links a:first-child { margin-left:0; }
    .brand-name { font-size:18px; }
}

/* footer logo: always white on the navy footer, no white plate (see os-korea footer.css) */
footer .brand-mark.has-logo { background:transparent; padding:0; }
footer .brand-mark img { filter:grayscale(1) invert(1) brightness(2); mix-blend-mode:screen; }
