/* ============ FOLD 06 · Full agenda ============ */

.agenda {
  position: relative;
  z-index: 1;                       /* waves overlap the blue carousel section above */
  display: flex; flex-direction: column; align-items: center;
 padding: 0.5637rem 0 2.8682rem;    /* Figma: 27.818 + 48.682 top */
  background: var(--sand-base);
}

/* Sand-coloured waves rising into the blue section */
.agenda__wave { position: absolute; left: 0; width: 152.4229rem; pointer-events: none; }
.agenda__wave--1 { top: -8.6372rem; height: 10.0537rem; }
.agenda__wave--2 { top: -6.7262rem; height: 9.8518rem; }

/* Beach photo fading in at the bottom (fade is baked into the PNG) */
.agenda__sand {
  position: absolute; left: 0; bottom: 0.017rem;
  width: 152.3922rem; height: 31.2317rem;
  object-fit: cover; object-position: top;
  pointer-events: none;
}

/* ---- Header ---- */
.agenda__head {
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: 1rem;
  width: 112rem; padding: 0 1.3909rem;
  text-align: center;
}
.agenda__eyebrow { font-weight: 500; font-size: 12px; line-height: 2.7818rem; color: var(--sand-900);text-transform: uppercase; }
.agenda__title   { font-weight: 700; font-size: 4rem; line-height: 1.15; color: var(--sunset-500); white-space: nowrap; }
.agenda__intro   { width: 106rem; text-wrap: balance; font-weight: 400; font-size: 20px;     line-height: 1.4; color: var(--sand-900); }

.agenda__download {
  position: relative;
  display: inline-flex; align-items: center; gap: 0.9563rem;
  margin-top: 1.9994rem;
  padding: 1.1301rem 2.0864rem;
  background: var(--sand-600);
  border: 0.1739rem solid transparent;
  border-radius: 99.9rem;
  font-weight: 900; font-size: 1.226rem; line-height: normal; letter-spacing: 0.0282rem;
  text-transform: uppercase; color: var(--white); white-space: nowrap;
  transition: background 0.2s, transform 0.2s;
}
.agenda__download:hover { background: #a37846; transform: translateY(-0.1rem); }
.agenda__download img { width: 1.304rem; height: 1.304rem; }

/* ---- Tabs + day content ---- */
.agenda__body {
  position: relative;
  display: flex; flex-direction: column; gap: 2.0864rem;
  width: 90.7572rem;
  padding: 2.7818rem 1.3909rem;
}

.agenda__tabs {
  display: flex; align-items: center; gap: 0.6955rem;
  padding: 1.3909rem;
  background: var(--sand-300);
  border: 0.0869rem solid rgba(255, 255, 255, 0.15);
  border-radius: 1.6rem;
}
.agenda__tab {
  flex: 1 0 0; min-width: 0;
  display: flex; align-items: center; justify-content: center;
  height: 3.825rem; padding: 0 1.7386rem;
  background: var(--white);
  border: 0.0869rem solid var(--sand-500);
  border-radius: 999.9rem;
  font-weight: 700; font-size: 1.2rem; line-height: 1.3909rem; letter-spacing: -0.04rem;
  color: var(--sand-900); white-space: nowrap;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.agenda__tab:hover { background: #fbf4e7; }
.agenda__tab.is-active {
  background: var(--sand-900);
  border-color: rgba(255, 255, 255, 0.15);
  color: #f3f6f9;
}

/* Day content lives in a fixed-height window: switching days never moves the page —
   longer days scroll inside it (height = Day 1, so Day 1 fits exactly). */
.agenda__panels {
  --gutter: 1.2rem;
  height: 32.32rem;
  margin-right: calc(var(--gutter) * -1);            /* keep content width identical when a scrollbar appears */
  overflow-y: auto;
  overflow-anchor: none;
  overscroll-behavior: auto;                          /* at the end, the page carries on scrolling */
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: var(--sand-600) transparent;
  outline: none;
}
.agenda__panels::-webkit-scrollbar { width: 0.6rem; }
.agenda__panels::-webkit-scrollbar-thumb { background: var(--sand-600); border-radius: 9.9rem; }
.agenda__panels::-webkit-scrollbar-track { background: transparent; }
/* soft fade at the bottom while there's more to read */
.agenda__panels.has-more {
  -webkit-mask-image: linear-gradient(#000 calc(100% - 4.6rem), transparent);
          mask-image: linear-gradient(#000 calc(100% - 4.6rem), transparent);
}

.agenda__panel { display: flex; flex-direction: column; gap: 2.0864rem; }
.agenda__panel-inner { display: flex; flex-direction: column; gap: 2.0864rem; }
.agenda__acc { display: none; }                      /* phone-only accordion headers (mobile.css) */
.agenda__panel[hidden] { display: none; }
.agenda__panel.is-entering { animation: agenda-in 0.45s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes agenda-in { from { opacity: 0; transform: translateY(1.2rem); } }

.agenda__daylabel { font-weight: 700; font-size: 0.956rem; line-height: normal; letter-spacing: 0.14rem; color: var(--sand-800); }
.agenda__day { display: flex; flex-direction: column; gap: 1.3909rem; }

.ag-card { background: var(--white); border-radius: 1.6rem; overflow: hidden; }

/* Summary row */
.agenda__summary { display: flex; align-items: stretch; gap: 2.0864rem; }
.ag-card--summary { flex: 1 0 0; min-width: 0; display: flex; flex-direction: column; gap: 1.2171rem; padding: 2.0864rem; }
.ag-card__title { font-weight: 700; font-size: 1.4rem; line-height: normal; color: #0f2742; }
.ag-list { display: flex; flex-direction: column; }
.ag-list li { display: flex; align-items: flex-start; gap: 0.8693rem; }
.ag-dot { font-weight: 700; color: #4a7fb5; }
.ag-list--rich { gap: 1.0432rem; }
.ag-list--rich .ag-dot { font-size: 1.304rem; line-height: 1.8256rem; }
.ag-list--rich li > span:last-child { display: flex; flex-direction: column; gap: 0.1739rem; }
.ag-list--rich b     { font-weight: 700; font-size: 1.2rem; line-height: 1.8256rem; color: #0f2742; }
.ag-list--rich small { font-weight: 400; font-size: 1.174rem; line-height: 1.5648rem; color: #46586b; }
.ag-list--plain { gap: 0.9563rem; }
.ag-list--plain li { font-size: 1.261rem; line-height: 1.7386rem; color: #0f2742; }
.ag-list--plain .ag-dot { font-size: 1.217rem; }

/* Session row: white card + gradient tag panel (alternating sides) */
.agenda__row { display: flex; align-items: stretch; gap: 1.3909rem; }
.ag-session { flex: 1 0 0; min-width: 0; display: flex; flex-direction: column; gap: 0.5216rem; padding: 2.0864rem;line-height: 1.4; }
.ag-session__time  { font-weight: 700; font-size: 1.087rem; line-height: 1.4; letter-spacing: 0.02rem; color: var(--sand-800); }
.ag-session__title { font-weight: 700; font-size: 1.739rem; line-height: 1.4; color: #0f2742; }
.ag-session__desc  { font-weight: 400; font-size: 1.174rem; line-height: 1.4; color: #46586b; }
.ag-tag {
  flex-shrink: 0; width: 29.9047rem;
  display: flex; align-items: center;
  padding: 2.0864rem;
  border-radius: 1.6rem;
  background: linear-gradient(158.14deg, var(--g1) 14.644%, var(--g2) 85.356%);
  font-weight: 700; font-size: 1.739rem; line-height: 1.5; letter-spacing: 0.06rem;
  color: var(--white); white-space: nowrap;
}

/* Dual-track table (Figma variant is 1753 wide → values × 0.8693) */
.ag-dual { display: flex; flex-direction: column; gap: 1.3909rem; padding: 2.0864rem; }
.ag-dual__head { display: flex; flex-direction: column; gap: 0.3477rem; }
.ag-dual__head h3 { font-weight: 700; font-size: 1.8256rem; line-height: normal; color: #0f2742; }
.ag-dual__head p  { font-weight: 400; font-size: 1.1736rem; line-height: 1.5648rem; color: #7c8ca0; }
.ag-dual__cols {
  display: flex; gap: 1.3909rem;
  font-weight: 700; font-size: 0.8693rem; line-height: normal; letter-spacing: 0.0695rem; color: #7c8ca0;
}
.ag-dual__cols span:first-child { width: 13.04rem; flex-shrink: 0; }
.ag-dual__cols span.is-biz  { flex: 1 0 0; color: #4a7fb5; }
.ag-dual__cols span.is-tech { flex: 1 0 0; color: #b0763f; }
.ag-dual__rows { display: flex; flex-direction: column; gap: 0.8693rem; }
.ag-dual__row { display: flex; align-items: stretch; gap: 1.3909rem; }
.ag-dual__time {
  width: 13.04rem; flex-shrink: 0; display: flex; align-items: center;
  font-weight: 700; font-size: 1.217rem; line-height: 1.5648rem; color: var(--brand-blue);
}
.ag-chip {
  flex: 1 0 0; min-width: 0;
  padding: 1.217rem 1.3909rem;
  border-radius: 0.6955rem;
  font-weight: 700; font-size: 1.304rem; line-height: 1.6517rem; color: #0f2742;
}
.ag-chip--biz  { background: #eff8fd; }
.ag-chip--tech { background: #fef3ea; }

/* ---- Lab & Technical Center explainer ---- */
.lab {
  position: relative;
  display: flex; align-items: center; gap: 2.608rem;
  width: 89.2794rem;                         /* 1523.922 − 2 × 315.564 */
  padding: 2.7818rem 3.1296rem;
  background: var(--white);
  border-radius: 2.6rem;
  box-shadow: 0 0.1739rem 0.5216rem rgba(23, 63, 107, 0.05), 0 0.8693rem 2.0864rem rgba(23, 63, 107, 0.07);
}
.lab__copy { flex: 1 0 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 0.8867rem; }
.lab__pill {
  display: inline-flex; align-items: center; gap: 0.8693rem;
  padding: 0.7824rem 1.5648rem 0.7824rem 1.1301rem;
  border: 0.0869rem solid var(--brand-cyan);
  border-radius: 99.9rem;
  font-weight: 900; font-size: 1.139rem; line-height: normal; text-transform: uppercase; color: var(--brand-cyan);
}
.lab__pill img { width: 2.7678rem; height: 2.7818rem; }
.lab__title { padding-top: 0.3303rem; font-weight: 900; font-size: 1.999rem; line-height: normal; letter-spacing: -0.0461rem; color: #0e2c4d; }
.lab__text  { font-weight: 400; font-size: 1.434rem; line-height: 2.3211rem; color: #41627e; }
.lab__list  { display: flex; flex-direction: column; gap: 1.3909rem; padding-top: 0.5042rem; }
.lab__list li {
  display: flex; align-items: center; gap: 1.0432rem; height: 1.5648rem;
  font-weight: 500; font-size: 1.321rem; line-height: normal; color: #173f6b; white-space: nowrap;
}
.lab__list img { width: 2.2362rem; height: 1.0432rem; }
.lab__robot { flex-shrink: 0; width: 23.4132rem; height: 24.9669rem; object-fit: contain; }

/* ---- 3D ball on the sand (bottom-left) ---- */
.agenda .ball3d { left: 9.16rem; bottom: 8.66rem; width: 22rem; height: 22rem; }
.agenda .ball3d canvas { filter: none; }   /* the shader draws a sand contact shadow instead */
