/* stylescv.css */

/* ============================================================
   TABLE OF CONTENTS
   1.  @import and @font-face
   2.  :root and CSS Variables
   3.  Global/Reset Styles
   4.  Typography
   5.  Layout Containers
   6.  Navigation
   7.  Section Structure
   8.  Content Area
   9.  Lists
   10. Links
   11. Responsive Design
   12. Print Styles
   13. Browser-Specific
   ============================================================ */

/* ------------------------------------------------------------
   1. @import and @font-face
   ------------------------------------------------------------ */
@import url("https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Fira+Sans+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Noto+Sans+Canadian+Aboriginal:wght@100..900&display=swap");

/* ------------------------------------------------------------
   2. :root and CSS Variables
   ------------------------------------------------------------ */
:root {
  --pink: #d100d1; /* #f0f; lower contrast */
  --black: #000;
  --blackolive: #3b3c36;
  --dark: #534b4f;
  --gray: #555;
  --light-gray: #7d7d7d;
  --light-brown: #d2b48c;
  --eggshell: #f9f8ed;
  --softwhite: #f8f8ff;
  --cream: #faf9fb;
  --hardwhite: #fff;
  --font-main: "Fira Sans", Verdana, sans-serif;
  --font-sub: "Fira Sans Condensed", "Fira Sans", Verdana, sans-serif; /* cv-section-subtitle */
  --font-in: "Noto Sans Canadian Aboriginal", sans-serif;
  --max-content-width: 50rem;

  /* Font sizes */
  --size-small: 0.75rem;
  --size-medium: 0.937rem;
  --size-base: 1rem;

  /* Scalable font sizes */
  --size-small-responsive: calc(var(--size-small) + 0.5vw);
  --size-medium-responsive: calc(var(--size-medium) + 0.5vw);
  --size-base-responsive: calc(var(--size-base) + 0.2vw);

  --open-quote: "\201C"; /* Left double curly quote */
  --close-quote: "\201D"; /* Right double curly quote */
  --apostrophe: "\2019"; /* Right curly single quote */
}

/* ------------------------------------------------------------
3. Global/Reset Styles
------------------------------------------------------------ */
html {
  font-family: var(--font-main);
  font-size: 1rem;
  scroll-behavior: smooth;
  box-sizing: border-box;
}

body {
  margin: 0;
  background-color: var(--softwhite);
  font-family: var(--font-main);
  font-feature-settings: "liga" 1, "clig" 1;
  color: var(--black);
  font-size: var(--size-base);
  font-weight: 300;
  line-height: 1.35;
  word-break: normal;
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  box-sizing: border-box;
}

/* Defensive clamp for embedded content */
img,
table,
pre,
code,
iframe {
  max-width: 100%;
  box-sizing: border-box;
}

/* <span class="br"></span> */
.br {
  display: block;
  content: "";
  font-family: inherit;
  line-height: inherit;
}

/* ------------------------------------------------------------
   4. Typography
   ------------------------------------------------------------ */
strong {
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.005rem;
}

/* <strong class="proper"> */
.proper {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.005rem;
}

b {
  font-weight: 400;
}

em {
  font-style: italic;
  letter-spacing: 0.02rem;
}

/* <span class="em2"> */
.em2 {
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.02rem;
}

/* <span class="nb"> */
.nb {
  white-space: nowrap;
}

/* <span class="cv-indent"> â€” adds small top spacing after a .br line break */
.cv-indent {
  display: block;
  padding-left: 0.7%;    /* â† was text-indent: 0.6% */
  margin-top: 0.2rem;
}
/* <span class="bar">&#124;</span> | */
.bar {
  color: var(--pink);
  font-style: normal;
  font-variant: normal; /* prevents small-caps inheritance */
}

.cmyk {
  /* â–  U+25A0 #0ff   â–  U+25A0 #f0f   â–  U+25A0 #ff0   â–  U+25A0 #000  */
  /* âš U+275A #0ff   âš U+275A #f0f   âš U+275A #ff0   âš U+275A #000  */
  font-size: 1.5rem;
}

/* Simple text size classes for now */
.text-small {
  font-size: var(--size-small);
}
.text-medium {
  font-size: var(--size-medium);
}
.text-base {
  font-size: var(--size-base);
}

header {
  margin-bottom: 1rem;
}

h1 {
  font-size: 1.65rem;
  font-weight: 500;
  letter-spacing: 0.03rem;
  color: var(--pink);
  margin: 0 0 1rem 0;
  line-height: 1.1;
}

h2 {
  /* These are not for .cv-section-title which is always on a separate class! */
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--black);
  margin: 0 0 1.5rem 0;
  line-height: 1.2;
}

h3 {
  font-weight: 400;
  color: var(--black);
  letter-spacing: 0.02rem;
  margin-bottom: 0.75rem;
  margin-top: 1.5rem;
  line-height: 1.3;
}

p {
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 1rem;
}

.cv-definition-em {
  font-style: italic;
  text-indent: 1em hanging;
}
.cv-subsection-title {
  text-transform: uppercase;
}

/* ------------------------------------------------------------
   5. Layout Containers
   ------------------------------------------------------------ */
.cv-pronouns {
  font-size: 0.87rem;
  color: var(--gray);
}

.cv-container {
  display: flex;
  flex-direction: column;
  align-items: stretch; /* was: center Ã¢â‚¬â€ stretch fills the full padded width */
  min-width: 0;
  min-height: 100vh;
  width: 100%;
  max-width: var(--max-content-width);
  margin: 0 auto;
  box-sizing: border-box;
  padding: 2rem 0 1rem 0;
  background: var(--softwhite);
  box-shadow: 0 2px 8px rgba(34, 34, 34, 0.02);
  overflow-x: clip;
}

.cv-paragraph {
  /* used for Research Expertise, Bio */
  /* Box Model - override parent margin */
  margin: 0 0 0.6rem 0;
  padding: 0;
  box-sizing: border-box;
  width: 100%;
  /* Typography - override parent values */
  font-size: 1rem; /* */
  font-weight: 300;
  line-height: 1.25; /* Slightly tighter than parent's 1.7 */
  color: var(--black);
  text-align: left;
  /* Text Wrapping */
  text-wrap: pretty;
  -webkit-text-wrap: pretty;
  hyphens: none;
  white-space: normal;
}

/* Remove orphan bottom margin on last paragraph in bio/description blocks */
.cv-paragraph p:last-child,
.cv-section > .cv-paragraph:last-of-type {
  margin-bottom: 0;
}

.cv-list-item {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 0.25rem; /* Consistent vertical spacing */
  padding-bottom: 0.2rem; /* Optional: */
  border-bottom: 1px solid rgba(0, 0, 0, 0.1); /* Optional */
}

.cv-list-item:last-child {
  margin-bottom: 0; /* Remove margin from last item */
  border-bottom: none; /* Remove border from last item */
}

.cv-link {
  color: var(--pink);
  text-decoration: none;
  font-weight: 300;
  word-break: break-all;
}

.cv-link a {
  color: var(--pink);
  text-decoration: underline;
  font-weight: 300;
}

.cv-link::before {
  content: "<";
  color: var(--black);
}
.cv-link::after {
  content: ">";
  color: var(--black);
}

.cv-title::before {
  content: "Title: ";
  color: var(--black, #ff00ff);
  font-weight: 400;
  text-transform: uppercase;
}

.cv-juror {
  color: var(--pink, #000);
  font-size: 0.9rem;
  font-weight: 400;
  text-transform: uppercase;
}

/* ------------------------------------------------------------
   6. Navigation - Not built yet
   ------------------------------------------------------------ */
.cv-sidenav {
  position: sticky;
  top: 10px;
  background: #fff;
  border-right: 0.125rem solid var(--pink);
  min-width: 11.25rem;
  padding: 2rem 1rem;
  height: 100vh;
  z-index: 100;
}

.cv-sidenav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.cv-sidenav li {
  margin-bottom: 1.25rem;
}

.cv-sidenav a {
  color: var(--pink);
  text-decoration: none;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.4;
  transition: color 0.2s;
  display: block;
}

.cv-sidenav a:hover,
.cv-sidenav a:focus {
  color: var(--black);
}

/* ------------------------------------------------------------
   7. Section Structure
   ------------------------------------------------------------ */
/*  releases each title before next arrives */
.cv-section {
  position: relative;
  overflow: clip;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 1.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
  box-sizing: border-box;
}

.cv-section-title {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.025rem;
  color: var(--black);
  margin: 0 0 0.5rem 0;
  border-top: 1px solid transparent;
  border-left: 3px solid var(--pink);
  padding: 0.5rem;
  background: linear-gradient(
      to right,
      white 5%,
      white 25%,
      transparent 50%,
      transparent 100%
    ),
    rgba(255, 245, 255, 0.55);
  background-blend-mode: multiply;
  backdrop-filter: blur(3px) saturate(150%);
  box-shadow: 0 3px 6px -2px rgba(30, 30, 30, 0.1);
  transition: all 0.3s ease-in-out;
  line-height: 1.2;
}

.cv-section-title.is-stuck {
  z-index: 0;
}

/* <span class="cv-section-subtitle"> */
.cv-section-subtitle {
  font-family: var(--font-sub);
  font-weight: 300;
  /*font-style: italic;*/
  letter-spacing: 0.01rem; /*  title's is 0.025rem */
}

.cv-section .cv-list-item {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: block;
  word-break: normal;
  overflow-wrap: break-word;
  text-wrap: pretty;
  -webkit-text-wrap: pretty;
}

.cv-section-group {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip;
}

/* Defensive: clamp any large children */
.cv-section-group img,
.cv-section-group table,
.cv-section-group pre,
.cv-section-group code,
.cv-section-group iframe {
  max-width: 100%;
  box-sizing: border-box;
  display: block;
}

.cv-list {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* ------------------------------------------------------------
   8. Content Area
   ------------------------------------------------------------ */
.cv-content {
  width: 100%;
  min-width: 0;
  align-self: stretch;
  box-sizing: border-box;
  flex: 1 1 auto;
  padding: 2.5rem 2rem;
  max-width: 100%;
  margin: 0;
  background: var(--softwhite);
  display: flex;
  flex-direction: column;
  font-size: 1rem;
  overflow-x: clip;
  /* REMOVED: will-change, transform, -webkit-transform */
}

.cv-description {
  /* used for under titles like Academic Advising, etc. */
  font-size: 0.79rem;
  letter-spacing: 0.01rem;
  font-weight: 300;
  color: var(--dark);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  word-break: normal;
  overflow-wrap: break-word;
  white-space: normal;
  display: block;
  hyphens: none;
  text-align: left;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.cv-description-in {
  font-family: var(--font-in);
  font-size: 0.79rem;
  font-style: normal;
  letter-spacing: 0.01rem;
  font-weight: 400;
  color: var(--dark);
}

.cv-description-inline {
  font-size: 0.79rem;
  letter-spacing: 0.01rem;
  font-weight: 300;
  color: var(--dark);
  display: inline !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.cv-abstract {
  /* Box Model - outside to inside */
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  /* Display & Positioning */
  display: block; /* changed from inline-block for width consistency */
  padding-left: 0.5rem;
  width: 100%;
  max-width: 100%;
  min-width: 0; /* prevents content from forcing horizontal overflow */
  /* Typography */
  font-size: 0.89rem;
  font-weight: 300;
  color: var(--dark);
  text-align: left;
  /* Text Wrapping - pretty with no hyphens */
  text-wrap: pretty;
  -webkit-text-wrap: pretty;
  hyphens: none;
  white-space: normal;
  overflow-wrap: break-word; /* defensive wrap for long content */
}

.cv-abstract p {
  margin: 0.5em 0;
}

/* ------------------------------------------------------------
   9. Lists
   ------------------------------------------------------------ */
ul {
  font-size: 1rem;
  color: var(--black);
  margin: 0.75rem 0 0.75rem 1.5rem;
  padding-left: 1.5rem;
  line-height: 1.6;
}

li {
  margin-bottom: 0.75rem;
  font-size: 1rem;
  line-height: 1.6;
}

/* ------------------------------------------------------------
   10. Links
   ------------------------------------------------------------ */
a {
  color: var(--pink);
  text-decoration: underline;
  overflow-wrap: break-word; /* Breaks only when truly needed */
  word-break: normal;
}

a:hover {
  text-decoration: underline;
}

/* ------------------------------------------------------------
   11. Responsive Design
   ------------------------------------------------------------ */

/* --- MOBILE BASE: up to 599px --- */
@media screen and (max-width: 599px) {
  body {
    font-size: 1.08rem; /* Slightly larger, about 17px */
  }

  p {
    font-size: 1.08rem;
    line-height: 1.6;
  }

  .cv-description {
    font-size: 0.83rem !important;
    letter-spacing: 0.01rem;
    font-weight: 300;
  }

  h2.cv-section-title {
    font-size: 1.1rem;
  }

  .cv-container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 4% 0 4% !important;
    margin: 0 !important;
    box-shadow: none !important;
    min-height: 0 !important; /* â† blank page */
  }

  .cv-content {
    padding: 1.5rem 0; /* no extra horizontal padding  */
  }

  .cv-section-title {
    position: sticky;
    top: 0;
    font-size: 1.1rem;
    padding: 0.4rem 0.5rem;
    transition: all 0.3s ease-in-out;
  }

  .cv-header,
  .cv-section {
    padding-left: 0.125rem;
    padding-right: 0;
  }

  .cv-list-item {
    margin-bottom: 0.35rem;
  }
}

/* --- LARGE MOBILE: iPhone 16 Pro, Pro Max (430px+) within the mobile range --- */
@media screen and (min-width: 430px) and (max-width: 599px) {
  .cv-container {
    padding: 1.75rem 5%; /* slightly more breathing room on larger phones */
  }
}

/* --- TABLET PORTRAIT: 768px+ --- */
@media screen and (min-width: 768px) {
  body {
    font-size: 1rem;
  }

  p {
    font-size: 1rem;
    line-height: 1.7;
  }

  .cv-description {
    font-size: 0.937rem !important;
  }

  h2.cv-section-title {
    font-size: 1.25rem;
  }

  .cv-container {
    width: 100%;
    max-width: var(--max-content-width);
    padding: 2rem 1rem 1rem;
  }

  .cv-content {
    padding: 2.5rem 2rem;
  }

  .cv-header,
  .cv-section {
    padding-left: 0;
    padding-right: 0;
  }

  .cv-section-title {
    font-size: 1.25rem;
    padding: 0.5rem;
  }
}

/* --- LANDSCAPE PHONE: 600pxâ€“932px, short viewport --- */
@media screen and (min-width: 600px) and (max-width: 932px) and (orientation: landscape) {

  .cv-container {
    padding: 1rem 5% !important;
    max-width: 100% !important;
  }

  .cv-content {
    padding: 1.5rem 0;
  }

  .cv-section-title {
    font-size: 1.1rem;
    padding: 0.4rem 0.5rem;
  }

  /* cv-abstract and cv-description get comfortable at this width */
  .cv-abstract {
    font-size: 1rem !important;
  }

  .cv-description {
    font-size: 0.937rem !important;
  }
}

/* --- DESKTOP: 1024px+ --- */
@media screen and (min-width: 1024px) {
  .cv-container {
    width: 100%;
    max-width: var(--max-content-width);
    padding: 2.5rem 1rem 1rem;
  }
}

/* ------------------------------------------------------------
   12. Print Styles - Letter Size Paper (8.5" x 11")
       First Two Sections on Page 1
   ------------------------------------------------------------ */
@media print {
  /* Page setup for letter-size paper */
  @page {
    size: letter;
    margin: 0.75in 0.5in;
  }

  /* Reset all backgrounds and shadows for clean printing */
  * {
    background: white !important;
    background-image: none !important;
    background-color: white !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  /* FORCE ALL TEXT TO BLACK (overrides pink and other colors) */
  *,
  *::before,
  *::after {
    color: #000 !important;
  }

  /* Body and container setup */
  body {
    font-size: 11pt !important;
    line-height: 1.25 !important;
    color: #000 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: "Fira Sans", Arial, sans-serif !important;
  }

  /* remove the cmyk bars visually and from layout */
  .cmyk .square {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    width: 0 !important;
    height: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    background: transparent !important;
    visibility: hidden !important;
  }

  /* colors */
  .cmyk {
    display: block !important;
    margin: 0 0 1rem !important;
    padding: 0 !important;
    background: transparent !important;
  }

  .cv-container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
  }

  .cv-content {
    padding: 0 !important;
    background: white !important;
    max-width: none !important;
    width: 100% !important;
  }

  /* Header styling - compact but clear */
  .cv-header {
    margin-bottom: 0.5rem !important;
    padding: 0.3rem 0 !important;
    border-bottom: 1.5pt solid #000 !important;
    page-break-after: avoid !important;
  }

  .cv-header h1 {
    font-size: 14pt !important;
    font-weight: bold !important;
    margin: 0 0 0.25rem 0 !important;
    color: #000 !important;
    line-height: 1.2 !important;
  }

  .cv-meta {
    font-size: 9.5pt !important;
    gap: 0.2rem !important;
    color: #000 !important;
    margin-bottom: 0.4rem !important;
  }

  .cv-link::before {
    content: "<";
    color: var(--black) !important;
  }
  .cv-link::after {
    content: ">";
    color: var(--black) !important;
  }

  /* Section titles - prominent but not too large */
  .cv-section h2,
  .cv-section-title {
    font-size: 12pt !important;
    font-weight: 400 !important;
    margin: 0.4rem 0 0.25rem 0 !important;
    padding: 0.15rem 0.4rem !important;
    line-height: 1.3 !important;
    border-left: 2pt solid #000 !important;
    background: white !important;
    color: #000 !important;
    position: static !important;
    z-index: auto !important;
    transition: none !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  /* <span class="cv-section-subtitle"> */
  .cv-section-subtitle {
    font-family: "Fira Sans Condensed", "Fira Sans", Arial, sans-serif !important;
    font-weight: 300 !important;
    /*font-style: italic;*/
    letter-spacing: 0.01rem !important;
  }

  /* STRATEGIC PAGE BREAKS */
  /* Keep first two sections together on page 1 */
  .cv-section:nth-of-type(1),
  .cv-section:nth-of-type(2) {
    page-break-inside: avoid !important;
  }

  /* HARD PAGE BREAKS - start new page before these sections */
  /* Research Expertise, Bio */
  .cv-section:nth-of-type(4) {
    break-before: page !important;
  }

  /* Presentations: Papers, Talks, Guest Lectures, Articles */
  .cv-section:nth-of-type(5) {
    break-before: page !important;
  }

  /* Research: Professional Clients, Development, Graphic Design */
  .cv-section:nth-of-type(8) {
    break-before: page !important;
  }

  /* Definition: Racism + Invented Word â€” together on their own page */
  #cv-racism {
    break-before: page !important;
    page-break-inside: avoid !important;
  }

  #cv-invented-word {
    page-break-inside: avoid !important; /* Invented Word stays with Racism */
    break-before: avoid !important; /* â†  */
    page-break-before: avoid !important; /* â†  (fallback) */
    page-break-inside: avoid !important; /* Invented Word stays with Racism */
  }
  /* Teaching: American University, Credit Courses, Undergraduate, semester */
  #cv-teaching-au {
    break-before: page !important;
  }

  /* Professional Recognition â€” starts the final page */
  #cv-recognition {
    break-before: page !important;
  }

  /* Compact final page: Professional Recognition through References */
  #cv-recognition,
  #cv-recognition ~ .cv-section {
    font-size: 8.5pt !important;
    line-height: 1.25 !important;
  }

  #cv-recognition .cv-section-title,
  #cv-recognition ~ .cv-section .cv-section-title {
    font-size: 10pt !important;
    margin: 0.2rem 0 0.15rem 0 !important;
    padding: 0.1rem 0.4rem !important;
  }

/* Final page compact sizing */
#cv-recognition .cv-list-item,
.em2,
.cv-description {
  font-size: 8.5pt !important;
  line-height: 1.25 !important;
  margin-bottom: 0.1rem !important;
}

#cv-recognition ~ .cv-section .cv-list-item {
  font-size: 8.5pt !important;
  line-height: 1.25 !important;
  margin-bottom: 0.1rem !important;
}

  #cv-recognition strong,
  #cv-recognition ~ .cv-section strong {
    font-size: 8.5pt !important;
    font-weight: 400 !important;
  }

  /* Allow sensible auto breaks for all remaining sections */
  .cv-section {
    /* page-break-inside: avoid removed â€” caused blank pages before */
    /* Professional Recognition on tall sections 15, 16, 17          */
    page-break-after: auto !important;
  }

  /* Short sections safe to keep atomic, won't cause blank pages */
  /* sections under ~400px screen height                           */
 .cv-section:nth-of-type(2),  /* Academic Teaching: Ranks (216px) */
.cv-section:nth-of-type(3),  /* Administrative Positions (317px) */
.cv-section:nth-of-type(10), /* Book Editing, Acknowledgment (231px) */
.cv-section:nth-of-type(12), /* Definition: Racism (417px) */
  .cv-section:nth-of-type(13),  /* Invented Word (332px) â€” stays with Racism */
  .cv-section:nth-of-type(19),  /* Professional Recognition (215px) */
  .cv-section:nth-of-type(20),  /* Professional Memberships (290px) */
  .cv-section:nth-of-type(21),  /* Indigenous (125px) */
  .cv-section:nth-of-type(23) {
    /* References (93px) */
    page-break-inside: avoid !important;
  }
  /* Service: BSU flows under Service: AU â€” no break between them */
  #cv-service-bsu {
    break-before: avoid !important;
    page-break-before: avoid !important;
  }

  /* Section grouping for print layout */
  .cv-section-group {
    display: block !important;
    page-break-inside: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-bottom: 0.3rem !important;
  }

  /* List items and content blocks - never break inside an entry */
  .cv-list-item {
    font-size: 10pt !important;
    line-height: 1.4 !important;
    margin-bottom: 0.15rem !important;
    padding: 0.05rem 0 !important;
    color: #000 !important;
    page-break-inside: auto !important;
  }

  /* Exhibition and abstract blocks */
  .cv-exhibition {
    margin: 0.25rem 0 !important;
    padding: 0.2rem 0.3rem !important;
    border: 0.5pt solid #666 !important;
    page-break-inside: avoid !important;
  }

  .cv-abstract {
    font-size: 0.7rem !important;
    font-weight: 300;
    margin: 0.2rem 0 0.2rem 0.5rem !important;
    padding: 0.15rem 0.3rem !important;
    border-left: 0.7pt solid #000 !important;
    page-break-inside: avoid !important;
  }

  .cv-abstract p {
    margin: 0.1rem 0 !important;
    line-height: 1.35 !important;
  }

  /* PRESERVE ALL UTILITY CLASSES */
  /* <strong> tags */
  strong {
    font-weight: 400 !important;
    color: #000 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.005rem !important;
  }

  /* preserve exact casing on proper nouns in print */
  strong.proper {
    text-transform: none !important;
  }

  /* <em> tags */
  em {
    font-style: italic !important;
    color: #000 !important;
  }

  /* <span class="em2"> - italic emphasis */
  .em2 {
    font-weight: 500;
    font-style: italic !important;
    color: #000 !important;
    letter-spacing: 0.02rem;
  }

  /* <span class="nb"> - no break */
  .nb {
    white-space: nowrap !important;
    color: #000 !important;
  }

  /* <span class="bar">&#124;</span> - separator bars */
  .bar {
    color: #000 !important;
    font-weight: normal !important;
    font-style: normal !important;
    font-variant: normal !important;
  }

  /* <span class="br"></span> */
  .br {
    display: block !important;
    content: "" !important;
    font-family: inherit !important;
    line-height: inherit !important;
  }

  /* PRESERVE CLICKABLE LINKS FOR PDF */
  a {
    color: #000 !important;
    text-decoration: underline !important;
    font-weight: normal !important;
    word-break: break-all !important;
  }

  /* Keep href attributes visible in PDF - remove the previous "" override */
/* Suppress URL printing on all links EXCEPT cv-link brackets */
a[href]:not(.cv-link):after { 
  content: none !important; 
}
  
  .cv-link::before { content: '<' !important; color: #000 !important; }
.cv-link::after  { content: '>' !important; color: #000 !important; }

  /* Ensure links remain interactive */
  a[href] {
    color: #000 !important;
    text-decoration: underline !important;
  }

  /* Lists and structure */
  ul,
  ol {
    margin: 0.2rem 0 0.2rem 1rem !important;
    padding-left: 0.5rem !important;
  }

  li {
    font-size: 10pt !important;
    line-height: 1.35 !important;
    margin-bottom: 0.1rem !important;
    color: #000 !important;
  }

  /* Paragraphs */
  p {
    font-size: 10pt !important;
    line-height: 1.4 !important;
    margin: 0.15rem 0 !important;
    color: #000 !important;
  }

  /* Hide interactive elements that shouldn't print */
  .no-print,
  button,
  input,
  select,
  textarea,
  .cv-sidenav {
    display: none !important;
  }

  /* Show print-only elements */
  .print-only {
    display: block !important;
  }

/* Widows and orphans â€” print only, split for Firefox */
p {
  orphans: 2 !important;
  widows: 2 !important;
}

.cv-list-item {
  orphans: 2 !important;
  widows: 2 !important;
}

h1 {
  orphans: 3 !important;
  widows: 3 !important;
}

h2 {
  orphans: 3 !important;
  widows: 3 !important;
}

h3 {
  orphans: 3 !important;
  widows: 3 !important;
}

.cv-section-title {
  orphans: 3 !important;
  widows: 3 !important;
}


/* ------------------------------------------------------------
   13. Browser-Specific Styles if any
   ------------------------------------------------------------ */