/* ==========================================================
   BSCM – Modern stylesheet for OJS 3.3 (Manuscript / Default theme)
   Version 2 – lighter header, clearer buttons, softer layout
   Upload at: Settings > Website > Appearance > Advanced > Journal style sheet
   To revert: delete the uploaded file and save.
   ========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Montserrat:wght@600;700&family=Noto+Sans+Thai:wght@400;500;600&display=swap');

:root {
  --bscm-primary: #2E7377;        /* teal – brand colour */
  --bscm-primary-dark: #1F5357;
  --bscm-primary-soft: #EAF4F3;   /* very light teal */
  --bscm-navy: #3A3F5C;           /* matches BSCM logo text */
  --bscm-accent: #E07A5F;
  --bscm-text: #24302F;
  --bscm-muted: #66777A;
  --bscm-bg: #F7FAFA;
  --bscm-card: #FFFFFF;
  --bscm-line: #E6EEEE;
  --bscm-radius: 18px;
  --bscm-shadow: 0 1px 2px rgba(20, 50, 52, 0.04), 0 6px 20px rgba(20, 50, 52, 0.05);
  --bscm-shadow-hover: 0 10px 28px rgba(20, 50, 52, 0.10);
}

/* ---------- Base ---------- */
body {
  font-family: "Inter", "Noto Sans Thai", system-ui, -apple-system, "Segoe UI", sans-serif !important;
  color: var(--bscm-text);
  background: var(--bscm-bg) !important;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* Remove the heavy "boxed" page frame */
.pkp_structure_page {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
.pkp_structure_content,
.pkp_structure_main {
  background: transparent !important;
}

h1, h2, h3, h4 {
  font-family: inherit !important;
  color: var(--bscm-navy);
  font-weight: 700;
  letter-spacing: -0.01em;
}
a { color: var(--bscm-primary); text-underline-offset: 3px; }
a:hover { color: var(--bscm-primary-dark); }

a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 3px solid var(--bscm-accent);
  outline-offset: 2px;
  border-radius: 6px;
}

/* ---------- Header: light so the navy BSCM logo stands out ---------- */
.pkp_structure_head {
  background: linear-gradient(135deg, #FFFFFF 0%, var(--bscm-primary-soft) 100%) !important;
  border-top: 4px solid var(--bscm-primary);
  border-bottom: 1px solid var(--bscm-line);
  box-shadow: none !important;
}
.pkp_head_wrapper { background: transparent !important; }
.pkp_site_name_wrapper { background: transparent !important; }
.pkp_site_name .is_img img { max-height: 88px; width: auto; }

/* User menu (top right) */
.pkp_navigation_user > li > a,
.pkp_navigation_user_wrapper a { color: var(--bscm-navy) !important; }

/* ---------- Main menu ---------- */
.pkp_navigation_primary_row {
  background: #FFFFFF !important;
  border-top: 1px solid var(--bscm-line);
}
.pkp_navigation_primary > li > a {
  color: var(--bscm-navy) !important;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 0.55rem 0.8rem !important;
  margin: 0.15rem 0.1rem;
  border-radius: 999px;
  border: none !important;
  transition: background 0.2s ease, color 0.2s ease;
}
.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus,
.pkp_navigation_primary > li.current > a {
  background: var(--bscm-primary-soft) !important;
  color: var(--bscm-primary-dark) !important;
}
.pkp_navigation_primary ul {
  background: #FFFFFF;
  border: 1px solid var(--bscm-line);
  border-radius: 14px;
  box-shadow: var(--bscm-shadow-hover);
  overflow: hidden;
}
.pkp_navigation_primary ul a { color: var(--bscm-text) !important; }
.pkp_navigation_primary ul a:hover { background: var(--bscm-primary-soft) !important; }

/* ---------- Content spacing ---------- */
.pkp_structure_content { padding-top: 2.5rem; }
.pkp_structure_main { padding-right: 2.5rem; }

.cmp_breadcrumbs, .cmp_breadcrumbs a { font-size: 0.85rem; color: var(--bscm-muted); }

/* Homepage sections – soft cards, no hard borders */
.page_index_journal .homepage_about,
.page_index_journal .cmp_announcements,
.page_index_journal .current_issue {
  background: var(--bscm-card);
  border: none !important;
  border-radius: var(--bscm-radius);
  box-shadow: var(--bscm-shadow);
  padding: 2rem 2.25rem;
  margin-bottom: 2rem;
}
.page_index_journal .homepage_about > h2,
.page_index_journal .cmp_announcements > h2,
.page_index_journal .current_issue > h2 {
  font-size: 1.3rem;
  margin-top: 0;
}
.homepage_about table, .homepage_about td, .homepage_about th {
  border: none !important;
  background: transparent !important;
}
.homepage_about img { border-radius: 12px; max-width: 100%; height: auto !important; }

/* Prevent "About the Journal" text from spilling over the next section:
   the editor often saves fixed heights on tables/cells, and floats can
   escape the card. Force natural height and contain floats. */
.page_index_journal .homepage_about,
.page_index_journal .cmp_announcements,
.page_index_journal .current_issue {
  display: flow-root;
  height: auto !important;
  max-height: none !important;
  overflow-wrap: break-word;
}
.homepage_about table,
.homepage_about tbody,
.homepage_about tr,
.homepage_about td,
.homepage_about th,
.homepage_about div,
.homepage_about p {
  height: auto !important;
  max-height: none !important;
}

/* Section headings like "FULL ISSUE", "ORIGINAL ARTICLE" */
.obj_issue_toc .galleys > h2,
.obj_issue_toc .section > h2,
.obj_issue_toc .section > h3 {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--bscm-muted) !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 2.5rem 0 1rem;
}
.obj_issue_toc .galleys > h2::after,
.obj_issue_toc .section > h2::after,
.obj_issue_toc .section > h3::after { display: none !important; }

.obj_issue_toc .heading .cover img,
.current_issue .cover img {
  border-radius: 12px;
  box-shadow: var(--bscm-shadow);
}

/* ---------- Announcements ---------- */
.cmp_announcements .obj_announcement_summary {
  padding: 1rem 0;
  border-bottom: 1px solid var(--bscm-line);
}
.cmp_announcements .obj_announcement_summary:last-child { border-bottom: none; }
.cmp_announcements .obj_announcement_summary h2,
.cmp_announcements .obj_announcement_summary h3,
.cmp_announcements .obj_announcement_summary h4 { font-size: 1.05rem; margin: 0 0 0.3rem; }
.cmp_announcements .date {
  display: inline-block;
  font-size: 0.78rem;
  color: var(--bscm-primary-dark);
  background: var(--bscm-primary-soft);
  padding: 0.15rem 0.65rem;
  border-radius: 999px;
}

/* ---------- Article list ---------- */
.obj_issue_toc .cmp_article_list > li { margin-bottom: 1.1rem; }
.obj_article_summary {
  background: var(--bscm-card);
  border: none;
  border-radius: 14px;
  box-shadow: var(--bscm-shadow);
  padding: 1.25rem 1.4rem;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.obj_article_summary:hover {
  box-shadow: var(--bscm-shadow-hover);
  transform: translateY(-2px);
}
.obj_article_summary .cover img { border-radius: 10px; }
.obj_article_summary .title a {
  color: var(--bscm-text);
  font-weight: 600;
  text-decoration: none;
}
.obj_article_summary .title a:hover { color: var(--bscm-primary); }
.obj_article_summary .authors,
.obj_article_summary .meta { color: var(--bscm-muted); font-size: 0.9rem; }

/* ---------- PDF / galley button (matches sample) ---------- */
a.obj_galley_link,
.obj_galley_link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #3F7472 !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 0.35rem 0.8rem !important;
  font-family: "Montserrat", "Noto Sans Thai", sans-serif !important;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  line-height: 1.4;
  text-transform: uppercase;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background 0.2s ease;
}
a.obj_galley_link:hover,
a.obj_galley_link:focus {
  background: #2F5A58 !important;
  color: #FFFFFF !important;
}
a.obj_galley_link::before { color: inherit !important; }

.current_issue .read_more,
.cmp_button, .pkp_button, button.submit, .cmp_form .buttons button {
  background: var(--bscm-primary) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 0.6rem 1.4rem !important;
  font-weight: 600;
  text-decoration: none !important;
  box-shadow: none !important;
}
.current_issue .read_more:hover,
.cmp_button:hover, .pkp_button:hover, button.submit:hover {
  background: var(--bscm-primary-dark) !important;
}

/* ---------- Sidebar block titles (matches sample) ---------- */
.pkp_block .title {
  display: inline-block;
  font-family: "Montserrat", "Noto Sans Thai", sans-serif !important;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #6E6E6E !important;
  padding-bottom: 0.45rem;
  margin-bottom: 1rem;
  border-bottom: 3px solid #D5E7E5;
}

/* ---------- Footer ---------- */
.pkp_structure_footer_wrapper {
  background: #FFFFFF !important;
  color: var(--bscm-text);
  border-top: 4px solid var(--bscm-primary) !important;
  margin-top: 3rem;
}
.pkp_footer_content { padding: 2.5rem 2rem; line-height: 1.85; }
.pkp_structure_footer_wrapper a { color: var(--bscm-primary); }
.pkp_brand_footer { background: var(--bscm-primary-soft) !important; }

/* ---------- Mobile menu button (hamburger) ----------
   The theme draws the button in white, which disappears on the new
   light header. Give it a teal square so the white lines show, and move
   it to the right so it doesn't sit under the black ribbon. */
@media (max-width: 991px) {
  .pkp_site_nav_toggle {
    left: auto !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%);
    width: 44px !important;
    height: 44px !important;
    background: var(--bscm-primary) !important;
    border: none !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    z-index: 1000;
  }
  .pkp_site_nav_toggle:before,
  .pkp_site_nav_toggle:after {
    border-color: #FFFFFF !important;
    background-color: transparent !important;
  }
  .pkp_site_nav_toggle span { color: #FFFFFF !important; }
  .pkp_site_nav_toggle:focus,
  .pkp_site_nav_toggle:hover { background: var(--bscm-primary-dark) !important; }
  .pkp_site_nav_toggle--transform { background: var(--bscm-primary-dark) !important; }

  /* Keep the logo clear of the button */
  .pkp_site_name_wrapper { padding-right: 76px !important; }

  /* Opened mobile menu: white panel, dark readable text */
  .pkp_site_nav_menu {
    background: #FFFFFF !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  }
  .pkp_site_nav_menu a,
  .pkp_navigation_primary > li > a,
  .pkp_navigation_user > li > a {
    color: var(--bscm-navy) !important;
  }
  .pkp_navigation_primary > li > a {
    display: block;
    border-radius: 8px;
  }
  .pkp_navigation_primary > li {
    border-bottom: 1px solid var(--bscm-line);
  }
  .pkp_navigation_primary ul,
  .pkp_navigation_user ul {
    box-shadow: none !important;
    border: none !important;
    background: var(--bscm-primary-soft) !important;
    border-radius: 8px;
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 991px) {
  .pkp_structure_main { padding-right: 0; }
}
@media (max-width: 767px) {
  .page_index_journal .homepage_about,
  .page_index_journal .cmp_announcements,
  .page_index_journal .current_issue {
    padding: 1.25rem;
    border-radius: 14px;
  }
  .pkp_site_name .is_img img { max-height: 56px; }
  .homepage_about table, .homepage_about tbody,
  .homepage_about tr, .homepage_about td {
    display: block;
    width: 100% !important;
    height: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .homepage_about td img { display: block; margin: 0 auto 1rem; }
  .page_index_journal .homepage_about h2,
  .page_index_journal .homepage_about h3 { font-size: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; transform: none !important; }
}
