/* =====================================================
   faq.php 固有スタイル
   ===================================================== */

    .faq-category-nav{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin:0 0 26px;
      padding:18px;
      border:1px solid var(--line);
      border-radius:var(--radius-md);
      background:linear-gradient(180deg,#ffffff 0%,var(--bg-faint) 100%);
    }

    .faq-category-check{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:44px;
      padding:8px 16px;
      border:1px solid var(--line-strong);
      border-radius:999px;
      background:#fff;
      color:var(--accent-deep);
      font-size:15px;
      font-weight:700;
      line-height:1.5;
      box-shadow:0 3px 10px rgba(73,110,42,0.05);
      transition:background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
      cursor:pointer;
      user-select:none;
    }

    .faq-category-check:hover{
      background:#f1f7eb;
      border-color:#9fd44f;
      transform:translateY(-1px);
    }

    .faq-category-check input{
      width:16px;
      height:16px;
      margin:0;
      accent-color:var(--accent-dark);
      flex:0 0 auto;
      cursor:pointer;
    }

    .faq-category-check.is-checked{
      background:#f1f7eb;
      border-color:#9fd44f;
    }

    .faq-category-text{
      display:inline-block;
      min-width:0;
    }

    .faq-category-title{
      margin:30px 0 14px;
      padding:10px 16px;
      border-radius:999px;
      background:linear-gradient(135deg,#f1f7eb 0%,#e8f3df 100%);
      border:1px solid var(--line-strong);
      color:var(--accent-deep);
      font-size:18px;
      font-weight:700;
      line-height:1.4;
    }

    .faq-category-title:first-of-type{
      margin-top:18px;
    }

    .faq-accordion{
      border-top:1px solid var(--line);
      padding-top:16px;
      margin-top:16px;
      scroll-margin-top:20px;
    }

    .faq-accordion:first-of-type{
      border-top:none;
      padding-top:0;
      margin-top:0;
    }

    .faq-accordion > .accordion-summary{
      list-style:none;
      cursor:pointer;
      position:relative;
      display:block;
      padding-right:34px;
    }

    .faq-accordion > .accordion-summary::-webkit-details-marker{
      display:none;
    }

    .faq-accordion > .accordion-summary::after{
      content:"+";
      position:absolute;
      right:0;
      top:50%;
      transform:translateY(-50%);
      color:var(--heading);
      font-size:26px;
      font-weight:700;
      line-height:1;
    }

    .faq-accordion[open] > .accordion-summary::after{
      content:"－";
    }

    .faq-accordion > .accordion-body{
      padding:0;
      margin:0;
    }

    .faq-question-title{
      display:flex;
      align-items:flex-start;
      gap:12px;
      padding-right:10px;
    }

    .faq-q-mark,
    .faq-a-mark{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      flex:0 0 34px;
      width:34px;
      height:34px;
      border-radius:50%;
      font-size:16px;
      font-weight:700;
      line-height:1;
    }

    .faq-q-mark{
      background:linear-gradient(135deg,#95cb47 0%,var(--accent-dark) 100%);
      color:#fff;
      box-shadow:0 5px 12px rgba(110,165,47,0.18);
    }

    .faq-a-mark{
      background:#fff;
      color:var(--accent-deep);
      border:1px solid var(--line-strong);
    }

    .faq-question-text{
      min-width:0;
      flex:1 1 auto;
      color:var(--heading);
      overflow-wrap:anywhere;
      word-break:break-word;
      padding-top:1px;
    }

    .faq-answer-box{
      margin:0 0 0 55px;
      display:flex;
      align-items:flex-start;
      gap:12px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:var(--radius-md);
      background:linear-gradient(180deg,#ffffff 0%,var(--bg-faint) 100%);
      color:var(--text-mid);
      font-size:16px;
      line-height:1.8;
      overflow-wrap:anywhere;
      word-break:break-word;
    }

    .faq-answer-text{
      min-width:0;
      flex:1 1 auto;
    }

    .faq-empty{
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:var(--radius-md);
      background:linear-gradient(180deg,#ffffff 0%,var(--bg-faint) 100%);
      color:var(--text-sub);
      font-size:15px;
    }

    body.font-small .faq-category-check{ font-size:14px; }
    body.font-small .faq-category-title{ font-size:16px; }
    body.font-small .faq-question-text{ font-size:15px; }
    body.font-small .faq-answer-box{ font-size:15px; }
    body.font-small .faq-answer-text{ font-size:15px; }
    body.font-small .faq-empty{ font-size:14px; }

    body.font-medium .faq-category-check{ font-size:15px; }
    body.font-medium .faq-category-title{ font-size:18px; }
    body.font-medium .faq-question-text{ font-size:16px; }
    body.font-medium .faq-answer-box{ font-size:16px; }
    body.font-medium .faq-answer-text{ font-size:16px; }
    body.font-medium .faq-empty{ font-size:15px; }

    body.font-large .faq-category-check{ font-size:17px; }
    body.font-large .faq-category-title{ font-size:21px; }
    body.font-large .faq-question-text{ font-size:19px; }
    body.font-large .faq-answer-box{ font-size:19px; }
    body.font-large .faq-answer-text{ font-size:19px; }
    body.font-large .faq-empty{ font-size:18px; }

    @media (max-width:768px){
      .faq-answer-box{
        margin-left:0;
      }

      body.font-small .faq-question-text{ font-size:14px; }
      body.font-medium .faq-question-text{ font-size:16px; }
      body.font-large .faq-question-text{ font-size:18px; }

      body.font-small .faq-answer-box,
      body.font-small .faq-answer-text{ font-size:14px; }
      body.font-medium .faq-answer-box,
      body.font-medium .faq-answer-text{ font-size:16px; }
      body.font-large .faq-answer-box,
      body.font-large .faq-answer-text{ font-size:18px; }
    }

    @media (max-width:480px){
      .faq-accordion > .accordion-summary{
        padding-right:26px;
      }

      .faq-accordion > .accordion-summary::after{
        font-size:22px;
      }

      .faq-question-title{
        gap:10px;
      }

      .faq-q-mark,
      .faq-a-mark{
        flex-basis:30px;
        width:30px;
        height:30px;
        font-size:14px;
      }

      .faq-category-nav{
        padding:14px;
        gap:8px;
      }

      .faq-category-check{
        width:100%;
        justify-content:flex-start;
        border-radius:14px;
        font-size:14px;
      }

      .faq-answer-box{
        padding:16px;
        font-size:15px;
      }

      body.font-small .faq-category-check{ font-size:13px; }
      body.font-medium .faq-category-check{ font-size:14px; }
      body.font-large .faq-category-check{ font-size:16px; }
    }
