      :root {
        --cream: #FCF9E8;
        --brown: #3C321D;
        --green: #007E43;
        --green-light: #E8F5EE;
        --gray: #6C6C6C;
        --shadow: rgba(60, 50, 29, 0.12);
      }

      *, *::before, *::after { box-sizing: border-box; }

      body {
        margin: 0;
        padding: 0;
        background-color: var(--cream);
        font-family: 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
        color: var(--brown);
        line-height: 1.8;
      }

      /* ヘッダー */
      .page-header {
        background: var(--green);
        padding: 18px 24px;
        display: flex;
        align-items: center;
        gap: 16px;
        box-shadow: 0 2px 8px var(--shadow);
      }

      .page-header a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        background: #fff;
        border-radius: 50%;
        color: var(--green);
        text-decoration: none;
        flex-shrink: 0;
        transition: transform 0.18s;
      }

      .page-header a:hover { transform: scale(1.08); }

      .page-header a svg {
        width: 18px;
        height: 18px;
        display: block;
      }

      .page-header h1 {
        margin: 0;
        font-size: 1.1rem;
        font-weight: 700;
        color: #fff;
        letter-spacing: 0.06em;
      }

      /* メインコンテンツ */
      .terms-container {
        max-width: 780px;
        margin: 48px auto 80px;
        padding: 0 24px;
      }

      .terms-lead {
        font-size: 0.9rem;
        color: var(--gray);
        margin-bottom: 40px;
      }

      /* セクション */
      .terms-section {
        margin-bottom: 40px;
      }

      .terms-section h2 {
        font-size: 1rem;
        font-weight: 700;
        color: var(--green);
        border-left: 4px solid var(--green);
        padding: 4px 0 4px 12px;
        margin: 0 0 14px;
        background: var(--green-light);
        border-radius: 0 6px 6px 0;
      }

      .terms-section p,
      .terms-section ul {
        font-size: 0.92rem;
        color: var(--brown);
        margin: 0 0 10px;
        padding-left: 0;
      }

      .terms-section ul {
        padding-left: 1.4em;
      }

      .terms-section ul li {
        margin-bottom: 6px;
      }

      /* 番号付きリスト（禁止事項詳細） */
      .terms-section ol.prohibition-list {
        padding-left: 0;
        list-style: none;
        counter-reset: prohibition-counter;
        margin: 10px 0 0;
      }

      .terms-section ol.prohibition-list > li {
        counter-increment: prohibition-counter;
        display: flex;
        gap: 10px;
        margin-bottom: 10px;
        font-size: 0.9rem;
        line-height: 1.7;
        color: var(--brown);
      }

      .terms-section ol.prohibition-list > li::before {
        content: counter(prohibition-counter) ".";
        font-weight: 700;
        color: var(--green);
        min-width: 24px;
        flex-shrink: 0;
      }

      /* 改定日 */
      .terms-date {
        text-align: right;
        font-size: 0.82rem;
        color: var(--gray);
        margin-top: 48px;
        padding-top: 16px;
        border-top: 1px solid #D8D1B8;
      }

      /* フッター */
      .page-footer {
        background: var(--green);
        color: rgba(255,255,255,0.7);
        text-align: center;
        font-size: 0.78rem;
        padding: 20px;
      }

      .page-footer a,
      .page-footer-btn {
        color: #fff;
        text-decoration: none;
        font-weight: 700;
        margin-right: 16px;
        background: none;
        border: none;
        font-size: 0.78rem;
        cursor: pointer;
        font-family: 'Zen Maru Gothic', sans-serif;
        padding: 0;
      }

      .page-footer a:hover,
      .page-footer-btn:hover { text-decoration: underline; }

      /* お問い合わせポップアップ */
      .contact-popup {
        position: fixed;
        inset: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        background: rgba(60,50,29,0.45);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
        z-index: 400;
      }
      .contact-popup.show {
        opacity: 1;
        pointer-events: auto;
      }
      .popup-content {
        position: relative;
        background: var(--cream);
        padding: 48px 40px 40px;
        border-radius: 24px;
        max-width: 400px;
        width: 90%;
        text-align: center;
        transform: scale(0.94) translateY(8px);
        transition: transform 0.3s ease;
      }
      .contact-popup.show .popup-content {
        transform: scale(1) translateY(0);
      }
      .popup-close-btn {
        position: absolute;
        top: 20px; right: 24px;
        background: #fff;
        border: none;
        width: 32px; height: 32px;
        border-radius: 50%;
        font-size: 18px;
        line-height: 1;
        cursor: pointer;
        color: var(--brown);
        display: flex; align-items: center; justify-content: center;
        transition: background 0.2s;
      }
      .popup-close-btn:hover { background: #eee; }
      .popup-heading {
        font-family: 'Zen Maru Gothic', sans-serif;
        font-weight: 700;
        font-size: 20px;
        color: var(--brown);
        margin-bottom: 8px;
      }
      .popup-sub {
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 13px;
        color: var(--gray);
        margin-bottom: 24px;
        line-height: 1.7;
      }
      .email-box {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 14px 20px;
        background: #fff;
        border: 1.5px solid #e0dcd0;
        border-radius: 50px;
        cursor: pointer;
        user-select: none;
        transition: border-color 0.2s, background 0.2s;
        margin-bottom: 12px;
      }
      .email-box:hover { border-color: var(--green); background: #f5fdf8; }
      .email-box span {
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 14px;
        color: var(--brown);
        font-weight: 500;
      }
      .copy-icon { width: 16px; height: 16px; opacity: 0.5; flex-shrink: 0; }
      .copy-message {
        display: none;
        font-family: 'Noto Sans JP', sans-serif;
        font-size: 12px;
        color: var(--green);
        font-weight: 500;
        margin-top: 4px;
      }

      @media (max-width: 600px) {
        .terms-container {
          margin: 28px auto 60px;
        }
        .terms-section h2 {
          font-size: 0.95rem;
        }
      }
