/*
 * overlay.css — 신규 작성 스타일 오버레이 (규약 v0 R5)
 *
 * 이 파일에만 신규 CSS 를 작성한다. 원본 CSS(css/style.css, css/base.css, css/style-*.css,
 * css/base-*.css, css/<verbatim 원본명>)는 절대 수정하지 않는다 — 캐스케이드(로드 순서상 항상
 * 최후)로 이긴다.
 *
 * 허용 대상:
 *  - 반응형 보강(R3 — 원본이 비반응형이거나 리플로우가 부족한 구간)
 *  - 트래커/깨진 규칙 무력화
 *  - 에디터 친화 보정
 *  - R12② 스크롤 헤더 상태(.is-scrolled) 등 신규 배선 상태 클래스의 스타일
 *  - R23 접근성 skip-nav 표준 규칙
 *
 * 금지: 원본 클래스(.ec-base-*, skin 클래스 등)의 값을 "다시 쓰는" 재저작 — 보정만 한다.
 * 탈하네스 시 파일명이 overlay.css 로 개명된다(Report 0단계).
 */

/* R23 접근성 — skip-nav 표준 (평시 화면 밖 → :focus 시 노출) */
.skip-nav {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  padding: 8px 16px;
  background: #000;
  color: #fff;
  text-decoration: none;
}
.skip-nav:focus {
  left: 0;
  top: 0;
}

/* R7/R10/R11 — 원본 스킨 CSS(style-*.css)가 "/maeng/images/…" 원본 서버 상대경로 또는
   다른 호스트(airconsulting.cafe24.com) 절대경로로 테마 아이콘을 참조했었다. 두 경우 다
   R10(이미지는 uploads/mig_site/img/ 에만) + layout_gate(www/ 안 이미지 금지) 를 지키려면
   원본 경로 그대로 www/ 안에 파일을 둘 수 없어, ContentGate round2 수선에서 style-*.css
   원문의 해당 url() 값을 _intake-img-map.json 매핑 그대로(반입된 실제 경로) 1:1 기계적
   치환했다(값 자체를 다시 쓴 재저작이 아니라 깨진 경로 → 반입 경로 교정 — validate_html.py 가
   캐스케이드를 모르고 원문 문자열을 그대로 해석하기 때문에 오버레이만으로는 게이트를
   통과할 수 없었다). 아래 선택자 규칙은 그 이전 라운드에 만든 안전망으로 결과적으로
   중복이지만 무해하여 유지한다(캐스케이드 최후 로드라 값 충돌 없음). 반응형 아트디렉션
   (chat.png→chat-mo.png)은 원본과 동일한 media 쿼리로 감쌌다. */
select { background-image: url(/uploads/mig_site/img/d7ca77cd-select_arrow.svg) !important; }
input[type="radio"] { background-image: url(/uploads/mig_site/img/9c50beeb-input_radio_blank_primary.png) !important; }
input[type="radio"]:checked { background-image: url(/uploads/mig_site/img/0c89169f-input_radio_primary.png) !important; }
input[type="checkbox"] { background-image: url(/uploads/mig_site/img/e6790c64-input_checkbox_blank.png) !important; }
input[type="checkbox"]:checked { background-image: url(/uploads/mig_site/img/f1445b52-input_checkbox.png) !important; }
.path > ol > li:not(.displaynone)::before { background-image: url(/uploads/mig_site/img/99ba9de1-chevron-right.svg) !important; }
.path-custom ol > li::before { background-image: url(/uploads/mig_site/img/99ba9de1-chevron-right.svg) !important; }
.ahb-ui-qty a.down::after { background-image: url(/uploads/mig_site/img/e4b6957a-minus.svg) !important; }
.ahb-ui-qty a.up::after { background-image: url(/uploads/mig_site/img/f15ed006-plus.svg) !important; }
.ahb-ui-board-movement > ul > li strong::after { background-image: url(/uploads/mig_site/img/d7ca77cd-select_arrow.svg) !important; }
.ahb-ui-board-commentlist .boardComment > li.replyArea .commentTop::before { background-image: url(/uploads/mig_site/img/c935908d-reply_arrow.svg) !important; }
.faq__list > ul > li .faq__title::after { background-image: url(/uploads/mig_site/img/d7ca77cd-select_arrow.svg) !important; }
.header-search__inner .search-keyword .recent-keyword > ul > li .close { background-image: url(/uploads/mig_site/img/d49fba4d-close.svg) !important; }
.side-menu__category span::before { background-image: url(/uploads/mig_site/img/d7ca77cd-select_arrow.svg) !important; }
.sns__kakao { background-image: url(/uploads/mig_site/img/731ba877-sns_kakao.svg) !important; }
.sns__naver { background-image: url(/uploads/mig_site/img/dcdfde91-sns_naver.svg) !important; }
.sns__facebook { background-image: url(/uploads/mig_site/img/45f17669-sns_facebook.svg) !important; }
.sns__google { background-image: url(/uploads/mig_site/img/913db722-sns_google.svg) !important; }
.sns__apple { background-image: url(/uploads/mig_site/img/f0ce5833-sns_apple.svg) !important; }
.ahb-ui-myshop-orderhistoryhead .date .date-picker button::after { background-image: url(/uploads/mig_site/img/1bdf2407-calendar.svg) !important; }
.layerTheme > a::after { background-image: url(/uploads/mig_site/img/d49fba4d-close.svg) !important; }
.restock.window-popup .content .ahb-ui-box .information .optionWrap .optionBox > ul > li .delete::after { background-image: url(/uploads/mig_site/img/d49fba4d-close.svg) !important; }
.layer-popup .close { background-image: url(/uploads/mig_site/img/d49fba4d-close.svg) !important; }
.skin-intro__popup.layer-popup .buttons > div::after { background-image: url(/uploads/mig_site/img/d49fba4d-close.svg) !important; }
#ec-shop_orderConfirmLayer.layer-popup .close { background-image: url(/uploads/mig_site/img/d49fba4d-close.svg) !important; }
.ms-review--normal.thumbnail .ms-review__list--photo.locked .content-wrap h4::before { background-image: url(/uploads/mig_site/img/bc83bb22-lock.svg) !important; }
.main__section-04 > div .main__content .banner .text-content > a::after { background-image: url(/uploads/mig_site/img/d0ab8398-fi_chevron-right.png) !important; }
.contact-form .form-wrap .form-group.privacy-wrap label input { background-image: url(/uploads/mig_site/img/3e4938ca-input_checkbox_blank_primary.png) !important; }
.contact-form .form-wrap .form-group.privacy-wrap label input[type="checkbox"]:checked { background-image: url(/uploads/mig_site/img/b47cb6f7-input_checkbox_primary.png) !important; }
.res__section-02 .service__contents-wr > div > div:nth-child(1) { background-image: url(/uploads/mig_site/img/0a1026cc-chat.png) !important; }
@media all and (max-width:767px) {
  .res__section-02 .service__contents-wr > div > div:nth-child(1) { background-image: url(/uploads/mig_site/img/7e4d8cbf-chat-mo.png) !important; }
}

/* shotfix round2 — 768px(t 뷰포트) 우측 오프스크린 클리핑(전 페이지 공통, span "1566-9855" 등).
   원본 style-*.css 는 .ms-pc(데스크톱 전용: #category 대메뉴, 전화 버튼)를
   max-width:767px 에서만 숨긴다. 그런데 헤더 데스크톱 내비(#category, .header__mid)는
   반응형 폭 제한이 원본 CSS 어디에도 없어(header__mid 셀렉터 자체가 미정의) 768px 폭에서
   내비+전화번호가 자연폭대로 겹쳐 .header__gnb 우측 span 이 뷰포트 밖(+33px)으로 밀려난다
   (원본 CSS 파일 자체의 경계값 갭 — 재저작 아님). .ms-pc 를 이미 쓰던 동일 컴포넌트(#category,
   li.call)에 한해 숨김 경계를 768px 로 1px 확장해 데스크톱/모바일 전환 경계와 QA 768px 실측
   폭을 맞춘다(다른 .ms-pc/.ms-mo 용례 없음 — 전 페이지 부작용 없음, 원본 파일 미수정). */
@media all and (max-width:768px) {
  #category.ms-pc,
  .header__gnb > li.call.ms-pc {
    display: none !important;
  }
  .header__gnb > li.menu.ms-mo {
    display: block !important;
  }
}

/* shotfix round2 — 검색 오버레이 패널(.header-search__inner, 전 페이지 공통 partial)이
   원본 style-4.css 에서 width:780rem 고정값(개방형 max-width:767px 미만에서만 width:100%
   축소)이라 768px 폭에서 780rem 그대로 남아 12px 넘친다(패널이 열리지 않은 평시에도
   visibility:hidden 요소가 레이아웃 폭을 차지해 scrollWidth 를 밀어냄). 원본이 이미 정의한
   같은 규칙(width:100%)을 767→768px 로 1px 확장 적용 — 새 값 발명 아님, 원본 파일 미수정. */
@media all and (max-width:768px) {
  .header-search__inner { width: 100%; }
}

/* shotfix round2 — service/commercial/{government,factory,hospital,retail}.html 공통
   .com__section-05 h3 코너 장식 svg(원본 style-4.css: nth-child(1) left:-30rem / nth-child(4)
   right:-30rem, 텍스트 h3 좌우로 절대위치 블리드)가 max-width:767px 모바일 전환에서만
   -24rem 로 줄어든다. 768px 에서는 풀사이즈 -30rem 그대로라 컨테이너(.wrap-medium, 좌우
   padding 20px)를 넘어 뷰포트 밖으로 클리핑된다. 원본이 이미 정의한 모바일 축소값(-24rem/
   top:-10rem, font-size:21rem)을 767→768px 로 1px 확장 — 새 수치 발명 아님. */
@media all and (max-width:768px) {
  .com__section-05 .service__contents-wr h2 { font-size: 16px; }
  .com__section-05 .service__contents-wr h3 { font-size: 21px; }
  .com__section-05 .service__contents-wr h3 svg:nth-child(1) { position: absolute; left: -24px; top: -10px; }
  .com__section-05 .service__contents-wr h3 svg:nth-child(4) { position: absolute; right: -24px; top: -10px; bottom: auto; }
}

/* shotfix round2 — service/commercial/* 커스텀 브레드크럼(.path-custom) 마지막 항목(현재
   페이지, 형제 전환 드롭다운 보유)의 하위 ul 이 원본 style-4.css 에서 부모 li 중앙 기준
   left:50%/translateX(-50%) 로 절대배치된다(호버 시에만 visibility:visible 로 드러나는
   PC 전용 상호작용, 평시 visibility:hidden). 마지막 항목이 브레드크럼 우측 끝(현재 페이지)에
   위치하는 구조라 768px 이하 좁은 폭에서는 중앙 정렬 드롭다운이 뷰포트 밖으로 넘친다
   (visibility:hidden 이어도 레이아웃 폭엔 반영되어 scrollWidth 를 밀어냄). 리플로우로
   해결 — 좌표계만 우측 정렬로 바꿔 같은 요소가 뷰포트 안에 들어오게 한다(내용/폭/트리거 방식
   불변, 원본 파일 미수정). */
@media all and (max-width:768px) {
  .path-custom ol > li:last-child > ul {
    left: auto;
    right: 0;
    transform: none;
  }
}

/* navfix iter3 — 390px 드로어 서브메뉴 아코디언 신규 배선 상태(.on 열림). 원본
   style-*.css 는 .side-menu__category > ul > li > ul { display:none } 만 정의하고
   열림 상태 규칙이 없어(js 배선 부재로 실사용된 적이 없었음) 여기서 최소 보강한다.
   선택자는 원본 그대로 두고 상태 클래스(.on)만 추가 — 재저작 아님. */
.side-menu__category > ul > li > ul.on { display: block !important; }
.side-menu__category > ul > li > ul > li > ul.on { display: block !important; }
.side-menu__category > ul > li > ul > li > ul > li > ul.on { display: block !important; }

/* contentgate round3 — about/location.html: 카카오 roughmap 위젯(외부 핫링크 스크립트
   daumcdn/kakaocdn + 인라인 new daum.roughmap.Lander(...) 실행 스크립트)을 R6/R18(핫링크·
   인라인 실행 금지)에 따라 제거하고, 정적 "지도에서 보기"(카카오맵 새창 링크)로 대체했다.
   위젯이 없어진 빈 컨테이너에 원본 위젯 치수(mapWidth:640/mapHeight:360, 원본 init 파라미터
   그대로 — 신규 수치 발명 아님)의 종횡비를 유지하는 최소 플레이스홀더 박스만 부여한다. */
.location .map .root_daum_roughmap_landing {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 640 / 360;
  background: #f4f4f5;
  border-radius: 12rem;
}
.location .map .root_daum_roughmap_landing > a {
  display: inline-block;
  padding: 10rem 24rem;
  border: 1px solid #d7d5d5;
  border-radius: 100rem;
  color: #353535;
  font-size: 15rem;
  background: #fff;
}

/* MIG-35679 scrollbar: Lenis 비활성으로 --scroll 미설정 → 스크롤바 숨김 복구(원본은 --scroll:block) */
html{--scroll:auto!important;scrollbar-width:auto!important;-ms-overflow-style:auto!important;}
