/* ============================================================
   稜線 Ryosen 共通パーツ（ヘッダー右側・スマホメニュー・サイト内検索・フッター）
   全ページ共通。ここを直せば全ページに反映される。
   ============================================================ */

/* ---- ヘッダー右側：検索・メニューボタン ---- */
.site-header .header-right{ display:flex; align-items:center; gap:10px; flex-shrink:0; margin-left:12px; }
/* 旧メニューボタン・旧ドロワー・旧検索マークは使わない */
#navToggle, #navDrawer, .search-btn{ display:none !important; }

.rs-icon-btn{
  width:40px; height:40px; padding:0; border-radius:50%;
  display:inline-grid; place-items:center; cursor:pointer;
  background:#fff; color:#10263D; border:1px solid #D9DEE5;
  transition:border-color .2s ease, background .2s ease, transform .2s ease;
}
.rs-icon-btn:hover{ border-color:#10263D; transform:translateY(-1px); }
.rs-icon-btn:focus-visible{ outline:3px solid #86C2FE; outline-offset:2px; }
.rs-icon-btn svg{ width:17px; height:17px; }

/* メニューが1行に収まらない幅では、メニューボタンに切り替える */
@media (max-width:1024px){
  .site-header .main-nav{ display:none !important; }
}
@media (max-width:1240px){ .site-header .main-nav a{ padding-left:9px !important; padding-right:9px !important; } }
@media (max-width:1100px){ .site-header .main-nav a{ padding-left:6px !important; padding-right:6px !important; font-size:12.5px !important; } }

/* ---- スマホメニュー（TOPのホームベース型メニューを全ページ共通に） ---- */
.rs-menu-btn{
  display:none; position:relative; z-index:131;
  width:42px; height:42px; border:none; background:transparent; cursor:pointer;
  align-items:center; justify-content:center; padding:0;
}
.rs-menu-btn:focus-visible{ outline:3px solid #86C2FE; outline-offset:2px; border-radius:8px; }
/* 3つのホームベースが重なるアイコン */
.rs-menu-btn span{
  position:absolute; left:11px; width:20px; height:6px; background:#1A2B3C;
  clip-path:polygon(0% 0%, 100% 0%, 100% 48%, 50% 100%, 0% 48%);
  transition:transform .42s cubic-bezier(.3,1.3,.4,1), opacity .22s, background .3s;
}
.rs-menu-btn span:nth-child(1){ transform:translateY(-8px); }
.rs-menu-btn span:nth-child(3){ transform:translateY(8px); }
.rs-menu-btn:hover span:nth-child(1){ transform:translateY(-10px); }
.rs-menu-btn:hover span:nth-child(3){ transform:translateY(10px); }
.rs-menu-btn:hover span:nth-child(2){ background:#EC4B6F; }
/* 開いたら1枚の大きなホームベースに */
body.rs-menu-open .rs-menu-btn span:nth-child(1){ transform:translateY(0) scale(.4); opacity:0; }
body.rs-menu-open .rs-menu-btn span:nth-child(2){ transform:scaleY(2.6) scaleX(1.05); background:#EC4B6F; }
body.rs-menu-open .rs-menu-btn span:nth-child(3){ transform:translateY(0) scale(.4); opacity:0; }

.rs-drawer{
  position:fixed; inset:0; z-index:125; background:#fff;
  padding:96px 28px 40px; overflow-y:auto;
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .32s ease, transform .38s cubic-bezier(.25,1,.4,1), visibility .32s;
}
body.rs-menu-open{ overflow:hidden; }
body.rs-menu-open .rs-drawer{ opacity:1; visibility:visible; transform:translateY(0); }
body.rs-menu-open .site-header{ z-index:130 !important; background:transparent !important; border-bottom-color:transparent !important; box-shadow:none !important; }
.rs-drawer a{
  display:flex; align-items:center; justify-content:space-between; text-decoration:none;
  font-family:"Noto Serif JP", serif; font-weight:600; font-size:19px; color:#1A2B3C;
  padding:17px 4px; border-bottom:1px solid rgba(26,43,60,.1);
  opacity:0; transform:translateY(14px);
  transition:opacity .4s ease, transform .45s cubic-bezier(.25,1,.4,1);
}
body.rs-menu-open .rs-drawer a{ opacity:1; transform:translateY(0); }
.rs-drawer a:nth-child(1){ transition-delay:.06s; } .rs-drawer a:nth-child(2){ transition-delay:.10s; }
.rs-drawer a:nth-child(3){ transition-delay:.14s; } .rs-drawer a:nth-child(4){ transition-delay:.18s; }
.rs-drawer a:nth-child(5){ transition-delay:.22s; } .rs-drawer a:nth-child(6){ transition-delay:.26s; }
.rs-drawer a:nth-child(7){ transition-delay:.30s; } .rs-drawer a:nth-child(8){ transition-delay:.34s; }
.rs-drawer a .en{ font-family:"DM Mono", monospace; font-size:10px; letter-spacing:.12em; color:rgba(26,43,60,.45); font-weight:400; margin-left:auto; }
.rs-drawer a .no{ font-family:"Oswald", sans-serif; font-weight:700; font-size:20px; margin-right:14px; min-width:32px; opacity:.85; }
.rs-drawer a.nav-sub{ margin-top:10px; border-top:1px solid rgba(26,43,60,.1); }
.rs-drawer a:nth-child(1) .no, .rs-drawer a:nth-child(5) .no{ color:#EC4B6F; }
.rs-drawer a:nth-child(2) .no, .rs-drawer a:nth-child(6) .no{ color:#D89A15; }
.rs-drawer a:nth-child(3) .no{ color:#2BB3A3; }
.rs-drawer a:nth-child(4) .no{ color:#3B7DD8; }
.rs-drawer a:nth-child(7) .no{ color:#1A2B3C; }
@media (max-width:1024px){ .rs-menu-btn{ display:flex; } }
@media (min-width:1025px){ .rs-drawer{ display:none; } }

/* ---- サイト内検索 ---- */
.rs-search{
  position:fixed; inset:0; z-index:400; display:none;
  background:rgba(14,23,38,.55); padding:72px 16px 16px;
  font-family:"Noto Sans JP", sans-serif;
}
body.rs-search-open .rs-search{ display:block; }
body.rs-search-open{ overflow:hidden; }
.rs-search-panel{
  max-width:720px; margin:0 auto; background:#fff; border-radius:18px;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.5); overflow:hidden;
  display:flex; flex-direction:column; max-height:calc(100vh - 100px);
}
.rs-search-bar{ display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid #EEF0F3; }
.rs-search-bar svg{ flex-shrink:0; color:#6B7686; }
.rs-search-input{
  flex:1; min-width:0; border:0; outline:none; background:transparent;
  font-size:17px; color:#10263D; padding:8px 0; font-family:inherit;
}
.rs-search-close{ flex-shrink:0; }
.rs-search-hint{ padding:14px 18px; font-size:13px; color:#6B7686; }
.rs-search-hint .kw{ display:inline-block; margin:6px 6px 0 0; padding:4px 12px; border-radius:999px; background:#F3F5F8; color:#10263D; cursor:pointer; border:0; font:inherit; font-size:13px; }
.rs-search-results{ list-style:none; margin:0; padding:6px 0; overflow-y:auto; }
.rs-search-results a{ display:block; padding:12px 18px; text-decoration:none; color:#10263D; }
.rs-search-results a:hover, .rs-search-results a:focus-visible{ background:#F6F7F9; outline:none; }
.rs-search-results .c{ font-family:"DM Mono", monospace; font-size:11px; letter-spacing:.1em; color:#6B7686; }
.rs-search-results .t{ display:block; margin-top:2px; font-size:15px; font-weight:700; line-height:1.5; }
.rs-search-results .d{ display:block; margin-top:3px; font-size:13px; line-height:1.6; color:#4B5563;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.rs-search-results mark{ background:#FFF0B3; color:inherit; padding:0 1px; }
.rs-search-empty{ padding:18px; font-size:14px; color:#4B5563; }

/* ---- フッター（シンプル版） ---- */
.rs-footer{
  background:#10263D; color:rgba(255,255,255,.72);
  font-family:"Noto Sans JP", sans-serif; font-size:13px; line-height:1.8;
  padding:40px 0 28px; margin-top:0; position:relative; z-index:1;
}
.rs-footer-in{
  max-width:1240px; margin:0 auto; padding:0 32px;
  display:flex; justify-content:space-between; align-items:flex-start; gap:28px; flex-wrap:wrap;
}
.rs-footer-logo{ display:inline-flex; flex-direction:column; color:#fff; text-decoration:none; line-height:1.2; }
.rs-footer-logo .jp{ font-size:19px; font-weight:700; letter-spacing:.02em; }
.rs-footer-logo .jp small{ font-size:12px; font-weight:500; letter-spacing:.04em; }
.rs-footer-logo .en{ font-family:"DM Mono", monospace; font-size:9px; letter-spacing:.12em; color:rgba(255,255,255,.55); margin-top:4px; }
.rs-footer-msg{ margin:10px 0 0; color:rgba(255,255,255,.8); }
.rs-footer-links{ display:flex; flex-wrap:wrap; gap:8px 22px; max-width:640px; justify-content:flex-end; }
.rs-footer-links a{ color:rgba(255,255,255,.85); text-decoration:none; font-size:13px; padding:4px 0; }
.rs-footer-links a:hover{ color:#fff; text-decoration:underline; text-underline-offset:4px; }
.rs-footer-copy{
  max-width:1240px; margin:26px auto 0; padding:16px 32px 0;
  border-top:1px solid rgba(255,255,255,.12);
  font-family:"DM Mono", monospace; font-size:11px; letter-spacing:.06em; color:rgba(255,255,255,.5);
}
@media (max-width:720px){
  .rs-footer{ padding:32px 0 24px; }
  .rs-footer-in, .rs-footer-copy{ padding-left:20px; padding-right:20px; }
  .rs-footer-links{ justify-content:flex-start; gap:6px 18px; }
}

/* ---- ロゴ表記を全ページで揃える ---- */
.site-header .logo{ display:flex; align-items:center; text-decoration:none; color:#10263D; flex-shrink:0; }
.site-header .logo-text{ line-height:1.2; }
.site-header .logo-text .jp{ font-family:"Noto Sans JP", sans-serif; font-size:19px; font-weight:700; letter-spacing:.02em; color:#10263D; }
.site-header .logo-text .jp .sm{ font-size:11px; font-weight:400; }
.site-header .logo-text .en{ font-family:"DM Mono", monospace; font-size:9px; letter-spacing:.12em; color:rgba(16,38,61,.5); margin-top:2px; white-space:nowrap; }

/* 検索欄のブラウザ標準の×ボタンは使わない */
.rs-search-input::-webkit-search-cancel-button{ -webkit-appearance:none; display:none; }

