/* Extracted from client-provided demo; global demo body rule removed. */



  /* ===== ここから同意ポップアップ用CSS ===== */
  :root {
    --cc-bg: #ffffff;
    --cc-text: #1f2328;
    --cc-sub: #57606a;
    --cc-border: #d0d7de;
    --cc-primary: #1a73e8;
    --cc-primary-text: #ffffff;
    --cc-overlay: rgba(0,0,0,.45);
  }
  .cc-hidden { display: none !important; }

  /* 下部バナー */
  #cc-banner {
    position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9998;
    max-width: 960px; margin: 0 auto;
    background: var(--cc-bg); color: var(--cc-text);
    border: 1px solid var(--cc-border); border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0,0,0,.15);
    padding: 20px 24px;
    display: flex; gap: 20px; align-items: center; flex-wrap: wrap;
    animation: cc-up .35s ease-out;
  }
  @keyframes cc-up { from { transform: translateY(20px); opacity: 0; } to { transform: none; opacity: 1; } }
  #cc-banner .cc-text { flex: 1 1 420px; font-size: 14px; line-height: 1.7; }
  #cc-banner .cc-text strong { display: block; font-size: 15px; margin-bottom: 4px; }
  #cc-banner a { color: var(--cc-primary); }
  .cc-actions { display: flex; gap: 8px; flex-wrap: wrap; }

  .cc-btn {
    font: inherit; font-size: 14px; cursor: pointer;
    padding: 10px 18px; border-radius: 8px;
    border: 1px solid var(--cc-border); background: #fff; color: var(--cc-text);
    transition: background .15s, opacity .15s;
  }
  .cc-btn:hover { background: #f3f4f6; }
  .cc-btn-primary { background: var(--cc-primary); color: var(--cc-primary-text); border-color: var(--cc-primary); }
  .cc-btn-primary:hover { background: var(--cc-primary); opacity: .9; }
  .cc-btn:focus-visible { outline: 3px solid #8ab4f8; outline-offset: 2px; }

  /* 詳細設定モーダル */
  #cc-modal {
    position: fixed; inset: 0; z-index: 9999;
    background: var(--cc-overlay);
    display: flex; align-items: center; justify-content: center; padding: 16px;
  }
  .cc-dialog {
    background: var(--cc-bg); color: var(--cc-text);
    width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto;
    border-radius: 12px; padding: 24px;
    box-shadow: 0 12px 40px rgba(0,0,0,.25);
  }
  .cc-dialog h2 { margin: 0 0 8px; font-size: 18px; }
  .cc-dialog > p { margin: 0 0 16px; font-size: 13px; color: var(--cc-sub); line-height: 1.7; }
  .cc-dialog a { color: var(--cc-primary); }
  .cc-cat { border: 1px solid var(--cc-border); border-radius: 8px; padding: 14px 16px; margin-bottom: 10px; }
  .cc-cat-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .cc-cat-head span { font-weight: 600; font-size: 14px; }
  .cc-cat p { margin: 6px 0 0; font-size: 12.5px; color: var(--cc-sub); line-height: 1.6; }
  .cc-always { font-size: 12px; color: var(--cc-primary); font-weight: 600; white-space: nowrap; }

  /* トグルスイッチ */
  .cc-switch { position: relative; width: 44px; height: 24px; flex-shrink: 0; }
  .cc-switch input { opacity: 0; width: 0; height: 0; }
  .cc-slider { position: absolute; inset: 0; background: #c4c9cf; border-radius: 24px; cursor: pointer; transition: .2s; }
  .cc-slider::before { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .2s; }
  .cc-switch input:checked + .cc-slider { background: var(--cc-primary); }
  .cc-switch input:checked + .cc-slider::before { transform: translateX(20px); }
  .cc-switch input:focus-visible + .cc-slider { outline: 3px solid #8ab4f8; outline-offset: 2px; }
  .cc-dialog .cc-actions { justify-content: flex-end; margin-top: 16px; }

  /* フッター（企業ロゴ） */
  .cc-footer {
    flex-basis: 100%;
    text-align: center;
    border-top: 1px solid var(--cc-border);
    padding-top: 14px;
  }
  .cc-dialog .cc-footer { margin-top: 20px; }
  .cc-footer img { height: 36px; width: auto; display: inline-block; vertical-align: middle; }

  @media (max-width: 600px) {
    #cc-banner { padding: 16px; }
    #cc-banner .cc-actions, .cc-dialog .cc-actions { width: 100%; }
    .cc-btn { flex: 1 1 auto; }
  }
  /* ===== ここまで ===== */


body.cc-modal-open { overflow: hidden; }
