/**
 * JCC Theme — Journal of Constitutional Change
 * Child theme of the OJS 3.4 Default Theme.
 *
 * Palette
 *   Navy (dark)   #06101F   sidebar titles, footer bottom
 *   Navy          #0B1D36   header, buttons, footer
 *   Navy (light)  #1B3358   links, hover states
 *   Gold          #C6A87A   accents, rules
 *   Gold (text)   #8A6A2E   gold text on white (WCAG AA)
 *   Ivory         #F2EADA   text on navy
 */

/* ---------- Fonts (self-hosted, SIL Open Font Licence) ---------- */
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/cinzel-400.woff") format("woff"); }
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/cinzel-600.woff") format("woff"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/sourceserif4-400.woff") format("woff"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/sourceserif4-600.woff") format("woff"); }
@font-face { font-family: "Source Serif 4"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/sourceserif4-400-italic.woff") format("woff"); }

:root {
  --jcc-navy-dark: #06101F;
  --jcc-navy: #0B1D36;
  --jcc-navy-light: #1B3358;
  --jcc-gold: #C6A87A;
  --jcc-gold-text: #8A6A2E;
  --jcc-gold-light: #ECD9AA;
  --jcc-ivory: #F2EADA;
  --jcc-display: "Cinzel", Georgia, serif;
  --jcc-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
}

/* ---------- Header ---------- */
.pkp_structure_head {
  background-color: var(--jcc-navy);
  border-bottom: 3px solid var(--jcc-gold);
}

/* Header image: full container width instead of the default 80px height cap */
.pkp_site_name .is_img { display: block; margin: 0; }
.pkp_site_name .is_img img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
}
@media (min-width: 992px) {
  .pkp_site_name_wrapper { padding-left: 0; padding-right: 0; }
  .pkp_site_name .is_img img { max-height: none; }
}
/* Phones and tablets: keep the menu button bar, show the header image below it */
@media (max-width: 991px) {
  .has_site_logo .pkp_site_name_wrapper { height: auto; padding-top: 2.857rem; }
  .has_site_logo .pkp_site_name { position: static; padding: 0; }
  .has_site_logo .pkp_site_name > a { padding: 0; }
}

/* Primary navigation */
.pkp_navigation_primary_row { border-top: 1px solid rgba(198,168,122,0.25); }
@media (min-width: 992px) {
  .pkp_navigation_primary > li > a {
    color: var(--jcc-ivory);
    letter-spacing: .02em;
    border-bottom: 2px solid transparent;
  }
  .pkp_navigation_primary > li > a:hover,
  .pkp_navigation_primary > li > a:focus {
    color: var(--jcc-gold-light);
    border-bottom-color: var(--jcc-gold);
  }
  .pkp_navigation_primary > li:first-child a { margin-left: 0; }
  .pkp_navigation_primary ul { border-top: 3px solid var(--jcc-gold); border-radius: 0 0 3px 3px; }
  .pkp_navigation_primary ul a { color: var(--jcc-navy); }
  .pkp_navigation_primary ul a:hover,
  .pkp_navigation_primary ul a:focus { color: var(--jcc-navy); background: #F6F1E7; border-left-color: var(--jcc-gold); }
  .pkp_navigation_search_wrapper a { color: var(--jcc-ivory); border-bottom: 2px solid transparent; }
  .pkp_navigation_search_wrapper a:hover,
  .pkp_navigation_search_wrapper a:focus { color: var(--jcc-gold-light); border-bottom-color: var(--jcc-gold); }
  .pkp_navigation_user > li > a { color: var(--jcc-ivory); }
  .pkp_navigation_user > li > a:hover,
  .pkp_navigation_user > li > a:focus { color: var(--jcc-gold-light); }
}

/* Navigation row: always navy, even if the Default Theme colour option,
   a cached stylesheet or a custom journal stylesheet sets a light colour */
.pkp_structure_head,
.pkp_structure_head .pkp_site_nav_menu,
.pkp_structure_head .pkp_navigation_primary_row,
.pkp_structure_head .pkp_navigation_primary_wrapper,
.pkp_structure_head .pkp_navigation_user_wrapper { background-color: var(--jcc-navy) !important; }
.pkp_structure_head .pkp_navigation_primary > li > a,
.pkp_structure_head .pkp_navigation_search_wrapper a,
.pkp_structure_head .pkp_navigation_user > li > a,
.pkp_structure_head .pkp_site_nav_menu a { color: var(--jcc-ivory) !important; }
.pkp_structure_head .pkp_navigation_primary > li > a:hover,
.pkp_structure_head .pkp_navigation_search_wrapper a:hover,
.pkp_structure_head .pkp_navigation_user > li > a:hover,
.pkp_structure_head .pkp_site_nav_menu a:hover { color: var(--jcc-gold-light) !important; border-color: var(--jcc-gold) !important; }
.pkp_structure_head .pkp_navigation_primary > li > a:focus { background: var(--jcc-ivory) !important; color: var(--jcc-navy) !important; }
/* Dropdown menus keep dark text on their white panel */
.pkp_structure_head .pkp_navigation_primary ul a,
.pkp_structure_head .pkp_navigation_user ul a { color: var(--jcc-navy) !important; }
@media (max-width: 991px) {
  .pkp_structure_head .pkp_navigation_primary ul a,
  .pkp_structure_head .pkp_navigation_user ul a { color: var(--jcc-ivory) !important; }
}
.pkp_site_nav_toggle > span { border-bottom-color: var(--jcc-ivory) !important; }
.pkp_site_nav_toggle > span::before,
.pkp_site_nav_toggle > span::after { background: var(--jcc-ivory) !important; }

/* ---------- Content ---------- */
.pkp_structure_main h1,
.pkp_structure_main h2,
.pkp_structure_main h3 { font-family: var(--jcc-serif); color: var(--jcc-navy); }
.pkp_structure_main h1 { font-weight: 600; letter-spacing: .005em; }

/* Page titles (About, Archives, Announcements…) with a gold rule */
.pkp_structure_main .page > h1:not(.page_title),
.pkp_structure_main .page > h2:first-child {
  padding-bottom: .6rem;
  border-bottom: 1px solid rgba(198,168,122,0.55);
  position: relative;
}

.pkp_structure_main a { color: var(--jcc-navy-light); }
.pkp_structure_main a:hover,
.pkp_structure_main a:focus { color: var(--jcc-gold-text); }

.cmp_breadcrumbs a { color: var(--jcc-navy-light); }
.cmp_breadcrumbs .current { color: var(--jcc-gold-text); }

/* Issue table of contents / article summaries */
.obj_issue_toc .sections .section > h2,
.obj_issue_toc .heading h2 {
  font-family: var(--jcc-display);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--jcc-gold-text);
}
.obj_article_summary > .title,
.obj_article_summary > h3.title {
  font-family: var(--jcc-serif);
  font-weight: 600;
  font-size: 1.14rem;
  line-height: 1.45;
}
.obj_article_summary > .title a { color: var(--jcc-navy); }
.obj_article_summary > .title a:hover,
.obj_article_summary > .title a:focus { color: var(--jcc-gold-text); }

/* Article page */
.obj_article_details .page_title {
  font-family: var(--jcc-serif);
  font-weight: 600;
  color: var(--jcc-navy);
  line-height: 1.3;
}
.obj_article_details .subtitle { font-family: var(--jcc-serif); font-style: italic; }
.obj_article_details .item .label,
.obj_article_details .main_entry .label {
  font-family: var(--jcc-display);
  font-weight: 600;
  letter-spacing: .06em;
  color: var(--jcc-navy);
}
.obj_article_details .abstract { font-family: var(--jcc-serif); font-size: 1.07rem; line-height: 1.75; }

/* Buttons and galley links (PDF, HTML…) */
.cmp_button,
.pkp_button,
.cmp_form .buttons button,
.obj_galley_link {
  border-color: var(--jcc-navy);
  color: var(--jcc-navy);
  border-radius: 2px;
}
.cmp_button:hover, .cmp_button:focus,
.pkp_button:hover, .pkp_button:focus,
.cmp_form .buttons button:hover, .cmp_form .buttons button:focus,
.obj_galley_link:hover, .obj_galley_link:focus {
  background: var(--jcc-navy);
  border-color: var(--jcc-navy);
  color: var(--jcc-ivory);
}
.cmp_form .buttons button.submit,
.cmp_button.submit { background: var(--jcc-navy); color: var(--jcc-ivory); }

/* Homepage image: the Default Theme already shows it flush and full width */
.page_index_journal .homepage_image { margin-bottom: 1.75rem; }

/* ---------- Sidebar ---------- */
.pkp_structure_sidebar .pkp_block { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.pkp_structure_sidebar .pkp_block .title:not(.pkp_screen_reader) {
  display: block;
  margin: 0 0 .9rem;
  padding: .55rem .9rem;
  background: var(--jcc-navy-dark);
  border-left: 3px solid var(--jcc-gold);
  color: var(--jcc-gold-light);
  font-family: var(--jcc-display);
  font-size: .86rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* Optional sidebar menu component — see snippets/main-menu-block.html */
.jcc-menu { margin: 0; border-radius: 4px; overflow: hidden; box-shadow: 0 1px 2px rgba(6,16,31,.15); }
.jcc-menu__title {
  margin: 0 !important;
  padding: .8rem 1rem;
  background: var(--jcc-navy-dark);
  border-bottom: 2px solid var(--jcc-gold);
  color: var(--jcc-gold-light);
  font-family: var(--jcc-display);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-align: center;
  text-transform: uppercase;
}
.jcc-menu ul { list-style: none; margin: 0; padding: 0; background: var(--jcc-navy); }
.jcc-menu li { margin: 0 !important; padding: 0 !important; border-top: 1px solid rgba(198,168,122,.22); }
.jcc-menu li:first-child { border-top: 0; }
.jcc-menu a {
  display: block;
  padding: .62rem 1rem;
  background: var(--jcc-navy);
  color: var(--jcc-ivory) !important;
  text-decoration: none !important;
  text-align: center;
  font-weight: 600;
  transition: background .2s, color .2s;
}
.jcc-menu a:hover,
.jcc-menu a:focus { background: var(--jcc-gold); color: var(--jcc-navy) !important; }

/* ---------- Footer ---------- */
.pkp_structure_footer_wrapper {
  background: var(--jcc-navy);
  border-top: 4px solid var(--jcc-gold);
}
.pkp_structure_footer { padding: 0; }
.pkp_footer_content { padding: 48px 30px 0; }

.jcc-footer { color: #D8DEE8; font-size: 14px; line-height: 1.7; }
.jcc-footer p { margin: 0; }
.jcc-footer__grid { display: grid; grid-template-columns: 0.95fr 1.55fr 1fr; gap: 44px; }
.jcc-footer__title {
  font-family: var(--jcc-display);
  font-size: 24px; line-height: 1.3; letter-spacing: .03em;
  color: var(--jcc-gold-light); text-transform: uppercase;
}
.jcc-footer__rule { position: relative; margin: 16px 0 14px !important; height: 12px; line-height: 12px; max-width: 220px; }
.jcc-footer__rule::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid var(--jcc-gold); }
.jcc-footer__rule span { position: relative; display: inline-block; padding-right: 8px; background: var(--jcc-navy); color: var(--jcc-gold); font-size: 11px; line-height: 12px; }
.jcc-footer__desc { font-family: var(--jcc-serif); font-style: italic; font-size: 15px; color: #B9C3D1; max-width: 320px; }
.jcc-footer__heading {
  font-family: var(--jcc-display);
  font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--jcc-gold); padding-bottom: 10px; margin-bottom: 14px !important;
  border-bottom: 1px solid rgba(198,168,122,.35);
}
.jcc-footer__org { font-weight: 600; color: var(--jcc-gold-light); margin-bottom: 4px !important; }
.jcc-footer__email { margin-top: 12px !important; }
.jcc-footer__badge { margin-bottom: 12px !important; line-height: 0; }
.jcc-footer__badge a { border: 0 !important; display: inline-block; }
.jcc-footer__badge img { display: block; }
.jcc-footer__license { color: #B9C3D1; }
.jcc-footer a { color: #D8DEE8; text-decoration: none; border-bottom: 1px solid rgba(198,168,122,.5); transition: color .2s, border-color .2s; }
.jcc-footer a:hover, .jcc-footer a:focus { color: var(--jcc-gold-light); border-bottom-color: var(--jcc-gold); }
.jcc-footer__bottom {
  margin-top: 40px; padding: 18px 0;
  border-top: 1px solid rgba(198,168,122,.35);
  text-align: center; font-size: 12.5px; letter-spacing: .02em; color: #8FA0B8;
}

/* Default footer content (if the JCC footer HTML is not used) */
.pkp_footer_content > p, .pkp_footer_content > div:not(.jcc-footer) { color: #D8DEE8; }
.pkp_footer_content a:not(.jcc-footer a) { color: var(--jcc-gold-light); }

/* OJS/PKP logo: light, to stay legible on navy */
.pkp_brand_footer { padding: 0 30px 24px; }
.pkp_brand_footer img { filter: brightness(0) invert(1); opacity: .55; }

@media (max-width: 767px) {
  .jcc-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .pkp_footer_content { padding: 36px 20px 0; }
}

/* ---------- Content components (v1.2): sidebar widgets, pages, homepage ---------- */
.jcc-widget { margin: 0; }
.jcc-widget p { margin: 0 0 .6rem; }
.jcc-widget__title {
  margin: 0 0 .75rem !important;
  padding: .55rem .9rem;
  background: var(--jcc-navy-dark);
  border-left: 3px solid var(--jcc-gold);
  color: var(--jcc-gold-light);
  font-family: var(--jcc-display);
  font-size: .86rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.jcc-widget__text { font-size: .93rem; line-height: 1.6; }
.jcc-muted { color: #5B6675; font-size: .85rem; }

.jcc-btn {
  display: block;
  padding: .7rem 1rem;
  background: var(--jcc-navy);
  border: 1px solid var(--jcc-navy);
  border-radius: 2px;
  color: var(--jcc-ivory) !important;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: center;
  text-decoration: none !important;
  transition: background .2s, color .2s, border-color .2s;
}
.jcc-btn:hover, .jcc-btn:focus { background: var(--jcc-gold); border-color: var(--jcc-gold); color: var(--jcc-navy) !important; }
.jcc-btn--ghost { background: transparent; color: var(--jcc-navy) !important; }
.jcc-btn--ghost:hover, .jcc-btn--ghost:focus { background: var(--jcc-navy); border-color: var(--jcc-navy); color: var(--jcc-ivory) !important; }

.jcc-kv { display: grid; grid-template-columns: auto 1fr; gap: .35rem .9rem; margin: 0; font-size: .9rem; }
.jcc-kv dt { color: #5B6675; font-weight: 400; }
.jcc-kv dd { margin: 0; color: var(--jcc-navy); font-weight: 600; }

.jcc-links { list-style: none; margin: 0; padding: 0; }
.jcc-links li { margin: 0 !important; padding: .45rem 0 !important; border-bottom: 1px solid #D9DEE6; }
.jcc-links a { color: var(--jcc-navy); font-weight: 600; text-decoration: none; }
.jcc-links a:hover, .jcc-links a:focus { color: var(--jcc-gold-text); }

.jcc-table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: .95rem; }
.jcc-table th { background: var(--jcc-navy); color: var(--jcc-ivory); text-align: left; font-weight: 600; padding: .6rem .8rem; }
.jcc-table td { padding: .55rem .8rem; border-bottom: 1px solid #D9DEE6; vertical-align: top; }
.jcc-table tbody tr:nth-child(even) td { background: #F5F7FA; }

.jcc-people { list-style: none; margin: 0; padding: 0; }
.jcc-people li { padding: .8rem 0; border-bottom: 1px solid #D9DEE6; }
.jcc-people strong { display: block; color: var(--jcc-navy); font-family: var(--jcc-serif); font-size: 1.05rem; }
.jcc-people span { display: block; color: #5B6675; font-size: .9rem; margin-bottom: .2rem; }
.jcc-people a { font-size: .8rem; font-weight: 700; margin-right: .6rem; }

.jcc-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 1.75rem;
  background: #D9DEE6;
  border: 1px solid #D9DEE6;
}
.jcc-facts > div { background: #fff; padding: .8rem 1rem; }
.jcc-facts span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #5B6675; }
.jcc-facts strong { display: block; margin-top: .15rem; font-family: var(--jcc-serif); font-size: 1.05rem; font-weight: 600; color: var(--jcc-navy); }
.jcc-lead { font-family: var(--jcc-serif); font-size: 1.2rem; line-height: 1.6; color: var(--jcc-navy); }
.jcc-meta-line { margin-top: 1.25rem; padding-top: .9rem; border-top: 1px solid #D9DEE6; font-size: .9rem; color: #5B6675; }
@media (max-width: 600px) { .jcc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Card components (v1.3) ---------- */
/* ---------- Content components ---------- */
.jcc-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1rem;
  margin: 1.25rem 0 2rem;
}
.jcc-card {
  display: block;
  background: #fff;
  border: 1px solid #E4E9F0;
  border-radius: var(--jcc-radius);
  box-shadow: var(--jcc-card-shadow);
  padding: 1.15rem 1.2rem;
  text-decoration: none !important;
  transition: box-shadow .2s, transform .2s;
}
.jcc-card:hover, .jcc-card:focus { box-shadow: var(--jcc-card-shadow-hover); transform: translateY(-2px); }
.jcc-card__icon {
  display: block;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  margin-bottom: .7rem;
  border-radius: 10px;
  background: #EEF2F8;
  color: var(--jcc-navy);
}
.jcc-card__icon svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.7; }
.jcc-card__title { display: block; margin: 0 0 .3rem !important; font-family: var(--jcc-serif); font-size: 1.05rem; font-weight: 600; color: var(--jcc-navy); }
.jcc-card__text { display: block; margin: 0 !important; font-size: .88rem; line-height: 1.55; color: #5B6675; }

.jcc-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}
.jcc-stat {
  background: var(--jcc-navy);
  border-radius: var(--jcc-radius);
  padding: 1.2rem 1rem;
  text-align: center;
  color: var(--jcc-ivory);
}
.jcc-stat strong { display: block; font-family: var(--jcc-serif); font-size: 2rem; line-height: 1.1; color: var(--jcc-gold-light); }
.jcc-stat span { display: block; margin-top: .3rem; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }

.jcc-people--cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.jcc-people--cards li {
  background: #fff;
  border: 1px solid #E4E9F0;
  border-radius: var(--jcc-radius);
  box-shadow: var(--jcc-card-shadow);
  padding: 1.1rem 1.2rem !important;
  border-bottom: 1px solid #E4E9F0 !important;
}
.jcc-people .jcc-avatar,
.jcc-avatar {
  display: flex !important;
  color: var(--jcc-gold-light) !important;
  margin-bottom: .6rem !important; align-items: center; justify-content: center;
  width: 46px; height: 46px; margin-bottom: .6rem;
  border-radius: 50%;
  background: var(--jcc-navy);
  color: var(--jcc-gold-light);
  font-family: var(--jcc-display);
  font-size: .95rem; font-weight: 600;
}

.jcc-logos { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0 2rem; padding: 0; list-style: none; }
.jcc-logos li { margin: 0 !important; padding: 0 !important; }
.jcc-logos a {
  display: inline-block;
  padding: .5rem 1rem;
  background: #fff;
  border: 1px solid #E4E9F0;
  border-radius: 999px;
  box-shadow: var(--jcc-card-shadow);
  font-size: .85rem;
  font-weight: 700;
  color: var(--jcc-navy) !important;
  text-decoration: none !important;
}
.jcc-logos a:hover, .jcc-logos a:focus { border-color: var(--jcc-gold); color: var(--jcc-gold-text) !important; }


.jcc-card__icon {
  background-repeat: no-repeat;
  background-position: center;
  background-size: 22px 22px;
}

/* Card icons (drawn in CSS so the page HTML needs no inline SVG) */
.jcc-card--scope .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4.3-4.3'/%3E%3C/svg%3E"); }
.jcc-card--review .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h10M4 18h7'/%3E%3Cpath d='M15 17l2 2 4-4'/%3E%3C/svg%3E"); }
.jcc-card--guidelines .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l5 5v13H6z'/%3E%3Cpath d='M14 3v5h5'/%3E%3Cpath d='M9 13h7M9 17h5'/%3E%3C/svg%3E"); }
.jcc-card--submit .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5'/%3E%3Cpath d='M6 11l6-6 6 6'/%3E%3Cpath d='M4 21h16'/%3E%3C/svg%3E"); }
.jcc-card--access .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='2'/%3E%3Cpath d='M9 11V8a3 3 0 0 1 6 0'/%3E%3C/svg%3E"); }
.jcc-card--ethics .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4l7 3v5c0 4-3 6.5-7 8-4-1.5-7-4-7-8V7z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.jcc-card--fees .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M9 9h6M9 12h6M11 16l3-8'/%3E%3C/svg%3E"); }
.jcc-card--indexing .jcc-card__icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1D36' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='14' rx='2'/%3E%3Cpath d='M9 5v14M4 10h16'/%3E%3C/svg%3E"); }

/* ---------- Journal identity table (v1.3.2) ---------- */
.jcc-idtable { width: 100%; max-width: 640px; border-collapse: collapse; margin: 0 0 1.75rem; font-size: .95rem; }
.jcc-idtable td { padding: .42rem .6rem; border: 0; border-bottom: 1px solid #E4E9F0; vertical-align: top; line-height: 1.5; }
.jcc-idtable tr:last-child td { border-bottom: 0; }
.jcc-idtable td:first-child { width: 170px; color: #5B6675; white-space: nowrap; }
.jcc-idtable td:last-child { color: var(--jcc-navy); font-weight: 600; }
.jcc-idtable td:last-child a { font-weight: 600; }
@media (max-width: 520px) {
  .jcc-idtable td:first-child { width: 120px; white-space: normal; }
}

/* ---------- Editorial team list with photos (v1.3.3) ---------- */
.jcc-editors { list-style: none; margin: 0 0 2rem; padding: 0; }
.jcc-editors > li {
  display: flex;
  gap: 1.1rem;
  align-items: flex-start;
  margin: 0 !important;
  padding: 1.1rem 0 !important;
  border-bottom: 1px solid #E4E9F0;
}
.jcc-editors > li:last-child { border-bottom: 0; }
.jcc-editors img {
  flex: 0 0 auto;
  width: 96px;
  height: 120px;
  object-fit: cover;
  object-position: top center;
  border: 1px solid #E4E9F0;
  border-radius: 6px;
  background: #EEF2F8;
}
.jcc-editors .jcc-ed__body { flex: 1 1 auto; min-width: 0; }
.jcc-editors .jcc-ed__name {
  display: block;
  margin: 0 0 .15rem !important;
  font-family: var(--jcc-serif);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--jcc-navy);
}
.jcc-editors .jcc-ed__role {
  display: block;
  margin: 0 0 .3rem !important;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--jcc-gold-text);
}
.jcc-editors .jcc-ed__aff { display: block; margin: 0 0 .45rem !important; color: #5B6675; font-size: .95rem; }
.jcc-editors .jcc-ed__links a {
  display: inline-block;
  margin: 0 .4rem .35rem 0;
  padding: .15rem .7rem;
  border: 1px solid #E4E9F0;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  color: var(--jcc-navy) !important;
  text-decoration: none !important;
}
.jcc-editors .jcc-ed__links a:hover,
.jcc-editors .jcc-ed__links a:focus { border-color: var(--jcc-gold); color: var(--jcc-gold-text) !important; }
.jcc-editors + h2, .jcc-editors + h3 { margin-top: 1.5rem; }
@media (max-width: 480px) {
  .jcc-editors img { width: 72px; height: 90px; }
}

/* Empty photo slot (member without a photograph) */
.jcc-editors .jcc-ed__nophoto {
  flex: 0 0 auto;
  display: block;
  width: 96px;
  height: 120px;
  border: 1px dashed #D9DEE6;
  border-radius: 6px;
  background: #F5F7FA;
}
@media (max-width: 480px) { .jcc-editors .jcc-ed__nophoto { width: 72px; height: 90px; } }

/* Editorial list: plain IJCAL-style presentation (v1.3.5) */
.jcc-editors > li { border-bottom: 0; padding: .9rem 0 !important; }
.jcc-editors .jcc-ed__links a {
  margin: 0 .9rem 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none !important;
}
.jcc-editors .jcc-ed__links a:hover,
.jcc-editors .jcc-ed__links a:focus { text-decoration: underline !important; }


/* ---------- Editorial team, IJCAL-style (v1.4.1) ----------
   Styles plain page markup, with or without class attributes, and whether the
   entries end up as <p> or as <li>:
   <h3>Group</h3>
   <p><img ...><strong>Name</strong><br><em>Role</em><br>Affiliation<br><a>Scopus</a></p>  */

/* group heading bar (only before an entry that has a photo) */
.pkp_structure_main h3:has(+ p img),
.pkp_structure_main h3:has(+ p strong),
.pkp_structure_main h3:has(+ ul li img),
.pkp_structure_main h3:has(+ ul li strong) {
  margin: 2.2rem 0 1.4rem;
  padding: .75rem 1rem;
  background: #F1F3F6;
  border: 0;
  border-left: 4px solid var(--jcc-gold);
  border-radius: 2px;
  font-family: var(--jcc-display);
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--jcc-navy);
}

/* entry row */
.pkp_structure_main ul:has(> li > img) { list-style: none; margin: 0; padding: 0; }
.pkp_structure_main p:has(> img),
.pkp_structure_main p:has(> strong):has(> em),
.pkp_structure_main ul > li:has(> img) {
  overflow: hidden;
  min-height: 190px;
  margin: 0 !important;
  padding: 1.5rem 0 !important;
  border-bottom: 1px solid #EDF0F4;
  color: #4B5563;
  font-size: 1.02rem;
  line-height: 2.1;
}
.pkp_structure_main p > img,
.pkp_structure_main ul > li:has(> em) > img {
  float: left;
  width: 150px !important;
  height: 180px !important;
  object-fit: cover;
  object-position: top center;
  margin: 0 1.6rem .6rem 0;
  padding: 4px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 6px;
  box-shadow: 0 1px 4px rgba(6,16,31,.08);
}
/* member without a photograph */
.pkp_structure_main p:has(> strong):has(> em):not(:has(> img))::before,
.pkp_structure_main ul:not(.jcc-people) > li:has(> strong):has(> em):not(:has(> img)):not(:has(.jcc-avatar))::before {
  content: "";
  float: left;
  width: 150px;
  height: 180px;
  margin: 0 1.6rem .6rem 0;
  background: #E8EBEF url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='%23BFC6D1'><circle%20cx='12'%20cy='8.5'%20r='4.2'/><path%20d='M3.8%2021c0-4.5%203.7-6.6%208.2-6.6s8.2%202.1%208.2%206.6z'/></svg>") center 55% / 84px no-repeat;
  border-radius: 6px;
}
.pkp_structure_main p:has(> img) strong,
.pkp_structure_main p:has(> em) strong,
.pkp_structure_main ul > li:has(> img) strong {
  font-family: var(--jcc-serif);
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--jcc-navy);
}
.pkp_structure_main p em,
.pkp_structure_main ul > li em {
  font-style: normal;
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--jcc-gold-text);
}
.pkp_structure_main a[href*="scopus.com"] {
  display: inline-block;
  position: relative;
  margin-top: .35rem;
  padding: .3rem 1rem .3rem 2.5rem;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.6;
  color: var(--jcc-navy) !important;
  text-decoration: none !important;
  box-shadow: 0 1px 3px rgba(6,16,31,.06);
}
.pkp_structure_main a[href*="scopus.com"]::before {
  content: "Sc";
  position: absolute;
  left: .35rem;
  top: 50%;
  transform: translateY(-50%);
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--jcc-navy);
  color: var(--jcc-gold-light);
  font-family: var(--jcc-display);
  font-size: .72rem;
  font-weight: 600;
  line-height: 26px;
  text-align: center;
}
.pkp_structure_main a[href*="scopus.com"]:hover,
.pkp_structure_main a[href*="scopus.com"]:focus { border-color: var(--jcc-gold); }
@media (max-width: 600px) {
  .pkp_structure_main p:has(> img),
  .pkp_structure_main ul > li:has(> img) { min-height: 0; line-height: 1.9; }
  .pkp_structure_main p > img,
  .pkp_structure_main ul > li > img,
  .pkp_structure_main p:not(:has(> img))::before { width: 104px !important; height: 125px !important; margin-right: 1rem; }
  .pkp_structure_main p:has(> img) strong { font-size: 1.3rem; }
}

/* ---------- Fallback without :has() (v1.4.2) ---------- */
.pkp_structure_main p > img {
  float: left;
  width: 150px;
  height: 180px;
  object-fit: cover;
  object-position: top center;
  margin: 0 1.6rem .6rem 0;
  padding: 4px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 6px;
  box-shadow: 0 1px 4px rgba(6,16,31,.08);
}
.pkp_structure_main p > img + strong {
  font-family: var(--jcc-serif);
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--jcc-navy);
}


/* ---------- Homepage editorial cards (v1.5.2) ---------- */
.jcc-people--cards li { display: flex; flex-direction: column; align-items: flex-start; }
.jcc-people--cards li::before { content: none !important; }
.jcc-people .jcc-avatar { float: none !important; margin: 0 0 .6rem !important; }
.jcc-people--cards strong { font-size: 1.05rem; }
.jcc-people--cards img {
  width: 84px;
  height: 105px;
  object-fit: cover;
  object-position: top center;
  margin: 0 0 .7rem !important;
  padding: 3px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 6px;
  box-shadow: 0 1px 4px rgba(6,16,31,.08);
  float: none !important;
}

/* Homepage editor cards: keep name and text below the photo (v1.5.5) */
.jcc-people--cards li > img { float: none !important; display: block; }
.jcc-people--cards li > strong,
.jcc-people--cards li > span:not(.jcc-avatar) { display: block; width: 100%; clear: both; }
.jcc-people--cards li > strong { line-height: 1.25; }


/* Homepage editor cards never float (v1.6.0) */
.jcc-people li > img,
.jcc-people--cards li > img { float: none !important; display: block !important; width: 84px !important; height: 105px !important; }
.jcc-people li > strong,
.jcc-people li > span:not(.jcc-avatar) { display: block !important; width: 100% !important; clear: both !important; }

/* ---------- Keyword cloud & visitor counters (v1.6.1) ---------- */
.jcc-cloud { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: .35rem .7rem; margin: 0; padding: .4rem 0; list-style: none; }
.jcc-cloud li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.jcc-cloud a { color: var(--jcc-navy) !important; text-decoration: none !important; line-height: 1.25; display: inline-block; transition: color .2s, transform .2s; }
.jcc-cloud a:hover, .jcc-cloud a:focus { color: var(--jcc-gold-text) !important; transform: translateY(-1px); }
.jcc-cloud .s1 { font-size: .8rem; }
.jcc-cloud .s2 { font-size: .95rem; }
.jcc-cloud .s3 { font-size: 1.12rem; font-weight: 600; }
.jcc-cloud .s4 { font-size: 1.32rem; font-weight: 600; }
.jcc-cloud .s5 { font-size: 1.55rem; font-weight: 700; font-family: var(--jcc-serif); }
.jcc-cloud .c1 { color: #1B3358 !important; }
.jcc-cloud .c2 { color: #8A6A2E !important; }
.jcc-cloud .c3 { color: #3D6B7D !important; }
.jcc-cloud .c4 { color: #6B4F8A !important; }
.jcc-cloud .c5 { color: #2F6B4F !important; }
.jcc-cloud .c1:hover, .jcc-cloud .c2:hover, .jcc-cloud .c3:hover,
.jcc-cloud .c4:hover, .jcc-cloud .c5:hover { color: var(--jcc-gold-text) !important; }

.jcc-counter { text-align: center; }
.jcc-counter img { display: inline-block; max-width: 100%; height: auto; border: 0; }
.jcc-counter p { margin: .5rem 0 0 !important; font-size: .78rem; color: #5B6675; }
.jcc-counter--map img { border: 1px solid #E4E9F0; border-radius: 6px; }
.jcc-counter__note { font-size: .78rem; color: #5B6675; }
