/**
 * Sukan Theme foundation for OJS 3.5.0.5.
 *
 * This file only enhances upstream frontend markup. It must not contain
 * business content, context-specific paths or data access assumptions.
 */

:root {
    --sukan-color-brand-surface: #2c3e50;
    --sukan-color-interactive: #3498db;
    --sukan-color-interactive-hover: #2980b9;
    --sukan-color-text: #2c3e50;
    --sukan-color-text-muted: #6b7280;
    --sukan-color-surface: #ffffff;
    --sukan-color-surface-subtle: #f9fafb;
    --sukan-color-border: #cbd5e1;
    --sukan-color-border-subtle: #e5e7eb;
    --sukan-color-success: #176b3a;
    --sukan-color-danger: #a12622;
    --sukan-color-warning: #7a4f00;
    --sukan-color-focus: #005fcc;
    --sukan-shadow-card: 0 0.125rem 0.5rem rgba(44, 62, 80, 0.07);
    --sukan-shadow-card-hover: 0 0.25rem 0.75rem rgba(44, 62, 80, 0.12);

    --sukan-font-size-small: 0.875rem;
    --sukan-font-size-body: 1rem;
    --sukan-font-size-h4: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
    --sukan-font-size-h3: clamp(1.125rem, 1.04rem + 0.42vw, 1.375rem);
    --sukan-font-size-h2: clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem);
    --sukan-font-size-h1: clamp(1.75rem, 1.45rem + 1.1vw, 2.25rem);
    --sukan-line-height-body: 1.65;
    --sukan-line-height-heading: 1.3;
    --sukan-line-height-control: 1.25;
    --sukan-line-height-input: 1.4;
    --sukan-line-height-small: 1.5;
    --sukan-font-weight-strong: 700;
    --sukan-reading-measure: 72ch;

    --sukan-space-1: 0.25rem;
    --sukan-space-2: 0.5rem;
    --sukan-space-3: 0.75rem;
    --sukan-space-4: 1rem;
    --sukan-space-5: 1.5rem;
    --sukan-space-6: 2rem;
    --sukan-space-7: 3rem;

    --sukan-radius-small: 0.25rem;
    --sukan-radius-medium: 0.5rem;
    --sukan-touch-target: 2.75rem;
    --sukan-checkbox-size: 1.125rem;
    --sukan-textarea-min-size: 8rem;
    --sukan-focus-width: 0.1875rem;
    --sukan-focus-offset: 0.1875rem;
    --sukan-duration-standard: 160ms;
    --sukan-duration-reduced: 0.01ms;
}

html,
body {
    color: var(--sukan-color-text);
    background: var(--sukan-color-surface-subtle);
    font-size: var(--sukan-font-size-body);
    line-height: var(--sukan-line-height-body);
}

.pkp_structure_content,
.pkp_structure_main,
.pkp_structure_sidebar,
.pkp_structure_main > .page {
    min-inline-size: 0;
}

.pkp_structure_main {
    overflow-wrap: anywhere;
}

.pkp_structure_main h1,
.pkp_structure_main h2,
.pkp_structure_main h3,
.pkp_structure_main h4 {
    color: var(--sukan-color-text);
    line-height: var(--sukan-line-height-heading);
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.pkp_structure_main h1 {
    font-size: var(--sukan-font-size-h1);
}

.pkp_structure_main h2 {
    font-size: var(--sukan-font-size-h2);
}

.pkp_structure_main h3 {
    font-size: var(--sukan-font-size-h3);
}

.pkp_structure_main h4 {
    font-size: var(--sukan-font-size-h4);
}

.pkp_structure_main p,
.pkp_structure_main li,
.pkp_structure_main dd,
.pkp_structure_main td,
.pkp_structure_main th {
    overflow-wrap: anywhere;
}

.pkp_structure_main a {
    color: var(--sukan-color-interactive);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
}

.pkp_structure_main a:hover {
    color: var(--sukan-color-interactive-hover);
}

.pkp_structure_page a:focus-visible,
.pkp_structure_page button:focus-visible,
.pkp_structure_page input:focus-visible,
.pkp_structure_page select:focus-visible,
.pkp_structure_page textarea:focus-visible,
.pkp_structure_page summary:focus-visible,
.pkp_structure_page [tabindex]:focus-visible {
    outline: var(--sukan-focus-width) solid var(--sukan-color-focus);
    outline-offset: var(--sukan-focus-offset);
}

.obj_article_summary,
.obj_issue_summary {
    display: flow-root;
    min-inline-size: 0;
    padding: var(--sukan-space-4);
    background: var(--sukan-color-surface);
    border: 1px solid var(--sukan-color-border-subtle);
    border-radius: var(--sukan-radius-medium);
    box-shadow: var(--sukan-shadow-card);
    overflow-wrap: anywhere;
    transition: border-color var(--sukan-duration-standard) ease, box-shadow var(--sukan-duration-standard) ease;
}

.obj_article_summary:hover,
.obj_issue_summary:hover {
    border-color: var(--sukan-color-border);
    box-shadow: var(--sukan-shadow-card-hover);
}

.obj_article_summary > .title,
.obj_issue_summary .title {
    line-height: var(--sukan-line-height-heading);
}

.obj_article_summary .meta,
.obj_article_summary .subtitle,
.obj_article_summary .pages,
.obj_article_summary .published,
.obj_issue_summary .series,
.obj_issue_summary .description {
    color: var(--sukan-color-text-muted);
}

.obj_article_summary .galleys_links {
    flex-wrap: wrap;
    gap: var(--sukan-space-2);
}

.obj_article_summary .galleys_links li {
    margin-inline-end: 0;
}

.cmp_button,
.cmp_button_wire,
.cmp_form .buttons button,
.pkp_structure_main button,
.pkp_structure_main input[type="button"],
.pkp_structure_main input[type="submit"] {
    box-sizing: border-box;
    min-block-size: var(--sukan-touch-target);
    max-inline-size: 100%;
    padding-block: var(--sukan-space-2);
    padding-inline: var(--sukan-space-4);
    border: 1px solid var(--sukan-color-brand-surface);
    border-radius: var(--sukan-radius-small);
    font: inherit;
    font-weight: var(--sukan-font-weight-strong);
    line-height: var(--sukan-line-height-control);
    text-align: center;
    text-decoration: none;
    white-space: normal;
    cursor: pointer;
    transition: background-color var(--sukan-duration-standard) ease, border-color var(--sukan-duration-standard) ease, color var(--sukan-duration-standard) ease, box-shadow var(--sukan-duration-standard) ease;
}

.cmp_button,
.cmp_form .buttons button,
.pkp_structure_main button,
.pkp_structure_main input[type="button"],
.pkp_structure_main input[type="submit"] {
    color: var(--sukan-color-surface);
    background: var(--sukan-color-brand-surface);
}

.cmp_button_wire {
    color: var(--sukan-color-interactive);
    background: var(--sukan-color-surface);
}

.cmp_button:hover,
.cmp_button:focus,
.cmp_form .buttons button:hover,
.cmp_form .buttons button:focus,
.pkp_structure_main button:hover,
.pkp_structure_main button:focus,
.pkp_structure_main input[type="button"]:hover,
.pkp_structure_main input[type="button"]:focus,
.pkp_structure_main input[type="submit"]:hover,
.pkp_structure_main input[type="submit"]:focus {
    color: var(--sukan-color-surface);
    background: var(--sukan-color-interactive-hover);
    border-color: var(--sukan-color-interactive-hover);
}

.cmp_button_wire:hover,
.cmp_button_wire:focus {
    color: var(--sukan-color-surface);
    background: var(--sukan-color-interactive-hover);
    border-color: var(--sukan-color-interactive-hover);
}

.cmp_button:active,
.cmp_button_wire:active,
.cmp_form .buttons button:active,
.pkp_structure_main button:active,
.pkp_structure_main input[type="button"]:active,
.pkp_structure_main input[type="submit"]:active {
    box-shadow: inset 0 0 0 1px var(--sukan-color-surface);
}

.cmp_button:disabled,
.cmp_button[aria-disabled="true"],
.cmp_button_wire:disabled,
.cmp_button_wire[aria-disabled="true"],
.cmp_form button:disabled,
.pkp_structure_main button:disabled,
.pkp_structure_main input:disabled {
    color: var(--sukan-color-text-muted);
    background: var(--sukan-color-surface-subtle);
    border-color: var(--sukan-color-border);
    box-shadow: none;
    cursor: not-allowed;
    opacity: 1;
}

.cmp_form fieldset {
    min-inline-size: 0;
}

.cmp_form label,
.cmp_form legend {
    color: var(--sukan-color-text);
}

.cmp_form input[type="text"],
.cmp_form input[type="email"],
.cmp_form input[type="password"],
.cmp_form input[type="url"],
.cmp_form input[type="tel"],
.cmp_form input[type="search"],
.cmp_form input[type="number"],
.cmp_form select,
.cmp_form textarea {
    box-sizing: border-box;
    min-block-size: var(--sukan-touch-target);
    max-inline-size: 100%;
    padding: var(--sukan-space-2) var(--sukan-space-3);
    color: var(--sukan-color-text);
    background: var(--sukan-color-surface);
    border: 1px solid var(--sukan-color-border);
    border-radius: var(--sukan-radius-small);
    font: inherit;
    line-height: var(--sukan-line-height-input);
}

.cmp_form textarea {
    min-block-size: var(--sukan-textarea-min-size);
    resize: vertical;
}

.cmp_form input[aria-invalid="true"],
.cmp_form select[aria-invalid="true"],
.cmp_form textarea[aria-invalid="true"] {
    border-color: var(--sukan-color-danger);
    box-shadow: 0 0 0 1px var(--sukan-color-danger);
}

.cmp_form .fields > div .error,
.cmp_form .pkp_form_error {
    position: static;
    display: block;
    margin-block-start: var(--sukan-space-2);
    padding: var(--sukan-space-2) var(--sukan-space-3);
    color: var(--sukan-color-surface);
    background: var(--sukan-color-danger);
    border-radius: var(--sukan-radius-small);
    font-size: var(--sukan-font-size-small);
    line-height: var(--sukan-line-height-small);
}

.cmp_form .description {
    color: var(--sukan-color-text-muted);
    font-size: var(--sukan-font-size-small);
}

.cmp_form label:has(> input[type="checkbox"]),
.cmp_form label:has(> input[type="radio"]) {
    display: flex;
    align-items: flex-start;
    min-block-size: var(--sukan-touch-target);
    gap: var(--sukan-space-2);
}

.cmp_form input[type="checkbox"],
.cmp_form input[type="radio"] {
    flex: 0 0 auto;
    inline-size: var(--sukan-checkbox-size);
    block-size: var(--sukan-checkbox-size);
    margin: var(--sukan-space-1) 0 0;
}

.cmp_pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--sukan-space-3);
    text-align: start;
}

.cmp_pagination .prev,
.cmp_pagination .next,
.cmp_pagination a {
    float: none;
    display: inline-flex;
    align-items: center;
    min-block-size: var(--sukan-touch-target);
    padding: var(--sukan-space-2) var(--sukan-space-3);
    border-radius: var(--sukan-radius-small);
}

.cmp_breadcrumbs {
    max-inline-size: 100%;
}

.cmp_breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--sukan-space-1);
}

.cmp_breadcrumbs li,
.cmp_breadcrumbs a,
.cmp_breadcrumbs .current,
.cmp_breadcrumbs .current h1 {
    min-inline-size: 0;
    overflow-wrap: anywhere;
}

.cmp_breadcrumbs .separator {
    padding-inline: var(--sukan-space-1);
    color: var(--sukan-color-text-muted);
}

.cmp_notification,
.pkp_form_error {
    padding: var(--sukan-space-4);
    color: var(--sukan-color-text);
    background: var(--sukan-color-surface-subtle);
    border: 1px solid var(--sukan-color-border-subtle);
    border-inline-start: var(--sukan-space-2) solid var(--sukan-color-brand-surface);
    border-radius: var(--sukan-radius-small);
    overflow-wrap: anywhere;
}

.cmp_notification.success,
.cmp_notification .success {
    border-inline-start-color: var(--sukan-color-success);
}

.cmp_notification.error,
.cmp_notification.no,
.cmp_notification .error,
.cmp_notification .no,
.pkp_form_error {
    border-inline-start-color: var(--sukan-color-danger);
}

.cmp_notification.warning,
.cmp_notification .warning {
    border-inline-start-color: var(--sukan-color-warning);
}

.cmp_back_link a {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--sukan-touch-target);
}

.pkp_structure_main table {
    inline-size: 100%;
    max-inline-size: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.pkp_structure_main th,
.pkp_structure_main td {
    padding: var(--sukan-space-2) var(--sukan-space-3);
    border: 1px solid var(--sukan-color-border-subtle);
    text-align: start;
    vertical-align: top;
}

.pkp_structure_main th {
    background: var(--sukan-color-surface-subtle);
}

@media (min-width: 48rem) {
    .obj_article_summary,
    .obj_issue_summary {
        padding: var(--sukan-space-5);
    }
}

@media (max-width: 29.99rem) {
    :root {
        --sukan-space-6: 1.5rem;
        --sukan-space-7: 2rem;
    }

    .cmp_form .buttons {
        display: grid;
        gap: var(--sukan-space-2);
    }

    .cmp_form .buttons a,
    .cmp_form .buttons button {
        margin-inline-start: 0;
    }

    .cmp_pagination {
        align-items: stretch;
    }
}

@media (prefers-reduced-motion: reduce) {
    .obj_article_summary,
    .obj_issue_summary,
    .cmp_button,
    .cmp_button_wire,
    .cmp_form .buttons button,
    .pkp_structure_main button,
    .pkp_structure_main input[type="button"],
    .pkp_structure_main input[type="submit"] {
        transition-duration: var(--sukan-duration-reduced);
    }
}

/*
 * M4 public reading journey.
 *
 * These selectors enhance OJS 3.5.0.5 upstream markup only. Content order,
 * visibility and routing remain the responsibility of OJS and project plugins.
 */

.page_index_journal .homepage_image,
.page_index_journal .homepage_about,
.page_index_journal .current_issue,
.page_index_journal .additional_content {
    min-inline-size: 0;
}

.page_index_journal .homepage_image img {
    display: block;
    inline-size: 100%;
    block-size: auto;
    border-radius: var(--sukan-radius-medium);
}

.page_index_journal .homepage_about,
.page_index_journal .additional_content {
    max-inline-size: var(--sukan-reading-measure);
}

.page_index_journal .current_issue {
    margin-block-start: var(--sukan-space-6);
}

.page_index_journal .current_issue_title {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--sukan-touch-target);
    margin-block: var(--sukan-space-3) var(--sukan-space-5);
    padding: var(--sukan-space-2) var(--sukan-space-4);
    color: var(--sukan-color-text);
    background: var(--sukan-color-surface-subtle);
    border-inline-start: var(--sukan-space-1) solid var(--sukan-color-brand-surface);
    border-radius: var(--sukan-radius-small);
    font-weight: var(--sukan-font-weight-strong);
    overflow-wrap: anywhere;
}

.page_index_journal .current_issue > .read_more {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--sukan-touch-target);
    margin-block-start: var(--sukan-space-4);
}

.page_issue_archive .issues_archive {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sukan-space-5);
    margin: var(--sukan-space-5) 0 0;
    padding: 0;
    border: 0;
    list-style: none;
}

.page_issue_archive .issues_archive > li {
    min-inline-size: 0;
    padding: 0;
    border: 0;
}

.page_issue_archive .obj_issue_summary {
    block-size: 100%;
}

.obj_issue_summary h2,
.obj_issue_summary .title {
    overflow-wrap: anywhere;
}

.obj_issue_summary .cover img,
.obj_issue_toc .cover img {
    max-inline-size: 100%;
    block-size: auto;
}

.obj_issue_toc .heading {
    min-inline-size: 0;
}

.obj_issue_toc .heading:has(.cover, .description, .pub_id, .published) {
    margin-block-end: var(--sukan-space-5);
    padding: var(--sukan-space-4);
    background: var(--sukan-color-surface-subtle);
    border: 1px solid var(--sukan-color-border-subtle);
    border-radius: var(--sukan-radius-medium);
}

.obj_issue_toc .sections:not(:first-child) {
    margin-block-start: var(--sukan-space-6);
}

.obj_issue_toc .section {
    position: relative;
    margin: var(--sukan-space-6) 0 0;
    padding: var(--sukan-space-5) 0 0;
    border-block-start: 1px solid var(--sukan-color-border-subtle);
}

.obj_issue_toc .section::before {
    display: none;
}

.obj_issue_toc .section > h2,
.obj_issue_toc .section > h3,
.obj_issue_toc .section > h4 {
    position: static;
    display: block;
    margin: 0 0 var(--sukan-space-4);
    padding: 0;
    color: var(--sukan-color-text);
    background: transparent;
    font-size: var(--sukan-font-size-h3);
    font-weight: var(--sukan-font-weight-strong);
    line-height: var(--sukan-line-height-heading);
}

.obj_issue_toc .articles,
.cmp_article_list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sukan-space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}

.obj_issue_toc .articles > li,
.cmp_article_list > li {
    min-inline-size: 0;
    margin: 0;
}

.obj_article_summary > .title {
    margin: 0;
    font-size: var(--sukan-font-size-h4);
}

.obj_article_summary > .title a {
    text-decoration: none;
}

.obj_article_summary > .title a:hover {
    text-decoration: underline;
}

.obj_article_summary .meta {
    margin-block-start: var(--sukan-space-2);
    padding-block-start: 0;
    line-height: var(--sukan-line-height-small);
}

.obj_article_summary .authors,
.obj_article_summary .subtitle {
    overflow-wrap: anywhere;
}

.obj_article_summary .galleys_links:empty,
.obj_issue_toc .galleys_links:empty,
.obj_article_details .galleys_links:empty,
.obj_article_details .supplementary_galleys_links:empty {
    display: none;
    margin: 0;
}

.obj_article_details > .page_title {
    max-inline-size: var(--sukan-reading-measure);
    margin: 0;
}

.obj_article_details > .subtitle {
    max-inline-size: var(--sukan-reading-measure);
    margin-block-start: var(--sukan-space-2);
    color: var(--sukan-color-text-muted);
    line-height: var(--sukan-line-height-heading);
}

.obj_article_details .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin: var(--sukan-space-6) 0 0;
    background: var(--sukan-color-surface);
    border: 1px solid var(--sukan-color-border-subtle);
    border-radius: var(--sukan-radius-medium);
    overflow: hidden;
}

.obj_article_details .main_entry,
.obj_article_details .entry_details {
    float: none;
    inline-size: auto;
    width: auto;
    min-inline-size: 0;
    margin: 0;
    border: 0;
}

.obj_article_details .main_entry .item,
.obj_article_details .entry_details .item {
    padding: var(--sukan-space-4);
    overflow-wrap: anywhere;
}

.obj_article_details .main_entry .item + .item,
.obj_article_details .entry_details .item + .item {
    border-block-start: 1px solid var(--sukan-color-border-subtle);
}

.obj_article_details .main_entry .item > .label,
.obj_article_details .entry_details .item .label {
    color: var(--sukan-color-text);
    line-height: var(--sukan-line-height-heading);
}

.obj_article_details .main_entry .abstract {
    max-inline-size: var(--sukan-reading-measure);
}

.obj_article_details .main_entry .abstract > :first-child,
.obj_article_details .entry_details .value > :first-child {
    margin-block-start: 0;
}

.obj_article_details .main_entry .abstract > :last-child,
.obj_article_details .entry_details .value > :last-child {
    margin-block-end: 0;
}

.obj_article_details ul.authors,
.obj_article_details .entry_details ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.obj_article_details ul.authors {
    display: grid;
    gap: var(--sukan-space-3);
}

.obj_article_details ul.authors > li {
    margin: 0;
}

.obj_article_details .authors .affiliation,
.obj_article_details .keywords .value,
.obj_article_details .entry_details .value {
    color: var(--sukan-color-text-muted);
    overflow-wrap: anywhere;
}

.obj_article_details .entry_details {
    background: var(--sukan-color-surface-subtle);
    border-block-start: 1px solid var(--sukan-color-border-subtle);
}

@media (min-width: 48rem) {
    .page_issue_archive .issues_archive {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .obj_article_details .main_entry .item,
    .obj_article_details .entry_details .item {
        padding: var(--sukan-space-5);
    }
}

@media (min-width: 64rem) {
    .obj_article_details .row {
        grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
    }

    .obj_article_details .main_entry {
        grid-column: 1;
        grid-row: 1;
    }

    .obj_article_details .entry_details {
        grid-column: 2;
        grid-row: 1;
        border-block-start: 0;
        border-inline-start: 1px solid var(--sukan-color-border-subtle);
    }
}

/* M5 historical archive: presentation only; data remains Plugin-owned. */
.sukan_history__header {
    max-inline-size: var(--sukan-reading-measure);
    margin-block-end: var(--sukan-space-6);
}

.sukan_history__header h1 {
    margin-block-end: var(--sukan-space-3);
}

.sukan_history__header p {
    margin: 0;
    color: var(--sukan-color-text-muted);
}

.sukan_history__years {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sukan-space-5);
}

.sukan_history__year {
    min-inline-size: 0;
    padding: var(--sukan-space-4);
    background: var(--sukan-color-surface);
    border: 1px solid var(--sukan-color-border-subtle);
    border-radius: var(--sukan-radius-medium);
}

.sukan_history__year h2 {
    margin: 0 0 var(--sukan-space-4);
    padding-block-end: var(--sukan-space-2);
    border-block-end: 1px solid var(--sukan-color-border-subtle);
    font-size: var(--sukan-font-size-h3);
}

.sukan_history__issues {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sukan-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.sukan_history__issue {
    min-inline-size: 0;
    margin: 0;
    padding: var(--sukan-space-2) var(--sukan-space-3);
    background: var(--sukan-color-surface-subtle);
    border-radius: var(--sukan-radius-small);
    overflow-wrap: anywhere;
}

.sukan_history__issue a {
    font-weight: var(--sukan-font-weight-strong);
}

.sukan_history__issue--unavailable {
    color: var(--sukan-color-text-muted);
}

.sukan_history__unavailable {
    display: block;
    margin-block-start: var(--sukan-space-1);
    font-size: var(--sukan-font-size-small);
}

@media (min-width: 30rem) {
    .sukan_history__issues {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 48rem) {
    .sukan_history__years {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
