/* コンデル？ v1.6.0 service stability */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

/* ドロップダウンは、文字拡大・低い画面でも必ず全項目へ到達できる */
.info-menu[open] nav{
  z-index:80;
  max-height:calc(100dvh - 82px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}
.info-menu nav a,
.info-menu nav span{
  flex:none;
  white-space:normal;
  overflow-wrap:anywhere;
}
.info-menu nav::before{
  flex:none;
}

/* 自動広告用。旧ダミー広告枠は実広告ではないため表示しない */
.ad-slot{display:none!important}

/* PCでの検索候補は画面内に収める */
@media(min-width:1000px){
  .search-results{
    max-height:min(52dvh,520px);
    overscroll-behavior:contain;
  }
}

/* モバイル/文字拡大時のメニューをコンパクトかつスクロール可能に */
@media(max-width:700px){
  .info-menu[open] nav{
    top:calc(54px + env(safe-area-inset-top,0px) + 6px);
    bottom:auto;
    max-height:calc(100dvh - 72px - env(safe-area-inset-bottom,0px));
    padding:8px;
  }
  .info-menu nav::before{
    font-size:13px!important;
    line-height:1.35!important;
    padding:7px 9px!important;
  }
  .info-menu nav a{
    min-height:38px!important;
    padding:8px 9px!important;
    font-size:13px!important;
    line-height:1.35!important;
  }
  .info-menu nav span{
    padding:8px 9px!important;
    font-size:10px!important;
    line-height:1.45!important;
  }
}

/* 高さの低いPC/拡大表示でもメニューが切れない */
@media(max-height:650px){
  .info-menu[open] nav{
    max-height:calc(100dvh - 70px);
  }
  .info-menu nav a{
    min-height:34px!important;
    padding-block:6px!important;
  }
}

/* 法務ページは map UI の overflow:hidden を継承しない */
body.legal-page{
  height:auto!important;
  min-height:100vh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  background:#0a0d12;
}
body.legal-page .page{
  height:auto!important;
  min-height:100vh;
  overflow:visible!important;
  padding-bottom:max(72px,calc(40px + env(safe-area-inset-bottom,0px)));
}
