/* Chaos AV theme: maps WordPress block markup onto the design system.
   All colours, type and sizes come from chaos-av.css (the design system build). */

/* ── Page frame ─────────────────────────────────────────── */
body{min-height:100vh;min-height:100dvh}
.wp-site-blocks{padding-left:var(--cav-gutter-x);padding-right:max(var(--cav-gutter-x),calc(var(--cav-safe-r) + 12px))}
.cav-main{padding-top:8px;margin-block-start:0!important}
.cav-main > *{margin-block-start:0}
.cav-main > * + *{margin-block-start:16px}
[hidden],.cav-install[hidden]{display:none!important}

/* ── Prose (imprint, privacy, any page) ─────────────────
   Placed before the components: component rules below use the same or higher
   specificity, so a lead, a section title or a list inside a page keeps its look. */
.cav-main .cav-prose{max-width:68ch}
.cav-main .cav-prose > *{margin-block-start:0}
.cav-main .cav-prose > * + *{margin-block-start:14px}
.cav-main .cav-prose :where(h2){font-size:22px;letter-spacing:var(--cav-ls-heading);margin-top:36px}
.cav-main .cav-prose :where(h3){font-size:16px;font-weight:600;letter-spacing:var(--cav-ls-heading);color:var(--cav-text-dim);margin-top:26px}
.cav-main .cav-prose :where(h4){font-size:13px;font-weight:600;letter-spacing:var(--cav-ls-heading);color:var(--cav-text-dim);margin-top:22px}
.cav-main .cav-prose :where(p,li){font-size:15px;line-height:1.7}
.cav-main .cav-prose :where(ul,ol){padding-left:1.2em}
.cav-main .cav-prose :where(li + li){margin-top:4px}
.cav-main .cav-prose :where(strong){font-weight:600}
.cav-main .cav-prose :where(.wp-block-table){overflow-x:auto}
.cav-main .cav-prose :where(table){border-collapse:collapse;width:100%;font-size:13px}
.cav-main .cav-prose :where(th,td){text-align:left;padding:9px 8px;border:none;border-bottom:1px solid var(--cav-line)}
.cav-main .cav-prose :where(th){font-family:var(--cav-font-display);font-weight:600;text-transform:uppercase;letter-spacing:var(--cav-ls-label);font-size:11px;color:var(--cav-text-faint)}
.cav-main .cav-prose :where(code){font-size:.86em;background:var(--cav-panel-2);border:1px solid var(--cav-line);border-radius:var(--cav-radius-s);padding:1px 5px}
.cav-main .cav-prose :where(blockquote){margin-left:0;padding:8px 14px;border-left:2px solid var(--cav-green);color:var(--cav-text-dim)}
.cav-main .cav-prose :where(img){border-radius:var(--cav-radius)}

/* Admin bar: keep the sticky header below it (only while logged in) */
body.admin-bar .cav-appbar{top:var(--wp-admin--admin-bar--height,32px)}
@media (max-width:600px){body.admin-bar .cav-appbar{top:0}}

/* ── App bar content ────────────────────────────────────── */
.cav-appbar__logo{border-radius:50%;object-fit:contain}
.cav-appbar__home{display:inline-flex;align-items:center;gap:10px;min-height:var(--cav-tap);min-width:0;border:none;color:var(--cav-text)}
.cav-appbar__home:hover{border:none;color:var(--cav-text);opacity:var(--cav-hover-opacity)}
.cav-appbar__title--page{font-size:17px;letter-spacing:var(--cav-ls-heading);color:var(--cav-text-dim)}
@media (max-width:440px){.cav-appbar__meta{display:none}}

/* ── Titles and text ────────────────────────────────────── */
.cav-main .cav-page-title{font-family:var(--cav-font-display);font-weight:700;text-transform:uppercase;letter-spacing:var(--cav-ls-display);
  font-size:38px;line-height:1;color:var(--cav-text);margin:28px 0 10px!important}
@media (max-width:520px){.cav-main .cav-page-title{font-size:32px;margin-top:22px!important}}
.cav-main .cav-lead{font-size:15px;line-height:1.6;color:var(--cav-text-dim);max-width:60ch;margin:0 0 22px!important}
.cav-main h2.cav-section{font-family:var(--cav-font-display);font-weight:600;text-transform:uppercase;letter-spacing:var(--cav-ls-heading);
  font-size:14px;line-height:1;color:var(--cav-text-dim);margin:32px 0 12px!important}
.cav-main .cav-note-p{font-size:var(--cav-fs-micro);line-height:var(--cav-lh-snug);padding:8px 10px;border-radius:var(--cav-radius);
  color:var(--cav-cyan);background:var(--cav-cyan-wash);border:1px solid var(--cav-cyan-dim);max-width:none}

/* ── Lists of tools, games, links ───────────────────────── */
.cav-list{background:var(--cav-panel);border:1px solid var(--cav-line);border-radius:var(--cav-radius);margin:0;padding:0;list-style:none}
.cav-list > *{margin:0!important}
.cav-row{position:relative;padding:16px 48px 16px 18px;transition:background-color var(--cav-dur-fast) var(--cav-ease)}
.cav-row + .cav-row,.cav-list > li + li .cav-row{border-top:1px solid var(--cav-line)}
.cav-row > *{margin:0!important}
.cav-row::after{content:"→";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-family:var(--cav-font-mono);font-size:18px;color:var(--cav-text-faint);
  transition:color var(--cav-dur-fast) var(--cav-ease)}
.cav-main .cav-row__title,.cav-main .cav-row__title a{font-family:var(--cav-font-display);font-weight:700;text-transform:uppercase;letter-spacing:var(--cav-ls-display);
  font-size:22px;line-height:1.1;color:var(--cav-text);border:none;text-decoration:none}
.cav-row__title a::after{content:"";position:absolute;inset:0;z-index:1}
.cav-row__title .sep{color:var(--cav-green)}
.cav-main .cav-row__sub{font-size:13px;line-height:1.5;color:var(--cav-text-dim);margin-top:6px!important}
.cav-row:hover{background:var(--cav-panel-2)}
.cav-main .cav-row:hover .cav-row__title a,.cav-row:hover::after{color:var(--cav-green)}
.cav-row:active{opacity:var(--cav-hover-opacity)}
.cav-row:has(a:focus-visible){box-shadow:inset 0 0 0 2px var(--cav-green)}
.cav-row a:focus-visible{box-shadow:none}
@media (max-width:520px){.cav-row{padding:14px 44px 14px 16px}.cav-main .cav-row__title,.cav-main .cav-row__title a{font-size:20px}}

/* ── Buttons from the block editor ──────────────────────── */
.wp-element-button,.wp-block-button__link{border-radius:var(--cav-radius)!important;transition:opacity var(--cav-dur-fast) var(--cav-ease)}
.wp-element-button:hover,.wp-block-button__link:hover{opacity:var(--cav-hover-opacity);border:none}
.is-style-outline .wp-block-button__link{background:transparent;color:var(--cav-text);border:1px solid var(--cav-line-2)}
@media (pointer:coarse){.wp-element-button,.wp-block-button__link{min-height:var(--cav-tap)}}

/* ── Footer ─────────────────────────────────────────────── */
.cav-foot{margin-top:48px!important;padding:22px 0 28px;border-top:1px solid var(--cav-line);position:relative}
.cav-foot::before{content:"";position:absolute;top:-1px;left:0;width:120px;height:3px;background:var(--cav-grad-logo-x)}
.cav-foot > *{margin:0!important}
.cav-foot__line{font-size:13px;line-height:1.6;color:var(--cav-text-dim);max-width:60ch}
.cav-foot__meta{font-family:var(--cav-font-mono);font-size:var(--cav-fs-nano);letter-spacing:var(--cav-ls-mono);text-transform:uppercase;color:var(--cav-text-faint);margin-top:8px!important}

/* ── Offline page (served at /offline/, outside the templates) ── */
body.cav-offline-page{padding:calc(24px + var(--cav-safe-t)) var(--cav-gutter-x) 48px}
body.cav-offline-page .cav-main{max-width:760px;margin:0 auto}

/* Header content lines up with the page column on wide screens */
.cav-appbar__in{max-width:calc(760px + 2 * var(--cav-gutter-x))}
