/* Shared portal/document chrome. Scope avoids modifying the financial editor. */
html:has(.airi-page),body.airi-page{margin:0}
/* 최소 폭 744px: 그보다 좁으면 줄바꿈·2행 헤더 대신 가로 스크롤(모바일 화면은 별도 페이지). 셸은 body 가 스크롤 컨테이너(아래 셸 블록), 셸 밖 문서는 body 가 744px 로 넓어져 문서가 가로 스크롤된다. */
.airi-page:not(.airi-shell){min-width:744px}
/* iframe 본문 폭은 부모 셸이 확보한다. 세로 스크롤바 너비만큼 이중 가로 스크롤을 만들지 않는다. */
html.airi-embedded .airi-page{min-width:0}
html:has(.airi-page){scroll-padding-top:80px}
.airi-page{min-height:100svh;display:flex;flex-direction:column;font:400 var(--airi-body)/1.6 var(--airi-font);color:var(--airi-ink);background:var(--airi-page);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
.airi-page *{box-sizing:border-box}.airi-page [hidden]{display:none!important}
.airi-page h1,.airi-page h2,.airi-page h3,.airi-page p{margin:0}
.airi-page h1,.airi-page h2,.airi-page h3{font-style:normal;letter-spacing:-.035em;word-break:keep-all;overflow-wrap:anywhere;line-height:1.4}
.airi-page p{word-break:keep-all;overflow-wrap:anywhere}
.airi-page a{color:inherit;text-decoration:none}.airi-page button,.airi-page textarea{font:inherit;color:inherit}
.airi-page button{cursor:pointer}.airi-page :where(a,button,summary,textarea):focus-visible{outline:2px solid var(--airi-focus);outline-offset:4px}
.airi-page :where(a,button,summary){touch-action:manipulation}
.airi-page button:disabled{cursor:not-allowed;background:var(--airi-soft);color:var(--airi-muted)}
.airi-page svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.airi-container{width:min(1184px,calc(100% - 64px));margin-inline:auto;min-width:0}
.airi-skip{position:fixed;inset-block-start:-100px;inset-inline-start:12px;z-index:100;background:var(--airi-paper);padding:8px 16px;color:var(--airi-primary)}.airi-skip:focus{inset-block-start:8px}
.airi-header{border-bottom:1px solid var(--airi-border);background:var(--airi-paper);flex:none}
.airi-header-inner{display:flex;align-items:center;gap:28px;min-height:64px}
.airi-logo{display:flex;align-items:center;gap:14px;min-height:40px;min-width:0;color:var(--airi-primary)!important}
.airi-logo b{font-size:28px;line-height:1;letter-spacing:-1px;font-weight:700;flex:none}
.airi-logo span{display:block;max-width:220px;font-size:11px;line-height:1.5;color:var(--airi-muted);border-inline-start:1px solid var(--airi-border);padding-inline-start:14px}
.airi-nav{display:flex;align-items:center;gap:24px;flex:none;margin-inline-start:auto}
.airi-nav-extra{display:flex;gap:18px;align-items:center;border-inline-start:1px solid var(--airi-border);padding-inline-start:24px}
.airi-nav-extra a{font-size:var(--airi-sm);min-height:40px;white-space:nowrap;display:inline-flex;align-items:center;color:var(--airi-secondary)}
.airi-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:40px;padding:8px 16px;border:1px solid var(--airi-border);border-radius:var(--airi-radius);font-size:var(--airi-body);font-weight:500;line-height:1.5;white-space:nowrap;background:var(--airi-paper);color:var(--airi-primary)!important}
.airi-btn.primary{background:var(--airi-primary);color:var(--airi-on-dark)!important;border-color:var(--airi-primary)}
.airi-tag{display:inline-flex;align-items:center;white-space:nowrap;min-height:24px;padding:2px 8px;border-radius:4px;background:var(--airi-action-soft);color:var(--airi-primary);font-size:var(--airi-xs);font-weight:500}
.airi-link{color:var(--airi-primary)!important;text-decoration:underline!important;text-underline-offset:4px;min-height:28px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.airi-footer{border-top:1px solid var(--airi-border);margin-block-start:auto;flex:none;background:var(--airi-paper)}
.airi-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:62px;padding-block:12px}
.airi-footer-brand{display:flex;align-items:center;gap:16px;min-width:0}.airi-footer-brand b{font-size:16px;color:var(--airi-primary)}.airi-footer-brand span{font-size:var(--airi-xs);color:var(--airi-muted)}
.airi-footer-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.airi-footer-links a{font-size:var(--airi-xs);white-space:nowrap;min-height:28px;display:inline-flex;align-items:center;color:var(--airi-muted)}
.airi-document{padding-block:32px 40px;flex:1;max-width:1000px}.airi-breadcrumb{font-size:var(--airi-xs);color:var(--airi-muted);margin-bottom:18px;display:flex;gap:10px;align-items:center}
.airi-breadcrumb a{min-height:28px;display:inline-flex;align-items:center;color:var(--airi-primary);white-space:nowrap}
.airi-document-head{border-bottom:1px solid var(--airi-border);padding-block-end:22px;margin-bottom:24px}.airi-document-head h1{font-size:var(--airi-display);margin-bottom:10px}.airi-document-head p{color:var(--airi-secondary);font-size:var(--airi-body);max-width:74ch}
.airi-document section{scroll-margin-top:20px}.airi-document h2{font-size:var(--airi-section);margin-block:26px 12px}.airi-document h3{font-size:var(--airi-large);margin-block:18px 8px}.airi-document p{margin-block:0 12px;color:var(--airi-secondary);line-height:1.85;max-width:84ch}
.airi-prose-panel{padding:24px;border:1px solid var(--airi-border);border-radius:var(--airi-radius-lg);background:var(--airi-paper);margin-bottom:20px}
.airi-prose-panel h2:first-child{margin-top:0}.airi-inline-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.airi-note{background:var(--airi-note-bg);color:var(--airi-note);padding:12px 16px;border-inline-start:3px solid var(--airi-note);font-size:var(--airi-sm);line-height:1.8;margin-block:16px}
.airi-steps{list-style:none;padding:0;margin:0}.airi-steps li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;padding-block:16px;border-bottom:1px solid var(--airi-line)}.airi-steps li:last-child{border-bottom:0}.airi-steps .number{font-size:var(--airi-xs);color:var(--airi-muted);padding-top:4px}.airi-steps h3{margin:0 0 6px}.airi-steps p{margin:0}.airi-steps h3 .airi-tag{margin-inline-start:8px;vertical-align:middle}.airi-steps .required .airi-tag{background:var(--airi-primary);color:var(--airi-on-dark)}.airi-steps .required{background:var(--airi-action-soft);margin-inline:-12px;padding-inline:12px;border-radius:var(--airi-radius)}
.airi-faq{border:1px solid var(--airi-border);border-radius:var(--airi-radius-lg);padding:24px;background:var(--airi-paper);margin-bottom:20px}.airi-faq h2:first-child{margin-top:0}.airi-faq details:last-of-type{border-bottom:0}.airi-faq details{background:var(--airi-paper);border-bottom:1px solid var(--airi-border);padding-inline:4px}.airi-faq summary{cursor:pointer;min-height:48px;padding-block:12px;line-height:1.7;font-weight:500}.airi-faq details p{padding:0 20px 16px;margin:0;font-size:var(--airi-body)}
.airi-contact-text{width:100%;min-height:210px;background:var(--airi-soft);border:1px solid var(--airi-rule-strong);border-radius:var(--airi-radius);padding:14px;font-size:var(--airi-sm);line-height:1.8;resize:vertical}
.airi-status{min-height:28px;margin-top:12px;font-size:var(--airi-sm);color:var(--airi-secondary)}
.airi-contact-label{display:block;margin-top:18px;margin-bottom:8px}.airi-empty{border:1px dashed var(--airi-rule-strong);padding:32px;background:var(--airi-paper);border-radius:var(--airi-radius-lg)}.airi-empty h2{margin-top:0}
@media(hover:hover) and (pointer:fine){.airi-btn:not(.primary):hover{background:var(--airi-action-soft);border-color:var(--airi-primary)}.airi-btn.primary:hover{background:var(--airi-primary-hover)}.airi-nav-extra a:hover,.airi-footer-links a:hover{color:var(--airi-primary);text-decoration:underline;text-underline-offset:4px}.airi-faq summary:hover{color:var(--airi-primary)}}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){.airi-btn .arrow{transition:transform var(--airi-motion-fast) var(--airi-ease-out)}.airi-btn:hover .arrow{transform:translateX(2px)}}
@media(prefers-reduced-motion:reduce){.airi-page *,.airi-page *::before,.airi-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:980px){.airi-footer-brand span{max-width:270px;font-size:11px}.airi-footer-inner{align-items:flex-start}}
@media(max-width:650px){.airi-container{width:calc(100% - 32px)}.airi-logo{min-height:34px}.airi-logo b{font-size:26px}.airi-footer-inner{display:block;padding-block:16px}.airi-footer-brand{align-items:flex-start;gap:12px}.airi-footer-brand span{max-width:none;font-size:11px}.airi-footer-links{justify-content:flex-start;margin-top:12px;gap:16px}.airi-document{padding-block:20px 28px}.airi-document-head h1{font-size:var(--airi-title)}.airi-prose-panel{padding:18px 16px}.airi-contact-text{font-size:16px}.airi-empty{padding:24px 18px}.airi-document p{line-height:1.8}}
@media(forced-colors:active){.airi-page :focus-visible{outline:2px solid Highlight}}

/* Header frame (NF1, 2026-10-25): 64px one line, full width, logo at the left edge and account at the right edge, menu centred.
   Below 744px the page scrolls horizontally (min-width 744px); the header stays one 64px row. The sub-menu links are static HTML; site.js adds hover/click opening (progressive enhancement). */
.airi-header{--airi-gutter:clamp(16px,2.5vw,32px);position:sticky;top:0;z-index:50;border-bottom:0;box-shadow:0 1px 0 #1d3a5f12,0 2px 8px #13233a08}
.airi-header .airi-header-inner{width:auto;max-width:none;margin:0;height:64px;min-height:64px;padding:0 var(--airi-gutter);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:16px;row-gap:0}
.airi-header .airi-logo{justify-self:start}
.airi-header .airi-nav{margin:0;gap:0;height:100%;display:block}
.airi-header .airi-nav-extra{justify-self:end;border:0;padding:0;gap:12px;min-width:0}
.airi-account-slot{width:auto;display:flex;justify-content:flex-end;position:relative}
.airi-nav-extra [data-config-link=loginUrl]{height:36px;min-height:36px;width:92px;justify-content:center;gap:7px;border-radius:999px;background:var(--airi-primary);color:white;font-size:13px;font-weight:650;transition:background .15s}
.airi-nav-extra [data-config-link=loginUrl]::before{content:'↪';font-size:16px;line-height:1}
.airi-nav-extra [data-config-link=loginUrl]:hover{background:var(--airi-primary-hover);color:white;text-decoration:none}
.airi-account-slot .airi-member{width:auto}
.airi-account-slot .airi-member-trigger{width:auto;max-width:110px;text-align:right;border-radius:7px;padding-left:8px}
.airi-account-slot .airi-member-trigger:hover{background:#edf3f8}
@media(max-width:1100px){.airi-header .airi-logo span{display:none}}

/* Shared brand initials must inherit the caption size on every page. */
.airi-header .airi-logo span strong{font-size:inherit;line-height:inherit;letter-spacing:inherit;font-weight:700}

/* Sticky portal header. Opaque fallback for browsers without backdrop blur. */
.airi-page>header.airi-header{background:rgba(255,255,255,.96)}
@supports ((backdrop-filter:blur(12px)) or (-webkit-backdrop-filter:blur(12px))){.airi-page>header.airi-header{background:rgba(255,255,255,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}

/* Site menu: AIRI 소개(단일 링크) · 도구모음 ▾ · 정보소식 ▾ · 고객센터 ▾ — 소메뉴가 있는 세 항목의 부모만 버튼(이동 없음), AIRI 소개는 일반 링크.
   Panels overlay the header (absolute, top:100% of a 64px item), so opening never changes the header height or --airi-shell-header.
   position:fixed is not used for panels: the header's backdrop-filter changes the containing block of fixed children. */
.airi-vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.airi-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;gap:2px;height:100%;align-items:center}
.airi-menu>li{position:relative;display:flex;align-items:center;height:100%;margin:0}
.airi-nav .airi-menu-parent,.airi-nav .airi-menu>li>a.airi-menu-link{min-width:96px;height:44px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:7px;background:transparent;font:650 15px/1 var(--airi-font);color:var(--airi-nav-idle);white-space:nowrap;position:relative;transition:background .15s,color .15s}
.airi-menu-parent svg{width:14px;height:14px;stroke-width:2;transition:transform .15s var(--airi-ease-out)}
.airi-menu-parent[aria-expanded=true] svg{transform:rotate(180deg)}
.airi-menu>li.is-open>.airi-menu-parent{background:#edf2f7;color:var(--airi-primary)}
/* hover 색은 hover 가능한 정밀 포인터에서만: 터치 기기에서 탭 뒤 :hover 가 남아 primary 색이 고정되지 않게 한다. */
@media(hover:hover) and (pointer:fine){.airi-menu-parent:hover,.airi-nav .airi-menu>li>a.airi-menu-link:hover{background:#edf2f7;color:var(--airi-primary);text-decoration:none}}
.airi-menu>li.is-active>.airi-menu-parent,.airi-nav .airi-menu>li>a.airi-menu-link[aria-current=page]{color:var(--airi-primary);font-weight:700}
.airi-menu>li.is-active>.airi-menu-parent::after,.airi-nav .airi-menu>li>a.airi-menu-link[aria-current=page]::after{content:'';position:absolute;inset-inline:16px;bottom:-10px;border-bottom:3px solid var(--airi-primary)}
.airi-sub{list-style:none;margin:0;padding:6px;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:232px;max-width:340px;width:max-content;background:#fff;border:1px solid var(--airi-border);border-top:0;border-radius:0 0 10px 10px;box-shadow:0 10px 28px var(--airi-shadow);z-index:60}
.airi-menu>li.is-last>.airi-sub{left:auto;right:0;transform:none}
.airi-nav .airi-sub li{margin:0}
/* .airi-header prefix: portal-boards.css `.airi-reader .airi-nav a` has the same specificity and loads later; the prefix keeps sub-menu links from taking its colour/weight. */
.airi-header .airi-nav .airi-sub a{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:auto;flex:none;gap:2px;min-height:44px;padding:9px 14px;border-radius:6px;white-space:normal;color:var(--airi-ink);font-size:14px;font-weight:600}
.airi-header .airi-nav .airi-sub a:hover{background:#edf2f7;color:var(--airi-primary);text-decoration:none}
.airi-header .airi-nav .airi-sub a[aria-current=page]{background:#edf3f8;color:var(--airi-primary);font-weight:700;box-shadow:inset 3px 0 0 var(--airi-primary)}
.airi-sub .d{font-size:12px;font-weight:400;color:var(--airi-muted);line-height:1.45}
.airi-sub .airi-sub-note{margin:4px 0 0;padding:8px 14px 6px;border-top:1px solid var(--airi-line);font-size:12px;line-height:1.5;color:var(--airi-muted)}
.airi-sub .airi-sub-note+.airi-sub-note{margin-top:0;padding-top:2px;border-top:0}
.airi-menu :where(a,button):focus-visible{outline:2px solid var(--airi-focus);outline-offset:2px}
.airi-sub a:focus-visible{outline-offset:-2px}
@media(prefers-reduced-motion:no-preference){.airi-sub{animation:airi-sub-in var(--airi-motion-fast) var(--airi-ease-out)}.airi-menu>li.is-last>.airi-sub{animation-name:airi-sub-in-r}}
@keyframes airi-sub-in{from{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes airi-sub-in-r{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(forced-colors:active){.airi-header .airi-nav .airi-sub a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;border-inline-start:4px solid Highlight}.airi-menu>li.is-active>.airi-menu-parent{text-decoration:underline}}
/* Progressive enhancement: once JS is ready (html.ready) the sub-menus fold; before that (html.pending) they are folded too, to avoid a flash.
   Without JS or when site.js fails neither class exists and the sub-menu links stay visible as a plain list (also outside the shell: sns-callback, 404, direct documents). */
html.pending .airi-sub,html.ready .airi-sub{display:none}
html.pending .airi-menu>li.is-open>.airi-sub,html.ready .airi-menu>li.is-open>.airi-sub{display:block}
html:not(.pending):not(.ready) .airi-header .airi-header-inner{height:auto;min-height:64px;grid-template-rows:auto auto;padding-block:10px}
html:not(.pending):not(.ready) .airi-menu{height:auto;align-items:flex-start;flex-wrap:wrap;justify-content:center;gap:4px 28px}
html:not(.pending):not(.ready) .airi-menu>li{height:auto;flex-direction:column;align-items:flex-start}
html:not(.pending):not(.ready) .airi-nav .airi-menu-parent,html:not(.pending):not(.ready) .airi-nav .airi-menu>li>a.airi-menu-link{min-height:32px;height:auto;min-width:0;padding:0;justify-content:flex-start}
/* Only the fold buttons are inert (pressing does nothing); every sub-menu link keeps working. */
html:not(.pending):not(.ready) .airi-menu-parent{cursor:default;pointer-events:none}
html:not(.pending):not(.ready) .airi-menu>li.is-active>.airi-menu-parent::after,html:not(.pending):not(.ready) .airi-nav .airi-menu>li>a.airi-menu-link[aria-current=page]::after{content:none}
html:not(.pending):not(.ready) .airi-menu-parent svg,html:not(.pending):not(.ready) .airi-sub .d,html:not(.pending):not(.ready) .airi-sub-note{display:none}
html:not(.pending):not(.ready) .airi-sub,html:not(.pending):not(.ready) .airi-menu>li.is-last>.airi-sub{position:static;transform:none;min-width:0;width:auto;max-width:none;padding:0;border:0;box-shadow:none;background:none;animation:none}
html:not(.pending):not(.ready) .airi-header .airi-nav .airi-sub a[aria-current=page]{box-shadow:none}
html:not(.pending):not(.ready) .airi-header .airi-nav .airi-sub a{min-height:28px;padding:2px 0;font-size:13px;font-weight:500;color:var(--airi-primary);text-decoration:underline;display:inline-flex}


/* Portal shell (index.html): the translucent header floats over one full-height iframe, so scrolling body content shows through it (backdrop blur above). The iframe is sized by CSS only. */
/* 셸 가로 스크롤: html 은 숨기고 body 가 가로 스크롤 컨테이너다. 헤더·iframe 은 absolute 에 폭 max(100%,744px)라 헤더와 본문이 같이 움직이고, 헤더 자체는 overflow 컨테이너가 아니므로 소메뉴 패널이 잘리지 않는다. */
html.airi-shell{height:100%;overflow:hidden}
body.airi-shell{position:relative;min-height:0;height:100vh;height:100dvh;overflow-x:auto;overflow-y:hidden}
.airi-shell>.airi-header,.airi-shell>header.airi-header{position:absolute;top:0;left:0;width:max(100%,744px);z-index:50}
.airi-shell #airi-portal-content{position:absolute;top:0;left:0;z-index:0;width:max(100%,744px);height:100%;border:0;display:block;background:var(--airi-page)}
/* 뉴스 읽기 본문은 기기 폭을 사용한다. NF2 헤더의 가로 스크롤 정책은 유지한다. */
@media screen{
.airi-shell #airi-portal-content:is([src*="industry-news.html"],[src*="industry-article.html"]){position:fixed;width:100%}
html.airi-embedded body.airi-page.airi-reader:has(#news-list,#article-detail){min-width:0}
}
/* Body pages inside the shell: the shell header replaces their own and overlays the top, so reserve its height (shell.js sets --airi-shell-header; the fallbacks match the CSS header heights before it arrives). */
html.airi-embedded{--airi-shell-header:64px;scroll-padding-top:var(--airi-shell-header)}
html.airi-embedded body{box-sizing:border-box;padding-top:var(--airi-shell-header)}
html.airi-embedded .airi-header,html.airi-embedded .airi-skip{display:none!important}
html.airi-embedded:has(.airi-page){scroll-padding-top:var(--airi-shell-header)}
html.airi-embedded.airi-shell body{display:none}
@media print{html.airi-shell,body.airi-shell{height:auto;overflow:visible}
.airi-page:not(.airi-shell){min-width:0}
html.airi-embedded body{padding-top:0}
.airi-shell>header.airi-header,.airi-shell>.airi-skip{display:none!important}
.airi-shell #airi-portal-content{position:static;display:block;width:100%}
}
