/* ===== 法定ページ（特商法・プライバシーポリシー） ===== */
.policy-section { padding: 40px 0 80px; }
.policy-container { max-width: 820px; min-width: 0; }

.policy-title {
  font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 300;
  color: var(--plum-deep); margin-bottom: 12px;
}

.policy-placeholder-note {
  font-size: .78rem; color: var(--plum-rose); margin-bottom: 32px;
  padding: 10px 14px; border: 1px solid rgba(201,107,138,.3); background: var(--blossom-ll);
  display: inline-block;
}

.policy-block { margin-bottom: 32px; min-width: 0; }
.policy-block h2 {
  font-size: 1rem; font-weight: 500; color: var(--plum-deep);
  margin-bottom: 12px; letter-spacing: .03em;
}
.policy-block p {
  font-size: .88rem; color: var(--ink); line-height: 1.95; font-weight: 300;
}
.policy-list { padding-left: 1.4em; display: flex; flex-direction: column; gap: 8px; }
.policy-list li {
  font-size: .88rem; color: var(--ink); line-height: 1.9; font-weight: 300;
  list-style: disc;
}
.policy-date { margin-top: 12px; color: var(--gray); }

.policy-note { font-size: .78rem; color: var(--gray); line-height: 1.8; }

/* ===== 表組み（特商法） ===== */
.policy-table-wrap {
  width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
  margin-bottom: 40px; border: 1px solid rgba(30,10,20,.12);
}
.policy-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.policy-table th, .policy-table td {
  text-align: left; padding: 16px 18px; font-size: .85rem; line-height: 1.9;
  border-bottom: 1px solid rgba(30,10,20,.1); vertical-align: top;
}
.policy-table th {
  width: 30%; white-space: nowrap; color: var(--plum-deep); font-weight: 500;
  background: var(--blossom-ll);
}
.policy-table td { color: var(--ink); font-weight: 300; }
.policy-table tr:last-child th, .policy-table tr:last-child td { border-bottom: none; }

.policy-bank-box {
  border: 1px solid rgba(201,107,138,.25); background: var(--blossom-ll);
  padding: 20px 22px; min-width: 0;
}
.policy-bank-box p { font-size: .9rem; color: var(--ink); margin-bottom: 6px; }
.policy-bank-box .policy-note { margin-top: 10px; }

@media (max-width: 640px) {
  .policy-table-wrap { overflow-x: visible; border: none; }
  .policy-table { display: block; min-width: 0; }
  .policy-table tbody { display: block; }
  .policy-table tr {
    display: block; padding: 14px 0;
    border-bottom: 1px solid rgba(30,10,20,.12);
  }
  .policy-table tr:last-child { border-bottom: none; }
  .policy-table th, .policy-table td {
    display: block; width: 100%; white-space: normal;
    border-bottom: none; padding: 0 4px;
  }
  .policy-table th {
    background: none; font-size: .78rem; margin-bottom: 6px;
  }
  .policy-table td { font-size: .85rem; }
}

/* ===== よくある質問 ===== */
.faq-group { margin-bottom: 40px; min-width: 0; }
.faq-group-title {
  font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--plum-rose); margin-bottom: 16px; font-weight: 600;
}
.faq-item {
  border-bottom: 1px solid rgba(30,10,20,.1); min-width: 0;
}
.faq-item:first-child { border-top: 1px solid rgba(30,10,20,.1); }
.faq-q {
  position: relative;
  padding: 18px 4px 18px 30px; margin: 0; cursor: pointer; list-style: none;
  font-size: .92rem; color: var(--ink); font-weight: 500; min-width: 0;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q::before {
  content: 'Q'; position: absolute; left: 4px; top: 18px;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600; color: var(--plum-deep); font-size: 1.1rem; line-height: 1.3;
}
.faq-a {
  position: relative;
  padding: 0 4px 20px 30px; margin: 0; min-width: 0;
  font-size: .86rem; color: var(--gray); line-height: 1.9; font-weight: 300;
}
.faq-a::before {
  content: 'A'; position: absolute; left: 4px; top: 0;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600; color: var(--plum-rose); font-size: 1.1rem; line-height: 1.3;
}
