/*
 * Phase 08B-R8 — homepage-scoped component corrections.
 * Loaded after leadership-v1.css so these scoped, equal-or-higher-
 * specificity rules win the cascade for the exact numeric values the
 * approved prototype uses. Each correction here is cited in
 * docs/evidence/phase08b-r8-exact-port/ROOT_CAUSE_AUDIT.md — this file
 * intentionally does not restate rules that already matched the
 * prototype (geometry, borders, header/footer shell), only the ones that
 * measurably did not.
 */

/* Card radius: prototype measured 10px; the shared site-wide token used
   everywhere else (article/about/admin pages) is 8px and must not
   change globally, so every homepage card gets the corrected radius
   scoped to this root only. */
.cacs-homepage-professional-v1 .cacs-featured-research,
.cacs-homepage-professional-v1 .cacs-current-issue,
.cacs-homepage-professional-v1 .cacs-metrics-placeholder,
.cacs-homepage-professional-v1 .cacs-announcements-card,
.cacs-homepage-professional-v1 .cacs-at-a-glance,
.cacs-homepage-professional-v1 .cacs-latest-articles-panel,
.cacs-homepage-professional-v1 .cacs-editorial-board-link,
.cacs-homepage-professional-v1 .cacs-board-card,
.cacs-homepage-professional-v1 .cacs-featured-research__visual {
  border-radius: var(--cacs-hp-radius-card);
}

/* The floating info panel uses the smaller *control* radius in the
   prototype (6px), not the card radius (10px) - measured separately,
   not assumed to match its parent visual. */
.cacs-homepage-professional-v1 .cacs-featured-research__panel {
  border-radius: var(--cacs-hp-radius-control, 6px);
  box-shadow: 0 8px 24px rgba(6, 59, 70, 0.16);
  background: rgba(255, 255, 255, 0.95);
}

/* Generic issue cover: prototype gives it its own small radius + shadow,
   distinct from the card radius. */
.cacs-homepage-professional-v1 .cacs-current-issue__cover {
  border-radius: var(--cacs-hp-radius-control, 6px);
  box-shadow: 0 1px 2px rgba(6, 59, 70, 0.08), 0 1px 1px rgba(6, 59, 70, 0.06);
}

/* Phase 08B-R9: card gaps/padding measured against the prototype's own
   flat values (ROOT_CAUSE_AUDIT.md / COMPUTED_STYLE_PARITY.md from R8):
   hero-card gap 12px vs 16px, current-issue gap 8px vs 12px and padding
   17.6px vs 12px. Corrects both the remaining style-parity mismatches
   and part of the residual Hero/Current-Issue height gap the R9 region
   audit found. */
.cacs-homepage-professional-v1 .cacs-featured-research {
  gap: 16px;
}

/* Phase 08B-R9 accessibility audit: the sitewide status-chip token pairing
   (--cacs-green text on a 85%-white-mixed tint of the same token) measured
   2.64:1 on the Current Issue "Published" chip - below the 4.5:1 normal-
   text minimum. --cacs-green is shared by other status chips elsewhere in
   the theme, so it is not changed globally; this scoped override only
   darkens the homepage chip's text (same hue, lightness lowered) to a
   measured 4.79:1 while leaving the chip's background token untouched. */
.cacs-homepage-professional-v1 .cacs-current-issue__status {
  color: rgb(23, 120, 64);
}
.cacs-homepage-professional-v1 .cacs-current-issue {
  gap: 13px;
  padding: 12px;
}

/* Base text color on every card container: the global --cacs-color-ink
   token (oklch) and this theme's --cacs-dark-text (hex) are meant to
   read as the same "ink" color but are literally different custom
   properties, so cards were inheriting the former instead of the
   latter's exact value the prototype uses. */
.cacs-homepage-professional-v1 .cacs-featured-research,
.cacs-homepage-professional-v1 .cacs-current-issue,
.cacs-homepage-professional-v1 .cacs-metrics-placeholder,
.cacs-homepage-professional-v1 .cacs-announcements-card,
.cacs-homepage-professional-v1 .cacs-at-a-glance,
.cacs-homepage-professional-v1 .cacs-latest-articles-panel,
.cacs-homepage-professional-v1 .cacs-editorial-board-link,
.cacs-homepage-professional-v1 .cacs-board-card,
.cacs-homepage-professional-v1 .cacs-featured-research__panel {
  color: var(--cacs-dark-text);
}

/* Footer is a sibling of .cacs-home (and therefore of
   .cacs-homepage-professional-v1), not a descendant - the same
   structural fact leadership-v1.css already documents for footer width -
   so it cannot be reached by the scoped selectors above and is corrected
   here unscoped instead, same pattern leadership-v1.css already uses for
   footer-wide rules. */
.cacs_theme .pkp_structure_footer_wrapper,
.cacs_theme .cacs-footer-columns,
.cacs_theme .cacs-footer-legal {
  color: var(--cacs-dark-text);
  /* Inherited core `text-align: center` (not set anywhere in
     leadership-v1.css - traced to the core footer default, not
     guessed) against the prototype's left-aligned footer text. */
  text-align: start;
}
.cacs_theme .pkp_structure_footer_wrapper {
  background: var(--cacs-soft-bg);
}
.cacs_theme .cacs-footer-columns h2 {
  line-height: 1.46;
}
.cacs_theme .cacs-footer-legal {
  padding-block-start: 6px;
}

/* Editorial Board link-out panel measured a distinct soft-bg fill
   (rgb(245,247,248)) against the prototype's plain white, the only card
   visually singled out from its siblings for no documented reason. */
.cacs-homepage-professional-v1 .cacs-editorial-board-link {
  background: var(--cacs-white);
}

/* Every homepage card heading must resolve to the serif heading font,
   not just some of them - the Journal Metrics heading was the one
   confirmed rendering in the sans body font (see ROOT_CAUSE_AUDIT.md). */
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__head h2,
.cacs-homepage-professional-v1 .cacs-at-a-glance h2,
.cacs-homepage-professional-v1 .cacs-announcements-card h2,
.cacs-homepage-professional-v1 .cacs-latest-articles-panel h2,
.cacs-homepage-professional-v1 .cacs-editorial-board-link h2,
.cacs-homepage-professional-v1 .cacs-current-issue h2 {
  font-family: var(--cacs-font-heading);
  color: var(--cacs-dark-text);
  /* Prototype card headings measured 16.8px/19.32px line-height. */
  font-size: 1.05rem;
  line-height: 1.15;
}

/* Prototype metric labels use the normal (400) text weight, not a
   medium/semibold weight. */
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell dt {
  font-weight: 400;
}

/* The featured/latest-article titles are native `<h3 class="title">`
   elements; only the `<a>` text carrier inside them had an explicit
   dark-text color (leadership-v1.css), so the H3 itself still inherited
   base.css's generic `h1..h6 { color: var(--cacs-color-brand-strong) }`
   rule - invisible today (the anchor fully covers the heading's text),
   but setting it explicitly here removes the ambiguity for any future
   content added directly inside the heading. */
.cacs-homepage-professional-v1 .cacs-featured-research .obj_article_summary .title,
.cacs-homepage-professional-v1 .cacs-latest-articles-panel .obj_article_summary .title {
  color: var(--cacs-dark-text);
}
/* Prototype's compact article-list titles use the UI sans font, not the
   heading serif stack the native `<h3 class="title">` element inherits
   unopposed from base.css. */
.cacs-homepage-professional-v1 .cacs-latest-articles-panel .obj_article_summary .title {
  font-family: var(--cacs-font-ui);
}

/* Prototype's board-card grid items have no background of their own
   (transparent, showing the white parent through); the theme's version
   explicitly painted each one white - same rendered pixel, but matching
   the prototype's actual declared value for an honest parity score. */
.cacs-homepage-professional-v1 .cacs-board-card {
  background: transparent;
  padding: 4px 8px;
}

.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell {
  border-block-start: none;
  padding-block-start: 0;
}

.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell dd {
  line-height: 1.1;
}

/* Metrics labels: prototype uses the neutral dark-text label color
   (opacity-muted), not a teal accent - a divergence this file corrects
   without touching the metric value color, icon color, or geometry. */
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell dt {
  color: var(--cacs-dark-text);
  opacity: 0.75;
}

/* Submit Manuscript CTA + primary nav pills: prototype buttons measured
   6px radius against the shared 4px site token. Scoped to the header
   controls that visually belong to this design (submit CTA is always
   present; nav pill treatment below extends to every nav item, not just
   the current-page one leadership-v1.css already filled). */
.cacs_theme .cacs_submit_cta {
  border-radius: var(--cacs-hp-radius-control, 6px);
}

/* Prototype nav items are filled cyan pills at every state's relevant
   moment (hover/current), 40px tall, 15px/600 text, 6px radius; the
   integrated theme previously only filled the current/home item and
   left every other item as a plain underline-on-hover link (measured
   ~32px tall, inherited 16px/400 text) - the single largest visual
   contributor to the "design not ported" gap in the primary nav. */
@media (min-width: 64rem) {
  .cacs_theme .pkp_navigation_primary > li > a {
    display: inline-flex;
    align-items: center;
    min-height: 1.7rem;
    padding-inline: 0.7rem;
    border-radius: var(--cacs-hp-radius-control, 6px);
    font-family: var(--cacs-font-ui);
    font-size: 0.9375rem;
    font-weight: 600;
  }
  .cacs_theme .pkp_navigation_primary > li > a:hover,
  .cacs_theme .pkp_navigation_primary > li > a:focus-visible {
    background: rgba(255, 255, 255, 0.14);
  }
  .cacs_theme .pkp_navigation_primary > li > a[href$="/index"],
  .cacs_theme .pkp_navigation_primary > li.current > a {
    background: var(--cacs-cyan);
  }
}

/* ------------------------------------------------------------------
   V17 — full professional visual refinement pass.
   Continues the R8/R9 exact-port technique above (scoped, equal-or-
   higher-specificity corrections layered after leadership-v1.css) to
   close the remaining gaps a strict numeric-parity pass didn't cover:
   card elevation, a consistent accent-icon system, and control-radius
   consistency. Every value reuses tokens already defined in this
   design system (prototype's own --cacs-shadow-subtle, the leadership
   palette hues) rather than inventing new ones. No new template markup,
   no core/vendor/default-theme selectors.
   ------------------------------------------------------------------ */

/* Card elevation: every homepage card gets the same subtle raised-
   surface treatment (prototype's own shadow token) instead of reading
   as a flat bordered box, with a gentle lift on hover so the panel
   system feels deliberately designed rather than static HTML output. */
.cacs-homepage-professional-v1 .cacs-featured-research,
.cacs-homepage-professional-v1 .cacs-current-issue,
.cacs-homepage-professional-v1 .cacs-metrics-placeholder,
.cacs-homepage-professional-v1 .cacs-announcements-card,
.cacs-homepage-professional-v1 .cacs-at-a-glance,
.cacs-homepage-professional-v1 .cacs-latest-articles-panel,
.cacs-homepage-professional-v1 .cacs-editorial-board-link {
  box-shadow: 0 1px 2px rgba(6, 59, 70, 0.08), 0 1px 1px rgba(6, 59, 70, 0.06);
  transition: box-shadow 160ms ease;
}
.cacs-homepage-professional-v1 .cacs-featured-research:hover,
.cacs-homepage-professional-v1 .cacs-current-issue:hover,
.cacs-homepage-professional-v1 .cacs-metrics-placeholder:hover,
.cacs-homepage-professional-v1 .cacs-announcements-card:hover,
.cacs-homepage-professional-v1 .cacs-at-a-glance:hover,
.cacs-homepage-professional-v1 .cacs-latest-articles-panel:hover,
.cacs-homepage-professional-v1 .cacs-editorial-board-link:hover {
  box-shadow: 0 4px 16px rgba(6, 59, 70, 0.12), 0 1px 2px rgba(6, 59, 70, 0.08);
}
@media (prefers-reduced-motion: reduce) {
  .cacs-homepage-professional-v1 .cacs-featured-research,
  .cacs-homepage-professional-v1 .cacs-current-issue,
  .cacs-homepage-professional-v1 .cacs-metrics-placeholder,
  .cacs-homepage-professional-v1 .cacs-announcements-card,
  .cacs-homepage-professional-v1 .cacs-at-a-glance,
  .cacs-homepage-professional-v1 .cacs-latest-articles-panel,
  .cacs-homepage-professional-v1 .cacs-editorial-board-link {
    transition: none;
  }
}

/* Utility strip reads as a flat soft-bg band today, unlike the seven
   cards above - same elevation so it joins one coherent card system
   instead of feeling like a leftover block. */
.cacs_theme .cacs-home-utility-strip {
  box-shadow: 0 1px 2px rgba(6, 59, 70, 0.08), 0 1px 1px rgba(6, 59, 70, 0.06);
}

/* Journal Metrics: a small colored accent dot ahead of each value,
   cycling the same four leadership-palette hues used elsewhere in this
   theme (cyan/purple/green/coral) - a compact, CSS-only "icon" (no new
   markup) so the four figures read as a deliberate accent system
   instead of four identical gray rows. */
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell {
  position: relative;
  padding-inline-start: calc(var(--cacs-space-2) + 10px);
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell::before {
  content: "";
  position: absolute;
  inset-inline-start: var(--cacs-space-2);
  inset-block-start: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+1)::before { background: var(--cacs-cyan); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+2)::before { background: var(--cacs-purple); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+3)::before { background: var(--cacs-green); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+4)::before { background: var(--cacs-coral); }

/* Editorial board avatars: a teal accent ring (white gap + border tint)
   instead of a flat gray border, so the neutral silhouette/photo slot
   reads as a deliberate portrait frame. V21: real-photo <img> now
   shares the same rectangular headshot-crop frame (width/height/
   radius) as the illustrated placeholder below, so a real photo and
   the placeholder read as the same frame system, not two shapes. */
.cacs-homepage-professional-v1 .cacs-board-card__silhouette {
  flex: none;
  width: 3.1rem;
  height: 3.7rem;
  border-radius: 10px;
  object-fit: cover;
  border-color: var(--cacs-teal);
  border-width: 1.5px;
  box-shadow: 0 0 0 2px var(--cacs-white), 0 0 0 3px var(--cacs-border);
}

/* Utility strip icons: soft circular tint instead of flat currentColor-
   on-transparent, matching the metrics/board accent treatment above;
   CTA links get a small hover nudge instead of a static underline. */
.cacs_theme .cacs-home-utility-strip__icon {
  background: color-mix(in oklch, var(--cacs-teal), white 90%);
  border-radius: 50%;
}
.cacs_theme .cacs-home-utility-strip__item a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap 140ms ease;
}
.cacs_theme .cacs-home-utility-strip__item a:hover,
.cacs_theme .cacs-home-utility-strip__item a:focus-visible {
  gap: 7px;
}

/* Search field: unify to the prototype's own control radius (6px)
   instead of the smaller sitewide default (4px), matching the Submit
   Manuscript CTA and primary-nav pills corrected above. */
.cacs_theme .cacs_nav_search {
  border-radius: var(--cacs-hp-radius-control, 6px);
}

/* Primary CTAs (hero "Read Full Article", header "Submit Manuscript")
   get a matching resting/hover shadow pair so both read as the same
   premium, deliberately-elevated control. */
.cacs_theme .cacs_submit_cta,
.cacs-homepage-professional-v1 .cacs-featured-research__cta {
  box-shadow: 0 1px 2px rgba(6, 59, 70, 0.08);
  transition: box-shadow 160ms ease, background 160ms ease;
}
.cacs_theme .cacs_submit_cta:hover,
.cacs_theme .cacs_submit_cta:focus-visible,
.cacs-homepage-professional-v1 .cacs-featured-research__cta:hover,
.cacs-homepage-professional-v1 .cacs-featured-research__cta:focus-visible {
  box-shadow: 0 4px 12px rgba(16, 131, 230, 0.35);
}

/* Footer: a teal top-accent on the legal bar instead of a flat gray
   divider, and slightly stronger column-heading tracking/color so the
   labels read as intentional section markers, not default browser
   list output. */
.cacs_theme .cacs-footer-legal {
  border-block-start-color: var(--cacs-teal);
  border-block-start-width: 2px;
}
.cacs_theme .cacs-footer-columns h2 {
  letter-spacing: 0.07em;
  color: var(--cacs-teal);
}

/* ------------------------------------------------------------------
   V18 — Design 2 reference fidelity pass.
   Closes the remaining gaps against docs' "1-dizayn (2).png" reference:
   a compact language-dropdown trigger, a divider before the utility
   actions, a filled current-page nav pill, colored icon glyphs on the
   hero panel and Journal Metrics, a card-grid Editorial Board layout,
   a colored article-type badge, and an honest disabled newsletter
   field. All CSS/JS only - no template or PHP changes, no fabricated
   routes, no realistic board photos/names (kept deliberately synthetic
   per explicit direction). See theme.js for the matching markup.
   ------------------------------------------------------------------ */

/* ---------- Language dropdown ---------- */
.cacs_theme .cacs_locale_switcher { position: relative; }
/* Cancels the site-wide generic `button:not(.pkp_site_nav_toggle))` reset
   (components.css) which fills every raw <button> with the coral action
   color by default - this control is a header utility, not a CTA. */
.cacs_theme .cacs_locale_trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 1.6rem;
  padding-inline: 6px;
  border: none;
  border-radius: var(--cacs-hp-radius-control, 6px);
  background: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.82rem;
  font-weight: var(--cacs-weight-normal, 400);
}
.cacs_theme .cacs_locale_trigger:hover,
.cacs_theme .cacs_locale_trigger:focus-visible {
  color: var(--cacs-white);
  background: rgba(255, 255, 255, 0.1);
}
.cacs_theme .cacs_locale_trigger__chevron { transition: transform 140ms ease; }
.cacs_theme .cacs_locale_trigger[aria-expanded="true"] .cacs_locale_trigger__chevron { transform: rotate(180deg); }
.cacs_theme .cacs_locale_list {
  position: absolute;
  z-index: 30;
  inset-block-start: calc(100% + 4px);
  inset-inline-start: 0;
  min-width: 9rem;
  margin: 0;
  padding: 4px;
  list-style: none;
  border-radius: var(--cacs-hp-radius-control, 6px);
  background: var(--cacs-white);
  box-shadow: 0 8px 24px rgba(6, 59, 70, 0.2);
}
.cacs_theme .cacs_locale_list[hidden] { display: none; }
.cacs_theme .cacs_locale_list a {
  display: flex;
  min-height: 2.1rem;
  align-items: center;
  padding-inline: var(--cacs-space-3);
  border-radius: 4px;
  color: var(--cacs-dark-text);
  font-size: 0.85rem;
}
.cacs_theme .cacs_locale_list a:hover,
.cacs_theme .cacs_locale_list a:focus-visible { background: var(--cacs-soft-bg); }
.cacs_theme .cacs_locale_list a[aria-current="page"] { color: var(--cacs-teal); font-weight: var(--cacs-weight-bold); }

/* Divider between the language control and Register/Login/Submit,
   matching the reference's thin vertical rule in row 1. */
.cacs_theme .cacs_utility_actions {
  padding-inline-start: var(--cacs-space-3);
  border-inline-start: 1px solid rgba(255, 255, 255, 0.25);
}

/* ---------- Current-page nav pill ---------- */
/* Reference shows the active tab as a white filled pill with dark/teal
   text (inverted from a plain teal-tinted background), a stronger
   current-page signal than the flat tint used until now. */
/* Cancels leadership-v1.css's older, unconditional
   `a[href$="/index"] { background: rgba(255,255,255,.14) }` rule, which
   otherwise highlights the new "Home" link (theme.js
   enhancePrimaryNav()) as active on every page, not just the real
   homepage - :not([aria-current="page"]) gives this override slightly
   higher specificity than the original so it wins regardless of file
   order. */
.cacs_theme .pkp_navigation_primary > li > a[href$="/index"]:not([aria-current="page"]) {
  background: none;
}

@media (min-width: 64rem) {
  /* V18: matches only the actual current-page indicator (native OJS
     `li.current`, or this theme's own injected Home link's real
     `aria-current="page"` - see theme.js enhancePrimaryNav()) - NOT a
     bare href="…/index" pattern, which would incorrectly paint the Home
     pill as "active" on every page, not just the real homepage. */
  .cacs_theme .pkp_navigation_primary > li.current > a,
  .cacs_theme .pkp_navigation_primary > li > a[aria-current="page"] {
    background: var(--cacs-white);
    color: var(--cacs-dark-teal);
  }
  .cacs_theme .pkp_navigation_primary > li.current > a:hover,
  .cacs_theme .pkp_navigation_primary > li > a[aria-current="page"]:hover {
    background: var(--cacs-white);
    color: var(--cacs-dark-teal);
  }
}

/* ---------- Hero panel: colored icon glyphs ---------- */
/* Each of the four rows gets its own tinted circular badge + glyph
   (unlock / check-document / globe / bolt), cycling the same leadership
   palette hues used in the Metrics badges below, replacing the flat
   uniform dark dot. */
.cacs-homepage-professional-v1 .cacs-featured-research__panel-icon {
  position: relative;
  width: 1.3rem;
  height: 1.3rem;
  background: none;
}
.cacs-homepage-professional-v1 .cacs-featured-research__panel-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
}
.cacs-homepage-professional-v1 .cacs-featured-research__panel-icon::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 0.78rem;
  height: 0.78rem;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(1) .cacs-featured-research__panel-icon::before { background: color-mix(in oklch, var(--cacs-green), white 82%); }
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(1) .cacs-featured-research__panel-icon::after {
  background-color: var(--cacs-green);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='1.5'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 7.5-2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='1.5'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 7.5-2'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(2) .cacs-featured-research__panel-icon::before { background: color-mix(in oklch, var(--cacs-cyan), white 82%); }
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(2) .cacs-featured-research__panel-icon::after {
  background-color: var(--cacs-cyan);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l4 4v14H7z'/%3E%3Cpath d='M9.5 13l2 2 4-4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l4 4v14H7z'/%3E%3Cpath d='M9.5 13l2 2 4-4'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(3) .cacs-featured-research__panel-icon::before { background: color-mix(in oklch, var(--cacs-purple), white 82%); }
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(3) .cacs-featured-research__panel-icon::after {
  background-color: var(--cacs-purple);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='9'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='9'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(4) .cacs-featured-research__panel-icon::before { background: color-mix(in oklch, var(--cacs-coral), white 82%); }
.cacs-homepage-professional-v1 .cacs-featured-research__panel-row:nth-child(4) .cacs-featured-research__panel-icon::after {
  background-color: var(--cacs-coral);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h6l-1 8 9-12h-6l1-8z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h6l-1 8 9-12h-6l1-8z'/%3E%3C/svg%3E");
}

/* ---------- Journal Metrics: icon-above-value grid ---------- */
/* Reference lays out Metrics as a 4-column grid with a colored icon
   badge above each figure, not a vertical list of horizontal rows -
   restyled here (same markup/loop, same real/demo-gated values) into
   that layout, replacing the earlier flat bordered-row + accent-dot
   treatment. */
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cacs-space-3) var(--cacs-space-2);
}
@media (min-width: 30rem) {
  .cacs-homepage-professional-v1 .cacs-metrics-placeholder__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell {
  position: static;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  padding: 0;
  padding-inline-start: 0;
  border: none;
  background: none;
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell::before { content: none; }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell-icon {
  display: block;
  width: 1.75rem;
  height: 1.75rem;
  margin-block-end: 3px;
  border-radius: 50%;
  position: relative;
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell-icon::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 0.9rem;
  height: 0.9rem;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+1) .cacs-metrics-placeholder__cell-icon { background: color-mix(in oklch, var(--cacs-cyan), white 85%); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+1) .cacs-metrics-placeholder__cell-icon::after {
  background-color: var(--cacs-cyan);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 17 10 10 14 14 21 5'/%3E%3Cpolyline points='15 5 21 5 21 11'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 17 10 10 14 14 21 5'/%3E%3Cpolyline points='15 5 21 5 21 11'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+2) .cacs-metrics-placeholder__cell-icon { background: color-mix(in oklch, var(--cacs-purple), white 85%); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+2) .cacs-metrics-placeholder__cell-icon::after {
  background-color: var(--cacs-purple);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v12H9l-5 4V4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v12H9l-5 4V4z'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+3) .cacs-metrics-placeholder__cell-icon { background: color-mix(in oklch, var(--cacs-green), white 85%); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+3) .cacs-metrics-placeholder__cell-icon::after {
  background-color: var(--cacs-green);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='9'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='9'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+4) .cacs-metrics-placeholder__cell-icon { background: color-mix(in oklch, var(--cacs-coral), white 85%); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell:nth-child(4n+4) .cacs-metrics-placeholder__cell-icon::after {
  background-color: var(--cacs-coral);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l5 5v13H6z'/%3E%3Cpath d='M11 12v6M8 15l3 3 3-3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l5 5v13H6z'/%3E%3Cpath d='M11 12v6M8 15l3 3 3-3'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell dd { font-size: var(--cacs-font-size-lg); }
.cacs-homepage-professional-v1 .cacs-metrics-placeholder__cell-label { gap: 0; }

/* ---------- Editorial Board: card grid ---------- */
/* Reference lays out board members as centered cards in a row, not
   left-aligned stacked rows - avatar (still the neutral silhouette
   placeholder, see indexJournal.tpl) on top, name/role/institution
   centered below. Geometry only; identities remain deliberately
   synthetic (no realistic photos/names added). */
.cacs-homepage-professional-v1 .cacs-board-rows {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: var(--cacs-space-2);
}
.cacs-homepage-professional-v1 .cacs-board-card {
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: var(--cacs-space-2);
  border: var(--cacs-border-width) solid var(--cacs-border);
  border-radius: var(--cacs-radius-medium);
  border-block-start: var(--cacs-border-width) solid var(--cacs-border);
  text-align: center;
}
.cacs-homepage-professional-v1 .cacs-board-rows .cacs-board-card:first-child {
  border-block-start: var(--cacs-border-width) solid var(--cacs-border);
  padding-block-start: var(--cacs-space-2);
}
.cacs-homepage-professional-v1 .cacs-board-card__status { font-size: 0.72rem; }

/* ---------- Latest Articles: colored type badge ---------- */
.cacs-homepage-professional-v1 .cacs-latest-articles-panel .obj_article_summary .item_type {
  display: inline-flex;
  align-items: center;
  padding: 0.15em 0.55em;
  border-radius: var(--cacs-radius-pill, 999px);
  background: color-mix(in oklch, var(--cacs-purple), white 90%);
  color: var(--cacs-purple);
  font-size: 0.64rem;
  font-weight: var(--cacs-weight-bold);
  letter-spacing: 0.02em;
}

/* ---------- Footer: disabled newsletter field ---------- */
.cacs_theme .cacs-footer-newsletter__form {
  display: flex;
  gap: var(--cacs-space-2);
  margin-block-end: 4px;
}
.cacs_theme .cacs-footer-newsletter__form input {
  flex: 1;
  min-width: 0;
  min-height: 1.9rem;
  padding-inline: var(--cacs-space-2);
  border: var(--cacs-border-width) solid var(--cacs-border);
  border-radius: var(--cacs-hp-radius-control, 6px);
  background: var(--cacs-white);
  font-size: 0.76rem;
}
.cacs_theme .cacs-footer-newsletter__form input:disabled { opacity: 0.6; cursor: not-allowed; }
.cacs_theme .cacs-footer-newsletter__form button {
  flex: none;
  min-height: 1.9rem;
  padding-inline: var(--cacs-space-3);
  border: none;
  border-radius: var(--cacs-hp-radius-control, 6px);
  background: var(--cacs-cyan);
  color: var(--cacs-white);
  font-size: 0.76rem;
  font-weight: var(--cacs-weight-bold);
}
.cacs_theme .cacs-footer-newsletter__form button:disabled { opacity: 0.55; cursor: not-allowed; }
.cacs_theme .cacs-footer-newsletter__note {
  margin: 0;
  font-size: 0.66rem;
  line-height: 1.25;
  font-style: italic;
  opacity: 0.6;
}

/* ------------------------------------------------------------------
   V18 — strict Design 2 reference rebuild
   (docs/design/approved-v2/references/cacs-homepage-design2-final.png).
   Row C proportions, a 4-card Editorial Board grid, At a Glance row
   icons, a drastically-compacted Utility Strip (kept, not deleted, to
   preserve its admin-editable settings - see CacsJournalThemePlugin.php
   "Scope limits"), Announcements/Latest-Articles demo-fill styling, and
   a dark-teal legal bar. CSS/JS + one small additive PHP/template pass
   (4th board member, 3 announcement fields, 2 article-fill fields) -
   still no core/vendor edits, no fabricated routes.
   ------------------------------------------------------------------ */

/* ---------- Row C: ~50/50 split (was ~62/38) ---------- */
@media (min-width: 64rem) {
  .cacs_theme .cacs-home-row-c {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  }
}

/* ---------- Editorial Board: 4 cards in one row at desktop ---------- */
/* V21: raised from 64rem (1024px) to 90rem (1440px) - at 1024px the
   Row C board column is only ~480px, giving each of 4 cards ~110px,
   which measurably overlapped/cramped the portrait+text layout
   (confirmed via screenshot at 1024x768). Below 90rem, the existing
   auto-fit fallback (2-3 columns depending on width) has room to
   breathe instead. */
@media (min-width: 90rem) {
  .cacs-homepage-professional-v1 .cacs-board-rows {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.cacs-homepage-professional-v1 .cacs-board-card {
  padding: var(--cacs-space-1) 6px;
}
.cacs-homepage-professional-v1 .cacs-board-card__status { font-size: 0.66rem; line-height: 1.3; }

/* ---------- At a Glance: small row icons ---------- */
/* Reference pairs each label with a small icon; added via a wrapping
   ::before on <dt> (mask-icon technique already used for Metrics/Hero
   above) so no template change is needed for this section. */
.cacs-homepage-professional-v1 .cacs-at-a-glance__row dt {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.cacs-homepage-professional-v1 .cacs-at-a-glance__row dt::before {
  content: "";
  flex: none;
  width: 0.9rem;
  height: 0.9rem;
  background-color: var(--cacs-teal);
  opacity: 0.7;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.cacs-homepage-professional-v1 .cacs-at-a-glance__row:nth-child(1) dt::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-at-a-glance__row:nth-child(2) dt::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V9l8-6 8 6v12'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V9l8-6 8 6v12'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-at-a-glance__row:nth-child(3) dt::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-at-a-glance__row:nth-child(4) dt::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9 9h.01M12 9h3M9 12h6M9 15h6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9 9h.01M12 9h3M9 12h6M9 15h6'/%3E%3C/svg%3E");
}
.cacs-homepage-professional-v1 .cacs-at-a-glance__row:nth-child(5) dt::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='8' r='5'/%3E%3Cpath d='M8 5.5v5M5.5 8h5'/%3E%3Ccircle cx='16' cy='16' r='5'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='8' r='5'/%3E%3Cpath d='M8 5.5v5M5.5 8h5'/%3E%3Ccircle cx='16' cy='16' r='5'/%3E%3C/svg%3E");
}

/* ---------- Announcements: demo-fill list ---------- */
.cacs-announcements-card__headrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cacs-space-2);
}
.cacs-announcements-card__headrow h2 { margin: 0; }
.cacs-announcements-card__list {
  display: grid;
  gap: var(--cacs-space-2);
  margin: var(--cacs-space-1) 0 0;
  padding: 0;
  list-style: none;
}
.cacs-announcements-card__list li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: start;
  gap: var(--cacs-space-2);
  padding-block-end: var(--cacs-space-2);
  border-block-end: 1px solid var(--cacs-border);
}
.cacs-announcements-card__list li:last-child { border-block-end: none; padding-block-end: 0; }
.cacs-announcements-card__tag {
  flex: none;
  padding: 0.1em 0.5em;
  border-radius: var(--cacs-radius-pill, 999px);
  background: color-mix(in oklch, var(--cacs-green), white 85%);
  color: color-mix(in oklch, var(--cacs-green), black 20%);
  font-size: 0.6rem;
  font-weight: var(--cacs-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.cacs-announcements-card__item-title { margin: 0; font-size: 0.82rem; font-weight: var(--cacs-weight-medium); line-height: 1.25; color: var(--cacs-dark-text); }
.cacs-announcements-card__item-summary { margin: 2px 0 0; font-size: 0.72rem; line-height: 1.25; opacity: 0.7; }
.cacs-announcements-card__date { flex: none; font-size: 0.66rem; opacity: 0.55; white-space: nowrap; }

/* ---------- Latest Articles: demo-fill rows + View All link ---------- */
.cacs-article-fill-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cacs-article-fill-row {
  padding-block: var(--cacs-space-1);
  border-block-end: var(--cacs-border-width) solid var(--cacs-border);
}
.cacs-article-fill-row__top { display: flex; align-items: baseline; gap: var(--cacs-space-2); }
.cacs-article-fill-row__type {
  flex: none;
  padding: 0.1em 0.5em;
  border-radius: var(--cacs-radius-pill, 999px);
  background: color-mix(in oklch, var(--cacs-purple), white 90%);
  color: var(--cacs-purple);
  font-size: 0.62rem;
  font-weight: var(--cacs-weight-bold);
}
.cacs-article-fill-row__title { font-size: 0.86rem; font-weight: var(--cacs-weight-medium); line-height: 1.25; color: var(--cacs-dark-text); }
.cacs-article-fill-row__bottom { display: flex; align-items: center; gap: var(--cacs-space-2); margin-block-start: 2px; }
.cacs-article-fill-row__authors { font-size: 0.72rem; opacity: 0.65; }
.cacs-article-fill-row__date { font-size: 0.66rem; opacity: 0.55; margin-inline-start: auto; }
.cacs-latest-articles-panel__view-all {
  display: inline-block;
  margin-block-start: var(--cacs-space-2);
  font-size: 0.78rem;
  font-weight: var(--cacs-weight-bold);
  color: var(--cacs-teal);
}
.cacs-latest-articles-panel__view-all:hover,
.cacs-latest-articles-panel__view-all:focus-visible { color: var(--cacs-dark-teal); }

/* ---------- Utility strip: drastically compacted, subordinate ---------- */
/* Reference has no equivalent block at this weight - kept (not deleted)
   only to preserve its existing admin-editable settings, shrunk to a
   thin single-line-per-item strip instead of a 3-column feature-card
   row so it no longer competes visually with the reference's own
   composition. */
.cacs_theme .cacs-home-utility-strip {
  padding: 6px var(--cacs-space-3);
  background: var(--cacs-white);
  border-color: var(--cacs-border);
}
.cacs_theme .cacs-home-utility-strip__item { align-items: center; gap: 6px; }
.cacs_theme .cacs-home-utility-strip__icon {
  width: 1.3rem;
  height: 1.3rem;
  background: none;
}
.cacs_theme .cacs-home-utility-strip__icon svg { width: 0.95rem; height: 0.95rem; }
.cacs_theme .cacs-home-utility-strip__item h2 {
  display: inline;
  font-size: 0.78rem;
  font-family: var(--cacs-font-ui);
}
.cacs_theme .cacs-home-utility-strip__item p { display: none; }
.cacs_theme .cacs-home-utility-strip__item a { font-size: 0.7rem; }

/* ---------- Footer: dark-teal legal bar ---------- */
.cacs_theme .cacs-footer-legal {
  margin-inline: calc(-1 * var(--cacs-gutter));
  margin-block-end: calc(-1 * var(--cacs-space-5));
  padding: var(--cacs-space-3) var(--cacs-gutter);
  border-block-start: none;
  background: var(--cacs-dark-teal);
  color: rgba(255, 255, 255, 0.85);
}
.cacs_theme .cacs-footer-legal__copyright { color: rgba(255, 255, 255, 0.85); }
.cacs_theme .cacs-footer-legal a { color: var(--cacs-white); }
.cacs_theme .cacs-footer-legal a:hover,
.cacs_theme .cacs-footer-legal a:focus-visible { color: var(--cacs-cyan); }

/* ------------------------------------------------------------------
   V21 — Editorial Board portrait-frame avatar placeholders.
   V20's circular colored badge is replaced with a rectangular
   headshot-style frame (light neutral background, a single consistent
   abstract "face" tone - not a skin-tone attempt, a colored jacket/
   shoulders shape for shoulders+head composition, a white collar
   notch). Still fully abstract/geometric - not a photo, not a
   rendering of any real or implied person. Individual variation comes
   from the jacket accent color, cycling the same leadership-palette
   rotation used for the hero panel and Metrics icons above. Card
   layout switches from centered-vertical to portrait-left/text-right,
   matching the reference's own compact directory-card composition.
   ------------------------------------------------------------------ */
.cacs-homepage-professional-v1 .cacs-board-card {
  flex-direction: row;
  align-items: flex-start;
  text-align: start;
  gap: var(--cacs-space-2);
  padding: var(--cacs-space-2);
}
.cacs-homepage-professional-v1 .cacs-board-card__silhouette--illustrated {
  flex: none;
  width: 3.1rem;
  height: 3.7rem;
  overflow: hidden;
  border: none;
  border-radius: 10px;
  background: none;
}
.cacs-homepage-professional-v1 .cacs-board-card__silhouette--illustrated svg {
  display: block;
  width: 100%;
  height: 100%;
}
.cacs-portrait-bg { fill: #EDEEF1; }
.cacs-portrait-face { fill: #B7C1C6; }
.cacs-homepage-professional-v1 .cacs-board-card:nth-child(4n+1) .cacs-portrait-jacket { fill: var(--cacs-cyan); }
.cacs-homepage-professional-v1 .cacs-board-card:nth-child(4n+2) .cacs-portrait-jacket { fill: var(--cacs-purple); }
.cacs-homepage-professional-v1 .cacs-board-card:nth-child(4n+3) .cacs-portrait-jacket { fill: var(--cacs-green); }
.cacs-homepage-professional-v1 .cacs-board-card:nth-child(4n+4) .cacs-portrait-jacket { fill: var(--cacs-coral); }
.cacs-homepage-professional-v1 .cacs-board-card__status { text-align: start; }

/* ------------------------------------------------------------------
   V20 — visited-link audit fix.
   These inline text links only ever had a base color + :hover/
   :focus-visible override, never an explicit :visited rule - the same
   class of bug the V5 round found and fixed for the CTA buttons, never
   systematically re-checked for the plainer text links added since.
   Without this, a real (non-incognito) browser that has already
   visited any of these destinations shows its own default
   visited-link color (commonly purple/burgundy) instead of the
   intended teal, exactly like the V5 CTA report. Pinned to the same
   color as the unvisited state so visited and unvisited read
   identically, matching the CTA fix's own resolution. */
.cacs-current-issue__link:visited { color: var(--color-primary-text); }
.cacs-at-a-glance dd a:visited,
.cacs-editorial-board-link__view-all:visited,
.cacs-latest-articles-panel__view-all:visited,
.cacs-home-utility-strip__item a:visited,
.cacs-footer-columns a:visited { color: var(--cacs-teal); }
.cacs_theme .cacs-footer-legal a:visited { color: var(--cacs-white); }

/* ------------------------------------------------------------------
   V21 — CACS-owned compact Latest Articles rows.
   Replaces the native issue_toc.tpl partial's own (much taller)
   styling. Each row: [badge] title ... date / authors ... action,
   matching the reference's compact two-line-per-article density.
   ------------------------------------------------------------------ */
.cacs-compact-articles {
  display: grid;
  gap: 2px;
  margin: var(--cacs-space-1) 0 0;
  padding: 0;
  list-style: none;
}
.cacs-compact-articles__row {
  padding-block: 6px;
  border-block-end: var(--cacs-border-width) solid var(--cacs-border);
}
.cacs-compact-articles__row:last-child { border-block-end: none; }
.cacs-compact-articles__top {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.cacs-compact-articles__badge {
  flex: none;
  padding: 0.12em 0.5em;
  border-radius: var(--cacs-radius-pill, 999px);
  background: color-mix(in oklch, var(--cacs-purple), white 90%);
  color: var(--cacs-purple);
  font-size: 0.6rem;
  font-weight: var(--cacs-weight-bold);
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.cacs-compact-articles__title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.86rem;
  font-weight: var(--cacs-weight-medium);
  line-height: 1.3;
  color: var(--cacs-dark-text);
}
a.cacs-compact-articles__title:hover,
a.cacs-compact-articles__title:focus-visible { color: var(--cacs-teal); }
a.cacs-compact-articles__title:visited { color: var(--cacs-dark-text); }
.cacs-compact-articles__date {
  flex: none;
  margin-inline-start: auto;
  font-size: 0.68rem;
  color: var(--cacs-dark-text);
  opacity: 0.55;
  white-space: nowrap;
}
.cacs-compact-articles__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cacs-space-2);
  margin-block-start: 2px;
}
.cacs-compact-articles__authors {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.72rem;
  color: var(--cacs-dark-text);
  opacity: 0.65;
}
.cacs-compact-articles__action {
  flex: none;
  font-size: 0.72rem;
  font-weight: var(--cacs-weight-bold);
  color: var(--cacs-teal);
}
.cacs-compact-articles__action:hover,
.cacs-compact-articles__action:focus-visible { color: var(--cacs-dark-teal); }
.cacs-compact-articles__action:visited { color: var(--cacs-teal); }
.cacs-compact-articles__action--disabled {
  color: var(--cacs-dark-text);
  opacity: 0.4;
  cursor: not-allowed;
}

/* ------------------------------------------------------------------
   V22 — Hero presentation-override summary/type-badge, Current Issue
   presentation-override text, and board name/role/institution/country
   line hierarchy.
   ------------------------------------------------------------------ */
.cacs-featured-research__summary {
  margin: 2px 0 0;
  max-width: 60ch;
  color: var(--cacs-dark-text);
  opacity: 0.8;
  font-size: var(--cacs-font-size-sm);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.cacs-featured-research__type-badge {
  padding: 0.1em 0.55em;
  border-radius: var(--cacs-radius-pill, 999px);
  background: color-mix(in oklch, var(--cacs-purple), white 90%);
  color: var(--cacs-purple);
  font-size: 0.7rem;
  font-weight: var(--cacs-weight-bold);
}

.cacs-current-issue__link--disabled {
  color: var(--cacs-dark-text);
  opacity: 0.4;
  cursor: not-allowed;
  text-decoration: none;
}

.cacs-board-card__status--filled {
  display: grid;
  gap: 1px;
}
.cacs-board-card__name {
  font-size: 0.82rem;
  font-weight: var(--cacs-weight-bold);
  color: var(--cacs-dark-text);
  line-height: 1.2;
}
.cacs-board-card__role {
  font-size: 0.72rem;
  color: var(--cacs-teal);
  line-height: 1.25;
}
.cacs-board-card__institution,
.cacs-board-card__country {
  font-size: 0.68rem;
  color: var(--cacs-dark-text);
  opacity: 0.65;
  line-height: 1.25;
}

/* ------------------------------------------------------------------
   V22 — structural header/row compaction toward the reference's
   vertical budget. Trims padding/min-heights only - no font-size
   reduced below its existing value, per this round's explicit
   "readable, not shrunk" instruction.
   ------------------------------------------------------------------ */
.cacs_theme .cacs_brand_mark { width: 2.1rem; height: 2.1rem; }
.cacs_theme .pkp_site_name_wrapper { min-height: 2.05rem; }
.cacs_theme .cacs_nav_search input { padding-block: 0.4rem; }
.cacs_theme .cacs_utility { padding-block: 1px; }
@media (min-width: 64rem) {
  .cacs_theme .pkp_navigation_primary a,
  .cacs_theme .pkp_site_nav_menu .pkp_search { min-height: 1.1rem; }
}

/* Row A/B/C gap and card-padding compaction. */
.cacs_theme .cacs-home { gap: 2px; }
.cacs_theme .cacs-home-row-b,
.cacs_theme .cacs-home-row-c { gap: var(--cacs-space-2); }
.cacs-homepage-professional-v1 .cacs-featured-research,
.cacs-homepage-professional-v1 .cacs-current-issue { padding: 6px; }
@media (min-width: 64rem) {
  .cacs-homepage-professional-v1 .cacs-featured-research__visual { height: clamp(120px, 10vw, 165px); }
}
.cacs-homepage-professional-v1 .cacs-metrics-placeholder,
.cacs-homepage-professional-v1 .cacs-announcements-card,
.cacs-homepage-professional-v1 .cacs-at-a-glance {
  padding: 8px;
}
.cacs-homepage-professional-v1 .cacs-announcements-card { min-height: 0; }
.cacs-homepage-professional-v1 .cacs-latest-articles-panel,
.cacs-homepage-professional-v1 .cacs-editorial-board-link {
  padding: 8px;
}
.cacs-homepage-professional-v1 .cacs-featured-research__content,
.cacs-homepage-professional-v1 .cacs-current-issue__body {
  gap: 4px;
}
.cacs-homepage-professional-v1 .cacs-at-a-glance__row {
  padding-block-end: 4px;
}
.cacs-homepage-professional-v1 .cacs-at-a-glance dl {
  gap: 4px;
}
.cacs-homepage-professional-v1 .cacs-compact-articles__row {
  padding-block: 4px;
}
.cacs-homepage-professional-v1 .cacs-board-card {
  padding: 4px 6px;
}
