/*
Theme Name: Astra Child (Private Portal)
Theme URI: https://wpastra.com/
Description: 子テーマ（社内ポータル専用）
Author: Acuity Inc.
Template: astra
Version: 1.0.0
*/

/* ↓ここからカスタムCSSを書けます（任意） */

/* ページ右上のアカウントメニュー関係 */
.portal-account-menu {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
  font-size: 0.9rem;
}

.account-dropdown {
  position: relative;
  display: inline-block;
}

.account-btn {
  background-color: #005bbb;
  color: #fff;
  padding: 8px 14px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9rem;
}

.account-btn:hover {
  background-color: #004999;
}

.account-dropdown-content {
  display: none;
  position: absolute;
  right: 0;
  background-color: #fff;
  min-width: 160px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  border-radius: 8px;
  overflow: hidden;
}

.account-dropdown-content a {
  display: block;
  padding: 10px 14px;
  text-decoration: none;
  color: #333;
}

.account-dropdown-content a:hover {
  background-color: #f1f1f1;
}

.account-dropdown:hover .account-dropdown-content {
  display: block;
}

.portal-account-menu {
  position: fixed;
  top: 18px;
  right: 32px;
}

/* WP User Managerフォームをポータルデザインに統一 */
.wpum-login-form,
.wpum-password-recovery-form,
.wpum-account-form {
  max-width: 400px;
  margin: 80px auto;
  background: #fff;
  padding: 30px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.wpum-login-form input,
.wpum-password-recovery-form input,
.wpum-account-form input {
  width: 100%;
  padding: 10px;
  margin-bottom: 15px;
  border: 1px solid #ccc;
  border-radius: 6px;
}

.wpum-login-form button,
.wpum-password-recovery-form button,
.wpum-account-form button {
  width: 100%;
  background-color: #005bbb;
  color: #fff;
  border: none;
  padding: 10px;
  border-radius: 6px;
  cursor: pointer;
}

.wpum-login-form button:hover,
.wpum-password-recovery-form button:hover,
.wpum-account-form button:hover {
  background-color: #004999;
}

/* ロゴ位置を少し下に */
img.custom-logo { margin-top: 6px !important; }

/* ヘッダー高さとロゴ位置の修正 */
header.site-header { height: 70px !important; }
.ast-primary-header-bar, .ast-primary-header-bar .site-primary-header-wrap { height: 70px !important; min-height: 70px !important; overflow: hidden !important; }
.ast-site-identity { padding: 0 !important; display: flex !important; align-items: center !important; }

/* WP管理バーを非表示 */
#wpadminbar { display: none !important; }
html { margin-top: 0 !important; }

/* ヘッダーコンテナの左余白を削除（ロゴ位置修正） */
header.site-header .ast-container { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 16px !important; }

/* 左ペイン上部の余白を縮小 */
.bl-menu { padding-top: 8px !important; }
.bl-menu .widget, .bl-menu .widget_block { padding-top: 0 !important; margin-top: 0 !important; }
.portal-menu { padding-top: 8px !important; }
.portal-menu ul li:first-child { margin-top: 0 !important; }

/* フッター */
#page { min-height: 100vh !important; display: flex !important; flex-direction: column !important; }
#page > footer { margin-top: auto !important; }
.site-footer { padding: 0 !important; }
.site-below-footer-wrap { padding: 0 20px !important; min-height: 0 !important; }
.ast-builder-footer-grid-columns { min-height: 0 !important; grid-template-rows: auto !important; }
.site-below-footer-wrap * { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.portal-pw-desc { text-align: left !important; }

/* ログインページ: チェックボックスとラベルを横並び */
.fieldset-remember label { display: flex !important; align-items: center !important; gap: 8px !important; cursor: pointer; }
.fieldset-remember .field { display: inline-flex !important; align-items: center !important; flex-shrink: 0; }

/* ログインページ */
.page-id-221 #primary {
  min-height: calc(100vh - 70px - 24px);
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}
.page-id-221 .entry-content {
  max-width: 420px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 20px !important;
  box-sizing: border-box !important;
}
.page-id-221 .entry-content input[type=text],
.page-id-221 .entry-content input[type=email],
.page-id-221 .entry-content input[type=password] {
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.page-id-221 .entry-title { text-align: center !important; }
.page-id-221 .wpum-password-recovery-form,
.page-id-221 form,
.page-id-221 .wpum-form-wrap {
  max-width: 420px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

.page-id-220 #primary {
  min-height: calc(100vh - 70px - 24px);
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}
.page-id-220 .entry-content {
  max-width: 520px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 20px !important;
  box-sizing: border-box !important;
}
.page-id-220 .entry-title { text-align: center !important; }
.fieldset-remember input[type=checkbox] { vertical-align: middle !important; margin: 0 !important; }

/* ==============================
   サイドバー開閉（全ページ共通）
   ============================== */
.bl-fullbleed{
  position:fixed; left:0; right:0; bottom:0; top:64px;
  display:flex; flex-direction:row; background:#fff; z-index:1;
}
html.sidebar-pre-closed .bl-fullbleed .bl-menu {
  transition: none !important;
  width: 52px !important;
  flex: 0 0 52px !important;
}
.bl-fullbleed .bl-menu{
  flex:0 0 200px; width:200px;
  overflow:hidden; border-right:1px solid #e5e7eb;
  padding:6px 0 10px; box-sizing:border-box;
  transition:width .25s ease, flex-basis .25s ease;
  display:flex; flex-direction:column;
}
.bl-fullbleed .bl-main{ flex:1 1 0; min-width:0; overflow:auto; position:relative; }
.bl-fullbleed .bl-main iframe{ width:100%; height:100%; border:0; display:block; }

/* サイドバー トグルボタン */
.bl-sidebar-toggle{
  display:flex; align-items:center; justify-content:flex-end;
  background:none !important; border:none; cursor:pointer;
  color:#475569 !important; padding:4px 6px 4px 0; margin-bottom:2px;
  align-self:flex-end; flex-shrink:0;
  border-radius:4px;
}
.bl-sidebar-toggle:hover{ background:rgba(0,0,0,0.06) !important; }
.bl-sidebar-toggle:focus,.bl-sidebar-toggle:active{ background:none !important; outline:none; }
.bl-sidebar-toggle .icon-open{ display:none; }
.bl-sidebar-toggle .icon-close{ display:block; }

/* ナビ */
.bl-menu .widget{ flex:1; overflow-y:auto; overflow-x:hidden; }
.bl-menu ul{ list-style:none; margin:0; padding:0; }
.bl-menu ul li a{
  display:flex; align-items:center; gap:8px;
  padding:7px 8px; text-decoration:none;
  color:#475569; font-size:13px; font-weight:500;
  border-radius:6px; margin:0 4px;
  transition:background .15s, color .15s; white-space:nowrap;
}
.bl-menu ul li a:hover{ background:#f1f5f9; color:#1e293b; }
.bl-menu ul li a .dashicons{ font-size:18px; width:20px; height:20px; flex-shrink:0; }
.bl-menu ul li a .nav-text{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }

/* オーバーレイ（モバイル用、デスクトップでは非表示） */
.bl-sidebar-overlay{ display:none; }

/* PC: 折り畳み状態 */
@media(min-width:641px){
  .bl-fullbleed.sidebar-closed .bl-menu{
    flex:0 0 52px; width:52px; overflow:visible;
  }
  .bl-fullbleed.sidebar-closed .bl-menu .widget{ overflow:visible !important; }
  .bl-fullbleed.sidebar-closed .bl-sidebar-toggle{
    width:100%; justify-content:center; align-self:auto;
    padding-top:6px; padding-bottom:6px; margin-bottom:2px;
  }
  .bl-fullbleed.sidebar-closed .bl-sidebar-toggle .icon-open{ display:block; }
  .bl-fullbleed.sidebar-closed .bl-sidebar-toggle .icon-close{ display:none; }
  /* 全子孫の水平余白ゼロ（ツールチップは除外） */
  .bl-fullbleed.sidebar-closed .bl-menu *:not(.nav-text){
    padding-left:0 !important; padding-right:0 !important;
    margin-left:0 !important; margin-right:0 !important;
    box-sizing:border-box !important;
  }
  .bl-fullbleed.sidebar-closed .bl-menu ul li a{
    flex-direction:column; align-items:center; justify-content:center;
    width:100%; padding-top:6px; padding-bottom:6px;
  }
  .bl-fullbleed.sidebar-closed .bl-menu ul li a .dashicons{ font-size:20px; width:22px; height:22px; }
  /* dashiconsなしのliを非表示 */
  .bl-fullbleed.sidebar-closed .bl-menu ul li:not(:has(.dashicons)){ display:none; }
  /* heading・widget title非表示 */
  .bl-fullbleed.sidebar-closed .bl-menu h1,
  .bl-fullbleed.sidebar-closed .bl-menu h2,
  .bl-fullbleed.sidebar-closed .bl-menu h3,
  .bl-fullbleed.sidebar-closed .bl-menu h4,
  .bl-fullbleed.sidebar-closed .bl-menu p,
  .bl-fullbleed.sidebar-closed .bl-menu .widget-title,
  .bl-fullbleed.sidebar-closed .bl-menu .widget-title-wrapper,
  .bl-fullbleed.sidebar-closed .bl-menu .wp-block-heading{ display:none !important; }
    .bl-fullbleed.sidebar-closed .bl-menu .acuity-back-office-banner { display: none !important; }
  /* dashicons以外の子要素・疑似要素非表示（外部リンクアイコン等） */
  .bl-fullbleed.sidebar-closed .bl-menu ul li a > *:not(.dashicons):not(.nav-text){ display:none !important; }
  .bl-fullbleed.sidebar-closed .bl-menu ul li a::after,
  .bl-fullbleed.sidebar-closed .bl-menu ul li a::before{ display:none !important; content:none !important; }
  /* ツールチップ */
  .bl-fullbleed.sidebar-closed .bl-menu ul li{ position:relative; }
  .bl-fullbleed.sidebar-closed .bl-menu ul li a .nav-text{
    display:block !important;
    position:absolute; left:calc(100% + 10px); top:50%; transform:translateY(-50%);
    background:#2563eb; color:#fff;
    font-size:12px; font-weight:500; white-space:nowrap;
    padding:4px 10px !important; border-radius:5px;
    opacity:0; pointer-events:none;
    transition:opacity .15s; z-index:99999;
  }
  .bl-fullbleed.sidebar-closed .bl-menu ul li a:hover .nav-text{ opacity:1; }
}

.bl-mobile-hamburger{ display:none; }

/* モバイル: サイドバー非表示 */
@media(max-width:640px){
/* モバイル: サイドバーはデフォルト完全非表示 */
  .bl-fullbleed .bl-menu{
    display:none !important;
  }
  /* ドロワー展開時: bl-fullbleed内にabsoluteで重ねる */
  .bl-fullbleed.mobile-menu-open .bl-menu{
    display:flex !important;
    position:absolute !important;
    left:0 !important; top:0 !important; bottom:0 !important;
    width:260px !important;
    flex:none !important;
    flex-direction:column !important;
    overflow-y:auto !important;
    z-index:100;
    background:#fff !important;
    box-shadow:6px 0 24px rgba(0,0,0,.3);
  }
  /* 閉じるボタンはモバイルでも表示 */
  .bl-sidebar-toggle{
    display:flex !important;
  }
  /* バックドロップ: bl-fullbleed内にabsoluteで */
  .bl-mobile-backdrop{
    display:none;
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.72);
    z-index:99;
  }
  .bl-fullbleed.mobile-menu-open .bl-mobile-backdrop{
    display:block;
  }
  /* メインコンテンツは全幅 */
  .bl-fullbleed .bl-main{ width:100% !important; }
  /* ハンバーガーボタン: bl-mainの左上に浮かせる */
  .bl-mobile-hamburger{
    display:flex !important;
    position:absolute;
    top:8px;
    left:8px;
    z-index:98;
    align-items:center;
    background:#124098;
    color:#fff;
    border:none;
    border-radius:6px;
    padding:6px 8px;
    font-size:0;
    line-height:1;
    cursor:pointer;
    box-shadow:0 2px 8px rgba(0,0,0,.25);
  }
  .bl-mobile-hamburger svg{ display:block; }
}

/* サイドバー閉じるボタン ツールチップ（開いている状態） */
.bl-sidebar-toggle{ position:relative; }
.bl-sidebar-toggle::after{
  content:'サイドバーを閉じる';
  position:absolute;
  left:calc(100% + 8px);
  top:50%;
  transform:translateY(-50%);
  background:#2563eb;
  color:#fff;
  font-size:12px;
  font-weight:500;
  white-space:nowrap;
  padding:4px 10px;
  border-radius:5px;
  opacity:0;
  pointer-events:none;
  transition:opacity .15s;
  z-index:99999;
}
.bl-fullbleed:not(.sidebar-closed) .bl-sidebar-toggle:hover::after{ opacity:1; }

/* サイドバー nav ─ セパレータ・セクションラベル・外部リンクアイコン */
.portal-sep{ border:none; border-top:1px solid #e2e8f0; margin:8px 8px; }
.portal-section-label{ font-size:11px; font-weight:600; color:#94a3b8; text-transform:uppercase; letter-spacing:.05em; padding:4px 12px 2px; margin:0; }
.bl-menu ul li a .dashicons{ color:#2563eb; margin-top:1px; }
.ext{ display:inline-flex; align-items:center; margin-left:2px; opacity:.6; vertical-align:middle; }
