/* ===== A4 landscape slide system : 1123 x 794 px (297 x 210 mm @96dpi) ===== */
:root{
  --ink:#0E1A14; --ink2:#33453C; --muted:#6B7C73;
  --brand:#0F5C3F; --brand2:#12855A; --brand3:#3FB27F;
  --gold:#B8860B; --line:#DCE5E0; --bg:#FFFFFF; --soft:#F2F7F4; --soft2:#E7F0EB;
  --w:1123px; --h:794px;
}
*{box-sizing:border-box}
.slide{
  position:relative; width:var(--w); height:var(--h); background:var(--bg);
  color:var(--ink); overflow:hidden;
  font-family:"Noto Sans","Noto Sans CJK KR","Malgun Gothic",system-ui,sans-serif;
  font-size:15px; line-height:1.5; letter-spacing:-.1px;
}
.slide .pad{position:absolute; inset:56px 64px 58px 64px; display:flex; flex-direction:column;}
.pad>.cols,.pad>.split,.pad>.tl,.pad>.b-list{flex:1; min-height:0}
.pad>.cards{flex:0 0 auto}
.pad>.b-list{justify-content:flex-start}
/* header */
.s-kicker{font-size:13px; font-weight:700; color:var(--brand2); letter-spacing:.6px; text-transform:uppercase; margin-bottom:6px}
.s-title{font-size:34px; line-height:1.18; font-weight:800; color:var(--ink); margin:0 0 8px}
.s-lead{font-size:16px; color:var(--ink2); margin:0 0 18px; max-width:960px}
.s-rule{width:64px; height:4px; background:var(--brand2); border-radius:2px; margin:0 0 16px}
/* footer */
.s-foot{position:absolute; left:64px; right:64px; bottom:22px; display:flex; justify-content:space-between;
  align-items:center; font-size:11.5px; color:var(--muted); border-top:1px solid var(--line); padding-top:8px}
.s-foot b{color:var(--brand); font-weight:700}
.s-num{font-variant-numeric:tabular-nums}
/* ===== cover ===== */
.lay-cover{background:linear-gradient(135deg,#08301F 0%,#0F5C3F 46%,#127E56 100%); color:#fff}
.lay-cover .cover-grid{position:absolute; inset:0; opacity:.16;
  background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(circle at 78% 32%,#000 0%,transparent 68%)}
.lay-cover .cv{position:absolute; left:78px; right:78px; top:132px}
.lay-cover .cv-tag{display:inline-block; padding:6px 14px; border:1px solid rgba(255,255,255,.5);
  border-radius:99px; font-size:13px; font-weight:600; letter-spacing:.4px; margin-bottom:22px}
.lay-cover h1{font-size:52px; line-height:1.14; font-weight:800; margin:0 0 16px; max-width:820px}
.lay-cover .cv-sub{font-size:19px; line-height:1.5; color:#CFE9DC; max-width:760px; margin:0 0 34px}
.lay-cover .cv-meta{display:flex; gap:34px; font-size:14px; color:#BFE0D0}
.lay-cover .cv-meta b{display:block; font-size:11px; letter-spacing:1px; color:#7EC5A4; margin-bottom:4px; text-transform:uppercase}
.lay-cover .cv-brand{position:absolute; right:78px; bottom:64px; text-align:right}
.lay-cover .cv-brand .n{font-size:22px; font-weight:800}
.lay-cover .cv-brand .d{font-size:12.5px; color:#9FD3BA; margin-top:4px}
/* ===== section divider ===== */
.lay-section{background:var(--soft)}
.lay-section .sec{position:absolute; left:80px; right:80px; top:236px}
.lay-section .sec-no{font-size:96px; font-weight:800; color:var(--brand3); opacity:.42; line-height:1}
.lay-section h2{font-size:44px; font-weight:800; margin:2px 0 14px; color:var(--brand)}
.lay-section p{font-size:17px; color:var(--ink2); max-width:820px; margin:0}
.lay-section .sec-side{position:absolute; right:0; top:-70px; width:300px; opacity:.9}
/* ===== bullets ===== */
.b-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
.b-list li{position:relative; padding-left:30px; font-size:16.5px; color:var(--ink)}
.b-list li::before{content:""; position:absolute; left:6px; top:9px; width:9px; height:9px;
  border-radius:2px; background:var(--brand2); transform:rotate(45deg)}
.b-list li .bd{display:block; font-size:14px; color:var(--muted); margin-top:3px; line-height:1.45}
.b-list.dense li{font-size:15px}
.b-list.lg{gap:16px} .b-list.lg li{font-size:18px} .b-list.lg li .bd{font-size:15px}
.b-list.xl{gap:20px} .b-list.xl li{font-size:20px} .b-list.xl li .bd{font-size:16px}
.pad>.b-list.lg,.pad>.b-list.xl{flex:0 0 auto}
.b-note{margin-top:18px; background:var(--soft); border-left:4px solid var(--brand3);
  padding:12px 16px; font-size:14px; color:var(--ink2); border-radius:0 8px 8px 0}
/* ===== two column ===== */
.cols{display:grid; grid-template-columns:1fr 1fr; gap:26px}
.col{background:var(--soft); border:1px solid var(--line); border-radius:12px; padding:20px 22px}
.col h3{margin:0 0 14px; font-size:20px; font-weight:800; color:var(--brand)}
.col .b-list.dense li{font-size:15.5px; margin-bottom:2px}
.col.alt{background:#fff}
/* ===== cards ===== */
.cards{display:grid; gap:16px}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.cards.c4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff; border:1px solid var(--line); border-top:4px solid var(--brand2);
  border-radius:10px; padding:20px 20px 18px; min-height:120px}
.cards.c4 .card p{font-size:15px; line-height:1.55} .cards.c4 .card ul{font-size:14.5px; line-height:1.5} .cards.c4 .card ul li{margin-bottom:7px}
.cards.c4 .card h4{font-size:18px}
.cards.c3 .card p,.cards.c2 .card p{font-size:15px} .cards.c3 .card ul,.cards.c2 .card ul{font-size:14.5px}
.card .ic{font-size:22px; margin-bottom:8px; display:block}
.card h4{margin:0 0 8px; font-size:16.5px; font-weight:800; color:var(--ink)}
.card p{margin:0; font-size:13.5px; color:var(--ink2); line-height:1.5}
.card ul{margin:6px 0 0; padding-left:16px; font-size:13px; color:var(--ink2)}
.card ul li{margin-bottom:3px}
/* ===== table ===== */
.tbl{width:100%; border-collapse:collapse; font-size:14px}
.tbl th{background:var(--brand); color:#fff; text-align:left; padding:10px 12px; font-weight:700; font-size:13.5px}
.tbl td{border-bottom:1px solid var(--line); padding:9px 12px; color:var(--ink2); vertical-align:top}
.tbl tr:nth-child(even) td{background:#FAFCFB}
.tbl td b{color:var(--ink)}
.tbl.sm{font-size:12.8px}
.tbl.sm th,.tbl.sm td{padding:7px 10px}
/* ===== split (text + image) ===== */
.split{display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:start}
.split.wide-r{grid-template-columns:0.85fr 1.15fr}
.figure{border-radius:12px; overflow:hidden; border:1px solid var(--line); background:var(--soft)}
.figure img{display:block; width:100%; height:auto; max-height:520px; object-fit:contain; background:#fff}
.split .figure img{max-height:470px}
.gallery-grid .figure img{max-height:360px}
.figure .cap{font-size:12.5px; color:var(--muted); padding:8px 12px; background:#fff; border-top:1px solid var(--line)}
.ph{display:flex; align-items:center; justify-content:center; height:300px; color:var(--muted);
  font-size:13px; background:repeating-linear-gradient(45deg,#F4F8F6,#F4F8F6 10px,#EDF3F0 10px,#EDF3F0 20px)}
/* ===== kpi ===== */
.kpis{display:grid; gap:16px; margin-bottom:20px}
.kpis.k3{grid-template-columns:repeat(3,1fr)} .kpis.k4{grid-template-columns:repeat(4,1fr)}
.kpi{background:linear-gradient(160deg,#0F5C3F,#12855A); color:#fff; border-radius:12px; padding:18px 20px}
.kpi .v{font-size:32px; font-weight:800; line-height:1.1}
.kpi .l{font-size:13px; color:#CFE9DC; margin-top:6px}
/* ===== timeline ===== */
.tl{display:grid; gap:0; grid-auto-flow:column; grid-auto-columns:1fr; margin-top:10px}
.tl .st{position:relative; padding:0 18px 0 0}
.tl .st .dot{width:14px; height:14px; border-radius:50%; background:var(--brand2); position:relative; z-index:2}
.tl .st .bar{position:absolute; left:7px; right:0; top:6px; height:2px; background:var(--line); z-index:1}
.tl .st:last-child .bar{display:none}
.tl .st .when{font-size:12px; font-weight:700; color:var(--brand2); margin:14px 0 4px; letter-spacing:.3px}
.tl .st h4{margin:0 0 8px; font-size:17px; font-weight:800}
.tl .st p{margin:0; font-size:14.5px; color:var(--ink2); line-height:1.5; padding-right:14px}
/* ===== diagram ===== */
.diagram-box{width:100%; background:#fff}
.diagram-box svg{width:100%; height:auto; max-height:520px; display:block; margin:0 auto}
.pad>.diagram-box{flex:1; min-height:0; display:flex; align-items:flex-start}
.pad>.diagram-box svg{max-height:100%}
.d-cap{font-size:12.5px; color:var(--muted); margin-top:10px}
/* ===== closing ===== */
.lay-closing{background:linear-gradient(135deg,#08301F,#0F5C3F)}
.lay-closing .cl{position:absolute; left:80px; right:80px; top:230px; color:#fff}
.lay-closing h2{font-size:42px; font-weight:800; margin:0 0 18px}
.lay-closing p{font-size:17px; color:#CFE9DC; max-width:760px; margin:0 0 30px; line-height:1.6}
.lay-closing .cc{display:flex; gap:44px; font-size:14.5px; color:#DFF0E7}
.lay-closing .cc b{display:block; font-size:11px; letter-spacing:1px; color:#7EC5A4; margin-bottom:5px}
/* helper */
.tag{display:inline-block; background:var(--soft2); color:var(--brand); border-radius:6px;
  padding:3px 9px; font-size:12px; font-weight:700; margin:0 6px 6px 0}
.badge-row{margin-top:14px}
