/* =========================================================
   OJS PREMIUM SINGLE CSS FILE
   Different section styles + normal text + centered footer
   ========================================================= */

/* ---------- ROOT ---------- */
:root{
  --bg:#f4f6f8;
  --panel:#ffffff;
  --panel-soft:#fbfcfd;
  --text:#1f2933;
  --muted:#66788a;
  --line:#d9e2ec;
  --line-dark:#bcccdc;
  --primary:#0f6b7a;
  --primary-soft:#e8f5f7;
  --accent:#8f1d2c;
  --accent-soft:#f8ebee;
  --dark:#243b53;
  --shadow-sm:0 4px 12px rgba(15,23,42,.05);
  --shadow-md:0 10px 24px rgba(15,23,42,.08);
  --shadow-lg:0 18px 40px rgba(15,23,42,.12);
}

/* ---------- GLOBAL ---------- */
html{scroll-behavior:smooth;}

body,
.pkp_page_index,
.pkp_page_about,
.pkp_page_issue,
.pkp_page_article{
  margin:0;
  padding:0;
  background:linear-gradient(180deg,#f7f8fa 0%, var(--bg) 100%);
  color:var(--text);
  font-family:"Segoe UI", Arial, sans-serif;
  font-size:14px !important;
  line-height:1.75;
}

.pkp_structure_page{
  max-width:1280px;
  margin:0 auto;
}

.pkp_structure_content{
  padding-top:18px;
  padding-bottom:28px;
}

img{
  max-width:100%;
  height:auto;
}

a{
  color:var(--primary);
  text-decoration:none;
  transition:all .25s ease;
}
a:hover{
  color:var(--accent);
}

/* ---------- NORMAL TEXT SIZES ---------- */
p,
.description,
.summary,
.abstract,
.page_about p,
.page_index_journal p,
.obj_article_summary p,
.obj_issue_summary p,
.cmp_announcements p,
.pkp_block p,
.pkp_block li{
  font-size:14px !important;
}

.meta,
.published,
.authors,
.pages,
.date,
.subtitle{
  font-size:12px !important;
  color:var(--muted);
}

h1{font-size:22px !important;}
h2{font-size:18px !important;}
h3{font-size:16px !important;}
h4{font-size:15px !important;}

.obj_article_summary .title a,
.title a{
  font-size:15px !important;
  font-weight:700 !important;
}

.current_issue .title a,
.obj_issue_summary .title a{
  font-size:20px !important;
  font-weight:800 !important;
  text-transform:none !important;
}

/* ---------- JUSTIFY TEXT ---------- */
body p,
.page_about p,
.page_index_journal p,
.obj_article_summary p,
.obj_issue_summary p,
.cmp_announcements p,
.pkp_block p,
.pkp_block li,
.page_about li,
.page_index_journal li,
.obj_article_details p,
.description,
.summary,
.abstract{
  text-align:justify !important;
  text-justify:inter-word;
}

/* exceptions */
.pkp_navigation_primary,
.pkp_navigation_user,
.pkp_navigation_primary li,
.pkp_navigation_user li,
.pkp_navigation_primary a,
.pkp_navigation_user a,
button,
.cmp_button,
a.btn,
.popup-btn,
.pkp_structure_footer_wrapper,
.pkp_structure_footer_wrapper *{
  text-align:center !important;
}

/* ---------- HEADER : SOFT ROUNDED ---------- */
.pkp_structure_head{
  background:linear-gradient(180deg,#f9fbfc 0%, #e9eef2 100%);
  border-top:4px solid var(--dark);
  border-bottom:3px solid var(--primary);
  box-shadow:var(--shadow-sm);
}

.pkp_site_name_wrapper,
.pkp_navigation_primary_wrapper,
.pkp_navigation_user_wrapper{
  background:transparent !important;
}

.pkp_site_name{
  text-align:center;
  padding-top:10px;
  padding-bottom:8px;
}

.pkp_site_name a,
.pkp_site_name .is_text{
  color:var(--dark) !important;
  font-size:26px;
  font-weight:800;
  letter-spacing:.6px;
  text-transform:uppercase;
}

.pkp_site_name img{
  max-height:84px;
  width:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:6px 10px;
  box-shadow:var(--shadow-sm);
}

/* ---------- NAVIGATION : OVAL ---------- */
.pkp_navigation_primary,
.pkp_navigation_user{
  text-align:center !important;
}

.pkp_navigation_primary > li > a,
.pkp_navigation_user > li > a{
  font-size:12px !important;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.35px;
  padding:8px 14px;
  margin:2px 3px;
  border-radius:999px;
  background:rgba(15,107,122,.08);
  color:var(--dark) !important;
  border:1px solid transparent;
}

.pkp_navigation_primary > li > a:hover,
.pkp_navigation_user > li > a:hover{
  background:linear-gradient(135deg,var(--primary),#46a6b5);
  color:#fff !important;
}

.pkp_navigation_primary .dropdown-menu,
.pkp_navigation_user .dropdown-menu{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:var(--shadow-md);
}

.pkp_navigation_primary .dropdown-menu a,
.pkp_navigation_user .dropdown-menu a{
  color:var(--text) !important;
  padding:10px 14px;
}

.pkp_navigation_primary .dropdown-menu a:hover,
.pkp_navigation_user .dropdown-menu a:hover{
  background:var(--primary-soft);
  color:var(--primary) !important;
}

/* ---------- MAIN WRAPPERS ---------- */
.pkp_structure_main,
.page_index_journal,
.page_about,
.obj_issue_toc,
.obj_article_details{
  background:transparent;
  padding:0 10px;
}

/* ---------- HEADINGS ---------- */
h1,h2,h3,h4,h5,h6{
  color:var(--dark);
  font-weight:800;
  line-height:1.35;
}

h2{
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line-dark);
  position:relative;
}
h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:84px;
  height:3px;
  background:linear-gradient(90deg,var(--primary),var(--accent));
}

/* ---------- ABOUT / INTRO : FULL SQUARE ---------- */
.journal-description,
.homepage_image,
.additional_content,
.page_index_journal .homepage_content{
  background:linear-gradient(180deg,var(--panel) 0%, var(--panel-soft) 100%);
  border:1px solid var(--line);
  border-radius:0 !important;
  padding:22px;
  box-shadow:var(--shadow-sm);
  margin-bottom:20px;
  position:relative;
}

.journal-description::before,
.homepage_image::before,
.additional_content::before,
.page_index_journal .homepage_content::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:6px;
  height:100%;
  background:linear-gradient(180deg,var(--primary),var(--accent));
}

/* ---------- CURRENT ISSUE : BIG ROUNDED LUXURY CARD ---------- */
.current_issue,
.obj_issue_summary{
  background:linear-gradient(135deg,#ffffff 0%, #f1f7fa 100%) !important;
  border:2px solid #d7e5ec !important;
  border-radius:28px !important;
  padding:22px !important;
  margin-bottom:24px !important;
  box-shadow:var(--shadow-lg) !important;
  position:relative;
  overflow:hidden;
}

.current_issue::before,
.obj_issue_summary::before{
  content:"";
  position:absolute;
  top:-36px;
  right:-36px;
  width:140px;
  height:140px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(15,107,122,.16), transparent 70%);
}

.current_issue::after,
.obj_issue_summary::after{
  display:none !important;
  content:none !important;
}

/* remove line from issue area */
.current_issue hr,
.obj_issue_summary hr,
.current_issue .title,
.obj_issue_summary .title,
.current_issue .series,
.obj_issue_summary .series,
.current_issue .current_issue_title,
.obj_issue_summary .current_issue_title,
.current_issue h2,
.obj_issue_summary h2{
  border-bottom:none !important;
  box-shadow:none !important;
}

.current_issue h2::after,
.obj_issue_summary h2::after{
  display:none !important;
}

.current_issue .cover img,
.obj_issue_summary .cover img,
.current_issue img{
  border-radius:0 !important;
  border:1px solid #d7d7d7 !important;
  box-shadow:0 10px 24px rgba(0,0,0,.12) !important;
}

.current_issue .title a,
.obj_issue_summary .title a{
  color:var(--primary) !important;
}

.current_issue .series,
.obj_issue_summary .series,
.current_issue .published,
.obj_issue_summary .published{
  font-size:14px !important;
  color:#58636f !important;
}

/* ---------- ARTICLES / ANNOUNCEMENTS : SLIM ROUNDED ---------- */
.obj_article_summary,
.cmp_announcements .obj_announcement_summary{
  background:#fff;
  border:1px solid #e6e9ed;
  border-radius:22px !important;
  padding:16px 18px !important;
  margin-bottom:16px;
  box-shadow:0 4px 12px rgba(0,0,0,.03);
  transition:all .25s ease;
  position:relative;
}

.obj_article_summary:hover,
.cmp_announcements .obj_announcement_summary:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
  border-color:#d0d7de;
}

.obj_article_summary::after,
.cmp_announcements .obj_announcement_summary::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--primary),transparent);
  opacity:.55;
}

.obj_article_summary .title a,
.cmp_announcements .title a,
.title a{
  color:var(--dark) !important;
  line-height:1.55;
  text-transform:uppercase;
}
.obj_article_summary .title a:hover,
.cmp_announcements .title a:hover,
.title a:hover{
  color:var(--accent) !important;
}

/* ---------- BUTTONS : OVAL ---------- */
button,
.cmp_button,
.cmp_form .buttons button,
input[type="submit"],
a.btn,
a.read_more,
a.obj_galley_link,
a.file,
.popup-btn{
  display:inline-block;
  border-radius:999px !important;
  padding:8px 16px;
  font-size:12px !important;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.35px;
  border:1px solid var(--accent);
  color:var(--accent) !important;
  background:#fff;
  transition:all .25s ease;
}

button:hover,
.cmp_button:hover,
.cmp_form .buttons button:hover,
input[type="submit"]:hover,
a.btn:hover,
a.read_more:hover,
a.obj_galley_link:hover,
a.file:hover,
.popup-btn:hover{
  background:var(--accent);
  color:#fff !important;
  box-shadow:0 8px 18px rgba(143,29,44,.16);
}

/* ---------- SIDEBAR : FULL SQUARE PANELS ---------- */
.pkp_structure_sidebar{
  padding-top:0;
}

.pkp_block{
  background:linear-gradient(180deg,#ffffff 0%, #f8f9fa 100%);
  border:1px solid var(--line);
  border-radius:0 !important;
  padding:15px;
  margin-bottom:18px;
  box-shadow:var(--shadow-sm);
}

.pkp_block .title{
  color:var(--dark);
  font-size:14px;
  font-weight:800;
  text-transform:uppercase;
  text-align:center !important;
  margin-bottom:12px;
  letter-spacing:.35px;
}

/* ---------- INDEXING IMAGES : MIXED SHAPES ---------- */
.pkp_block img,
.pkp_block .content img,
.pkp_structure_sidebar img,
.block_custom img,
.block_web_feed img{
  display:block !important;
  margin:10px auto !important;
  max-width:170px !important;
  width:auto !important;
  height:auto !important;
  padding:6px;
  background:#fff;
  border:1px solid #ddd;
  box-shadow:0 4px 10px rgba(0,0,0,.04);
  transition:all .25s ease;
}

/* mixed shapes */
.pkp_block:nth-child(odd) img{
  border-radius:0 !important;
}
.pkp_block:nth-child(even) img{
  border-radius:18px !important;
}
.pkp_block:nth-child(3n) img{
  border-radius:30px !important;
}

.pkp_block img:hover,
.pkp_structure_sidebar img:hover{
  transform:scale(1.03);
  box-shadow:0 10px 18px rgba(0,0,0,.08);
}

/* ---------- FORMS : MEDIUM ROUNDED ---------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
textarea,
select{
  width:100%;
  box-sizing:border-box;
  padding:12px 14px;
  border:1px solid var(--line-dark);
  border-radius:12px !important;
  background:#fff;
  color:var(--text);
}

input:focus,
textarea:focus,
select:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(15,107,122,.08);
}

/* ---------- TABLES : SQUARE ---------- */
table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  border-radius:0 !important;
}
table th,
table td{
  padding:12px;
  border:1px solid #e4e7eb;
  border-radius:0 !important;
}
table th{
  background:linear-gradient(135deg,var(--dark),#486581);
  color:#fff;
  text-transform:uppercase;
  font-size:12px;
}

/* ---------- POPUP ---------- */
.ojs-popup{
  position:fixed;
  inset:0;
  background:rgba(17,24,39,.72);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.3s ease;
  z-index:99999;
}
.ojs-popup:target{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.ojs-popup-box{
  width:min(92%,600px);
  margin:7% auto;
  background:linear-gradient(180deg,#ffffff,#fafafa);
  border:1px solid var(--line);
  border-top:6px solid var(--primary);
  border-radius:26px !important;
  padding:28px 22px;
  box-shadow:0 24px 60px rgba(0,0,0,.18);
  position:relative;
}
.ojs-popup-box h3{
  color:var(--dark);
  margin-top:0;
}
.ojs-popup-close{
  position:absolute;
  top:10px;
  right:14px;
  font-size:28px;
  line-height:1;
  color:var(--accent) !important;
  font-weight:700;
}

/* ---------- FOOTER : CENTERED CLEAN STRIP ---------- */
.pkp_structure_footer_wrapper{
  background:linear-gradient(180deg,#dcdcdc 0%, #cfcfcf 100%);
  border-top:3px solid var(--dark);
  text-align:center !important;
  padding:20px;
  color:var(--dark);
}

.pkp_structure_footer_wrapper p,
.pkp_structure_footer_wrapper div,
.pkp_structure_footer_wrapper span,
.pkp_structure_footer_wrapper a{
  color:var(--dark) !important;
  text-align:center !important;
}

/* remove pkp/ojs branding */
.pkp_brand_footer,
.pkp_footer_branding,
.pkp_footer_content .pkp_brand_footer,
.pkp_structure_footer_wrapper .pkp_brand_footer,
.pkp_structure_footer_wrapper .pkp_footer_branding,
.pkp_structure_footer_wrapper a[href*="pkp.sfu.ca"],
.pkp_structure_footer_wrapper a[href*="ojs"]{
  display:none !important;
}

/* ---------- SMALL DETAILS ---------- */
hr{
  border:0;
  height:1px;
  background:linear-gradient(90deg,transparent,#d2d6dc,transparent);
  margin:20px 0;
}

::-webkit-scrollbar{
  width:10px;
}
::-webkit-scrollbar-track{
  background:#eceff1;
}
::-webkit-scrollbar-thumb{
  background:linear-gradient(var(--primary),var(--accent));
  border-radius:20px;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:992px){
  .pkp_site_name a,
  .pkp_site_name .is_text{
    font-size:21px;
  }
  .pkp_block img,
  .pkp_structure_sidebar img{
    max-width:150px !important;
  }
  .current_issue .title a,
  .obj_issue_summary .title a{
    font-size:18px !important;
  }
}

@media (max-width:768px){
  body{
    font-size:13px !important;
  }
  .pkp_navigation_primary > li > a,
  .pkp_navigation_user > li > a{
    font-size:12px;
    padding:9px 11px;
  }
  .pkp_structure_main,
  .page_index_journal,
  .page_about,
  .obj_issue_toc,
  .obj_article_details{
    padding:0 6px;
  }
  .pkp_block img,
  .pkp_structure_sidebar img{
    max-width:128px !important;
  }
  .ojs-popup-box{
    width:92%;
    margin:18% auto;
    padding:22px 18px;
  }
  .current_issue,
  .obj_issue_summary{
    border-radius:20px !important;
    padding:18px !important;
  }
}