/* ==========================================================================
   Components for the forms and policy pages carried over from the previous
   theme, and for markup the Atopos Platform plugin prints (account editor).
   Class names are kept so those templates work unchanged; the look follows
   Atopos Beauty. Everything here sits on the Parchment surface.
   ========================================================================== */

/* ---------- Layout ---------- */
.container { width: 100%; max-width: var(--ab-wide); margin: 0 auto; padding-left: var(--ab-gutter); padding-right: var(--ab-gutter); }
/* Every view shares one container width. The old "narrow" and "mid" variants keep
   their spacing but no longer shrink the column; line length is limited on the text
   and form fields themselves instead. */
.container--narrow { padding-top: 8px; padding-bottom: 80px; }

.page-header { padding: 48px 0 32px; margin-bottom: 32px; border-bottom: 1px solid var(--ab-rule); }
.page-header__title { font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.15; letter-spacing: -0.01em; }
.page-header__lead { margin-top: 16px; font-size: 1.1875rem; color: var(--ab-text-2); max-width: 40em; }
.page-header__version { margin-top: 12px; font-size: 0.9375rem; color: var(--ab-label); }

.page-content, .policy-content { font-size: 1.0625rem; }
.page-content > * + *, .policy-content > * + * { margin-top: 1.1em; }
.page-content h2, .policy-content h2 { margin-top: 2em; font-size: 1.5rem; }
.page-content h3, .policy-content h3 { margin-top: 1.5em; font-size: 1.1875rem; }
.page-content p, .policy-content p, .page-content li, .policy-content li { max-width: var(--ab-measure); }
.page-content ul, .page-content ol, .policy-content ul, .policy-content ol { padding-left: 1.4em; }
.page-content li + li, .policy-content li + li { margin-top: 0.4em; }
.policy-content section + section { margin-top: 2.5em; padding-top: 2em; border-top: 1px solid var(--ab-rule-soft); }
.policy-content dt { margin-top: 1em; font-weight: 700; }
.policy-content dd { margin: 0.25em 0 0; color: var(--ab-text-2); }
.about-section + .about-section { margin-top: 2.5em; }
.about-section h2 { font-size: 1.5rem; margin-bottom: 0.6em; }
.page-cta { margin-top: 2.5em; padding: 28px; border-radius: var(--ab-radius-lg); background: var(--ab-parchment-2); }
.submit-section { margin-top: 2.5em; padding-top: 2em; border-top: 1px solid var(--ab-rule-soft); }
.submit-section > h2 { font-size: 1.375rem; margin-bottom: 0.8em; }

/* ---------- Buttons ---------- */
.btn, .button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 20px; border-radius: var(--ab-radius); border: 1px solid transparent;
	font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color var(--transition), border-color var(--transition);
}
.btn--primary, .button--primary { background: var(--ab-green); color: var(--ab-parchment); }
.btn--primary:hover, .button--primary:hover { background: #35593F; color: var(--ab-parchment); }
.btn--secondary, .button--secondary { background: transparent; color: var(--ab-text); border-color: var(--ab-text); }
.btn--secondary:hover, .button--secondary:hover { background: rgba(61, 43, 31, 0.06); color: var(--ab-text); }
.btn--ghost { background: transparent; color: var(--ab-link); border-color: var(--ab-chip-border); }
.btn--ghost:hover { border-color: var(--ab-text); color: var(--ab-text); }
.btn[disabled], .button[disabled] { opacity: 0.55; cursor: not-allowed; }

/* ---------- Notices ---------- */
.notice { margin: 1.25em 0; padding: 16px 20px; border-radius: var(--ab-radius-lg); border-left: 4px solid var(--ab-text-2); background: var(--ab-parchment-2); color: var(--ab-text); }
.notice p + p { margin-top: 0.5em; }
.notice--success { border-left-color: var(--ab-green); background: #E3EBDA; }
.notice--error { border-left-color: var(--ab-error); background: #F3DDD5; }
.notice--warning { border-left-color: #B07A1E; background: #F2E3C4; }
.notice--info { border-left-color: #6E8A97; background: #E2E7E5; }

/* ---------- Forms ---------- */
.form-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 22px; max-width: 720px; }
.notice { max-width: 860px; }
.platform-info { max-width: 860px; }
fieldset { max-width: 760px; }
.form-label { font-weight: 700; color: var(--ab-text); }
.form-label--required::after { content: ' *'; color: var(--ab-error); }
.form-hint { font-size: 0.9375rem; color: var(--ab-label); max-width: 60ch; }
.form-input, .form-select, .form-textarea {
	width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid rgba(61, 43, 31, 0.35); border-radius: var(--ab-radius);
	background: var(--ab-paper-white); color: var(--ab-ground); font-size: 1.0625rem;
}
.form-textarea { min-height: 140px; line-height: 1.5; resize: vertical; }
.form-select { appearance: none; padding-right: 40px; background-image: linear-gradient(45deg, transparent 50%, var(--ab-ink-3) 50%), linear-gradient(135deg, var(--ab-ink-3) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.form-input:focus, .form-select:focus, .form-textarea:focus { outline: 2px solid var(--ab-green); outline-offset: 1px; border-color: var(--ab-green); }
.form-input[type="file"] { padding: 10px; min-height: 0; }
.form-check { display: flex; align-items: flex-start; gap: 10px; margin: 8px 0; min-height: 32px; }
.form-check input[type="checkbox"], .form-check input[type="radio"] { flex: none; width: 20px; height: 20px; margin-top: 3px; accent-color: var(--ab-green); }
fieldset { margin: 0 0 22px; padding: 20px; border: 1px solid var(--ab-rule); border-radius: var(--ab-radius-lg); }
legend { padding: 0 8px; font-weight: 700; }

/* ---------- WordPress login form (wp_login_form on /account/) ---------- */
#loginform { max-width: 420px; display: flex; flex-direction: column; gap: 18px; margin: 8px 0 24px; }
#loginform p { margin: 0; }
#loginform .login-username label, #loginform .login-password label { display: block; margin-bottom: 6px; font-weight: 700; }
#loginform .input { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid rgba(61, 43, 31, 0.35); border-radius: var(--ab-radius); background: var(--ab-paper-white); color: var(--ab-ground); font-size: 1.0625rem; }
#loginform .input:focus { outline: 2px solid var(--ab-green); outline-offset: 1px; border-color: var(--ab-green); }
#loginform .login-remember label { display: inline-flex; align-items: center; gap: 10px; min-height: 32px; }
#loginform .login-remember input { width: 20px; height: 20px; accent-color: var(--ab-green); }
#loginform .button { min-height: 48px; padding: 0 28px; border: 0; border-radius: var(--ab-radius); background: var(--ab-green); color: var(--ab-parchment); font-weight: 700; font-size: 1rem; cursor: pointer; }
#loginform .button:hover { background: #35593F; }

/* ---------- Definition lists of platform facts ---------- */
.platform-info { display: grid; grid-template-columns: minmax(140px, max-content) 1fr; gap: 10px 24px; margin: 1.5em 0; padding: 22px; border: 1px solid var(--ab-rule); border-radius: var(--ab-radius-lg); }
.platform-info dt { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ab-label); padding-top: 3px; }
.platform-info dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) { .platform-info { grid-template-columns: 1fr; } .platform-info dd { margin-bottom: 8px; } }

/* ---------- Tier badge (legacy markup) ---------- */
.tier-badge { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 2px 12px; border-radius: 999px; border: 1px solid var(--ab-green); color: var(--ab-green-ink); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.tier-badge__description { font-weight: 400; letter-spacing: 0.04em; text-transform: none; color: var(--ab-text-2); }
.tier-badge--small { padding: 1px 10px; }
.tier-badge--withdrawn { border-color: var(--ab-chip-border); color: var(--ab-label); }
.tier-badge__link { color: inherit; }

/* ---------- Fee table (submit page) ---------- */
.fee-table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: 0.9375rem; }
.fee-table th, .fee-table td { padding: 10px 12px; border-bottom: 1px solid var(--ab-rule-soft); text-align: left; }
.fee-table th { font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ab-label); }
.fee-table td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fee-table__note { font-size: 0.875rem; color: var(--ab-label); }

/* ---------- Roadmap ---------- */
.roadmap { display: flex; flex-direction: column; gap: 20px; margin-top: 1.5em; }
.roadmap__phase { padding: 24px; border: 1px solid var(--ab-rule); border-radius: var(--ab-radius-lg); }
.roadmap__phase--current { border: 2px solid var(--ab-green); background: var(--ab-paper-white); }
.roadmap__phase-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-bottom: 12px; }
.roadmap__phase-label { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ab-green-ink); }
.roadmap__phase-title { font-size: 1.25rem; }
.roadmap__phase:not(.roadmap__phase--current) .roadmap__phase-label { color: var(--ab-label); }
.roadmap__features { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.roadmap__feature { position: relative; padding-left: 26px; }
.roadmap__feature::before { content: ''; position: absolute; left: 2px; top: 0.45em; width: 10px; height: 10px; border: 1.5px solid var(--ab-label); border-radius: 50%; }
.roadmap__feature--done::before { background: var(--ab-green); border-color: var(--ab-green); }
.roadmap__note { margin-top: 12px; font-size: 0.9375rem; color: var(--ab-label); }

/* ---------- Transparency ---------- */
.transparency-section { margin-top: 2.5em; }
.transparency-section h2 { font-size: 1.5rem; margin-bottom: 0.6em; }
.transparency-section p { max-width: var(--ab-measure); }
.transparency-section__note { margin-top: 0.75em; font-size: 0.9375rem; color: var(--ab-label); }
.transparency-stats, .transparency-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin: 1.25em 0; }
.transparency-stat { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--ab-rule); border-radius: var(--ab-radius-lg); background: var(--ab-paper-white); }
.transparency-stat__number { font-size: 2.25rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.transparency-stat__label { font-size: 0.875rem; color: var(--ab-label); }
.transparency-stat--fund { background: var(--ab-ground); color: var(--ab-parchment); border-color: var(--ab-ground); }
.transparency-stat--fund .transparency-stat__label { color: var(--ab-sand); }
.transparency-log-table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.transparency-log-table th, .transparency-log-table td { padding: 12px; border-bottom: 1px solid var(--ab-rule-soft); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.transparency-log-table td:first-child, .transparency-log-table th:first-child { white-space: nowrap; }
.transparency-log-table td:nth-child(3) { min-width: 16em; }
.transparency-log-table th { font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ab-label); }
.transparency-log-table code { font-size: 0.875em; }

/* ---------- Old card markup, if any plugin screen still prints it ---------- */
.papers-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 20px; margin-top: 24px; }
.paper-card { padding: 24px; border: 1px solid var(--ab-rule); border-radius: var(--ab-radius-lg); background: var(--ab-paper-white); }
.paper-card__title { font-size: 1.25rem; margin: 8px 0; }
.paper-card__title a { color: var(--ab-text); text-decoration: none; }
.paper-card__authors, .paper-card__meta { color: var(--ab-text-2); font-size: 0.9375rem; }
.archive-header { padding: 48px 0 24px; }
.archive-header__title { font-size: clamp(2rem, 3.8vw, 3rem); }
.archive-header__description { margin-top: 12px; color: var(--ab-text-2); }

/* ==========================================================================
   Account pages and My Account (views from Atopos Core)
   One page header, then tabs; each tab uses the full container width.
   ========================================================================== */
.ab-account-head { padding-bottom: 28px; }
.ab-account-head__row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; }
.ab-account-head__who a { color: var(--ab-label); }
.ab-account-head .ab-page-head__lead { margin-top: 10px; max-width: 46em; }
.ab-account { display: flex; flex-direction: column; gap: 24px; padding-top: 28px; padding-bottom: 80px; }
.ab-account > .notice { margin: 0; }

.ab-tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--ab-rule); }
.ab-tabs__tab { flex: none; padding: 12px 20px; margin-bottom: -1px; border: 1px solid transparent; border-radius: var(--ab-radius) var(--ab-radius) 0 0; color: var(--ab-text-2); font-weight: 700; text-decoration: none; }
.ab-tabs__tab:hover { color: var(--ab-text); background: var(--ab-parchment-2); }
.ab-tabs__tab[aria-current="page"] { color: var(--ab-text); background: var(--ab-parchment); border-color: var(--ab-rule); border-bottom-color: var(--ab-parchment); box-shadow: inset 0 3px 0 var(--ab-green); }

.ab-account__panel { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ab-account__panel > .notice { margin: 0; }
.ab-account__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.ab-account__head h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); line-height: 1.2; }
.ab-account__empty { padding: 24px 0; color: var(--ab-text-2); font-size: 1.0625rem; }
.ab-account__sub { margin-top: 24px; }
.ab-account__intro { margin: 0; }
.ab-account-row { gap: 8px 24px; padding: 18px 0; }
.ab-account-row:first-child { padding-top: 4px; }
.ab-account-row .ab-row__body { flex: 1 1 100%; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ab-account-row .ab-row__title { font-weight: 700; font-size: 1.125rem; }
.ab-account-meta .ab-tag { margin-right: 6px; }
.ab-account-note { margin-top: 2px; color: var(--ab-text-2); font-size: 0.9375rem; }
.ab-account-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; margin-top: 4px; font-size: 0.9375rem; font-weight: 700; }
.ab-link-form { display: inline; margin: 0; }
.ab-link-form button { padding: 0; border: 0; background: none; color: var(--ab-link, var(--ab-green-ink)); font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.ab-link-form button:hover { color: var(--ab-text); }
.ab-status { font-weight: 700; }
.ab-status--atopos_revision, .ab-status--draft { color: #8A5A0B; }
.ab-status--publish { color: var(--ab-green-ink); }
.ab-status--atopos_rejected, .ab-status--atopos_withdrawn { color: var(--ab-label); }
.ab-crumbs-inline { font-size: 0.9375rem; }
.ab-crumbs-inline a { color: var(--ab-label); }
.ab-account-paper { display: flex; flex-direction: column; gap: 24px; }
.ab-account-paper__title { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.2; }
.ab-account-paper__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ab-account-paper__actions .ab-inline-form { margin: 0; }
.ab-account-paper .notice { margin: 0; }
.ab-history { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ab-history time { display: inline-block; min-width: 9em; color: var(--ab-label); }
.ab-account-withdraw summary, .ab-details summary { cursor: pointer; font-weight: 700; padding: 8px 0; }
.ab-inline-form { display: inline-block; margin-top: 8px; }
.ab-settings { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px 48px; }
.ab-settings__group .ab-block-title { margin-bottom: 14px; }

/* Researcher form */
.ab-field-kind { flex: 0 1 200px !important; }
.ab-kind-fixed { min-height: 48px; display: flex; align-items: center; margin: 0; }
.ab-contacts { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; max-width: 720px; }
.ab-contact { display: flex; gap: 8px; align-items: center; }
.ab-contact .form-select { flex: 0 0 130px; }
.ab-contact .form-input { flex: 1 1 auto; min-width: 0; }
.ab-contact .ab-icon-btn, .ab-author__tools .ab-icon-btn { flex: none; width: 40px; height: 40px; border: 1px solid var(--ab-rule); border-radius: var(--ab-radius); background: transparent; color: var(--ab-text); font-size: 1.125rem; cursor: pointer; }

/* Forms */
.ab-form { display: flex; flex-direction: column; }
.ab-form .form-field:last-child { margin-bottom: 0; }
.ab-form__actions { margin-top: 12px; }
.ab-form__actions--split { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 24px; border-top: 1px solid var(--ab-rule); }
.ab-fieldset { margin: 0 0 32px; padding: 0; border: 0; min-width: 0; }
.ab-fieldset > legend { margin-bottom: 16px; padding: 0; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ab-label); }
.ab-fieldset > .form-hint { margin-bottom: 14px; }
.form-error { margin: 2px 0 0; color: var(--ab-error); font-weight: 700; font-size: 0.9375rem; }
.notice ul { margin: 0.5em 0 0 1.25em; }
.ab-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
[hidden] { display: none !important; }

/* The author list on the submission form */
.ab-authors { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 12px; max-width: 860px; }
.ab-author { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px 16px; padding: 16px; border: 1px solid var(--ab-rule); border-radius: var(--ab-radius-lg); background: var(--ab-paper-white, transparent); }
.ab-author__main { flex: 999 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.ab-author__more { order: 3; flex: 1 1 100%; display: flex; flex-direction: column; }
.ab-author__more .form-field { margin-bottom: 12px; }
.ab-author__pair { display: flex; flex-wrap: wrap; gap: 0 16px; }
.ab-author__pair > .form-field { flex: 1 1 220px; min-width: 0; }
.ab-author__tools { flex: 0 0 auto; display: flex; gap: 4px; align-self: flex-end; }
.ab-author__tools .ab-icon-btn:hover { border-color: var(--ab-text); }

.ab-account-meta { display: block; margin: 0; color: var(--ab-label); font-size: 0.9375rem; line-height: 1.5; }
.ab-account-meta .ab-num { color: var(--ab-text-2); }

/* Researcher profile: affiliation and How to reach */
.ab-profile__affiliation { margin-top: 6px; color: var(--ab-silver); font-size: 1.0625rem; }
.ab-reach li { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; overflow-wrap: anywhere; }
.ab-reach__type { min-width: 4.5em; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ab-label); }

/* Search-and-pick field (collaborators) */
.ab-picker { max-width: 720px; }
.ab-picker__box { position: relative; }
.ab-picker__input { width: 100%; }
.ab-picker__list { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px; list-style: none; background: var(--ab-paper-white, #FFFDF8); border: 1px solid var(--ab-rule); border-radius: var(--ab-radius); box-shadow: 0 8px 24px rgba(42, 31, 24, 0.12); max-height: 320px; overflow-y: auto; }
.ab-picker__option { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: var(--ab-radius); cursor: pointer; }
.ab-picker__option[aria-selected="true"], .ab-picker__option:hover { background: var(--ab-parchment-2); }
.ab-picker__none { padding: 10px 12px; color: var(--ab-label); }
.ab-picker__chips { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ab-picker__chip { display: inline-flex; align-items: center; gap: 8px; padding: 4px 4px 4px 12px; border: 1px solid var(--ab-chip-border); border-radius: 999px; background: var(--ab-parchment-2); font-weight: 700; }
.ab-picker__chip button { width: 28px; height: 28px; border: 0; border-radius: 50%; background: transparent; color: var(--ab-text-2); font-size: 1.125rem; line-height: 1; cursor: pointer; }
.ab-picker__chip button:hover, .ab-picker__chip button:focus-visible { background: var(--ab-text); color: var(--ab-parchment); }
.ab-picker__fallback { width: 100%; }

/* Reading text: a gap of 0.6 of a line between paragraphs and lists, so they sit
   about 1.6 lines apart, line to line (the reset sets 0). lh where supported; 1rem otherwise. */
:where(.page-content, .policy-content, .about-section, .transparency-section, .platform-info, .roadmap__note,
	.ab-prose, .ab-entry__content, .ab-abstract__body, .ab-profile__text, .ab-panel-note__body, .notice, .ab-account-paper .ab-prose)
	:is(p, ul, ol, blockquote, dl):not(:last-child) {
	margin-bottom: 1rem;
	margin-bottom: 0.6lh;
}
:where(.page-content, .policy-content, .about-section, .ab-prose, .ab-entry__content) :is(h2, h3, h4) { margin-bottom: 0.6em; }
:where(.page-content, .policy-content, .ab-prose, .ab-entry__content) section + section { margin-top: 1.5lh; }

/* ==========================================================================
   Journals: the index and each journal's page. A journal's style recolours
   its own area only; the site header and footer stay as they are.
   ========================================================================== */
.ab-journal-mark { display: grid; place-items: center; width: 100%; height: 100%; border-radius: var(--ab-radius-lg); background: var(--ab-ground); color: var(--ab-parchment);
	font-family: var(--ab-font-display); font-style: italic; font-weight: 400; font-size: 3.2rem; line-height: 1; }
.ab-journal-index { padding-top: 40px; padding-bottom: 80px; }
.ab-journal-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.ab-journal-card { display: flex; flex-direction: column; gap: 12px; }
.ab-journal-card__link { display: flex; align-items: center; gap: 16px; color: var(--ab-text); text-decoration: none; }
.ab-journal-card__link:hover .ab-journal-card__name { text-decoration: underline; }
.ab-journal-card__logo { flex: none; width: 64px; height: 64px; }
.ab-journal-card__logo img { width: 64px; height: 64px; object-fit: contain; border-radius: var(--ab-radius-lg); }
.ab-journal-card__name { font-size: 1.25rem; font-weight: 700; line-height: 1.25; }
.ab-journal-card__scope { color: var(--ab-text-2); }

.ab-journal { background: var(--ab-bg); color: var(--ab-text); padding-bottom: 80px; }
.ab-journal__head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px 40px; padding-top: 32px; padding-bottom: 40px; border-bottom: 1px solid var(--ab-rule); }
.ab-journal__logo { flex: none; width: 128px; height: 128px; }
.ab-journal__logo img { width: 128px; height: 128px; object-fit: contain; border-radius: var(--ab-radius-lg); }
.ab-journal__logo .ab-journal-mark { font-size: 5.5rem; }
.ab-journal__title { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.ab-journal__title h1 { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.12; letter-spacing: -0.01em; color: var(--ab-text); }
.ab-journal__scope { max-width: var(--ab-measure); font-size: 1.125rem; color: var(--ab-text-2); }
.ab-journal__editors { color: var(--ab-label); }
.ab-journal__editors a { color: var(--ab-link); }
.ab-journal__body { padding-top: 32px; display: flex; flex-direction: column; gap: 24px; }
.ab-journal__year { display: flex; flex-direction: column; }
.ab-journal__year-title { padding-bottom: 8px; border-bottom: 2px solid var(--ab-text); font-size: 1.5rem; }

/* Light and Dark: neutral grounds, grey text, one accent. */
.ab-journal--light {
	--ab-bg: #FBFBF9; --ab-text: #1E1E1E; --ab-text-2: #4A4A4A; --ab-label: #5E5E5E;
	--ab-link: #1F5F8B; --ab-link-hover: #1E1E1E; --ab-rule: rgba(0, 0, 0, 0.16); --ab-rule-soft: rgba(0, 0, 0, 0.08); --ab-chip-border: rgba(0, 0, 0, 0.28);
}
.ab-journal--dark {
	--ab-bg: #121212; --ab-text: #ECECEC; --ab-text-2: #C2C2C2; --ab-label: #A8A8A8;
	--ab-link: #8FC1E3; --ab-link-hover: #FFFFFF; --ab-rule: rgba(255, 255, 255, 0.18); --ab-rule-soft: rgba(255, 255, 255, 0.1); --ab-chip-border: rgba(255, 255, 255, 0.35);
}
.ab-journal--light a, .ab-journal--dark a { color: var(--ab-link); }
.ab-journal--light .ab-row__title a, .ab-journal--dark .ab-row__title a { color: var(--ab-text); }
.ab-journal--light .ab-journal-mark, .ab-journal--dark .ab-journal-mark { background: var(--ab-text); color: var(--ab-bg); }
.ab-journal--light .ab-badge--tier { color: var(--ab-link); border-color: var(--ab-link); }
.ab-journal--dark .ab-badge--tier { color: var(--ab-link); border-color: var(--ab-link); }
.ab-journal--dark .ab-tag--ai { background: #3A4A55; color: #ECECEC; }

/* ==========================================================================
   Homepage from blocks (patterns/home.php). Core blocks carry the theme's own
   class names; these rules cover what block markup adds or changes.
   ========================================================================== */
:where(.ab-hero, .ab-why, .ab-places) :where(.wp-block-group, .wp-block-heading, .wp-block-buttons, p) { margin-block: 0; }
.ab-hero__actions.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.ab-hero__actions .wp-block-button { margin: 0; }
.ab-hero__actions .wp-block-button__link { min-height: 52px !important; padding: 0 26px !important; }
.wp-block-button[class*="is-style-atopos-"] .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 20px; border-radius: var(--ab-radius); border: 1px solid transparent;
	font-family: inherit; font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none; box-shadow: none;
	transition: background-color var(--transition), border-color var(--transition), color var(--transition);
}
.wp-block-button.is-style-atopos-primary .wp-block-button__link { background: var(--ab-green); color: var(--ab-parchment); }
.wp-block-button.is-style-atopos-primary .wp-block-button__link:hover { background: #35593F; color: var(--ab-parchment); }
.wp-block-button.is-style-atopos-outline .wp-block-button__link { background: transparent; color: var(--ab-text); border-color: var(--ab-chip-border); }
.wp-block-button.is-style-atopos-outline .wp-block-button__link:hover { border-color: var(--ab-text); color: var(--ab-text); }
.ab-hero__actions .is-style-atopos-outline .wp-block-button__link { color: var(--ab-parchment); border-color: rgba(245, 236, 215, 0.45); }

/* The ring and its "a": decoration, drawn by CSS and hidden from screen readers. */
.ab-hero::after {
	content: 'a'; content: 'a' / '';
	justify-self: center; display: flex; align-items: center; justify-content: center;
	width: clamp(150px, 24vw, 340px); aspect-ratio: 1; padding-bottom: 4%; box-sizing: border-box;
	border: 1px solid rgba(196, 212, 220, 0.35); border-radius: 50%;
	font-family: var(--ab-font-display); font-style: italic; font-weight: 300; line-height: 1;
	font-size: calc(clamp(150px, 24vw, 340px) * 0.68); color: var(--ab-silver);
}
@media (max-width: 719px) { .ab-hero::after { display: none; } }

.ab-why__item::before { content: ''; display: block; width: 34px; height: 2px; background: var(--ab-leaf); }
.ab-why__more a { display: inline-block; padding: 6px 0; font-weight: 700; }

.ab-places__list .ab-place { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 0; border-bottom: 1px solid rgba(245, 236, 215, 0.14); }
.ab-places__list .ab-place:last-child { border-bottom: 0; }
.ab-places__list .ab-place.is-later { opacity: 0.85; }
.ab-places__list[role="list"], .ab-places__list { list-style: none; }

/* ==========================================================================
   Site pages from blocks (About, policies, Roadmap, Transparency).
   ========================================================================== */
.platform-info .platform-info__term { margin: 0; padding-top: 3px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ab-label); }
.platform-info .platform-info__value { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) { .platform-info .platform-info__value { margin-bottom: 8px; } }
.roadmap__features > li { position: relative; padding-left: 26px; }
.roadmap__features > li::before { content: ''; position: absolute; left: 2px; top: 0.45em; width: 10px; height: 10px; border: 1.5px solid var(--ab-label); border-radius: 50%; }
.roadmap__features > li.is-style-done::before { background: var(--ab-green); border-color: var(--ab-green); }
.roadmap__phase-header > .roadmap__phase-label { margin: 0; }
.ab-terms .ab-terms__term { margin: 1em 0 0; font-weight: 700; }
.ab-terms .ab-terms__value { margin: 0.25em 0 0; color: var(--ab-text-2); }
:where(.page-content, .policy-content) .ab-terms:not(:last-child) { margin-bottom: 1rem; margin-bottom: 0.6lh; }
.ab-terms :is(.ab-terms__term, .ab-terms__value) { max-width: none; }

/* ==========================================================================
   Search suggestions (assets/js/search-suggest.js): a list under the box.
   ========================================================================== */
.ab-suggest { position: absolute; z-index: 60; top: calc(100% + 6px); left: 0; right: 0; max-height: min(70vh, 460px); overflow-y: auto;
	padding: 6px 0; border: 1px solid rgba(61, 43, 31, 0.22); border-radius: var(--ab-radius-lg); background: var(--ab-paper-white, #FFFDF8); color: var(--ab-ground);
	box-shadow: 0 12px 32px rgba(30, 20, 12, 0.22); text-align: left; }
.ab-suggest[hidden] { display: none; }
.ab-suggest__label { padding: 8px 16px 4px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ab-ink-3); }
.ab-suggest__option { display: flex; flex-direction: column; gap: 2px; padding: 8px 16px; color: var(--ab-ground); text-decoration: none; cursor: pointer; }
.ab-suggest__option[aria-selected="true"], .ab-suggest__option:hover { background: rgba(61, 90, 64, 0.12); color: var(--ab-ground); }
.ab-suggest__option[aria-selected="true"] { box-shadow: inset 3px 0 0 var(--ab-green); }
.ab-suggest__title { font-weight: 600; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ab-suggest__meta { font-size: 0.8125rem; color: var(--ab-ink-3); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ab-suggest__all { margin-top: 4px; border-top: 1px solid rgba(61, 43, 31, 0.14); padding-top: 10px; }
.ab-suggest__all .ab-suggest__title { font-weight: 600; color: var(--ab-green-ink); }
.ab-search--hero .ab-suggest { top: calc(100% + 8px); }
@media (max-width: 560px) { .ab-suggest { max-height: 60vh; } .ab-suggest__option { padding: 10px 14px; } }
