/* Companion pages share the homepage brand, navigation and buttons. */
.detail-page { min-height: 100vh; display: flex; flex-direction: column; background: linear-gradient(180deg, #edf8f4 90px, #f8fcfa 420px, #fcfefd 800px); }
.detail-page .header-actions { flex: 1; }
.detail-page .policy-content { width: calc(100% - 64px); max-width: 960px; margin: 48px auto 64px; padding: 48px 56px; background: #fff; border: 1px solid var(--border); border-radius: 28px; box-shadow: 0 18px 50px -30px #17696035; }
.detail-page h1 { font-size: clamp(2rem, 4vw, 2.85rem); line-height: 1.25; letter-spacing: -.045em; word-break: keep-all; text-wrap: balance; margin-bottom: 20px; }
.detail-page .policy-content > h1 + p { color: var(--text-secondary); margin-bottom: 32px; font-size: 1rem; }
.detail-page .policy-content > h2 { margin: 36px 0 14px; padding-top: 28px; border-top: 1px solid #e9f1ed; font-size: 1.25rem; color: var(--primary-dark); }
.detail-page .policy-content p, .detail-page .policy-content li { line-height: 1.9; color: var(--text-secondary); font-size: .95rem; }
.detail-page .policy-content li { padding: 5px 0 5px 5px; }
.detail-page li::marker { color: var(--primary); font-weight: 700; }
.detail-page .notice, .detail-page .panel { margin: 28px 0; padding: 24px; border-radius: 18px; box-shadow: none; }
.detail-page .notice { background: #edf8f3; border-left: 3px solid #168e88; }
.detail-page .notice p:last-child, .detail-page .panel p:last-child { margin-bottom: 0; }
.detail-page .panel { background: #f8fcfa; border: 1px solid var(--border); }
.detail-page .panel h2 { font-size: 1.25rem; }
.detail-page .download-primary-card { grid-template-columns: 72px minmax(0, 1fr); border-radius: 22px; border-color: #cbe5dd; background: #f7fcf9; padding: 28px; margin-top: 30px; box-shadow: none; }
.detail-page .channel-icon { width: 72px; height: 72px; object-fit: contain; background: #fff; border-radius: 18px; }
.detail-page .channel-content h2 { font-size: 1.6rem; margin-bottom: 8px; }
.detail-page .download-primary-card > .button { grid-column: 1 / -1; justify-self: start; }
.detail-page .status-pill { background: #e1f3e9; border-color: #cde6d9; color: #276b53; font-weight: 600; }
.detail-page .package-name { background: #fff; font-size: .75rem; font-weight: 400; }
.detail-page .form { padding: 28px; margin: 24px 0 32px; gap: 22px; border: 1px solid var(--border); border-radius: 22px; background: #f8fcfa; }
.detail-page .form label { font-size: .9rem; font-weight: 600; gap: 10px; }
.detail-page input, .detail-page textarea { border-radius: 12px; border-color: #cfe2da; background: #fff; }
.detail-page input:focus, .detail-page textarea:focus { outline: 2px solid var(--primary); outline-offset: 2px; }
.detail-page input::placeholder, .detail-page textarea::placeholder { color: #748781; }
.detail-page .form button { border-radius: 12px; background: var(--primary); padding: 13px 20px; }
.detail-page .form button:hover:not(:disabled) { background: var(--primary-dark); }
.detail-page .result { border-radius: 12px; color: var(--text-secondary); font-size: .88rem; overflow-wrap: anywhere; }
.detail-page .result.error { color: var(--error); }
.detail-page .result.success { color: var(--success); }
.detail-page .site-footer { margin-top: auto; font-size: .82rem; }
.detail-page .site-footer .section > span:first-child { color: var(--text-primary); font-weight: 700; }
@media (max-width: 780px) {
  .detail-page .header-actions { width: 100%; }
  .detail-page .policy-content { width: calc(100% - 32px); margin: 24px auto 36px; padding: 30px 24px; border-radius: 22px; }
  .detail-page .download-primary-card { padding: 22px; grid-template-columns: 1fr; }
  .detail-page .download-primary-card > .button { width: 100%; }
  .detail-page .form { padding: 20px; }
  .detail-page .policy-content p, .detail-page .policy-content li { font-size: .9rem; }
}
@media (max-width: 380px) {
  .detail-page .policy-content { padding: 26px 18px; }
  .detail-page .form, .detail-page .notice, .detail-page .panel { padding: 18px; }
}
