/* 가온누리 — 공연 프로그램북 테마 · 단일 컬럼 1040px
   아이보리 바탕, 버건디 막·푸터, 금색 강조, 먹색 글자. 제목 Gowun Batang(명조), 본문 Noto Sans KR.
   글자 크기는 rem으로 잡아 "가 글자 크게"(html.gfs)가 화면 전체를 한 단계 키운다. */
:root{
  --bg:#FBF6EE; --paper:#FFFFFF; --ink:#23201C; --text:#4A3F37; --muted:#5F544B; --soft:#6E6259; --line:#E6DACB; --dot:#CDBBA5;
  --wine:#6B1E2E; --wine2:#8E2A3D; --wine3:#3A1019; --gold:#C9A227; --gold-t:#8A6D12; --gold-l:#E8C96A;
  --ser:'Gowun Batang','Noto Serif KR',serif;
}
html{font-size:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.gfs{font-size:115%}
*{box-sizing:border-box}
body.gn-body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans KR',system-ui,-apple-system,sans-serif;font-size:1rem;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
a{color:var(--wine);text-decoration:none}
a:hover{color:var(--wine2)}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gskip{position:absolute;left:-9999px}.gskip:focus{left:12px;top:12px;z-index:99;background:var(--wine);color:#fff;padding:8px 14px;border-radius:6px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.gk{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.25em;color:var(--gold-t)}

/* 헤더 */
.gtop{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:4px double var(--wine)}
.gtop-in{min-height:68px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}
.gbrand{display:flex;align-items:center;gap:10px;font-family:var(--ser);font-weight:700;font-size:1.625rem;color:var(--wine);letter-spacing:.05em}
.gbrand img{width:150px;height:auto}
.gnav{margin-left:auto;display:flex;flex-wrap:wrap;gap:4px 22px;font-size:.9375rem;font-weight:500}
.gnav a{padding:8px 0;color:var(--ink);border-bottom:2px solid transparent}
.gnav a:hover{color:var(--wine);border-color:var(--gold)}
.gfsbtn{order:3;font:inherit;font-size:.875rem;font-weight:700;color:var(--wine);background:#fff;border:1px solid var(--wine);border-radius:6px;padding:6px 12px;min-height:40px;cursor:pointer}
.gfsbtn[aria-pressed="true"]{background:var(--wine);color:#fff}
.gmbtn{display:none;background:#fff;color:var(--wine);border:1px solid var(--dot);border-radius:6px;width:44px;height:44px;font-size:1.25rem;cursor:pointer}

/* 히어로: 막이 열린 무대 + 프로그램 표지 */
.ghero{background:repeating-linear-gradient(90deg,#5A1826 0 18px,#6B1E2E 18px 40px,#7A2535 40px 52px);padding:44px 24px 0}
.ghero-rod{max-width:1040px;height:10px;margin:0 auto;background:var(--gold);border-radius:4px 4px 0 0}
.ghero-card{max-width:1040px;margin:0 auto;background:var(--bg);padding:48px 56px 44px;box-shadow:0 18px 40px rgba(0,0,0,.25);text-align:center}
.ghero-card h1{margin:6px 0 0;font-family:var(--ser);font-weight:700;font-size:3.5rem;line-height:1.25;color:var(--ink)}
.ghero-card h1 span{color:var(--wine)}
.grule{width:120px;height:2px;background:var(--gold);margin:22px auto}
.ghsub{margin:0 auto 26px;max-width:660px;font-size:1.0625rem;color:var(--text)}
.ghsub b{color:var(--ink)}
.gsearch{display:flex;max-width:560px;margin:0 auto;border:2px solid var(--wine);border-radius:8px;background:#fff;overflow:hidden}
.gsearch input{flex:1;min-width:0;border:0;outline:none;padding:14px 18px;font:inherit;font-size:.9375rem;background:none;color:var(--ink)}
.gsearch button{flex:none;border:0;background:var(--wine);color:var(--bg);font:inherit;font-weight:700;padding:0 26px;min-height:48px;cursor:pointer}
.gsearch button:hover{background:var(--wine2)}
.ghero-stat{margin:18px 0 0;font-size:.875rem;color:var(--soft)}
.ghero-floor{max-width:1100px;margin:0 auto;height:18px;background:#3A2A1E;border-radius:0 0 6px 6px}
.gmain{padding-bottom:64px}
.ghero-img{margin:40px 0 0;width:100%;border-radius:10px}

/* 제목 공통 */
.gsec{margin:0 0 12px;font-family:var(--ser);font-weight:700;font-size:1.875rem;line-height:1.35;color:var(--ink)}
.gsec.big{font-size:2.375rem;margin:2px 0 6px}
.gsec .kw{color:var(--wine)}
.glead{margin:0 0 18px;color:var(--text);max-width:780px}
.gblock{padding-top:64px}
.ghead2{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:12px}
.ghead2 .gsec{margin:0}
.gmore{margin-left:auto;font-weight:700;font-size:.875rem}
.gmini{font-size:.8125rem;color:var(--soft)}
.gsub{margin:18px 0 8px;font-weight:700;font-size:.875rem;color:var(--muted)}
.gempty{color:var(--muted)}

/* 차례 */
.gcontents{padding-top:56px}
.gtoc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 48px}
.gtoc-p{margin:0 0 6px;padding-bottom:6px;border-bottom:2px solid var(--wine);font-family:var(--ser);font-weight:700;font-size:1.25rem;color:var(--wine)}
.gtoc-p span{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:.875rem;color:var(--soft)}
.gtoc ol{list-style:none;margin:0;padding:0}
.gtoc a{display:flex;align-items:baseline;gap:10px;padding:9px 0;min-height:44px;color:var(--ink)}
.gtoc a:hover .nm{color:var(--wine)}
.gtoc .no{flex:none;width:4.2em;font-family:var(--ser);font-weight:700;color:var(--gold-t)}
.gtoc .nm{flex:none}
.gtoc .lead,.gcast .lead,.grows .dots{flex:1;min-width:16px;border-bottom:2px dotted var(--dot);transform:translateY(-5px)}
.gtoc .ct{flex:none;font-size:.875rem;color:var(--soft)}

/* 키워드 풀이 */
.gwords{padding-top:64px}
.gwgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.gword{padding:20px 22px;border-right:1px solid var(--line)}
.gword:last-child{border-right:0}
.gword h3{margin:0 0 8px;font-family:var(--ser);font-size:1.5rem;color:var(--wine)}
.gword p{margin:0 0 12px;font-size:.9375rem;color:var(--text)}
.gword .use{margin:0;font-size:.875rem;color:var(--muted)}
.gword .use b{color:var(--ink)}
.gword .use a{font-weight:700;border-bottom:1px solid currentColor;white-space:nowrap}
.gwpick-h{margin:26px 0 10px;font-family:var(--ser);font-size:1.25rem}
.gwpick{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gwpick li{background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:6px;padding:14px 16px}
.gwpick b{display:block;color:var(--ink)}
.gwpick span{font-size:.875rem;color:var(--muted)}
.gnohit{margin:28px 0 0;padding:14px 18px;background:#fff;border:1px dashed var(--wine);border-radius:8px;font-weight:700}

/* 부·막 */
.gpart{padding-top:76px}
.gpart-h{text-align:center;margin-bottom:6px}
.gpart-h .glead{margin:0 auto 6px;max-width:660px}
.gact{display:flex;flex-wrap:wrap;gap:16px 40px;padding:30px 0;border-bottom:1px solid var(--line)}
.gact-h{flex:1 1 260px;min-width:0}
.gact-no{margin:0;font-family:var(--ser);font-weight:700;font-size:.9375rem;color:var(--gold-t)}
.gact-h h3{margin:0 0 8px;font-family:var(--ser);font-size:1.625rem;line-height:1.35}
.gact-d{margin:0 0 10px;font-size:.9375rem;color:var(--text)}
.gact-go{display:inline-block;font-size:.875rem;font-weight:700;border-bottom:1px solid var(--wine)}
.gcast{flex:999 1 480px;min-width:0;list-style:none;margin:0;padding:0}
.gcast a{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:10px 4px;border-bottom:1px dotted var(--dot);color:var(--ink);min-height:44px}
.gcast a:hover{background:#fff}
.gcast a:hover b{color:var(--wine)}
.gcast b{flex:none;font-size:1rem}
.gcast .dm{flex:none;font-size:.8125rem;color:var(--wine)}
.gcast .rl{flex:1 1 100%;font-size:.8125rem;color:var(--soft)}

/* 오늘의 공식 주소 점검: 티켓 */
.gticket{display:flex;flex-wrap:wrap;margin-top:64px;padding-top:0;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.gticket-stub{flex:1 1 260px;background:var(--wine);color:var(--bg);padding:26px 28px;border-right:3px dashed var(--bg)}
.gticket-stub .gk{color:var(--gold-l)}
.gticket-stub .gsec{color:var(--bg);font-size:1.75rem;margin:4px 0 8px}
.gticket-stub .gsec .kw{color:var(--gold-l)}
.gticket-stub p{margin:0;font-size:.875rem;color:#F1E3D3}
.gcheck{flex:999 1 520px;min-width:0;padding:24px 28px}
.gcheck-t{margin:0 0 12px;color:var(--text)}
.gcheck-t b{color:var(--ink)}
.gstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;text-align:center;font-size:.8125rem}
.gstats div{border:1px solid var(--line);border-radius:8px;padding:8px}
.gstats b{display:block;font-family:var(--ser);font-size:1.5rem}
.gstats .s-ok b{color:#2F5D3A}.gstats .s-mv b{color:var(--gold-t)}.gstats .s-blk b{color:var(--soft)}.gstats .s-down b{color:var(--wine2)}
.ghist{list-style:none;margin:12px 0 0;padding:10px 0 0;border-top:1px dashed var(--dot);font-size:.8125rem;color:var(--muted)}
.ghist .d{font-weight:700;color:var(--ink)}
.glegend{margin-top:14px;border-top:1px dashed var(--dot);padding-top:10px}
.glegend summary{cursor:pointer;font-size:.875rem;font-weight:700;color:var(--wine);list-style:none;min-height:32px}
.glegend summary::-webkit-details-marker{display:none}
.glegend dl{margin:10px 0 0;display:grid;grid-template-columns:8.5em 1fr;gap:4px 12px;font-size:.875rem;color:var(--text)}
.glegend dt{font-weight:700;color:var(--ink)}
.glegend dd{margin:0}
.gcheck-n{margin:12px 0 0;font-size:.8125rem;color:var(--soft)}
.gcheck-n a{font-weight:700}
.gpage .gcheck{background:#fff;border:1px solid var(--line);border-radius:10px}

/* 용어 풀이 */
.ggloss{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.ggloss div{padding:12px 0;border-bottom:1px solid var(--line)}
.ggloss dt{font-family:var(--ser);font-weight:700;font-size:1.125rem;color:var(--wine)}
.ggloss dd{margin:2px 0 0;font-size:.9375rem;color:var(--text)}

/* 새 글: 소식 목록 */
.gnews{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.gnews a{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.gnews a:hover b{color:var(--wine)}
.gnews time{flex:none;width:6em;font-family:var(--ser);font-weight:700;color:var(--wine)}
.gnews .pc{flex:none;font-size:.75rem;font-weight:700;color:var(--gold-t);border:1px solid var(--gold);border-radius:4px;padding:0 8px}
.gnews b{flex:1 1 360px;font-size:1.0625rem;font-weight:500}

/* 카드형 새 글 */
.gposts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.gposts a{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-top:3px solid var(--wine);border-radius:6px;padding:16px 18px;color:var(--ink)}
.gposts a:hover b{color:var(--wine)}
.gposts .pc{font-size:.75rem;font-weight:700;color:var(--gold-t)}
.gposts b{display:block;margin:6px 0;font-size:1.0625rem;line-height:1.5}
.gposts .ex{font-size:.875rem;color:var(--muted);flex:1}
.gposts .meta{margin-top:10px;font-size:.75rem;color:var(--soft)}

/* 부록 */
.ggcards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.ggcards a{display:block;height:100%;background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:6px;padding:14px;color:var(--ink)}
.ggcards a:hover b{color:var(--wine)}
.ggcards .no{display:block;font-family:var(--ser);font-weight:700;color:var(--gold-t)}
.ggcards b{font-size:.9375rem;line-height:1.5}
.gguides{list-style:none;margin:0;padding:0}
.gguides li{border-bottom:1px dashed var(--dot)}
.gguides a{display:flex;gap:16px;align-items:baseline;padding:12px 0;color:var(--ink)}
.gguides .no{flex:none;min-width:4em;font-family:var(--ser);font-weight:700;color:var(--gold-t)}
.gguides .ex{font-size:.875rem;color:var(--muted)}

/* 급상승 */
.trends{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 22px 12px}
.trends .thead{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:space-between;padding:6px 0 8px;border-bottom:1px dotted var(--dot)}
.trends .live{font-size:.75rem;color:var(--soft)}
.trends .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--wine);margin-right:6px}
.trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px}
.trend-grid a{display:flex;gap:12px;padding:8px 0;border-bottom:1px dotted var(--dot);min-width:0;color:var(--ink)}
.trend-grid .rk{width:24px;font-family:var(--ser);font-weight:700;color:var(--soft)}.trend-grid .rk.top{color:var(--wine)}
.trend-grid .kw{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lead{color:var(--muted)}

/* FAQ */
.gfaq details{border-bottom:1px solid var(--line);padding:0 4px}
.gfaq summary{cursor:pointer;padding:14px 0;font-weight:700;list-style:none;min-height:44px}
.gfaq summary::-webkit-details-marker{display:none}
.gfaq .q{font-family:var(--ser);color:var(--wine);margin-right:6px}
.gfaq .a{margin:0 0 14px;color:var(--text)}
.gfaq .aa{font-family:var(--ser);font-weight:700;color:var(--gold-t);margin-right:6px}
.gfaq .a a,.gprose a,.gbox a,.ghome a,.glead a,.gstat a{color:var(--wine);font-weight:700;border-bottom:1px solid currentColor}

/* 막·글·페이지 */
.gpage{padding-top:4px}
.gcrumb{padding:16px 0 0;font-size:.8125rem;color:var(--soft)}
.gcrumb a{color:var(--muted)}
.gphead{padding:24px 0 26px;border-bottom:4px double var(--wine);text-align:center}
.gphead h1{margin:6px 0 10px;font-family:var(--ser);font-weight:700;font-size:2.625rem;line-height:1.3}
.gphead .glead{margin:0 auto 10px}
.gstat{margin:0;font-size:.875rem;color:var(--muted)}
.gdate{margin:0;font-size:.8125rem;color:var(--soft)}
.ghowto{margin:0 0 14px;background:#fff;border:1px solid var(--line);border-left:0;border-top:3px solid var(--gold);border-radius:6px;padding:10px 16px;font-size:.875rem}
.ghowto b{margin-right:4px;color:var(--wine)}
.grows{list-style:none;margin:0;padding:6px 20px;background:#fff;border:1px solid var(--line);border-radius:8px}
.grows li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:12px 0;border-bottom:1px dotted var(--dot)}
.grows li:last-child{border-bottom:0}
.grows li>a{min-width:0;color:var(--ink)}
.grows li>a:hover b{color:var(--wine)}
.grows b{font-size:1rem}
.grows .ft{display:block;font-size:.8125rem;color:var(--soft)}
.grows .dm{font-size:.75rem;color:var(--wine);white-space:nowrap}
.gst{font-size:.75rem;font-weight:700;color:var(--soft);white-space:nowrap}
.gst::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#C9BEB1;margin-right:5px;vertical-align:1px}
.gst-ok{color:#2F5D3A}.gst-ok::before{background:#3E7A4C}
.gst-mv{color:var(--gold-t)}.gst-mv::before{background:var(--gold)}
.gst-blk::before{background:var(--soft)}
.gst-down{color:var(--wine2)}.gst-down::before{background:var(--wine2)}
.gbox{margin:28px 0 0;background:#fff;border:1px solid var(--line);border-top:4px solid var(--wine);border-radius:6px;padding:16px 20px}
.gbox-h{margin:0 0 4px;font-family:var(--ser);font-weight:700;color:var(--wine)}
.gbox p{margin:0}
.gtbl{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0;border:1px solid var(--line);border-radius:8px;background:#fff}
.gtbl table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:520px}
.gtbl th{background:#F3EADC;text-align:left;padding:10px 12px;font-weight:700}
.gtbl td{padding:10px 12px;border-top:1px dotted var(--dot);vertical-align:top}
.gprose{max-width:780px;margin:0 auto;padding-top:8px}
.gprose h2{font-family:var(--ser);font-weight:700;font-size:1.625rem;margin:36px 0 8px;line-height:1.4}
.gprose h3{font-size:1.125rem;margin:22px 0 4px}
.gprose p,.gprose li{color:var(--text)}
.gprose ul,.gprose ol{padding-left:22px}
.gprose li{margin:4px 0}
.gchk{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gchk li{background:#fff;border:1px solid var(--dot);border-radius:4px;padding:6px 14px;font-size:.875rem;font-weight:700}
.gchk li::before{content:'✓ ';color:var(--wine)}
.gpn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:8px}
.gpn a{display:block;background:#fff;border:1px solid var(--line);border-radius:6px;padding:12px 16px;font-weight:700;color:var(--ink)}
.gpn a:hover{border-color:var(--wine)}
.gpn small{display:block;font-family:var(--ser);font-size:.8125rem;color:var(--gold-t)}
.gpn .n{text-align:right}
.grel{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.grel a{display:inline-flex;align-items:center;min-height:42px;background:#F3EADC;border-radius:4px;padding:6px 16px;font-weight:700;font-size:.875rem;color:var(--wine)}
.grel a:hover{background:#EADBC4}
.grel.plain a{background:#fff;border:1px solid var(--dot)}
.ghome{margin:16px 0 0;color:var(--muted)}
.gpimg{margin:24px 0 0;width:100%;border-radius:10px;overflow:hidden}
.gpimg img{width:100%}
.gpager{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.gpager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--dot);border-radius:4px;background:#fff;font-weight:700}
.gpager .current{background:var(--wine);color:#fff;border-color:var(--wine)}

/* 푸터: 커튼콜 */
.gfoot{background:var(--wine3);color:#E9DCCB;text-align:center;font-size:.875rem;margin-top:24px}
.gfoot a{color:#E9DCCB}.gfoot a:hover{color:var(--gold-l)}
.gfoot-bar{height:8px;background:var(--gold)}
.gfoot-in{max-width:820px;padding-top:36px;padding-bottom:30px}
.gfoot-k{margin:0 0 4px;font-size:.75rem;letter-spacing:.3em;color:var(--gold-l)}
.gfoot-brand{margin:0 0 10px;font-family:var(--ser);font-weight:700;font-size:1.75rem;color:var(--bg)}
.gfoot p{margin:0 0 14px}
.gfoot-stat{color:var(--gold-l)}
.gfoot-acts{line-height:2;margin-bottom:4px!important}
.gfoot-acts b{color:#fff}
.gfoot-pages{padding-top:14px;border-top:1px solid #5C2A33;line-height:2}
.gfoot-end{font-size:.8125rem;color:#C9B6A6;margin-bottom:0!important}

/* 반응형 */
@media (max-width:900px){
  .gposts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ggcards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .gmbtn{display:block;order:4}
  .gfsbtn{margin-left:auto}
  .gnav{display:none;order:5;width:100%;margin:0 0 12px;flex-direction:column;gap:0}
  .gnav.on{display:flex}
  .gnav a{padding:10px 0;border-bottom:1px solid var(--line)}
  .ghero{padding:24px 12px 0}
  .ghero-card{padding:30px 18px 28px}
  .ghero-card h1{font-size:2.25rem}
  .ghsub{font-size:.9375rem}
  .gsearch button{padding:0 16px}
  .gsec{font-size:1.5rem}.gsec.big{font-size:1.75rem}
  .gphead h1{font-size:1.875rem}
  .gtoc,.gwgrid,.gwpick,.ggloss,.gposts,.ggcards,.trend-grid,.gpn{grid-template-columns:1fr}
  .gword{border-right:0;border-bottom:1px solid var(--line);padding:16px 4px}
  .gword:last-child{border-bottom:0}
  .gact{padding:24px 0}
  .gstats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gticket-stub{border-right:0;border-bottom:3px dashed var(--bg)}
  .gcheck{padding:20px 18px}
  .glegend dl{grid-template-columns:1fr}
  .glegend dd{margin-bottom:6px}
  .gmore{margin-left:0}
  .gnews time{width:auto}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
