/*
Theme Name: Soledad Child - 도로교통 저널
Template: soledad
Author: ROAD & TRANSPORTATION JOURNAL
Description: 도로교통 저널 웹진용 Soledad 자식 테마. 홈/카테고리 구성안 레이아웃 적용.
Version: 1.0.0
*/

/* ============================================================
   웹폰트 — GmarketSansBold (로고/브랜드명 전용 · 전역 적용 금지)
   파일: soledad-child/fonts/GmarketSansBold.woff (CDN 직접참조 아님, 자체 서빙)
   ============================================================ */
@font-face{
  font-family:'GmarketSansBold';
  src:url('fonts/GmarketSansBold.woff') format('woff');
  font-weight:normal; font-style:normal; font-display:swap;
}

/* ============================================================
   웹폰트 — Pretendard (본문/제목 = 기존 Noto Sans KR 자리 승계)
   파일: soledad-child/fonts/Pretendard-*.woff2 (CDN 직접참조 아님, 자체 서빙)
   한 패밀리에 weight 4개 매핑 → font-weight 숫자로 자동 선택
   ============================================================ */
@font-face{
  font-family:'Pretendard';
  src:url('fonts/Pretendard-Light.woff2') format('woff2');
  font-weight:300; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Pretendard';
  src:url('fonts/Pretendard-Regular.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Pretendard';
  src:url('fonts/Pretendard-Medium.woff2') format('woff2');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Pretendard';
  src:url('fonts/Pretendard-Bold.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}

/* ============================================================
   도로교통 저널 — 디자인 토큰
   ============================================================ */
:root{
  --rj-ink:#0a2240;        /* 네이비 (제목/강조선) */
  --rj-ink-rgb:10,34,64;   /* 네이비 RGB (rgba 그라데이션용 — 하드코딩 회피) */
  --rj-ink-soft:#46566c;   /* 본문 보조 텍스트 */
  --rj-accent:#d95f02;     /* 오렌지 (소제목/강조) */
  --rj-line:#eceef1;       /* 구분선 */
  --rj-muted:#9aa2b0;      /* 메타 텍스트 */
  --rj-text:#3d434b;       /* 소제목·진한 본문 */
  --rj-text-soft:#6c727a;  /* 요약·설명 */
  --rj-faint:#a2a6ac;      /* 메타·연한 라벨 */
  --rj-maxw:1140px;
  /* 폰트 스택 — 본문/제목은 Pretendard 우선, Noto Sans KR 폴백(로드 실패 안전망) */
  --rj-sans:'Pretendard','Noto Sans KR',-apple-system,BlinkMacSystemFont,'Malgun Gothic','맑은 고딕',sans-serif;
  --rj-serif:'Noto Serif KR',serif;
  --rj-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

/* 부모테마 body{overflow-x:hidden} 가 body를 스크롤 컨테이너로 만들어
   사이드바 position:sticky 를 깨뜨림 → clip 으로 덮어 sticky 복구.
   clip 은 가로 오버플로 차단(모바일 삐짐 방지)은 유지하되 스크롤 컨테이너는 안 만듦. */
body{overflow-x:clip}

/* 자식 테마 영역 기본 폰트 — 본문/제목 Pretendard(폴백 Noto Sans KR) */
.rj-site{font-family:var(--rj-sans)}
/* 폼 컨트롤도 사이트 기본 폰트 상속(브라우저/부모테마 기본 폰트 차단) */
.rj-site input,.rj-site textarea,.rj-site select,.rj-site button{font-family:inherit}

/* 라벨류 공통 톤 — 메타·영문 라벨·eyebrow·VOL = monospace */
.rj-vol,.rj-en,.rj-meta,.rj-k{
  font-family:var(--rj-mono);letter-spacing:.1em;
}

/* ============================================================
   홈/아카이브 공통 레이아웃 컨테이너
   ============================================================ */
.rj-wrap{max-width:var(--rj-maxw);margin:0 auto;padding:0 32px}

/* 2컬럼 (메인 + KROAD 사이드바) */
.rj-layout{
  display:grid;grid-template-columns:1fr 296px;gap:54px;
  margin-top:30px;padding-bottom:70px;
}

/* 섹션 */
.rj-section{margin-bottom:64px}
.rj-section-head{
  border-bottom:2px solid var(--rj-ink);padding-bottom:10px;margin-bottom:6px;
  display:flex;align-items:baseline;gap:12px;   /* 코너명·한글서브 밑선(baseline) 정렬 */
}
/* 점은 글자가 아니라 baseline에 앉으면 내려감 → 코너명 중앙 높이 유지 */
.rj-section-mark{width:8px;height:8px;background:var(--rj-accent);flex:0 0 auto;align-self:center}
.rj-section-head h2{font-size:18px;font-weight:700;letter-spacing:.01em;color:var(--rj-ink);margin:0}
.rj-section-head .rj-en{font-size:10.5px;letter-spacing:.22em;color:var(--rj-faint);font-weight:600}
.rj-viewall{margin-left:auto;font-family:var(--rj-mono);font-size:11.5px;color:var(--rj-ink);letter-spacing:.04em}
.rj-viewall:hover{color:var(--rj-accent)}
.rj-section-desc{color:var(--rj-ink-soft);font-size:13.5px;margin:12px 0 26px}

/* 가로 기사 행: 좌 사진 / 우 (제목·소제목·요약) */
.rj-row{
  display:grid;grid-template-columns:280px 1fr;gap:26px;align-items:start;
  padding:24px 0;border-bottom:1px solid var(--rj-line);
}
.rj-row:last-child{border-bottom:none}
/* 썸네일 — list(.rj-row) / grid2(.rj-card) 공통 (3:2) */
.rj-thumb{
  aspect-ratio:3/2;border-radius:3px;overflow:hidden;background:#e8ebf0;position:relative;
}
.rj-thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .4s ease;
}
.rj-row:hover .rj-thumb img,.rj-card:hover .rj-thumb img{transform:scale(1.04)}
.rj-thumb .rj-noimg{
  position:absolute;inset:0;display:grid;place-items:center;
  color:#b8c0cc;font-size:10px;letter-spacing:.18em;
}
.rj-row .rj-txt{display:flex;flex-direction:column;justify-content:flex-start}
/* 카테고리 eyebrow — 오렌지 볼드 monospace (사이드바 NEWS 톤) */
.rj-eyebrow{
  font-family:var(--rj-mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rj-accent);margin-bottom:10px;
}
/* 제목 — 최대 2줄 클램프 */
.rj-row .rj-title{
  font-size:24px;line-height:1.35;font-weight:700;letter-spacing:-.01em;
  margin-bottom:9px;color:var(--rj-ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.rj-row:hover .rj-title{color:var(--rj-accent)}
/* 소제목 — 진회색(오렌지는 eyebrow로), 최대 1줄 클램프 */
.rj-row .rj-sub{
  font-size:16px;color:var(--rj-text);font-weight:500;line-height:1.5;margin-bottom:12px;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
/* 본문 발췌 — 최대 2줄 클램프 (메타 제거로 하단 여백 0) */
.rj-row .rj-excerpt{
  font-size:14px;font-weight:300;color:var(--rj-text-soft);line-height:1.7;margin-bottom:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* ── 2열 그리드 섹션 (ROAD STORY / ROAD INSIDE) ── */
.rj-grid2{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-top:8px}
.rj-card{display:block}
.rj-card .rj-thumb{margin-bottom:14px}
.rj-card .rj-title{
  font-size:18px;line-height:1.4;font-weight:700;letter-spacing:-.01em;color:var(--rj-ink);
  margin:0 0 7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.rj-card:hover .rj-title{color:var(--rj-accent)}
/* 2열 카드 소제목(저자명 용도) — 작고 담백하게, 1줄 클램프 */
.rj-card-sub{
  font-size:13px;font-weight:400;color:var(--rj-text-soft);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}

/* 빈 섹션 안내 */
.rj-empty{padding:24px 0;color:var(--rj-muted);font-size:13.5px}

/* ============================================================
   §14 기사 상세 (single) — 1단, 사이드바·댓글 없음. 좌측 기준 정렬
   ============================================================ */
/* 글기둥 폭 통일 — 카테고리·제목·소제목·메타·본문·버튼이 모두 같은 800px 폭(좌우 끝 일치).
   고유 클래스에 직접 max-width(부모 single CSS가 .rj-wrap 덮어도 안전), 페이지 중앙 정렬. */
.rj-single{max-width:800px;margin:0 auto;padding:72px 0 96px}  /* 네비 아래 72 / 하단~푸터 96 */
/* 헤드(카테고리·제목·소제목·메타)는 가운데 정렬, 본문만 좌측 */
.rj-single-cat{
  font-family:var(--rj-mono);font-size:11.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;margin-bottom:22px;text-align:center;
}
.rj-single-cat a{color:var(--rj-accent)}
.rj-single-cat a:hover{opacity:.8}
.rj-single-title{
  font-size:36px;line-height:1.35;font-weight:700;letter-spacing:-.01em;
  color:var(--rj-ink);margin:0 0 20px;text-align:center;
}
.rj-single-sub{
  font-size:19px;line-height:1.5;font-weight:500;color:var(--rj-text);margin:0 0 26px;text-align:center;
}
/* 메타(소제목 아래·본문 위) — monospace, 연하게, 본문과 56px 간격 */
.rj-single-meta{
  font-family:var(--rj-mono);font-size:12px;letter-spacing:.04em;color:var(--rj-faint);
  margin:0 0 56px;text-align:center;
}
/* 본문 — 글기둥(.rj-single 800px) 폭 그대로 따름. 가독성 위해 줄간격 넉넉히 */
.rj-single-content{
  font-size:18px;line-height:1.9;font-weight:400;color:var(--rj-text);
}
.rj-single-content > *:first-child{margin-top:0}
.rj-single-content p{margin:0 0 1.5em}
/* 줄간격은 문단(p)에 직접·단위없는 배수로 — 부모 '.single p / article p'(특정도 0,1,1)가
   고정 line-height를 박아 컨테이너 상속을 이기는 문제 차단. 0,2,1로 이김.
   모든 문단(보통·작성자 .has-* p·독자 .rj-fs-* p)이 <p>라 이 한 줄로 1.9배 비례 통일. */
.rj-single .rj-single-content p{line-height:1.9}
/* 구텐베르크에서 작성자가 고른 글자 크기가 우리 18px(및 부모 'article p' 류 규칙)를
   이기도록 재선언. .rj-single-content + 크기클래스 = 특정도 0,2,0 → 0,1,1 규칙도 이김.
   값은 WP 프리셋 변수 우선(편집기 미리보기와 일치), 없으면 em 폴백. 인라인 px는 자동 우선.
   !important 미사용. 18px는 크기 미지정 문단의 기본값으로만 작동. */
/* line-height는 지정하지 않음 → 본문 기본 1.9(단위 없는 배수) 상속 → 크기에 비례. */
.rj-single-content .has-small-font-size{font-size:var(--wp--preset--font-size--small,.83em)}
.rj-single-content .has-medium-font-size{font-size:var(--wp--preset--font-size--medium,1em)}
.rj-single-content .has-large-font-size{font-size:var(--wp--preset--font-size--large,1.45em)}
.rj-single-content .has-x-large-font-size{font-size:var(--wp--preset--font-size--x-large,1.8em)}
.rj-single-content .has-xx-large-font-size{font-size:var(--wp--preset--font-size--xx-large,2.3em)}
.rj-single-content .has-huge-font-size{font-size:var(--wp--preset--font-size--huge,2.3em)}

/* §15 독자용 글씨 크기 조절 — "크기 미지정 기본 문단"에만 적용.
   :not()으로 작성자 지정(.has-*-font-size·인라인 font-size) 문단은 제외 → §14 A 규칙이 그대로 이김. */
.rj-single-content.rj-fs-sm p:not([class*="has-"]):not([style*="font-size"]){font-size:16px}
.rj-single-content.rj-fs-md p:not([class*="has-"]):not([style*="font-size"]){font-size:18px}
.rj-single-content.rj-fs-lg p:not([class*="has-"]):not([style*="font-size"]){font-size:20px}
/* 조절 버튼 — 본문 우상단, 작은 토글 3개. 세 "가" 글자 크기 차등 */
.rj-fontsize{display:flex;justify-content:flex-end;gap:6px;margin:0 0 18px}
.rj-fontsize button{
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--rj-line);background:#fff;color:var(--rj-ink-soft);
  font-family:var(--rj-sans);line-height:1;cursor:pointer;padding:0;
}
.rj-fontsize button[data-size="sm"]{font-size:13px}
.rj-fontsize button[data-size="md"]{font-size:16px}
.rj-fontsize button[data-size="lg"]{font-size:19px}
.rj-fontsize button:hover{border-color:var(--rj-accent);color:var(--rj-accent)}
.rj-fontsize button.is-active{border-color:var(--rj-accent);color:var(--rj-accent);font-weight:700}

/* ============================================================
   PDF 모달 (아카이브 PDF 호 뷰어 · Phase A)
   ============================================================ */
/* "PDF 보기" 버튼(호 상세 전용) — .rj-pdf-open은 JS 트리거 훅(폰트는 라벨규칙에서 sans 처리),
   외형은 .rj-pdf-viewbtn (관리자 미디어 선택 버튼 .rj-pdf-btn 과 이름 충돌 피하려고 별도 클래스).
   ※ 아카이브 목록 카드에서는 버튼을 쓰지 않음(표지 클릭 → 호 상세 → 목차 동선). */
.rj-pdf-viewbtn{font-size:11px;line-height:1;color:var(--rj-ink);background:#fff;
  border:1px solid var(--rj-ink);padding:7px 14px;cursor:pointer}
.rj-pdf-viewbtn:hover{background:var(--rj-ink);color:#fff}
/* 표지 클릭 = 모달 트리거(투명 버튼 래퍼) */
.rj-pdf-cover-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}
/* 오버레이 + 패널 */
.rj-modal-overlay{
  position:fixed;inset:0;z-index:9999;display:none;padding:24px;
  background:rgba(var(--rj-ink-rgb),.78);align-items:center;justify-content:center;
}
.rj-modal-overlay.is-open{display:flex}
.rj-modal{
  display:flex;flex-direction:column;width:92vw;max-width:900px;height:90vh;
  background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);
}
.rj-modal-bar{
  flex:0 0 auto;display:flex;align-items:center;gap:12px;
  background:var(--rj-ink);color:#fff;padding:12px 16px;
}
.rj-modal-title{flex:1;min-width:0;font-size:14px;font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rj-modal-actions{flex:0 0 auto;display:flex;align-items:center;gap:10px}
.rj-modal-dl{
  font-family:var(--rj-mono);font-size:11px;letter-spacing:.05em;
  color:#fff;border:1px solid rgba(255,255,255,.4);padding:6px 11px;
}
.rj-modal-dl:hover{border-color:var(--rj-accent);color:var(--rj-accent)}
.rj-modal-close{background:none;border:0;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:0 4px}
.rj-modal-close:hover{color:var(--rj-accent)}
.rj-modal-status{
  flex:0 0 auto;padding:14px 16px;text-align:center;
  font-family:var(--rj-mono);font-size:12px;color:var(--rj-faint);
}
.rj-modal-status.is-error{color:var(--rj-accent)}
.rj-modal-body{flex:1;overflow:auto;background:rgba(var(--rj-ink-rgb),.07);padding:18px}
/* lazy 렌더: placeholder가 표시폭(px·줌 반영)으로 높이 예약 → 렌더되면 안에 canvas 삽입 */
.rj-modal-page-ph{position:relative;margin:0 auto 16px;background:rgba(var(--rj-ink-rgb),.06)}
.rj-modal-page-ph:last-child{margin-bottom:0}
.rj-modal-page-num{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:var(--rj-mono);font-size:12px;letter-spacing:.05em;color:var(--rj-faint)}
.rj-modal-page{display:block;width:100%;height:auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.18)}
/* 상단바 페이지 컨트롤 */
.rj-modal-pages{flex:0 0 auto;display:flex;align-items:center;gap:6px;
  font-family:var(--rj-mono);font-size:12px;color:#fff}
.rj-modal-bar .rj-modal-nav{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid rgba(255,255,255,.4);color:#fff;cursor:pointer;padding:0}
.rj-modal-bar .rj-modal-nav:hover{border-color:var(--rj-accent);color:var(--rj-accent)}
/* 입력칸: 부모 테마 input 스타일이 강해(width/color/font 등 전부 덮음) 특정도 상향
   (.rj-modal-bar input.클래스 = 0,2,1). 가시성 핵심(색·배경·폭)은 !important로 확실히. */
.rj-modal-bar input.rj-modal-page-input{
  width:44px !important;height:28px;box-sizing:border-box;text-align:center;padding:0 4px;
  border:1px solid rgba(255,255,255,.6);background:#fff !important;color:var(--rj-ink) !important;
  font-family:var(--rj-mono);font-size:12px;line-height:1;-moz-appearance:textfield;appearance:textfield;
}
.rj-modal-bar input.rj-modal-page-input:focus{outline:none;border-color:var(--rj-accent)}
.rj-modal-page-input::-webkit-outer-spin-button,
.rj-modal-page-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rj-modal-bar .rj-modal-page-sep{opacity:.85;color:#fff}            /* 슬래시: 네이비 위 또렷 */
.rj-modal-bar .rj-modal-page-total{min-width:1.5em;text-align:left;color:#fff}  /* 전체 페이지 수 */
/* 줌 컨트롤 — 페이지 컨트롤과 톤 통일(네이비 위 흰 전경) */
.rj-modal-zoom{flex:0 0 auto;display:flex;align-items:center;gap:6px;
  font-family:var(--rj-mono);font-size:12px;color:#fff}
.rj-modal-bar .rj-modal-zoom-out,.rj-modal-bar .rj-modal-zoom-in{font-size:18px;line-height:1}
.rj-modal-bar .rj-modal-zoom-pct{min-width:3.4em;text-align:center;color:#fff}
.rj-modal-bar .rj-modal-zoom-fit{height:28px;padding:0 10px;cursor:pointer;
  background:none;border:1px solid rgba(255,255,255,.4);
  color:#fff;font-family:var(--rj-mono);font-size:11px;letter-spacing:.04em}
.rj-modal-bar .rj-modal-zoom-fit:hover{border-color:var(--rj-accent);color:var(--rj-accent)}
.rj-modal-fail{padding:40px 16px;text-align:center}
.rj-modal-fail p{margin:0 0 14px;color:var(--rj-text);font-size:14px}
.rj-modal-fail-link{font-family:var(--rj-mono);font-size:12px;color:var(--rj-ink);
  border-bottom:1px solid var(--rj-ink);padding-bottom:2px}
.rj-modal-fail-link:hover{color:var(--rj-accent);border-color:var(--rj-accent)}
/* 작은 화면 — 풀스크린 */
@media(max-width:560px){
  .rj-modal-overlay{padding:0}
  .rj-modal{width:100vw;height:100vh;max-width:none;border-radius:0}
  .rj-modal-body{padding:10px}
  .rj-modal-title{display:none}        /* 좁은 화면: 페이지·줌 컨트롤 공간 확보 */
  .rj-modal-zoom-pct{display:none}     /* 퍼센트 숨기고 −/+/맞춤만 */
}
.rj-single-content a{color:var(--rj-ink);text-decoration:underline;text-underline-offset:2px}
.rj-single-content a:hover{color:var(--rj-accent)}
.rj-single-content img{max-width:100%;height:auto;display:block;margin:1.8em auto;border-radius:3px}
.rj-single-content figure{margin:1.6em 0}
.rj-single-content figcaption{font-size:13px;color:var(--rj-faint);margin-top:8px;text-align:center}
.rj-single-content h2{font-size:24px;font-weight:700;color:var(--rj-ink);line-height:1.4;margin:1.6em 0 .5em}
.rj-single-content h3{font-size:20px;font-weight:700;color:var(--rj-ink);line-height:1.4;margin:1.5em 0 .5em}
.rj-single-content ul,.rj-single-content ol{margin:0 0 1.2em;padding-left:1.4em}
.rj-single-content li{margin:.3em 0}
.rj-single-content blockquote{
  margin:1.6em 0;padding:6px 0 6px 20px;border-left:3px solid var(--rj-accent);
  color:var(--rj-text-soft);font-style:normal;
}
.rj-single-content blockquote p:last-child{margin-bottom:0}
.rj-single-pages{font-family:var(--rj-mono);font-size:13px;margin-top:1.6em}
.rj-single-pages a,.rj-single-pages > span{padding:4px 9px;border:1px solid var(--rj-line);margin-right:4px}
/* 목록으로 — 본문 맨 아래, 외곽선 버튼(헤드와 통일감 위해 가운데) */
.rj-single-back{margin-top:64px;text-align:center}
.rj-single-back a{
  display:inline-block;padding:11px 22px;border:1px solid var(--rj-ink);
  font-size:13.5px;font-weight:500;color:var(--rj-ink);letter-spacing:.02em;
}
.rj-single-back a:hover{background:var(--rj-ink);color:#fff}
/* 고정 페이지 — single 리듬(폭·타이포·본문) 재사용, 제목 위/아래 여백만 페이지용 */
.rj-page{padding-top:60px}          /* 제목 위(네비 아래) 여백 */
.rj-page-title{margin-bottom:36px}  /* 제목 아래(본문과) 여백 */
@media(max-width:768px){
  .rj-single{padding:52px 0 72px}
  .rj-single-title{font-size:28px}
  .rj-single-sub{font-size:17px;margin-bottom:22px}
  .rj-single-meta{margin-bottom:40px}
  .rj-single-content{font-size:17px;line-height:1.85}
}

/* 카테고리 페이지 — 호 그룹 소제목 (최신 호부터) */
.rj-issue-label{
  font-family:var(--rj-mono);font-size:11px;font-weight:600;letter-spacing:.12em;
  color:var(--rj-faint);margin:30px 0 4px;padding-bottom:8px;border-bottom:1px solid var(--rj-line);
}

/* ============================================================
   §8 지난호 아카이브
   ============================================================ */
/* 1단 — 호 목록 표지 갤러리 (열 수 = Customizer --rj-arch-cols, 기본4). 행 간격 > 열 간격 */
.rj-issue-grid{display:grid;grid-template-columns:repeat(var(--rj-arch-cols,4),1fr);column-gap:40px;row-gap:56px;margin-top:24px}
/* 카드 = 흰 매트(액자). 표지가 여백 없이 맞닿던 문제 해결. scroll-margin = sticky 바 가림 방지 */
.rj-issue-card{display:block;position:relative;background:#fff;padding:14px;border:1px solid var(--rj-line);
  box-shadow:0 2px 8px rgba(10,34,64,.08);transition:transform .2s ease,box-shadow .2s ease;scroll-margin-top:100px}
.rj-issue-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(10,34,64,.14)}
.rj-issue-cover{position:relative;aspect-ratio:3/4;overflow:hidden;background:#e8ebf0}
.rj-issue-cover img{width:100%;height:100%;object-fit:cover;display:block;border:1px solid rgba(10,34,64,.10);box-sizing:border-box;transition:transform .4s ease}
.rj-issue-card:hover .rj-issue-cover img{transform:scale(1.03)}
.rj-issue-cover .rj-noimg{position:absolute;inset:0;display:grid;place-items:center;color:#b8c0cc;font-size:10px;letter-spacing:.18em}
/* PDF 배지 — 매트 위(카드 우상단, padding 안쪽). 표지를 안 가림 */
.rj-issue-badge{position:absolute;top:14px;right:14px;z-index:2;background:var(--rj-accent);color:#fff;
  font-family:var(--rj-mono);font-size:10px;font-weight:600;letter-spacing:.08em;padding:3px 8px;border-radius:2px}
/* 호 이름 = 카드 제목. 가운데·진하게. min-height로 2줄 넘쳐도 카드 높이 균일 */
.rj-issue-name{font-family:var(--rj-mono);font-size:15px;font-weight:600;letter-spacing:.08em;
  color:var(--rj-ink);text-align:center;margin-top:12px;line-height:1.35;min-height:2.7em}

/* 연도 점프 바 (sticky) — 레이아웃은 연도로 안 끊음(개선3). 이동·하이라이트만 */
.rj-year-nav{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;gap:2px 4px;align-items:center;
  margin:20px 0 4px;padding:10px 0;background:#fff;border-bottom:1px solid var(--rj-line)}
.rj-year-nav a{font-family:var(--rj-mono);font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--rj-faint);
  text-decoration:none;padding:4px 10px;border-radius:3px;transition:color .15s,background .15s}
.rj-year-nav a:not(:last-child)::after{content:"·";margin-left:14px;color:var(--rj-line)}
.rj-year-nav a:hover{color:var(--rj-ink)}
/* 현재 연도 하이라이트(navy 박스) 제거 — 모든 연도 링크 동일하게. hover만 유지 */
.rj-year-nav a.is-active{color:var(--rj-faint);background:none}

/* 2단 — PDF 호 상세 (표지/버튼 + 목차/뷰어) */
.rj-pdf-issue{display:grid;grid-template-columns:240px 1fr;gap:36px;margin-top:24px}
.rj-pdf-cover{width:100%;height:auto;display:block;border-radius:3px;background:#e8ebf0;margin-bottom:14px}
.rj-pdf-download{display:inline-block;font-family:var(--rj-mono);font-size:12px;letter-spacing:.04em;
  color:var(--rj-ink-soft);border-bottom:1px solid var(--rj-line);padding-bottom:2px}
.rj-pdf-download:hover{color:var(--rj-accent);border-color:var(--rj-accent)}
/* 표지 아래 버튼 행 — 좌 PDF 보기(채움) / 우 내려받기(외곽선). 좁으면 세로 스택 */
.rj-pdf-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.rj-pdf-actions > *{flex:1 1 100px;box-sizing:border-box;text-align:center}
.rj-pdf-actions .rj-pdf-viewbtn{margin-top:0;padding:10px 12px;font-size:12.5px;
  background:var(--rj-ink);color:#fff;border:1px solid var(--rj-ink)}
.rj-pdf-actions .rj-pdf-viewbtn:hover{background:var(--rj-accent);border-color:var(--rj-accent);color:#fff}
.rj-pdf-actions .rj-pdf-download{padding:10px 12px;font-size:12.5px;border:1px solid var(--rj-ink);
  color:var(--rj-ink);text-decoration:none}
.rj-pdf-actions .rj-pdf-download:hover{background:var(--rj-ink);border-color:var(--rj-ink);color:#fff}
.rj-toc{border:1px solid var(--rj-line);border-radius:3px;margin-bottom:24px;overflow:hidden}
.rj-toc-head{background:var(--rj-ink);color:#fff;font-weight:700;font-size:14px;padding:12px 16px}
.rj-toc-hint{font-family:var(--rj-mono);font-size:10.5px;font-weight:400;letter-spacing:.04em;color:rgba(255,255,255,.7);margin-left:6px}
.rj-toc-row{display:flex;align-items:baseline;gap:12px;padding:12px 16px;border-top:1px solid var(--rj-line)}
.rj-toc-jump{cursor:pointer}
.rj-toc-jump:hover .rj-toc-title{color:var(--rj-accent)}
.rj-toc-title{flex:1;font-weight:600;font-size:14px;color:var(--rj-ink)}

/* 2단 — 웹 호 섹션 소제목 */
.rj-issue-section{margin-top:34px}
.rj-issue-section-head{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--rj-line);padding-bottom:8px;margin-bottom:4px}
.rj-issue-section-head h3{font-size:15px;font-weight:700;color:var(--rj-ink);margin:0}
.rj-issue-section-head .rj-en{font-size:10px;letter-spacing:.18em;color:var(--rj-faint);font-weight:600}

/* 검색 — PDF 호 매칭 카드 */
.rj-pdfhit{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  padding:14px 0;border-bottom:1px solid var(--rj-line)}
.rj-pdfhit-vol{font-family:var(--rj-mono);font-size:11px;letter-spacing:.06em;color:var(--rj-faint)}
.rj-pdfhit-title{font-weight:700;font-size:16px;color:var(--rj-ink)}
.rj-pdfhit:hover .rj-pdfhit-title{color:var(--rj-accent)}
.rj-pdfhit-meta{font-size:12.5px;color:var(--rj-text-soft)}
.rj-pdfhit-badge{font-family:var(--rj-mono);font-size:10px;font-weight:600;letter-spacing:.08em;
  color:#fff;background:var(--rj-accent);padding:2px 7px}

/* 아카이브 열 수 반응형 (설정값=데스크톱 최대) — 1200↑=설정값 / 900~1199=min(값,3) / 900↓=2 */
@media(max-width:1199px){
  .rj-issue-grid{grid-template-columns:repeat(var(--rj-arch-cols-md,3),1fr)}
}
@media(max-width:899px){
  .rj-issue-grid{grid-template-columns:repeat(2,1fr);column-gap:24px;row-gap:36px}  /* 600 미만도 2열 유지(1열 금지) */
}
@media(max-width:768px){
  .rj-pdf-issue{grid-template-columns:1fr;gap:20px}
}

/* ============================================================
   우측 사이드바 (KROAD+ 박스 + 뉴스레터 구독 폼, 세로 스택)
   ============================================================ */
.rj-aside{display:flex;flex-direction:column;gap:28px}
/* ── 박스 1: KROAD+ — 전체 네이비 ── */
.rj-newsbox{background:var(--rj-ink);color:#fff;padding:22px 20px}
.rj-newsbox-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px}
.rj-newsbox-head h3{font-size:17px;font-weight:700;color:#fff;margin:0}
.rj-newsbox-head .rj-en{font-family:var(--rj-mono);font-size:10px;letter-spacing:.12em;color:var(--rj-accent)}
.rj-newsbox ul{list-style:none;margin:0;padding:0}
.rj-newsbox li{padding:13px 0;border-top:1px solid rgba(255,255,255,.14)}
.rj-newsbox li:first-child{border-top:none}
.rj-newsbox-date{font-family:var(--rj-mono);font-size:10.5px;letter-spacing:.04em;color:rgba(255,255,255,.6);margin-bottom:5px}
.rj-newsbox h4{font-size:13.5px;font-weight:400;line-height:1.5;margin:0}
.rj-newsbox h4 a{color:#f2f3f4}
.rj-newsbox h4 a:hover{color:var(--rj-accent)}
.rj-newsbox-more{display:block;text-align:center;margin-top:16px;padding:10px;
  border:1px solid rgba(255,255,255,.3);font-family:var(--rj-mono);font-size:11px;letter-spacing:.06em;color:#fff}
.rj-newsbox-more:hover{border-color:var(--rj-accent);color:var(--rj-accent)}

/* ── 박스 2: 뉴스레터 구독 폼(스티비) — 흰 박스. 스티비 기본 CSS 미로드, 우리 톤 ── */
.rj-subbox{background:#fff;border:1px solid var(--rj-line);padding:20px}
.rj-subbox-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rj-subbox-mail{display:inline-flex;color:var(--rj-accent)}
.rj-subbox-mail svg{display:block;stroke:currentColor;fill:none}
.rj-subbox-head h3{font-size:16px;font-weight:700;color:var(--rj-ink);margin:0}
.rj-subbox-desc{font-size:13px;line-height:1.6;color:var(--rj-text-soft);margin:0 0 14px}
/* 입력칸·버튼 — id 포함 셀렉터로 부모 테마 input/button 스타일 확실히 이김(PDF 모달 전례) */
.rj-subbox input#stb_email{width:100%;box-sizing:border-box;border:1px solid var(--rj-line);border-radius:0;
  background:#fff;padding:10px 12px;font-family:var(--rj-sans);font-size:13.5px;color:var(--rj-ink);outline:none}
.rj-subbox input#stb_email:focus{border-color:var(--rj-accent)}
.rj-subbox-err{font-size:11.5px;color:var(--rj-accent);margin-top:4px}
.rj-subbox-err:empty{display:none}
/* 동의 줄 — 체크박스 + 문구(2줄까지 허용), [자세히]는 label 밖(클릭 시 토글 안 됨) */
.rj-subbox-consent{display:flex;align-items:baseline;gap:6px;margin-top:12px}
.rj-subbox-consent input[type="checkbox"]{flex:0 0 auto;margin:0;position:relative;top:1px}
.rj-subbox-consent-text{flex:1;min-width:0;font-size:12px;line-height:1.5;color:var(--rj-text-soft)}
.rj-subbox-detail{white-space:nowrap;color:var(--rj-ink-soft)}
.rj-subbox-detail:hover{color:var(--rj-accent)}
.rj-subbox button#stb_form_submit_button{width:100%;box-sizing:border-box;border:0;cursor:pointer;margin-top:12px;
  background:var(--rj-accent);color:#fff;font-family:var(--rj-sans);font-weight:500;font-size:13.5px;padding:11px 12px}
.rj-subbox button#stb_form_submit_button:hover{filter:brightness(.94)}
/* 스티비 JS 결과 메시지(있을 때만) */
.rj-subbox-result{font-size:12px;line-height:1.5;color:var(--rj-text-soft);margin-top:10px}
.rj-subbox-result:empty{display:none}
/* 이중확인 상시 안내 */
.rj-subbox-note{font-size:11px;line-height:1.5;color:var(--rj-faint);margin:10px 0 0}

/* ============================================================
   협찬사 띠 (푸터 위 · 스마트 캐러셀: 안 넘치면 정적 가운데, 넘치면 자동 롤링)
   ============================================================ */
/* 배경 없이 상단 구분선으로 본문과 가벼운 경계. 헤더·로고 모두 좌측 정렬 */
.rj-sponsor{padding-top:38px;padding-bottom:16px;margin-top:44px;border-top:1px solid var(--rj-line)}
.rj-sponsor-head{
  font-size:18px;font-weight:800;color:var(--rj-accent);margin-bottom:24px;letter-spacing:.02em;
}
.rj-sponsor-head small{font-size:12px;color:var(--rj-muted);font-weight:600;margin-left:8px}
.rj-sponsor-viewport{width:100%;overflow:hidden}
/* 정적(기본): 좌측 정렬, 애니메이션 없음 (롤링 상태는 아래 .rj-rolling 그대로) */
.rj-sponsor-track{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:68px}
.rj-sponsor-item{flex:0 0 auto;display:inline-flex;align-items:center}
.rj-sponsor-item img{max-height:64px;width:auto;opacity:.85;display:block}
.rj-sponsor-item:hover img{opacity:1}
/* 롤링: JS가 넘침 감지 시 .rj-rolling 부여 + --rj-sponsor-shift/-dur 설정 */
.rj-sponsor-track.rj-rolling{width:max-content;justify-content:flex-start;will-change:transform;
  animation:rj-sponsor-scroll var(--rj-sponsor-dur,24s) linear infinite}
.rj-sponsor-track.rj-rolling:hover{animation-play-state:paused}
@keyframes rj-sponsor-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(calc(-1 * var(--rj-sponsor-shift,50%)))}
}
/* 모션 최소화 선호 시 — 롤링 끄고 가로 스크롤로 접근 */
@media(prefers-reduced-motion:reduce){
  .rj-sponsor-track.rj-rolling{animation:none}
  .rj-sponsor-viewport{overflow-x:auto}
}
/* 스폰서 반응형 — 좌측 정렬 유지, 간격·로고만 축소(넘치면 기존 롤링 분기 그대로) */
@media(max-width:768px){
  .rj-sponsor{padding-top:32px;margin-top:32px}
  .rj-sponsor-head{margin-bottom:20px}
  .rj-sponsor-track{gap:48px}
  .rj-sponsor-item img{max-height:52px}
}
@media(max-width:560px){
  .rj-sponsor-track{gap:32px}
  .rj-sponsor-item img{max-height:44px}
}

/* ============================================================
   반응형
   ============================================================ */
@media(max-width:900px){
  .rj-layout{grid-template-columns:1fr;gap:40px}
}
@media(max-width:560px){
  .rj-row{grid-template-columns:1fr;gap:14px}
  .rj-grid2{grid-template-columns:1fr}
  .rj-wrap{padding:0 18px}
}

/* ============================================================
   자식 테마 헤더 (마스트헤드 / 네비 풀폭+검색)
   ============================================================ */
/* (구) 시즌 표기 클래스 — §4에서 시즌바로 이동, 정의는 유지 */
.rj-vol{font-weight:600;letter-spacing:.12em;color:var(--rj-ink-soft)}

/* 마스트헤드 — 가운데 로고/타이포 */
.rj-header{background:#fff}
.rj-masthead{display:flex;align-items:center;justify-content:center;text-align:center;padding:46px 0 42px}
.rj-logo{display:inline-flex;flex-direction:row;align-items:center;gap:20px}
.rj-logo img{max-width:330px;height:auto;display:block}
/* CI 엠블럼 + 가로 락업 (Customizer 이미지 없을 때 기본 표시) — 색은 변수로만 제어 */
.rj-logo-emblem{display:inline-flex;flex:0 0 auto}
.rj-logo svg{width:60px;height:60px;display:block}
.rj-logo .rj-ci-ring{stroke:var(--rj-ink)}
.rj-logo .rj-ci-road{fill:var(--rj-ink)}
.rj-logo .rj-ci-line{fill:#fff}                 /* 도로 위 중앙선(흰 점선) */
.rj-logo-divider{flex:0 0 auto;width:1px;align-self:stretch;min-height:52px;background:var(--rj-line)}
.rj-logo-text{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.rj-logo-title{font-family:'GmarketSansBold',var(--rj-sans);font-size:40px;font-weight:400;letter-spacing:-.01em;line-height:1;color:var(--rj-ink)}
.rj-logo-en{font-family:var(--rj-mono);font-size:11px;letter-spacing:.2em;color:var(--rj-faint);text-transform:uppercase}

/* 네비바 — 풀폭, 상단 2px 네이비 / 하단 1px */
.rj-nav{border-top:2px solid var(--rj-ink);border-bottom:1px solid var(--rj-line);background:#fff}
.rj-nav-inner{position:relative;display:flex;align-items:center;justify-content:center;min-height:53px}
.rj-menu{display:flex;justify-content:center;list-style:none;margin:0;padding:0;
  font-size:14.5px;font-weight:500;letter-spacing:.01em}
.rj-menu li{position:relative}
.rj-menu a{color:var(--rj-ink);padding:16px 30px;display:block;white-space:nowrap}
.rj-menu a:hover{color:var(--rj-accent)}
.rj-menu .current-menu-item > a,
.rj-menu .current-cat > a,
.rj-menu .current-menu-parent > a{color:var(--rj-accent)}
/* 하위메뉴(드롭다운) */
.rj-menu .sub-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);
  background:#fff;border:1px solid var(--rj-line);min-width:160px;padding:8px 0;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.06)}
.rj-menu li:hover > .sub-menu{display:block}
.rj-menu .sub-menu li{text-align:center}
.rj-menu .sub-menu a{padding:8px 16px;font-weight:500;font-size:13.5px}

/* 검색 아이콘 — 네비 우측 끝, 원형 테두리 */
.rj-search-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:61;
  width:34px;height:34px;border:1px solid var(--rj-line);border-radius:50%;background:none;cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center;color:var(--rj-ink)}
.rj-search-btn:hover{color:var(--rj-accent);border-color:var(--rj-accent)}

/* 헤더 검색 — 돋보기 자리(우측 끝)에서만 폭 고정으로 펼침. 메뉴 안 가림. */
.rj-search-form{position:absolute;right:44px;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;align-items:center;overflow:hidden;
  width:0;opacity:0;pointer-events:none;transition:width .28s ease,opacity .2s ease}
.rj-search-form.rj-search-open{width:200px;opacity:1;pointer-events:auto}
/* 검색 열리면 메뉴를 왼쪽 정렬로 옮겨 우측에 입력칸 자리 확보(메뉴 계속 보임, 겹침 없음) */
.rj-nav-inner.rj-search-active{justify-content:flex-start}
/* 입력칸: 고정폭 + 내부 스크롤(내용따라 폭 변동 금지), 박스 없이 밑줄 1px */
.rj-search-form .rj-search-input{flex:0 0 200px;width:200px;border:0;border-bottom:1px solid var(--rj-ink);
  border-radius:0;background:#fff;outline:none;
  font-family:var(--rj-sans);font-size:14px;color:var(--rj-ink);padding:6px 4px}
.rj-search-input::placeholder{font-family:var(--rj-sans);color:var(--rj-muted);opacity:1}
/* 제출 버튼(검색결과 상단 폼 전용) */
.rj-search-submit{flex:0 0 auto;border:none;cursor:pointer;
  background:var(--rj-ink);color:#fff;font-family:var(--rj-sans);font-size:13px;font-weight:500;letter-spacing:.02em;
  padding:0 20px;height:42px}
.rj-search-submit:hover{background:var(--rj-accent)}
/* 검색결과 상단 재검색 폼 (항상 표시, 박스형) */
.rj-search-top{display:flex;align-items:center;gap:10px;max-width:520px;margin:18px 0 30px}
.rj-search-top .rj-search-input{flex:1;min-width:0;border:1px solid var(--rj-line);border-radius:0;
  background:#fff;outline:none;font-family:var(--rj-sans);font-size:14px;color:var(--rj-ink);padding:11px 14px}
.rj-search-top .rj-search-input:focus{border-color:var(--rj-accent)}

/* 모바일 메뉴 토글 — 네비 좌측 (데스크탑 숨김) */
.rj-menu-toggle{position:absolute;left:0;top:50%;transform:translateY(-50%);
  display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.rj-menu-toggle span{display:block;width:22px;height:2px;background:var(--rj-ink)}

/* 시즌바 — 네비 아래 전용 줄 (양옆 실선 + 가운데 시즌문구) */
.rj-seasonbar{background:#fff;border-bottom:1px solid var(--rj-line)}
.rj-seasonbar-inner{display:flex;align-items:center;justify-content:center;gap:16px;padding:24px 0}
.rj-seasonbar-line{flex:1;height:1px;background:var(--rj-line)}
.rj-seasonbar-text{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;
  font-family:var(--rj-mono);font-size:22px;font-weight:600;letter-spacing:.16em;
  color:var(--rj-accent);white-space:nowrap}
.rj-seasonbar-dot{width:9px;height:9px;border-radius:50%;background:var(--rj-accent);flex:0 0 auto}
/* 모바일 — 좁은 화면에서 텍스트 줄바꿈/오버플로 방지(점·글씨만 소폭 축소) */
@media(max-width:560px){
  .rj-seasonbar-inner{gap:12px;padding:18px 0}
  .rj-seasonbar-text{font-size:18px;letter-spacing:.12em;gap:8px}
  .rj-seasonbar-dot{width:8px;height:8px}
}

/* ============================================================
   히어로 롤링 — 한 번에 한 장(비활성 opacity:0+pointer-events:none)
   ============================================================ */
.rj-hero{margin:22px 0 8px}
.rj-hero-slider{position:relative;width:100%;height:480px;border-radius:4px;overflow:hidden;background:var(--rj-ink)}
/* 슬라이드: 기본 비활성(완전 숨김) */
.rj-hero-slide{position:absolute;inset:0;display:block;
  background-size:cover;background-position:center;
  opacity:0;pointer-events:none;transition:opacity .7s ease}
.rj-hero-slide.rj-active{opacity:1;pointer-events:auto}
/* 좌→우 네이비 딤(텍스트 대비) + 하단→상단 얇은 딤(우하단 컨트롤·읽기버튼 대비) */
.rj-hero-overlay{position:absolute;inset:0;
  background:
    linear-gradient(to top, rgba(var(--rj-ink-rgb),.45) 0%, rgba(var(--rj-ink-rgb),0) 28%),
    linear-gradient(90deg, rgba(var(--rj-ink-rgb),.82) 0%, rgba(var(--rj-ink-rgb),.35) 50%, rgba(var(--rj-ink-rgb),0) 78%)}
/* 좌하단 텍스트 */
.rj-hero-text{position:absolute;left:54px;bottom:54px;max-width:620px;color:#fff;z-index:2}
.rj-hero-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.rj-hero-chip{font-family:var(--rj-mono);font-size:11px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:#fff;background:var(--rj-accent);padding:5px 12px}
.rj-hero-corner{font-family:var(--rj-mono);font-size:11.5px;letter-spacing:.08em;color:rgba(255,255,255,.8)}
.rj-hero-title{font-size:40px;font-weight:700;line-height:1.28;letter-spacing:-.02em;margin:0 0 14px;color:#fff}
.rj-hero-sub{font-size:16px;font-weight:300;line-height:1.7;margin:0 0 20px;color:rgba(255,255,255,.9)}
.rj-hero-readmore{display:inline-block;font-family:var(--rj-mono);font-size:12px;letter-spacing:.06em;
  color:#fff;border:1px solid rgba(255,255,255,.6);padding:11px 22px;transition:all .3s ease}
.rj-hero-slide:hover .rj-hero-readmore{background:var(--rj-accent);border-color:var(--rj-accent)}
/* 우하단 컨트롤 */
.rj-hero-controls{position:absolute;right:30px;bottom:30px;z-index:5;
  display:flex;align-items:center;gap:18px;color:#fff;pointer-events:auto}
.rj-hero-counter{font-family:var(--rj-mono);font-size:12px;letter-spacing:.1em}
.rj-hero-dots{display:flex;gap:8px;align-items:center}
.rj-hero-dot{width:8px;height:8px;border-radius:4px;border:none;padding:0;cursor:pointer;
  background:rgba(255,255,255,.55);transition:all .4s ease}
.rj-hero-dot.rj-active{width:26px;background:var(--rj-accent)}
.rj-hero-arrows{display:flex;gap:6px}
.rj-hero-prev,.rj-hero-next{width:34px;height:34px;border:1px solid rgba(255,255,255,.5);
  background:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.rj-hero-prev:hover,.rj-hero-next:hover{border-color:var(--rj-accent);color:var(--rj-accent)}
/* 화살표는 CSS 삼각형(transform 미사용) — 부모테마 svg/transform !important와 무관하게 방향 고정 */
.rj-hero-prev::before,.rj-hero-next::before{
  content:"";display:inline-block;width:0;height:0;
  border-top:5px solid transparent;border-bottom:5px solid transparent}
.rj-hero-prev::before{border-right:7px solid currentColor}  /* ◀ 이전 */
.rj-hero-next::before{border-left:7px solid currentColor}   /* ▶ 다음 */

/* ============================================================
   푸터 (§10 · 4열) — 네이비 배경 + 연회색 텍스트
   ============================================================ */
.rj-footer{background:var(--rj-ink);color:rgba(255,255,255,.7);margin-top:56px}
.rj-footer a{color:rgba(255,255,255,.7);transition:color .15s}
.rj-footer a:hover{color:var(--rj-accent)}
/* 좌측 브랜드(여유폭) + 우측 링크 그룹. 브랜드↔그룹 간격은 gap 고정(양끝 벌어짐 방지),
   우측 두 열(바로가기·이용안내)은 그룹 안에서 서로 붙임. */
.rj-footer-inner{display:flex;flex-wrap:wrap;gap:40px 72px;padding:52px 32px 40px}
.rj-footer-brand{flex:0 1 400px;min-width:260px}
.rj-footer-right{display:flex;gap:56px}
.rj-footer-col-title{font-family:var(--rj-mono);font-size:11px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.45);margin:0 0 18px}
/* [1] 브랜드 / 연락처 */
.rj-footer-brand-name{font-family:'GmarketSansBold',var(--rj-sans);font-size:21px;font-weight:400;color:#fff;margin:0 0 5px}
.rj-footer-brand-en{font-family:var(--rj-mono);font-size:10.5px;letter-spacing:.1em;
  color:rgba(255,255,255,.45);margin:0 0 20px}
.rj-footer-contact{font-size:13px;line-height:1.5;margin:0 0 18px}
.rj-footer-contact p{margin:0 0 8px;display:flex;gap:10px}
.rj-footer-label{flex:0 0 52px;font-family:var(--rj-mono);font-size:10.5px;letter-spacing:.06em;
  color:rgba(255,255,255,.4);padding-top:1px}
.rj-footer-issn{display:inline-block;border:1px solid rgba(255,255,255,.22);
  font-family:var(--rj-mono);font-size:11px;letter-spacing:.05em;color:rgba(255,255,255,.78);padding:6px 11px}
/* [2~4] 링크 열 */
.rj-footer-links{list-style:none;margin:0;padding:0}
.rj-footer-links li{margin-bottom:11px}
.rj-footer-links a{font-size:13.5px}
/* 하단 카피라이트 */
.rj-footer-bottom{border-top:1px solid rgba(255,255,255,.12)}
.rj-footer-bottom-inner{padding:18px 32px;font-family:var(--rj-mono);font-size:11px;
  letter-spacing:.04em;color:rgba(255,255,255,.45)}
@media(max-width:900px){
  /* 브랜드 한 줄 차지 → 그 아래 바로가기·이용안내 2열 */
  .rj-footer-inner{gap:34px 40px;padding:44px 32px 32px}
  .rj-footer-brand{flex-basis:100%}
  .rj-footer-right{gap:48px}
}
@media(max-width:560px){
  .rj-footer-inner{padding:36px 24px 28px}
  .rj-footer-right{flex-direction:column;gap:28px}
  .rj-footer-bottom-inner{padding:16px 24px}
}

/* ============================================================
   헤더/히어로 반응형
   ============================================================ */
@media(max-width:900px){
  .rj-hero-slider{height:380px}
  .rj-hero-text{left:30px;right:30px;bottom:36px;max-width:none}
  .rj-hero-title{font-size:28px}
  .rj-hero-sub{font-size:14px;margin-bottom:16px}
}
@media(max-width:768px){
  .rj-menu-toggle{display:flex}
  /* 네비 바는 유지, 메뉴만 토글 시 아래로 드롭 */
  .rj-menu{display:none;position:absolute;top:100%;left:0;right:0;z-index:60;
    flex-direction:column;background:#fff;border-bottom:1px solid var(--rj-line);
    box-shadow:0 8px 20px rgba(0,0,0,.06)}
  .rj-nav-open .rj-menu{display:flex}
  .rj-menu li{width:100%;text-align:center}
  .rj-menu a{padding:13px 0;border-bottom:1px solid var(--rj-line);white-space:normal}
  .rj-menu .sub-menu{position:static;transform:none;border:none;box-shadow:none;display:block;background:#f7f8fa}
  .rj-masthead{padding:28px 0 30px}
  .rj-logo img{max-width:250px}
  .rj-logo{gap:16px}
  .rj-logo svg{width:46px;height:46px}
  .rj-logo-divider{min-height:40px}
  .rj-logo-title{font-size:30px}
  .rj-logo-en{font-size:9.5px;letter-spacing:.14em}
}
@media(max-width:560px){
  .rj-hero-slider{height:340px}
  .rj-hero-text{left:20px;right:20px;bottom:62px}
  .rj-hero-title{font-size:22px;margin-bottom:10px}
  .rj-hero-sub{display:none}
  .rj-hero-controls{right:16px;bottom:14px;gap:12px}
  .rj-hero-arrows{display:none}
  /* 검색 입력칸 모바일에서 더 좁게(우측 끝, 메뉴 안 가림) */
  .rj-search-form.rj-search-open{width:150px}
  .rj-search-form .rj-search-input{flex-basis:150px;width:150px}
  /* 로고 락업 — 엠블럼·글씨 추가 축소, 영문은 줄바꿈 허용해 가로 깨짐 방지 */
  .rj-logo{gap:12px}
  .rj-logo svg{width:38px;height:38px}
  .rj-logo-divider{min-height:34px}
  .rj-logo-title{font-size:24px}
  .rj-logo-text{max-width:48vw}
  .rj-logo-en{font-size:8px;letter-spacing:.08em;white-space:normal;line-height:1.4}
}

/* ============================================================
   한글 라벨 타이포 정정
   monospace + 넓은 자간은 영문 대문자 라벨 전용 처방(한글 글리프 없어 시스템폰트로
   폴백 + 자소 흩어짐). 한글이 들어가는 라벨만 본문 폰트(--rj-sans) + 자간 0으로.
   크기·색·굵기는 각 원본 규칙 그대로(여기선 폰트·자간만 덮어씀).
   공유 클래스는 한글 전용 클래스(.rj-sub-ko / -issue-label-ko / -footer-issn-ko)로만
   덮어써 영문 라벨(.rj-en·.rj-issue-label 영문 호명·ISSN 숫자부)은 불변.
   파일 끝에 배치 → 동일 특정도 규칙보다 나중이라 확실히 적용.
   ============================================================ */
.rj-eyebrow,
.rj-single-cat,
.rj-single-meta,
.rj-pdf-open,
.rj-modal-dl,
.rj-modal-status,
.rj-modal-zoom-fit,
.rj-modal-fail-link,
.rj-pdf-download,
.rj-toc-hint,
.rj-hero-corner,
.rj-hero-readmore,
.rj-footer-col-title,
.rj-footer-label,
.rj-footer-issn-ko,
.rj-footer-bottom-inner,
.rj-en.rj-sub-ko,
.rj-issue-label.rj-issue-label-ko{
  font-family:var(--rj-sans);
  letter-spacing:0;
}
