/* Disclosure, landing pages, report form and consent banner. Built on the theme's tokens. */

/* Labels */
/* Sponsored = outlined ink tag with an accent square, Partner = solid ink tag with a ring: never the same
   look as the theme's "Featured" (accent-2 fill) or "Demo data" (sand fill). */
.cyd-tag { gap: .4em; border-radius: var(--radius-sm, 4px); font-size: var(--fs-xs, .8125rem); font-weight: 700; line-height: 1.3; padding: .22em .6em; text-decoration: none; }
.cyd-tag--sponsored { background: var(--surface, #fff); color: var(--ink, #1b1b1b); box-shadow: inset 0 0 0 1.5px var(--ink, #1b1b1b); }
.cyd-tag--sponsored::before { content: ""; width: .5em; height: .5em; flex: none; background: var(--accent, #c00); border-radius: 1px; }
.cyd-tag--partner { background: var(--ink, #1b1b1b); color: var(--bg, #fff); }
.cyd-tag--demo { background: var(--sand, #f3e9d2); color: var(--ink, #1b1b1b); }
.cyd-tag--partner::before { content: ""; width: .5em; height: .5em; flex: none; border: 1.5px solid currentColor; border-radius: 50%; }
a.cyd-tag { position: relative; }
a.cyd-tag::after { content: ""; position: absolute; inset: -10px -4px; }
a.cyd-tag:hover { text-decoration: underline; }
a.cyd-tag--partner:hover { background: var(--accent, #c00); color: var(--on-accent, #fff); }
.cyd-card-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 2px; position: relative; z-index: 1; }

/* Listing page */
.cyd-disclosure-panel p { font-size: var(--fs-sm); color: var(--ink-soft); }
.cyd-disclosure-panel p + p { margin-top: 8px; }
.cyd-listing-disclaimer { margin-block: 8px 48px; padding-top: 20px; border-top: 1px solid var(--line); font-size: var(--fs-xs); color: var(--ink-soft); max-width: 100%; }
.cyd-listing-disclaimer p { max-width: 90ch; }
.cyd-listing-disclaimer p + p { margin-top: 8px; }
.cyd-report-link { font-size: var(--fs-sm); }
.cyd-report-link a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink-soft); }
.prose .cyd-report-link { margin-top: 2em; }
.cyd-muted { color: var(--ink-soft); }

/* Articles / legal pages */
.cyd-article-disclosure, .cyd-legal-pending { margin-bottom: 1.5em; }
.cyd-article-disclosure p, .cyd-legal-pending p { margin: 0; }
.cyd-operator-details { display: grid; grid-template-columns: max-content 1fr; gap: 6px 20px; }
.cyd-operator-details dt { font-weight: 600; }
.cyd-operator-details dd { margin: 0; }
@media (max-width: 560px) { .cyd-operator-details { grid-template-columns: 1fr; } .cyd-operator-details dd { margin-bottom: 8px; } }

/* Footer */
.cyd-disclosure { flex: 1 1 100%; display: grid; gap: 6px; font-size: var(--fs-sm, .95rem); line-height: 1.55; }
.site-footer .cyd-disclosure__line { color: var(--bg, #fff); font-size: var(--fs-base, 1rem); max-width: 72ch; }
.cyd-disclosure a, .cyd-linkbtn { position: relative; }
.cyd-disclosure a::after, .cyd-linkbtn::after { content: ""; position: absolute; inset: -11px -2px; }
.cyd-disclosure p { margin: 0; }
.cyd-disclosure a, .cyd-linkbtn { text-decoration: underline; text-underline-offset: 2px; }
.cyd-linkbtn { padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }

/* Landing pages */
.cyd-landing-head .page-intro > :first-child { margin-top: 0; }
.cyd-featured { padding-bottom: 0; }
.cyd-featured .section-head { display: block; margin-bottom: 18px; }
.cyd-featured .section-head .section-intro { margin-top: 6px; max-width: 70ch; }
.cyd-featured__note { font-size: var(--fs-sm); color: var(--ink-soft); }
.cyd-landing-more { margin-top: 28px; text-align: center; }
.cyd-faq__list { display: grid; gap: 12px; max-width: 860px; margin-top: 18px; }
.cyd-faq__item { padding: 0; }
.cyd-faq__q { padding: 16px 20px; font-weight: 600; cursor: pointer; }
.cyd-faq__a { padding: 0 20px 16px; }

/* Report form */
.cyd-report-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cyd-report-reasons { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 10px 20px; }
.cyd-report-reasons label, .cyd-report-goodfaith { display: flex; gap: 10px; align-items: flex-start; font-weight: 400 !important; font-size: var(--fs-sm); }
.cyd-report-reasons input, .cyd-report-goodfaith input { flex: none; margin-top: 2px; }
.cyd-report-object { margin: 0; display: grid; gap: 2px; }
.cyd-report-object .cyd-muted { font-size: var(--fs-xs); word-break: break-all; }
.cyd-report .cyd-notice { max-width: 760px; margin-bottom: 20px; }

/* Consent banner */
.cyd-consent { position: fixed; z-index: 9999; inset: auto 16px 16px 16px; display: flex; justify-content: center; pointer-events: none; }
.cyd-consent[hidden] { display: none; }
.cyd-consent__inner { pointer-events: auto; width: min(100%, 760px); padding: 20px 22px; background: var(--surface, #fff); color: var(--ink, #1b1b1b); border: 1px solid var(--line, #ddd); border-radius: var(--radius, 12px); box-shadow: 0 10px 40px rgba(0, 0, 0, .18); display: grid; gap: 12px; }
.cyd-consent__title { font-family: var(--font-body, inherit); font-size: var(--fs-md, 1.1rem); font-weight: 700; margin: 0; }
.cyd-consent__text { font-size: var(--fs-sm, .95rem); margin: 0; }
.cyd-consent__text a { text-decoration: underline; }
.cyd-consent__prefs { display: grid; gap: 10px; padding: 12px 0; border-block: 1px solid var(--line, #ddd); }
.cyd-consent__prefs[hidden] { display: none; }
.cyd-consent__opt { display: flex; gap: 10px; align-items: flex-start; font-size: var(--fs-sm, .95rem); }
.cyd-consent__opt input { width: 18px; height: 18px; flex: none; margin-top: 2px; accent-color: var(--accent, #333); }
.cyd-consent__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cyd-consent__btn { flex: 1 1 160px; background: var(--ink, #1b1b1b); border-color: var(--ink, #1b1b1b); color: var(--bg, #fff); }
.cyd-consent__btn:hover { background: color-mix(in oklab, var(--ink, #1b1b1b) 85%, var(--bg, #fff)); color: var(--bg, #fff); border-color: transparent; }
.cyd-consent__btn[hidden] { display: none; }
.cyd-consent__more { flex: 0 0 auto; padding: 0 6px; font-size: var(--fs-sm, .95rem); }
@media (max-width: 560px) {
  .cyd-consent { inset: auto 0 0 0; }
  .cyd-consent__inner { border-radius: var(--radius, 12px) var(--radius, 12px) 0 0; padding: 18px 16px calc(18px + env(safe-area-inset-bottom)); }
  .cyd-consent__more { flex-basis: 100%; text-align: center; }
}
