/* SAEBA NAVIGATION v1.0.0 — self-contained responsive menu for standalone/header plugin modes */
body.saeba-nav-standalone :is(header.siteHeader,header.site-header,.siteHeader,.site-header,.headerTop,.vk-mobile-nav-menu-btn,.vk-mobile-nav) { display:none!important; }
.sn-nav,.sn-nav *,.sn-nav *::before,.sn-nav *::after,.sn-standalone-header,.sn-standalone-header * { box-sizing:border-box; }
.sn-nav { --sn-red:var(--saeba-red,#e1002e); --sn-ink:var(--saeba-ink,#231815); position:relative; display:flex; align-items:center; justify-content:flex-end; width:100%; font-family:'Jost',Arial,sans-serif; }
.sn-nav__desktop { width:auto; }
.sn-nav__list { list-style:none!important; display:flex; flex-wrap:nowrap; gap:7px; align-items:center; padding:0!important; margin:0!important; }
.sn-nav__list > li { display:block; position:relative; flex:none; list-style:none!important; padding:0!important; margin:0!important; }
.sn-nav__list > li::before { display:none!important; }
.sn-nav__desktop .sn-nav__list > li > a { display:flex; align-items:center; justify-content:center; padding:13px clamp(12px,1.3vw,21px); min-height:43px; color:var(--sn-ink)!important; background:#fff; border:1px solid #ddd6d2; border-radius:0; text-decoration:none!important; font:700 12px/1.2 'Jost',Arial,sans-serif; letter-spacing:.08em; white-space:nowrap; transition:background .2s,color .2s,border-color .2s,transform .2s; }
.sn-nav__desktop .sn-nav__list > li > a:hover,.sn-nav__desktop .sn-nav__list > li.current-menu-item > a:not(.sn-nav__ignore),.sn-nav__desktop .sn-nav__list > li.current_page_item > a:not(.sn-nav__ignore) { background:#f7f3f1; border-color:var(--sn-ink); transform:translateY(-2px); }
.sn-nav__desktop .sn-nav__list > li.nav-btn-red > a { background:var(--sn-red); color:#fff!important; border-color:var(--sn-red); }
.sn-nav__desktop .sn-nav__list > li.nav-btn-red > a:hover,.sn-nav__desktop .sn-nav__list > li.nav-btn-red.current-menu-item > a { background:#b90028; border-color:#b90028; color:#fff!important; }
.sn-nav__desktop .sn-nav__list > li > a::before,.sn-nav__desktop .sn-nav__list > li > a::after { display:none!important; }
/* Desktop dropdown for a second level of WordPress menus. */
.sn-nav__desktop .sn-nav__list li > ul { position:absolute; left:0; top:100%; z-index:50; list-style:none; padding:8px!important; margin:0!important; width:max-content; min-width:195px; max-width:320px; background:#fff; border:1px solid #e3ded9; box-shadow:0 16px 36px rgba(35,24,21,.13); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s,transform .2s,visibility .2s; }
.sn-nav__desktop .sn-nav__list li:hover > ul,.sn-nav__desktop .sn-nav__list li:focus-within > ul { opacity:1; visibility:visible; transform:none; }
.sn-nav__desktop .sn-nav__list li > ul li { list-style:none; padding:0; margin:0; }
.sn-nav__desktop .sn-nav__list li > ul a { display:block; color:var(--sn-ink)!important; text-decoration:none!important; padding:12px 14px; font:700 12px/1.5 'Noto Sans JP',sans-serif; border-bottom:1px solid #eee; }
.sn-nav__desktop .sn-nav__list li > ul a:hover { color:var(--sn-red)!important; }
.sn-nav__toggle { display:none; align-items:center; justify-content:center; flex-direction:column; gap:6px; width:64px; height:56px; padding:0; color:var(--sn-ink); cursor:pointer; border:1px solid #e2dbd6; background:#fff; border-radius:0; }
.sn-nav__toggle-icon { position:relative; display:block; height:17px; width:25px; }
.sn-nav__toggle-icon span { position:absolute; display:block; height:2px; width:25px; left:0; background:currentColor; transform-origin:center; transition:transform .25s,top .25s; }
.sn-nav__toggle-icon span:nth-child(1) { top:4px; }
.sn-nav__toggle-icon span:nth-child(2) { top:13px; }
.sn-nav__toggle-text { display:block; font:700 9px/1 'Jost',sans-serif; letter-spacing:.11em; }
.sn-nav__scrim { position:fixed; inset:0; z-index:8; background:rgba(25,15,13,.65); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s,visibility .3s; }
.sn-nav__panel { position:fixed; top:0; right:0; height:100dvh; width:min(420px,88vw); z-index:9; overflow-y:auto; overscroll-behavior:contain; padding:111px clamp(21px,5vw,37px) 40px; background:#fff; box-shadow:-15px 0 40px rgba(0,0,0,.1); clip-path:inset(0 0 0 100%); visibility:hidden; pointer-events:none; transition:clip-path .35s cubic-bezier(.2,.8,.25,1),visibility .35s; }
.sn-nav__panel-kicker { margin:0 0 30px!important; color:#796e68; letter-spacing:.2em; font:700 10px/1.5 'Jost',sans-serif; }
.sn-nav__mobile .sn-nav__list { display:block; width:100%; margin:0!important; padding:0!important; }
.sn-nav__mobile .sn-nav__list > li { border-bottom:1px solid #e8e1dc; }
.sn-nav__mobile .sn-nav__list > li > a { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:72px; padding:15px 2px; color:var(--sn-ink)!important; text-decoration:none!important; font:800 clamp(20px,5vw,29px)/1.1 'Jost','Noto Sans JP',sans-serif; letter-spacing:.03em; }
.sn-nav__mobile .sn-nav__list > li > a::after { content:'↗'; font-size:22px; font-weight:400; color:var(--sn-red); }
.sn-nav__mobile .sn-nav__list > li.nav-btn-red > a { margin-top:20px; margin-bottom:12px; padding:17px 18px; min-height:72px; background:var(--sn-red); color:#fff!important; border:1px solid var(--sn-red); }
.sn-nav__mobile .sn-nav__list > li.nav-btn-red > a::after { color:#fff; }
.sn-nav__mobile .sn-nav__list li > ul { list-style:none; margin:0 0 15px!important; padding:0 0 0 14px!important; border-left:2px solid var(--sn-red); }
.sn-nav__mobile .sn-nav__list li > ul li { margin:0; padding:0; list-style:none; }
.sn-nav__mobile .sn-nav__list li > ul a { display:block; padding:9px 6px; color:var(--sn-ink)!important; text-decoration:none; font:600 13px/1.6 'Noto Sans JP',sans-serif; }
.sn-nav__panel-bottom { margin:42px 0 0!important; padding-top:19px; border-top:1px solid #e6e0dc; color:#b9aca5; font:700 10px/1.5 'Jost',sans-serif; letter-spacing:.24em; }
.sn-nav.is-open .sn-nav__scrim { opacity:1; visibility:visible; pointer-events:auto; }
.sn-nav.is-open .sn-nav__panel { clip-path:inset(0 0 0 0); visibility:visible; pointer-events:auto; }
.sn-nav.is-open .sn-nav__toggle { position:relative; z-index:12; background:var(--sn-ink); color:#fff; border-color:var(--sn-ink); }
.sn-nav.is-open .sn-nav__toggle-icon span:nth-child(1) { top:9px; transform:rotate(45deg); }
.sn-nav.is-open .sn-nav__toggle-icon span:nth-child(2) { top:9px; transform:rotate(-45deg); }
body.saeba-nav-open { overflow:hidden!important; }
.sn-nav a:focus-visible,.sn-nav button:focus-visible { outline:2px solid var(--sn-red); outline-offset:3px; }
/* Standalone mode if Header & Footer is absent/disabled */
.sn-standalone-header { position:sticky; top:0; z-index:10050; width:100%; border-top:4px solid var(--saeba-red,#e1002e); border-bottom:1px solid #e8e3de; background:#fff; }
.admin-bar .sn-standalone-header { top:32px; }
.sn-standalone-header__inner { min-height:82px; display:flex; align-items:center; gap:20px; justify-content:space-between; padding:0 clamp(18px,4vw,70px); }
.sn-standalone-header__brand { display:flex; gap:11px; align-items:center; text-decoration:none!important; color:var(--saeba-ink,#231815)!important; }
.sn-standalone-header__bar { display:block; width:13px; height:30px; transform:skew(-12deg); background:linear-gradient(180deg,var(--saeba-red,#e1002e) 0 50%,var(--saeba-ink,#231815) 50%); }
.sn-standalone-header__brand span:last-child { display:flex; flex-direction:column; }
.sn-standalone-header__brand strong { font:800 28px/.95 'Jost',sans-serif; letter-spacing:.06em; }
.sn-standalone-header__brand small { font:700 9px/1.4 'Jost',sans-serif; letter-spacing:.24em; padding-top:5px; }
.sn-standalone-header .sn-nav { flex:1 1 auto; }
@media(max-width:1020px) {
  .sn-nav__desktop { display:none; }
  .sn-nav__toggle { display:flex; position:relative; z-index:12; }
}
@media(min-width:1021px) { .sn-nav__panel,.sn-nav__scrim,.sn-nav__toggle { display:none!important; } }
@media(max-width:767px) {
  .admin-bar .sn-standalone-header { top:46px; }
  .sn-standalone-header__inner { min-height:68px; padding-inline:18px; }
  .sn-standalone-header__brand strong { font-size:23px; }
  .sn-standalone-header__brand small { font-size:8px; }
  .sn-nav__toggle { height:46px; width:50px; gap:5px; }
  .sn-nav__toggle-text { font-size:8px; }
  .sn-nav__panel { padding-top:100px; }
}
@media(prefers-reduced-motion:reduce) {
  .sn-nav__desktop a,.sn-nav__panel,.sn-nav__scrim,.sn-nav__toggle-icon span { transition:none!important; }
}
