/* HRus conference catalog. All styles are scoped to the new template.
   Shared navigation, newsletter and footer continue to use the homepage system. */
.page-conferences {
  --conf-nav-height: 108px;
}

.page-conferences [hidden] { display: none !important; }

.conf-hero {
  position: relative;
  min-height: 448px;
  overflow: hidden;
  color: #fff;
  background: #101a22;
}

.conf-hero__visual {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.conf-hero__image {
  position: absolute;
  inset-block: 0;
  left: 0;
  width: 74%;
  height: 100%;
  object-fit: cover;
  object-position: 28% 34%;
  opacity: .9;
}

.conf-hero__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(270deg, #101a22 2%, #101a22 30%, rgba(16,26,34,.96) 42%, rgba(16,26,34,.32) 72%, rgba(16,26,34,.08) 100%),
    linear-gradient(180deg, rgba(7,14,20,.62), transparent 56%, rgba(10,23,27,.36));
}

.conf-hero__glow {
  position: absolute;
  width: 500px;
  height: 500px;
  left: -220px;
  bottom: -320px;
  border-radius: 50%;
  background: rgba(116,183,46,.24);
  box-shadow: 0 0 120px 60px rgba(116,183,46,.1);
  filter: blur(20px);
}

.conf-hero::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 3px;
  z-index: 1;
  background: linear-gradient(90deg, transparent 4%, rgba(116,183,46,.18) 28%, var(--green) 72%, var(--green));
}

.conf-hero__inner {
  position: relative;
  z-index: 1;
  padding-top: 138px;
  padding-bottom: 58px;
}

.conf-breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 30px;
  color: #bdc9cc;
  font-size: 13.5px;
  line-height: 1.6;
}

.conf-breadcrumbs a { color: inherit; }
.conf-breadcrumbs a:hover { color: #fff; }
.conf-breadcrumbs [aria-current] { color: #fff; }
.conf-breadcrumbs i { font-size: 8px; color: #83918f; }

.conf-hero__copy { max-width: 570px; }

.conf-hero h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(42px, 4.3vw, 60px);
  font-weight: 700;
  line-height: 1.15;
}

.conf-hero h1 span { color: #9ad258; }

.conf-hero__copy p {
  max-width: 470px;
  margin-top: 20px;
  color: #d4dede;
  font-size: 18px;
  line-height: 1.8;
}

.conf-hero__line { display: none; }

/* Catalog: retain the v2 layout; use the homepage's visual styles.
   Source: styles.css .conf-card, .conf-card__title, .conf-card__desc,
   .conf-loc--sm, .date-badge, .btn--ghost/.btn--sm and .tab.
   Do not give the filter toolbar or tab group their own visible container. */
.conf-catalog {
  position: relative;
  padding-block: 28px 72px;
  background: var(--bg);
  scroll-margin-top: calc(var(--conf-nav-height) + 12px);
}
.conf-catalog__toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  margin-bottom: 34px;
}
.conf-tabs {
  grid-column: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
/* Background, outline, color and active state are inherited from .tab. */
.conf-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  font-size: 16px;
  line-height: 1.4;
  white-space: nowrap;
}
.conf-year {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 11px;
  color: #444;
  font-size: 14px;
}
.conf-year__select { position: relative; }
.conf-year select {
  appearance: none;
  width: 134px;
  min-height: 44px;
  padding: 7px 15px 7px 34px;
  font: inherit;
  color: #444;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 999px;
  cursor: pointer;
}
.conf-year__select i {
  position: absolute;
  inset-inline-end: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 9px;
  pointer-events: none;
  color: var(--green-700);
}
.conf-list-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 28px;
}
/* Same surface, border, corners and shadow as the homepage supporting cards.
   The .conf-card root class is not added: its homepage scroll-reveal script
   must not hide cards after switching catalog tabs. */
.conf-entry {
  position: relative;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.conf-entry:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
  border-color: #dfe4e9;
}
.conf-entry__link {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.conf-entry__media {
  position: relative;
  overflow: hidden;
  background: var(--bg-soft-2);
  aspect-ratio: 1.74 / 1;
}
.conf-entry__media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
  transition: transform .5s var(--ease);
}
.conf-entry:hover .conf-entry__media > img { transform: scale(1.05); }
/* Badge colors, top-edge attachment and shape use the shared homepage class. */
.conf-date { z-index: 2; font-style: normal; }
.conf-date b { font-family: "Rubik", "Heebo", system-ui, sans-serif; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.conf-date span, .conf-date i { letter-spacing: 0; }
.conf-entry__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 10px;
  min-width: 0;
  padding: 24px 24px 26px;
  background: #fff;
}
/* Typography and colors come directly from .conf-card__title/.conf-card__desc. */
.conf-entry h2 { overflow-wrap: break-word; text-wrap: pretty; }
.conf-entry__location { margin-top: 0; }
.conf-entry__bottom {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 4px;
  margin-top: auto;
}
/* Buttons are the actual .btn--ghost .btn--sm and .btn--green .btn--lg.
   No conference-only pale-green fills or button shadows are added. */
.conf-entry--featured { grid-column: 1 / -1; }
.conf-entry--featured .conf-entry__link {
  display: grid;
  grid-template-columns: 1.02fr 1.08fr;
}
.conf-entry--featured .conf-entry__media {
  grid-column: 2;
  grid-row: 1;
  min-height: 390px;
  height: 100%;
  aspect-ratio: auto;
}
.conf-entry--featured .conf-entry__media > img {
  position: absolute;
  inset: 0;
  object-position: 50% 48%;
}
.conf-entry--featured .conf-entry__body {
  grid-column: 1;
  grid-row: 1;
  justify-content: center;
  align-items: flex-start;
  gap: 14px;
  padding: 40px 44px;
}
.conf-entry--featured h2 {
  max-width: 485px;
  font-size: 28px;
  text-wrap: balance;
}
.conf-entry--featured .conf-entry__description { max-width: 500px; }
.conf-entry--featured .conf-entry__bottom { margin-top: 0; padding-top: 10px; }

.conf-panel {
  outline: none;
  scroll-margin-top: calc(var(--conf-nav-height) + 95px);
}

.conf-panel + .conf-panel { margin-top: 55px; }
.conf-nojs-heading { font-size: 29px; margin-bottom: 25px; }
.page-conferences.is-conf-enhanced .conf-panel { margin-top: 0; }
.page-conferences.is-conf-enhanced .conf-nojs-heading { display: none; }

.conf-empty {
  padding: 65px 24px 75px;
  background: #f7faf3;
  border: 1px solid #e7eede;
  border-radius: 20px;
  text-align: center;
}

.conf-empty__icon {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 60px;
  color: var(--green-700);
  margin-bottom: 18px;
}

.conf-empty__icon svg { width: 46px; height: 46px; stroke-width: 1.35; }
.conf-empty h2 { font-weight: 600; font-size: 27px; color: #2e4126; line-height: 1.45; }
.conf-empty p { max-width: 505px; font-size: 17px; line-height: 1.8; margin: 15px auto 25px; color: #72816b; }
.conf-empty .btn { gap: 13px; font-size: 15px; white-space: normal; line-height: 1.5; }
.conf-empty .btn svg { width: 18px; height: 18px; flex-shrink: 0; }

.conf-load-zone { position: relative; height: 2px; }
.conf-sentinel { height: 1px; }
.conf-sr-only, .conf-more-accessible, .conf-footer-skip {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.conf-more-accessible:focus,
.conf-footer-skip:focus {
  position: relative;
  width: auto;
  height: auto;
  clip-path: none;
  display: inline-flex;
  padding: 10px 17px;
  margin-block: 8px;
  background: #fff;
  color: var(--green-700);
  border: 1px solid var(--green);
  border-radius: 8px;
}

.conf-skip {
  position: fixed;
  top: 9px;
  inset-inline-start: 15px;
  z-index: 10010;
  padding: 12px 20px;
  background: #fff;
  color: var(--green-700);
  border: 2px solid var(--green);
  border-radius: 10px;
  transform: translateY(-200%);
}

.conf-skip:focus { transform: translateY(0); }

.conf-catalog a:focus-visible,
.conf-catalog button:focus-visible,
.conf-catalog select:focus-visible,
.conf-hero a:focus-visible {
  outline: 2px solid var(--green-700);
  outline-offset: 4px;
}

.conf-hero a:focus-visible { outline-color: #b2dc88; }
.conf-entry__link:focus-visible { outline: 3px solid var(--green-700); outline-offset: -4px; border-radius: 20px; }
.page-conferences #newsletter { scroll-margin-top: calc(var(--conf-nav-height) + 14px); }

@media (min-width: 1024px) and (max-width: 1280px) {
  .page-conferences { --conf-nav-height: 80px; }
  .conf-hero__inner { padding-top: 124px; }
  .conf-entry--featured .conf-entry__body { padding-inline: 34px; }
}
@media (max-width: 1023px) {
  .conf-hero { min-height: 420px; }
  .conf-hero__inner { padding-top: 118px; padding-bottom: 44px; }
  .conf-hero h1 { font-size: 52px; }
  .conf-hero__copy p { font-size: 17px; max-width: 390px; }
  .conf-hero__image { width: 84%; object-position: 24% 38%; }
  .conf-list-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .conf-entry--featured .conf-entry__link { grid-template-columns: 1.08fr 1fr; }
  .conf-entry--featured .conf-entry__body { padding: 31px; }
  .conf-entry--featured .conf-entry__media { min-height: 350px; }
}
@media (max-width: 780px) {
  .conf-catalog__toolbar { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .conf-tabs { grid-column: 1; }
  .conf-year { grid-column: 1; justify-self: end; }
}
@media (max-width: 680px) {
  .conf-hero__copy { max-width: 410px; }
  .conf-hero__inner { padding-top: 112px; padding-bottom: 38px; }
  .conf-hero h1 { font-size: 44px; }
  .conf-list-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .conf-entry--featured .conf-entry__link { display: flex; }
  .conf-entry--featured .conf-entry__media { min-height: 0; height: auto; aspect-ratio: 1.8 / 1; }
  .conf-entry--featured .conf-entry__body { padding: 25px; }
  .conf-entry--featured h2 { font-size: 27px; text-wrap: pretty; }
}
@media (max-width: 560px) {
  .page-conferences { --conf-nav-height: 72px; }
  .page-conferences .conf-hero > .container,
  .page-conferences .conf-catalog > .container { padding-inline: 20px; }
  .conf-hero { min-height: 408px; }
  .conf-hero__inner { padding-top: 104px; padding-bottom: 34px; }
  .conf-hero__image { width: 100%; opacity: .48; object-position: 38% 46%; }
  .conf-breadcrumbs { font-size: 12px; margin-bottom: 25px; }
  .conf-hero h1 { font-size: 42px; }
  .conf-hero__copy p { font-size: 16px; line-height: 1.75; margin-top: 15px; }
  .conf-hero__line { display: inline; }
  .conf-catalog { padding-block: 24px 45px; }
  .conf-catalog__toolbar { margin-bottom: 24px; }
  .conf-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .conf-tab { padding-inline: 13px; text-align: center; }
  .conf-year select { width: 124px; }
  .conf-entry__body,
  .conf-entry--featured .conf-entry__body { padding: 23px; }
  .conf-entry--featured h2 { font-size: 25px; }
  .conf-entry--featured .conf-entry__bottom { width: 100%; }
  .conf-entry--featured .btn { width: 100%; justify-content: center; }
  .conf-empty { padding: 41px 23px 47px; }
  .conf-empty h2 { font-size: 23px; }
  .conf-empty p { font-size: 15px; }
}
@media (max-width: 359px) {
  .conf-hero h1 { font-size: 38px; }
  .conf-tab { font-size: 14px; padding-inline: 9px; }
  .conf-entry--featured h2 { font-size: 23px; }
  .conf-entry__body,
  .conf-entry--featured .conf-entry__body { padding: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.page-conferences) { scroll-behavior: auto; }
  .conf-entry,
  .conf-entry__media > img,
  .conf-entry .btn,
  .conf-entry .btn__arrow,
  .conf-tab { transition: none; }
  .conf-entry:hover { transform: none; }
}
@media print {
  .conf-tabs,
  .conf-year,
  .conf-skip,
  .conf-load-zone,
  .page-conferences .newsletter-section,
  .page-conferences .footer,
  .page-conferences .site-search,
  .page-conferences .nav { display: none !important; }
  .conf-hero__visual,
  .conf-hero::after { display: none; }
  .conf-hero { background: none; min-height: 0; }
  .conf-hero h1,
  .conf-hero h1 span,
  .conf-hero__copy p { color: #111; }
  .conf-hero__inner { min-height: 0; padding-block: 15px; }
  .conf-breadcrumbs { display: none; }
  .conf-catalog { padding-block: 20px 0; background: none; }
  .conf-catalog__toolbar { display: none; }
  .conf-entry { break-inside: avoid; box-shadow: none; }
  .conf-list-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
