/* ===========================================
   共通サイトヘッダー / フッター
   LPテンプレートの内側に組み込む。各LPのスコープ
   付きスタイルとは独立して動く。
   =========================================== */

/* ---------- HEADER ---------- */
.mp-site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:#fff;
  border-bottom:1px solid #E2E8F0;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
.mp-site-header *,
.mp-site-header *::before,
.mp-site-header *::after{box-sizing:border-box}
.mp-site-header a{color:inherit;text-decoration:none}

.mp-site-header__inner{
  max-width:1180px;
  margin:0 auto;
  padding:14px 32px;
  display:flex;
  align-items:center;
  gap:24px;
}

.mp-site-header__brand{
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
}
.mp-site-header__brand img{
  height:34px;
  width:auto;
  display:block;
}

.mp-site-header__nav{
  flex:1;
  display:flex;
  justify-content:center;
}
.mp-site-header__nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap:32px;
  align-items:center;
}
.mp-site-header__nav a{
  font-size:14px;
  font-weight:600;
  color:#1E3A8A;
  letter-spacing:.04em;
  padding:6px 2px;
  position:relative;
  transition:color .18s ease;
}
.mp-site-header__nav a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-2px;
  height:2px;
  background:#14B8A6;
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .25s ease;
}
.mp-site-header__nav a:hover{color:#0F1B3D}
.mp-site-header__nav a:hover::after{transform:scaleX(1)}

.mp-site-header__cta{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#F97316;
  color:#fff !important;
  font-weight:700;
  font-size:13.5px;
  letter-spacing:.04em;
  padding:10px 22px;
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 4px 12px -4px rgba(249,115,22,.45);
  transition:transform .18s ease, filter .18s ease;
  flex-shrink:0;
}
.mp-site-header__cta:hover{transform:translateY(-1px);filter:brightness(1.05)}

/* ---------- HEADER mobile toggle ---------- */
.mp-site-header__toggle{
  display:none;
  background:transparent;
  border:0;
  padding:8px;
  cursor:pointer;
  flex-shrink:0;
}
.mp-site-header__toggle span{
  display:block;
  width:22px;
  height:2px;
  background:#1E3A8A;
  margin:5px 0;
  transition:transform .25s ease, opacity .25s ease;
}
.mp-site-header[data-mp-open] .mp-site-header__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mp-site-header[data-mp-open] .mp-site-header__toggle span:nth-child(2){opacity:0}
.mp-site-header[data-mp-open] .mp-site-header__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- HEADER drawer ---------- */
.mp-site-header__drawer{
  display:none;
  background:#fff;
  border-top:1px solid #E2E8F0;
  padding:8px 24px 20px;
}
.mp-site-header__drawer ul{
  list-style:none;
  margin:0;
  padding:0;
}
.mp-site-header__drawer li a{
  display:block;
  padding:14px 4px;
  font-size:14px;
  font-weight:600;
  color:#1E3A8A;
  border-bottom:1px solid #F1F5F9;
}
.mp-site-header__drawer li a:hover{color:#F97316}
.mp-site-header__cta--drawer{
  display:flex;
  justify-content:center;
  margin-top:16px;
}

@media (max-width:899px){
  .mp-site-header__inner{padding:12px 18px;gap:12px}
  .mp-site-header__nav{display:none}
  .mp-site-header__cta{display:none}
  .mp-site-header__toggle{display:block;margin-left:auto}
  .mp-site-header[data-mp-open] .mp-site-header__drawer{display:block}
}

/* ---------- FOOTER ---------- */
.mp-site-footer{
  background:#0E2363;
  color:rgba(255,255,255,.78);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  padding:56px 24px 0;
  margin-top:0;
}
.mp-site-footer *,
.mp-site-footer *::before,
.mp-site-footer *::after{box-sizing:border-box}
.mp-site-footer a{color:inherit;text-decoration:none}

.mp-site-footer__inner{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:48px;
  padding-bottom:40px;
}
.mp-site-footer__brand img{
  height:34px;
  width:auto;
  background:#fff;
  padding:6px 10px;
  border-radius:6px;
  margin-bottom:18px;
}
.mp-site-footer__brand p{
  margin:0 0 8px;
  font-size:13px;
  line-height:1.85;
  color:rgba(255,255,255,.82);
}
.mp-site-footer__partner{
  font-size:11.5px !important;
  color:rgba(255,255,255,.55) !important;
  letter-spacing:.04em;
  margin-top:14px !important;
}

.mp-site-footer__nav h4{
  font-size:13px;
  font-weight:700;
  color:#fff;
  letter-spacing:.08em;
  margin:0 0 16px;
}
.mp-site-footer__nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.mp-site-footer__nav a{
  font-size:13px;
  color:rgba(255,255,255,.78);
  transition:color .18s ease;
}
.mp-site-footer__nav a:hover{color:#14B8A6}

.mp-site-footer__bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:18px 24px;
  text-align:center;
}
.mp-site-footer__bottom small{
  font-size:11.5px;
  color:rgba(255,255,255,.55);
  letter-spacing:.04em;
}

@media (max-width:899px){
  .mp-site-footer{padding:40px 18px 0}
  .mp-site-footer__inner{grid-template-columns:1fr;gap:32px;padding-bottom:32px}
}

/* ---------- 各LPの古い独自フッターを抑止 (新フッターと重複表示を防ぐ) ---------- */
.medpartner-lp > .footer,
.itaku-lp .site-footer,
.pd-lp > .footer,
.kenko-keiei-lp > .site-footer{display:none !important}

/* ===========================================
   SWELL のヘッダー/フッターを全ページで非表示
   =========================================== */
#header,
.l-header,
.l-header__inner,
.l-fixHeader,
.p-spMenu,
.p-fixBtnsArea,
.c-pageTitle,
.p-pageTitle,
#footer,
.l-footer,
.l-footer__widgetArea,
.l-footer__bottom,
.l-footer__copyright{display:none !important}

/* SWELL のコンテンツ周辺余白を整える（共通ヘッダーが上に乗るため） */
.l-container{padding-top:0 !important}
.l-mainContent{margin-top:0 !important}

/* 管理バー表示時に sticky ヘッダーを下にずらす */
body.admin-bar .mp-site-header{top:32px}
@media screen and (max-width:782px){
  body.admin-bar .mp-site-header{top:46px}
}
