/* PC 복원 안전장치: 모바일 햄버거 전용 요소는 기본적으로 숨김 */
.mobile-drawer-header,
.mobile-drawer-certs{
  display:none !important;
}

/* PC에서는 모바일 햄버거 패치가 어떤 레이아웃도 건드리지 않음 */
@media (min-width:1025px){
  .mobile-drawer-header,
  .mobile-drawer-certs{
    display:none !important;
  }
  .gnb .nav-panel{
    max-height:none !important;
  }
}

@media (max-width:1024px){
  .menu-overlay{
    background:rgba(0,0,0,.42) !important;
  }
  .topbar.menu-open .mobile-menu-toggle{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .gnb{
    width:min(86vw,370px) !important;
    max-width:370px !important;
    padding:0 0 26px !important;
    background:#ffffff !important;
    box-shadow:-18px 0 42px rgba(0,0,0,.18) !important;
    gap:0 !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  .gnb::before{
    content:none !important;
    display:none !important;
  }

  .mobile-drawer-header{
    position:sticky !important;
    top:0 !important;
    z-index:5 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:26px 22px 17px !important;
    background:#ffffff !important;
    border-bottom:1px solid #dddddd !important;
  }
  .mobile-drawer-home{
    display:inline-flex !important;
    align-items:center !important;
    color:#222222 !important;
    text-decoration:none !important;
    font-size:21px !important;
    font-weight:800 !important;
    letter-spacing:-.02em !important;
    line-height:1.1 !important;
  }
  .mobile-drawer-close{
    appearance:none !important;
    border:0 !important;
    background:transparent !important;
    color:#222222 !important;
    width:40px !important;
    height:40px !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:32px !important;
    line-height:1 !important;
    cursor:pointer !important;
  }

  .gnb .nav-item{
    margin:0 !important;
    border:0 !important;
    border-bottom:1px solid #dddddd !important;
    border-radius:0 !important;
    background:#ffffff !important;
    box-shadow:none !important;
    overflow:visible !important;
  }
  .gnb .nav-item:last-of-type{
    border-bottom:1px solid #dddddd !important;
  }
  .gnb .nav-trigger{
    min-height:62px !important;
    padding:15px 54px 15px 22px !important;
    color:#222222 !important;
    font-size:17px !important;
    font-weight:500 !important;
    letter-spacing:-.03em !important;
    line-height:1.25 !important;
    background:#ffffff !important;
    border:0 !important;
    text-align:left !important;
  }
  .gnb .nav-item:not(.has-submenu) > .nav-trigger{
    padding-right:22px !important;
  }
  .gnb .nav-item.has-submenu > .nav-trigger .nav-accordion-icon{
    position:absolute !important;
    right:21px !important;
    top:50% !important;
    width:18px !important;
    height:18px !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#666666 !important;
    box-shadow:none !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    transform:translateY(-50%) rotate(0deg) !important;
    transform-origin:center !important;
    transition:transform .22s ease !important;
    pointer-events:none !important;
  }
  .gnb .nav-item.has-submenu > .nav-trigger .nav-accordion-icon::before{
    content:"" !important;
    width:10px !important;
    height:10px !important;
    display:block !important;
    border-right:2.5px solid currentColor !important;
    border-bottom:2.5px solid currentColor !important;
    transform:rotate(45deg) !important;
    margin-top:-2px !important;
  }
  .gnb .nav-item.has-submenu.is-open-mobile > .nav-trigger{
    color:#222222 !important;
  }
  .gnb .nav-item.has-submenu.is-open-mobile > .nav-trigger .nav-accordion-icon{
    background:transparent !important;
    color:#666666 !important;
    transform:translateY(-50%) rotate(180deg) !important;
  }

  .gnb .nav-item > .nav-panel{
    display:block !important;
    position:static !important;
    max-height:0 !important;
    overflow:hidden !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:none !important;
    background:#ffffff !important;
    box-shadow:none !important;
    border:0 !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 22px !important;
    transition:max-height .25s ease, opacity .18s ease, padding .18s ease !important;
  }
  .gnb .nav-item.is-open-mobile > .nav-panel{
    max-height:760px !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    padding:0 22px 15px !important;
  }
  .gnb .nav-sublink{
    display:block !important;
    margin:0 !important;
    padding:9px 0 9px 8px !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#666666 !important;
    font-size:14px !important;
    font-weight:400 !important;
    line-height:1.45 !important;
    box-shadow:none !important;
    white-space:normal !important;
  }
  .gnb .nav-sublink::before{
    display:none !important;
    content:none !important;
  }

  .mobile-drawer-certs{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:26px 18px !important;
    padding:25px 16px 8px !important;
    background:#ffffff !important;
  }
  .mobile-drawer-cert{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    text-align:center !important;
    text-decoration:none !important;
    color:#222222 !important;
    min-height:140px !important;
  }
  .mobile-drawer-cert img{
    display:block !important;
    width:auto !important;
    max-width:78px !important;
    max-height:78px !important;
    object-fit:contain !important;
    margin:0 auto 10px !important;
  }
  .mobile-drawer-cert-title{
    display:block !important;
    font-size:12px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    color:#222222 !important;
    letter-spacing:-.02em !important;
  }
  .mobile-drawer-cert-subtitle{
    display:block !important;
    margin-top:4px !important;
    font-size:10px !important;
    font-weight:500 !important;
    line-height:1.2 !important;
    color:#8a8a8a !important;
    letter-spacing:-.02em !important;
  }
}

@media (max-width:430px){
  .gnb{
    width:min(88vw,360px) !important;
    max-width:360px !important;
  }
  .mobile-drawer-header{
    padding:24px 18px 16px !important;
  }
  .mobile-drawer-home{
    font-size:19px !important;
  }
  .mobile-drawer-close{
    width:38px !important;
    height:38px !important;
    font-size:30px !important;
  }
  .gnb .nav-trigger{
    min-height:60px !important;
    font-size:16px !important;
    padding:14px 50px 14px 18px !important;
  }
  .gnb .nav-item:not(.has-submenu) > .nav-trigger{
    padding-right:18px !important;
  }
  .gnb .nav-item.has-submenu > .nav-trigger .nav-accordion-icon{
    right:18px !important;
    width:16px !important;
    height:16px !important;
  }
  .gnb .nav-item > .nav-panel,
  .gnb .nav-item.is-open-mobile > .nav-panel{
    padding-left:18px !important;
    padding-right:18px !important;
  }
  .gnb .nav-sublink{
    font-size:13.5px !important;
  }
  .mobile-drawer-certs{
    gap:24px 14px !important;
    padding:24px 12px 8px !important;
  }
  .mobile-drawer-cert img{
    max-width:72px !important;
    max-height:72px !important;
  }
}

/* 아래쪽 인증마크 2개 위로 이동: 이미지와 글자 전체 같이 이동 */
@media (max-width:1024px){
  .mobile-drawer-cert:nth-child(3),
  .mobile-drawer-cert:nth-child(4){
    margin-top:-18px !important;
  }
}

@media (max-width:430px){
  .mobile-drawer-cert:nth-child(3),
  .mobile-drawer-cert:nth-child(4){
    margin-top:-16px !important;
  }
}

/* 햄버거 메뉴 열림 상태에서는 모바일 하단 퀵메뉴 숨김 */
@media (max-width:1024px){
  body.menu-open-body .mirae-mobile-dock{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(120%) !important;
    transition:opacity .2s ease, visibility .2s ease, transform .25s ease !important;
  }

  body:not(.menu-open-body) .mirae-mobile-dock{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
    transition:opacity .2s ease, visibility .2s ease, transform .25s ease !important;
  }
}


/* ===== 모바일 세부탭 전체 숨김 =====
   PC 레이아웃은 유지하고, 모바일/태블릿에서만 페이지 하위 세부탭을 숨깁니다. */
@media (max-width:1024px){
  .subnav,
  .subtab,
  .sub-tab,
  .sub-nav,
  .page-subtab,
  .detail-tabs,
  .detail-tab-wrap,
  .tabs-wrap,
  .tab-wrap,
  .section-tabs,
  .hero-tabs,
  .board-tabs-wrap,
  .board-tabs,
  .board-nav{
    display:none !important;
  }
}

/* ===== mirae12 치료소개 팝업 열림 시 모바일 하단 퀵메뉴 숨김 =====
   - CSS는 퀵메뉴를 아래로 내려 숨기는 역할만 담당합니다.
   - JS에서 body에 mirae-treatment-modal-open 클래스를 붙였다가 제거합니다.
   - PC는 영향 없고, 모바일/태블릿에서만 작동합니다. */
@media (max-width:1024px){
  body.mirae-treatment-modal-open .mirae-mobile-dock{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(120%) !important;
    transition:opacity .2s ease, visibility .2s ease, transform .25s ease !important;
  }

  body:not(.mirae-treatment-modal-open):not(.menu-open-body) .mirae-mobile-dock{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
    transition:opacity .2s ease, visibility .2s ease, transform .25s ease !important;
  }

  #rehabModal .rehab-modal-slider{
    touch-action:pan-y !important;
    user-select:none !important;
    -webkit-user-select:none !important;
  }
}

/* ===== mirae15 전용: 모바일 세부탭 유지 + 상단 고정 =====
   다른 페이지의 모바일 세부탭 숨김 정책은 유지하고, mirae15.html에서만 세부탭을 다시 표시합니다. */
@media (max-width:1024px){
  body.mirae15-page .top-page > .subnav{
    display:block !important;
    position:sticky !important;
    top:76px !important;
    z-index:88 !important;
    width:100% !important;
    background:#0d3060 !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
    box-shadow:0 8px 20px rgba(7,30,61,.12) !important;
    overflow:hidden !important;
  }

  body.mirae15-page .top-page > .subnav .subnav-inner{
    display:flex !important;
    align-items:stretch !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
  }

  body.mirae15-page .top-page > .subnav .subnav-links{
    display:flex !important;
    flex:1 1 auto !important;
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    white-space:nowrap !important;
    gap:0 !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
  }

  body.mirae15-page .top-page > .subnav .subnav-links::-webkit-scrollbar{
    display:none !important;
  }

  body.mirae15-page .top-page > .subnav .subnav-links a{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
    min-width:max-content !important;
    height:52px !important;
    padding:0 20px !important;
    color:rgba(255,255,255,.68) !important;
    font-size:14px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    letter-spacing:-.03em !important;
    border-right:1px solid rgba(255,255,255,.08) !important;
    border-bottom:0 !important;
    background:transparent !important;
  }

  body.mirae15-page .top-page > .subnav .subnav-links a.active{
    color:#ffffff !important;
    background:#1565c0 !important;
    border-bottom:3px solid #29b6f6 !important;
  }
}

@media (max-width:640px){
  body.mirae15-page .top-page > .subnav{
    top:72px !important;
  }
}

@media (max-width:480px){
  body.mirae15-page .top-page > .subnav{
    top:68px !important;
  }
  body.mirae15-page .top-page > .subnav .subnav-links a{
    height:50px !important;
    padding:0 16px !important;
    font-size:13.5px !important;
  }
}

/* ===== 모바일 햄버거: 현재 보고 있는 페이지 표시 ===== */
@media (max-width:1024px){
  .gnb .nav-sublink.is-current-mobile{
    color:#1565c0 !important;
    font-weight:800 !important;
    background:#f0f7ff !important;
    padding-left:12px !important;
    border-left:3px solid #1565c0 !important;
  }

  .gnb .nav-trigger.is-current-mobile{
    color:#1565c0 !important;
    font-weight:800 !important;
  }

  .gnb .nav-item.is-open-mobile > .nav-trigger{
    color:#071e3d !important;
    font-weight:700 !important;
  }
}


/* global-mobile-square-boxes-final */
/* ===== 모바일 전용: 둥근 테두리 박스 전체 각진 테두리 통일 =====
   PC는 건드리지 않고, 모바일/태블릿에서 카드·박스·패널·표·탭·팝업·퀵메뉴 박스류만 각지게 정리합니다. */
@media (max-width:1024px){
  .card,
  .box,
  .panel,
  .wrap,
  .item,
  .section-card,
  .content-card,
  .info-card,
  .notice-card,
  .feature-card,
  .point-card,
  .target-card,
  .doctor-card,
  .staff-card,
  .profile-card,
  .schedule-card,
  .program-card,
  .treat-card,
  .center-card,
  .shortcut-card,
  .quick-menu-inner,
  .qm-cert-box,
  .qm-btn-item,
  .mirae-mobile-dock,
  .mobile-dock,
  .mobile-dock a,
  .m8-mobile-card,
  .m8-contact-box,
  .m8-time-row,
  .info-box,
  .law-box,
  .goal-box,
  .prep-wrap,
  .prep-card,
  .main-card,
  .dept-card,
  .notice-section,
  .cta-bar,
  .rhero,
  .rcard,
  .rtl-body,
  .table-lead,
  .ltable-wrap,
  .doc-table,
  .compare-table,
  .modal,
  .modal-content,
  .popup,
  .popup-content,
  .rehab-modal,
  .rehab-modal-dialog,
  .cv-modal,
  .nav-panel,
  .gnb .nav-panel,
  .nav-sublink,
  .subnav,
  .subtab,
  .tabs,
  .tab-menu,
  .dialysis-tabs,
  .dialysis-tab,
  .center-hero,
  .modality-hero,
  .dr-profile-card,
  .dr-photo,
  .dr-name-plate,
  [class*="card"],
  [class*="box"],
  [class*="panel"],
  [class*="modal"],
  [class*="popup"],
  [class*="table-wrap"],
  [class*="tabs"],
  [class*="tab-"],
  [class*="-tab"],
  [class*="hero"],
  [class*="visual"],
  [class*="banner"],
  [class*="summary"],
  [class*="notice"],
  [class*="quick"],
  [class*="dock"],
  table,
  thead,
  tbody,
  tr,
  th,
  td{
    border-radius:0 !important;
  }

  /* 이미지가 카드 모서리를 따라 둥글게 보이는 경우도 모바일에서는 각지게 */
  .card img,
  .box img,
  .panel img,
  .item img,
  .doctor-card img,
  .staff-card img,
  .profile-card img,
  .program-card img,
  .treat-card img,
  .center-card img,
  .shortcut-card img,
  .rehab-modal img,
  .modal img,
  .popup img,
  [class*="card"] img,
  [class*="box"] img,
  [class*="panel"] img{
    border-radius:0 !important;
  }

  /* 원형 아이콘·점·번호 장식은 박스가 아니므로 형태 유지 */
  .icon,
  .point-icon,
  .feature-icon,
  .shortcut-icon,
  .step-icon,
  .rcard-icon,
  .doctor-icon,
  .qm-btn-icon,
  .badge-dot,
  .dot,
  .rdiv-dot,
  .divider-dot,
  .circle,
  .rtl-circle,
  .step-num2,
  .floor-no,
  [class*="icon"],
  [class*="dot"],
  [class*="circle"]{
    border-radius:999px;
  }
}


/* ===== specific-pages-square-border-fallback ===== */
.mirae2-page .nav-panel,
.mirae3-page .nav-panel,
.mirae5-page .nav-panel,
.mirae6-page .nav-panel,
.mirae8-page .nav-panel{
  border-radius:0 !important;
}
/* 모바일 하단 퀵메뉴 PNG 아이콘 적용 */
@media (max-width:1024px){
  .mirae-mobile-dock-icon img{
    width:26px !important;
    height:26px !important;
    object-fit:contain !important;
    display:block !important;
    margin:0 auto !important;
  }
}


/* ===== mobile quickmenu PNG icon clean override =====
   PNG 아이콘 주변에 기존 SVG용 배경/테두리 박스가 보이지 않도록 아이콘 래퍼만 초기화 */
@media (max-width:1024px){
  .mirae-mobile-dock .mirae-mobile-dock-icon{
    width:auto !important;
    height:auto !important;
    min-width:0 !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 auto 6px !important;
    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  .mirae-mobile-dock .mirae-mobile-dock-icon img{
    width:26px !important;
    height:26px !important;
    object-fit:contain !important;
    display:block !important;
    margin:0 auto !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
  }
}
