/* =========================================================
   共通ヘッダー / メガメニュー / ドロワー
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:100;
  background:#fff;
  border-bottom:1px solid rgba(10,30,60,.08);
  box-shadow:0 1px 0 rgba(10,30,60,.02);
}
.site-header .header-in{
  position:relative;
  max-width:1180px;margin:0 auto;padding:0 28px;height:66px;
  display:flex;align-items:center;justify-content:flex-end;gap:20px;
}
.site-header .logo-link{
  display:inline-flex;align-items:center;text-decoration:none;
  line-height:0;flex:0 0 auto;position:relative;z-index:2;
  margin-right:auto;
}
.site-header .logo-link::after{display:none !important;}
.site-header .logo-img{
  height:28px;width:auto;display:block;
}

/* デスクトップナビ */
.site-nav{
  display:flex;align-items:center;
}
.site-nav-panel{display:contents;}
.site-nav-panel-head{display:none !important;}
.nav-list{
  list-style:none;margin:0;padding:0;
  display:flex;align-items:center;gap:4px 6px;
}
.nav-item{position:relative;}
.nav-link,
.nav-trigger{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 12px;
  border:0;background:transparent;cursor:pointer;
  font:inherit;font-size:13px;font-weight:600;letter-spacing:.02em;
  color:var(--ink,#1B2635);text-decoration:none;
  transition:color .15s;
}
.nav-link:hover,
.nav-trigger:hover,
.nav-item:hover > .nav-trigger{color:var(--gold-deep,#8F6E27);}
.nav-caret{
  width:6px;height:6px;margin-top:-2px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);opacity:.7;
}
.nav-item--cta{margin-left:8px;}
.nav-cta.btn{
  padding:9px 20px;font-size:12.5px;
  color:var(--navy,#0A1E3C) !important;
  background:var(--gold,#B8913D);
  border-radius:2px;font-weight:700;letter-spacing:.06em;
  display:inline-block;text-decoration:none;
}
.nav-cta.btn:hover{opacity:.9;color:var(--navy,#0A1E3C) !important;}

/* メガメニュー共通（中身） */
.nav-mega{
  padding:10px;
  background:#fff;
  border:1px solid rgba(10,30,60,.1);
  box-shadow:0 18px 40px -18px rgba(10,30,60,.35);
  z-index:120;
}
.nav-mega-link{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 12px;text-decoration:none;color:inherit;
  transition:background .15s;
}
.nav-mega-link:hover{background:rgba(201,162,84,.1);}
.nav-mega-no{
  flex:0 0 auto;min-width:2.4em;
  font-family:"Cormorant Garamond","Zen Old Mincho",serif;
  font-size:13px;font-weight:700;letter-spacing:.08em;
  color:var(--gold-deep,#8F6E27);line-height:1.4;padding-top:1px;
}
.nav-mega-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.nav-mega-name{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;
  font-size:13.5px;font-weight:700;color:var(--navy,#0A1E3C);line-height:1.35;
}
.nav-mega-desc{font-size:11.5px;color:#6B7C93;line-height:1.45;}
.nav-mega-link--brand{flex-direction:column;gap:8px;padding:14px 12px;}
.nav-svc-logo{height:12px;width:auto;display:block;}
.nav-badge{
  display:inline-flex;align-items:center;
  padding:2px 7px;border-radius:2px;
  font-size:10px;font-weight:800;letter-spacing:.06em;
  color:#fff;background:var(--gold-deep,#8F6E27);line-height:1.3;
}

/* メガメニュー位置（PCのみ：トリガー左端基準で見切れ防止） */
@media(min-width:961px){
  .nav-mega{
    position:absolute;top:calc(100% + 6px);left:0;right:auto;
    transform:translateY(6px);
    min-width:300px;max-width:min(380px,calc(100vw - 32px));
    width:max-content;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .18s ease,transform .18s ease,visibility .18s;
  }
  .nav-mega--services{min-width:340px;}
  .nav-mega--campaign{min-width:280px;}
  /* 右端の項目は右寄せして画面外へ出さない */
  .nav-item.has-sub:nth-last-child(-n+4) > .nav-mega{
    left:auto;right:0;
  }
  .nav-item.has-sub::after{
    content:"";position:absolute;left:0;right:0;top:100%;height:14px;
  }
  .nav-item:hover > .nav-mega,
  .nav-item:focus-within > .nav-mega{
    opacity:1;visibility:visible;pointer-events:auto;
    transform:translateY(0);
  }
}

/* ハンバーガー */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:42px;height:42px;padding:10px;margin-right:-6px;
  border:0;background:transparent;cursor:pointer;position:relative;z-index:2;
}
.nav-toggle span{
  display:block;width:22px;height:2px;border-radius:1px;
  background:var(--navy,#0A1E3C);transition:transform .25s ease,opacity .2s ease;
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-backdrop{
  position:fixed;inset:0;z-index:1000;
  background:rgba(6,18,36,.45);
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.nav-backdrop.is-visible{opacity:1;pointer-events:auto;}
body.nav-open{overflow:hidden;}

/* スマホ：右ドロワー（body直下に配置） */
@media(max-width:960px){
  .site-header .header-in{padding:0 16px;height:58px;}
  .site-header .logo-img{height:24px;}
  .nav-toggle{display:flex;}

  .site-nav{
    position:fixed;top:0;right:0;bottom:0;
    width:min(360px,88vw);z-index:1001;
    margin:0;padding:0;
    pointer-events:none;
    visibility:hidden;
  }
  body.nav-open .site-nav{
    pointer-events:auto;
    visibility:visible;
  }
  .site-nav-panel{
    display:flex;flex-direction:column;
    width:100%;height:100%;
    background:#fff;
    transform:translateX(100%);
    transition:transform .28s cubic-bezier(.2,.7,.2,1);
    box-shadow:-16px 0 40px -20px rgba(10,30,60,.45);
    overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  body.nav-open .site-nav-panel{transform:translateX(0);}
  .site-nav-panel-head{
    display:flex !important;align-items:center;justify-content:space-between;
    flex:0 0 auto;
    padding:16px 18px;border-bottom:1px solid rgba(10,30,60,.08);
    position:sticky;top:0;background:#fff;z-index:1;
  }
  .site-nav-panel-title{
    font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--navy,#0A1E3C);
  }
  .site-nav-close{
    width:36px;height:36px;border:0;background:transparent;cursor:pointer;position:relative;
  }
  .site-nav-close span{
    position:absolute;left:8px;right:8px;top:50%;height:2px;background:var(--navy,#0A1E3C);
  }
  .site-nav-close span:first-child{transform:rotate(45deg);}
  .site-nav-close span:last-child{transform:rotate(-45deg);}
  .nav-list{
    flex-direction:column;align-items:stretch;gap:0;padding:8px 0 28px;
  }
  .nav-item{border-bottom:1px solid rgba(10,30,60,.06);}
  .nav-link,
  .nav-trigger{
    width:100%;justify-content:space-between;
    padding:16px 20px;font-size:15px;font-weight:700;
  }
  .nav-item--cta{
    margin:16px 20px 0;border-bottom:0;
  }
  .nav-cta.btn{display:block;text-align:center;padding:14px 20px;font-size:14px;}
  .nav-mega{
    position:static !important;
    left:auto !important;right:auto !important;top:auto !important;
    transform:none !important;
    min-width:0;max-width:none;width:auto;
    margin:0;padding:4px 12px 14px;
    border:0;box-shadow:none;
    background:rgba(247,249,252,.95);
    opacity:1 !important;visibility:visible !important;pointer-events:auto !important;
    display:none;
  }
  .nav-item.is-open > .nav-mega{display:block;}
  .nav-item.is-open > .nav-trigger .nav-caret{transform:rotate(225deg);margin-top:2px;}
  .nav-item.has-sub::after{display:none;}
  .nav-mega-link{padding:12px 8px;}
  .nav-mega-link--brand{padding:14px 8px;}
  .nav-svc-logo{height:11px;}
}

/* フッター等：暗い背景用の白ロゴ */
.logo-img--white{
  height:28px;width:auto;display:block;
  filter:none;
}
.footer-logo.logo-img--white,
footer .logo-img--white{height:26px;}

/* =========================================================
   共通フッター（旧LP 4カラム構成）
   ========================================================= */
footer.footer,
#main-footer.footer{
  background:#061224;
  color:#fff;
  padding:64px 24px 28px;
  font-size:14px;
  text-align:left;
}
.footer-inner{
  max-width:1120px;
  margin:0 auto 36px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:36px 28px;
}
.footer-column h4{
  margin:0 0 18px;
  font-family:"Zen Old Mincho","Noto Sans JP",serif;
  font-size:14px;font-weight:700;
  letter-spacing:.08em;
  color:var(--gold-lt,#C9A254);
}
.footer-column ul{
  list-style:none;margin:0;padding:0;
}
.footer-column li{margin:0 0 10px;}
.footer-column a{
  color:#8FA6C4;
  text-decoration:none;
  font-size:13px;line-height:1.5;
  transition:color .2s;
}
.footer-column a:hover{color:#fff;}
.footer-bottom{
  max-width:1120px;margin:0 auto;
  text-align:center;
  padding-top:24px;
  border-top:1px solid rgba(126,151,184,.22);
  color:#7E97B8;
  font-size:12.5px;
}
.footer-bottom p{margin:0;}
.footer-container--monitor .footer{
  position:relative;z-index:2;
}
@media(max-width:900px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:32px 24px;}
}
@media(max-width:520px){
  footer.footer,#main-footer.footer{padding:48px 18px 24px;}
  .footer-inner{grid-template-columns:1fr;gap:28px;}
}

/* テキストワードマークをロゴ画像に置き換えたときの共通 */
a.logo-link.wordmark,
.logo-link.wordmark{
  font-size:0;gap:0;color:transparent;
}
a.logo-link.wordmark::after,
.logo-link.wordmark::after{display:none !important;}

