
/* Accent colours for the certificate verification page, from this journal's
   own palette. The text colour on the accent is picked for WCAG AA contrast. */
.pkp_page_verify {
    --cert-accent: #8c1642;
    --cert-accent-dark: #6d1034;
    --cert-on-accent: #ffffff;
    --cert-tint: #fdf2f6;
    --cert-stripe: #fcf7f9;
    --cert-line: #eedbe3;
}

/* ==========================================================================
   Nexora: certificate verification page (<journal>/verify)
   Added 2026-09-28. Keep this block if this stylesheet is ever re-uploaded
   from a local copy, or the /verify page loses its design.

   Everything is scoped to body.pkp_page_verify, the class OJS derives from the
   page's path, so no other page on the journal is affected. The journal's
   accent colours are declared in the small block immediately above this one.

   The styling keys off the page's structure (h3 + table), never off classes in
   the content, so tables the journal manager adds later are styled the same
   way without them having to do anything. !important appears only on the table
   cells, to override the inline font and colour attributes that come along
   when rows are pasted in from a spreadsheet.
   ========================================================================== */

.pkp_page_verify .page {
    max-width: 62rem;
}

/* --- Title ---------------------------------------------------------------- */

.pkp_page_verify .page > h2 {
    margin: 0;
    font-size: 2rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.pkp_page_verify .page > h2::after {
    content: "";
    display: block;
    width: 3.5rem;
    height: 4px;
    margin-top: 0.8rem;
    border-radius: 2px;
    background: var(--cert-accent);
}

.pkp_page_verify .page > h2 + p {
    margin: 1.25rem 0 2rem;
    font-size: 1.08rem;
    line-height: 1.65;
    color: #3f3f46;
}

/* --- Section headings ----------------------------------------------------- */

.pkp_page_verify .page h3 {
    margin: 2.5rem 0 0.9rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--cert-line);
    color: var(--cert-accent-dark);
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* --- The "how to check a certificate" steps ------------------------------- */

.pkp_page_verify .page ol {
    margin: 0 0 1.5rem;
    padding: 1.1rem 1.25rem 1.1rem 2.9rem;
    border-left: 4px solid var(--cert-accent);
    border-radius: 0 6px 6px 0;
    background: var(--cert-tint);
}

.pkp_page_verify .page ol li {
    margin: 0.4rem 0;
    line-height: 1.6;
}

/* The paragraph that follows the steps is the "what counts as genuine" note. */
.pkp_page_verify .page ol + p {
    margin: 0;
    padding: 1rem 1.15rem;
    border: 1px solid var(--cert-line);
    border-radius: 6px;
    background: #fff;
    font-size: 0.97rem;
    line-height: 1.6;
}

/* --- The certificate tables ----------------------------------------------- */

.pkp_page_verify .page table {
    width: 100% !important;
    margin: 0 0 1rem;
    border: 1px solid var(--cert-line) !important;
    border-collapse: collapse !important;
    background: #fff;
    font-size: 0.95rem;
}

/* Neutralise whatever formatting arrives with rows pasted from a spreadsheet. */
.pkp_page_verify .page table th,
.pkp_page_verify .page table td {
    width: auto !important;
    height: auto !important;
    padding: 0.65rem 0.9rem !important;
    border: 0 !important;
    border-bottom: 1px solid var(--cert-line) !important;
    background-color: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    text-align: left !important;
    vertical-align: top !important;
}

.pkp_page_verify .page table thead th {
    background-color: var(--cert-accent) !important;
    color: var(--cert-on-accent) !important;
    border-bottom: 0 !important;
    font-size: 0.8rem !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.pkp_page_verify .page table tbody tr:nth-child(even) td {
    background-color: var(--cert-stripe) !important;
}

.pkp_page_verify .page table tbody tr:hover td {
    background-color: var(--cert-tint) !important;
}

.pkp_page_verify .page table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.pkp_page_verify .page table tbody td:first-child {
    font-weight: 500;
}

/* Certificate IDs are compared character by character, so give them a
   monospace face. This assumes the documented column order:
   Name, Certificate ID, Date Issued. */
.pkp_page_verify .page table tbody td:nth-child(2) {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.pkp_page_verify .page table tbody td:last-child {
    color: #52525b !important;
    white-space: nowrap;
}

/* --- Last updated --------------------------------------------------------- */

.pkp_page_verify .page > p:last-child {
    margin-top: 2.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--cert-line);
    color: #6b7280;
    font-size: 0.875rem;
}

/* --- Wide screens --------------------------------------------------------- */

@media (min-width: 641px) {
    /* Lists can run to hundreds of rows, so keep the column labels in view
       while scrolling. Ignored where an ancestor clips overflow. */
    .pkp_page_verify .page table thead th {
        position: sticky;
        top: 0;
        z-index: 1;
    }
}

/* --- Phones (most holders arrive here from a QR code) --------------------- */

@media (max-width: 640px) {
    .pkp_page_verify .page > h2 {
        font-size: 1.6rem;
    }

    .pkp_page_verify .page > h2 + p {
        font-size: 1rem;
    }

    /* Let a wide table scroll sideways rather than squeezing the columns. */
    .pkp_page_verify .page table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .pkp_page_verify .page table th,
    .pkp_page_verify .page table td {
        padding: 0.55rem 0.7rem !important;
    }
}
.pkp_structure_page {
  background-color: white;
}

.pkp_structure_head {
  display: none;
}

.pkp_structure_content {
  padding-top: 0;

}


h1.page_title {
  display: none !important;
}

/* Force the page title to display ONLY on the article page */
.page_article h1.page_title {
  display: block !important;
}

.homepage_about h2 {
  display: none !important;
}

.pkp_structure_main {
  padding-bottom: 0;
}

.pkp_brand_footer {

  display: none;
}

.pkp_footer_content {
  padding: 0;

}

.pkp_structure_footer_wrapper {
  background-color: #1a1a1a !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}


.pkp_structure_footer {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}


.pkp_page_index .additional_content {
  border-top: none;
}



.sfr-submit-btn {
  position: relative;
  overflow: hidden;
  transition: transform .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s ease, background .22s ease;
}

.sfr-submit-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -60%;
  width: 40%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.45), transparent);
  transform: skewX(-20deg);
  transition: left .55s ease;
}

.sfr-submit-btn:hover::before {
  left: 130%;
}

.sfr-submit-btn:hover {
  background: linear-gradient(135deg, #E4CB9E, #C79A61) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
  transform: translateY(-2px);
}

.sfr-submit-btn:active {
  transform: translateY(0);
}

.sfr-side-link {
  position: relative;
  transition: background .2s ease, color .2s ease, padding-left .25s cubic-bezier(.34, 1.56, .64, 1);
}

.sfr-side-link:hover {
  background-color: rgba(245, 236, 217, 0.06);
  color: #D8BD8C !important;
  padding-left: 10px;
}

.sfr-side-link:hover .sfr-chevron {
  transform: translateX(4px);
  color: #D8BD8C !important;
}

.sfr-chevron {
  display: inline-block;
  transition: transform .22s cubic-bezier(.34, 1.56, .64, 1), color .2s ease;
}

.sfr-subscribe-input {
  transition: border-color .2s ease, box-shadow .2s ease;
}

.sfr-subscribe-input:focus {
  outline: none;
  border-color: #B08D57 !important;
  box-shadow: 0 0 0 3px rgba(176, 141, 87, 0.18);
}

.sfr-subscribe-btn {
  position: relative;
  overflow: hidden;
  transition: transform .22s cubic-bezier(.4, 0, .2, 1), box-shadow .22s ease, background .22s ease;
}

.sfr-subscribe-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -60%;
  width: 40%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transform: skewX(-20deg);
  transition: left .55s ease;
}

.sfr-subscribe-btn:hover::before {
  left: 130%;
}

.sfr-subscribe-btn:hover {
  background-color: #3A2A1D !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
  transform: translateY(-2px);
}

.sfr-subscribe-btn:active {
  transform: translateY(0);
}



/* ==========================================================
   SFREMS â€” About page additions (fact chips + tag pills)
   Append this to the end of your existing sapientia.css
   ========================================================== */

.sfrems-fact-chip {
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.sfrems-fact-chip:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(46, 10, 26, 0.12);
  border-color: #c8a97a !important;
}

.sfrems-tag-pill {
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
  cursor: default;
}

.sfrems-tag-pill:hover {
  background: #8c1642 !important;
  border-color: #8c1642 !important;
  color: #FFFFFF !important;
  transform: translateY(-1px);
}

.sfrems-lang-card {
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.sfrems-lang-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(46, 10, 26, 0.1);
}

/* =============== AIMS & SCOPE =============== */

.sfrems-method-pill {
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
  cursor: default;
}

.sfrems-method-pill:hover {
  background: #025939 !important;
  border-color: #025939 !important;
  color: #FFFFFF !important;
  transform: translateY(-1px);
}

.sfrems-scope-card {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.sfrems-scope-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #025939, #8c1642);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}

.sfrems-scope-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -14px rgba(1, 46, 31, 0.25);
}

.sfrems-scope-card:hover::before {
  transform: scaleX(1);
}

.sfrems-scope-card .sfrems-scope-accent {
  transition: transform .25s ease;
}

.sfrems-scope-card:hover .sfrems-scope-accent {
  transform: scaleY(1.04);
}

/* ========= COPYRIGHT NOTICE */

.sfrems-rule-check {
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

.sfrems-rule-check:hover {
  transform: translateX(4px);
  border-color: #c8a97a !important;
  background: #fdf5f8 !important;
  box-shadow: 0 10px 22px -16px rgba(46, 10, 26, 0.35);
}

.sfrems-rule-mark-box {
  transition: background .22s ease, border-color .22s ease;
}

.sfrems-rule-mark-box::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.5px;
  width: 4px;
  height: 8px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0.4);
  opacity: 0;
  transition: opacity .18s ease, transform .18s ease;
}

.sfrems-rule-check:hover .sfrems-rule-mark-box {
  background: #8c1642;
  border-color: #8c1642;
}

.sfrems-rule-check:hover .sfrems-rule-mark-box::after {
  opacity: 1;
  transform: rotate(45deg) scale(1);
}

@media (prefers-reduced-motion: reduce) {

  .sfrems-rule-check,
  .sfrems-rule-mark-box,
  .sfrems-rule-mark-box::after {
    transition: none;
  }
}

/* Mobile: reclaim space taken by the CC BY 4.0 badge and Word-Count-style badges */
@media (max-width: 640px) {
  .sfrems-rule-check {
    padding: 15px 16px !important;
  }

  .sfrems-rules {
    gap: 10px !important;
  }
}

/* ========= WEDITORIAL POLICY */


.sfrems-policy-card {
  transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.sfrems-policy-card:hover {
  transform: translateX(3px);
  background: #ffffff !important;
  border-color: rgba(140, 22, 66, 0.13) rgba(140, 22, 66, 0.13) rgba(140, 22, 66, 0.13) #8c1642 !important;
  box-shadow: 0 8px 20px -14px rgba(46, 10, 26, 0.35);
}

.sfrems-policy-card:hover .sfrems-policy-iconbox {
  background: rgba(140, 22, 66, 0.1) !important;
}

.sfrems-policy-card:hover .sfrems-policy-num {
  color: #8c1642 !important;
}

.sfrems-policy-card:hover .sfrems-policy-title {
  color: #2e0a1a !important;
  font-style: italic !important;
}

.sfrems-policy-card:hover .sfrems-policy-arrow {
  color: #8c1642 !important;
  transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {

  .sfrems-policy-card,
  .sfrems-policy-card:hover .sfrems-policy-arrow {
    transition: none;
  }
}

/* =========== AUTHORSHIP AND CONTRIBUTORSHIP ============ */

.sfrems-toc-link {
  transition: background .15s ease, padding-left .15s ease, border-color .15s ease;
}

.sfrems-toc-link:hover {
  background: rgba(140, 22, 66, 0.04);
  padding-left: 4px;
  border-bottom-color: rgba(140, 22, 66, 0.25) !important;
}

.sfrems-toc-link:hover .sfrems-toc-num {
  color: #8c1642 !important;
}

.sfrems-toc-link:hover .sfrems-toc-title {
  color: #2e0a1a !important;
}

@media (prefers-reduced-motion: reduce) {
  .sfrems-toc-link {
    transition: none;
  }
}