/*
Theme Name: Roleplayer
Theme URI: https://roleplayer.online
Description: Dark tabletop theme for Roleplayer — crimson and gold on slate, serif display headlines. Child of Twenty Twenty-Five. Works with the Roleplayer Core plugin.
Author: 6ixcore
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: roleplayer-theme
*/

body { background: #111518; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.rp-main > * { margin-block-start: 0; }
.rp-main { min-height: 50vh; }

/* Text pages (terms, privacy, code of conduct) and guide posts */
.rp-wrap--post { max-width: calc(780px + 2 * var(--rp-gutter, 24px)); }
.rp-prose-wrap { padding-bottom: 72px; }
.rp-textpage .rp-pagehead, .rp-post .rp-pagehead { margin-bottom: 36px; }
.rp-prose { color: #c9cdd1; font-size: 1.125rem; line-height: 1.78; }
.rp-prose > * { margin-block-start: 0; margin-block-end: 0; }
.rp-prose > * + * { margin-block-start: 1.05em; }
.rp-prose h2 { font-size: clamp(1.625rem, 3vw, 2.125rem); margin-block-start: 1.9em !important; margin-block-end: .2em; color: #fff; }
.rp-prose h3 { font-size: 1.4rem; margin-block-start: 1.6em !important; color: #fff; }
.rp-prose a { color: #e3c27e; }
.rp-prose a:hover { color: #fff; }
.rp-prose strong { color: #fff; }
.rp-prose ul, .rp-prose ol { padding-left: 1.3em; }
.rp-prose li { margin: .45em 0; padding-left: .2em; }
.rp-prose li::marker { color: #d7192b; }
.rp-prose em { color: #9aa3ab; }
.rp-prose img { border-radius: 6px; height: auto; }
.rp-prose blockquote { color: #fff; }
.rp-prose table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.rp-prose th, .rp-prose td { border-bottom: 1px solid #313a41; padding: .6em .5em; text-align: left; }
.rp-post__head { padding-bottom: 46px; }
.rp-post__head .rp-kicker a { color: #e3c27e; text-decoration: none; }
.rp-post__date { color: #9aa3ab; margin-top: 16px; font-size: .95rem; }
.rp-post__img { margin: 0 0 32px; }
.rp-post__img img { border-radius: 8px; width: 100%; height: auto; }
.rp-post__back { margin-top: 48px !important; font-weight: 700; }
.rp-post__back a { color: #e3c27e; text-decoration: none; text-transform: uppercase; font-size: .8rem; letter-spacing: .1em; }

/* Guides index / archives (query loop cards) */
.rp-blog__wrap { padding-bottom: 64px; }
.rp-postgrid .wp-block-post-template { gap: 20px; margin: 0; padding: 0; }
@media (max-width: 980px) { .rp-postgrid .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .rp-postgrid .wp-block-post-template.is-layout-grid { grid-template-columns: minmax(0, 1fr); } }
.rp-postcard--loop { height: 100%; margin: 0; }
.rp-postcard--loop > * { margin-block-start: 0 !important; }
.rp-postcard--loop:not(:has(.wp-block-post-featured-image))::before { content: ""; display: block; height: 130px; background: radial-gradient(circle at 78% 30%, rgba(236, 230, 255, .7) 0 5%, transparent 5.5%), radial-gradient(ellipse at 72% 22%, rgba(140, 110, 220, .45), transparent 55%), linear-gradient(180deg, #2a2050, #151a2a); border-bottom: 1px solid #313a41; }
.rp-postcard--loop .wp-block-post-featured-image { margin: 0; }
.rp-postcard--loop .wp-block-post-featured-image img { height: 180px; object-fit: cover; width: 100%; }
.rp-postcard--loop .rp-postcard__body > * { margin-block-start: 0; }
.rp-postcard--loop .rp-postcard__body > * + * { margin-block-start: 10px; }
.rp-postcard--loop .rp-kicker a { color: #e3c27e; text-decoration: none; }
.rp-postcard--loop .wp-block-post-title { font-size: 1.4rem; line-height: 1.22; }
.rp-postcard--loop .wp-block-post-title a { color: #fff; text-decoration: none; }
.rp-postcard--loop .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.rp-postcard--loop .wp-block-post-excerpt { color: #9aa3ab; font-size: .95rem; line-height: 1.55; }
.rp-postcard--loop .wp-block-post-excerpt__excerpt { margin: 0; }
.rp-postcard--loop .wp-block-post-date { color: #6f7a83; font-size: .8rem; }
.wp-block-query-pagination { margin-top: 32px; gap: 10px; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { color: #fff; text-decoration: none; padding: 8px 12px; border: 1px solid #3a434a; border-radius: 4px; }
.wp-block-query-pagination .page-numbers.current { background: #d7192b; border-color: #d7192b; }
.rp-searchform { margin-top: 20px; max-width: 560px; }
.rp-searchform .wp-block-search__input { background: #0f1316; border: 1px solid #3a434a; color: #fff; border-radius: 4px; padding: 12px 14px; }
.rp-searchform .wp-block-search__button { margin-left: 8px; }

/* 404 */
.rp-404__inner { text-align: center; padding-top: clamp(56px, 10vw, 120px); padding-bottom: clamp(56px, 10vw, 120px); }
.rp-404__roll { font: 800 clamp(96px, 16vw, 180px)/1 Cinzel, Georgia, serif; color: #ff6b6b; margin: 0 0 10px; text-shadow: 0 0 40px rgba(215, 25, 43, .45); }
.rp-404__title { font-family: Alegreya, Georgia, serif; font-weight: 800; font-size: clamp(32px, 5vw, 52px); color: #fff; margin: 0 0 14px; }
.rp-404__text { color: #c9cdd1; max-width: 560px; margin: 0 auto 28px; font-size: 1.1rem; }
.rp-404__links { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
