b,
strong {
  font-weight: 600; /* or var(--wp--preset--font-weight--semibold) */
}

/* =================================================================================
BUTTONS 
=============================== */
/* Normal button */
.wp-block-button__link {
  font-size: 0.8125rem;
  padding: 1.125em 1.5em;
  line-height: 1.1;
  border-radius: 15px 3px 15px 3px;
  text-transform: uppercase;
  font-weight: 900;
  letter-spacing: 0.2rem;
  box-shadow: 3px 3px 4px hsla(0, 0%, 0%, 0.2);
  z-index: 1;
  position: relative;
  display: inline-block;
  overflow: hidden;
  transition: color 0.3s ease;
}

/* Slide hover */
.wp-block-button__link::before {
  content: "";
  position: absolute;
  background-color: var(--btn-hover-bg);
  border-radius: 15px 3px 15px 3px;
  inset: 0;
  z-index: -1;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}
.wp-block-button__link:hover::before {
  transform: translateX(0);
}

/* Small button */
.is-style-btn-small .wp-block-button__link {
  font-size: 0.75rem;
  padding: 0.5em 1.25em;
  font-weight: 900;
}

/* More button */
.is-style-btn-more .wp-block-button__link {
  font-size: 0.8125rem;
  padding: 0.7em 0; /* keep your current padding */
  font-weight: 600;
  background-color: transparent;
  color: var(--wp--preset--color--primary);
  box-shadow: none;

  /* align label + arrow without changing markup */
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
}

/* Arrow (inherits text color via mask) */
.is-style-btn-more .wp-block-button__link::after {
  content: "";
  width: 1.5em;
  height: 1.5em;
  flex: 0 0 auto;
  background-color: #000;
  -webkit-mask: url("../images/icons/arrow_right.svg") no-repeat 50% 50%;
  mask: url("../images/icons/arrow_right.svg") no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: transform 150ms ease;
}

/* Hover nudge */
.is-style-btn-more .wp-block-button__link:hover::after {
  transform: translateX(2px);
}

/* =================================================================================
RADIUS CORNER STYLES 
=============================== */
/* Rounded containers clip children */
:where(
  .is-style-corner-large,
  .is-style-corner-medium,
  .is-style-corner-small
) {
  overflow: clip; /* modern; falls back to hidden below */
  overflow: hidden;
}

/* Large */
:where(.is-style-corner-large) {
  border-top-left-radius: 100px;
  border-top-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 100px;
  padding-top: 5em !important;
}
:where(.wp-block-image.is-style-corner-large) {
  padding-top: 0 !important;
}

/* Medium */
:where(.is-style-corner-medium) {
  border-top-left-radius: 50px;
  border-top-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 50px;
  padding-top: 2.5em !important;
}
:where(.wp-block-image.is-style-corner-medium) {
  padding-top: 0 !important;
}

/* Small */
:where(.is-style-corner-small) {
  border-top-left-radius: 15px;
  border-top-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 15px;
  padding-top: 1em !important;
}
:where(.wp-block-image.is-style-corner-small) {
  padding-top: 0 !important;
}

.remove-padding-top {
  padding-top: clamp(2rem, 5vw, 3rem) !important;
}

/* Make inner content honor corners */
:where(.is-style-corner-large, .is-style-corner-medium, .is-style-corner-small)
  :where(
    img,
    video,
    iframe,
    .wp-block-cover__image-background,
    .wp-block-cover__video-background
  ) {
  border-radius: inherit !important;
}

/* Buttons */
/* Large */
:where(
  .wp-block-buttons.is-style-corner-large .wp-block-button__link,
  .wp-block-button.is-style-corner-large .wp-block-button__link
) {
  border-top-left-radius: 100px;
  border-top-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 100px;
}

/* Medium */
:where(
  .wp-block-buttons.is-style-corner-medium .wp-block-button__link,
  .wp-block-button.is-style-corner-medium .wp-block-button__link
) {
  border-top-left-radius: 50px;
  border-top-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 50px;
}

/* Small */
:where(
  .wp-block-buttons.is-style-corner-small .wp-block-button__link,
  .wp-block-button.is-style-corner-small .wp-block-button__link
) {
  border-top-left-radius: 15px;
  border-top-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 15px;
}

/* =================================================================================
Home-Headshot crossfade for Building a Skyline of Healers Section
=============================== */

.swap {
  display: block;
  inline-size: 100%; /* width:100%, logical-safe */
  aspect-ratio: 1 / 1; /* uniform squares */
  position: relative;
  overflow: hidden;
  min-inline-size: 0; /* flexbox bug guard */
  --delay: 0s; /* base animation delay, overridden below */
}

/* Make equal-width tiles inside flex rows */
.wp-block-group.is-layout-flex > .swap {
  flex: 1 1 0;
}

/* Remove gaps and stack both figures */
.swap > figure {
  margin: 0 !important;
  position: absolute;
  inset: 0;
}

/* Common image properties */
.swap > figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  backface-visibility: hidden;
  will-change: opacity;
}

/* Animations */
/* Image (first figure) — starts visible */
.swap > figure:nth-of-type(1) img {
  opacity: 1; /* visible during initial delay */
  animation: fadeA 8s linear var(--delay) infinite alternate both;
}

/* Image (second figure) — starts hidden */
.swap > figure:nth-of-type(2) img {
  opacity: 0; /* hidden during initial delay */
  animation: fadeB 8s linear var(--delay) infinite alternate both;
}

/* Keyframes: half the cycle shows one, half shows the other */
@keyframes fadeA {
  0%,
  45% {
    opacity: 1;
  }
  55%,
  100% {
    opacity: 0;
  }
}
@keyframes fadeB {
  0%,
  45% {
    opacity: 0;
  }
  55%,
  100% {
    opacity: 1;
  }
}

/* --- Stagger the timing (delay applied via CSS variable) ----------------- */
.swap.d0 {
  --delay: 3s;
}
.swap.d1 {
  --delay: 1s;
}
.swap.d2 {
  --delay: 4s;
}
.swap.d3 {
  --delay: 6s;
}
.swap.d4 {
  --delay: 2s;
}
.swap.d5 {
  --delay: 5s;
}

/* Interaction + accessibility */
.swap:hover img,
.swap:focus-within img {
  animation-play-state: paused;
}

/* Users preferring reduced motion: show only first image */
@media (prefers-reduced-motion: reduce) {
  .swap > figure img {
    animation: none !important;
  }
  .swap > figure:nth-of-type(2) {
    display: none !important;
  }
}

/* =================================================================================
BLOCK-PULLQUOTE-STYLING
=============================== */
/* Top rule and spacing */
.wp-block-pullquote {
  border-top: 1px solid var(--wp--preset--color--secondary);
  padding-top: 1rem;
  margin-top: 1.5rem;
  margin-bottom: 1.25rem;
  margin-right: 7em;
}

/* Reset default blockquote styling */
.wp-block-pullquote blockquote {
  margin: 0;
  padding: 0;
  border: none;
}

/* Layout for the quote with the icon on the left */
.wp-block-pullquote blockquote {
  position: relative;
  padding-left: 6rem; /* space for the large green quote mark */
  color: var(--wp--preset--color--primary);
}

/* Insert the open-quote icon */
.wp-block-pullquote blockquote::before {
  content: "";
  position: absolute;
  top: 0.1rem; /* adjusts vertical alignment */
  left: 0;
  width: 4rem;
  height: 4rem;
  background-image: url("/wp-content/themes/cunysom/assets/images/icons/quote.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left top;
}

/* Pullquote text rules */
.wp-block-pullquote blockquote p {
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.5rem;
  margin: 0;
  line-height: 1.75;
  text-align: left;
}

/* =================================================================================
BLOCK-TEXT-HIGHLIGHT STYLING
=============================== */
/* Top rule and spacing */
.wp-block-telex-text-highlight {
  border-top: 1px solid var(--wp--preset--color--secondary);
  padding-top: 1rem;
  margin-top: 1.5rem;
  margin-bottom: 1.25rem;
  margin-right: 7em;
}

.wp-block-telex-text-highlight__content {
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.5rem;
  margin: 0;
  line-height: 1.75;
  text-align: left;
  color: var(--wp--preset--color--primary);
}

/* =================================================================================
SECTION LANDING PAGES
=============================== */
@media (max-width: 782px) {
  .vertical-hero-logo {
    /* width: 80px; */
    display: none;
  }
  /* Reorder individual columns */
  .reorder-2cols > :nth-child(1) {
    order: 2; /* Column A goes second */
  }
  .reoder-2cols > :nth-child(2) {
    order: 1; /* Column B goes first */
  }
  /* Pushes home H1 to the bottom of hero */
  .mobile-align-bottom {
    align-items: flex-end;
  }
  .hide-mobile-nav {
    display: none;
  }
}

/* =================================================================================
MAP
=============================== */
.map-responsive {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 ratio */
  height: 0;
}

.map-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* =================================================================================
ASIDE
=============================== */
.aside-box {
  background-color: var(--wp--preset--color--tertiary);
  padding: 2em;
  border-radius: 50px 3px 50px 3px;
}

.aside-box p {
  margin: 0;
}

.aside-box li {
  margin-bottom: 0.5em;
}

.aside-box li:last-child {
  margin-bottom: 0em;
}

/* =================================================================================
BLOCK-TABLE-STYLE
=============================== */
.wp-block-table {
  margin-bottom: 3em;
}
.wp-block-table th,
.wp-block-table td {
  text-align: left;
  font-size: 0.875rem;
  padding: 12px 16px;
  text-align: left;
  vertical-align: top;
  border: 1px solid var(--wp--preset--color--secondary);
}

.wp-block-table thead {
  border: 1px solid var(--wp--preset--color--secondary);
}

.wp-block-table th {
  border: 1px solid var(--wp--preset--color--secondary);
  font-weight: 600;
  color: var(--wp--preset--color--primary);
}

/* =================================================================================
DEPARTMENT STAFF CARDS
=============================== */
.wp-block-query.alignwide > .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  align-items: start;
}

/* Leadership Team Member item spans both columns so it stays full width */
.wp-block-query.alignwide
  > .wp-block-post-template
  > li:has(.bb-staff-card--photo-profile) {
  grid-column: 1 / -1;
}

.type-staff {
  margin-block-start: 0 !important;
}

/* Leadership Team Member */
.bb-staff-card--photo-profile {
  display: grid;
  grid-template-columns: 200px 1fr; /* photo | meta */
  grid-template-areas:
    "photo body"
    "excerpt excerpt";
  column-gap: 2rem;
  row-gap: 1.25rem;
  align-items: start;
  padding-bottom: 1em;
  border-bottom: 1px solid var(--wp--preset--color--primary-alt);
}

.bb-staff-card__name {
  padding-top: 0;
}

.bb-staff-card__title {
  color: var(--wp--preset--color--main-accent);
  font-size: 1.125rem;
}

.bb-staff-card__media {
  grid-area: photo;
}

.bb-staff-card__body {
  grid-area: body;
}

.bb-staff-card__excerpt {
  grid-area: excerpt;
}

.bb-staff-card__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 25px 0 25px 0 !important;
}

.bb-staff-card__name {
  margin-bottom: 0.25rem;
  color: var(--wp--preset--color--main);
  font-size: 1.25rem;
  padding-bottom: 0.5em;
}

.bb-staff-card__title {
  margin-bottom: 0.5em;
  line-height: 1.125;
}

.bb-staff-card__meta {
  margin-bottom: 0.75rem;
  font-size: 1rem;
}

.bb-staff-card__contacts {
  font-size: 1rem;
  margin: 0.5rem 0;
}

.bb-staff-card__excerpt {
  font-size: 1rem;
}

@media (max-width: 720px) {
  .wp-block-query.alignwide > .wp-block-post-template {
    grid-template-columns: 1fr;
  }
  .wp-block-query.alignwide
    > .wp-block-post-template
    > li:has(.bb-staff-card--photo-profile) {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .bb-staff-card--photo-profile {
    grid-template-columns: 1fr;
    grid-template-areas:
      "photo"
      "body"
      "excerpt";
  }
  .bb-staff-card--photo-profile .bb-staff-card__media {
    width: 60%;
  }
}

/* Non-Leadership */
.bb-staff-card--photo {
  display: grid;
  grid-template-columns: 100px 1fr; /* photo | meta */
  grid-template-areas: "photo body";
  column-gap: 1.25em;
  align-items: start;
}

.bb-staff-card--photo .bb-staff-card__name {
  font-size: 1rem;
  padding-bottom: 0.125em;
}

.bb-staff-card--photo .bb-staff-card__title {
  font-size: 1rem;
  line-height: 1.125;
}

.bb-staff-card--photo .bb-staff-card__contacts {
  margin-top: 0;
}

/* =================================================================================
STAFF PAGE
=============================== */
.bb-staff-title {
  color: var(--wp--preset--color--main-accent);
  font-size: 1.5rem;
  margin-top: 0.5em;
}

/* =================================================================================
FACULTY & STAFF DIRECTORY PAGE
=============================== */
.staff-filters__row {
  width: 100%;
}

.staff-filters__field #staff_q,
.staff-filters__field #staff_dept,
.staff-filters__field #staff_unit {
  padding: 1em;
  font-size: 1rem;
  border: none;
  background-color: var(--wp--preset--color--tertiary);
  color: #000;
}

.staff-filters__actions {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  align-items: center;
}

.staff-filters__actions input[type="search"],
.staff-filters__actions select {
  min-width: 150px;
  font-size: 1rem;
  padding: 1em;
  border: 1px solid var(--wp--preset--color--main-accent);
}

.staff-filters__actions button {
  background-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--base);
  border: none;
  padding: 1rem;
  border-radius: 15px 3px 15px 3px;
  text-transform: uppercase;
  font-size: 0.75rem;
  padding: 1.5em 1rem;
  font-weight: 900;
  cursor: pointer;
}

.staff-filters__actions a {
  text-transform: uppercase;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.125rem;
  cursor: pointer;
}

.staff-card {
  display: flex;
  align-items: flex-start;
  gap: 2em;
  padding-bottom: 2em;
  margin-bottom: 2em;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--wp--preset--color--tertiary);
}

.staff-card .staff-card__media img {
  height: 200px;
  width: 200px;
  border-radius: 25px 0 25px 0 !important;
}

.staff-card .staff-card__body {
  flex: 0 0 66%;
}

.staff-card .staff-card__name {
  padding: 0;
}

.staff-card .staff-card__position {
  padding-bottom: 1em;
}

.staff-card .staff-card__row {
  font-size: 0.925rem;
}

.is-style-corner-large .staff-card {
  border-bottom: 1px solid var(--wp--preset--color--primary-alt) !important;
}

.is-style-corner-large .staff-card--standard .staff-card__media img {
  height: 100px;
  width: 100px;
}

.is-style-corner-large .staff-card--standard .staff-card__name {
  font-size: 1rem;
}

/* =================================================================================
NEWS CAROUSEL
=============================== */
.bb-news-carousel .wp-block-post-template {
  list-style: none;
  margin: 0;
  padding: 0;

  display: grid;
  gap: var(--wp--preset--spacing--30, 24px);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1024px) {
  .bb-news-carousel .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .bb-news-carousel .wp-block-post-template {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

/* News card styling (pattern-level) */
.bb-news-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.bb-news-card :where(img) {
  display: block;
  width: 100%;
  height: auto;
}

.bb-news-card__body {
  padding: var(--wp--preset--spacing--30, 24px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

/* Optional: push button to bottom if you use a button */
.bb-news-card__body .read-more-btn {
  margin-top: auto;
}

/* Carousel styles (applied only when JS adds .is-carousel) */
.bb-news-carousel.is-carousel {
  position: relative;
}

.bb-news-carousel.is-carousel .bb-carousel__viewport {
  overflow: hidden;
}

.bb-news-carousel.is-carousel .wp-block-post-template {
  display: flex;
  gap: 0;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.bb-news-carousel.is-carousel .bb-carousel__slide {
  display: flex;
  align-items: stretch;
}

.bb-news-carousel.is-carousel .bb-carousel__slide > * {
  width: 100%;
}

/* spacing between slides */
.bb-news-carousel.is-carousel .wp-block-post-template {
  gap: var(--wp--preset--spacing--30, 24px);
  gap: var(--wp--preset--spacing--50, 24px);
}

/* Controls */
.bb-news-carousel .bb-carousel__controls {
  margin-top: var(--wp--preset--spacing--30, 24px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.bb-news-carousel .bb-carousel__arrows {
  display: flex;
  gap: 10px;
}

.bb-news-carousel .bb-carousel__btn {
  position: relative;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: var(--wp--preset--color--primary);
  color: transparent; /* hide arrow text */
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
}

/* Hover + active */
.bb-news-carousel .bb-carousel__btn:hover,
.bb-news-carousel .bb-carousel__btn:active {
  background-color: var(--wp--preset--color--main-accent);
}

/* Focus (accessible but subtle) */
.bb-news-carousel .bb-carousel__btn:focus-visible {
  outline: 2px solid white;
  outline-offset: 2px;
}

/* Chevron icons */
.bb-news-carousel .bb-carousel__btn::before {
  content: "";
  width: 10px;
  height: 10px;

  border-right: 2px solid white;
  border-bottom: 2px solid white;

  transform-origin: center;
}

/* Left chevron */
.bb-news-carousel .bb-carousel__btn--prev::before {
  transform: rotate(135deg);
  margin-left: 17px;
}

/* Right chevron */
.bb-news-carousel .bb-carousel__btn--next::before {
  transform: rotate(-45deg);
  margin-right: -10px;
}

.bb-news-carousel .bb-carousel__dots {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.bb-news-carousel .bb-carousel__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--wp--preset--color--primary-alt);
  border: none;
  cursor: pointer;
  padding: 0;
}

.bb-news-carousel .bb-carousel__dot[aria-current="true"] {
  background: var(--wp--preset--color--primary);
}

.bb-news-card .wp-block-post-excerpt,
.bb-news-card .wp-block-post-excerpt__excerpt {
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;

  /* Hard stop to prevent peeking */
  max-height: calc(1.6em * 4);
  overflow: hidden;
}
