/* NCISS Elementor widget helpers (theme components.css holds most design). */

.nciss-widget-empty {
  padding: 1.5rem;
  border: 1px dashed var(--color-gray-300, #aeb8c7);
  background: var(--color-gray-100, #f6f4ef);
  text-align: center;
  color: var(--color-gray-500, #647084);
}

/* Portal Card widget */
.nciss-portal-card-wrap {
  display: flex;
  width: 100%;
  align-items: flex-start;
}

.nciss-portal-card-wrap--left { justify-content: flex-start; }
.nciss-portal-card-wrap--center { justify-content: center; }
.nciss-portal-card-wrap--right { justify-content: flex-end; }

.nciss-portal-card-wrap .portal-card {
  width: 100%;
  align-self: flex-start;
  height: auto;
  min-height: unset;
  max-height: none;
  --portal-card-overlay-bottom: 0.92;
  --portal-card-object-fit: cover;
  --portal-card-object-position: center center;
}

/* Override cached Elementor selector CSS when aspect ratio is active (not Auto). */
.nciss-portal-card-wrap .portal-card--ratio {
  min-height: unset !important;
  max-height: none !important;
}

.nciss-portal-card-wrap .portal-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: var(--portal-card-object-fit, cover);
  object-position: var(--portal-card-object-position, center center);
}

.nciss-portal-card-wrap .portal-card::after {
  background: linear-gradient(
    to top,
    rgba(10, 23, 41, var(--portal-card-overlay-bottom, 0.92)) 0%,
    rgba(10, 23, 41, 0.35) 55%,
    rgba(10, 23, 41, 0.2) 100%
  );
}

.nciss-portal-card-wrap .portal-card--no-hover:hover img {
  transform: none;
}

/* Board Grid widget — photo fit/position via CSS vars (Elementor controls) */
.elementor-widget-nciss-board-grid {
  --board-card-object-fit: cover;
  --board-card-object-position: center center;
}

.elementor-widget-nciss-board-grid .board-card__photo {
  object-fit: var(--board-card-object-fit, cover);
  object-position: var(--board-card-object-position, center center);
}

.elementor-widget-nciss-board-grid .board-card__contact,
.elementor-widget-nciss-board-grid .board-card__contact-row,
.elementor-widget-nciss-board-grid .board-card__contact dt,
.elementor-widget-nciss-board-grid .board-card__contact dd {
  text-align: left;
}

.elementor-widget-nciss-board-grid .board-card__contact dt,
.elementor-widget-nciss-board-grid .board-card__contact dd {
  margin: 0;
  padding-inline: 0;
}

/* Page Hero: Layout padding targets .page-hero via widget stack; keep container flush */
.elementor-widget-nciss-page-hero > .elementor-widget-container {
  padding: 0;
}

/* Page Hero: navy overlay + custom image (matches PHP About photo hero) */
.page-hero.has-bg {
  background-image:
    linear-gradient(
      rgba(10, 23, 41, var(--page-hero-overlay-start, 0.72)),
      rgba(10, 23, 41, var(--page-hero-overlay-end, 0.84))
    ),
    var(--page-hero-bg);
  background-size: cover;
  background-position: var(--page-hero-position, center);
}

.page-hero.no-pinstripe::after {
  display: none;
}

.page-hero.has-min-height {
  min-height: var(--page-hero-min-height, 0);
  display: flex;
  align-items: center;
}

.page-hero--align-center .page-hero__inner {
  text-align: center;
}

.page-hero--align-center .page-hero__inner p,
.page-hero--align-center .page-hero__lede {
  margin-left: auto;
  margin-right: auto;
}

.page-hero--align-center .breadcrumbs ol {
  justify-content: center;
}

/* Hero inner: no --container-gutter inset (column/section provides horizontal space) */
.page-hero .page-hero__inner.container {
  width: min(100%, var(--container));
}

.page-hero .page-hero__inner.container--narrow {
  width: min(100%, 720px);
}

.page-hero .page-hero__inner.container--full {
  width: 100%;
  max-width: none;
}

.page-hero__inner--custom {
  width: min(100%, var(--page-hero-container-max, 1140px));
  margin-inline: auto;
}

.events-hub {
  display: flex;
  flex-direction: column;
  gap: var(--space-6, 1.5rem);
}

.news-card h2 a {
  color: inherit;
  text-decoration: none;
}

.news-card h2 a:hover {
  color: var(--color-gold-600, #a8863a);
}

.nciss-schedule .section__header {
  margin-bottom: var(--space-5, 1.25rem);
}

.nciss-faq-accordion .faq-accordion .prose {
  max-width: none;
}

.nciss-timeline .nciss-timeline__text.prose {
  max-width: none;
}

/* Button widget */
.nciss-btn-wrap {
  display: flex;
  flex-wrap: wrap;
}

.nciss-btn-wrap--left { justify-content: flex-start; }
.nciss-btn-wrap--center { justify-content: center; }
.nciss-btn-wrap--right { justify-content: flex-end; }

.nciss-btn-wrap .btn.is-full {
  width: 100%;
}

.nciss-btn-wrap .btn .nciss-btn__icon {
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
}

.nciss-btn-wrap .btn.nciss-btn--custom {
  background: var(--nciss-btn-bg, var(--color-navy-700));
  color: var(--nciss-btn-color, #fff);
  border-color: var(--nciss-btn-border, var(--nciss-btn-bg, var(--color-navy-700)));
}

.nciss-btn-wrap .btn.nciss-btn--custom:hover {
  background: var(--nciss-btn-hover-bg, var(--nciss-btn-bg, var(--color-navy-900)));
  color: var(--nciss-btn-hover-color, var(--nciss-btn-color, #fff));
  border-color: var(--nciss-btn-hover-border, var(--nciss-btn-hover-bg, var(--nciss-btn-border, var(--color-navy-900))));
}
