/* companies — 生成元: 実装/companies.dc.html */
a { color: #E24369; }
    a:hover { color: #C63056; }

    /* ---- companies page local styles ---- */
    .co-section { max-width: 1040px; margin: 0 auto; padding: 0 20px; }
    .co-h2 {
      margin: 0; font-size: 28px; font-weight: 700; letter-spacing: 0.14em;
      display: inline-flex; align-items: center; gap: 14px;
    }
    .co-h3 {
      margin: 0 0 16px; padding-left: 16px; font-size: 17px; font-weight: 700;
      letter-spacing: 0.08em; color: #E24369; border-left: 4px solid #F3C3CE; line-height: 1.6;
    }
    /* 名簿グリッド */
    .co-grid { display: grid; gap: 12px 28px; }
    .co-grid--2 { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .co-grid--3 { grid-template-columns: repeat(3, 1fr); }
    /* 賛助会員のカード3列 */
    .co-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: start; }
    .co-item {
      display: block; position: relative; padding: 9px 0 9px 20px;
      font-size: 14.5px; line-height: 1.7; letter-spacing: 0.02em;
      color: #524740; text-decoration: none;
      border-bottom: 1px solid #F0E8DC; word-break: break-word;
    }
    .co-item::before {
      content: ""; position: absolute; left: 3px; top: 1.15em;
      width: 7px; height: 7px; border-radius: 50%; background: #F0B9C6;
    }
    a.co-item { transition: color 0.2s ease, border-color 0.2s ease; }
    a.co-item:hover { color: #E24369; border-color: #E24369; }
    a.co-item::before { background: #E24369; }
    .co-ext { margin-left: 6px; vertical-align: -1px; opacity: 0.55; }
    /* 賛助会員カード */
    .co-card {
      background: #FBF5EF; border: 1px solid #F0E8DC; border-radius: 16px;
      padding: 28px 26px 22px;
    }
    .co-card .co-item { border-bottom-color: #EADDCD; }
    /* スポンサー企業カード */
    .co-sponsor {
      display: flex; align-items: center; gap: 16px;
      background: #FFFFFF; border: 1px solid #F0E8DC; border-radius: 16px;
      padding: 30px 32px; box-shadow: 0 6px 22px rgba(82,71,64,0.05);
      text-decoration: none; color: #524740;
      font-size: 18px; font-weight: 700; letter-spacing: 0.04em; line-height: 1.6;
      transition: border-color 0.2s ease, color 0.2s ease;
    }
    .co-sponsor:hover { color: #E24369; border-color: #E24369; }
    .co-sponsor__mark { flex: none; }

    /* ===== SP (≤768px) — PC版(769px以上)は一切変更しない ===== */
    @media (max-width: 768px) {
      .pg-lead { padding: 46px 20px 8px !important; }
      .pg-lead h2 { font-size: 22px !important; }
      .pg-lead p { font-size: 14.5px !important; line-height: 2 !important; }
      .co-section { padding: 0 20px !important; }
      .co-h2 { font-size: 21px !important; letter-spacing: 0.1em !important; gap: 10px !important; }
      .co-h3 { font-size: 15.5px !important; padding-left: 12px !important; }
      .co-grid--3 { grid-template-columns: 1fr !important; gap: 0 !important; }
      .co-grid--2, .co-cards { grid-template-columns: 1fr !important; gap: 16px !important; }
      .co-item { font-size: 14px !important; padding: 10px 0 10px 18px !important; }
      .co-card { padding: 20px 18px 16px !important; border-radius: 14px !important; }
      .co-sponsor { font-size: 15.5px !important; padding: 20px 18px !important; gap: 12px !important; }
    }
