:root{--adm-blue:#0869dc;--adm-deep:#142c43;--adm-surface:#eff6ff;--adm-line:#dbe5f2;--adm-gray:#687b8d}
*{box-sizing:border-box}.adm-page{margin:0;background:#fff;color:var(--adm-deep);font-family:Pretendard,'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;word-break:keep-all}
.adm-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 max(24px,calc((100% - 1180px)/2));border-bottom:1px solid #e8eef4;background:#fff;position:relative;z-index:30}
.adm-logo{width:min(260px,50vw);height:auto;display:block}.adm-nav{display:flex;gap:22px;align-items:center}.adm-nav a,.adm-mobile-nav a{color:#33475c;text-decoration:none;font-size:15px;font-weight:750}.adm-nav a:hover,.adm-nav a[aria-current="page"]{color:var(--adm-blue)}.adm-nav-toggle{display:none}.adm-mobile-nav[hidden]{display:none!important}
.adm-main{width:min(1160px,calc(100% - 40px));margin:0 auto;padding-bottom:96px}.adm-page-head{padding:74px 0 32px}.adm-eyebrow{font-size:15px;color:var(--adm-blue);font-weight:800;letter-spacing:1.5px}.adm-page-head h1{font-size:clamp(34px,5vw,54px);letter-spacing:-2px;margin:18px 0 16px}.adm-page-head p{font-size:18px;color:#687b8d;line-height:1.8;max-width:800px}.adm-filters{display:flex;gap:10px;margin:10px 0 24px;flex-wrap:wrap}.adm-filters button{border:1px solid #dce5ef;border-radius:50px;padding:12px 22px;font-size:15px;font-weight:750;color:#54697f;background:#f5f8fc;cursor:pointer}.adm-filters button.active{color:#fff;background:var(--adm-blue);border-color:var(--adm-blue)}.adm-result-count{font-size:16px;font-weight:700;margin-bottom:26px}.adm-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.adm-work-card{overflow:hidden;border:1px solid #dfe8f1;border-radius:20px;background:#fff;box-shadow:0 8px 28px #1536590b}.adm-work-poster{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:16/10;background:linear-gradient(140deg,#f0f8ff,#cee4ff);text-decoration:none;overflow:hidden}.adm-work-poster img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.adm-work-poster:hover img{transform:scale(1.045)}.adm-poster-placeholder{color:#185eae;font-size:27px;font-weight:900}.adm-poster-action{position:absolute;bottom:14px;right:14px;background:#fff;color:#064ca2;font-size:12px;font-weight:800;border-radius:50px;padding:9px 14px;box-shadow:0 5px 12px #061e331e}.adm-work-info{padding:20px}.adm-work-category{font-weight:800;font-size:11px;letter-spacing:1px;color:var(--adm-blue)}.adm-work-info h2{font-size:20px;margin:9px 0;line-height:1.4}.adm-work-info p{color:var(--adm-gray);font-size:14px;line-height:1.6;margin:10px 0 22px}.adm-work-link{display:inline-block;margin-top:8px;text-decoration:none;color:var(--adm-blue);font-weight:800}.adm-empty{grid-column:1/-1;border:1px dashed #c9d8eb;border-radius:18px;background:#f5f9ff;padding:64px 24px;text-align:center;color:#637489}.adm-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:30px max(24px,calc((100% - 1160px)/2));background:#f5f8fc;border-top:1px solid #e3ebf5;color:#677c90;font-size:14px}.adm-footer a{color:var(--adm-blue);text-decoration:none;font-weight:800}
/* Additive unified navigation for login/open-partner pages; independent of legacy app.js */
.adm-injected-toggle{border:0!important;display:none!important;background:#f0f6ff;color:#075dbb;border-radius:13px;width:48px;height:48px;align-items:center;justify-content:center;font-size:25px;cursor:pointer;box-shadow:0 2px 10px #0001}.adm-injected-nav{position:absolute;right:16px;top:calc(100% + 4px);background:white;z-index:100000;border:1px solid var(--adm-line);box-shadow:0 15px 35px #102b4a25;border-radius:16px;padding:14px;width:min(350px,calc(100vw - 32px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.adm-injected-nav[hidden]{display:none!important}.adm-injected-nav a{font:700 14px/1.45 sans-serif;text-decoration:none;color:#274967;padding:12px 8px;border-radius:8px;min-width:0;text-align:center}.adm-injected-nav a:hover,.adm-injected-nav a[aria-current]{background:#edf6ff;color:var(--adm-blue)}
/* Replacing the typographic fake logos with actual brand names */
.adm-initial-hidden{display:none!important}.adm-brand-reveal{animation:admBrandReveal .42s cubic-bezier(.2,.7,.2,1) both}@keyframes admBrandReveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.adm-brand-reveal{animation:none!important}}
/* Customer homepage custom data-driven banner slider */
.adm-feature-banner{margin:0 auto 28px;width:min(1160px,calc(100% - 40px));position:relative;overflow:hidden;border-radius:22px;background:#f0f6ff}.adm-feature-banner a{display:block}.adm-feature-banner img{width:100%;height:auto;display:block;aspect-ratio:3/1;object-fit:cover}.adm-feature-banner figcaption{position:absolute;bottom:12px;left:14px;background:#082d639c;color:#fff;font-size:13px;font-weight:800;border-radius:9px;padding:8px 12px;max-width:calc(100% - 30px)}.adm-feature-banner-controls{position:absolute;right:15px;bottom:12px;display:flex;gap:7px}.adm-feature-banner-controls button{width:30px;height:30px;border:0;border-radius:50%;background:#fff;color:#174771;cursor:pointer}.adm-home-portfolio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.adm-home-portfolio .adm-work-card{border-radius:14px}.adm-home-portfolio .adm-work-info{padding:12px}.adm-home-portfolio .adm-work-info h2{font-size:16px}.adm-home-portfolio .adm-work-info p{display:none}
/* Popup banner, accessible with explicit close button */
.adm-popup-shade{position:fixed;inset:0;background:#031d38a6;z-index:1000000;display:flex;justify-content:center;align-items:center;padding:20px}.adm-popup-box{background:#fff;border-radius:16px;max-width:min(430px,100%);width:100%;position:relative;box-shadow:0 20px 60px #001e386b;overflow:hidden}.adm-popup-image{display:block;width:100%;max-height:75vh;object-fit:contain}.adm-popup-close{position:absolute;right:8px;top:8px;cursor:pointer;border:0;background:#fff;color:#1b3e5f;border-radius:99px;width:38px;height:38px;font-size:22px}.adm-popup-options{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px}.adm-popup-options button{border:0;background:#edf4fd;color:#183e62;padding:9px 11px;border-radius:8px;cursor:pointer}
/* prevent fixed bottom customer support bar covering list on small screens */
@media(max-width:760px){.adm-header{height:74px;padding:0 18px}.adm-logo{width:min(226px,57vw)}.adm-nav{display:none}.adm-nav-toggle{display:block;border:0;border-radius:10px;font-size:24px;color:#045da9;background:#edf5ff;padding:9px 13px;cursor:pointer}.adm-mobile-nav:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;background:white;border-bottom:1px solid var(--adm-line);padding:12px 20px;position:relative;z-index:25}.adm-mobile-nav a{padding:12px;text-align:center;border-radius:8px;background:#f2f7fc}.adm-main{width:calc(100% - 30px);padding-bottom:118px}.adm-page-head{padding:42px 0 20px}.adm-page-head p{font-size:16px}.adm-gallery{grid-template-columns:1fr;gap:16px}.adm-work-info{padding:19px}.adm-injected-toggle{display:flex!important}.adm-feature-banner{width:calc(100% - 28px);border-radius:14px}.adm-feature-banner img{aspect-ratio:4/3}.adm-home-portfolio{grid-template-columns:1fr}.adm-popup-shade{padding:12px}}
@media(min-width:761px) and (max-width:1024px){.adm-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-nav{gap:10px}.adm-nav a{font-size:12px}}
/* Managed works section replaces original supplier showcase; no fabricated projects. */
.adm-portfolio-home-wrap{width:min(1160px,calc(100% - 40px));margin:50px auto}.adm-home-section-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.adm-home-section-head h2{margin:0;font-size:clamp(22px,3vw,30px);font-weight:900;color:#0764b9}.adm-home-section-head a{font-weight:700;text-decoration:none;color:#285777;font-size:14px}.adm-feature-banner-controls[hidden]{display:none}.adm-popup-shade a{display:block}.adm-popup-box a:focus-visible,.adm-popup-close:focus-visible{outline:3px solid #0b6ed6}.adm-operator-content-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;border:1px solid #c9ddf1;border-radius:8px;padding:10px 14px;background:#ecf6ff;color:#065fbb;font-weight:800;margin:8px}
@media(max-width:760px){.adm-portfolio-home-wrap{width:calc(100% - 28px);margin:35px auto}header .adm-hide-guide-cta{display:none!important}}

/* User-activated YouTube video preview on the dedicated portfolio board. */
.adm-video-shade{position:fixed;inset:0;z-index:1000001;display:flex;justify-content:center;align-items:center;background:#03172deb;padding:20px}.adm-video-box{position:relative;width:min(1000px,100%);padding-top:48px}.adm-video-box iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;background:#020911;display:block}.adm-video-close{position:absolute;top:0;right:0;border:1px solid #b8c9de;border-radius:8px;background:#fff;color:#0b3361;padding:8px 15px;font:700 15px sans-serif;cursor:pointer}


/* V225: spotlight is a real main-column section above recommended suppliers. */
.portal-maincol > .portal-spotlight.adm-spotlight-wide{display:block;margin:0 0 17px;padding:17px 20px;border:1px solid #dce9f8;border-radius:16px;background:#f7fbff;width:100%;box-shadow:none}
.portal-maincol > .portal-spotlight.adm-spotlight-wide .portal-aside-heading{margin-bottom:10px}
.portal-maincol > .portal-spotlight.adm-spotlight-wide .portal-spotlight-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 18px;margin:10px 0 0;padding:0;list-style:none}
.portal-maincol > .portal-spotlight.adm-spotlight-wide .portal-spotlight-list li{min-width:0;border-bottom:1px solid #e6eef9;padding:10px 0}
.portal-maincol > .portal-spotlight.adm-spotlight-wide .portal-spotlight-copy{flex:1;min-width:0}
/* Keep genuine uploaded company logos; hide only the fake 2-letter boxes. */
.portal-vendor-card .portal-vendor-thumb:not(:has(img)),.portal-spotlight-list .portal-spotlight-logo:not(:has(img)){display:none!important}
.portal-home .portal-vendor-body{min-width:0;flex:1}
/* Portfolio replaces the old 50/50 showcase and FAQ grid. */
.portal-home .portal-bottom-pair.adm-bottom-managed{display:block!important}
.portal-home .portal-bottom-pair.adm-bottom-managed .adm-portfolio-home-wrap{margin:10px 0 0;width:100%;max-width:none;padding:17px 18px}
.portal-home .portal-bottom-pair.adm-bottom-managed .adm-home-portfolio{margin-bottom:3px}
.portal-home #questions,.portal-home .portal-faq{display:none!important}
/* Banner replaces only the old left carousel, preserving the two hero-side promotions. */
.portal-home .portal-hero .adm-feature-banner{width:100%;margin:0;min-width:0;height:100%;border-radius:18px}
.portal-home .portal-hero .adm-feature-banner img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.portal-home .portal-hero .adm-feature-banner picture,.portal-home .portal-hero .adm-feature-banner a{height:100%;display:block}
.portal-home .portal-hero .adm-feature-banner{min-height:260px}
/* The old YouTube main-video admin UI remains nonfunctional, but its DOM is kept for old JS selectors. */
.admin-body #media .media-control.adm-legacy-video-hidden{display:none!important}
.admin-body #media .adm-editor-intro{padding:15px 0;color:#536980;font-size:15px}
/* The article request intro was a horizontal flex with FIVE children, shrinking text to vertical lines. */
.news-request-shell .news-request-intro{display:block!important;min-width:0;width:100%;overflow-wrap:break-word;word-break:keep-all}
.news-request-shell .news-request-intro > h1{display:block;width:100%;font-size:clamp(29px,4vw,40px);line-height:1.3;margin:12px 0}
.news-request-shell .news-request-intro > p{display:block;width:100%;max-width:100%;line-height:1.8;margin:12px 0 20px}
.news-request-shell .press-order-steps{width:100%;min-width:0;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr);gap:9px;align-items:stretch}
.news-request-shell .press-order-steps > div{min-width:0;overflow-wrap:break-word;word-break:keep-all}
.news-request-shell .press-order-steps > div span{min-width:0}
.news-request-shell .press-payment-guide{width:100%;min-width:0;flex-wrap:wrap;gap:16px}
.news-request-shell .press-payment-guide > div{flex:1;min-width:0}
.news-request-shell .news-request-form{padding-bottom:34px}
@media(max-width:720px){
 .portal-maincol > .portal-spotlight.adm-spotlight-wide{padding:13px;margin:0 0 12px}
 .portal-maincol > .portal-spotlight.adm-spotlight-wide .portal-spotlight-list{grid-template-columns:1fr;gap:0}
 .portal-home .portal-hero .adm-feature-banner{min-height:280px}
 .portal-home .portal-hero .adm-feature-banner img{height:100%;aspect-ratio:4/5}
 .news-request-shell .press-order-steps{grid-template-columns:1fr;gap:9px}
 .news-request-shell .press-order-steps > i{display:none}
 .news-request-shell .press-payment-guide{display:block}
 .news-request-shell .press-payment-guide > a{margin-top:12px;display:inline-flex}
 .news-request-shell{padding-bottom:100px}
}
@media(prefers-reduced-motion:reduce){.portal-home .adm-brand-reveal{animation:none!important}}
/* V225 login and admission headers: keep hamburger at the upper right. */
@media(max-width:760px){
 header.adm-mobile-header{position:relative;overflow:visible!important}
 header.topbar.adm-mobile-header{position:sticky}
 header.adm-mobile-header .adm-injected-toggle{position:absolute!important;top:50%;right:16px;transform:translateY(-50%);z-index:6;display:flex!important}
 header.topbar.adm-mobile-header .topbar-inner{padding-right:76px}
 header.adm-mobile-header nav.adm-injected-nav:not([hidden]){display:grid!important;visibility:visible!important}
 header.adm-mobile-header nav.adm-injected-nav{top:calc(100% + 4px)}
}


/* V226: original full-width wordmark in every page header (no crop) */
/* Do not replace the original logo image. Its 481:97 ratio is shared with the portal homepage. */
:root{--adm-brand-desktop:248px;--adm-brand-mobile:190px}
@media(max-width:1430px){:root{--adm-brand-desktop:216px}}
@media(max-width:1180px){:root{--adm-brand-desktop:192px}}
@media(max-width:920px){:root{--adm-brand-desktop:185px}}
header.topbar:not(.portal-header) .topbar-inner > a.brand-logo{
  position:static!important;display:flex!important;align-items:center!important;
  justify-content:flex-start!important;align-self:center!important;
  flex:0 0 var(--adm-brand-desktop)!important;
  width:var(--adm-brand-desktop)!important;min-width:0!important;
  height:auto!important;min-height:0!important;max-height:none!important;
  padding:0!important;margin:0!important;transform:none!important;
  overflow:visible!important;box-sizing:border-box!important
}
header.topbar:not(.portal-header) .topbar-inner > a.brand-logo > img{
  display:block!important;position:static!important;inset:auto!important;
  width:100%!important;max-width:100%!important;
  height:auto!important;max-height:none!important;
  transform:none!important;margin:0!important;vertical-align:middle!important;
  object-fit:contain!important;object-position:left center!important;
  aspect-ratio:481/97
}
/* Make the existing homepage image use the same uncropped rendering rather than inherited absolute positioning. */
body.portal-home header.portal-header a.portal-brand{
  position:relative!important;overflow:visible!important;align-items:center!important
}
body.portal-home header.portal-header a.portal-brand > img{
  display:block!important;position:static!important;inset:auto!important;
  width:100%!important;max-width:100%!important;
  height:auto!important;max-height:100%!important;
  margin:0!important;transform:none!important;
  object-fit:contain!important;object-position:left center!important;
  aspect-ratio:481/97
}
/* The admission, independent portfolio, content admin and contract pages have separate headers. */
header.top > .wrap > a:first-child,
header.adm-header > a:first-child,
header.site-header > a.brand{
  display:flex!important;align-items:center!important;justify-content:flex-start!important;
  position:relative!important;flex:0 0 var(--adm-brand-desktop)!important;
  width:var(--adm-brand-desktop)!important;min-width:0!important;
  height:auto!important;min-height:0!important;
  padding:0!important;margin:0!important;overflow:visible!important
}
header.top > .wrap > a:first-child > img,
header.adm-header > a:first-child > img.adm-logo,
header.site-header > a.brand > img{
  display:block!important;position:static!important;inset:auto!important;
  width:100%!important;max-width:100%!important;height:auto!important;
  max-height:none!important;transform:none!important;
  object-fit:contain!important;object-position:left center!important;
  aspect-ratio:481/97
}
/* Agreement header had no site-wide logo framing; give it a predictable nonclipping area. */
header.site-header{display:flex;align-items:center;min-height:74px;
  padding:0 max(20px,calc((100% - 1200px)/2));background:#fff;
  border-bottom:1px solid #e8eef4;overflow:visible}
/* Fix the same legacy clipping in footers and the operator's sidebar. */
a.footer-logo, a.sidebar-brand{
  display:flex!important;align-items:center!important;justify-content:flex-start!important;
  height:auto!important;min-height:0!important;overflow:visible!important
}
a.footer-logo > img, a.sidebar-brand > img{
  position:static!important;inset:auto!important;display:block!important;
  width:100%!important;max-width:100%!important;height:auto!important;
  max-height:none!important;transform:none!important;object-fit:contain!important;
  aspect-ratio:481/97
}
@media(max-width:720px){
  header.topbar:not(.portal-header) .topbar-inner > a.brand-logo,
  header.top > .wrap > a:first-child,
  header.adm-header > a:first-child,
  header.site-header > a.brand{
    width:var(--adm-brand-mobile)!important;
    flex:0 0 var(--adm-brand-mobile)!important;
    max-width:calc(100vw - 95px)!important
  }
  header.topbar:not(.portal-header) .topbar-inner > a.brand-logo{align-self:center!important}
  header.site-header{min-height:62px;padding:0 15px}
  header.adm-header{column-gap:12px}
}
@media(max-width:390px){:root{--adm-brand-mobile:167px}}
