/* WITH mobile-only responsive refinement
   Desktop is intentionally untouched. */
@media (max-width: 980px){
  html,body{max-width:100%;overflow-x:hidden!important}
  body{font-size:15px}
  img,svg,video,canvas,iframe{max-width:100%!important}
  .wrap,.fullbleed>.wrap{width:100%;max-width:100%;padding-left:14px!important;padding-right:14px!important}
  main{overflow:hidden}
  main>.wrap{padding-top:14px}

  /* Header */
  header{position:sticky;top:0}
  .header-row{min-height:72px;padding:10px 0!important}
  .brand{min-width:0;gap:9px;max-width:calc(100% - 62px)}
  .logo{width:42px!important;height:42px!important;flex:0 0 42px;border-radius:12px}
  .brand .text{min-width:0}
  .brand .name{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand .tag{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .header-actions{flex:0 0 auto}
  .hamburger{width:48px;height:48px;padding:0;border-radius:16px}

  /* Global typography and cards */
  .h1{font-size:clamp(24px,7vw,32px)!important;line-height:1.24;margin-bottom:8px}
  .h2{font-size:20px}
  .h3{font-size:17px}
  .p,.lead,.hero__desc,.svc-desc,.resource-desc-text{font-size:15px;line-height:1.72}
  .card{border-radius:18px}
  .card .hd{padding:20px 18px!important}
  .card .bd{padding:18px!important}
  .notice{padding:13px 14px;font-size:14px}
  .btn{min-height:44px;padding:10px 15px;font-size:14px;white-space:normal;text-align:center}
  .field input,.field select,.field textarea{font-size:16px!important}
  .row,.grid,.grid2{min-width:0}
  .grid2,.svc-grid{grid-template-columns:1fr!important}

  /* Sub navigation: wrap, never horizontal-scroll */
  .site-subnav,.subnav,.admin-tabs,.resource-cat-buttons{
    display:flex!important;flex-wrap:wrap!important;white-space:normal!important;
    width:100%!important;max-width:100%!important;overflow:visible!important;
    gap:8px!important;padding:2px 0!important;
  }
  .site-subnav-link,.subnav a,.admin-tabs .tab{
    flex:0 1 auto!important;min-height:40px!important;padding:8px 12px!important;
    font-size:13px!important;line-height:1.25!important;white-space:normal!important;
  }
  .mobile-scroll-x,.resource-toolbar,.pagination{
    overflow:visible!important;width:100%!important;max-width:100%!important;
    white-space:normal!important;flex-wrap:wrap!important;
  }

  /* Hero and home */
  .hero{padding:16px 0 24px}
  .hero-shell{min-height:auto!important;padding:24px 20px!important;border-radius:18px}
  .hero-h1{font-size:clamp(30px,9vw,42px)!important;line-height:1.13;letter-spacing:-.5px}
  .hero-sub{font-size:15px;line-height:1.72;max-width:none}
  .hero-ctas{display:grid;grid-template-columns:1fr;gap:9px}
  .hero-ctas .btn{width:100%}
  .hero-grid,.home-links .hero-grid{grid-template-columns:1fr!important;gap:10px}
  .mini-card,.link-card{padding:15px}
  .hero-nav{padding:0 6px}
  .hero-nav-btn{width:38px;height:38px}

  /* Company / philosophy */
  .philosophy-main,.philosophy-shell{grid-template-columns:1fr!important}
  .philosophy-hero{padding:20px!important}
  .philosophy-title{font-size:clamp(25px,7vw,34px)!important}
  .philosophy-cards{grid-template-columns:1fr!important}
  .philosophy-card{min-height:0!important;padding:16px!important}
  .philosophy-visual{min-height:300px!important;transform:scale(.9);transform-origin:center}
  .career-panel{padding:16px!important}

  /* Services */
  .hero--sub,.hero__inner{min-width:0}
  .hero__title{font-size:clamp(27px,8vw,38px)!important;line-height:1.22}
  .hero__meta{font-size:14px;line-height:1.72}
  .svc-card{padding:18px!important}
  .svc-title{font-size:20px!important}
  .steps{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  .step{min-width:0!important;width:auto!important;padding:14px 10px!important;text-align:center!important}
  .step:last-child:nth-child(odd){grid-column:1/-1}
  .procedure-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important}
  .procedure-guide-btn{align-self:flex-start;max-width:100%;white-space:normal!important}
  .callout{padding:16px!important}
  .k-flex{display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:8px!important}
  .k-flex .k-link{margin-left:0!important}

  /* Resources toolbar */
  .resource-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;align-items:stretch!important}
  .resource-toolbar>div{margin-left:0!important;width:100%!important}
  .resource-toolbar form{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;width:100%!important;gap:8px!important}
  .resource-toolbar input[name="q"]{width:100%!important;min-width:0!important;height:44px!important}
  .resource-toolbar form .btn{height:44px!important;padding:8px 14px!important}

  /* Responsive tables become labelled cards. No horizontal scroll. */
  .mobile-table-scroll{overflow:visible!important;width:100%!important;max-width:100%!important;padding:0!important}
  .mobile-table-scroll table.table,.mobile-table-scroll table{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;border-collapse:separate!important}
  .mobile-table-scroll thead{display:none!important}
  .mobile-table-scroll tbody{display:grid!important;gap:12px!important;width:100%!important}
  .mobile-table-scroll tr{display:grid!important;grid-template-columns:1fr!important;width:100%!important;padding:14px!important;border:1px solid rgba(255,255,255,.11)!important;border-radius:16px!important;background:rgba(255,255,255,.025)!important}
  .mobile-table-scroll td{display:grid!important;grid-template-columns:minmax(88px,34%) minmax(0,1fr)!important;gap:10px!important;align-items:start!important;width:100%!important;padding:8px 0!important;border:0!important;white-space:normal!important;word-break:break-word!important;text-align:left!important}
  .mobile-table-scroll td::before{content:attr(data-label);color:var(--muted2);font-size:12px;font-weight:900}
  .mobile-table-scroll td:empty{display:none!important}
  .mobile-table-scroll td[data-label="번호"],.mobile-table-scroll td[data-label="조회"],.mobile-table-scroll td[data-label="다운로드"]{display:none!important}
  .mobile-table-scroll td .btn{width:100%;max-width:180px}

  /* Resource detail */
  .resource-detail-card{padding:18px!important}
  .resource-detail-title{font-size:clamp(24px,7vw,30px)!important;word-break:break-word}
  .resource-meta-line{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px 14px!important;font-size:13px!important}
  .resource-desc-box,.resource-files-box{padding:16px!important;margin:15px 0!important}
  .pdf-preview-wrap{margin:18px 0!important}
  .pdf-select-line{display:grid!important;grid-template-columns:1fr!important}
  .pdf-select-line select{width:100%!important;height:44px!important}
  .pdf-preview-frame{height:64vh!important;min-height:420px!important;border-radius:12px!important}
  .resource-file-row{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;padding:15px 0!important}
  .resource-file-left{align-items:flex-start!important;min-width:0}
  .resource-file-name{font-size:15px!important;word-break:break-word!important;overflow-wrap:anywhere}
  .resource-file-action{margin:0!important;width:100%!important}
  .resource-file-action .btn{width:100%!important}
  .related-links-grid{grid-template-columns:1fr!important}
  .related-link-card{min-height:72px!important;padding:13px 14px!important}

  /* FAQ */
  .faq{grid-template-columns:1fr!important;gap:10px!important}
  .faq details{padding:12px 14px!important}
  .faq summary{font-size:15px;line-height:1.5}
  .faq .faq-answer{font-size:14px;line-height:1.72}

  /* Forms / auth / account */
  .contact-form,.signup-form,.account-form,.password-grid{grid-template-columns:1fr!important;gap:15px!important}
  .auth-card,.auth-card--wide,.account-card{max-width:100%!important}
  .auth-card .bd{padding:20px 16px!important}
  .auth-form{max-width:100%!important}
  .form-submit-btn,.auth-submit-btn,.account-form-actions .btn{width:100%!important;max-width:320px!important}
  .policy-scroll{max-height:160px!important}
  .contact-message{min-height:210px!important}
  .account-status{align-items:flex-start!important;padding:15px!important}
  .account-info-card{padding:16px!important}
  .account-info-card dl{grid-template-columns:1fr!important}
  .account-info-card dl>div{display:grid!important;grid-template-columns:1fr!important;gap:5px!important}
  .contact-success{padding:30px 16px!important}
  .contact-success-actions{display:grid!important;grid-template-columns:1fr!important}
  .contact-success-actions .btn{width:100%!important}

  /* Admin */
  .admin-tabs .btn{margin-left:0!important;width:auto!important}
  .admin-resource-search{align-items:stretch!important}
  .admin-resource-search form{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .admin-resource-search input[type="search"]{width:100%!important;min-width:0!important}
  .resource-file-admin-row{grid-template-columns:1fr!important}
  .resource-file-admin-row .btn{width:100%!important}
  .grid[style*="repeat(4"]{grid-template-columns:1fr 1fr!important}

  /* Footer */
  footer{margin-top:28px}
  .foot{grid-template-columns:1fr!important;gap:18px!important}
  .foot-company,.foot-box{padding:16px!important;min-width:0!important}
  .foot-info{font-size:13px;line-height:1.7;word-break:break-word}
  .foot-contact .contact-lines .row{grid-template-columns:64px minmax(0,1fr)!important}
  .foot-box{font-size:1.08em!important}
  .legal{gap:12px}

  /* Prevent common inline widths from overflowing */
  [style*="min-width"],[style*="width:"]{max-width:100%}
}

@media (max-width: 560px){
  .wrap,.fullbleed>.wrap{padding-left:10px!important;padding-right:10px!important}
  .header-row{min-height:66px}
  .logo{width:38px!important;height:38px!important;flex-basis:38px}
  .brand .name{font-size:17px}
  .brand .tag{font-size:10px}
  .hamburger{width:44px;height:44px}
  .card .hd{padding:17px 15px!important}
  .card .bd{padding:15px!important}
  .hero-shell{padding:20px 16px!important}
  .hero-h1{font-size:30px!important}
  .site-subnav-link,.subnav a,.admin-tabs .tab{font-size:12px!important;padding:7px 10px!important;min-height:38px!important}
  .steps{grid-template-columns:1fr!important}
  .step:last-child:nth-child(odd){grid-column:auto}
  .resource-meta-line{grid-template-columns:1fr!important}
  .pdf-preview-frame{height:58vh!important;min-height:360px!important}
  .grid[style*="repeat(4"]{grid-template-columns:1fr!important}
  .with-mobile-drawer__tag{display:none}
}

/* Mobile landscape: use extra width without turning pages back into desktop. */
@media (max-width: 980px) and (orientation: landscape){
  .wrap,.fullbleed>.wrap{padding-left:18px!important;padding-right:18px!important}
  .hero-shell{padding:22px 26px!important}
  .hero-h1{font-size:36px!important}
  .steps{grid-template-columns:repeat(3,1fr)!important}
  .step:last-child:nth-child(odd){grid-column:auto}
  .contact-form,.signup-form,.account-form,.password-grid{grid-template-columns:1fr 1fr!important}
  .related-links-grid{grid-template-columns:repeat(3,1fr)!important}
  .pdf-preview-frame{height:72vh!important;min-height:340px!important}
  #withMobileDrawer:not([hidden]){width:min(70vw,390px)!important}
}


/* V2.7 mobile resource detail refinements */
@media (max-width: 980px){
  .pdf-preview-frame{display:none!important}
  .mobile-pdf-preview{
    display:flex!important;align-items:flex-start;justify-content:center;
    width:100%;min-height:260px;padding:12px;margin:0;
    overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:12px;
    background:#202226;
  }
  .mobile-pdf-preview canvas{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.32)}
  .mobile-pdf-preview canvas[hidden]{display:none!important}
  .mobile-pdf-status{align-self:center;padding:28px 16px;color:rgba(238,242,255,.72);font-size:14px;line-height:1.6;text-align:center}
  .mobile-pdf-status[hidden]{display:none!important}

  .resource-files-box .resource-file-row{
    display:flex!important;flex-direction:column!important;align-items:stretch!important;
    gap:14px!important;width:100%!important;padding:18px 0!important;
  }
  .resource-files-box .resource-file-left{
    display:grid!important;grid-template-columns:52px minmax(0,1fr)!important;
    align-items:start!important;gap:14px!important;width:100%!important;min-width:0!important;
  }
  .resource-files-box .resource-file-left>div:last-child{min-width:0!important;width:100%!important}
  .resource-files-box .resource-file-icon{width:52px!important;height:52px!important;border-radius:15px!important}
  .resource-files-box .resource-file-name{
    display:block!important;width:100%!important;max-width:100%!important;
    font-size:16px!important;line-height:1.5!important;word-break:keep-all!important;
    overflow-wrap:anywhere!important;white-space:normal!important;
  }
  .resource-files-box .resource-file-meta{font-size:13px!important;line-height:1.55!important;margin-top:7px!important}
  .resource-files-box .resource-file-action{display:block!important;width:100%!important;margin:0!important}
  .resource-files-box .resource-file-action .btn{display:flex!important;width:100%!important;max-width:none!important;justify-content:center!important}
}
