.policy-page p,
.policy-page li {
  color: var(--muted);
  line-height: 1.7;
}

.policy-page a {
  color: var(--green);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.policy-page li + li { margin-top: 8px; }
.policy-caution {
  margin-top: 30px;
  padding: 16px;
  border: 1px solid #ead59f;
  border-radius: 11px;
  background: #fff8e8;
}

.policy-table {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.policy-table table { width: 100%; min-width: 620px; border-collapse: collapse; }
.policy-table th,
.policy-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.policy-table th { background: #f7f8f4; font-size: 12px; }
.policy-table tr:last-child td { border-bottom: 0; }
.policy-table code { font-size: 12px; }

.cookie-notice {
  position: fixed;
  z-index: 50;
  right: 22px;
  bottom: 22px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 16px;
  width: min(720px, calc(100vw - 44px));
  padding: 18px 20px;
  border: 1px solid #b8cbbd;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 20px 60px rgba(23, 33, 27, .22);
}
.cookie-notice[hidden] { display: none; }
.cookie-notice strong,
.cookie-notice p { display: block; }
.cookie-notice p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.cookie-notice a { color: var(--green); font-size: 13px; font-weight: 700; white-space: nowrap; }
.cookie-notice button { border: 0; border-radius: 9px; background: var(--green); color: white; padding: 10px 14px; font-weight: 700; cursor: pointer; }
.cookie-notice .cookie-reject { border: 1px solid var(--line); background: #f5f6f2; color: var(--ink); }
.legal-check { display: grid!important; grid-template-columns: auto 1fr; align-items: start; gap: 10px!important; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f8f9f6; font-weight: 500!important; line-height: 1.45; }
.legal-check input { width: 18px!important; height: 18px; margin: 2px 0 0; accent-color: var(--green); }
.legal-check a { color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.field-error { margin-top: -10px; color: var(--red); font-size: 12px; font-weight: 700; }

@media (max-width: 650px) {
  .policy-page { padding: 24px 20px; }
  .policy-page h1 { font-size: 34px; }
  .cookie-notice { left: 14px; right: 14px; bottom: 14px; width: auto; grid-template-columns: 1fr; }
  .cookie-notice a,
  .cookie-notice button { width: 100%; text-align: center; }
  .cookie-notice button { padding: 12px; }
}
