/* ==========================================================================
   REVISTA PSICOLOGIA E SAÚDE — OJS HEALTH SCIENCES THEME
   Custom Stylesheet
   University: Universidade Católica Dom Bosco (UCDB)
   Cover-inspired Color Palette + Sophisticated Layout
   File: custom.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. GOOGLE FONTS IMPORT — Elegant Sans-Serif Typography
   Using: 'Raleway' (display/headings) + 'Open Sans' (body)
   -------------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400&family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400&display=swap');

/* --------------------------------------------------------------------------
   2. CSS CUSTOM PROPERTIES (Design Tokens)
   Color palette extracted from journal cover style:
   Deep navy blue + teal accent + warm white + gold highlight
   -------------------------------------------------------------------------- */
:root {
  /* Primary Palette */
  --pssa-navy:        #1A2B4A;   /* Deep navy – primary brand color           */
  --pssa-navy-mid:    #243560;   /* Mid navy – header gradient                 */
  --pssa-teal:        #2A7F8C;   /* Teal – accent, links, highlights           */
  --pssa-teal-light:  #3BA8B8;   /* Light teal – hover states, borders         */
  --pssa-teal-pale:   #EAF6F8;   /* Pale teal – section backgrounds            */
  --pssa-gold:        #C9A84C;   /* Gold – decorative accents, underlines      */
  --pssa-gold-light:  #F0D898;   /* Light gold – subtle highlights             */

  /* Neutrals */
  --pssa-white:       #FFFFFF;
  --pssa-offwhite:    #F7F9FA;
  --pssa-gray-100:    #F2F4F6;
  --pssa-gray-200:    #E4E8EC;
  --pssa-gray-400:    #9BA8B3;
  --pssa-gray-600:    #5C6A78;
  --pssa-gray-800:    #2C3A47;
  --pssa-text:        #1E2D3D;   /* Main body text color                       */

  /* Typography */
  --font-display:     'Raleway', 'Fira Sans', 'Helvetica Neue', sans-serif;
  --font-body:        'Open Sans', 'PT Serif', Georgia, serif;
  --font-mono:        'Courier New', Courier, monospace;

  /* Spacing & Layout */
  --border-radius-sm: 4px;
  --border-radius-md: 8px;
  --border-radius-lg: 16px;
  --shadow-card:      0 2px 16px rgba(26, 43, 74, 0.10);
  --shadow-header:    0 4px 24px rgba(26, 43, 74, 0.18);
  --transition-base:  all 0.25s ease-in-out;

  /* OJS Health Sciences Theme Color Override */
  --hs-theme-color:   #2A7F8C;
}

/* --------------------------------------------------------------------------
   3. GLOBAL RESET & BASE STYLES
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75;
  color: var(--pssa-text);
  background-color: var(--pssa-offwhite);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* --------------------------------------------------------------------------
   4. TYPOGRAPHY — Elegant Sans-Serif Hierarchy
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.3;
  color: var(--pssa-navy);
  letter-spacing: -0.01em;
  margin-top: 0;
}

h1, .h1 { font-size: 2.25rem; font-weight: 700; }
h2, .h2 { font-size: 1.75rem; font-weight: 600; }
h3, .h3 { font-size: 1.375rem; font-weight: 600; }
h4, .h4 { font-size: 1.125rem; font-weight: 600; }
h5, .h5 { font-size: 1rem;     font-weight: 600; }
h6, .h6 { font-size: 0.875rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; }

p {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.8;
  margin-bottom: 1.25rem;
  color: var(--pssa-gray-800);
}

/* Override OJS default serif body fonts */
.pkp_page_index body,
.page_index body {
  font-family: var(--font-body);
}

/* --------------------------------------------------------------------------
   5. LINKS
   -------------------------------------------------------------------------- */
a,
a:link {
  color: var(--pssa-teal);
  text-decoration: none;
  transition: var(--transition-base);
}

a:hover,
a:focus {
  color: var(--pssa-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}

a:visited {
  color: var(--pssa-teal);
}

/* --------------------------------------------------------------------------
   6. SITE HEADER — Sophisticated Centered Layout
   -------------------------------------------------------------------------- */

/* Main site header wrapper */
.pkp_site_header,
header.pkp_structure_head,
.navbar {
  background: linear-gradient(135deg, var(--pssa-navy) 0%, var(--pssa-navy-mid) 60%, var(--pssa-teal) 100%);
  box-shadow: var(--shadow-header);
  padding: 0;
  border-bottom: 3px solid var(--pssa-gold);
}

/* Header top bar (ISSN / utility links) */
.pkp_site_header .pkp_header_top,
.header_top {
  background-color: rgba(0, 0, 0, 0.20);
  padding: 6px 24px;
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pssa-gold-light);
}

.pkp_site_header .pkp_header_top a {
  color: var(--pssa-gold-light);
  opacity: 0.85;
}

.pkp_site_header .pkp_header_top a:hover {
  opacity: 1;
  color: var(--pssa-white);
}

/* --------------------------------------------------------------------------
   7. LOGO — Large, Centered, Prominent
   -------------------------------------------------------------------------- */
.pkp_site_header .pkp_site_name,
.navbar-brand,
header .site-name {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 28px 24px 20px;
  text-align: center;
}

/* Logo image – large and centered */
.pkp_site_header .pkp_site_name img,
.navbar-brand img,
header .site-name img,
#pkp_site_name img {
  display: block;
  margin: 0 auto;
  max-width: 340px;
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);   /* Makes logo white on dark header */
  transition: var(--transition-base);
}

.pkp_site_header .pkp_site_name img:hover,
.navbar-brand img:hover {
  filter: brightness(0) invert(1) drop-shadow(0 0 12px rgba(201, 168, 76, 0.6));
  transform: scale(1.02);
}

/* Text-based journal title (fallback if no logo image) */
.pkp_site_header .pkp_site_name a,
.navbar-brand a,
header .site-name a {
  font-family: var(--font-display);
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--pssa-white) !important;
  text-decoration: none;
  text-align: center;
  display: block;
  line-height: 1.2;
  text-transform: uppercase;
}

.pkp_site_header .pkp_site_name a::after,
.navbar-brand a::after {
  content: '';
  display: block;
  width: 60px;
  height: 2px;
  background: var(--pssa-gold);
  margin: 8px auto 0;
}

/* Journal tagline / subtitle under the logo */
.pkp_site_header .pkp_site_name span.subtitle,
.journal-tagline {
  display: block;
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pssa-teal-light);
  margin-top: 6px;
}

/* --------------------------------------------------------------------------
   8. NAVIGATION MENU
   -------------------------------------------------------------------------- */
.pkp_navigation_primary,
.navbar-nav,
nav.pkp_navigation_primary_row {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgba(0, 0, 0, 0.15);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding: 0;
  flex-wrap: wrap;
}

.pkp_navigation_primary li,
.navbar-nav .nav-item {
  position: relative;
}

.pkp_navigation_primary li a,
.navbar-nav .nav-link {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.90) !important;
  padding: 14px 18px;
  display: block;
  transition: var(--transition-base);
  border-bottom: 3px solid transparent;
}

.pkp_navigation_primary li a:hover,
.pkp_navigation_primary li a:focus,
.navbar-nav .nav-link:hover {
  color: var(--pssa-gold-light) !important;
  border-bottom-color: var(--pssa-gold);
  text-decoration: none;
  background-color: rgba(255, 255, 255, 0.06);
}

.pkp_navigation_primary li.current a,
.navbar-nav .nav-item.active .nav-link {
  color: var(--pssa-gold-light) !important;
  border-bottom-color: var(--pssa-gold);
}

/* Dropdown menus */
.pkp_navigation_primary .dropdown-menu,
.navbar-nav .dropdown-menu {
  background-color: var(--pssa-navy);
  border: 1px solid rgba(201, 168, 76, 0.3);
  border-top: 2px solid var(--pssa-gold);
  border-radius: 0 0 var(--border-radius-sm) var(--border-radius-sm);
  box-shadow: var(--shadow-card);
  min-width: 200px;
}

.pkp_navigation_primary .dropdown-menu a,
.navbar-nav .dropdown-item {
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.85) !important;
  padding: 10px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.pkp_navigation_primary .dropdown-menu a:hover,
.navbar-nav .dropdown-item:hover {
  background-color: rgba(42, 127, 140, 0.3);
  color: var(--pssa-gold-light) !important;
}

/* --------------------------------------------------------------------------
   9. SEARCH BAR (header)
   -------------------------------------------------------------------------- */
.pkp_search,
.search-field,
.pkpSearch {
  background: transparent;
}

.pkp_search input[type="search"],
.pkp_search input[type="text"] {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: var(--border-radius-sm);
  color: var(--pssa-white);
  font-family: var(--font-display);
  font-size: 0.82rem;
  padding: 7px 14px;
  transition: var(--transition-base);
}

.pkp_search input[type="search"]::placeholder {
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
}

.pkp_search input[type="search"]:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.20);
  border-color: var(--pssa-gold);
  box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.2);
}

/* --------------------------------------------------------------------------
   10. MAIN CONTENT LAYOUT
   -------------------------------------------------------------------------- */
.pkp_structure_main,
main.pkp_structure_main,
#main-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px 60px;
}

/* Two-column layout (main + sidebar) */
.pkp_structure_content {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

.pkp_structure_main {
  flex: 1 1 0%;
}

.pkp_structure_sidebar {
  flex: 0 0 280px;
  max-width: 280px;
}

/* --------------------------------------------------------------------------
   11. HOMEPAGE — Current Issue Section
   -------------------------------------------------------------------------- */
.pkp_page_index .current_issue,
.pkp_page_index .home_issue,
.issue_entry {
  display: flex;
  gap: 36px;
  align-items: flex-start;
  margin-bottom: 48px;
  background: var(--pssa-white);
  border-radius: var(--border-radius-md);
  padding: 32px;
  box-shadow: var(--shadow-card);
  border-left: 4px solid var(--pssa-teal);
}

/* Cover image on homepage */
.pkp_page_index .current_issue .cover,
.issue_cover img,
.cover_image img {
  width: 160px;
  min-width: 160px;
  height: auto;
  border-radius: var(--border-radius-sm);
  box-shadow: 0 6px 20px rgba(26, 43, 74, 0.20);
  transition: var(--transition-base);
}

.issue_cover img:hover,
.cover_image img:hover {
  transform: scale(1.03);
  box-shadow: 0 10px 28px rgba(26, 43, 74, 0.28);
}

/* Journal description block */
.pkp_page_index .journal_description,
.journal-description p {
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--pssa-gray-600);
  font-style: normal;
}

/* Section headers (e.g., "Edição Atual") */
.pkp_page_index h2,
.page_title,
.section-title {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--pssa-navy);
  border-bottom: 2px solid var(--pssa-teal-pale);
  padding-bottom: 10px;
  margin-bottom: 24px;
  position: relative;
}

.pkp_page_index h2::after,
.page_title::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 50px;
  height: 2px;
  background: var(--pssa-gold);
}

/* --------------------------------------------------------------------------
   12. ISSUE TABLE OF CONTENTS (TOC)
   Article listings in all editions
   -------------------------------------------------------------------------- */

/* Issue TOC container */
.issue_toc,
.section,
.issue-toc-section,
.pkp_page_issue .article-summary {
  margin-bottom: 8px;
}

/* Section headings within TOC (e.g. "Artigos", "Dossiê") */
.issue_toc h2,
.issue_toc h3,
.section h2,
.section_title,
.pkp_page_issue .section > h2 {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pssa-white);
  background: linear-gradient(90deg, var(--pssa-navy) 0%, var(--pssa-teal) 100%);
  padding: 10px 16px;
  border-radius: var(--border-radius-sm);
  margin: 24px 0 4px;
}

/* Individual article row in TOC */
.issue_toc .article-summary,
.issue_toc li,
.obj_article_summary,
.article_summary {
  background: var(--pssa-white);
  border: 1px solid var(--pssa-gray-200);
  border-left: 3px solid transparent;
  border-radius: var(--border-radius-sm);
  padding: 14px 18px;
  margin-bottom: 4px;
  transition: var(--transition-base);
}

.issue_toc .article-summary:hover,
.obj_article_summary:hover,
.article_summary:hover {
  border-left-color: var(--pssa-teal);
  box-shadow: var(--shadow-card);
  background: var(--pssa-teal-pale);
  transform: translateX(2px);
}

/* Article title link */
.obj_article_summary .title a,
.article_summary .title a,
.issue_toc .title a,
.issue_toc h3.title a {
  font-family: var(--font-display);
  font-size: 0.97rem;
  font-weight: 600;
  color: var(--pssa-navy);
  line-height: 1.45;
  text-decoration: none;
  transition: var(--transition-base);
}

.obj_article_summary .title a:hover,
.article_summary .title a:hover,
.issue_toc .title a:hover {
  color: var(--pssa-teal);
  text-decoration: none;
}

/* Authors line */
.obj_article_summary .authors,
.article_summary .authors,
.issue_toc .authors {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--pssa-gray-600);
  margin-bottom: 6px;
  font-style: italic;
}

/* Article identifier (e.g., "e17003219") */
.obj_article_summary .pkp_workflow_publication,
.article_summary .e-pub-date,
.issue_toc .pub-id {
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--pssa-gray-400);
  text-transform: uppercase;
  margin-bottom: 4px;
}

/* Galley links (PDF / HTML buttons) */
.obj_article_summary .galleys_links,
.article_summary .galleys_links,
.issue_toc .galleys,
.galley-link-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.obj_article_summary .galleys_links a,
.article_summary .galleys_links a,
.issue_toc .galleys a,
.galley_link,
a.galley-link {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-display);
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pssa-white) !important;
  background-color: var(--pssa-teal);
  border: 1px solid var(--pssa-teal);
  border-radius: 3px;
  padding: 4px 10px;
  text-decoration: none !important;
  transition: var(--transition-base);
  line-height: 1;
}

.obj_article_summary .galleys_links a:hover,
.galley_link:hover,
a.galley-link:hover {
  background-color: var(--pssa-navy);
  border-color: var(--pssa-navy);
  color: var(--pssa-gold-light) !important;
}

/* PDF-specific styling */
.obj_article_summary .galleys_links a.pdf,
.galley-link.pdf {
  background-color: var(--pssa-navy);
  border-color: var(--pssa-navy);
}

.obj_article_summary .galleys_links a.pdf:hover,
.galley-link.pdf:hover {
  background-color: var(--pssa-teal);
  border-color: var(--pssa-teal);
}

/* --------------------------------------------------------------------------
   13. *** HIDE DOI IN ISSUE TOC / ALL EDITIONS SUMMARY ***
   Removes the DOI number from the article summary layout
   in all issue pages and the editions archive
   -------------------------------------------------------------------------- */

/* Primary DOI selectors used by OJS Health Sciences theme */
.obj_article_summary .doi,
.obj_article_summary .pub_id,
.obj_article_summary .pub-id--doi,
.article_summary .doi,
.article_summary .pub_id,
.issue_toc .doi,
.issue_toc .pub_id,
.issue_toc .pub-id--doi,
.issue_toc a[href*="doi.org"],

/* OJS 3.x DOI plugin output selectors */
.pkp_structured_data .doi,
.pkp_doi,
.doi_value,
.pub-id.pub-id--doi,

/* Health Sciences theme specific DOI containers */
.issue-toc-section .doi,
.issue-toc-section .pub_id,
.pkp_page_issue .article-summary .doi,
.pkp_page_issue .obj_article_summary .pub_id--doi,

/* Archive/editions listing page DOIs */
.pkp_page_issue_archive .doi,
.pkp_page_issue_archive .pub_id,
.pkp_page_index .doi,
.pkp_page_index .pub_id,

/* Bootstrap 5 Health Sciences DOI wrapper */
.doi-field,
.article-doi,
.cover_doi,
.citation-doi,
li.doi,
span.doi {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hide DOI links that point to doi.org (extra safety net) */
a[href^="https://doi.org"],
a[href^="http://doi.org"],
a[href^="https://dx.doi.org"] {
  display: none !important;
}

/* --------------------------------------------------------------------------
   14. ISSUE ARCHIVE PAGE
   -------------------------------------------------------------------------- */
.pkp_page_issue_archive .issues_archive,
.issue-archive {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 24px;
  margin-top: 32px;
}

.pkp_page_issue_archive .obj_issue_summary,
.issue_summary,
.issue-card {
  background: var(--pssa-white);
  border: 1px solid var(--pssa-gray-200);
  border-radius: var(--border-radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: var(--transition-base);
  text-align: center;
}

.pkp_page_issue_archive .obj_issue_summary:hover,
.issue_summary:hover {
  box-shadow: 0 8px 28px rgba(26, 43, 74, 0.16);
  transform: translateY(-3px);
  border-color: var(--pssa-teal-light);
}

/* Issue cover in archive grid */
.pkp_page_issue_archive .cover img,
.issue_summary .cover img,
.obj_issue_summary img {
  width: 100%;
  height: auto;
  display: block;
}

.pkp_page_issue_archive .issue_identify,
.issue_summary .issue_identify,
.obj_issue_summary .title {
  padding: 12px 14px;
}

.pkp_page_issue_archive .issue_identify a,
.issue_summary .issue_identify a,
.obj_issue_summary .title a {
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--pssa-navy);
  line-height: 1.4;
}

.pkp_page_issue_archive .issue_identify a:hover,
.obj_issue_summary .title a:hover {
  color: var(--pssa-teal);
}

/* --------------------------------------------------------------------------
   15. ARTICLE LANDING PAGE
   -------------------------------------------------------------------------- */
.pkp_page_article .article_details,
.obj_article_details {
  background: var(--pssa-white);
  border-radius: var(--border-radius-md);
  padding: 40px;
  box-shadow: var(--shadow-card);
  border-top: 4px solid var(--pssa-teal);
}

/* Article title */
.pkp_page_article h1,
.obj_article_details h1.title,
.article-title {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--pssa-navy);
  line-height: 1.3;
  margin-bottom: 20px;
}

/* Article authors */
.pkp_page_article .authors,
.obj_article_details .authors,
.article-author-names {
  font-family: var(--font-display);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--pssa-gray-600);
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--pssa-gray-200);
}

/* Abstract section */
.pkp_page_article .abstract,
.obj_article_details .abstract,
.article-abstract {
  background: var(--pssa-teal-pale);
  border-left: 4px solid var(--pssa-teal);
  border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;
  padding: 24px;
  margin: 24px 0;
}

.pkp_page_article .abstract h2,
.article-abstract h2 {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pssa-teal);
  margin-bottom: 12px;
}

/* Keywords */
.pkp_page_article .keywords,
.obj_article_details .keywords,
.article-keywords {
  margin: 20px 0;
}

.pkp_page_article .keywords span,
.keyword-tag {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--pssa-teal);
  background: var(--pssa-teal-pale);
  border: 1px solid var(--pssa-teal-light);
  border-radius: 20px;
  padding: 4px 12px;
  margin: 3px;
}

/* --------------------------------------------------------------------------
   16. SIDEBAR BLOCKS
   -------------------------------------------------------------------------- */
.pkp_block,
.block,
.sidebar .block {
  background: var(--pssa-white);
  border-radius: var(--border-radius-md);
  box-shadow: var(--shadow-card);
  margin-bottom: 24px;
  overflow: hidden;
  border: 1px solid var(--pssa-gray-200);
}

.pkp_block h2,
.pkp_block .block_title,
.block h2,
.sidebar .block-title {
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pssa-white);
  background: var(--pssa-navy);
  padding: 12px 18px;
  margin: 0;
  border-bottom: 2px solid var(--pssa-teal);
}

.pkp_block ul,
.block ul,
.sidebar ul {
  list-style: none;
  padding: 12px 0;
  margin: 0;
}

.pkp_block ul li,
.block ul li {
  padding: 0;
  border-bottom: 1px solid var(--pssa-gray-100);
}

.pkp_block ul li:last-child {
  border-bottom: none;
}

.pkp_block ul li a,
.block ul li a {
  display: block;
  padding: 9px 18px;
  font-family: var(--font-display);
  font-size: 0.83rem;
  font-weight: 500;
  color: var(--pssa-gray-800);
  transition: var(--transition-base);
}

.pkp_block ul li a:hover {
  color: var(--pssa-teal);
  background: var(--pssa-teal-pale);
  padding-left: 24px;
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   17. BUTTONS & FORM CONTROLS
   -------------------------------------------------------------------------- */
.btn,
button,
input[type="submit"],
input[type="button"],
.pkp_button {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  border-radius: var(--border-radius-sm);
  padding: 10px 22px;
  transition: var(--transition-base);
  cursor: pointer;
  border: 2px solid transparent;
}

.btn-primary,
.pkp_button_primary,
input[type="submit"] {
  background-color: var(--pssa-teal);
  border-color: var(--pssa-teal);
  color: var(--pssa-white);
}

.btn-primary:hover,
.pkp_button_primary:hover,
input[type="submit"]:hover {
  background-color: var(--pssa-navy);
  border-color: var(--pssa-navy);
  color: var(--pssa-white);
}

.btn-secondary,
.pkp_button_secondary {
  background-color: transparent;
  border-color: var(--pssa-teal);
  color: var(--pssa-teal);
}

.btn-secondary:hover {
  background-color: var(--pssa-teal);
  color: var(--pssa-white);
}

/* --------------------------------------------------------------------------
   18. FORM ELEMENTS
   -------------------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
textarea,
select {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--pssa-text);
  background: var(--pssa-white);
  border: 1px solid var(--pssa-gray-200);
  border-radius: var(--border-radius-sm);
  padding: 9px 14px;
  width: 100%;
  transition: var(--transition-base);
  outline: none;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
  border-color: var(--pssa-teal);
  box-shadow: 0 0 0 3px rgba(42, 127, 140, 0.15);
}

label {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--pssa-gray-800);
  margin-bottom: 6px;
  display: block;
  letter-spacing: 0.03em;
}

/* --------------------------------------------------------------------------
   19. BREADCRUMB
   -------------------------------------------------------------------------- */
.pkp_breadcrumb,
.breadcrumb,
nav[aria-label="breadcrumb"] {
  background: var(--pssa-gray-100);
  padding: 10px 24px;
  border-bottom: 1px solid var(--pssa-gray-200);
  font-family: var(--font-display);
  font-size: 0.78rem;
}

.pkp_breadcrumb a,
.breadcrumb-item a {
  color: var(--pssa-teal);
}

.pkp_breadcrumb a:hover,
.breadcrumb-item a:hover {
  color: var(--pssa-navy);
}

.breadcrumb-item.active {
  color: var(--pssa-gray-600);
}

.breadcrumb-item + .breadcrumb-item::before {
  color: var(--pssa-gray-400);
  content: "›";
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   20. PAGINATION
   -------------------------------------------------------------------------- */
.pkp_pagination,
.pagination,
nav.pagination {
  display: flex;
  justify-content: center;
  margin: 40px 0 24px;
  gap: 4px;
}

.pkp_pagination a,
.page-link {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--pssa-teal);
  background: var(--pssa-white);
  border: 1px solid var(--pssa-gray-200);
  border-radius: var(--border-radius-sm);
  padding: 8px 14px;
  transition: var(--transition-base);
  text-decoration: none;
}

.pkp_pagination a:hover,
.page-link:hover {
  background: var(--pssa-teal);
  color: var(--pssa-white);
  border-color: var(--pssa-teal);
}

.pkp_pagination .current,
.page-item.active .page-link {
  background: var(--pssa-navy);
  color: var(--pssa-white);
  border-color: var(--pssa-navy);
}

/* --------------------------------------------------------------------------
   21. FOOTER
   -------------------------------------------------------------------------- */
.pkp_structure_footer,
footer.pkp_structure_footer,
footer {
  background: var(--pssa-navy);
  color: rgba(255, 255, 255, 0.75);
  padding: 40px 24px 24px;
  border-top: 3px solid var(--pssa-gold);
  margin-top: 60px;
}

.pkp_structure_footer .pkp_site_footer,
.footer-content {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 32px;
}

.pkp_structure_footer h3,
.footer h3,
.footer-block-title {
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pssa-gold-light);
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(201, 168, 76, 0.3);
}

.pkp_structure_footer p,
.pkp_structure_footer li,
footer p,
footer li {
  font-family: var(--font-body);
  font-size: 0.82rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.65);
  list-style: none;
}

.pkp_structure_footer a,
footer a {
  color: var(--pssa-teal-light);
  text-decoration: none;
  transition: var(--transition-base);
}

.pkp_structure_footer a:hover,
footer a:hover {
  color: var(--pssa-gold-light);
}

/* Footer bottom bar */
.pkp_structure_footer_site,
.footer-bottom {
  max-width: 1200px;
  margin: 32px auto 0;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-family: var(--font-display);
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.04em;
}

/* --------------------------------------------------------------------------
   22. ANNOUNCEMENTS
   -------------------------------------------------------------------------- */
.pkp_page_announcements .announcement,
.obj_announcement_summary {
  background: var(--pssa-white);
  border: 1px solid var(--pssa-gray-200);
  border-left: 4px solid var(--pssa-gold);
  border-radius: var(--border-radius-sm);
  padding: 20px 24px;
  margin-bottom: 16px;
  box-shadow: var(--shadow-card);
}

.pkp_page_announcements .announcement h2 a,
.obj_announcement_summary .title a {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--pssa-navy);
}

.pkp_page_announcements .announcement h2 a:hover,
.obj_announcement_summary .title a:hover {
  color: var(--pssa-teal);
}

/* --------------------------------------------------------------------------
   23. NOTIFICATIONS & ALERTS
   -------------------------------------------------------------------------- */
.pkp_notification,
.notification,
.alert {
  font-family: var(--font-body);
  font-size: 0.9rem;
  border-radius: var(--border-radius-sm);
  padding: 14px 18px;
  margin-bottom: 16px;
  border-left: 4px solid;
}

.pkp_notification.notifySuccess,
.alert-success {
  background: #e8f5e9;
  border-color: #4caf50;
  color: #1b5e20;
}

.pkp_notification.notifyError,
.alert-danger {
  background: #ffebee;
  border-color: #ef5350;
  color: #7f0000;
}

.pkp_notification.notifyInfo,
.alert-info {
  background: var(--pssa-teal-pale);
  border-color: var(--pssa-teal);
  color: var(--pssa-navy);
}

/* --------------------------------------------------------------------------
   24. TABLES
   -------------------------------------------------------------------------- */
table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body);
  font-size: 0.88rem;
  background: var(--pssa-white);
  border-radius: var(--border-radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

thead th {
  background: var(--pssa-navy);
  color: var(--pssa-white);
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 16px;
  text-align: left;
}

tbody td {
  padding: 11px 16px;
  border-bottom: 1px solid var(--pssa-gray-100);
  color: var(--pssa-gray-800);
}

tbody tr:last-child td {
  border-bottom: none;
}

tbody tr:hover td {
  background: var(--pssa-teal-pale);
}

tbody tr:nth-child(even) td {
  background: var(--pssa-gray-100);
}

tbody tr:nth-child(even):hover td {
  background: var(--pssa-teal-pale);
}

/* --------------------------------------------------------------------------
   25. RESPONSIVE DESIGN — Mobile-First Breakpoints
   -------------------------------------------------------------------------- */

/* Tablet: 768px and below */
@media screen and (max-width: 768px) {
  .pkp_site_header .pkp_site_name img,
  .navbar-brand img {
    max-width: 240px;
  }

  .pkp_structure_content {
    flex-direction: column;
  }

  .pkp_structure_sidebar {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .pkp_page_index .current_issue,
  .issue_entry {
    flex-direction: column;
    padding: 24px;
    gap: 20px;
  }

  .pkp_page_index .current_issue .cover,
  .issue_cover img {
    width: 120px;
    margin: 0 auto;
  }

  h1, .h1 { font-size: 1.75rem; }
  h2, .h2 { font-size: 1.4rem;  }

  .pkp_navigation_primary li a,
  .navbar-nav .nav-link {
    padding: 12px 12px;
    font-size: 0.76rem;
  }

  .pkp_page_issue_archive .issues_archive {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 16px;
  }

  .pkp_page_article .article_details,
  .obj_article_details {
    padding: 24px;
  }
}

/* Mobile: 480px and below */
@media screen and (max-width: 480px) {
  .pkp_structure_main,
  main.pkp_structure_main {
    padding: 20px 16px 40px;
  }

  .pkp_site_header .pkp_site_name img,
  .navbar-brand img {
    max-width: 200px;
  }

  .pkp_site_header .pkp_site_name a {
    font-size: 1.4rem;
  }

  h1, .h1 { font-size: 1.5rem; }
  h2, .h2 { font-size: 1.25rem; }

  .pkp_navigation_primary,
  .navbar-nav {
    overflow-x: auto;
    justify-content: flex-start;
  }

  .pkp_page_issue_archive .issues_archive {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .pkp_structure_footer .pkp_site_footer,
  .footer-content {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .pkp_structure_footer_site {
    flex-direction: column;
    text-align: center;
  }
}

/* Large screens: 1400px+ */
@media screen and (min-width: 1400px) {
  .pkp_structure_main,
  main.pkp_structure_main {
    max-width: 1320px;
  }

  .pkp_site_header .pkp_site_name img,
  .navbar-brand img {
    max-width: 400px;
  }

  .pkp_site_header .pkp_site_name a {
    font-size: 2.25rem;
  }
}

/* --------------------------------------------------------------------------
   26. PRINT STYLES
   -------------------------------------------------------------------------- */
@media print {
  .pkp_site_header,
  .pkp_navigation_primary,
  .pkp_structure_sidebar,
  .pkp_structure_footer,
  .pkp_breadcrumb,
  .galleys_links,
  nav {
    display: none !important;
  }

  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
  }

  .pkp_structure_main {
    max-width: 100%;
    padding: 0;
  }

  a {
    color: #000;
    text-decoration: underline;
  }
}

/* --------------------------------------------------------------------------
   27. ACCESSIBILITY — Focus Styles
   -------------------------------------------------------------------------- */
:focus-visible {
  outline: 3px solid var(--pssa-gold);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Skip to content link */
.skip-to-content,
.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  background: var(--pssa-gold);
  color: var(--pssa-navy);
  font-family: var(--font-display);
  font-weight: 700;
  padding: 10px 20px;
  z-index: 9999;
  transition: top 0.2s;
}

.skip-to-content:focus,
.skip-link:focus {
  top: 0;
}

/* --------------------------------------------------------------------------
   28. ANIMATIONS & MICROINTERACTIONS
   -------------------------------------------------------------------------- */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.obj_article_summary,
.pkp_page_index .current_issue,
.obj_issue_summary,
.pkp_block {
  animation: fadeInUp 0.35s ease-out both;
}

/* Staggered animation delays for TOC articles */
.obj_article_summary:nth-child(1)  { animation-delay: 0.05s; }
.obj_article_summary:nth-child(2)  { animation-delay: 0.10s; }
.obj_article_summary:nth-child(3)  { animation-delay: 0.15s; }
.obj_article_summary:nth-child(4)  { animation-delay: 0.20s; }
.obj_article_summary:nth-child(5)  { animation-delay: 0.25s; }
.obj_article_summary:nth-child(n+6){ animation-delay: 0.30s; }

/* --------------------------------------------------------------------------
   END OF FILE
   Revista Psicologia e Saúde — custom.css
   Version: 1.0.0 | OJS Health Sciences Theme Overlay
   ========================================================================== */