/*
 * filolnauki_theme_phase1.css
 * Phase 1 custom stylesheet for Filologicheskie Nauki OJS journal
 * Loaded via TemplateManager::display hook in FilolAccessPlugin.
 * Served at /public/filolnauki-theme-phase1.css (root-relative, no /filolnauki prefix).
 * Font files served at /public/fonts/ (root-relative, Apache static file).
 * DO NOT edit Immersion or Default theme files directly.
 * Date: 2026-05-04
 */

/* ============================================================
   FONT FACES — PT Serif + PT Sans (local, no CDN)
   Files served from /public/fonts/ in OJS public directory
   ============================================================ */

/* PT Serif — Latin subset */
@font-face {
  font-family: 'PT Serif';
  src: url('/public/fonts/pt-serif-latin-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'PT Serif';
  src: url('/public/fonts/pt-serif-latin-700-normal.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'PT Serif';
  src: url('/public/fonts/pt-serif-latin-400-italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* PT Serif — Cyrillic subset */
@font-face {
  font-family: 'PT Serif';
  src: url('/public/fonts/pt-serif-cyrillic-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'PT Serif';
  src: url('/public/fonts/pt-serif-cyrillic-700-normal.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'PT Serif';
  src: url('/public/fonts/pt-serif-cyrillic-400-italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* PT Sans — Latin subset */
@font-face {
  font-family: 'PT Sans';
  src: url('/public/fonts/pt-sans-latin-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'PT Sans';
  src: url('/public/fonts/pt-sans-latin-700-normal.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* PT Sans — Cyrillic subset */
@font-face {
  font-family: 'PT Sans';
  src: url('/public/fonts/pt-sans-cyrillic-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'PT Sans';
  src: url('/public/fonts/pt-sans-cyrillic-700-normal.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* ============================================================
   DESIGN TOKENS (CSS Variables)
   ============================================================ */
:root {
  --color-primary:    #1a3a5c;
  --color-accent:     #8b4513;
  --color-oa:         #c47c2b;
  --color-text:       #1f1f1f;
  --color-meta:       #6b7280;
  --color-bg:         #ffffff;
  --color-bg-card:    #f8f9fa;
  --color-divider:    #e2e6ea;
}

/* ============================================================
   BASE TYPOGRAPHY
   ============================================================ */
body,
.pkp_structure_main,
.pkp_structure_content {
  font-family: 'PT Sans', 'Noto Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: var(--color-text);
  background: var(--color-bg);
}

h1, h2, h3,
.page_article h1,
.page_article h2,
.article__title,
.article_title {
  font-family: 'PT Serif', 'Noto Serif', Georgia, serif;
  color: var(--color-primary);
  line-height: 1.35;
  hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  overflow-wrap: break-word;
}

h1 { font-size: 26px; }
h2 { font-size: 22px; }
h3 { font-size: 18px; }

p, .abstract-text, .article-body {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* ============================================================
   HEADER / NAVIGATION
   ============================================================ */
.pkp_structure_head,
.pkp_site_nav_menu,
nav.pkp_navigation_primary {
  background-color: var(--color-primary) !important;
}

.pkp_site_nav_menu a,
nav.pkp_navigation_primary a,
.pkp_navigation_primary_row a,
.pkp_head_wrapper a {
  color: #ffffff !important;
  font-family: 'PT Sans', sans-serif;
  font-size: 15px;
}

.pkp_site_nav_menu a:hover,
nav.pkp_navigation_primary a:hover {
  color: var(--color-oa) !important;
  text-decoration: none;
}

/* Journal title in header */
.pkp_site_name a,
.pkp_site_name_logo a,
.site_name a {
  color: #ffffff !important;
  font-family: 'PT Serif', serif;
  font-weight: 700;
}

/* ============================================================
   ARTICLE PAGE
   ============================================================ */

/* Article title */
.page_article h1,
.article__title,
h1.article_title {
  font-family: 'PT Serif', serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.35;
  hyphens: auto;
  margin-bottom: 8px;
}

/* Secondary language title */
.article__title-translation,
.article_title_secondary,
h2.article_title_translation {
  font-family: 'PT Serif', serif;
  font-size: 21px;
  font-weight: 400;
  font-style: italic;
  color: var(--color-meta);
  line-height: 1.35;
  margin-top: 4px;
  margin-bottom: 16px;
}

/* DOI link */
.doi a,
.pub-id--doi a,
a[href*="doi.org"] {
  color: var(--color-accent) !important;
  word-break: break-all;
}

/* Author list */
.authors,
.article_authors {
  font-family: 'PT Sans', sans-serif;
  font-size: 15px;
  color: var(--color-text);
  margin-bottom: 12px;
}

/* Abstract section */
.abstract h2,
.article_abstract h2 {
  font-family: 'PT Serif', serif;
  font-size: 20px;
  color: var(--color-primary);
  border-bottom: 2px solid var(--color-divider);
  padding-bottom: 4px;
  margin-top: 24px;
}

.abstract p,
.abstract__text {
  font-family: 'PT Sans', sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text);
}

/* Keywords */
.keywords .keyword,
.article_keywords a,
.keywords a {
  display: inline-block;
  padding: 3px 10px;
  background: var(--color-bg-card);
  border: 1px solid var(--color-divider);
  border-radius: 3px;
  font-size: 13px;
  color: var(--color-primary);
  text-decoration: none;
  margin: 3px;
}

.keywords .keyword:hover,
.article_keywords a:hover {
  background: var(--color-divider);
}

/* Metadata list */
.article-details,
.pkp_block_issue_toc .article-details {
  font-size: 13px;
  color: var(--color-meta);
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn,
a.btn,
button.btn {
  font-family: 'PT Sans', sans-serif;
  font-size: 14px;
  font-weight: 700;
  padding: 8px 20px;
  border-radius: 4px;
  cursor: pointer;
  text-transform: none;
  transition: filter 0.15s ease, background 0.15s ease;
  text-decoration: none;
}

/* PDF button — accent brown */
.obj_galley_link.pdf,
.galley_link.pdf,
a[href*="/download/"].btn,
.btn-accent {
  background: var(--color-accent) !important;
  color: #ffffff !important;
  border: none;
}

.obj_galley_link.pdf:hover,
.btn-accent:hover {
  filter: brightness(1.1);
  color: #ffffff !important;
}

/* HTML/view button — primary blue */
.obj_galley_link.html,
.galley_link.html,
.btn-primary-filol {
  background: var(--color-primary) !important;
  color: #ffffff !important;
  border: none;
}

.obj_galley_link.html:hover,
.btn-primary-filol:hover {
  filter: brightness(1.1);
  color: #ffffff !important;
}

/* ============================================================
   ARCHIVE PAGE
   ============================================================ */
.issues_archive,
.pkp_structure_main .issues {
  font-family: 'PT Sans', sans-serif;
}

.issues_archive h2,
.pkp_structure_main .issues h2 {
  font-family: 'PT Serif', serif;
  color: var(--color-primary);
}

/* ============================================================
   HOMEPAGE / CURRENT ISSUE
   ============================================================ */
.pkp_structure_main .home {
  font-family: 'PT Sans', sans-serif;
}

/* Immersion section color override — use primary instead of default */
.section_color {
  background: var(--color-primary) !important;
}

/* ============================================================
   SIDEBAR
   ============================================================ */
.pkp_block {
  font-family: 'PT Sans', sans-serif;
  font-size: 14px;
}

.pkp_block h2 {
  font-family: 'PT Serif', serif;
  font-size: 17px;
  color: var(--color-primary);
}

/* ============================================================
   FOOTER
   ============================================================ */
.pkp_structure_footer,
footer.pkp_structure_footer {
  background: var(--color-bg-card);
  border-top: 1px solid var(--color-divider);
  font-family: 'PT Sans', sans-serif;
  font-size: 13px;
  color: var(--color-meta);
}

.pkp_structure_footer a {
  color: var(--color-meta);
}

.pkp_structure_footer a:hover {
  color: var(--color-primary);
}

/* ============================================================
   LOGIN / REGISTER
   ============================================================ */
.page_login h1,
.page_register h1 {
  font-family: 'PT Serif', serif;
  color: var(--color-primary);
}

.page_login .pkp_form label,
.page_register .pkp_form label {
  font-family: 'PT Sans', sans-serif;
  font-weight: 700;
  color: var(--color-text);
}

/* ============================================================
   PURCHASES PAGE (FilolAccess — scope preserved)
   ============================================================ */
.page_purchases {
  font-family: 'PT Sans', sans-serif;
}

/* ============================================================
   CYRILLIC TYPOGRAPHY RULES
   ============================================================ */
h1, h2, h3,
.article-card__title,
.search-result__title {
  hyphens: auto;
  overflow-wrap: break-word;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
}

p, .abstract-text, .article-body, .abstract p {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* ============================================================
   MOBILE — NO OVERFLOW
   ============================================================ */
@media (max-width: 767px) {
  body {
    overflow-x: hidden;
  }

  .pkp_structure_main,
  .pkp_structure_content {
    max-width: 100%;
    overflow-x: hidden;
  }

  h1 { font-size: 22px; }
  h2 { font-size: 19px; }

  .page_article h1,
  .article__title {
    font-size: 22px;
  }

  /* Stack buttons vertically on mobile */
  .galleys_links,
  .pkp_structure_main .galleys {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .obj_galley_link {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 390px) {
  .pkp_site_nav_menu,
  nav.pkp_navigation_primary {
    overflow-x: hidden;
  }
}

/* ============================================================
   DARK MODE PREVENTION
   ============================================================ */
@media (prefers-color-scheme: dark) {
  body,
  .pkp_structure_main,
  .pkp_structure_head {
    background-color: var(--color-bg);
    color: var(--color-text);
  }
}

/* ============================================================
   TACTICAL FIX: Hide OJS/PKP branding from Immersion footer
   Source: Immersion templates/frontend/components/footer.tpl:30-32
   The brand link/image is hardcoded in Immersion's footer template.
   Proper fix: override footer.tpl in child theme (filolNaukiTheme/templates/).
   ============================================================ */
footer.main-footer a[href*="aboutThisPublishingSystem"],
footer.main-footer .col-2[role="complementary"],
footer.main-footer .col-sm-1[role="complementary"] {
  display: none !important;
}
