/* ==========================================================================
   cp-ui.css — 全ページ共通の先進的ヘッダー / フッター
   ブランド: KeywordsRide medical（運営: CreativePocket株式会社）
   ========================================================================== */
:root{
  --cp-blue:#1a56db; --cp-blue-d:#1342b0; --cp-sky:#0ea5e9; --cp-teal:#0aa5b8;
  --cp-mint:#22c5a1; --cp-ink:#0b1b33; --cp-ink2:#0f2340; --cp-line:#e2e8f0;
  --cp-grad:linear-gradient(135deg,#1a56db 0%,#0ea5e9 100%);
  --cp-grad-mint:linear-gradient(135deg,#0ea5e9 0%,#22c5a1 100%);
}

/* ---- Cocoon 既定のヘッダー/フッター/シェアを全ページで無効化 ---------------- */
#header, #header-container, #header-wrapper, .header-container, #navi, #navi-in,
.header-in .logo, #header .logo-header{ display:none !important; }
#footer, .footer, #footer-in, .footer-content, .footer-top, .footer-bottom,
.credit, #footer .footer-in{ display:none !important; }
/* 固定ページ等に露出する Cocoon の著者情報・下部パンくず・記事メタを除去
   （運営者情報はフッター/記事内で別途提示。内部メールの露出も防止） */
.article-footer, .entry-footer, .author-info, .author-box, .date-tags,
.breadcrumb.pbp-main-bottom, .breadcrumb-page.pbp-main-bottom,
.footer-breadcrumbs, .pial-list{ display:none !important; }
/* SNSシェア・フォローボタンを全ページ削除 */
.sns-share, .sns-share-buttons, .sns-share-message, .sns-follow, .sns-follow-buttons,
.sns-follow-message, .sns-buttons, .share-buttons, .social-share, .sticky-share,
.sns-share-top, .sns-share-bottom, #sns-share, .snb-share, .follow-buttons{
  display:none !important;
}

/* ── 目次(TOC) ─────────────────────────────────────────────
   固定ページ・独立ページ（is_page）は目次を非表示。
   記事(投稿)は残すが「大見出し(H2)まで」に制限（H3以下のネストを隠す）。 */
body.page .toc, body.page #toc, body.page .toc-container{ display:none !important; }
.toc ol ol, .toc ul ul, .toc-content ol ol, .toc-content ul ul{ display:none !important; }

/* ==========================================================================
   共通ヘッダー  .cp-hdr
   ========================================================================== */
.cp-hdr{
  position:fixed; top:0; left:0; right:0; z-index:9500; height:66px;
  background:rgba(255,255,255,.92); backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid rgba(15,23,42,.07);
  font-family:'Hiragino Sans','Meiryo','Noto Sans JP',sans-serif;
  -webkit-font-smoothing:antialiased; transition:box-shadow .3s ease,background .3s ease;
}
.cp-hdr.is-scrolled{ box-shadow:0 4px 24px rgba(10,27,51,.09); background:rgba(255,255,255,.97); }
.cp-hdr__spacer{ height:66px; }
.cp-hdr__inner{
  max-width:1180px; margin:0 auto; height:100%; padding:0 24px;
  display:flex; align-items:center;
}
.cp-hdr__logo{ display:flex; align-items:center; flex-shrink:0; margin-right:34px; text-decoration:none; }
.cp-hdr__logo img{ height:34px; width:auto; display:block; }
.cp-hdr__nav{ display:flex; align-items:center; gap:26px; }
.cp-hdr__link{
  font-size:14.5px; font-weight:600; color:#334155; text-decoration:none;
  letter-spacing:.02em; position:relative; padding:6px 0; transition:color .2s ease;
}
.cp-hdr__link::after{
  content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:var(--cp-grad); border-radius:2px; transition:width .25s ease;
}
.cp-hdr__link:hover{ color:var(--cp-blue); }
.cp-hdr__link:hover::after{ width:100%; }
.cp-hdr__actions{ display:flex; align-items:center; gap:14px; margin-left:auto; }
.cp-hdr__contact{ font-size:14px; font-weight:600; color:#334155; text-decoration:none; }
.cp-hdr__contact:hover{ color:var(--cp-blue); }
.cp-hdr__btn{
  display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:700;
  color:#fff; text-decoration:none; padding:10px 18px; border-radius:999px;
  background:var(--cp-grad); box-shadow:0 6px 18px rgba(26,86,219,.28);
  transition:transform .18s ease,box-shadow .18s ease; white-space:nowrap;
}
.cp-hdr__btn:hover{ transform:translateY(-1px); box-shadow:0 10px 26px rgba(26,86,219,.36); color:#fff; }
.cp-hdr__btn svg{ width:14px; height:14px; }
.cp-hdr__toggle{
  display:none; margin-left:16px; width:34px; height:34px; border:none; background:transparent;
  flex-direction:column; justify-content:center; gap:5px; cursor:pointer; padding:0;
}
.cp-hdr__toggle span{ display:block; height:2px; width:24px; background:#0f172a; border-radius:2px; transition:.25s ease; }
.cp-hdr__toggle.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.cp-hdr__toggle.is-active span:nth-child(2){ opacity:0; }
.cp-hdr__toggle.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media(max-width:920px){
  .cp-hdr__toggle{ display:flex; }
  .cp-hdr__nav{
    position:fixed; top:66px; left:0; right:0; flex-direction:column; align-items:stretch;
    gap:0; background:#fff; border-bottom:1px solid var(--cp-line);
    box-shadow:0 16px 32px rgba(10,27,51,.12); padding:8px 0; display:none;
  }
  .cp-hdr__nav.is-open{ display:flex; }
  .cp-hdr__link{ padding:14px 24px; font-size:15px; }
  .cp-hdr__link::after{ display:none; }
  .cp-hdr__contact{ display:none; }
  .cp-hdr__btn{ padding:9px 14px; font-size:12.5px; }
}

/* ==========================================================================
   共通フッター  .cp-ftr
   ========================================================================== */
.cp-ftr{
  background:var(--cp-ink); color:#c7d2e0; margin-top:0;
  font-family:'Hiragino Sans','Meiryo','Noto Sans JP',sans-serif;
  -webkit-font-smoothing:antialiased; position:relative; overflow:hidden;
}
.cp-ftr::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--cp-grad-mint);
}
.cp-ftr__cta{
  border-bottom:1px solid rgba(255,255,255,.08);
}
.cp-ftr__cta-inner{
  max-width:1180px; margin:0 auto; padding:44px 24px; display:flex; align-items:center;
  justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cp-ftr__cta-txt h2{ color:#fff; font-size:22px; font-weight:800; margin:0 0 6px; letter-spacing:.01em; }
.cp-ftr__cta-txt p{ margin:0; font-size:14px; color:#9fb0c4; }
.cp-ftr__cta-btns{ display:flex; gap:12px; flex-wrap:wrap; }
.cp-ftr__cta-btn{
  display:inline-flex; align-items:center; gap:8px; font-size:14.5px; font-weight:700;
  text-decoration:none; padding:14px 24px; border-radius:999px; white-space:nowrap; transition:.18s ease;
}
.cp-ftr__cta-btn--primary{ background:var(--cp-grad); color:#fff; box-shadow:0 8px 24px rgba(14,165,233,.3); }
.cp-ftr__cta-btn--primary:hover{ transform:translateY(-2px); color:#fff; }
.cp-ftr__cta-btn--ghost{ background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.2); }
.cp-ftr__cta-btn--ghost:hover{ background:rgba(255,255,255,.16); color:#fff; }

.cp-ftr__main{
  max-width:1180px; margin:0 auto; padding:52px 24px 34px;
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px;
}
.cp-ftr__brand-logo{ height:36px; width:auto; display:block; margin-bottom:16px; filter:brightness(0) invert(1); opacity:.95; }
.cp-ftr__brand p{ font-size:13px; line-height:1.9; color:#9fb0c4; margin:0 0 16px; max-width:330px; }
.cp-ftr__brand-co{ font-size:12.5px; color:#7d8ea6; }
.cp-ftr__brand-co strong{ color:#c7d2e0; font-weight:700; }
.cp-ftr__col h3{
  font-size:12px; font-weight:700; color:#fff; letter-spacing:.08em; text-transform:uppercase;
  margin:0 0 16px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.1);
}
.cp-ftr__col ul{ list-style:none; margin:0; padding:0; }
.cp-ftr__col li{ margin-bottom:11px; }
.cp-ftr__col a{
  font-size:13.5px; color:#a9b8cc; text-decoration:none; transition:color .2s ease;
  display:inline-flex; align-items:center; gap:7px;
}
.cp-ftr__col a::before{
  content:""; width:5px; height:5px; border-radius:50%; background:var(--cp-mint); opacity:.55; transition:.2s ease;
}
.cp-ftr__col a:hover{ color:#fff; }
.cp-ftr__col a:hover::before{ opacity:1; transform:scale(1.4); }

.cp-ftr__bottom{ border-top:1px solid rgba(255,255,255,.08); }
.cp-ftr__bottom-inner{
  max-width:1180px; margin:0 auto; padding:20px 24px; display:flex; align-items:center;
  justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.cp-ftr__copy{ font-size:12px; color:#7d8ea6; margin:0; }
.cp-ftr__bottom-links{ display:flex; gap:18px; flex-wrap:wrap; }
.cp-ftr__bottom-links a{ font-size:12px; color:#9fb0c4; text-decoration:none; }
.cp-ftr__bottom-links a:hover{ color:#fff; }

@media(max-width:860px){
  .cp-ftr__main{ grid-template-columns:1fr 1fr; gap:32px 24px; padding:40px 24px 28px; }
  .cp-ftr__brand{ grid-column:1 / -1; }
  .cp-ftr__cta-inner{ flex-direction:column; align-items:flex-start; }
}
@media(max-width:520px){
  .cp-ftr__main{ grid-template-columns:1fr; }
  .cp-ftr__cta-btn{ width:100%; justify-content:center; }
}

/* ==========================================================================
   固定ページ（会社概要・特商法・プライバシー等）の共通スタイル  .cp-legal
   ========================================================================== */
.cp-legal{ max-width:860px; margin:0 auto; padding:8px 0 20px; line-height:1.95; color:#243044; }
.cp-legal .cp-legal__lead{ font-size:15px; color:#475569; margin:0 0 28px; }
.cp-legal h2{
  font-size:19px; font-weight:800; color:#0b1b33; margin:38px 0 14px; padding-left:14px;
  border-left:5px solid var(--cp-blue); line-height:1.5;
}
.cp-legal h3{ font-size:16px; font-weight:700; color:#0f2340; margin:24px 0 10px; }
.cp-legal p{ margin:0 0 14px; font-size:14.5px; }
.cp-legal ul{ margin:0 0 16px; padding-left:1.2em; }
.cp-legal li{ margin-bottom:8px; font-size:14.5px; }
.cp-legal table.cp-info{ width:100%; border-collapse:collapse; margin:8px 0 24px; font-size:14px; }
.cp-legal table.cp-info th,.cp-legal table.cp-info td{ text-align:left; vertical-align:top; padding:14px 16px; border-bottom:1px solid #e5eaf1; }
.cp-legal table.cp-info th{ width:32%; background:#f5f8fc; color:#0b1b33; font-weight:700; white-space:nowrap; }
.cp-legal .cp-todo{ color:#b45309; background:#fff7ed; padding:2px 8px; border-radius:6px; font-size:13px; font-weight:600; }
.cp-legal__services{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:8px 0 26px; }
.cp-legal__svc{ border:1px solid #e5eaf1; border-radius:14px; padding:20px; background:#fff; }
.cp-legal__svc h3{ margin:0 0 8px; font-size:15.5px; color:#0b1b33; }
.cp-legal__svc p{ margin:0; font-size:13.5px; color:#516072; line-height:1.85; }
@media(max-width:600px){ .cp-legal__services{ grid-template-columns:1fr; } .cp-legal table.cp-info th{ width:40%; } }
