/* Complianz documents (cookie policies, US opt-out preferences) framed like the
   shop's pages. Complianz writes and owns the text, the per-service details and
   the request form; this only sets them in the shop's dark design. */
body.torp-legal-page .entry-content > .torp-checkout-shell { max-width: 980px !important; }

.torp-legal-document { padding: 34px 38px; border: 1px solid var(--torp-border); border-radius: 10px; background: var(--torp-panel); color: var(--torp-muted); font-size: 15px; line-height: 1.75; overflow-wrap: anywhere; }
.torp-legal-document .cmplz-document { max-width: none; margin: 0; padding: 0; background: transparent; color: inherit; font-size: inherit; }
.torp-legal-document .cmplz-document > :first-child { margin-top: 0; }

.torp-legal-document h2, .torp-legal-document h3, .torp-legal-document h4 { color: var(--torp-text); font-family: inherit; font-weight: 800; letter-spacing: -.01em; line-height: 1.3; }
.torp-legal-document h2 { margin: 40px 0 12px; font-size: 22px; }
.torp-legal-document h3 { margin: 30px 0 10px; font-size: 18px; }
.torp-legal-document h4 { margin: 22px 0 8px; font-size: 16px; }
.torp-legal-document h5 { margin: 0 0 4px; color: var(--torp-text); font-family: inherit; font-size: 13px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.torp-legal-document p, .torp-legal-document li { margin: 0 0 14px; color: var(--torp-muted); font-size: 15px; line-height: 1.75; }
.torp-legal-document ul, .torp-legal-document ol { margin: 0 0 18px; padding-left: 22px; }
.torp-legal-document a { color: #ff8e84; text-decoration: underline; text-underline-offset: 3px; }
.torp-legal-document a:hover { color: var(--torp-text); }
.torp-legal-document strong { color: var(--torp-text); }

/* Per-service cookie details. */
.torp-legal-document details.cmplz-dropdown { margin: 0 0 10px; border: 1px solid #343840 !important; border-radius: 8px; background: var(--torp-input) !important; color: var(--torp-muted); overflow: hidden; }
.torp-legal-document details.cmplz-dropdown[open] { border-color: #4a4e57 !important; }
.torp-legal-document details.cmplz-dropdown summary { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: transparent !important; color: var(--torp-text); cursor: pointer; }
.torp-legal-document details.cmplz-dropdown summary:hover { background: #24262b !important; }
.torp-legal-document details.cmplz-dropdown summary h3, .torp-legal-document details.cmplz-dropdown summary p { margin: 0; color: var(--torp-text); font-size: 15px; }
.torp-legal-document details.cmplz-dropdown > div, .torp-legal-document details.cmplz-dropdown div { background: transparent !important; color: inherit; border-color: #343840 !important; }
.torp-legal-document details.cmplz-dropdown > div { padding: 4px 16px 16px; }
.torp-legal-document .cookies-per-purpose { display: grid; gap: 12px 24px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 10px 0 0; padding: 14px 0 0; border-top: 1px solid #343840; }
.torp-legal-document .cookies-per-purpose > div { padding: 0 !important; }
.torp-legal-document .cookies-per-purpose span, .torp-legal-document .cmplz-service-desc p, .torp-legal-document .cmplz-sharing-data { color: var(--torp-muted); font-size: 14px; }

/* Forms: the opt-out and data-request form, and the consent toggles. */
.torp-legal-document input[type="text"], .torp-legal-document input[type="email"], .torp-legal-document input[type="tel"], .torp-legal-document textarea, .torp-legal-document select { box-sizing: border-box; width: 100%; min-height: 46px; margin: 4px 0 14px; padding: 10px 12px; border: 1px solid #3a3d44; border-radius: 6px; background: #121316; color: var(--torp-text); font: inherit; font-size: 15px; }
.torp-legal-document input:focus-visible, .torp-legal-document textarea:focus-visible, .torp-legal-document select:focus-visible { border-color: var(--torp-red); outline: 2px solid var(--torp-red); outline-offset: 2px; }
.torp-legal-document label { color: var(--torp-text); font-size: 14px; }
.torp-legal-document input[type="checkbox"]:not(.cmplz-accept-service) { -webkit-appearance: none; appearance: none; display: inline-grid; place-content: center; flex: 0 0 auto; width: 20px; height: 20px; margin: 0 10px 2px 0; padding: 0; vertical-align: middle; border: 1.5px solid #5b5f69; border-radius: 4px; background: #121316; cursor: pointer; }
.torp-legal-document input[type="checkbox"]:not(.cmplz-accept-service):checked { border-color: #e01500; background: #e01500; }
.torp-legal-document input[type="checkbox"]:not(.cmplz-accept-service)::before { content: ""; position: static !important; width: 10px; height: 5px; border: solid #fff; border-width: 0 0 2px 2px; transform: translateY(-1px) rotate(-45deg); opacity: 0; }
.torp-legal-document input[type="checkbox"]:not(.cmplz-accept-service):checked::before { opacity: 1; }
.torp-legal-document input[type="submit"], .torp-legal-document button:not(.cmplz-close) { min-height: 46px; padding: 12px 22px; border: 0; border-radius: 6px; background: #e01500; color: #fff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.torp-legal-document input[type="submit"]:hover, .torp-legal-document button:not(.cmplz-close):hover { background: #bc1604; }
.torp-legal-document .cmplz-alert { margin: 0 0 16px; padding: 12px 14px; border-left: 3px solid var(--torp-red); border-radius: 0 6px 6px 0; background: #21191b; color: var(--torp-text); }

@media (max-width: 700px) {
  .torp-legal-document { padding: 22px 18px; font-size: 14px; }
  .torp-legal-document h2 { font-size: 20px; }
  .torp-legal-document p, .torp-legal-document li { font-size: 14px; }
}

/* Complianz draws its dropdown chevron and external-link mark as dark images. */
.torp-legal-document details.cmplz-dropdown summary::after, .torp-legal-document a::after { filter: invert(1) opacity(.75); }

/* "Manage your consent settings": Complianz takes these colours from its
   banner settings (translucent light grey); set them in the shop's colours. */
.torp-legal-document .cmplz-categories .cmplz-category { margin: 0 0 10px !important; border: 1px solid #343840 !important; border-radius: 8px !important; background: var(--torp-input) !important; overflow: hidden; }
.torp-legal-document .cmplz-categories .cmplz-category-header { padding: 12px 16px !important; background: transparent !important; }
.torp-legal-document .cmplz-categories .cmplz-category-title { color: var(--torp-text) !important; font-size: 15px !important; font-weight: 700 !important; }
.torp-legal-document .cmplz-categories .cmplz-always-active { color: #8fd8a6 !important; font-size: 13px !important; }
.torp-legal-document .cmplz-categories .cmplz-category-toggle { border: 0 !important; background: transparent !important; color: var(--torp-muted) !important; min-height: 0; padding: 4px !important; }
.torp-legal-document .cmplz-categories .cmplz-category-toggle svg { fill: currentColor !important; }
.torp-legal-document .cmplz-categories .cmplz-description { padding: 0 16px 14px !important; background: transparent !important; color: var(--torp-muted) !important; font-size: 14px; }
.torp-legal-document .cmplz-categories .cmplz-banner-checkbox { display: inline-flex; align-items: center; }
