.elementor-938 .elementor-element.elementor-element-df4e874{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS for html, class: .elementor-element-6f65b88 */:root {
  --sideW-full: 120px;
  --sideW-shrunk: 60px;
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --main-navy: #184c7d;
}

/* --- サイドバー・基本構造 --- */
.side-nav-dynamic {
  background: #fff;
  position: fixed;
  top: 0; left: 0; z-index: 10000;
  transition: width var(--transition);
  display: flex;
  box-shadow: 2px 0 10px rgba(0,0,0,0.05);
}

@media (min-width: 901px) {
  .side-nav-dynamic { width: var(--sideW-full); height: 100vh; flex-direction: column; }
  .side-nav-dynamic.is-shrunk { width: var(--sideW-shrunk); }
  .side-nav-inner { display: flex; flex-direction: column; align-items: center; padding: 40px 0; gap: 40px; height: 100%; }
}

@media (max-width: 900px) {
  .side-nav-dynamic { width: 100% !important; height: 60px; border-bottom: 1px solid #eee; }
  .side-nav-inner { display: flex; align-items: center; padding: 0 15px; height: 100%; width: 100%; position: relative; }
}

/* --- ロゴ制御 --- */
.logo-pc { display: block; width: 45px; height: auto; transition: width var(--transition); }
.logo-sp { display: none; }
.side-nav-dynamic.is-shrunk .logo-pc { width: 32px; }

@media (max-width: 900px) {
  .logo-pc { display: none !important; }
  .logo-sp { display: block !important; height: 34px !important; width: auto !important; }
  .side-logo { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
}

/* --- ハンバーガーボタン --- */
.hamburger { 
  border: 0; background: transparent; cursor: pointer; position: relative; 
  width: 46px; height: 20px; z-index: 10001; padding: 0;
  transition: width var(--transition);
}
@media (min-width: 901px) { .side-nav-dynamic.is-shrunk .hamburger { width: 30px; } }
@media (max-width: 900px) { .hamburger { width: 32px; } }

.hamburger span { position: absolute; left: 0; width: 100%; height: 1px; background: #333; transition: var(--transition); }
.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.hamburger span:nth-child(3) { bottom: 0; }
.hamburger.active span:nth-child(1) { top: 50%; transform: rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { bottom: 50%; transform: rotate(-45deg); }

/* --- オーバーレイメニュー本体 --- */
.aoyama-full-overlay { 
  position: fixed; top: 0; left: 0; width: 100%; height: 100vh; 
  z-index: 9999; visibility: hidden; opacity: 0; transition: 0.4s; 
}
.aoyama-full-overlay.open { visibility: visible; opacity: 1; }
.overlay-bg { position: absolute; width: 100%; height: 100%; background: rgba(255,255,255,0.98); }

.menu-scroll-container { 
  position: relative; height: 100%; overflow-y: auto; 
  padding-left: var(--sideW-full);
}
@media (max-width: 900px) { .menu-scroll-container { padding-left: 0; padding-top: 60px; } }

/* PCで上下中央にする設定 */
.menu-inner-flex { 
  display: flex; flex-direction: column; align-items: center; justify-content: center; 
  min-height: 100vh; padding: 60px 40px; box-sizing: border-box;
}

.sitemap-grid { display: flex; gap: 80px; width: 100%; max-width: 1140px; }
.sitemap-column { list-style: none; padding: 0; margin: 0; flex: 1; }

.column-label { font-size: 11px; color: #999; letter-spacing: 0.2em; margin-bottom: 15px; border-bottom: 1px solid #eee; padding-bottom: 5px; }
.sitemap-column li a { color: #333 !important; text-decoration: none; font-size: 16px; font-weight: 700; display: block; padding: 15px 0; border-bottom: 1px solid #f9f9f9; }
.sitemap-column li.current a { color: var(--main-navy) !important; }
.sub-item { padding-left: 1.2em; }
.sub-item a { font-size: 14px !important; font-weight: 500 !important; opacity: 0.8; }

/* --- [修正] お問い合わせボタンの文字色を強制的に白へ --- */
.cta-item { border: none !important; margin-top: 30px; width: 100%; }
.aoyama-full-overlay .cta-item a,
.aoyama-full-overlay .cta-item a:link,
.aoyama-full-overlay .cta-item a:visited { 
  background: var(--main-navy) !important; 
  color: #ffffff !important; /* 白を強制 */
  text-align: center; 
  border-radius: 4px; 
  padding: 18px !important; 
  font-weight: 700 !important;
  text-decoration: none !important;
  display: block;
}
.aoyama-full-overlay .cta-item a:hover { background: #b33e54 !important; color: #fff !important; }

/* フッター情報 */
.menu-footer { margin-top: 50px; text-align: center; width: 100%; border-top: 1px solid #eee; padding-top: 30px; }
.school-name { font-weight: 800; color: var(--main-navy); font-size: 20px; margin: 0 0 10px; }
.school-addr { font-size: 14px; color: #666; line-height: 1.8; }

@media (max-width: 768px) {
  .sitemap-grid { flex-direction: column; gap: 30px; }
  .menu-inner-flex { justify-content: flex-start; padding-top: 40px; }
}
body.no-scroll { overflow: hidden; }/* End custom CSS */