/* 授業利用・紹介セクション専用。既存レイアウトへの影響を限定する。 */
      .guide-card-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 10px 18px;
        border: 1px solid currentColor;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.7);
        color: inherit;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.25;
      }

      .guide-card-link:hover {
        background: #fff;
        transform: translateY(-1px);
      }

      .teacher-guide {
        background: #f3f0e9;
      }

      .teacher-guide .section-header {
        max-width: 880px;
      }

      .teacher-guide-note {
        max-width: 880px;
        margin: -10px 0 30px;
        padding: 15px 18px;
        border-left: 4px solid var(--amber);
        border-radius: 0 12px 12px 0;
        background: rgba(255, 255, 255, 0.72);
        color: var(--text-muted);
        font-size: 14px;
      }

      .guide-game-list {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
        align-items: start;
      }

      .guide-game-card {
        min-width: 0;
        padding: 24px;
        border: 1px solid var(--line);
        border-top: 6px solid var(--guide-accent, var(--violet));
        border-radius: var(--radius-md);
        background: var(--panel);
        box-shadow: var(--shadow-soft);
        scroll-margin-top: 88px;
      }

      .guide-game-card[data-guide-game="ccp"] {
        --guide-accent: var(--teal);
        --guide-soft: #e6f6f2;
      }

      .guide-game-card[data-guide-game="titration"] {
        --guide-accent: var(--violet);
        --guide-soft: #ece9ff;
      }

      .guide-game-card[data-guide-game="periodic"] {
        --guide-accent: var(--amber);
        --guide-soft: #fff1d5;
      }

      .guide-game-card h3 {
        margin: 8px 0 14px;
        font-size: 22px;
        line-height: 1.35;
      }

      .guide-label {
        display: inline-flex;
        margin: 0;
        padding: 5px 10px;
        border-radius: 999px;
        background: var(--guide-soft);
        color: var(--text);
        font-size: 12px;
        font-weight: 800;
      }

      .guide-facts {
        display: grid;
        gap: 6px;
        margin: 0 0 18px;
        padding: 0;
        color: var(--text-muted);
        font-size: 14px;
        list-style: none;
      }

      .guide-facts strong {
        color: var(--text);
      }

      .guide-lesson,
      .guide-intro-block {
        margin: 0 0 18px;
        padding: 16px;
        border-radius: 14px;
        background: var(--guide-soft);
      }

      .guide-lesson h4,
      .guide-intro-block h4,
      .student-url-block h4 {
        margin: 0 0 7px;
        font-size: 14px;
      }

      .guide-lesson p,
      .guide-intro-block p {
        margin: 0;
        color: var(--text-muted);
        font-size: 14px;
      }

      .student-url-block {
        margin-bottom: 18px;
      }

      .student-url {
        display: block;
        width: 100%;
        margin: 0 0 9px;
        padding: 11px 12px;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: #fff;
        color: var(--text);
        font: 13px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
        overflow-wrap: anywhere;
        user-select: text;
      }

      .teacher-guide button,
      .teacher-guide .asset-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 40px;
        padding: 9px 13px;
        border: 1px solid var(--guide-accent, var(--violet));
        border-radius: 999px;
        background: transparent;
        color: var(--text);
        font: inherit;
        font-size: 13px;
        font-weight: 700;
        cursor: pointer;
      }

      .teacher-guide button:hover,
      .teacher-guide .asset-link:hover {
        background: var(--guide-soft, #fff);
      }

      .student-url:focus-visible,
      .teacher-guide summary:focus-visible {
        outline: 2px solid var(--violet);
        outline-offset: 3px;
      }

      .copy-status {
        display: block;
        min-height: 1.45em;
        margin-top: 6px;
        color: var(--teal-deep);
        font-size: 12px;
      }

      .guide-assets {
        margin-top: 18px;
        border-top: 1px solid var(--line);
        padding-top: 14px;
      }

      .guide-assets summary {
        color: var(--text);
        font-size: 14px;
        font-weight: 800;
        cursor: pointer;
      }

      .asset-grid {
        display: grid;
        gap: 18px;
        margin-top: 16px;
      }

      .asset-card {
        margin: 0;
      }

      .asset-card img {
        display: block;
        width: 100%;
        height: auto;
        margin-bottom: 9px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: #fff;
      }

      .asset-card figcaption {
        display: grid;
        gap: 7px;
        color: var(--text-muted);
        font-size: 12px;
      }

      .asset-links {
        display: flex;
        flex-wrap: wrap;
        gap: 7px;
      }

      .asset-links .asset-link {
        min-height: 34px;
        padding: 7px 11px;
        font-size: 12px;
      }

      .material-terms {
        max-width: 880px;
        margin-top: 30px;
        padding: 24px;
        border: 1px solid var(--line);
        border-radius: var(--radius-md);
        background: var(--panel);
      }

      .material-terms h3 {
        margin: 0 0 12px;
        font-size: 19px;
      }

      .material-terms p {
        margin: 0 0 12px;
        color: var(--text-muted);
        font-size: 14px;
      }

      .material-terms p:last-child {
        margin-bottom: 0;
      }

      .source-example {
        display: inline-block;
        padding: 3px 7px;
        border-radius: 6px;
        background: #eeeae1;
        color: var(--text);
      }

      .source-example a {
        color: var(--violet-deep);
        text-decoration: underline;
        overflow-wrap: anywhere;
      }

      @media (max-width: 980px) {
        .guide-game-list {
          grid-template-columns: minmax(0, 1fr);
        }

        .guide-game-card {
          max-width: 760px;
        }

        .asset-grid {
          grid-template-columns: repeat(3, minmax(0, 1fr));
        }
      }

      @media (max-width: 720px) {
        .guide-card-link {
          width: 100%;
        }

        .guide-game-card,
        .material-terms {
          padding: 20px;
        }

        .asset-grid {
          grid-template-columns: minmax(0, 1fr);
        }

        .student-url {
          font-size: 12px;
        }
      }
