/* =============================================================
   Conference pages — the only CSS this integration needs.

   Two jobs, both consequences of live data rather than of design:
   the empty state, and collapsing the slots that a shorter
   conference leaves behind. Everything else stays Elementor's.
   ============================================================= */

/* =============================================================
   Type — the site's own faces, on the conference pages.

   The organisation's site is set in "M PLUS Rounded 1c" for its large
   headings and "Open Sans" for everything else. The conference pages
   used to take the platform tokens (Montserrat); here the tokens, the
   Elementor Kit globals and the body are turned to the site's stacks,
   on these pages only (body.nt-conf-page, set in functions.php).

   The rounded face carries no Hebrew glyphs, so a Hebrew heading falls
   to Open Sans — the same fallback the site's own widgets have.
   ============================================================= */
body.nt-conf-page {
  --nt-font-sans: "Open Sans", sans-serif;
  --nt-font-display: "M PLUS Rounded 1c", "Open Sans", sans-serif;
  --nt-font-label: "Open Sans", sans-serif;
  --nt-font-sans-compat: "Open Sans", sans-serif;
  --nt-font-display-compat: "M PLUS Rounded 1c", "Open Sans", sans-serif;
  font-family: var(--nt-font-sans);
}
/* The Kit's globals, which every widget without its own family reads. */
body.nt-conf-page[class*="elementor-kit-"],
body.rtl.nt-conf-page[class*="elementor-kit-"],
[dir="rtl"] body.nt-conf-page[class*="elementor-kit-"] {
  --e-global-typography-primary-font-family: "M PLUS Rounded 1c", "Open Sans", sans-serif;
  --e-global-typography-secondary-font-family: "Open Sans", sans-serif;
  --e-global-typography-text-font-family: "Open Sans", sans-serif;
  --e-global-typography-accent-font-family: "Open Sans", sans-serif;
}
/* Form controls do not inherit a family by default; here they do. */
body.nt-conf-page button,
body.nt-conf-page input,
body.nt-conf-page select,
body.nt-conf-page textarea {
  font-family: inherit;
}
/* The site's large headings: the rounded face. Smaller ones and
   everything in the server-rendered blocks: Open Sans. */
body.nt-conf-page .elementor-heading-title,
body.nt-conf-page h1,
body.nt-conf-page h2 {
  font-family: var(--nt-font-display);
}
body.nt-conf-page h3,
body.nt-conf-page h4,
body.nt-conf-page h5,
body.nt-conf-page h6,
body.nt-conf-page p,
body.nt-conf-page li,
body.nt-conf-page a.elementor-button,
body.nt-conf-page .elementor-button {
  font-family: var(--nt-font-sans);
}
body.nt-conf-page h3.elementor-heading-title,
body.nt-conf-page h4.elementor-heading-title {
  font-family: var(--nt-font-sans);
}


/* --- no conference published --------------------------------- */

.nt-conf-empty {
  padding-block: clamp(4rem, 12vw, 8rem);
  padding-inline: 1.25rem;
  background: var(--nt-palette-grey-50, #f8f8f8);
  text-align: center;
}

.nt-conf-empty__inner {
  max-width: 34rem;
  margin-inline: auto;
}

.nt-conf-empty__title {
  margin: 0 0 0.75rem;
  color: var(--nt-palette-green-600, #166633);
  font-size: clamp(1.5rem, 4vw, 2rem);
  line-height: 1.25;
}

.nt-conf-empty__body {
  margin: 0;
  color: var(--nt-palette-grey-700, #54595f);
  font-size: 1.0625rem;
  line-height: 1.7;
}

/* --- a conference being prepared for the team ------------------

   The same quiet block, with a way in for the team: one sign-in
   button, or — for a guest who is already signed in — a plain note
   and the way to their own area. */

.nt-conf-empty__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding: 0.25rem 0.85rem;
  border: 1px solid var(--nt-conf-line);
  border-radius: 999px;
  background: #fff;
  color: var(--nt-palette-orange-800, #8a4f00);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.nt-conf-empty__eyebrow::before {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: currentColor;
}

.nt-conf-empty__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  min-width: min(100%, 16rem);
  margin-top: 1.75rem;
  padding: 0.75rem 1.75rem;
  border-radius: 0.75rem;
  background: var(--nt-conf-green);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.nt-conf-empty__action:hover,
.nt-conf-empty__action:focus-visible {
  background: var(--nt-conf-green-dark);
  color: #fff;
}

.nt-conf-empty__action:focus-visible {
  outline: 3px solid var(--nt-conf-orange);
  outline-offset: 3px;
}

.nt-conf-empty__action--quiet {
  border: 1px solid var(--nt-conf-green);
  background: #fff;
  color: var(--nt-conf-green-dark);
}

.nt-conf-empty__action--quiet:hover,
.nt-conf-empty__action--quiet:focus-visible {
  background: var(--nt-conf-cream);
  color: var(--nt-conf-green-dark);
}

.nt-conf-empty__hint {
  margin: 0.75rem 0 0;
  color: var(--nt-palette-grey-600, #69727d);
  font-size: 0.875rem;
}

.nt-conf-empty__note {
  margin: 1.75rem 0 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--nt-palette-grey-200, #e6e6e6);
  border-radius: 0.75rem;
  background: #fff;
  color: var(--nt-palette-grey-700, #54595f);
  line-height: 1.6;
}

.nt-conf-empty__note + .nt-conf-empty__action {
  margin-top: 1rem;
}

/* The team's reminder: a small pill at the foot of the screen. */

.nt-conf-team-pill {
  position: fixed;
  inset-inline: 0;
  bottom: 1rem;
  z-index: 9990;
  display: flex;
  justify-content: center;
  padding-inline: 1rem;
  pointer-events: none;
}

.nt-conf-team-pill__inner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.25rem 0.75rem;
  max-width: 100%;
  margin: 0;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: var(--nt-conf-green-dark);
  box-shadow: 0 12px 30px -12px rgba(0, 0, 0, 0.45);
  color: #fff;
  font-size: 0.8125rem;
  pointer-events: auto;
}

.nt-conf-team-pill__label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
}

.nt-conf-team-pill__label::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--nt-conf-orange);
}

.nt-conf-team-pill__link {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nt-conf-team-pill__link:hover,
.nt-conf-team-pill__link:focus-visible {
  color: var(--nt-conf-cream);
}

@media (prefers-reduced-motion: reduce) {
  .nt-conf-empty__action {
    transition: none;
  }
}

@media print {
  .nt-conf-team-pill {
    display: none;
  }
}

/* --- slots a shorter conference leaves empty ------------------

   The design has four speaker cards and four programme rows. The
   conference that fills them has however many it has.

   Measured, not assumed: Elementor renders NO element at all for a
   heading or a text widget whose dynamic value came back empty. So
   there is nothing empty to hide — what is left behind is the
   container that held them, and the static decoration inside it.
   These three rules remove exactly that, and nothing else.          */

/* 1. A card with no widgets left in it. Height already collapses;
      without this it still holds its quarter of the row's width,
      and one speaker ends up wedged against the edge. */
.nt-conf-page .e-con:not(:has(.elementor-widget)) {
  display: none;
}

/* 2. A programme row whose session is missing. Its marker column
      survives on its own — a static dot with nothing beside it — so
      the row is identified by that lone icon plus the absence of any
      heading. The hero's date/location row has an icon AND text in
      each item, and the feature cards have three siblings beside the
      icon, so `:only-child` keeps this rule off both of them. */
.nt-conf-page .e-con:has(> .e-con > .elementor-widget-icon:only-child):not(:has(.elementor-heading-title)) {
  display: none;
}

/* 3. A photo the conference does not have renders no <img>. */
.nt-conf-page .elementor-widget-image:not(:has(img)) {
  display: none;
}

/* 4. A button whose link tag resolved to nothing (a venue with no
      map URL, say) is rendered by Elementor without an href. A
      button that goes nowhere is not shown. */
.nt-conf-page .elementor-widget-button a.elementor-button:not([href]) {
  display: none;
}

/* --- and what is left over, centred --------------------------

   A row built for four and filled with one should present that one
   in the middle rather than pinned to the start edge. With a full
   row this shifts the group by a couple of dozen pixels and nothing
   else, which is why it is applied unconditionally rather than
   guessed at.                                                       */
.nt-conf-page .e-con:has(> .e-con > .elementor-widget-image) {
  justify-content: center;
}

/* =============================================================
   The four server-rendered blocks: conference nav, speaker roster,
   programme, venue facts. Layout only, on the token layer; the
   colours are the kit's and the type comes from the theme.
   ============================================================= */

.nt-conf-nav,
.nt-conf-speakers,
.nt-conf-program,
.nt-conf-facts,
.nt-conf-empty,
.nt-conf-team-pill {
  --nt-conf-green: var(--nt-palette-green-600, #166633);
  --nt-conf-green-dark: var(--nt-palette-green-800, #0f4a24);
  --nt-conf-orange: var(--nt-palette-orange-500, #f99b21);
  --nt-conf-ink: var(--nt-palette-grey-700, #54595f);
  --nt-conf-line: var(--nt-palette-grey-200, #e2e6e3);
  --nt-conf-cream: var(--nt-palette-grey-50, #f8f8f8);
}

/* --- conference navigation ----------------------------------- */

.nt-conf-nav {
  position: relative;
  z-index: 60; /* its menus open over the section below */
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  padding: 0.75rem 0;
  border-block: 1px solid var(--nt-conf-line);
}

.nt-conf-nav__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nt-conf-nav__link {
  display: inline-block;
  padding: 0.5rem 0.9rem;
  border-radius: 999px;
  color: var(--nt-conf-green);
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

.nt-conf-nav__link:hover,
.nt-conf-nav__link:focus-visible {
  background: var(--nt-conf-cream);
  color: var(--nt-conf-green-dark);
}

.nt-conf-nav__link.is-current {
  background: var(--nt-conf-green);
  color: #fff;
}

.nt-conf-nav__link--register {
  background: var(--nt-conf-orange);
  color: #fff;
}

.nt-conf-nav__link--register:hover,
.nt-conf-nav__link--register:focus-visible {
  background: var(--nt-palette-orange-700, #b86a00);
  color: #fff;
}

.nt-conf-nav__link--enter {
  border: 1px solid var(--nt-conf-green);
}

.nt-conf-nav__link--networking {
  color: var(--nt-conf-green-dark);
}

/* --- the doorway, and the chip that replaces it ---------------

   Printed: sign in / register. Once the browser has asked the platform
   and the visitor turns out to be signed in, the script swaps the two
   links for one chip: their picture or initials, "signed in · name",
   a way out. Until then, and for everyone else, nothing changes.   */

.nt-conf-nav__doorway {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nt-conf-nav__item--doorway {
  display: flex;
}

.nt-conf-nav__me {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.3rem 0.9rem 0.3rem 0.35rem;
  border: 1px solid var(--nt-conf-green);
  border-radius: 999px;
  background: #fff;
  color: var(--nt-conf-green-dark);
  text-decoration: none;
  transition: background-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

[dir="rtl"] .nt-conf-nav__me {
  padding: 0.3rem 0.35rem 0.3rem 0.9rem;
}

.nt-conf-nav__me:hover,
.nt-conf-nav__me:focus-visible {
  background: var(--nt-conf-cream);
  box-shadow: 0 6px 16px -8px rgba(22, 102, 51, 0.5);
  transform: translateY(-1px);
}

.nt-conf-nav__avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--nt-conf-green);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  overflow: hidden;
}

.nt-conf-nav__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nt-conf-nav__me-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  text-align: start;
}

.nt-conf-nav__me-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  color: var(--nt-conf-ink);
  font-size: 0.7rem;
  font-weight: 500;
}

.nt-conf-nav__me-status::before {
  content: "";
  width: 0.5em;
  height: 0.5em;
  border-radius: 50%;
  background: var(--nt-palette-lime-500, #83b339);
  box-shadow: 0 0 0 3px rgba(131, 179, 57, 0.25);
}

.nt-conf-nav__me-name {
  font-size: 0.9rem;
  font-weight: 700;
  white-space: nowrap;
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nt-conf-nav__signout {
  padding: 0.4rem 0.6rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--nt-conf-ink);
  font: inherit;
  font-size: 0.8rem;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}

.nt-conf-nav__signout:hover,
.nt-conf-nav__signout:focus-visible {
  background: var(--nt-conf-cream);
  color: var(--nt-conf-green-dark);
}

.nt-conf-nav__signout[disabled] {
  opacity: 0.5;
  cursor: wait;
}

/* --- the bell ------------------------------------------------- */

.nt-conf-nav__item--bell {
  position: relative;
}

.nt-conf-nav__bell {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--nt-conf-green);
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}

.nt-conf-nav__bell svg {
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nt-conf-nav__bell:hover,
.nt-conf-nav__bell:focus-visible,
.nt-conf-nav__bell[aria-expanded="true"] {
  background: var(--nt-conf-cream);
  color: var(--nt-conf-green-dark);
}

.nt-conf-nav__bell.has-news svg {
  animation: nt-bell-ring 1.2s ease-in-out 1;
  transform-origin: 50% 15%;
}

@keyframes nt-bell-ring {
  0%, 100% { transform: rotate(0); }
  15% { transform: rotate(14deg); }
  30% { transform: rotate(-12deg); }
  45% { transform: rotate(8deg); }
  60% { transform: rotate(-5deg); }
  75% { transform: rotate(2deg); }
}

.nt-conf-nav__bell-badge {
  position: absolute;
  top: 0.3rem;
  inset-inline-end: 0.3rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--nt-conf-orange);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1.1rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.nt-conf-nav__bell-panel {
  position: absolute;
  top: calc(100% + 0.5rem);
  inset-inline-end: 0;
  z-index: 40;
  width: min(22rem, calc(100vw - 2rem));
  padding: 0.5rem;
  background: #fff;
  border: 1px solid var(--nt-conf-line);
  border-radius: 1rem;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.14);
  text-align: start;
}

.nt-conf-nav__bell-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.4rem 0.75rem 0.5rem;
  color: var(--nt-conf-green-dark);
  font-size: 0.9rem;
}

.nt-conf-nav__bell-mark {
  padding: 0.25rem 0.5rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--nt-conf-ink);
  font: inherit;
  font-size: 0.72rem;
  cursor: pointer;
}

.nt-conf-nav__bell-mark:hover {
  background: var(--nt-conf-cream);
  color: var(--nt-conf-green-dark);
}

.nt-conf-nav__bell-list {
  max-height: 22rem;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  list-style: none;
}

.nt-conf-nav__bell-row {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.7rem;
  color: var(--nt-palette-grey-900, #333);
  text-decoration: none;
  transition: background-color 0.15s;
}

.nt-conf-nav__bell-row:hover,
.nt-conf-nav__bell-row:focus-visible {
  background: var(--nt-conf-cream);
}

.nt-conf-nav__bell-row--live strong {
  color: var(--nt-conf-green-dark);
  font-size: 0.85rem;
}

.nt-conf-nav__bell-dot {
  flex: none;
  width: 0.5rem;
  height: 0.5rem;
  margin-top: 0.45rem;
  border-radius: 50%;
  background: var(--nt-conf-line);
}

.nt-conf-nav__bell-row.is-unread .nt-conf-nav__bell-dot {
  background: var(--nt-conf-orange);
  box-shadow: 0 0 0 3px rgba(249, 155, 33, 0.2);
}

.nt-conf-nav__bell-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  font-size: 0.85rem;
  line-height: 1.35;
}

.nt-conf-nav__bell-text strong {
  font-weight: 600;
}

.nt-conf-nav__bell-row.is-unread .nt-conf-nav__bell-text strong {
  color: var(--nt-conf-green-dark);
}

.nt-conf-nav__bell-body {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--nt-conf-ink);
  font-size: 0.8rem;
}

.nt-conf-nav__bell-time {
  color: var(--nt-palette-grey-600, #5b6660);
  font-size: 0.7rem;
}

.nt-conf-nav__bell-empty {
  padding: 1.25rem 0.75rem;
  color: var(--nt-conf-ink);
  font-size: 0.85rem;
  text-align: center;
}

.nt-conf-nav__bell-all {
  display: block;
  margin-top: 0.25rem;
  padding: 0.6rem;
  border-top: 1px solid var(--nt-conf-line);
  color: var(--nt-conf-green);
  font-size: 0.82rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
}

.nt-conf-nav__bell-all:hover {
  color: var(--nt-conf-green-dark);
}

@media (max-width: 767px) {
  .nt-conf-nav__item--bell {
    position: static;
  }
  .nt-conf-nav__bell-panel {
    inset-inline: 1rem;
    width: auto;
  }
}

/* --- the production's spotlight, as the platform shows it ------

   The ticker line sits above everything, the site header included;
   the header is pushed down by the line's height, which the script
   publishes as --nt-spot-h so nothing here needs to know it.       */

.nt-spot-banner {
  position: fixed;
  top: 0;
  inset-inline: 0;
  z-index: 100001;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.6rem 3rem 0.6rem 1rem;
  background: var(--nt-palette-yellow-400, #f3c333);
  color: var(--nt-palette-grey-900, #333);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  font-size: 0.9rem;
  text-align: center;
}

.admin-bar .nt-spot-banner {
  top: 32px;
}

.nt-spot-banner__text {
  margin: 0;
}

.nt-spot-banner__close {
  position: absolute;
  inset-inline-end: 0.75rem;
  top: 50%;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.08);
  color: inherit;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
}

.nt-spot-banner__close:hover {
  background: rgba(0, 0, 0, 0.16);
}

html.nt-has-spot body {
  padding-top: var(--nt-spot-h, 0px);
}

html.nt-has-spot .elementor-location-header .elementor-sticky--active,
html.nt-has-spot .elementor-sticky--active {
  top: var(--nt-spot-h, 0px) !important;
}

html.nt-has-spot .nt-progress {
  top: var(--nt-spot-h, 0px);
}

@media (max-width: 782px) {
  .admin-bar .nt-spot-banner {
    top: 46px;
  }
}

.nt-spot-popup {
  position: fixed;
  inset: 0;
  z-index: 100002;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: rgba(18, 36, 26, 0.7);
  backdrop-filter: blur(4px);
}

.nt-spot-popup__card {
  width: 100%;
  max-width: 28rem;
  padding: 1.75rem;
  border-radius: 1.5rem;
  background: #fff;
  color: var(--nt-palette-grey-900, #333);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.4);
  text-align: center;
  animation: nt-chip-in 280ms ease-out both;
}

.nt-spot-popup__mark {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  margin: 0 auto;
  border-radius: 50%;
  background: rgba(249, 155, 33, 0.15);
  color: var(--nt-palette-orange-800, #8f5100);
  font-size: 1.25rem;
  font-weight: 700;
}

.nt-spot-popup__title {
  margin: 1rem 0 0;
  color: var(--nt-conf-green-dark, #0f4a24);
  font-size: 1.5rem;
  line-height: 1.2;
}

.nt-spot-popup__body {
  margin: 0.75rem 0 0;
  color: var(--nt-conf-ink, #54595f);
  font-size: 0.95rem;
  line-height: 1.6;
  white-space: pre-wrap;
}

.nt-spot-popup__ok {
  display: block;
  width: 100%;
  min-height: 3rem;
  margin-top: 1.5rem;
  border: 0;
  border-radius: 0.8rem;
  background: var(--nt-conf-green, #166633);
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.nt-spot-popup__ok:hover {
  background: var(--nt-conf-green-dark, #0f4a24);
}

/* The swap itself: the chip fades in where the buttons were. */
html.nt-motion .nt-conf-nav__doorway--me {
  /* `backwards`, not `both`: a lingering transform would trap the
     bell's panel in its own stacking context, under the next section. */
  animation: nt-chip-in 360ms var(--nt-ease-entrance, ease-out) backwards;
}

@keyframes nt-chip-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: none; }
}

/* --- the personal area, folded ------------------------------- */

.nt-conf-nav__area {
  position: relative;
}

.nt-conf-nav__link--area {
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.nt-conf-nav__link--area::-webkit-details-marker {
  display: none;
}

.nt-conf-nav__link--area::after {
  content: "";
  display: inline-block;
  width: 0.4em;
  height: 0.4em;
  margin-inline-start: 0.45em;
  border-inline-end: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.15em) rotate(45deg);
  transition: transform 0.2s;
}

.nt-conf-nav__area[open] > .nt-conf-nav__link--area {
  background: var(--nt-conf-cream);
  color: var(--nt-conf-green-dark);
}

.nt-conf-nav__area[open] > .nt-conf-nav__link--area::after {
  transform: translateY(0.1em) rotate(225deg);
}

.nt-conf-nav__menu {
  position: absolute;
  top: calc(100% + 0.4rem);
  inset-inline-end: 0;
  z-index: 30;
  min-width: 12rem;
  margin: 0;
  padding: 0.4rem;
  list-style: none;
  background: #fff;
  border: 1px solid var(--nt-conf-line);
  border-radius: 0.9rem;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.nt-conf-nav__menu .nt-conf-nav__item {
  display: block;
}

.nt-conf-nav__menu .nt-conf-nav__link {
  display: block;
  border-radius: 0.6rem;
  font-weight: 500;
}

/* The Studio, for the Netaim team: set apart from the personal items. */
.nt-conf-nav__menu .nt-conf-nav__item--studio {
  margin-top: 0.3rem;
  padding-top: 0.3rem;
  border-top: 1px solid var(--nt-conf-line);
}
.nt-conf-nav__menu .nt-conf-nav__link--studio {
  font-weight: 700;
}

@media (max-width: 767px) {
  .nt-conf-nav__item--area {
    flex-basis: 100%;
    text-align: center;
  }
  .nt-conf-nav__area {
    position: static;
  }
  .nt-conf-nav__menu {
    position: static;
    min-width: 0;
    margin-top: 0.4rem;
    box-shadow: none;
    text-align: center;
  }
}

@media (max-width: 767px) {
  .nt-conf-nav {
    justify-content: center;
  }
  .nt-conf-nav__list {
    justify-content: center;
  }
}

/* --- speaker roster ------------------------------------------ */

.nt-conf-speakers {
  display: grid;
  grid-template-columns: repeat(var(--nt-conf-columns, 4), minmax(0, 1fr));
  gap: 2.5rem 1.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 1024px) {
  .nt-conf-speakers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .nt-conf-speakers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 0.75rem; }
}

.nt-conf-speaker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
}

.nt-conf-speaker__portrait {
  width: 72%;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  background: var(--nt-conf-cream);
}

.nt-conf-speaker__portrait--empty {
  background: linear-gradient(135deg, #edf3ee, #dce9e0);
}

.nt-conf-speaker__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nt-conf-speaker__name {
  margin: 0.25rem 0 0;
  color: var(--nt-conf-green);
  font-size: 1.125rem;
  line-height: 1.3;
}

.nt-conf-speaker__role,
.nt-conf-speaker__bio {
  margin: 0;
  color: var(--nt-conf-ink);
  font-size: 0.9rem;
  line-height: 1.5;
}

.nt-conf-speaker__bio {
  font-size: 0.85rem;
  max-width: 28ch;
}

.nt-conf-speakers__empty,
.nt-conf-program__empty {
  margin: 0;
  color: var(--nt-conf-ink);
  text-align: center;
}

/* --- programme ----------------------------------------------- */

.nt-conf-program {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.nt-conf-day__heading {
  margin: 0 0 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 3px solid var(--nt-conf-orange);
  color: var(--nt-conf-green);
  font-size: 1.5rem;
  line-height: 1.3;
  display: inline-block;
}

.nt-conf-day__sessions {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
}

.nt-conf-session {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 1.25rem;
  padding: 1.25rem 0;
  border-top: 1px solid var(--nt-conf-line);
}

.nt-conf-session:first-child {
  border-top: 0;
}

.nt-conf-session--break {
  background: var(--nt-conf-cream);
  padding-inline: 1rem;
  border-radius: 12px;
  border-top: 0;
  margin-block: 0.25rem;
}

.nt-conf-session__time {
  color: var(--nt-conf-green);
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.4;
  white-space: nowrap;
}

.nt-conf-session__end {
  color: var(--nt-conf-ink);
  font-weight: 400;
  font-size: 0.9rem;
}

.nt-conf-session__body {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.nt-conf-session__type {
  color: var(--nt-conf-orange);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.nt-conf-session__title {
  margin: 0;
  color: var(--nt-conf-green-dark);
  font-size: 1.15rem;
  line-height: 1.35;
}

.nt-conf-session--break .nt-conf-session__title {
  color: var(--nt-conf-ink);
  font-weight: 500;
}

.nt-conf-session__subtitle,
.nt-conf-session__description,
.nt-conf-session__speakers,
.nt-conf-session__place {
  margin: 0;
  color: var(--nt-conf-ink);
  font-size: 0.95rem;
  line-height: 1.55;
}

.nt-conf-session__speakers {
  color: var(--nt-conf-green);
  font-weight: 600;
}

.nt-conf-session__place {
  font-size: 0.85rem;
}

@media (max-width: 600px) {
  .nt-conf-session {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
}

/* --- venue facts --------------------------------------------- */

.nt-conf-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nt-conf-fact {
  padding: 1.25rem 1.5rem;
  border-radius: 16px;
  background: var(--nt-conf-cream);
}

.nt-conf-fact__label {
  margin: 0 0 0.35rem;
  color: var(--nt-conf-green);
  font-size: 1rem;
}

.nt-conf-fact__text {
  margin: 0;
  color: var(--nt-conf-ink);
  font-size: 0.95rem;
  line-height: 1.55;
}

/* =============================================================
   Partners — the editorial close of the conference page.

   A cream, paper-like ground framed by two botanical branches and a
   faint landscape (cut-outs of the section's design, positioned
   absolutely and never over the content). Centered type, then one row
   of compact logo cards that turns (nt-partners.js): four on a desktop,
   three on a tablet, two by two on a phone. A supporting section, not
   a hero: tight rhythm, small cards, the logos as the content.
   Everything is scoped under .netaim-partners-section.
   ============================================================= */

.netaim-partners-section {
  --nt-partners-green: var(--nt-palette-green-600, #166633);
  --nt-partners-green-deep: var(--nt-palette-green-800, #0f4a24);
  --nt-partners-orange: var(--nt-palette-orange-500, #f99b21);
  --nt-partners-gold: var(--nt-palette-orange-700, #b86a00);
  --nt-partners-ink: var(--nt-palette-grey-700, #54595f);
  --nt-partners-paper: #faf9f4;
  --nt-partners-paper-deep: #f5f4ec;
  --nt-partners-line: rgba(50, 70, 50, 0.07);
  --nt-partners-shadow: 0 6px 20px rgba(22, 40, 26, 0.05), 0 1px 2px rgba(22, 40, 26, 0.04);
  --nt-partners-shadow-lift: 0 12px 28px rgba(22, 40, 26, 0.09), 0 2px 4px rgba(22, 40, 26, 0.05);
  --nt-partners-radius: 16px;
  --nt-partners-card: 112px;
  --nt-partners-stage: 900px;
  --nt-gap: 18px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(3rem, 5.5vw, 5rem) clamp(2.75rem, 5vw, 4.25rem);
  background: linear-gradient(180deg, #f9f8f3 0%, var(--nt-partners-paper) 50%, var(--nt-partners-paper-deep) 100%);
  color: var(--nt-partners-ink);
}

/* ---- the botanical frame ---- */
.netaim-partners-section .nt-partners__art {
  position: absolute;
  z-index: 0;
  display: block;
  pointer-events: none;
  user-select: none;
}
/* The sky, pushed up so only the tips of the branches frame the head;
   it fades out well before the cards. */
.netaim-partners-section .nt-partners__art--sky {
  top: clamp(-160px, -11vw, -60px);
  left: 0;
  width: 100%;
  height: auto;
  opacity: 0.85;
  -webkit-mask-image: linear-gradient(180deg, #000 45%, transparent 78%);
          mask-image: linear-gradient(180deg, #000 45%, transparent 78%);
}
/* The ground: a low strip of hills, the tops of them, nothing more. */
.netaim-partners-section .nt-partners__art--ground {
  bottom: 0;
  left: 0;
  width: 100%;
  height: clamp(36px, 4.5vw, 64px);
  object-fit: cover;
  object-position: center top;
  opacity: 0.8;
}

/* ---- the content, above the frame ---- */
.netaim-partners-section .nt-partners__inner {
  position: relative;
  z-index: 1;
  width: min(100% - 2.5rem, 1240px);
  margin-inline: auto;
}

.netaim-partners-section .nt-partners__head {
  margin: 0 auto clamp(1.5rem, 2.2vw, 1.875rem);
  text-align: center;
}

.netaim-partners-section .nt-partners__eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin: 0 0 0.625rem;
  color: var(--nt-partners-orange);
  font-family: var(--nt-font-label, inherit);
  font-size: clamp(1rem, 1.3vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 0.03em;
}
.netaim-partners-section .nt-partners__eyebrow::before,
.netaim-partners-section .nt-partners__eyebrow::after {
  content: "";
  width: clamp(36px, 5vw, 72px);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--nt-partners-orange));
  opacity: 0.8;
}
.netaim-partners-section .nt-partners__eyebrow::after {
  background: linear-gradient(90deg, var(--nt-partners-orange), transparent);
}

.netaim-partners-section .nt-partners__title {
  margin: 0;
  color: var(--nt-partners-green);
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(2.125rem, 3.7vw, 3.375rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.01em;
}

.netaim-partners-section .nt-partners__lede {
  max-width: 40rem;
  margin: 0.875rem auto 0;
  color: var(--nt-partners-ink);
  font-size: clamp(0.9375rem, 1.25vw, 1.125rem);
  line-height: 1.5;
}

.netaim-partners-section .nt-partners__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  height: 24px;
  margin-top: 1.125rem;
  color: var(--nt-partners-green);
}
.netaim-partners-section .nt-partners__divider::before,
.netaim-partners-section .nt-partners__divider::after {
  content: "";
  width: clamp(40px, 6vw, 72px);
  height: 1px;
  background: currentColor;
  opacity: 0.45;
}
.netaim-partners-section .nt-partners__leaf {
  display: inline-flex;
  color: var(--nt-partners-green);
}

/* ---- the row (as printed: a grid that wraps; centered when short) ---- */
.netaim-partners-section .nt-partners__stage {
  position: relative;
  max-width: var(--nt-partners-stage);
  margin-inline: auto;
}
.netaim-partners-section .nt-partners__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 210px));
  justify-content: center;
  gap: var(--nt-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.netaim-partners-section .nt-partners__item {
  margin: 0;
  padding: 0;
  min-width: 0;
  list-style: none;
}

.netaim-partners-section .nt-partners__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-sizing: border-box;
  height: var(--nt-partners-card);
  padding: 1rem 1.125rem;
  border: 1px solid var(--nt-partners-line);
  border-radius: var(--nt-partners-radius);
  background: #fffefb;
  box-shadow: var(--nt-partners-shadow);
  text-decoration: none;
  color: inherit;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.netaim-partners-section a.nt-partners__card:hover,
.netaim-partners-section a.nt-partners__card:focus-visible {
  transform: translateY(-3px);
  box-shadow: var(--nt-partners-shadow-lift);
}
.netaim-partners-section a.nt-partners__card:focus-visible {
  outline: 3px solid var(--nt-partners-orange);
  outline-offset: 3px;
}
.netaim-partners-section .nt-partners__card__mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 0;
  flex: 1 1 auto;
}
.netaim-partners-section .nt-partners__card__logo {
  display: block;
  width: auto;
  height: auto;
  max-width: min(120px, 84%);
  max-height: 48px;
  object-fit: contain;
  transition: transform 220ms ease;
}
.netaim-partners-section a.nt-partners__card:hover .nt-partners__card__logo {
  transform: scale(1.02);
}
/* A partner without a logo is named in type, in the brand's green. */
.netaim-partners-section .nt-partners__card__name {
  color: var(--nt-partners-green);
  font-family: var(--nt-font-sans, inherit);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}
/* One small line under the logo, when the Studio wrote one. */
.netaim-partners-section .nt-partners__card__caption {
  flex: none;
  max-width: 100%;
  padding-top: 0.375rem;
  border-top: 1px solid rgba(184, 106, 0, 0.35);
  color: var(--nt-partners-ink);
  font-size: 0.75rem;
  line-height: 1.3;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* The row that turns: shared styles under .nt-turn, below. */
.netaim-partners-section .nt-turn-stage.is-turning > .nt-turn-list {
  display: none;
}
.netaim-partners-section .nt-turn__track > li {
  transition: opacity 600ms ease;
}

/* ---- widths ---- */
@media (max-width: 1100px) {
  .netaim-partners-section {
    --nt-partners-card: 104px;
    --nt-partners-stage: 620px;
    --nt-gap: 14px;
  }
  .netaim-partners-section .nt-partners__grid {
    grid-template-columns: repeat(auto-fit, minmax(140px, 196px));
  }
}
@media (max-width: 640px) {
  .netaim-partners-section {
    --nt-partners-card: 84px;
    --nt-partners-stage: 320px;
    --nt-partners-radius: 14px;
    --nt-gap: 10px;
    padding-block: 2.75rem 2.75rem;
  }
  .netaim-partners-section .nt-partners__head {
    margin-bottom: 1.375rem;
  }
  .netaim-partners-section .nt-partners__eyebrow {
    margin-bottom: 0.5rem;
  }
  .netaim-partners-section .nt-partners__lede {
    margin-top: 0.75rem;
  }
  .netaim-partners-section .nt-partners__divider {
    margin-top: 1rem;
  }
  /* Two across, logos only; a single partner sits in the middle. */
  .netaim-partners-section .nt-partners__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .netaim-partners-section .nt-partners__stage[data-count="1"] .nt-partners__grid {
    grid-template-columns: minmax(0, 155px);
  }

  .netaim-partners-section .nt-partners__card {
    padding: 0.75rem 0.75rem;
  }
  .netaim-partners-section .nt-partners__card__logo {
    max-width: min(96px, 86%);
    max-height: 40px;
  }
  .netaim-partners-section .nt-partners__card__name {
    font-size: 0.9375rem;
  }
  .netaim-partners-section .nt-partners__card__caption {
    display: none;
  }
  /* The drawing shrinks with the screen: the branches become a small
     accent in the top corners, above the type. */
  .netaim-partners-section .nt-partners__art--sky {
    top: -12px;
    opacity: 0.8;
  }
  .netaim-partners-section .nt-partners__art--ground {
    height: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .netaim-partners-section .nt-partners__card,
  .netaim-partners-section .nt-partners__card__logo {
    transition: none;
  }
  .netaim-partners-section a.nt-partners__card:hover {
    transform: none;
  }
}

/* =============================================================
   Speakers — "הכירו את הדוברים" on the conference page.

   The same ground as the partners (cream, the branches, the hills),
   turned around so the two sections rhyme without repeating; the
   cards are photographic: a portrait, the name, the role, a short
   gold rule. One row that turns (nt-turn.js): four on a desktop, three
   on a tablet, two by two on a phone. Scoped under
   .netaim-speakers-section.
   ============================================================= */

.netaim-speakers-section {
  --nt-speakers-green: var(--nt-palette-green-600, #166633);
  --nt-speakers-green-deep: var(--nt-palette-green-800, #0f4a24);
  --nt-speakers-orange: var(--nt-palette-orange-500, #f99b21);
  --nt-speakers-gold: var(--nt-palette-orange-700, #b86a00);
  --nt-speakers-ink: var(--nt-palette-grey-700, #54595f);
  --nt-speakers-paper: #faf9f4;
  --nt-speakers-paper-deep: #f5f4ec;
  --nt-speakers-sage: #e6ece2;
  --nt-speakers-line: rgba(50, 70, 50, 0.07);
  --nt-speakers-shadow: 0 6px 20px rgba(22, 40, 26, 0.05), 0 1px 2px rgba(22, 40, 26, 0.04);
  --nt-speakers-shadow-lift: 0 12px 28px rgba(22, 40, 26, 0.09), 0 2px 4px rgba(22, 40, 26, 0.05);
  --nt-speakers-radius: 16px;
  --nt-speakers-stage: 720px;
  --nt-speakers-portrait: 1 / 1;
  --nt-gap: 16px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(2.25rem, 3.5vw, 2.75rem) clamp(2rem, 3vw, 2.5rem);
  background: linear-gradient(180deg, #f9f8f3 0%, var(--nt-speakers-paper) 50%, var(--nt-speakers-paper-deep) 100%);
  color: var(--nt-speakers-ink);
}

/* ---- the botanical frame, mirrored from the partners' ---- */
.netaim-speakers-section .nt-speakers__art {
  position: absolute;
  z-index: 0;
  display: block;
  pointer-events: none;
  user-select: none;
}
.netaim-speakers-section .nt-speakers__art--sky {
  top: clamp(-170px, -12vw, -70px);
  left: 0;
  width: 100%;
  height: auto;
  opacity: 0.75;
  transform: scaleX(-1);
  -webkit-mask-image: linear-gradient(180deg, #000 40%, transparent 72%);
          mask-image: linear-gradient(180deg, #000 40%, transparent 72%);
}
.netaim-speakers-section .nt-speakers__art--ground {
  bottom: 0;
  left: 0;
  width: 100%;
  height: clamp(36px, 4.5vw, 64px);
  object-fit: cover;
  object-position: center top;
  opacity: 0.75;
  transform: scaleX(-1);
}

.netaim-speakers-section .nt-speakers__inner {
  position: relative;
  z-index: 1;
  width: min(100% - 2.5rem, 1240px);
  margin-inline: auto;
}

/* ---- the head ---- */
.netaim-speakers-section .nt-speakers__head {
  margin: 0 auto clamp(1.125rem, 1.6vw, 1.375rem);
  text-align: center;
}
.netaim-speakers-section .nt-speakers__title {
  margin: 0;
  color: var(--nt-speakers-green);
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(1.875rem, 3vw, 2.625rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.netaim-speakers-section .nt-speakers__lede {
  max-width: 40rem;
  margin: 0.625rem auto 0;
  color: var(--nt-speakers-ink);
  font-size: clamp(0.875rem, 1.1vw, 1rem);
  line-height: 1.5;
}
/* Two green rules and a short gold one between them. */
.netaim-speakers-section .nt-speakers__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  height: 20px;
  margin-top: 0.75rem;
}
.netaim-speakers-section .nt-speakers__divider > span {
  display: block;
  width: clamp(48px, 6vw, 88px);
  height: 1px;
  background: var(--nt-speakers-green);
  opacity: 0.4;
}
.netaim-speakers-section .nt-speakers__divider > .nt-speakers__divider-mark {
  width: 56px;
  height: 3px;
  border-radius: 2px;
  background: var(--nt-speakers-orange);
  opacity: 1;
}

/* ---- the row ---- */
.netaim-speakers-section .nt-speakers__stage {
  position: relative;
  max-width: var(--nt-speakers-stage);
  margin-inline: auto;
}
.netaim-speakers-section .nt-speakers__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 168px));
  justify-content: center;
  gap: var(--nt-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.netaim-speakers-section .nt-speakers__item {
  margin: 0;
  padding: 0;
  min-width: 0;
  list-style: none;
}
.netaim-speakers-section .nt-speakers__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--nt-speakers-line);
  border-radius: var(--nt-speakers-radius);
  background: #fffefb;
  box-shadow: var(--nt-speakers-shadow);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.netaim-speakers-section .nt-speakers__card:hover {
  transform: translateY(-3px);
  box-shadow: var(--nt-speakers-shadow-lift);
}

/* The portrait keeps its shape before the photo arrives; the silhouette
   waits underneath for the photo that never comes. */
.netaim-speakers-section .nt-speakers__portrait {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: var(--nt-speakers-portrait);
  overflow: hidden;
  background: linear-gradient(160deg, #eef2ea 0%, var(--nt-speakers-sage) 100%);
}
.netaim-speakers-section .nt-speakers__silhouette {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 58%;
  height: auto;
  transform: translateX(-50%);
  color: var(--nt-speakers-green-deep);
  opacity: 0.22;
}
.netaim-speakers-section .nt-speakers__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
  transition: transform 400ms ease;
}
.netaim-speakers-section .nt-speakers__card:hover .nt-speakers__photo {
  transform: scale(1.03);
}

.netaim-speakers-section .nt-speakers__text {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  gap: 0.125rem;
  padding: 0.625rem 0.625rem 0.625rem;
  text-align: center;
}
.netaim-speakers-section .nt-speakers__name {
  margin: 0;
  color: var(--nt-speakers-green);
  font-family: var(--nt-font-sans, inherit);
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.25;
}
.netaim-speakers-section .nt-speakers__role {
  margin: 0;
  color: var(--nt-speakers-ink);
  font-size: 0.75rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.netaim-speakers-section .nt-speakers__rule {
  display: block;
  width: 28px;
  height: 2px;
  margin-top: auto;
  padding-top: 0.375rem;
  border-bottom: 2px solid var(--nt-speakers-orange);
  opacity: 0.85;
}

/* ---- empty ---- */
.netaim-speakers-section .nt-speakers__empty {
  max-width: 32rem;
  margin: 0 auto;
  padding: 1.25rem 1.5rem;
  border: 1px dashed rgba(22, 102, 51, 0.25);
  border-radius: 16px;
  color: var(--nt-speakers-green);
  text-align: center;
  font-size: 1rem;
}

/* ---- the way to all of them ---- */
.netaim-speakers-section .nt-speakers__cta {
  margin: clamp(1rem, 1.5vw, 1.25rem) 0 0;
  text-align: center;
}
.netaim-speakers-section .nt-speakers__button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  box-sizing: border-box;
  min-height: 42px;
  padding: 0.5rem 1.25rem;
  border: 1.5px solid var(--nt-speakers-green);
  border-radius: 999px;
  background: rgba(255, 254, 251, 0.7);
  color: var(--nt-speakers-green);
  font-family: var(--nt-font-sans, inherit);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 200ms ease, color 200ms ease, transform 200ms ease;
}
.netaim-speakers-section .nt-speakers__button svg {
  transition: transform 200ms ease;
}
[dir="rtl"] .netaim-speakers-section .nt-speakers__button svg {
  transform: scaleX(-1);
}
.netaim-speakers-section .nt-speakers__button:hover,
.netaim-speakers-section .nt-speakers__button:focus-visible {
  background: var(--nt-speakers-green);
  color: #fff;
}
.netaim-speakers-section .nt-speakers__button:focus-visible {
  outline: 3px solid var(--nt-speakers-orange);
  outline-offset: 3px;
}

.nt-screen-reader {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}

/* ---- widths ---- */
@media (max-width: 1100px) {
  .netaim-speakers-section {
    --nt-speakers-stage: 500px;
    --nt-gap: 14px;
  }
  .netaim-speakers-section .nt-speakers__grid {
    grid-template-columns: repeat(auto-fit, minmax(130px, 158px));
  }
}
@media (max-width: 640px) {
  .netaim-speakers-section {
    --nt-speakers-stage: 250px;
    --nt-speakers-radius: 14px;
    --nt-speakers-portrait: 1 / 1;
    --nt-gap: 10px;
    padding-block: 2rem 2rem;
  }
  .netaim-speakers-section .nt-speakers__head {
    margin-bottom: 1.125rem;
  }
  .netaim-speakers-section .nt-speakers__lede {
    margin-top: 0.5rem;
    font-size: 0.875rem;
  }
  .netaim-speakers-section .nt-speakers__divider {
    margin-top: 0.75rem;
    height: 18px;
  }
  .netaim-speakers-section .nt-speakers__cta {
    margin-top: 1rem;
  }
  .netaim-speakers-section .nt-speakers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .netaim-speakers-section .nt-speakers__stage[data-count="1"] .nt-speakers__grid {
    grid-template-columns: minmax(0, 130px);
  }
  .netaim-speakers-section .nt-speakers__text {
    padding: 0.5rem 0.5rem 0.5rem;
  }
  .netaim-speakers-section .nt-speakers__name {
    font-size: 0.875rem;
  }
  .netaim-speakers-section .nt-speakers__role {
    font-size: 0.6875rem;
  }
  .netaim-speakers-section .nt-speakers__rule {
    width: 24px;
    padding-top: 0.3rem;
  }
  .netaim-speakers-section .nt-speakers__art--sky {
    top: -12px;
    opacity: 0.7;
  }
  .netaim-speakers-section .nt-speakers__art--ground {
    height: 32px;
  }
  .netaim-speakers-section .nt-speakers__button {
    min-height: 42px;
    font-size: 0.875rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .netaim-speakers-section .nt-speakers__card,
  .netaim-speakers-section .nt-speakers__photo,
  .netaim-speakers-section .nt-speakers__button {
    transition: none;
  }
  .netaim-speakers-section .nt-speakers__card:hover {
    transform: none;
  }
  .netaim-speakers-section .nt-speakers__card:hover .nt-speakers__photo {
    transform: none;
  }
}

/* =============================================================
   The final invitation — "מוכנים להצטרף?" closes the conference page.

   A deep-green organic panel on the site's cream, the same branches the
   partners and the speakers wear behind it, the venue's photo in an
   opening on the far side, and one orange button. Compact: this is the
   last word, not another hero. Scoped under .netaim-final-cta.
   ============================================================= */
.netaim-final-cta {
  --nt-cta-green: var(--nt-palette-green-800, #0f4a24);
  --nt-cta-green-deep: #0b3a1d;
  --nt-cta-green-light: var(--nt-palette-green-600, #166633);
  --nt-cta-orange: var(--nt-palette-orange-500, #f99b21);
  --nt-cta-cream: #faf9f4;
  --nt-cta-paper: #fffefb;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem);
  background: var(--nt-cta-cream);
  color: var(--nt-cta-paper);
}
/* The branches, behind the panel, in the corners of the cream. */
.netaim-final-cta .nt-cta__art {
  position: absolute;
  z-index: 0;
  top: clamp(-120px, -8vw, -40px);
  left: 0;
  width: 100%;
  height: auto;
  opacity: 0.8;
  pointer-events: none;
  user-select: none;
  -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 95%);
          mask-image: linear-gradient(180deg, #000 55%, transparent 95%);
}

/* ---- the panel ---- */
.netaim-final-cta .nt-cta__panel {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: min(100%, 1240px);
  min-height: 280px;
  margin-inline: auto;
  padding: clamp(1.5rem, 2.5vw, 2rem) clamp(1.5rem, 5vw, 5rem);
  overflow: hidden;
  border-radius: 190px 230px 170px 210px / 130px 110px 150px 120px;
  background:
    radial-gradient(60% 90% at 30% 20%, rgba(255, 255, 255, 0.05), transparent 70%),
    linear-gradient(160deg, var(--nt-cta-green-light) 0%, var(--nt-cta-green) 45%, var(--nt-cta-green-deep) 100%);
  box-shadow: 0 18px 50px rgba(11, 58, 29, 0.16);
}
/* Organic circles, barely there. */
.netaim-final-cta .nt-cta__orb {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
}
.netaim-final-cta .nt-cta__orb--a {
  top: -40%;
  right: 30%;
  width: 26%;
  aspect-ratio: 1;
  background: rgba(0, 0, 0, 0.12);
}
.netaim-final-cta .nt-cta__orb--b {
  bottom: -55%;
  left: 14%;
  width: 22%;
  aspect-ratio: 1;
  background: rgba(157, 209, 176, 0.16);
}
.netaim-final-cta .nt-cta__orb--c {
  bottom: -30%;
  left: 3%;
  width: 11%;
  aspect-ratio: 1;
  background: rgba(249, 155, 33, 0.5);
}

/* The venue, in an opening on the right of the panel — as drawn. */
.netaim-final-cta .nt-cta__venue {
  position: absolute;
  z-index: 0;
  top: -8%;
  bottom: -8%;
  right: -3%;
  width: 30%;
  overflow: hidden;
  border-radius: 46% 54% 52% 48% / 58% 50% 50% 42%;
  box-shadow: 0 0 0 10px rgba(11, 58, 29, 0.3);
  pointer-events: none;
}
.netaim-final-cta .nt-cta__venue-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.netaim-final-cta .nt-cta__venue::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(11, 58, 29, 0.4), transparent 40%);
}

/* ---- the words ---- */
.netaim-final-cta .nt-cta__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 44rem;
  text-align: center;
}
.netaim-final-cta.nt-cta--with-venue .nt-cta__content {
  margin-right: 20%;
}
.netaim-final-cta .nt-cta__rule {
  display: block;
  width: 88px;
  height: 3px;
  margin-bottom: 0.875rem;
  border-radius: 2px;
  background: var(--nt-cta-orange);
}
.netaim-final-cta .nt-cta__title {
  margin: 0;
  color: var(--nt-cta-paper);
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(1.875rem, 3.8vw, 3.5rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.netaim-final-cta .nt-cta__line {
  max-width: 36rem;
  margin: 0.75rem 0 0;
  color: rgba(255, 254, 251, 0.92);
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  line-height: 1.45;
}
.netaim-final-cta .nt-cta__details {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin: 0.875rem 0 0;
  color: rgba(255, 254, 251, 0.92);
  font-size: 0.9375rem;
}
.netaim-final-cta .nt-cta__detail {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.netaim-final-cta .nt-cta__detail svg {
  color: var(--nt-cta-orange);
  flex: none;
}
.netaim-final-cta .nt-cta__sep {
  width: 1px;
  height: 20px;
  background: rgba(255, 254, 251, 0.35);
}
.netaim-final-cta .nt-cta__action {
  margin: 1.25rem 0 0;
}
.netaim-final-cta .nt-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  box-sizing: border-box;
  min-width: 290px;
  min-height: 60px;
  padding: 0.625rem 2rem;
  border-radius: 999px;
  background: var(--nt-cta-orange);
  color: var(--nt-cta-green);
  font-family: var(--nt-font-sans, inherit);
  font-size: 1.125rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
  transition: transform 220ms ease, box-shadow 220ms ease, filter 220ms ease;
}
[dir="rtl"] .netaim-final-cta .nt-cta__button svg {
  transform: scaleX(-1);
}
.netaim-final-cta .nt-cta__button:hover,
.netaim-final-cta .nt-cta__button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
  filter: brightness(1.04);
  color: var(--nt-cta-green);
}
.netaim-final-cta .nt-cta__button:focus-visible {
  outline: 3px solid var(--nt-cta-paper);
  outline-offset: 3px;
}

/* ---- widths ---- */
@media (max-width: 1100px) {
  .netaim-program-preview .nt-preview__card {
    grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
    column-gap: 1.25rem;
  }
  .netaim-program-preview .nt-preview__figure {
    min-height: 260px;
  }
  .netaim-final-cta .nt-cta__venue {
    width: 27%;
  }
  .netaim-final-cta.nt-cta--with-venue .nt-cta__content {
    margin-right: 16%;
  }
  .netaim-final-cta .nt-cta__panel {
    border-radius: 120px 150px 110px 140px / 90px 80px 100px 90px;
  }
}
@media (max-width: 640px) {
  .netaim-final-cta {
    padding: 0.75rem 0.75rem 1.25rem;
  }
  .netaim-final-cta .nt-cta__art {
    top: -8px;
    opacity: 0.6;
  }
  .netaim-final-cta .nt-cta__panel {
    min-height: 0;
    padding: 1.75rem 1.25rem 1.5rem;
    border-radius: 34px;
  }
  /* The venue makes way for the words on a phone. */
  .netaim-final-cta .nt-cta__venue {
    display: none;
  }
  .netaim-final-cta.nt-cta--with-venue .nt-cta__content {
    margin-right: 0;
  }
  .netaim-final-cta .nt-cta__rule {
    width: 64px;
    margin-bottom: 0.625rem;
  }
  .netaim-final-cta .nt-cta__line {
    margin-top: 0.5rem;
    font-size: 0.9375rem;
  }
  .netaim-final-cta .nt-cta__details {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    gap: 0.5rem 0.75rem;
  }
  .netaim-final-cta .nt-cta__action {
    margin-top: 1rem;
    width: 100%;
  }
  .netaim-final-cta .nt-cta__button {
    width: 100%;
    min-width: 0;
    min-height: 54px;
    font-size: 1.0625rem;
  }
  .netaim-final-cta .nt-cta__orb--a {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .netaim-final-cta .nt-cta__button {
    transition: none;
  }
  .netaim-final-cta .nt-cta__button:hover {
    transform: none;
  }
}

/* =============================================================
   A taste of the programme — "טעימה מהכנס" on the conference page.

   The day selector, one photo with the day on it, three sessions on a
   short timeline, and the way to the whole programme. Cream, green,
   orange; the same branches behind. Compact by design: three rows,
   whatever the day holds. Scoped under .netaim-program-preview.
   ============================================================= */
.netaim-program-preview {
  --nt-pv-green: var(--nt-palette-green-600, #166633);
  --nt-pv-green-deep: var(--nt-palette-green-800, #0f4a24);
  --nt-pv-orange: var(--nt-palette-orange-500, #f99b21);
  --nt-pv-ink: var(--nt-palette-grey-700, #54595f);
  --nt-pv-sage: #dfe7da;
  --nt-pv-paper: #faf9f4;
  --nt-pv-card: #fffefb;
  --nt-pv-line: rgba(50, 70, 50, 0.08);
  --nt-pv-radius: 26px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(2.25rem, 3.5vw, 3rem) clamp(2rem, 3.5vw, 3rem);
  background: linear-gradient(180deg, #f9f8f3 0%, var(--nt-pv-paper) 100%);
  color: var(--nt-pv-ink);
}
.netaim-program-preview .nt-preview__art {
  position: absolute;
  z-index: 0;
  top: clamp(-150px, -10vw, -60px);
  left: 0;
  width: 100%;
  height: auto;
  opacity: 0.55;
  pointer-events: none;
  user-select: none;
  transform: scaleX(-1);
  -webkit-mask-image: linear-gradient(180deg, #000 30%, transparent 70%);
          mask-image: linear-gradient(180deg, #000 30%, transparent 70%);
}
.netaim-program-preview .nt-preview__blob {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
}
.netaim-program-preview .nt-preview__blob--a {
  top: 18%;
  left: -6%;
  width: 22vw;
  max-width: 320px;
  aspect-ratio: 1;
  background: rgba(157, 209, 176, 0.22);
}
.netaim-program-preview .nt-preview__blob--b {
  bottom: -10%;
  right: -4%;
  width: 16vw;
  max-width: 240px;
  aspect-ratio: 1;
  background: rgba(249, 155, 33, 0.14);
}
.netaim-program-preview .nt-preview__inner {
  position: relative;
  z-index: 1;
  width: min(100% - 2.5rem, 1240px);
  margin-inline: auto;
}

/* ---- head ---- */
.netaim-program-preview .nt-preview__head {
  margin: 0 auto clamp(1.125rem, 1.6vw, 1.5rem);
  text-align: center;
}
.netaim-program-preview .nt-preview__heading {
  margin: 0;
  color: var(--nt-pv-green);
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(1.875rem, 3.2vw, 2.875rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.netaim-program-preview .nt-preview__lede {
  max-width: 38rem;
  margin: 0.625rem auto 0;
  font-size: clamp(0.9375rem, 1.15vw, 1.0625rem);
  line-height: 1.5;
}
.netaim-program-preview .nt-preview__rule {
  display: block;
  width: 64px;
  height: 3px;
  margin: 0.875rem auto 0;
  border-radius: 2px;
  background: var(--nt-pv-orange);
}

/* ---- the card: tabs across the top of the programme side, photo, timeline ---- */
.netaim-program-preview .nt-preview__card {
  display: grid;
  /* First column is the start side: the programme; the photo across from it. */
  grid-template-columns: minmax(0, 56fr) minmax(0, 44fr);
  grid-template-rows: auto 1fr;
  grid-template-areas:
    "tabs photo"
    "program photo";
  column-gap: clamp(1.25rem, 3vw, 2.5rem);
  row-gap: 0.75rem;
  box-sizing: border-box;
  padding: clamp(1rem, 1.8vw, 1.5rem);
  border: 1px solid var(--nt-pv-line);
  border-radius: var(--nt-pv-radius);
  background: var(--nt-pv-card);
  box-shadow: 0 10px 30px rgba(22, 40, 26, 0.06), 0 1px 2px rgba(22, 40, 26, 0.04);
}
.netaim-program-preview .nt-preview__tabs {
  grid-area: tabs;
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}
.netaim-program-preview .nt-preview__tabs::-webkit-scrollbar {
  display: none;
}
.netaim-program-preview .nt-preview__tab {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  min-width: 96px;
  padding: 0.5rem 0.9rem;
  border: 1.5px solid rgba(22, 102, 51, 0.22);
  border-radius: 14px;
  background: var(--nt-pv-card);
  color: var(--nt-pv-green);
  font-family: var(--nt-font-sans, inherit);
  cursor: pointer;
  transition: background-color 220ms ease, color 220ms ease, border-color 220ms ease;
}
.netaim-program-preview .nt-preview__tab-day {
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.2;
}
.netaim-program-preview .nt-preview__tab-date {
  font-size: 0.75rem;
  opacity: 0.85;
}
.netaim-program-preview .nt-preview__tab:hover {
  border-color: var(--nt-pv-green);
}
.netaim-program-preview .nt-preview__tab[aria-selected="true"] {
  border-color: var(--nt-pv-green);
  background: var(--nt-pv-green);
  color: #fff;
}
.netaim-program-preview .nt-preview__tab:focus-visible {
  outline: 3px solid var(--nt-pv-orange);
  outline-offset: 2px;
}

/* the photo */
.netaim-program-preview .nt-preview__figure {
  grid-area: photo;
  position: relative;
  margin: 0;
  min-height: 300px;
  overflow: hidden;
  border-radius: 22px;
  background: var(--nt-pv-sage);
}
.netaim-program-preview .nt-preview__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* No picture for the day and none for the conference: the section's own
   ground — sage, the branches, nothing to load. */
.netaim-program-preview .nt-preview__fallback {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(40% 40% at 78% 22%, rgba(249, 155, 33, 0.22), transparent 70%),
    radial-gradient(55% 55% at 22% 80%, rgba(22, 102, 51, 0.18), transparent 70%),
    linear-gradient(160deg, #eef2ea 0%, var(--nt-pv-sage) 100%);
}
.netaim-program-preview .nt-preview__fallback::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/partners/partners-backdrop.jpg") center top / cover no-repeat;
  opacity: 0.45;
  mix-blend-mode: multiply;
}
.netaim-program-preview .nt-preview__figure [data-day][hidden] {
  display: none;
}
.netaim-program-preview .nt-preview__photo:not([hidden]) {
  animation: nt-preview-in 300ms ease both;
}
.netaim-program-preview .nt-preview__badge {
  position: absolute;
  bottom: 14px;
  inset-inline-start: 14px;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  background: rgba(15, 74, 36, 0.92);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  backdrop-filter: blur(4px);
}
.netaim-program-preview .nt-preview__badge svg {
  color: var(--nt-pv-orange);
}

/* the timeline */
.netaim-program-preview .nt-preview__program {
  grid-area: program;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.netaim-program-preview .nt-preview__panel {
  flex: 1 1 auto;
}
.netaim-program-preview .nt-preview__panel.is-active {
  animation: nt-preview-in 260ms ease both;
}
@keyframes nt-preview-in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}
.netaim-program-preview .nt-preview__timeline {
  position: relative;
  margin: 0.25rem 0 0;
  padding: 0;
  list-style: none;
}
.netaim-program-preview .nt-preview__row {
  position: relative;
  display: grid;
  grid-template-columns: 56px 20px minmax(0, 1fr) 40px;
  align-items: start;
  column-gap: 0.5rem;
  padding: 0.5rem 0 0.875rem;
}
/* As drawn: the time at the outer edge, the dot, the words, the mark at the
   inner edge — the same picture in both directions, so the row runs
   left-to-right and only its words follow the page. */
[dir="rtl"] .netaim-program-preview .nt-preview__row {
  direction: ltr;
}
[dir="rtl"] .netaim-program-preview .nt-preview__body {
  direction: rtl;
  text-align: right;
}
/* The thread between the dots. */
.netaim-program-preview .nt-preview__row::before {
  content: "";
  position: absolute;
  top: 1.35rem;
  bottom: -0.4rem;
  left: calc(56px + 0.5rem + 9px);
  width: 2px;
  background: var(--nt-pv-sage);
}
.netaim-program-preview .nt-preview__row:last-child::before {
  display: none;
}
.netaim-program-preview .nt-preview__time {
  color: var(--nt-pv-green-deep);
  font-family: var(--nt-font-sans, inherit);
  font-size: 1.0625rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
  text-align: right;
}
.netaim-program-preview .nt-preview__dot {
  position: relative;
  z-index: 1;
  width: 14px;
  height: 14px;
  margin-top: 0.3rem;
  border-radius: 50%;
  background: var(--nt-pv-orange);
  box-shadow: 0 0 0 3px var(--nt-pv-card);
  justify-self: center;
}
.netaim-program-preview .nt-preview__body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.netaim-program-preview .nt-preview__type {
  color: var(--nt-pv-orange);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.netaim-program-preview .nt-preview__title {
  color: var(--nt-pv-green);
  font-family: var(--nt-font-sans, inherit);
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.3;
}
.netaim-program-preview .nt-preview__line {
  color: var(--nt-pv-ink);
  font-size: 0.875rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.netaim-program-preview .nt-preview__glyph {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1.5px solid rgba(22, 102, 51, 0.25);
  border-radius: 50%;
  color: var(--nt-pv-green);
  background: rgba(223, 231, 218, 0.45);
}
.netaim-program-preview .nt-preview__empty {
  max-width: 30rem;
  margin: 0 auto;
  padding: 1rem 1.25rem;
  border: 1px dashed rgba(22, 102, 51, 0.25);
  border-radius: 14px;
  color: var(--nt-pv-green);
  text-align: center;
  font-size: 0.9375rem;
}
.netaim-program-preview .nt-preview__empty--day {
  margin: 1rem 0;
}

/* the way to the whole programme */
.netaim-program-preview .nt-preview__cta {
  margin: auto 0 0;
  padding-top: 0.75rem;
  text-align: start;
}
.netaim-program-preview .nt-preview__button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  box-sizing: border-box;
  min-height: 48px;
  padding: 0.5rem 1.4rem;
  border: 1.5px solid var(--nt-pv-green);
  border-radius: 999px;
  background: var(--nt-pv-card);
  color: var(--nt-pv-green);
  font-family: var(--nt-font-sans, inherit);
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 200ms ease, color 200ms ease;
}
[dir="rtl"] .netaim-program-preview .nt-preview__button svg {
  transform: scaleX(-1);
}
.netaim-program-preview .nt-preview__button:hover,
.netaim-program-preview .nt-preview__button:focus-visible {
  background: var(--nt-pv-green);
  color: #fff;
}
.netaim-program-preview .nt-preview__button:focus-visible {
  outline: 3px solid var(--nt-pv-orange);
  outline-offset: 3px;
}

/* ---- widths ---- */
@media (max-width: 760px) {
  .netaim-program-preview .nt-preview__card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "tabs"
      "photo"
      "program";
    row-gap: 0.875rem;
  }
  .netaim-program-preview .nt-preview__figure {
    min-height: 0;
    height: clamp(180px, 36vw, 220px);
  }
  .netaim-program-preview .nt-preview__tabs {
    justify-content: flex-start;
  }
  .netaim-program-preview .nt-preview__cta {
    text-align: center;
  }
}
@media (max-width: 640px) {
  .netaim-program-preview {
    padding-block: 1.75rem 1.75rem;
  }
  .netaim-program-preview .nt-preview__head {
    margin-bottom: 0.875rem;
  }
  .netaim-program-preview .nt-preview__lede {
    margin-top: 0.4rem;
    font-size: 0.875rem;
  }
  .netaim-program-preview .nt-preview__rule {
    margin-top: 0.625rem;
  }
  .netaim-program-preview .nt-preview__card {
    padding: 0.75rem;
    border-radius: 20px;
    row-gap: 0.625rem;
  }
  .netaim-program-preview .nt-preview__cta {
    padding-top: 0.5rem;
  }
  .netaim-program-preview .nt-preview__tab {
    min-width: 84px;
    padding: 0.4rem 0.7rem;
  }
  .netaim-program-preview .nt-preview__row {
    grid-template-columns: 48px 18px minmax(0, 1fr) 36px;
    padding: 0.4rem 0 0.75rem;
  }
  .netaim-program-preview .nt-preview__row::before {
    left: calc(48px + 0.5rem + 8px);
  }
  .netaim-program-preview .nt-preview__time {
    font-size: 0.9375rem;
  }
  .netaim-program-preview .nt-preview__title {
    font-size: 0.9375rem;
  }
  .netaim-program-preview .nt-preview__line {
    font-size: 0.8125rem;
  }
  .netaim-program-preview .nt-preview__glyph {
    width: 36px;
    height: 36px;
  }
  .netaim-program-preview .nt-preview__art {
    top: -10px;
    opacity: 0.45;
  }
  .netaim-program-preview .nt-preview__button {
    width: 100%;
    justify-content: center;
    min-height: 46px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .netaim-program-preview .nt-preview__panel.is-active,
  .netaim-program-preview .nt-preview__photo:not([hidden]) {
    animation: none;
  }
  .netaim-program-preview .nt-preview__tab,
  .netaim-program-preview .nt-preview__button {
    transition: none;
  }
}

/* =============================================================
   The venue — "המקום" on the conference page.

   A limestone interlude: no branches, a warm stone ground with a faint
   grain, one great arch cut into the far edge and the ghost of a
   colonnade. The photograph on the left, the words on the right; on a
   phone the heading leads, the picture follows, the words close.
   Everything below hangs from .netaim-venue-section (alias .nt-venue).
   ============================================================= */
.netaim-venue-section {
  --nt-venue-green: var(--nt-palette-green-800, #0f4a24);
  --nt-venue-green-mid: var(--nt-palette-green-600, #166633);
  --nt-venue-orange: var(--nt-palette-orange-500, #f99b21);
  --nt-venue-ink: #2b2f2c;
  --nt-venue-ink-soft: var(--nt-palette-grey-700, #54595f);
  --nt-venue-stone: #f2ece1;
  --nt-venue-stone-deep: #e6dccb;
  --nt-venue-stone-line: rgba(120, 100, 70, 0.16);
  --nt-venue-sage: #e4efe6;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(2.25rem, 4vw, 3.5rem) clamp(1rem, 3vw, 2.5rem);
  background: var(--nt-venue-stone);
  color: var(--nt-venue-ink);
  font-family: var(--nt-font-sans, inherit);
}

/* ---- the stone ---- */
.netaim-venue-section .nt-venue__stone {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(255, 252, 246, 0.9) 0%, rgba(255, 252, 246, 0) 55%),
    radial-gradient(90% 70% at 0% 100%, rgba(214, 199, 172, 0.55) 0%, rgba(214, 199, 172, 0) 60%),
    linear-gradient(180deg, var(--nt-venue-stone) 0%, var(--nt-venue-stone-deep) 100%);
}
/* A fine grain, so the stone is not a flat fill. */
.netaim-venue-section .nt-venue__stone::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.16;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .40 0 0 0 0 .32 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size: 220px 220px;
}
/* The great arch, cut into the right edge behind the words. */
.netaim-venue-section .nt-venue__arch {
  position: absolute;
  top: -12%;
  right: -14%;
  width: clamp(360px, 46vw, 720px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: clamp(28px, 4vw, 64px) solid rgba(255, 253, 248, 0.45);
  box-shadow:
    inset 0 0 0 1px var(--nt-venue-stone-line),
    0 0 0 1px var(--nt-venue-stone-line);
}
.netaim-venue-section .nt-venue__arch::after {
  content: "";
  position: absolute;
  inset: 18%;
  border-radius: 50%;
  border: 1px solid var(--nt-venue-stone-line);
}
/* The colonnade: a few faint uprights along the far edge. */
.netaim-venue-section .nt-venue__columns {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 4%;
  width: 26%;
  background:
    repeating-linear-gradient(90deg, var(--nt-venue-stone-line) 0 1px, transparent 1px 25%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 75%, transparent 100%);
          mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 75%, transparent 100%);
  opacity: 0.8;
}
/* The ground line the picture stands on. */
.netaim-venue-section .nt-venue__ground {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 22%;
  background: linear-gradient(180deg, rgba(190, 172, 140, 0) 0%, rgba(190, 172, 140, 0.28) 100%);
}

/* ---- the grid: picture left, words right, whatever the language ---- */
.netaim-venue-section .nt-venue__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  grid-template-areas:
    "photo head"
    "photo body";
  grid-template-rows: auto 1fr;
  column-gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
  width: min(100% - 1rem, 1180px);
  margin-inline: auto;
  /* The grid runs left→right in both languages; the words keep their own direction. */
  direction: ltr;
}
.netaim-venue-section .nt-venue__head,
.netaim-venue-section .nt-venue__body {
  direction: inherit;
}
.netaim-venue-section[dir="rtl"] .nt-venue__head,
.netaim-venue-section[dir="rtl"] .nt-venue__body {
  direction: rtl;
}
.netaim-venue-section .nt-venue__figure {
  grid-area: photo;
  align-self: center;
}
.netaim-venue-section .nt-venue__head {
  grid-area: head;
}
.netaim-venue-section .nt-venue__body {
  grid-area: body;
}

/* ---- the picture ---- */
.netaim-venue-section .nt-venue__figure {
  position: relative;
  margin: 0;
  width: 100%;
  max-width: 560px;
  aspect-ratio: 4 / 3;
  max-height: 440px;
  overflow: hidden;
  border-radius: 22px 84px 22px 22px;
  background: var(--nt-venue-stone-deep);
  box-shadow:
    0 24px 48px -28px rgba(60, 45, 20, 0.45),
    0 1px 0 rgba(255, 255, 255, 0.6) inset;
}
.netaim-venue-section .nt-venue__figure::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
  pointer-events: none;
}
.netaim-venue-section .nt-venue__img,
.netaim-venue-section .nt-venue__drawn {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.netaim-venue-section .nt-venue__img {
  z-index: 1;
}
/* The drawing sits underneath; when the photograph fails, it is what remains. */
.netaim-venue-section .nt-venue__figure.is-drawn .nt-venue__img {
  visibility: hidden;
}

/* ---- the words ---- */
.netaim-venue-section .nt-venue__heading {
  margin: 0;
  color: var(--nt-venue-green);
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(2.375rem, 3.6vw, 3.25rem); /* 38 → 52px */
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.01em;
}
.netaim-venue-section .nt-venue__rule {
  display: block;
  width: 80px;
  height: 4px;
  margin: 0.875rem 0 1rem;
  border-radius: 2px;
  background: var(--nt-venue-orange);
}
.netaim-venue-section .nt-venue__name {
  margin: 0;
  color: var(--nt-venue-ink);
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(1.25rem, 1.7vw, 1.5rem);
  font-weight: 700;
  line-height: 1.3;
}
.netaim-venue-section .nt-venue__address {
  margin: 0.25rem 0 0;
  color: var(--nt-venue-ink-soft);
  font-size: 0.9375rem;
  line-height: 1.5;
}
.netaim-venue-section .nt-venue__body {
  margin-top: clamp(0.875rem, 1.4vw, 1.25rem);
}
.netaim-venue-section .nt-venue__text {
  margin: 0;
  max-width: 34rem;
  color: var(--nt-venue-ink);
  font-size: clamp(1rem, 1.2vw, 1.0625rem);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

/* ---- the facts ---- */
.netaim-venue-section .nt-venue__facts {
  list-style: none;
  margin: clamp(1.125rem, 1.8vw, 1.5rem) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.875rem clamp(0.75rem, 1.4vw, 1.25rem);
}
.netaim-venue-section .nt-venue__fact {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  min-width: 0;
}
.netaim-venue-section .nt-venue__fact-icon {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--nt-venue-sage);
  color: var(--nt-venue-green-mid);
  box-shadow: inset 0 0 0 1px rgba(22, 102, 51, 0.12);
}
.netaim-venue-section .nt-venue__fact-words {
  display: block;
  min-width: 0;
  padding-top: 0.125rem;
}
.netaim-venue-section .nt-venue__fact-label {
  display: block;
  color: var(--nt-venue-ink);
  font-weight: 700;
  font-size: 0.9375rem;
  line-height: 1.35;
}
.netaim-venue-section .nt-venue__fact-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin-top: 0.125rem;
  color: var(--nt-venue-ink-soft);
  font-size: 0.8125rem;
  line-height: 1.45;
}

/* ---- the way to all of it: outlined, green ---- */
.netaim-venue-section .nt-venue__action {
  margin: clamp(1.25rem, 2vw, 1.75rem) 0 0;
}
.netaim-venue-section .nt-venue__button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 46px;
  padding: 0.625rem 1.375rem;
  border: 2px solid var(--nt-venue-green-mid);
  border-radius: 999px;
  background: transparent;
  color: var(--nt-venue-green);
  font-family: var(--nt-font-sans, inherit);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.netaim-venue-section .nt-venue__button:hover,
.netaim-venue-section .nt-venue__button:focus-visible {
  background: var(--nt-venue-green-mid);
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}
.netaim-venue-section .nt-venue__button:focus-visible {
  outline: 3px solid var(--nt-venue-orange);
  outline-offset: 3px;
}
.netaim-venue-section .nt-venue__arrow {
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}
.netaim-venue-section[dir="rtl"] .nt-venue__arrow {
  transform: scaleX(-1);
}
.netaim-venue-section .nt-venue__button:hover .nt-venue__arrow {
  transform: translateX(3px);
}
.netaim-venue-section[dir="rtl"] .nt-venue__button:hover .nt-venue__arrow {
  transform: scaleX(-1) translateX(3px);
}

/* ---- widths ---- */
@media (max-width: 1024px) {
  .netaim-venue-section .nt-venue__inner {
    grid-template-columns: minmax(0, 48fr) minmax(0, 52fr);
    column-gap: 1.75rem;
  }
  .netaim-venue-section .nt-venue__facts {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  .netaim-venue-section .nt-venue__fact-text {
    -webkit-line-clamp: 1;
  }
}
@media (max-width: 760px) {
  .netaim-venue-section {
    padding: 2rem 1rem 2.25rem;
  }
  /* Heading → rule → name → picture → words → facts → the button. */
  .netaim-venue-section .nt-venue__inner {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "head"
      "photo"
      "body";
    grid-template-rows: auto;
    row-gap: 1.125rem;
    width: 100%;
  }
  .netaim-venue-section .nt-venue__head {
    text-align: center;
  }
  .netaim-venue-section .nt-venue__rule {
    margin-inline: auto;
  }
  .netaim-venue-section .nt-venue__heading {
    font-size: 2.125rem; /* 34px */
  }
  .netaim-venue-section .nt-venue__figure {
    max-width: none;
    max-height: 215px;
    aspect-ratio: 16 / 10;
    border-radius: 18px 56px 18px 18px;
    box-shadow: 0 18px 36px -24px rgba(60, 45, 20, 0.45);
  }
  .netaim-venue-section .nt-venue__body {
    margin-top: 0;
  }
  .netaim-venue-section .nt-venue__text {
    max-width: none;
    -webkit-line-clamp: 3;
  }
  .netaim-venue-section .nt-venue__facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 1rem;
  }
  .netaim-venue-section .nt-venue__fact {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.375rem;
  }
  .netaim-venue-section .nt-venue__fact-icon {
    width: 38px;
    height: 38px;
  }
  .netaim-venue-section .nt-venue__fact-words {
    padding-top: 0;
  }
  .netaim-venue-section .nt-venue__fact-label {
    font-size: 0.8125rem;
    line-height: 1.25;
  }
  .netaim-venue-section .nt-venue__fact-text {
    display: none;
  }
  .netaim-venue-section .nt-venue__action {
    margin-top: 1.25rem;
    text-align: center;
  }
  .netaim-venue-section .nt-venue__button {
    width: 100%;
    justify-content: center;
  }
  .netaim-venue-section .nt-venue__arch {
    top: auto;
    bottom: -30%;
    right: -35%;
    width: 300px;
    border-width: 22px;
  }
  .netaim-venue-section .nt-venue__columns {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .netaim-venue-section .nt-venue__button,
  .netaim-venue-section .nt-venue__arrow {
    transition: none;
  }
}

/* =============================================================
   The programme — the platform's programme page, made public.

   Search and the way to a personal schedule; one tab per day; the
   type chips; a timeline of cards on a thin rail; the numbers and the
   personal-schedule card beside it; and one details panel that slides
   in from the end side. Same tokens the platform's page wears, on the
   site's green. Everything hangs from .netaim-program (alias .nt-prog).
   ============================================================= */
.netaim-program {
  --nt-p-primary: var(--nt-palette-green-600, #166633);
  --nt-p-primary-deep: var(--nt-palette-green-800, #0f4a24);
  --nt-p-primary-wash: #e6f5ec;
  --nt-p-accent: var(--nt-palette-orange-500, #f99b21);
  --nt-p-bg: #f7f8fa;
  --nt-p-surface: #ffffff;
  --nt-p-raise: #fbfcfd;
  --nt-p-ink: #172033;
  --nt-p-soft: #667085;
  --nt-p-faint: #98a2b3;
  --nt-p-line: #e6eaf0;
  --nt-p-line-strong: #d6dce5;
  --nt-p-mute: #5d6778;
  --nt-p-mute-wash: #f0f1f4;
  --nt-p-blue: #1b5e82;
  --nt-p-blue-wash: #e8f3fa;
  --nt-p-amber: #8f5904;
  --nt-p-amber-wash: #fef1de;
  --nt-p-live: #b42318;
  --nt-p-r-card: 16px;
  --nt-p-shadow: 0 4px 18px rgba(23, 32, 51, 0.06);
  --nt-p-shadow-lift: 0 12px 34px rgba(23, 32, 51, 0.1);
  --nt-p-ring: rgba(22, 102, 51, 0.22);
  position: relative;
  color: var(--nt-p-ink);
  font-family: var(--nt-font-sans, inherit);
  font-size: 1rem;
  line-height: 1.5;
}
.netaim-program *,
.netaim-program *::before,
.netaim-program *::after {
  box-sizing: border-box;
}
.netaim-program button {
  font: inherit;
  color: inherit;
  cursor: pointer;
}

/* ---- the hero (only when the page has none of its own) ---- */
.netaim-program .nt-prog__hero {
  margin: 0 0 1.5rem;
  text-align: center;
}
.netaim-program .nt-prog__eyebrow {
  margin: 0;
  color: var(--nt-p-primary);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}
.netaim-program .nt-prog__title {
  margin: 0.75rem 0 0;
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.netaim-program .nt-prog__sub {
  max-width: 36rem;
  margin: 0.75rem auto 0;
  color: var(--nt-p-soft);
  font-size: 0.9375rem;
}

/* ---- the tools ---- */
.netaim-program .nt-prog__tools {
  display: flex;
  gap: 0.75rem;
  align-items: stretch;
  max-width: 42rem;
  margin: 0 auto 1.5rem;
}
.netaim-program .nt-prog__search {
  position: relative;
  flex: 1 1 auto;
  display: block;
  color: var(--nt-p-faint);
}
.netaim-program .nt-prog__search > svg {
  position: absolute;
  top: 50%;
  inset-inline-start: 1rem;
  transform: translateY(-50%);
  pointer-events: none;
}
.netaim-program .nt-prog__search-input {
  width: 100%;
  min-height: 52px;
  padding: 0.875rem 1rem;
  padding-inline-start: 3rem;
  border: 1px solid var(--nt-p-line);
  border-radius: 16px;
  background: var(--nt-p-surface);
  color: var(--nt-p-ink);
  font: inherit;
  font-size: 0.9375rem;
  box-shadow: 0 2px 10px rgba(23, 32, 51, 0.05);
  outline: none;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.netaim-program .nt-prog__search-input::placeholder {
  color: var(--nt-p-faint);
}
.netaim-program .nt-prog__search-input:focus {
  border-color: var(--nt-p-primary);
  box-shadow: 0 8px 30px rgba(22, 102, 51, 0.14), 0 0 0 4px var(--nt-p-ring);
}
.netaim-program .nt-prog__search-input::-webkit-search-cancel-button {
  cursor: pointer;
}
.netaim-program .nt-prog__mine {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 1.5rem;
  border: 1px solid var(--nt-p-line);
  border-radius: 999px;
  background: var(--nt-p-surface);
  color: var(--nt-p-primary);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: var(--nt-p-shadow);
  transition: background-color 0.2s ease;
}
.netaim-program .nt-prog__mine:hover,
.netaim-program .nt-prog__mine:focus-visible {
  background: var(--nt-p-primary-wash);
  color: var(--nt-p-primary-deep);
  text-decoration: none;
}

/* ---- the controls ---- */
.netaim-program .nt-prog__controls {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.netaim-program .nt-prog__days {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.netaim-program .nt-prog__day-tab {
  position: relative;
  min-width: 92px;
  padding: 0.625rem 1rem;
  border: 0;
  border-radius: 16px;
  background: var(--nt-p-surface);
  color: var(--nt-p-ink);
  text-align: start;
  box-shadow: var(--nt-p-shadow);
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.netaim-program .nt-prog__day-tab:hover {
  background: var(--nt-p-raise);
}
.netaim-program .nt-prog__day-tab[aria-selected="true"] {
  background: var(--nt-p-primary);
  color: #fff;
}
.netaim-program .nt-prog__day-tab:focus-visible {
  outline: 3px solid var(--nt-p-accent);
  outline-offset: 2px;
}
.netaim-program .nt-prog__day-name {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
}
.netaim-program .nt-prog__day-date {
  display: block;
  color: var(--nt-p-faint);
  font-size: 0.75rem;
  line-height: 1.3;
}
.netaim-program .nt-prog__day-tab[aria-selected="true"] .nt-prog__day-date {
  color: rgba(255, 255, 255, 0.75);
}
.netaim-program .nt-prog__filters {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
  scrollbar-width: none;
}
.netaim-program .nt-prog__filters::-webkit-scrollbar {
  display: none;
}
.netaim-program .nt-prog__chip {
  flex: 0 0 auto;
  padding: 0.5rem 1rem;
  border: 0;
  border-radius: 999px;
  background: var(--nt-p-surface);
  color: var(--nt-p-soft);
  font-size: 0.875rem;
  font-weight: 500;
  box-shadow: var(--nt-p-shadow);
  transition: background-color 0.2s ease, color 0.2s ease;
}
.netaim-program .nt-prog__chip:hover {
  color: var(--nt-p-ink);
}
.netaim-program .nt-prog__chip[aria-pressed="true"] {
  background: var(--nt-p-primary);
  color: #fff;
}
.netaim-program .nt-prog__chip:focus-visible {
  outline: 3px solid var(--nt-p-accent);
  outline-offset: 2px;
}

/* ---- the grid: timeline, and the numbers beside it ---- */
.netaim-program .nt-prog__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 336px;
  gap: 2rem;
  margin-top: 2rem;
  align-items: start;
}
.netaim-program .nt-prog__timeline {
  min-width: 0;
}
.netaim-program .nt-prog__list {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.netaim-program .nt-prog__list::before {
  content: "";
  position: absolute;
  top: 0.75rem;
  bottom: 0.75rem;
  inset-inline-start: 62px;
  width: 1px;
  background: var(--nt-p-line-strong);
  pointer-events: none;
}
.netaim-program .nt-prog__list[hidden] {
  display: none;
}
.netaim-program .nt-prog__item,
.netaim-program .nt-prog__now {
  position: relative;
  display: grid;
  grid-template-columns: 54px 18px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  margin: 0;
}
.netaim-program .nt-prog__item[hidden] {
  display: none;
}
.netaim-program .nt-prog__time {
  padding-top: 1rem;
  color: var(--nt-p-ink);
  font-size: 0.875rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-align: end;
}
.netaim-program .nt-prog__dot {
  display: flex;
  justify-content: center;
  padding-top: 22px;
}
.netaim-program .nt-prog__dot i {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--nt-p-primary);
  box-shadow: 0 0 0 4px var(--nt-p-bg, #f7f8fa);
}
.netaim-program .nt-prog__item--break .nt-prog__dot i {
  background: var(--nt-p-faint);
}
.netaim-program .nt-prog__item.is-past {
  opacity: 0.72;
}
.netaim-program .nt-prog__item.is-past .nt-prog__dot i {
  background: var(--nt-p-faint);
}

/* the "now" marker */
.netaim-program .nt-prog__now {
  align-items: center;
}
.netaim-program .nt-prog__now-word {
  color: var(--nt-p-live);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: end;
}
.netaim-program .nt-prog__now-dot {
  display: flex;
  justify-content: center;
}
.netaim-program .nt-prog__now-dot i {
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--nt-p-live);
  box-shadow: 0 0 0 4px var(--nt-p-bg, #f7f8fa);
  animation: nt-prog-pulse 1.6s ease-in-out infinite;
}
.netaim-program .nt-prog__now-line {
  height: 1px;
  background: color-mix(in srgb, var(--nt-p-live) 55%, transparent);
}
@keyframes nt-prog-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.35); }
}

/* ---- a break ---- */
.netaim-program .nt-prog__break {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--nt-p-line);
  border-radius: var(--nt-p-r-card);
  background: var(--nt-p-raise);
  box-shadow: var(--nt-p-shadow);
}
.netaim-program .nt-prog__break-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--nt-p-primary-wash);
  color: var(--nt-p-primary);
}
.netaim-program .nt-prog__break-words {
  flex: 1 1 auto;
  min-width: 0;
}
.netaim-program .nt-prog__break-title {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
}
.netaim-program .nt-prog__break-text {
  display: block;
  color: var(--nt-p-soft);
  font-size: 0.75rem;
}
.netaim-program .nt-prog__break-room {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  color: var(--nt-p-soft);
  font-size: 0.75rem;
}

/* ---- a card ---- */
.netaim-program .nt-prog__card {
  position: relative;
  border: 1px solid var(--nt-p-line);
  border-radius: var(--nt-p-r-card);
  background: var(--nt-p-surface);
  box-shadow: var(--nt-p-shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.netaim-program .nt-prog__card:hover {
  transform: translateY(-2px);
  border-color: rgba(22, 102, 51, 0.25);
  box-shadow: var(--nt-p-shadow-lift);
}
.netaim-program .nt-prog__open {
  display: block;
  width: 100%;
  padding: 1.25rem;
  border: 0;
  border-radius: var(--nt-p-r-card);
  background: transparent;
  text-align: start;
  outline: none;
}
.netaim-program .nt-prog__open:focus-visible {
  box-shadow: 0 0 0 3px var(--nt-p-ring);
}
.netaim-program .nt-prog__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.netaim-program .nt-prog__pill {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.4;
  background: var(--nt-p-mute-wash);
  color: var(--nt-p-mute);
}
.netaim-program .nt-prog__pill--keynote { background: var(--nt-p-primary-wash); color: var(--nt-p-primary-deep); }
.netaim-program .nt-prog__pill--workshop { background: #e6f5ec; color: #117b3c; }
.netaim-program .nt-prog__pill--panel { background: var(--nt-p-blue-wash); color: var(--nt-p-blue); }
.netaim-program .nt-prog__pill--tour { background: var(--nt-p-amber-wash); color: var(--nt-p-amber); }
.netaim-program .nt-prog__pill--dark {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}
.netaim-program .nt-prog__ended {
  color: var(--nt-p-faint);
  font-size: 0.75rem;
  font-weight: 600;
}
.netaim-program .nt-prog__ended[hidden] {
  display: none;
}
.netaim-program .nt-prog__card-title {
  display: block;
  margin-top: 0.625rem;
  font-family: var(--nt-font-display, inherit);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: var(--nt-p-ink);
}
.netaim-program .nt-prog__card-sub {
  display: block;
  margin-top: 0.125rem;
  color: var(--nt-p-soft);
  font-size: 0.9375rem;
  font-weight: 500;
}
.netaim-program .nt-prog__card-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin-top: 0.25rem;
  color: var(--nt-p-soft);
  font-size: 0.875rem;
  line-height: 1.6;
}
.netaim-program .nt-prog__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  margin-top: 0.625rem;
  color: var(--nt-p-soft);
  font-size: 0.75rem;
}
.netaim-program .nt-prog__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-variant-numeric: tabular-nums;
}
.netaim-program .nt-prog__meta-item svg {
  color: var(--nt-p-faint);
}
.netaim-program .nt-prog__meta-item--track {
  padding: 0.125rem 0.625rem;
  border-radius: 999px;
  background: var(--nt-p-raise);
  box-shadow: inset 0 0 0 1px var(--nt-p-line);
  font-weight: 500;
}
.netaim-program .nt-prog__people {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-top: 0.75rem;
}
.netaim-program .nt-prog__avatars {
  display: flex;
  flex-direction: row-reverse;
  flex: 0 0 auto;
}
.netaim-program .nt-prog__avatars .nt-prog__avatar + .nt-prog__avatar {
  margin-inline-end: -0.5rem;
}
.netaim-program .nt-prog__avatar {
  display: grid;
  place-items: center;
  width: var(--nt-av, 34px);
  height: var(--nt-av, 34px);
  overflow: hidden;
  border-radius: 50%;
  background: var(--nt-p-primary-wash);
  color: var(--nt-p-primary);
  font-size: calc(var(--nt-av, 34px) * 0.34);
  font-weight: 700;
  box-shadow: 0 0 0 2px var(--nt-p-surface);
  flex: 0 0 auto;
}
.netaim-program .nt-prog__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.netaim-program .nt-prog__avatar--more {
  font-size: 0.75rem;
}
.netaim-program .nt-prog__people-words {
  min-width: 0;
}
.netaim-program .nt-prog__people-names {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875rem;
  font-weight: 600;
}
.netaim-program .nt-prog__people-role {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--nt-p-faint);
  font-size: 0.75rem;
}

/* ---- empty ---- */
.netaim-program .nt-prog__empty {
  padding: 2.5rem 1.5rem;
  border: 1px dashed var(--nt-p-line-strong);
  border-radius: var(--nt-p-r-card);
  background: var(--nt-p-surface);
  text-align: center;
}
.netaim-program .nt-prog__empty[hidden] {
  display: none;
}
.netaim-program .nt-prog__empty-title {
  margin: 0;
  font-weight: 700;
}
.netaim-program .nt-prog__empty-hint {
  margin: 0.375rem 0 0;
  color: var(--nt-p-soft);
  font-size: 0.875rem;
}

/* ---- the sidebar ---- */
.netaim-program .nt-prog__aside {
  position: sticky;
  top: 6rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.netaim-program .nt-prog__insights,
.netaim-program .nt-prog__mine-card {
  padding: 1.25rem;
  border: 1px solid var(--nt-p-line);
  border-radius: var(--nt-p-r-card);
  background: var(--nt-p-surface);
  box-shadow: var(--nt-p-shadow);
}
.netaim-program .nt-prog__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.75rem;
  text-align: center;
}
.netaim-program .nt-prog__stat {
  display: block;
  padding: 0.625rem 0.25rem;
  border-radius: 10px;
  background: var(--nt-p-raise);
  box-shadow: inset 0 0 0 1px var(--nt-p-line);
}
.netaim-program .nt-prog__stat strong {
  display: block;
  font-family: var(--nt-font-display, inherit);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.netaim-program .nt-prog__stat span {
  display: block;
  margin-top: 0.125rem;
  color: var(--nt-p-soft);
  font-size: 0.6875rem;
  line-height: 1.3;
}
.netaim-program .nt-prog__mine-card {
  background: linear-gradient(160deg, #ffffff 0%, var(--nt-p-primary-wash) 100%);
}
.netaim-program .nt-prog__mine-title {
  margin: 0;
  font-family: var(--nt-font-display, inherit);
  font-size: 1.0625rem;
  font-weight: 700;
}
.netaim-program .nt-prog__mine-text {
  margin: 0.375rem 0 0.875rem;
  color: var(--nt-p-soft);
  font-size: 0.875rem;
}

/* buttons */
.netaim-program .nt-prog__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 46px;
  padding: 0.625rem 1.375rem;
  border: 2px solid var(--nt-p-primary);
  border-radius: 999px;
  background: var(--nt-p-primary);
  color: #fff;
  font-weight: 700;
  font-size: 0.9375rem;
  line-height: 1;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.netaim-program .nt-prog__button:hover,
.netaim-program .nt-prog__button:focus-visible {
  background: var(--nt-p-primary-deep);
  border-color: var(--nt-p-primary-deep);
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}
.netaim-program .nt-prog__button--outline {
  width: 100%;
  background: transparent;
  color: var(--nt-p-primary-deep);
}
.netaim-program .nt-prog__button--outline:hover,
.netaim-program .nt-prog__button--outline:focus-visible {
  background: var(--nt-p-primary);
  color: #fff;
}
.netaim-program .nt-prog__button:focus-visible {
  outline: 3px solid var(--nt-p-accent);
  outline-offset: 3px;
}
.netaim-program[dir="rtl"] .nt-prog__arrow {
  transform: scaleX(-1);
}

/* ---- the details panel ---- */
.netaim-program .nt-prog__drawer {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  justify-content: flex-end;
}
.netaim-program .nt-prog__drawer[hidden] {
  display: none;
}
.netaim-program .nt-prog__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(23, 32, 51, 0.45);
  opacity: 0;
  transition: opacity 0.22s ease;
}
.netaim-program .nt-prog__panel {
  position: relative;
  width: min(100%, 520px);
  height: 100%;
  overflow-y: auto;
  background: var(--nt-p-surface);
  box-shadow: -12px 0 40px rgba(23, 32, 51, 0.18);
  transform: translateX(100%);
  transition: transform 0.26s cubic-bezier(0.22, 1, 0.36, 1);
  outline: none;
  overscroll-behavior: contain;
}
.netaim-program[dir="rtl"] .nt-prog__drawer {
  justify-content: flex-start;
}
.netaim-program .nt-prog__drawer.is-open .nt-prog__backdrop {
  opacity: 1;
}
.netaim-program .nt-prog__drawer.is-open .nt-prog__panel {
  transform: translateX(0);
}
html.nt-prog-open {
  overflow: hidden;
}
.netaim-program .nt-prog__close {
  position: absolute;
  top: 1rem;
  inset-inline-end: 1rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  transition: background-color 0.2s ease;
}
.netaim-program .nt-prog__close:hover {
  background: rgba(255, 255, 255, 0.3);
}
.netaim-program .nt-prog__close:focus-visible {
  outline: 3px solid var(--nt-p-accent);
}
.netaim-program .nt-prog__d-hero {
  position: relative;
  overflow: hidden;
  padding: 3.5rem 1.5rem 1.5rem;
  background: radial-gradient(120% 120% at 50% -20%, #1d7a3f 0%, var(--nt-p-primary-deep) 60%, #0b3a1d 100%);
  color: #fff;
}
.netaim-program .nt-prog__d-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.35;
  mix-blend-mode: luminosity;
}
.netaim-program .nt-prog__d-hero-words {
  position: relative;
}
.netaim-program .nt-prog__d-title {
  margin: 0.625rem 0 0;
  font-family: var(--nt-font-display, inherit);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: #fff;
}
.netaim-program .nt-prog__d-sub {
  margin: 0.375rem 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.9375rem;
}
.netaim-program .nt-prog__d-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 1rem;
  margin: 0.875rem 0 0;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.8125rem;
}
.netaim-program .nt-prog__d-facts span {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.netaim-program .nt-prog__d-facts svg {
  color: rgba(255, 255, 255, 0.6);
}
.netaim-program .nt-prog__d-body {
  padding: 1.25rem 1.5rem 2rem;
}
.netaim-program .nt-prog__d-register {
  padding: 1rem;
  border: 1px solid var(--nt-p-line);
  border-radius: var(--nt-p-r-card);
  background: var(--nt-p-raise);
  text-align: center;
}
.netaim-program .nt-prog__d-register .nt-prog__button {
  width: 100%;
}
.netaim-program .nt-prog__d-hint {
  margin: 0.5rem 0 0;
  color: var(--nt-p-faint);
  font-size: 0.75rem;
}
.netaim-program .nt-prog__d-section {
  margin-top: 1.5rem;
}
.netaim-program .nt-prog__d-label {
  margin: 0 0 0.625rem;
  color: var(--nt-p-faint);
  font-family: var(--nt-font-sans, inherit);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.netaim-program .nt-prog__d-text {
  margin: 0;
  color: var(--nt-p-ink);
  font-size: 0.9375rem;
  line-height: 1.7;
}
.netaim-program .nt-prog__d-lang {
  margin: 0.5rem 0 0;
  color: var(--nt-p-soft);
  font-size: 0.8125rem;
}
.netaim-program .nt-prog__d-speakers {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.netaim-program .nt-prog__d-speaker {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.netaim-program .nt-prog__d-speaker-name {
  display: block;
  font-weight: 600;
}
.netaim-program .nt-prog__d-speaker-role {
  display: block;
  color: var(--nt-p-soft);
  font-size: 0.8125rem;
}
.netaim-program .nt-prog__d-related {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.netaim-program .nt-prog__d-rel {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--nt-p-line);
  border-radius: 12px;
  background: var(--nt-p-surface);
  text-align: start;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.netaim-program .nt-prog__d-rel:hover,
.netaim-program .nt-prog__d-rel:focus-visible {
  border-color: var(--nt-p-primary);
  background: var(--nt-p-primary-wash);
}
.netaim-program .nt-prog__d-rel-time {
  flex: 0 0 auto;
  min-width: 44px;
  color: var(--nt-p-ink);
  font-size: 0.8125rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.netaim-program .nt-prog__d-rel-words {
  flex: 1 1 auto;
  min-width: 0;
}
.netaim-program .nt-prog__d-rel-title {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875rem;
  font-weight: 600;
}
.netaim-program .nt-prog__d-rel-meta {
  display: block;
  color: var(--nt-p-faint);
  font-size: 0.75rem;
}
.netaim-program .nt-prog__d-rel .nt-prog__arrow {
  flex: 0 0 auto;
  color: var(--nt-p-faint);
}

/* ---- widths ---- */
@media (max-width: 1024px) {
  .netaim-program .nt-prog__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .netaim-program .nt-prog__aside {
    position: static;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
}
@media (max-width: 720px) {
  .netaim-program .nt-prog__tools {
    flex-direction: column;
  }
  .netaim-program .nt-prog__item,
  .netaim-program .nt-prog__now {
    grid-template-columns: 46px 18px minmax(0, 1fr);
    gap: 0.5rem;
  }
  .netaim-program .nt-prog__list::before {
    inset-inline-start: 54px;
  }
  .netaim-program .nt-prog__open {
    padding: 1rem;
  }
  .netaim-program .nt-prog__aside {
    grid-template-columns: 1fr;
  }
  .netaim-program .nt-prog__d-hero {
    padding: 3.25rem 1.25rem 1.25rem;
  }
  .netaim-program .nt-prog__d-body {
    padding: 1rem 1.25rem 1.5rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .netaim-program .nt-prog__card,
  .netaim-program .nt-prog__panel,
  .netaim-program .nt-prog__backdrop,
  .netaim-program .nt-prog__day-tab,
  .netaim-program .nt-prog__chip,
  .netaim-program .nt-prog__button {
    transition: none;
  }
  .netaim-program .nt-prog__now-dot i {
    animation: none;
  }
}

/* =============================================================
   "What awaits you" — the cards beneath the story.

   The designed Elementor block, as the Studio now writes it: a green
   heading with the orange rule, then up to four cards on white — a
   small line icon in orange, a bold green title, a line of ink, and a
   soft picture below. Four across on a laptop, two on a tablet, one on
   a phone. Everything below hangs from .netaim-highlights-section
   (alias .nt-hl).
   ============================================================= */
.netaim-highlights-section {
  --nt-hl-green: var(--nt-palette-green-800, #0f4a24);
  --nt-hl-green-mid: var(--nt-palette-green-600, #166633);
  --nt-hl-orange: var(--nt-palette-orange-500, #f99b21);
  --nt-hl-ink: #2b2f2c;
  --nt-hl-ink-soft: var(--nt-palette-grey-700, #54595f);
  padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1rem, 3vw, 2.5rem);
  background: #fff;
  color: var(--nt-hl-ink);
  font-family: var(--nt-font-sans, inherit);
}
.netaim-highlights-section .nt-hl__inner {
  max-width: 1140px;
  margin-inline: auto;
}
.netaim-highlights-section .nt-hl__head {
  text-align: center;
}
.netaim-highlights-section .nt-hl__heading {
  margin: 0;
  color: var(--nt-hl-green);
  font-family: var(--nt-font-display, inherit);
  font-size: clamp(2rem, 3.2vw, 2.75rem); /* 32 → 44px */
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.netaim-highlights-section .nt-hl__rule {
  display: block;
  width: 56px;
  height: 4px;
  margin: 1rem auto 0;
  border-radius: 2px;
  background: var(--nt-hl-orange);
}
.netaim-highlights-section .nt-hl__cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.6vw, 2rem);
  margin: clamp(2rem, 3.5vw, 3rem) 0 0;
  padding: 0;
  list-style: none;
}
.netaim-highlights-section.nt-hl--3 .nt-hl__cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 900px;
  margin-inline: auto;
}
.netaim-highlights-section.nt-hl--2 .nt-hl__cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 640px;
  margin-inline: auto;
}
.netaim-highlights-section.nt-hl--1 .nt-hl__cards {
  grid-template-columns: minmax(0, 1fr);
  max-width: 360px;
  margin-inline: auto;
}
.netaim-highlights-section .nt-hl__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  text-align: center;
}
.netaim-highlights-section .nt-hl__icon {
  display: inline-flex;
  color: var(--nt-hl-orange);
}
.netaim-highlights-section .nt-hl__title {
  margin: 0.75rem 0 0;
  color: var(--nt-hl-green);
  font-family: var(--nt-font-display, inherit);
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.2;
}
.netaim-highlights-section .nt-hl__text {
  margin: 0.5rem 0 0;
  max-width: 26ch;
  color: var(--nt-hl-ink-soft);
  font-size: 1rem;
  line-height: 1.6;
}
.netaim-highlights-section .nt-hl__figure {
  position: relative;
  display: block;
  width: 100%;
  margin-top: auto;
  padding-top: 1.25rem;
}
.netaim-highlights-section .nt-hl__figure::before {
  content: "";
  display: block;
  padding-top: 66%;
}
.netaim-highlights-section .nt-hl__drawn,
.netaim-highlights-section .nt-hl__img {
  position: absolute;
  inset: 1.25rem 0 0;
  width: 100%;
  height: calc(100% - 1.25rem);
  border-radius: 18px;
  object-fit: cover;
}
.netaim-highlights-section .nt-hl__img {
  box-shadow: 0 18px 34px -24px rgba(23, 32, 51, 0.35);
}
.netaim-highlights-section .nt-hl__figure.is-drawn .nt-hl__img {
  visibility: hidden;
}

@media (max-width: 1024px) {
  .netaim-highlights-section .nt-hl__cards,
  .netaim-highlights-section.nt-hl--3 .nt-hl__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 680px;
    margin-inline: auto;
  }
}
@media (max-width: 560px) {
  .netaim-highlights-section .nt-hl__cards,
  .netaim-highlights-section.nt-hl--3 .nt-hl__cards,
  .netaim-highlights-section.nt-hl--2 .nt-hl__cards {
    grid-template-columns: minmax(0, 1fr);
    max-width: 360px;
    gap: 2rem;
  }
  .netaim-highlights-section .nt-hl__text {
    max-width: none;
  }
}

/* =============================================================
   The row that turns — shared by the partners and the speakers.

   nt-turn.js builds this inside a .nt-turn-stage: a viewport, a track
   of cards (or of two-by-two pages on a phone), and dots. --nt-across
   (set by the script) and --nt-gap (set by the section) size the
   cards; everything else is the same for every section that turns.
   ============================================================= */
.nt-turn-stage.is-turning > .nt-turn-list {
  display: none;
}
.nt-turn {
  outline: none;
}
.nt-turn:focus-visible .nt-turn__viewport {
  outline: 3px solid var(--nt-palette-orange-500, #f99b21);
  outline-offset: 6px;
  border-radius: 20px;
}
.nt-turn__viewport {
  overflow: hidden;
  /* Room for the lift on hover and the shadow, without clipping. */
  padding: 6px 0 14px;
  margin: -6px 0 -14px;
  touch-action: pan-y;
  cursor: grab;
}
.nt-turn__viewport:active {
  cursor: grabbing;
}
.nt-turn__track {
  display: flex;
  align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
/* Sliding: each card is one of --nt-across across the viewport. */
.nt-turn__track > li {
  flex: 0 0 calc((100% - var(--nt-gap, 18px) * (var(--nt-across, 4) - 1)) / var(--nt-across, 4));
  margin: 0;
  margin-inline-end: var(--nt-gap, 18px);
  padding: 0;
  min-width: 0;
  list-style: none;
  transition: opacity 600ms ease;
}
/* Paged: each page is the viewport, two by two inside. */
.nt-turn__track > .nt-turn__page {
  flex: 0 0 100%;
  margin: 0;
  transition: opacity 500ms ease;
}
.nt-turn__page > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--nt-gap, 10px);
  margin: 0;
  padding: 0 2px;
  list-style: none;
}
.nt-turn__page > ul > li {
  margin: 0;
  padding: 0;
  min-width: 0;
  list-style: none;
}
.nt-turn .is-dim {
  opacity: 0.2;
}
.nt-turn .is-still {
  transition: none !important;
}
.nt-turn__dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.875rem;
}
.nt-turn__dot {
  position: relative;
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--nt-palette-green-600, #166633);
  opacity: 0.28;
  cursor: pointer;
  transition: opacity 200ms ease, transform 200ms ease;
}
/* The tap target is larger than the dot. */
.nt-turn__dot::before {
  content: "";
  position: absolute;
  inset: -10px;
}
.nt-turn__dot[aria-current="true"] {
  opacity: 1;
  transform: scale(1.3);
}
.nt-turn__dot:focus-visible {
  outline: 2px solid var(--nt-palette-orange-500, #f99b21);
  outline-offset: 4px;
  opacity: 1;
}
@media (max-width: 640px) {
  .nt-turn__dots {
    margin-top: 0.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nt-turn__track,
  .nt-turn__track > li,
  .nt-turn__track > .nt-turn__page,
  .nt-turn__dot {
    transition: none;
  }
}

/* =============================================================
   Mobile — one continuous page.

   The conference page is a stack of Elementor containers; the sections
   this theme prints (speakers, the programme taste, the venue, the
   partners, the final invitation) sit inside them as shortcode widgets.
   On a laptop every one of those containers has no padding, so each
   section paints edge to edge. On a phone Elementor's default phone
   padding (57px 20px) returns, and the page becomes a column of inset
   cards on white — the "white gaps". Everything below is scoped to the
   conference pages and to phone widths; the laptop layout is untouched.
   ============================================================= */

/* A shortcode section is one block, never a flex line that wraps.
   Elementor containers wrap their items; a column that wraps lets
   Chromium keep the height it measured before the web fonts and the
   pictures arrived, and clamp the section to it — the venue was then
   painted 100px into the partners. Any width, because it is a bug. */
body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode) {
  flex-wrap: nowrap;
}
body.nt-conf-page .e-con.e-parent > .elementor-widget-shortcode {
  flex-shrink: 0;
  min-height: 0;
}

@media (max-width: 767px) {
  /* ---- full bleed: our sections own their background ---- */
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-speakers-section),
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-program-preview),
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-venue-section),
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-highlights-section),
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-partners-section),
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-final-cta),
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-program) {
    --padding-top: 0px;
    --padding-right: 0px;
    --padding-bottom: 0px;
    --padding-left: 0px;
    --content-width: 100%;
    padding: 0 !important;
  }
  /* The container behind the invitation still carries the old green
     overlay; the section paints its own green now, so the overlay
     would only show as a seam. */
  body.nt-conf-page .e-con.e-parent:has(> .elementor-widget-shortcode .netaim-final-cta)::before {
    display: none;
  }

  /* ---- the rhythm of the Elementor-built sections ----
     57px above and below every section, and 40px between every widget,
     is a laptop's breathing room. On a phone it reads as dead space. */
  body.nt-conf-page .e-con.e-parent:not(:has(> .elementor-widget-shortcode)):not(:has(> .e-con-inner > .elementor-widget-shortcode)) {
    --padding-top: 36px;
    --padding-bottom: 40px;
    --row-gap: 24px;
    --gap: 24px 24px;
  }
  /* The conference navigation: a little lighter. */
  body.nt-conf-page .nt-conf-nav {
    gap: 0.5rem 0.75rem;
    padding: 0.5rem 0;
  }
  body.nt-conf-page .nt-conf-nav__link {
    padding: 0.45rem 0.8rem;
    font-size: 0.9rem;
  }
  /* Headings break on a phrase, not on a word. */
  body.nt-conf-page .elementor-heading-title {
    text-wrap: balance;
  }
  /* A divider is a rule, not a paragraph of air. (Elementor's own rule
     is .elementor-N .elementor-element.elementor-element-X .elementor-divider — four classes.) */
  body.nt-conf-page .elementor .elementor-widget-divider .elementor-divider {
    padding-block: 8px;
  }
  /* Pictures in the Elementor sections: a controlled crop, never a wall. */
  body.nt-conf-page .e-con.e-parent .elementor-widget-image img {
    max-height: 260px;
    width: 100%;
    object-fit: cover;
  }
}

@media (max-width: 640px) {
  /* ---- the final invitation: the branches are the ground ----
     On a laptop the branches sit in the corners of a wide cream field
     and the green panel floats in the middle. A phone is narrower than
     the field, so the artwork covers the whole section instead — edge
     to edge, cropped, never boxed — and the green panel with the words
     stands on it, as it does on the laptop. */
  .netaim-final-cta {
    padding: 2rem 1.25rem 2.25rem;
    background: var(--nt-cta-cream);
  }
  .netaim-final-cta .nt-cta__art {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 0% 50%;
    opacity: 1;
    -webkit-mask-image: none;
            mask-image: none;
  }
  .netaim-final-cta .nt-cta__panel {
    width: 100%;
    min-height: 0;
    padding: 1.75rem 1.25rem 1.5rem;
    border-radius: 34px;
    box-shadow: 0 14px 36px rgba(11, 58, 29, 0.22);
  }
  .netaim-final-cta .nt-cta__content {
    max-width: 30rem;
    margin-inline: auto;
  }
}

/* =============================================================
   Motion — the conference page is not a poster.

   Everything below is opacity and transform only (the compositor's
   two properties), gated on `html.nt-motion`, which the script sets
   before the first paint. Without the script — or with reduced motion
   — nothing here applies and every section is simply visible.
   ============================================================= */

html.nt-motion .nt-conf-page .nt-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 720ms var(--nt-ease-entrance, cubic-bezier(0, 0, 0.2, 1)),
    transform 720ms var(--nt-ease-entrance, cubic-bezier(0, 0, 0.2, 1));
  transition-delay: calc(var(--nt-i, 0) * 90ms);
  will-change: opacity, transform;
}

html.nt-motion .nt-conf-page .nt-reveal.nt-reveal--in {
  opacity: 1;
  transform: none;
  will-change: auto;
}

/* A picture arrives a touch larger and settles, like a lens focusing. */
html.nt-motion .nt-conf-page .nt-reveal.elementor-widget-image img {
  transform: scale(1.06);
  transition: transform 1200ms var(--nt-ease-entrance, cubic-bezier(0, 0, 0.2, 1));
  transition-delay: calc(var(--nt-i, 0) * 90ms);
}

html.nt-motion .nt-conf-page .nt-reveal--in.elementor-widget-image img {
  transform: none;
}

/* Section titles underline themselves as they land. */
.nt-conf-page .nt-reveal .elementor-heading-title {
  position: relative;
}

html.nt-motion .nt-conf-page .nt-reveal--rule .elementor-heading-title::after {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  bottom: -0.35em;
  width: 3.5rem;
  height: 3px;
  border-radius: 2px;
  background: var(--nt-palette-orange-500, #f99b21);
  transform: scaleX(0);
  transform-origin: inline-start;
  transition: transform 640ms var(--nt-ease-entrance, cubic-bezier(0, 0, 0.2, 1));
  transition-delay: calc(var(--nt-i, 0) * 90ms + 320ms);
}

html.nt-motion .nt-conf-page .nt-reveal--rule.nt-reveal--in .elementor-heading-title::after {
  transform: scaleX(1);
}

/* The hero's picture breathes, and slides a little slower than the page. */
html.nt-motion .nt-conf-page .nt-hero-visual {
  will-change: transform;
}

html.nt-motion .nt-conf-page .nt-hero-visual img {
  animation: nt-hero-breathe 9s ease-in-out infinite alternate;
}

@keyframes nt-hero-breathe {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(0, -8px, 0) scale(1.025); }
}

/* Cards lift under the pointer. A card is an inner container that has
   a heading of its own and an icon or picture, and stands in a row of
   such containers — the feature cards, the speaker cards. The hero's
   date and place lines have an icon but no heading, and stay still. */
.nt-conf-page .e-parent:has(> .e-con + .e-con) > .e-con:has(> .elementor-widget-heading):has(> .elementor-widget-icon, > .elementor-widget-image) {
  transition:
    transform var(--nt-duration-slow, 320ms) var(--nt-ease-standard, ease),
    box-shadow var(--nt-duration-slow, 320ms) var(--nt-ease-standard, ease);
}

@media (hover: hover) {
  html.nt-motion .nt-conf-page .e-parent:has(> .e-con + .e-con) > .e-con:has(> .elementor-widget-heading):has(> .elementor-widget-icon, > .elementor-widget-image):hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px -22px rgba(22, 102, 51, 0.45);
  }
}

/* Buttons: a sheen crosses on hover, and the button leans forward. */
.nt-conf-page .elementor-button {
  position: relative;
  overflow: hidden;
  transition:
    transform var(--nt-duration-base, 200ms) var(--nt-ease-standard, ease),
    box-shadow var(--nt-duration-base, 200ms) var(--nt-ease-standard, ease);
}

.nt-conf-page .elementor-button::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.28) 50%, transparent 70%);
  transform: translateX(-130%);
  transition: transform 640ms var(--nt-ease-standard, ease);
  pointer-events: none;
}

html.nt-motion .nt-conf-page .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px -12px rgba(0, 0, 0, 0.35);
}

html.nt-motion .nt-conf-page .elementor-button:hover::after {
  transform: translateX(130%);
}

/* How far down the page the reader is: a hairline under the site header. */
.nt-progress {
  position: fixed;
  top: 0;
  inset-inline-start: 0;
  z-index: var(--nt-z-toast, 600);
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--nt-palette-green-600, #166633), var(--nt-palette-orange-500, #f99b21));
  transform: scaleX(var(--nt-progress, 0));
  transform-origin: inline-start;
  pointer-events: none;
}

.admin-bar .nt-progress {
  top: 32px;
}

@media (max-width: 782px) {
  .admin-bar .nt-progress {
    top: 46px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.nt-motion .nt-conf-page .nt-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html.nt-motion .nt-conf-page .nt-hero-visual img {
    animation: none;
  }
  .nt-conf-page .elementor-button::after {
    display: none;
  }
}
