/* GB코퍼레이션 — 반응형 홈페이지 */
:root{
  --primary:#0f2a4a; --primary-2:#1d4170; --accent:#c8414f; --accent-soft:#f6e3e5;
  --ink:#16202c; --text:#3c4652; --muted:#7a8592; --line:#e3e7ec; --bg:#ffffff; --bg-soft:#f4f6f9;
  --hero-overlay:linear-gradient(180deg,rgba(8,20,38,.55) 0%,rgba(8,20,38,.25) 45%,rgba(8,20,38,.7) 100%);
  --radius:6px; --head-h:84px; --max:1200px;
  --font:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --h-weight:800; --h-track:-0.02em;
}
html[data-theme="b"]{
  --primary:#1b1b1b; --primary-2:#333; --accent:#b08a52; --accent-soft:#f3ebdf;
  --ink:#141414; --text:#44403a; --muted:#8b857c; --line:#e7e2da; --bg:#fff; --bg-soft:#f7f4ef;
  --hero-overlay:linear-gradient(90deg,rgba(10,10,10,.75) 0%,rgba(10,10,10,.35) 60%,rgba(10,10,10,.15) 100%);
  --radius:0px; --h-weight:600; --h-track:-0.01em;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--text);background:var(--bg);font-size:16px;line-height:1.7;word-break:keep-all;overflow-x:hidden}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;border:0;background:none;cursor:pointer;color:inherit}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:0;background:var(--primary);color:#fff;padding:10px 16px;z-index:999}
.skip:focus{left:0}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--head-h);background:#fff;border-bottom:1px solid var(--line);transition:background .3s,border-color .3s,height .35s ease}
.header .bar{display:flex;align-items:center;justify-content:space-between;height:var(--head-h)}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:21px;color:var(--ink);letter-spacing:-.03em;white-space:nowrap}
.logo img{height:34px;width:auto}
.logo small{display:block;font-size:10.5px;font-weight:600;letter-spacing:.18em;color:var(--muted);margin-top:-2px}
.gnb{display:flex;height:100%}
.gnb>li{position:relative;height:100%}
.gnb>li>a{display:flex;align-items:center;height:100%;padding:0 26px;font-weight:700;font-size:16.5px;color:var(--ink);transition:color .2s}
.gnb>li>a:hover,.gnb>li.on>a{color:var(--accent)}
.gnb .sub{position:absolute;top:var(--head-h);left:0;right:0;padding:22px 0 26px;text-align:center;opacity:0;visibility:hidden;transition:opacity .25s}
.gnb .sub a{display:block;padding:6px 0;font-size:14.5px;color:var(--text);white-space:nowrap}
.gnb .sub a:hover{color:var(--accent)}
.mega-bg{position:absolute;left:0;right:0;top:var(--head-h);height:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 30px -20px rgba(0,0,0,.18);transition:height .35s ease;overflow:hidden}
.header.mega .mega-bg{height:var(--mega-h,260px)}
.header.mega .gnb .sub{opacity:1;visibility:visible;transition-delay:.12s}
.util{display:flex;align-items:center;gap:18px;font-size:13.5px}
.util a{color:var(--muted)} .util a:hover{color:var(--accent)}
.util .tel{font-weight:700;color:var(--ink)}
.menu-btn{display:none;width:44px;height:44px;position:relative}
.menu-btn span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:.3s}
.menu-btn span:nth-child(1){top:14px}.menu-btn span:nth-child(2){top:21px}.menu-btn span:nth-child(3){top:28px}
/* transparent header on home hero */
.is-home .header:not(.solid):not(.mega){background:transparent;border-color:rgba(255,255,255,.18)}
.is-home .header:not(.solid):not(.mega) .logo,.is-home .header:not(.solid):not(.mega) .gnb>li>a,.is-home .header:not(.solid):not(.mega) .util a{color:#fff}
.is-home .header:not(.solid):not(.mega) .logo small{color:rgba(255,255,255,.7)}
.is-home .header:not(.solid):not(.mega) .menu-btn span{background:#fff}
.is-home .header:not(.solid):not(.mega) .logo img{filter:drop-shadow(0 0 1px rgba(255,255,255,.9))}

/* Mobile drawer */
.drawer{position:fixed;inset:0;z-index:200;visibility:hidden}
.drawer .dim{position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:.3s}
.drawer .panel{position:absolute;top:0;right:0;bottom:0;width:min(86vw,360px);background:#fff;transform:translateX(100%);transition:transform .4s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.drawer.open{visibility:visible}.drawer.open .dim{opacity:1}.drawer.open .panel{transform:none}
.drawer .top{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.drawer .close{font-size:28px;line-height:1;width:40px;height:40px}
.drawer nav{flex:1;overflow:auto}
.drawer .acc>button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:17px 22px;font-size:17px;font-weight:700;color:var(--ink);border-bottom:1px solid var(--line)}
.drawer .acc>button::after{content:"+";font-weight:400;font-size:22px;color:var(--muted);transition:transform .3s}
.drawer .acc.open>button::after{transform:rotate(45deg)}
.drawer .acc ul{max-height:0;overflow:hidden;background:var(--bg-soft);transition:max-height .35s ease}
.drawer .acc ul a{display:block;padding:12px 30px;font-size:15px;border-bottom:1px solid var(--line)}
.drawer .foot{padding:18px 22px;font-size:14px;background:var(--primary);color:#fff}
.drawer .foot a{display:block;font-weight:700;font-size:18px}

/* ---------- Hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;color:#fff;overflow:hidden;background:#0b1a2e}
.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:var(--hero-overlay)}
.hero .slides{position:relative;z-index:2;height:100%;display:flex;align-items:center}
.hero .slide{position:absolute;left:0;right:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility .9s}
.hero .slide.on{opacity:1;visibility:visible}
.hero .eyebrow{display:inline-block;font-size:14px;font-weight:700;letter-spacing:.2em;color:#fff;padding:6px 12px;border:1px solid rgba(255,255,255,.5);margin-bottom:22px}
html[data-theme="b"] .hero .eyebrow{border:0;padding:0;color:var(--accent);border-left:2px solid var(--accent);padding-left:12px}
.hero h2{font-size:clamp(32px,5.2vw,64px);line-height:1.22;font-weight:var(--h-weight);letter-spacing:var(--h-track)}
.hero p{margin-top:22px;font-size:clamp(15px,1.6vw,19px);line-height:1.75;color:rgba(255,255,255,.88);max-width:640px}
.hero .slide .eyebrow,.hero .slide h2,.hero .slide p{transform:translateY(28px);opacity:0;transition:transform 1s cubic-bezier(.2,.8,.2,1),opacity 1s}
.hero .slide.on .eyebrow{transform:none;opacity:1;transition-delay:.15s}
.hero .slide.on h2{transform:none;opacity:1;transition-delay:.3s}
.hero .slide.on p{transform:none;opacity:1;transition-delay:.5s}
.hero .ctrl{position:absolute;z-index:3;left:0;right:0;bottom:56px}
.hero .ctrl .container{display:flex;align-items:center;gap:14px}
.hero .dot{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.6);font-size:14px;font-weight:700}
.hero .dot i{display:block;width:44px;height:2px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.hero .dot i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.hero .dot.on{color:#fff}
.hero .dot.on i::after{animation:prog var(--dur,6s) linear forwards}
.hero.paused .dot.on i::after{animation-play-state:paused}
@keyframes prog{to{transform:scaleX(1)}}
.hero .pp{width:34px;height:34px;border:1px solid rgba(255,255,255,.5);border-radius:50%;display:grid;place-items:center;margin-left:6px}
.hero .pp svg{width:12px;height:12px;fill:#fff}
.hero .scroll{position:absolute;z-index:3;right:40px;bottom:50px;writing-mode:vertical-rl;font-size:11px;letter-spacing:.3em;color:rgba(255,255,255,.7)}
.hero .scroll::after{content:"";display:block;width:1px;height:60px;margin:12px auto 0;background:linear-gradient(#fff,transparent);animation:sd 2s infinite}
@keyframes sd{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* notice ticker */
.ticker{background:var(--primary);color:#fff}
.ticker .container{display:flex;align-items:center;height:60px;gap:20px}
.ticker strong{font-size:13px;letter-spacing:.2em;color:var(--accent);flex:none}
html[data-theme="a"] .ticker strong{color:#ff9aa5}
.ticker .roll{flex:1;height:26px;overflow:hidden;position:relative}
.ticker .roll ul{transition:transform .7s ease}
.ticker .roll li{height:26px;line-height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.ticker .roll li span{color:rgba(255,255,255,.55);margin-left:12px;font-size:13px}
.ticker .more{font-size:13px;color:rgba(255,255,255,.7);flex:none}

/* ---------- Sections ---------- */
.sec{padding:110px 0}
.sec.soft{background:var(--bg-soft)}
.sec-head{margin-bottom:50px}
.sec-head.center{text-align:center}
.sec-head .en{display:block;font-size:13px;font-weight:700;letter-spacing:.24em;color:var(--accent);margin-bottom:12px}
.sec-head h3{font-size:clamp(26px,3.2vw,40px);line-height:1.3;color:var(--ink);font-weight:var(--h-weight);letter-spacing:var(--h-track)}
.sec-head p{margin-top:14px;color:var(--muted);font-size:16.5px}
.sec-head .row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border:1px solid var(--ink);color:var(--ink);font-weight:700;font-size:14.5px;border-radius:var(--radius);transition:.25s}
.btn:hover{background:var(--ink);color:#fff}
.btn.fill{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.fill:hover{filter:brightness(.92)}
.btn.light{border-color:rgba(255,255,255,.6);color:#fff}.btn.light:hover{background:#fff;color:var(--ink)}
.arrow::after{content:"→";transition:transform .25s}
.btn:hover .arrow::after,.btn.arrow:hover::after{transform:translateX(4px)}

/* about intro */
.intro{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center}
.intro .photo{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius)}
.intro .photo img{width:100%;height:100%;object-fit:cover}
.intro .photo .badge{position:absolute;left:0;bottom:0;background:var(--accent);color:#fff;padding:18px 24px;font-weight:700;font-size:15px;line-height:1.5}
.intro h3{font-size:clamp(26px,3vw,38px);line-height:1.35;color:var(--ink);font-weight:var(--h-weight);letter-spacing:var(--h-track);margin:10px 0 22px}
.intro h3 em{font-style:normal;color:var(--accent)}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:70px}
.value{padding:30px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:transform .3s,box-shadow .3s}
.value:hover{transform:translateY(-6px);box-shadow:0 20px 40px -24px rgba(15,42,74,.35)}
.value .ic{width:58px;height:58px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;margin-bottom:20px}
.value .ic svg{width:28px;height:28px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.value b{display:block;font-size:19px;color:var(--ink)}
.value small{display:block;font-size:12px;letter-spacing:.14em;color:var(--muted);margin:2px 0 12px;font-weight:700}
.value p{font-size:14.5px;line-height:1.65}

/* business cards */
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.biz-card{position:relative;display:block;aspect-ratio:4/3.1;overflow:hidden;border-radius:var(--radius);color:#fff;background:#222}
.biz-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.biz-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.78));transition:background .4s}
.biz-card .txt{position:absolute;z-index:2;left:26px;right:26px;bottom:24px}
.biz-card .no{font-size:13px;font-weight:700;letter-spacing:.2em;color:rgba(255,255,255,.75)}
.biz-card b{display:block;font-size:22px;margin:4px 0 6px;font-weight:var(--h-weight)}
.biz-card p{font-size:14px;line-height:1.6;color:rgba(255,255,255,.85);max-height:0;opacity:0;overflow:hidden;transition:max-height .45s,opacity .45s}
.biz-card:hover img{transform:scale(1.07)}
.biz-card:hover::after{background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.85))}
.biz-card:hover p{max-height:90px;opacity:1}

/* project cards */
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.proj-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .3s,box-shadow .3s}
.proj-card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -26px rgba(0,0,0,.35)}
.proj-card .th{aspect-ratio:16/10;overflow:hidden;background:var(--bg-soft);display:grid;place-items:center}
.proj-card .th img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.proj-card:hover .th img{transform:scale(1.06)}
.proj-card .th img.ph{width:64px;height:auto;object-fit:contain;opacity:.35}
.proj-card .bd{padding:22px 22px 24px}
.proj-card .date{font-size:13px;color:var(--muted)}
.proj-card b{display:block;margin-top:6px;font-size:17.5px;line-height:1.45;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.proj-card p{margin-top:8px;font-size:14px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* boards on home */
.boards{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.board-box .hd{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:2px solid var(--ink)}
.board-box .hd h4{font-size:22px;color:var(--ink);font-weight:var(--h-weight)}
.board-box .hd a{font-size:14px;color:var(--muted)}
.board-box li a{display:flex;justify-content:space-between;gap:20px;padding:17px 2px;border-bottom:1px solid var(--line);transition:padding .25s,color .25s}
.board-box li a:hover{color:var(--accent);padding-left:8px}
.board-box li .t{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.board-box li .d{flex:none;font-size:14px;color:var(--muted)}

/* contact cta */
.cta{position:relative;color:#fff;background:var(--primary);overflow:hidden}
.cta .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22}
.cta .container{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding-top:90px;padding-bottom:90px}
.cta h3{font-size:clamp(26px,3vw,38px);line-height:1.35;font-weight:var(--h-weight)}
.cta p{margin-top:14px;color:rgba(255,255,255,.8)}
.cta dl{display:grid;grid-template-columns:auto 1fr;gap:12px 22px;font-size:16px}
.cta dt{color:rgba(255,255,255,.6);font-size:14px;padding-top:2px}
.cta dd a{font-weight:700}
.cta .big{font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.01em}

/* ---------- Sub pages ---------- */
.sub-hero{position:relative;height:380px;margin-top:var(--head-h);color:#fff;display:flex;align-items:center;overflow:hidden;background:var(--primary)}
.sub-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:zoomout 1.6s ease forwards}
@keyframes zoomout{to{transform:scale(1)}}
.sub-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,16,30,.72),rgba(6,16,30,.3))}
html[data-theme="b"] .sub-hero::after{background:rgba(10,10,10,.55)}
.sub-hero .container{position:relative;z-index:2}
.sub-hero .en{font-size:13px;font-weight:700;letter-spacing:.25em;color:rgba(255,255,255,.75)}
.sub-hero h1{font-size:clamp(30px,4vw,48px);font-weight:var(--h-weight);letter-spacing:var(--h-track);margin-top:8px}
.crumb{font-size:13.5px;color:rgba(255,255,255,.75);margin-top:12px}
.crumb a:hover{color:#fff}
.subnav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:var(--head-h);z-index:50}
.subnav ul{display:flex;overflow-x:auto;scrollbar-width:none}
.subnav ul::-webkit-scrollbar{display:none}
.subnav a{display:block;padding:18px 24px;font-size:15.5px;font-weight:600;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent}
.subnav a:hover{color:var(--ink)}
.subnav a.on{color:var(--ink);border-color:var(--accent)}
.page{padding:90px 0 120px}
.page-title{text-align:center;margin-bottom:60px}
.page-title h2{font-size:clamp(26px,3vw,38px);color:var(--ink);font-weight:var(--h-weight);letter-spacing:var(--h-track)}
.page-title p{margin-top:12px;color:var(--muted)}

/* greeting */
.greet{display:grid;grid-template-columns:420px 1fr;gap:70px;align-items:start}
.greet .visual{position:sticky;top:calc(var(--head-h) + 90px);aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius);background:var(--primary);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:36px}
.greet .visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.greet .visual *{position:relative}
.greet .visual b{font-size:15px;letter-spacing:.2em;color:#fff;opacity:.8}
.greet .visual strong{font-size:30px;line-height:1.35;margin-top:10px;font-weight:var(--h-weight)}
.greet .lead{font-size:clamp(22px,2.4vw,30px);line-height:1.45;color:var(--ink);font-weight:var(--h-weight);letter-spacing:var(--h-track);margin-bottom:34px}
.greet .lead em{font-style:normal;color:var(--accent)}
.greet .body p{margin-bottom:18px;font-size:17px;line-height:1.9}
.greet .sign{margin-top:44px;padding-top:26px;border-top:1px solid var(--line);text-align:right;font-size:17px;color:var(--ink)}
.greet .sign b{font-size:24px;margin-left:10px}

/* organization */
.vals-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:100px}
.vals-row .v{text-align:center;padding:0 18px;position:relative}
.vals-row .v .circle{width:150px;height:150px;margin:0 auto 24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;background:#fff;position:relative;z-index:1;transition:border-color .3s}
.vals-row .v:hover .circle{border-color:var(--accent)}
.vals-row .v .circle svg{width:44px;height:44px;stroke:var(--accent);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.vals-row .v .circle small{position:absolute;bottom:30px;font-size:12px;letter-spacing:.12em;color:var(--muted);font-weight:700}
.vals-row .v:not(:last-child)::after{content:"";position:absolute;top:75px;left:calc(50% + 75px);right:calc(-50% + 75px);height:2px;background:var(--line)}
.vals-row b{font-size:20px;color:var(--ink)}
.vals-row p{margin-top:10px;font-size:15px;color:var(--muted);line-height:1.65}
.org{display:flex;flex-direction:column;align-items:center}
.org .ceo{width:140px;height:140px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:800;letter-spacing:.06em;box-shadow:0 18px 40px -18px var(--accent)}
.org .stem{width:2px;height:50px;background:var(--line);position:relative}
.org .audit{position:absolute;left:2px;top:22px;display:flex;align-items:center}
.org .audit::before{content:"";width:90px;height:2px;background:var(--line)}
.org .audit span{padding:10px 26px;border:2px solid var(--primary-2);border-radius:30px;font-weight:700;color:var(--primary-2);background:#fff;white-space:nowrap}
.org .depts{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;width:100%;position:relative;padding-top:34px;margin-top:0}
.org .depts::before{content:"";position:absolute;top:0;left:10%;right:10%;height:2px;background:var(--line)}
.org .dept{position:relative;text-align:center}
.org .dept::before{content:"";position:absolute;top:-34px;left:50%;width:2px;height:34px;background:var(--line)}
.org .dept b{display:block;padding:16px 8px;background:var(--primary);color:#fff;border-radius:var(--radius);font-size:16.5px}
.org .dept ul{margin-top:12px;border:1px solid var(--line);border-radius:var(--radius);padding:12px 8px;background:var(--bg-soft)}
.org .dept li{font-size:14.5px;padding:4px 0}

/* location */
.loc{display:grid;gap:60px}
.loc-item{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:stretch}
.loc-item .map{min-height:360px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--bg-soft)}
.loc-item .map iframe{width:100%;height:100%;min-height:360px;border:0}
.loc-item .info{padding:10px 0}
.loc-item .tag{display:inline-block;font-size:12.5px;font-weight:700;letter-spacing:.12em;color:var(--accent);border:1px solid var(--accent);padding:3px 10px;border-radius:20px}
.loc-item h3{font-size:26px;color:var(--ink);margin:14px 0 22px;font-weight:var(--h-weight)}
.loc-item dl{display:grid;grid-template-columns:80px 1fr;gap:12px 10px;font-size:15.5px}
.loc-item dt{color:var(--muted)}
.loc-item .links{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.loc-item .links a{padding:10px 16px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px;font-weight:600}
.loc-item .links a:hover{border-color:var(--ink)}

/* affiliates */
.aff{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.aff li{border:1px solid var(--line);border-radius:var(--radius);padding:38px 20px;text-align:center;font-weight:700;font-size:18px;color:var(--ink);background:#fff;transition:.3s}
.aff li:hover{border-color:var(--accent);transform:translateY(-4px)}
.aff li small{display:block;font-size:12px;letter-spacing:.14em;color:var(--muted);margin-bottom:6px;font-weight:600}

/* business page */
.biz-hero{position:relative;aspect-ratio:21/8;border-radius:var(--radius);overflow:hidden;display:grid;place-items:center;color:#fff;margin-bottom:70px}
.biz-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.biz-hero::after{content:"";position:absolute;inset:0;background:rgba(5,15,30,.45)}
.biz-hero .frame{position:relative;z-index:2;border:6px solid rgba(255,255,255,.7);padding:34px 54px;text-align:center}
.biz-hero .frame b{display:block;font-size:clamp(22px,3vw,34px);font-weight:var(--h-weight)}
.biz-hero .frame span{display:block;font-size:clamp(17px,2vw,24px);margin-top:10px;font-weight:300}
.biz-body{display:grid;grid-template-columns:300px 1fr;gap:60px}
.biz-body h3{font-size:30px;color:var(--ink);line-height:1.35;font-weight:var(--h-weight)}
.biz-body h3::before{content:"";display:block;width:36px;height:3px;background:var(--accent);margin-bottom:22px}
.biz-body .desc p{font-size:17px;line-height:1.95;margin-bottom:14px}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.keys li{background:var(--bg-soft);border-radius:var(--radius);padding:26px 22px}
.keys li b{display:block;font-size:13px;letter-spacing:.14em;color:var(--accent);margin-bottom:8px}
.keys li span{font-size:17px;color:var(--ink);font-weight:700;line-height:1.5}
.biz-other{margin-top:90px}
.biz-other h4{font-size:20px;color:var(--ink);margin-bottom:20px}
.biz-other .biz-grid{grid-template-columns:repeat(5,1fr);gap:12px}
.biz-other .biz-card{aspect-ratio:1/1}
.biz-other .biz-card b{font-size:16px}
.biz-other .biz-card .txt{left:16px;right:16px;bottom:14px}

/* board list */
.board-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.board-tools .count{font-size:15px;color:var(--muted)} .board-tools .count b{color:var(--accent)}
.search{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.search input{border:0;padding:11px 14px;font:inherit;font-size:15px;width:240px;outline:none}
.search button{padding:0 16px;background:var(--ink);color:#fff;font-size:14px}
.blist{border-top:2px solid var(--ink)}
.blist li a{display:grid;grid-template-columns:80px 1fr 120px;gap:16px;align-items:center;padding:20px 8px;border-bottom:1px solid var(--line);transition:background .2s}
.blist li a:hover{background:var(--bg-soft)}
.blist .no{text-align:center;color:var(--muted);font-size:14px}
.blist .t{color:var(--ink);font-size:16.5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.blist .t em{font-style:normal;font-size:12px;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;margin-left:8px;vertical-align:2px}
.blist .d{text-align:center;color:var(--muted);font-size:14px}
.empty{padding:60px 0;text-align:center;color:var(--muted)}
.pager{display:flex;justify-content:center;gap:6px;margin-top:40px}
.pager button{width:38px;height:38px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px}
.pager button.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* article */
.article{max-width:900px;margin:0 auto}
.article .head{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:30px 4px 26px}
.article .head .cat{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--accent)}
.article .head h2{font-size:clamp(22px,2.6vw,30px);color:var(--ink);line-height:1.45;margin-top:8px;font-weight:var(--h-weight)}
.article .head .meta{margin-top:12px;font-size:14px;color:var(--muted)}
.article .content{padding:44px 4px 60px;font-size:17px;line-height:1.95;color:var(--text);border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.article .content p{margin-bottom:10px}
.article .content img{margin:18px auto;border-radius:var(--radius);cursor:zoom-in;height:auto}
.article .content a{color:var(--primary-2);text-decoration:underline;text-underline-offset:3px}
.article .content table{border-collapse:collapse;max-width:100%}
.article .content .video{position:relative;aspect-ratio:16/9;margin:20px 0}
.article .content .video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:var(--radius)}
.article .source{margin-top:-10px;margin-bottom:24px;padding:14px 18px;background:var(--bg-soft);border-radius:var(--radius);font-size:14.5px}
.article .nav{margin-top:0}
.article .nav a{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:16px 4px;border-bottom:1px solid var(--line);font-size:15px}
.article .nav a span{color:var(--muted)}
.article .nav a:hover b{color:var(--accent)}
.article .nav b{font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.article .actions{text-align:center;margin-top:40px}

/* lightbox */
.lb{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:100%;border-radius:4px}

/* policy */
.policy{max-width:900px;margin:0 auto;font-size:16px;line-height:1.9}
.policy h3{font-size:19px;color:var(--ink);margin:36px 0 10px}
.policy ul{padding-left:18px;list-style:disc}

/* ---------- Footer ---------- */
.footer{background:#111820;color:rgba(255,255,255,.62);font-size:14px;padding:60px 0 40px}
html[data-theme="b"] .footer{background:#141414}
.footer .top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer .flogo{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.footer .flogo .b{display:flex;align-items:center;gap:10px;color:#fff;font-size:20px;font-weight:800}
.footer .flogo .b img{height:32px;background:#fff;border-radius:4px;padding:3px}
.footer .flogo .y{font-size:15px;color:rgba(255,255,255,.8);font-weight:700}
.footer .flinks{display:flex;gap:20px}
.footer .flinks a{color:#fff}
.footer .flinks a.strong{font-weight:700}
.footer .info{margin-top:26px;line-height:1.95}
.footer .info span{display:inline-block;margin-right:18px}
.footer .copy{margin-top:18px;font-size:13px;color:rgba(255,255,255,.4)}
.totop{position:fixed;right:22px;bottom:22px;z-index:90;width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s;box-shadow:0 10px 20px -10px rgba(0,0,0,.4)}
.totop.show{opacity:1;visibility:visible;transform:none}

/* reveal */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}.reveal.d5{transition-delay:.5s}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}

/* theme switch (preview only) */




/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .gnb>li>a{padding:0 16px}
  .util .tel{display:none}
  .values{grid-template-columns:repeat(2,1fr)}
  .biz-other .biz-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:960px){
  :root{--head-h:66px}
  .gnb,.util,.mega-bg{display:none}
  .menu-btn{display:block}
  .logo{font-size:18px}.logo img{height:30px}
  .sec{padding:80px 0}
  .intro,.cta .container,.loc-item,.greet,.biz-body{grid-template-columns:1fr;gap:36px}
  .greet .visual{position:relative;top:0;aspect-ratio:16/10}
  .biz-grid,.proj-grid{grid-template-columns:repeat(2,1fr)}
  .boards{grid-template-columns:1fr}
  .vals-row{grid-template-columns:repeat(2,1fr);row-gap:50px}
  .vals-row .v::after{display:none}
  .org .depts{grid-template-columns:repeat(3,1fr);row-gap:40px}
  .org .depts::before{display:none}
  .aff{grid-template-columns:repeat(2,1fr)}
  .sub-hero{height:280px}
  .hero .scroll{display:none}
}
@media (max-width:640px){
  body{font-size:15.5px}
  .container{padding:0 18px}
  .sec{padding:64px 0}
  .sec-head{margin-bottom:34px}
  .hero{min-height:520px}
  .hero .ctrl{bottom:34px}
  .hero .dot i{width:28px}
  .ticker .more{display:none}
  .biz-grid,.proj-grid,.values,.keys{grid-template-columns:1fr}
  .biz-card{aspect-ratio:16/10}
  .biz-card p{max-height:none;opacity:1}
  .biz-other .biz-grid{grid-template-columns:repeat(2,1fr)}
  .biz-other .biz-card{aspect-ratio:4/3}
  .biz-other .biz-card p{display:none}
  .vals-row{grid-template-columns:1fr 1fr;column-gap:12px}
  .vals-row .v .circle{width:120px;height:120px}
  .vals-row .v .circle small{bottom:20px}
  .org .ceo{width:110px;height:110px;font-size:20px}
  .org .audit::before{width:40px}
  .org .depts{grid-template-columns:1fr 1fr;gap:28px 12px}
  .org .dept::before{display:none}
  .biz-hero{aspect-ratio:4/3}
  .biz-hero .frame{padding:22px 26px;border-width:4px}
  .blist li a{grid-template-columns:1fr;gap:4px;padding:16px 4px}
  .blist .no{display:none}.blist .d{text-align:left}
  .blist .t{white-space:normal}
  .search,.search input{width:100%}
  .board-tools{flex-direction:column;align-items:stretch}
  .page{padding:56px 0 80px}
  .sub-hero{height:220px}
  .loc-item .map,.loc-item .map iframe{min-height:280px}
  .article .content{font-size:16px}
  .article .nav a{grid-template-columns:64px 1fr}
  .footer .info span{display:block}
}
.blist.cards{border-top:0}
.blist.cards li a{display:block;padding:0;border:1px solid var(--line)}
.blist.cards li a:hover{background:#fff}
.board-box{min-width:0}

@media (max-width:640px){.values{grid-template-columns:1fr 1fr;gap:10px}.value{padding:20px 16px}.value p{font-size:13.5px}.value .ic{width:46px;height:46px;margin-bottom:14px}}
