/* Extraction Core CSS */
p {
    margin-bottom: 0 !important;
}

/* dotted focus outline */
/* Remove focus outline only for mouse users */
*:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

.entry-meta {
	display: none;
}
/* ==============================
   GLOBAL LINK STYLES
   ============================== */

a {
    color: #ce0000;
    text-decoration: none;
}

/* Hover / focus */
a:hover,
a:focus {
    color: #c00000;
    text-decoration: none;
}



/* =====================================
   SECTION padding
===================================== */
.section-global-title{
    line-height: 22px !important;
 padding: 5px 40px 5px 40px !important;
	  background: #ffffff; 
       border-top: 1px solid #ce0000;
        border-bottom: 1px solid;
         color: #ce0000 !important;
          font-weight: 500 !important;
           letter-spacing: 0.03em;
}

@media (max-width: 767px) {
  .section-global-title {
    padding: 5px 20px 5px 20px !important;
  }
}


/* =====================================
   EXTRACTION BUTTON STYLES
===================================== */

/* Button states */
.extraction-btn,
.extraction-btn:visited,
.extraction-btn:active {
    color: #ffffff !important;
    text-decoration: none !important;

}

/* Base button styling */
.extraction-btn {
    font-family: "Source Sans Pro", sans-serif;
    display: inline-block;
    box-sizing: border-box;

    padding: 5px 10px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #ffffff;
    background-color: #ce0000;

    text-decoration: none;
    line-height: 1;
    letter-spacing: 0.5px;

    transition: background-color 0.2s ease-in-out;
}

/* Hover state */
.extraction-btn:hover {
    background-color: #c00000;
    color: #ffffff !important;
}


/* =========================================================
   FIX: Astra + Elementor Category Archive (Pagination Layout)
   ---------------------------------------------------------
   Purpose:
   - Keep category archive layout consistent across ?paged=1,2,...
   - Prevent Astra flex/page-builder layout rules from shifting content
   - Normalize container width and padding for our Elementor-rendered archive

   Scope: category archives only (body.category)
   ========================================================= */

body.category #content.site-content{
  display: block !important;
}

body.category {
    background-color: #FBFEFA !important;
}


/* Use a consistent centered container on category archives */
body.category #content.site-content > .ast-container{
  width: 100% !important;
  max-width: 1200px !important;   /* match your site container width */
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px !important;  /* match your preferred spacing */
  padding-right: 20px !important;
}

/* Ensure Astra's row/primary don't shrink or offset on paged URLs */
body.category .ast-row{
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.category #primary.content-area.primary{
  width: 100% !important;
  margin: 0 !important;

  /* IMPORTANT:
     Avoid padding:0 here unless you really want NO inner spacing.
     Let the ast-container padding above control the horizontal breathing room.
  */
  padding: 0 !important;
}


/* =========================
   Category Archive (Groups/Cards) Responsive Styles
   Targets your markup classes only.
   ========================= */

/* =========================
   FORCE FONT on this archive only
   ========================= */

.cat-archive-shell,
.cat-archive-shell *{
  font-family: "Source Sans Pro", sans-serif !important;
}

/* Optional: set headings separately */

.cat-archive-shell h1,
.cat-archive-shell h2,{
  font-family: "Manrope", sans-serif !important;
	font-weight: 500;
}

.cat-archive-shell h3,{
  font-family: "Manrope", sans-serif !important;
	 color: #0F0F0F!important;
}

/* === Category Archive Pagination === */
.cat-pagination {
    text-align: center;
    margin: 2em 0;
   
}

.cat-pagination ul.page-numbers {
    display: inline-flex;
    list-style: none;
    padding: 0;
    margin: 0;
}

.cat-pagination ul.page-numbers li {
    margin: 0 0.25em;
}

.cat-pagination ul.page-numbers li a,
.cat-pagination ul.page-numbers li span {
    display: block;
    padding: 0.3em 0.5em;
    min-width: 30px;
    text-align: center;
    text-decoration: none;
    border: 1px solid #ce0000;
    color: #333;
    transition: all 0.3s ease;
    font-size: 14px;
}

.cat-pagination ul.page-numbers li a:hover {
    background-color: #ce0000;
    color: #fff;
    border-color: #ce0000;
}

.cat-pagination ul.page-numbers li span.current {
    background-color: #ce0000;
    color: #fff;
    border-color: #c73232;
    font-weight: bold;
    cursor: default;
}

.cat-pagination ul.page-numbers li a.next,
.cat-pagination ul.page-numbers li a.prev {
    font-weight: bold;
    /*! font-size: 12px; */
}

@media (max-width: 768px) {
    .cat-pagination ul.page-numbers {
        flex-wrap: wrap;
        justify-content: center;
    }
    .cat-pagination ul.page-numbers li {
        margin: 0.2em;
    }
}

.cat-title {
  font-size: clamp(20px, 3.2vw, 42px);
	 font-family: 'Manrope', sans-serif !important;
  color: #0F0F0F!important;
}

.cat-group__title{
  font-size: clamp(15px, 2vw, 30px);
  margin-top: 0 !important;
  margin-bottom: clamp(12px, 2vw, 28px) !important;
	 font-family: 'Manrope', sans-serif !important;
  color: #0F0F0F!important;
	 font-weight: 500 !important;
}


/* =========================================================
  category archive
   - Grid: 2 mobile / 3 tablet / 4 desktop
   - Equal cards
   - Uniform portrait thumbnails
   - Centered name + position
   - Force name color/weight on the <a> (theme usually overrides)
   ========================================================= */

/* Grid */
.cat-group--people .cat-group__grid{
  display: grid;
  gap: clamp(25px, 3vw, 40px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px){
  .cat-group--people .cat-group__grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px){
  .cat-group--people .cat-group__grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Card layout (image on top, text below) */
.cat-group--people .cat-card{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-width: 0;
}

/* Portrait thumbnail (same size for all) */
.cat-group--people .cat-card__thumb{
  display: block !important;
  width: 100% !important;
  height: auto !important;                /* allow aspect-ratio to control height */
  aspect-ratio: 5 / 6 !important;         /* portrait (adjust if you want taller/shorter) */
  overflow: hidden !important;
}

.cat-group--people .cat-card__thumb img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Body centered under the image */
.cat-group--people .cat-card__body{
  display: block !important;
  width: 100% !important;
  flex: 1 1 auto !important;
  text-align: center !important;
  padding: 10px 10px 14px !important;
}

/* Title (clamp to 2 lines for equal height cards) */
.cat-group--people .cat-card__title{
  margin: 4px 0 4px !important;
  font-size: clamp(14px, 1.15vw, 18px) !important;
  line-height: 1.15 !important;

  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}


.custom-category-archive .cat-group__title {
	font-size: clamp(15px, 22px, 30px);
    color: #ce0000 !important;
    font-weight: 400 !important;
 font-family: 'Manrope', sans-serif !important;
    border: 1px solid #ce0000;
    padding: 4px 13px;
    display: inline-block;
	background-color: #fff;
	 letter-spacing: 1px;
}

/* People names: prevent baseline clipping */
.cat-group--people .cat-card__title,
.cat-group--people .cat-card__title a {
  line-height: 1.25 !important;
  padding-bottom: 2px;          /* gives room for descenders (g, y, p, etc.) */
  display: inline-block;        /* helps if parent has tight line box */
}

.cat-group--people .cat-card__title,
.cat-group--people .cat-card__title a {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 400 !important;
  color: #0F0F0F !important;
  text-decoration: none !important;
	letter-spacing: 0.5px !important; 
}

.cat-group--people .cat-card__title a:hover {
  color: #ce0000 !important;
}

/* Keep other meta tidy */
.cat-group--people .cat-card__meta{
  margin: 0 !important;
}
/* =========================
   CATEGORY GROUP SPACING
   ========================= */
.cat-groups{
  display: flex;
  flex-direction: column;
  gap: 64px;              /* ✅ space BETWEEN the 3 groups */
}

/* =========================
   Vertical spacing between entries
   (Publications + Events only)
   ========================= */

.cat-group--publications .cat-card,
.cat-group--events .cat-card{
  margin-bottom: 48px;   /* adjust spacing here */
}

/* Remove extra space after last item */
.cat-group--publications .cat-card:last-child,
.cat-group--events .cat-card:last-child{
  margin-bottom: 0;
}

/* Responsive card titles */
.cat-card--publications .cat-card__title,
.cat-card--media_publications .cat-card__title,
.cat-card--events .cat-card__title{
  font-size: clamp(13px, 2.1vw, 20px);
  line-height: 1.25;
  margin: 0 0 6px;
  font-weight: 600;
}

/* TAGS */
.cat-card__tag{
  font-size: clamp(13px,1.5vw + 5px, 16px);
  font-weight: 500;
}


/* AUTHOR / EVENT TYPE */
.cat-card__author,
.cat-card__eventtype{
  font-size: clamp(13px, 1.5vw, 16px);
  font-weight: 500;
}


/* META LINES (publisher, language, year, date, location, etc.) */
.cat-card__meta{
  font-size: clamp(13px, 1.5vw, 16px);
  line-height: 1.4;
}


/* EXCERPT */
.cat-card__excerpt{
  font-size: clamp(13px, 1.5vw, 15px);
  line-height: 1.5;
  margin-top: 4px;
}
/* Responsive 16:9 embed that stays smaller */
.cat-card .cat-card__embed{
  position: relative !important;
  width: 100% !important;
  max-width: clamp(240px, 95%, 620px) !important; /* smaller: adjust values */
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
	margin-top: clamp(5px, 10px, 15px);
}

/* Force the iframe/video to fill the 16:9 frame */
.cat-card .cat-card__embed iframe,
.cat-card .cat-card__embed video,
.cat-card .cat-card__embed embed,
.cat-card .cat-card__embed object{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  max-width: 100% !important;
}

.cat-card__actions{
  margin-top: clamp(5px, 0.5vw, 14px);
}

.cat-group__viewall{
  font-size: clamp(13px, 1.2vw, 25px);
  font-weight: 500;
  text-decoration: none;
  position: relative;
  padding-bottom: 1px;
	 margin-top: clamp(20px, 3vw, 60px);
	 font-style: italic;
	 display: inline-block;
	 opacity: 0.85;
	 padding-bottom: 2px;
}

.cat-group__viewall::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 1px; /* move closer to text */
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width 0.3s ease;
}


.cat-group__viewall:hover::after{
  width: 100%;
	 opacity: 0.85;
}

/* image */
/* Target ONLY images inside your moved featured block */
.custom-category-archive .cat-card__featured > img.wp-post-image{
  width: auto !important;       /* prevents stretching */
  height: auto !important;      /* prevents distortion */
  max-width: 320px !important;  /* <-- set your max width */
  display: block;
	margin-top: clamp(5px, 18px, 20px)
}

.custom-category-archive .cat-card__featured--landscape > img.wp-post-image{
  max-width: 280px !important;
}

.custom-category-archive .cat-card__featured--portrait > img.wp-post-image{
  max-width: 180px !important;
}

.custom-category-archive .cat-card__featured--square > img.wp-post-image{
  max-width: 180px !important;
}


/* =========================
   Global Site Search Styles
   (Astra-safe overrides)
========================= */

/* Wrapper */
.site-search{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 0 0 16px 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Input */
.site-search-input{
  /* sizing / layout */
  width: auto !important;     /* override any width:100% */
  flex: 1 1 auto;             /* take remaining space */
  min-width: 0;               /* critical: allows shrinking in flex */
  max-width: 420px;

  /* spacing */
  padding: 12px 14px;

  /* IMPORTANT: reserve border space so focus doesn't shift layout */
  border: 1px solid #F0F0F0 !important;

  border-radius: 12px;
  outline: none !important;

  background: #ffffff;
  font-size: 14px;
  line-height: 1.2 !important;  /* helps prevent focus "jump" */
  height: auto !important;
  box-sizing: border-box;

  /* prevent Astra/global focus styles from changing layout */
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;

  transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}

/* Input focus (no layout shift) */
.site-search-input:focus{
  background-color: #ffffff;
  border-color: rgba(206, 0, 0, 0.15) !important; /* visible focus without resizing */
  box-shadow: 0 0 0 1px rgba(206, 0, 0, 0.05) !important;
  outline: none !important;
}

/* Some browsers/themes apply focus-visible separately */
.site-search-input:focus-visible{
  outline: none !important;
}

/* Clear button */
.site-search-clear{
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;

  padding: 0;
  margin: 0;

  color: #ce0000 !important;
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  /* Keep X button from shrinking/weird sizing */
  flex: 0 0 auto;
}

/* Kill Astra button hover/focus/active styling */
.site-search-clear:hover,
.site-search-clear:focus,
.site-search-clear:active{
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: #000000 !important;
  outline: none !important;
}

/* Remove Astra pseudo-elements */
.site-search-clear::before,
.site-search-clear::after{
  display: none !important;
}

/* Publications shortcode sizing to match other pages */
.person-publications .publications-search-inner{
  width: min(420px, 100%);
  margin-left: auto;
}
/* =========================================================
   CONTACT FORM 7 – LOE CONTACT FORM STYLES
   Custom styling for Name, Email, Message, Consent,
   Button, Validation & Response Messages
   ========================================================= */
/* Form Wrapper */ 
.loe-form {
  font-family: inherit;
}


/* Fields */
.loe-field {
    margin-top: clamp(7px, 15px, 20px);
}

.loe-field label {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: #333;
}

/* Inputs & Textarea */
.loe-field input,
.loe-field textarea {
  padding: 12px 14px;
  border: 1px solid #ddd;
  border-radius: 0;
  font-size: 15px;
  background: #fff;
}

/* Focus effect */
.loe-field input:focus,
.loe-field textarea:focus {
  border-color: #ce0000 !important;
  background: #fff;
  outline: none;
}

/* Textarea */
.loe-field textarea {
  min-height: 140px;
  resize: vertical;
}

/* Consent */
.loe-consent {
  font-size: 13px;
  margin-bottom: 20px;
  display: flex;
  align-items: flex-start;
}

.loe-consent a{
  text-decoration: none !important;
}

.loe-consent input {
  margin-top: 4px;
}

/* Button */
.loe-actions input[type="submit"] {
  width: 60%;
  padding: 14px;
  border: none;
  border-radius: 0;
  font-size: 16px;
  font-weight: 600;
  background-color: #ce0000;
  color: white;
  cursor: pointer;
  transition: all 0.3s ease;
}

.loe-actions input[type="submit"]:hover {
  background: #c00000;
}

.loe-actions input[type="submit"]:active {
  transform: translateY(0);
}

/* CF7 adds <p> + <br> which creates the extra gap */
.loe-form .loe-field p {
  margin: 0 0 14px; /* space between fields (adjust) */
}

.loe-form .loe-field br {
  display: none; /* removes the forced line break gap */
}

/* Now this controls the label-to-input spacing */
.loe-form .loe-field label {
  margin-bottom: 3px; /* adjust smaller/larger */
}

/* Make the wrap behave predictably */
.loe-form .loe-field .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0;
}

.loe-consent input[type="checkbox"] {
  accent-color: #ce0000; /* your red */
  width: 16px;
  height: 16px;
  cursor: pointer;
}

/* Base message box (CF7 output is NOT inside .loe-form, so target CF7 wrapper) */
.wpcf7 form .wpcf7-response-output {
  margin: 20px 0 0 !important;
  padding: 8px 16px !important;
  border-radius: 5px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  border: 1px solid !important;
}

/* SUCCESS */
.wpcf7 form.sent .wpcf7-response-output {
  background-color: #fff !important;
  border-color: green !important;
  color: #000 !important;
}

/* ERROR (validation failed) */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
  background-color: #fff5f5 !important;
  border-color: #ce0000 !important;
  color: #ce0000 !important;
}

/* Field validation message under inputs */
.wpcf7 .wpcf7-not-valid-tip {
  color: #ce0000 !important;
  font-size: 12px !important;
  margin-top: 4px !important;
}

/* Highlight invalid fields */
.wpcf7 .wpcf7-not-valid {
  border-color: #ce0000 !important;
}


/* =========================
   Category pills (shortcode)
   ========================= */

.kw-tagcloud {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9rem;
  margin: 1.5rem 0;
}

.kw-tagcloud a {
  font-size: 1rem !important;
  color: #000 !important;
  text-decoration: none !important;
	 justify-content: center; /* centers text horizontally */
  text-align: center;      /* ensures text centers if it wraps */

  padding: 0.5rem 1rem;
  border: 1px solid transparent; /* reserve border space to prevent shifting */
  border-radius: 999px;

  display: inline-flex;
  align-items: center;
  line-height: 1.1;

  transition: transform 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  will-change: transform;
}

.kw-tagcloud a {
  white-space: normal;
}

.kw-tagcloud a:hover,
.kw-tagcloud a:focus-visible {
  color: #ce0000 !important;
  border-color: currentColor;
  transform: scale(1.06);
  outline: none;
}


/* =========================
   PERSON PROFILE (Singles)
   Applies to: people, former_members, team_leader
========================= */

body.single-people,
body.single-former_members,
body.single-team_leader {}


/* ==============================
   PERSON NAME TITLE
============================== */

body.single-people .person-title,
body.single-former_members .person-title,
body.single-team_leader .person-title{
  margin:10px 0 15px;
  padding:0;

  font-family:'Manrope', sans-serif;
  font-weight:700;
  text-transform:uppercase;

  color:#ce0000;

  font-size:46px;
  line-height:1.15;
}

/* Tablet */
@media (max-width:1024px){
  body.single-people .person-title,
  body.single-former_members .person-title,
  body.single-team_leader .person-title{
    font-size:30px;
  }
}

/* Mobile */
@media (max-width:767px){
  body.single-people .person-title,
  body.single-former_members .person-title,
  body.single-team_leader .person-title{
    font-size:24px;
  }
}

/* Position */
body.single-people .person-position,
body.single-former_members .person-position,
body.single-team_leader .person-position{
  font-weight:500;
  margin:0 0 20px;
  font-size:15px;
}

/* ==============================
   PERSON CATEGORIES (one per line)
============================== */

body.single-people .person-categories,
body.single-former_members .person-categories,
body.single-team_leader .person-categories{
  margin:8px 0 16px;
}

body.single-people .person-category,
body.single-former_members .person-category,
body.single-team_leader .person-category{
  display:block;
  font-family:'Manrope', sans-serif;
  font-size:14px;
  line-height:1.8;
  color:#ce0000;
  margin:0 0 4px;
}

/* ==============================
   CONNECT
============================== */

body.single-people .person-connect,
body.single-former_members .person-connect,
body.single-team_leader .person-connect{
  margin-top:25px;
  padding-top:14px;
	font-family:'Manrope', sans-serif;
}

body.single-people .person-connect-title,
body.single-former_members .person-connect-title,
body.single-team_leader .person-connect-title{
  line-height:1.25;
  color:#ce0000;
  margin-bottom:8px;
}

body.single-people .person-email,
body.single-former_members .person-email,
body.single-team_leader .person-email{
  text-decoration:none;
	font-size: 0.8rem;
	color: #000;
}

/* Hover effect */
body.single-people .person-email:hover,
body.single-former_members .person-email:hover,
body.single-team_leader .person-email:hover {
  color: #ce0000;
}

/* ==============================
   PERSON ABOUT — 2 COLUMNS (Desktop/Tablet), 1 (Mobile)
   Fix: allow text to flow into column 2
============================== */

.person-about{
  display: block !important;
  width: 100% !important;

  font-size: 15px;
  line-height: 1.6;

  /* Columns (include webkit for Safari) */
  -webkit-column-count: 2;
  column-count: 2;

  -webkit-column-gap: 50px;
  column-gap: 50px;

  -webkit-column-fill: balance;
  column-fill: balance;

  /* nicer column typography */
  orphans: 3;
  widows: 3;
}

.person-about p{
  -webkit-column-break-inside: auto !important;
  break-inside: auto !important;
}

/* Optional: avoid splitting headings/lists awkwardly */
.person-about h1,
.person-about h2,
.person-about h3,
.person-about ul,
.person-about ol{
  -webkit-column-break-inside: avoid;
  break-inside: avoid;
}

/* Mobile: 1 column */
@media (max-width: 767px){
  .person-about{
    -webkit-column-count: 1;
    column-count: 1;
    -webkit-column-gap: 0;
    column-gap: 0;
  }
}

/* ==============================
   PERSON NAME TITLE
   (from [person_title] shortcode)
   ============================== */

body.single-people .person-title {
  margin: 10px 0 15px 0;                 /* no spacing */
  padding: 0;

  font-family: 'Manrope', sans-serif !important;
  font-weight: 700;
  text-transform: uppercase;

  color: #ce0000;

  font-size: 46px;
  line-height: 1.15;
}

/* Tablet */
@media (max-width: 1024px) {
  body.single-people .person-title {
    font-size: 30px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  body.single-people .person-title {
    font-size: 24px;
  }
}

.person-position{ 
    font-size: 1rem !important;
    line-height: 1.5rem;
   font-family: 'Manrope', sans-serif;
}


/* ==============================
   PERSON CATEGORIES
   (one per line)
   ============================== */

body.single-people .person-categories {
  margin: 8px 0 16px;
}

body.single-people .person-category {
  display: block;           /* each on its own line */
  font-family: 'Manrope', sans-serif;
  font-size: 0.9rem !important;
  line-height: 1.8;

  color: #ce0000 !important;           /* your red */
  text-decoration: none;
  margin: 0 0 4px 0;        /* spacing between lines */
}

body.single-people a.person-category:hover,
body.single-people a.person-category:focus,
body.single-people a.person-category:active {
  color: #c00000 !important;
}

.person-academic-interests {
    font-size: clamp(14px, 1vw, 20px);
    line-height: 1.7;
    font-weight: 400;
    margin-top: 20px;
    font-family: 'Manrope', sans-serif;
}

.person-connect h3{
    line-height: 20px;
    color: #ce0000;
    margin-bottom: 8px;
}


.person-about p{
    font-size: 1rem;
    line-height: 1.5rem;
}


.section-global-title{
   
}


/* =========================================
   AWARDS GRID LAYOUT
========================================= */
.person-awards-scope{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  row-gap: 35px;     /* 👈 smaller vertical spacing */
  column-gap: 60px;  /* 👈 keep horizontal spacing */
  width: 65%;
  max-width: 1000px;
  margin: 50px 0 40px 80px;
}

/* =========================================
   CARD HEADER GRID
========================================= */
.person-awards-scope .person-award-header{
  display: grid;
  grid-template-columns:  auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 24px;
  row-gap: 4px;
  align-items: start;
}

.person-awards-scope .person-award-title{
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
}

.person-awards-scope .person-award-years{
  grid-column: 1;
  grid-row: 2;
  font-size: .95rem;
  opacity: .75;
}

.person-awards-scope .person-award-actions{
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
  white-space: nowrap;
}

.person-awards-scope .person-award-button{
  margin-top: -3px;
}

/* =========================================
   TABLET (≤1024px)
========================================= */
@media (max-width: 1024px){

  .person-awards-title{
    margin: 30px 0 18px 0;
    padding: 5px 0 5px 30px !important;
    font-size: 1.35rem;
    letter-spacing: 0.035em;
     line-height: 22px !important;
  }

  .person-awards-scope{
    margin: 0 50px !important;
    gap: 16px;
  }

  .person-awards-scope .person-award-header{
    column-gap: 24px;
  }
}

/* =========================================
   MOBILE (≤768px)
========================================= */
@media (max-width: 768px){

  .person-awards-title{
    padding-left: 19px !important;
     padding-right: 18px !important;
  }

  .person-awards-scope{
    grid-template-columns: 1fr;
    margin: 40px 20px 0 20px!important; 
	   width: 100%;
	   row-gap: 28px; 
  }

  .person-awards-scope .person-award-header{
    grid-template-columns: auto 1fr;
    row-gap: 8px;
  }
}


/* =========================================
   Publications — GRID rebuild (clean + robust)
   ========================================= */

/* Search bar */
.person-publications .publications-search-inner{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: min(420px, 100%);
  margin-left: auto;
}

/* No results */
.person-publications .no-results,
.person-publications .publications-no-results,
.person-publications .search-no-results{
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.5;
  font-style: italic;
  color: #666;
}

/* Lists reset */
.person-publications ul{
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Titles */
.person-publications-title{
  display: none;
}

.person-publications-subtitle,
.person-publications-title{
  font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-style: italic;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  color: #ce0000 !important;
}

.person-publications-subtitle{
  margin-top: 2rem !important;
  margin-bottom: 1.1rem !important;
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.35rem);
}

/* Base typography */
.person-publications{
  font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
}

/* =========================================
   Publication item — GRID
   Desktop: content left, image right
   Mobile: title/meta/desc → image → button
   ========================================= */

.person-publication-item{
  display: grid;
  grid-template-columns: 1fr auto ;
  grid-template-areas:
    "content image";
  column-gap: 1.5rem;   /* ✅ space left of image */
  row-gap: .3rem !important;
  margin-bottom: 2rem;
  align-items: start;
  font-family: "Source Sans Pro" !important;
}

/* Content wrapper sits in the left column */
.person-publications .person-publication-content{
  grid-area: content;
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr;
  row-gap: .05rem;
}

/* Image sits in the right column */
.person-publications .person-publication-image{
  grid-area: image;
}

.person-publication-image img{
  max-width: 200px;
  height: auto;
  margin-top: 5px;
	margin-right: 40px;
  box-shadow: none !important;
  filter: none !important;
}

/* Title */
.person-publication-title-item{
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.15rem);
  font-weight: 600;
  line-height: 1.3;
}

.publication-type {
  font-weight: 400;
	 font-size: clamp(0.9rem, 0.85rem + 0.2vw, 1rem);
	  opacity: 0.8;
}

/* Meta */
.person-publication-meta{
  font-size: clamp(0.9rem, 0.85rem + 0.2vw, 1rem);
  opacity: 0.8;
}

/* Description */
.person-publication-description{
  font-size: clamp(0.95rem, 0.9rem + 0.25vw, 1.05rem);
  color: #444F63;
}

/* Link/Button */
.person-publications .person-publication-link{
  margin-top: .3rem;
}

.person-publications .person-publication-button.extraction-btn{
  position: static !important;
  float: none !important;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
}

/* Links */
.person-publication-item a{
  text-decoration: none !important;
  color: inherit;
}

.person-publication-item a:hover{
  color: #ce0000;
}



/* ==============================   Mobile layout
   Order becomes: content blocks → image → button
   ========================================= */
@media (max-width: 520px){

  .person-publication-item{
    grid-template-columns: 1fr;
    grid-template-areas:
      "content"
      "image";
    row-gap: .7rem;
  }

  /* Make content a grid so we can place the button AFTER the image visually:
     We "pull" the link out by letting content flatten, then we assign areas.
     Easiest reliable way: flatten content wrapper. */
  .person-publications .person-publication-content{
    display: contents;
  }

  /* Now these are direct grid items of .person-publication-item */
  .person-publications .person-publication-title-item{ grid-row: 1; }
  .person-publications .person-publication-meta{ grid-row: 2; }
  .person-publications .person-publication-description{ grid-row: 3; }

  /* Image should be below all text */
  .person-publications .person-publication-image{
    grid-row: 4;
  }

  /* Button/link should be below image */
  .person-publications .person-publication-link{
    grid-row: 5;
    margin-top: 0;
  }

  .person-publication-image img{
    max-width: 160px;
    margin-top: 0;
  }
}


/* =========================================
   PERSON → OTHER MEDIA (match media list style)
   ========================================= */
   
   /* Make each item "contain" floated children so height is correct */
.person-other-media-content {
  display: flow-root;   /* best clearfix */
}
.person-other-media-button {
  clear: both;
  margin-top: 20px;
}
.person-other-media-item:not(:last-child) {
  margin-bottom: 45px;
}

@media (min-width: 768px) {
  .person-other-media-item:not(:last-child) {
    margin-bottom: 70px;
  }
}

@media (min-width: 1025px) {
  .person-other-media-item:not(:last-child) {
    margin-bottom: 80px;
  }
}

/* Desktop: title left, year right */
@media (min-width: 569px) {
    .person-other-media-title-item {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
    }
}

/* Mobile: stack normally */
@media (max-width: 568px) {
    .person-other-media-title-item {
        display: block;
    }

    .person-other-media-year {
        display: block;
        margin-top: 4px; /* optional spacing */
    }
}

.person-other-media {
  margin-top: 24px;
}

.person-other-media-title{
  color: #ce0000 !important;
}


.person-other-media-title {
  font-size: 2rem !important;
  font-weight: 600;
  line-height: 19px;
  margin: 0 0 50px 0 !important;
  padding: 0 !important;
}

.person-other-media-list {
  list-style: none;
  padding: 0 !important;
  margin: 0;
}



/* Container (keeps things tidy) */
.person-other-media-content {
  display: block;
}

/* Item title like .media-title */
.person-other-media-title-item {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 25px;
  margin: 0;
  padding: 0 !important;
 
}

/* Author + meta compact like your media-meta/language spacing */
.person-other-media-author {
  margin: 0;
  font-weight: 500;
  line-height: 1.2;
   font-size: 1rem;
}

.person-other-media-meta {
  margin: 0 0 10px 0; /* similar to .media-language bottom spacing */
  line-height: 1.2;
    font-size: 1rem;
}

/* Description spacing */
.person-other-media-description {
  margin-top: 10px;
  
}


.person-other-media-description p {
  margin-bottom: 0;
 color: #444F63;
    font-size: 0.9rem;
}

@media (min-width: 1025px){
  .person-other-media-embed{
    max-width: 65%;
   
  }
}

/* =========================================
   EMBED styling (Astra oEmbed / iframe)
   ========================================= */

.person-other-media-embed {
  margin-top: 25px;
}

/* Make embeds behave like your media-video */
.person-other-media-embed iframe,
.person-other-media-embed video,
.person-other-media-embed embed {
  width: 100% !important;
  aspect-ratio: 16 / 9;
  height: auto !important;
  display: block;
}

/* Optional: make "Open media" link match your tag hover vibe */
.person-other-media-embed a {
  color: #000000 !important;
  text-decoration: none !important;
  border-bottom: 1px solid currentColor;
}

.person-other-media-embed a:hover,
.person-other-media-embed a:focus {
  color: #ce0000 !important;
}

/* =========================================
   Responsive tweaks
   ========================================= */

/* Tablet: keep embed comfortably wide */
@media (max-width: 1024px) and (min-width: 768px) {
  .person-other-media-embed {
    max-width: 85%;
  }
}

/* Mobile: add breathing room under media box */
@media (max-width: 767px) {
  .person-other-media-embed {
    margin-bottom: 16px;
    max-width: 100%;
  }

  .person-other-media-embed iframe,
  .person-other-media-embed video,
  .person-other-media-embed embed {
    max-height: 220px;
  }
  
.person-other-media-description p {
  margin-bottom: 0;
 color: #444F63;
    font-size: 0.9rem;
    line-height: 1.3rem;
}
}

/* =========================================
   Astra oEmbed empty container cleanup (same idea)
   ========================================= */

.person-other-media .ast-oembed-container:empty {
  display: none !important;
}

.person-other-media .ast-oembed-container:not(:has(iframe)) {
  display: none !important;
}

.person-events-section-title{
  font-family: "Manrope", sans-serif;
  font-size: 20px;
  font-weight: 500 !important;
  color: #ce0000 !important;

  background: #ffffff;
  border-top: 1px solid #ce0000;
  border-bottom: 1px solid #ce0000;

  padding: 13px 0 15px 40px;


  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;

  text-align: left;
}

@media (max-width: 768px){

  .person-events-section-title{
    font-size: 20px;
    padding: 8px 0 8px 20px;
    margin-bottom: 20px;
  }
}

.person-other-media-thumb{
  max-width: 150px;  /* 👈 controls overall size */
}

@media (min-width: 768px){
  .person-other-media-content{
    display: grid;
    grid-template-columns: 1fr 220px;
    column-gap: 24px;
    align-items: start;
  }

  .person-other-media-title-item{
    grid-column: 1 / -1;
  }

  .person-other-media-description{
    grid-column: 1;
    grid-row: 2;
  }

  .person-other-media-button{
    grid-column: 1;
    grid-row: 4;
    margin-top: 10px;
    clear: none;
	  align-self: start !important;   /* 👈 force top alignment */
  }
	
	 
  .person-other-media-thumb{
    grid-column: 2;
    grid-row: 2 / span 3;
    max-width: 220px;
  }

  .person-other-media-thumb img{
    width: 100%;
    height: auto;
    display: block;
  }

  .person-other-media-embed{
    grid-column: 1 / -1; /* full width below */
    grid-row: 3;
    margin-top: 25px;
  }
}


/* =========================
   PERSON EVENTS — CLEAN VERSION
========================= */

/* Fix: headings must have a box, but still allow hiding */
.person-events .events-section-title:not(.is-hidden),
.person-events h3.person-events-heading:not(.is-hidden){
  display: block !important;   /* fixes display:contents */
  height: auto !important;
  overflow: visible !important;
  position: relative !important;
  clear: both;
  margin: .75rem 0 1.25rem;
  line-height: 1.2;
  font-style: italic;
  font-size: 1rem;
}

/* When JS decides section is empty after filtering */
.person-events .events-section-title.is-hidden,
.person-events h3.person-events-heading.is-hidden{
  display: none !important;
}

/* Hide the wrapper list too when empty */
.person-events .person-events-list.is-hidden{
  display: none !important;
}

/* ===== Search Layout ===== */
.person-events .person-events-search-inner{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: min(420px, 100%);
  margin-left: auto;
  margin-top: clamp(1px, 20px, 20px);
}

.person-events .no-results,
.person-events .events-no-results,
.person-events .search-no-results{
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.5;
  font-style: italic;
  color: #666;
}


/* ===== Grid Card Layout ===== */
.person-event-card{
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto 1fr;
  align-items: start;

  margin-bottom: clamp(1.1rem, 3rem + 0.4vw, 2.35rem);
  line-height: 1.3;
  font-family: "Source Sans Pro" !important;
}



/* IMAGE — spans all 3 rows */
.person-event-image{
  grid-column: 2;
  grid-row: 1 / span 3;
}

/* TITLE + TYPE */
.person-event-title{
  grid-column: 1;
  grid-row: 1;
  margin-top: 0 !important;
  margin-bottom: clamp(8px, 0.05rem, 0.1rem);
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.15rem);
}

/* DESCRIPTION */
.person-event-description{
  grid-column: 1;
  grid-row: 2;
  color: #444F63;
  margin:  clamp(8px, 0.05rem, 0.1rem) 0;
}

/* BUTTON */
.person-event-actions{
  grid-column: 1;
  grid-row: 3;
  margin-top:clamp(4px, 1rem, 2.5rem) !important;
}

.person-event-card.has-image{
  column-gap: 1rem;
}

.person-event-card:not(.has-image){
  grid-template-columns: 1fr;
}

.person-event-card:not(.has-image) .person-event-title,
.person-event-card:not(.has-image) .person-event-description,
.person-event-card:not(.has-image) .person-event-actions{
  grid-column: 1;
}


/* ===== Typography ===== */

.person-events{
  font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
}

.person-events-section-title,
.person-events-heading{
  font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  color: #ce0000 !important;
}

.person-events-heading{
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.35rem);
}

.person-event-title span{
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.3;
  margin-right: 0.8rem;

}

.person-event-type{
  font-weight: 400 !important;
  color: #444F63 !important;
  font-size: 0.9rem !important;
}

.person-event-datetime,
.person-event-location{
  font-size: clamp(0.9rem, 0.85rem + 0.2vw, 1rem);

}

.person-event-date,
.person-event-time{
  display: inline-block;
}


/* ===== Images ===== */
.person-event-image img{
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  box-shadow: none !important;
  filter: none !important;
}

.person-event-image img.is-landscape{
  max-width: 290px !important;
}

.person-event-image img.is-portrait{
  max-width: 180px;
}

/* =========================
   MOBILE GRID (1 column / 4 rows)
========================= */

@media (max-width: 768px){
    
  

  .person-event-card{
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    column-gap: 0;
  }

  /* Row 1 — Title */
  .person-event-title{
    grid-column: 1;
    grid-row: 1;
  }

  /* Row 2 — All text content */
  .person-event-datetime,
  .person-event-location,
  .person-event-description{
    grid-column: 1;
  }

  .person-event-description{
    grid-row: 2;
  }

  /* Row 3 — Image */
  .person-event-image{
    grid-column: 1;
    grid-row: 3;
    margin-top: .5rem;
  }

  /* Row 4 — Button */
  .person-event-actions{
    grid-column: 1;
    grid-row: 4;
    margin-top: .5rem;
  }

}


/* ==============================
   PERSON NAME TITLE
END
   ============================== */


