/* =====================================================================
   Sub-pages — page hero, breadcrumb, speaker detail, agenda
   Built on the same design system tokens.
   ===================================================================== */

/* ---------- Page hero (compact dark header) ---------- */
.subhero {
  position: relative;
  background: linear-gradient(160deg, var(--ink) 0%, var(--ink-deep) 100%);
  color: #fff;
  overflow: hidden;
  padding: clamp(56px, 8vw, 104px) 0 clamp(48px, 6vw, 80px);
}
.subhero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(680px 460px at 84% 10%, rgba(180,146,76,.16), transparent 60%);
}
.subhero .wrap { position: relative; z-index: 2; }
.subhero .eyebrow { color: var(--brass-soft); }
.subhero .eyebrow::before { background: var(--brass-soft); }
.subhero h1 { color: #fff; font-size: clamp(2.2rem, 1.6rem + 3vw, 3.6rem); max-width: 20ch; }
.subhero__lead { color: var(--on-dark-72); font-size: var(--fs-lead); max-width: 60ch; margin-top: 18px; }

/* ---------- Breadcrumb ---------- */
.breadcrumb { display: flex; gap: 8px; align-items: center; margin-bottom: 22px; font-family: var(--font-display); font-size: .82rem; color: var(--on-dark-60); }
.breadcrumb a { color: var(--on-dark-72); transition: color var(--dur-fast) var(--ease); }
.breadcrumb a:hover { color: var(--brass-soft); }
.breadcrumb span { color: var(--on-dark-50); }

/* ---------- Speakers index grid ---------- */
.sp-index { background: var(--paper); }
.sp-index__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 900px) { .sp-index__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .sp-index__grid { grid-template-columns: 1fr; } }

/* ---------- Speaker detail ---------- */
.sp-detail { background: var(--paper); }
.sp-detail__grid {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}
@media (max-width: 820px) { .sp-detail__grid { grid-template-columns: 1fr; } }

.sp-detail__aside { position: sticky; top: calc(var(--header-h) + 24px); }
@media (max-width: 820px) { .sp-detail__aside { position: static; } }
.sp-detail__photo {
  position: relative;
  aspect-ratio: 1 / 1.12;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: radial-gradient(120% 120% at 30% 20%, #163a5f 0%, var(--ink) 55%, var(--ink-deep) 100%);
  border: 1px solid var(--slate-100);
}
.sp-detail__photo[data-initials]::before {
  content: attr(data-initials);
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 600; font-size: 3.4rem; color: var(--brass-soft);
}
.sp-detail__photo img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.03); }
.sp-detail__photo img[hidden] { display: none; }

.sp-detail__id { margin-top: 26px; }
.sp-detail__id h1 { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.4rem); color: var(--ink); }
.sp-detail__role { color: var(--slate-700); margin-top: 8px; font-size: 1.02rem; }
.sp-detail__co { margin-top: 10px; font-family: var(--font-display); font-weight: 600; color: var(--brass); }
.sp-detail__links { margin-top: 22px; display: flex; gap: 12px; flex-wrap: wrap; }

.sp-detail__body h2 { font-size: 1.5rem; margin: 0 0 18px; }
.sp-detail__body h2:not(:first-child) { margin-top: 48px; }
.sp-detail__body p { color: var(--slate-700); font-size: 1.05rem; max-width: 66ch; margin-bottom: 16px; }
.sp-detail__session {
  margin-top: 14px;
  border: 1px solid var(--slate-100);
  border-left: 3px solid var(--brass);
  border-radius: var(--r);
  padding: 28px 30px;
  background: #fff;
}
.sp-detail__session .chip { margin-bottom: 16px; }
.sp-detail__session h3 { font-size: 1.35rem; margin-bottom: 14px; }
.takeaways { margin-top: 22px; display: grid; gap: 12px; }
.takeaways li { position: relative; padding-left: 26px; color: var(--slate-700); }
.takeaways li::before {
  content: ""; position: absolute; left: 0; top: .55em;
  width: 10px; height: 10px; border: 1.5px solid var(--brass); border-radius: 50%;
}

/* ---------- Agenda ---------- */
.agenda { background: var(--paper); }
.agenda__tabs { display: inline-flex; gap: 6px; padding: 5px; background: var(--white); border: 1px solid var(--slate-100); border-radius: var(--r-pill); margin-bottom: 44px; }
.agenda__tab {
  font-family: var(--font-display); font-weight: 600; font-size: .92rem;
  padding: 11px 24px; border-radius: var(--r-pill); border: 0; cursor: pointer;
  background: transparent; color: var(--slate-700);
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.agenda__tab[aria-selected="true"] { background: var(--ink); color: #fff; }

.agenda__day { display: none; }
.agenda__day.is-active { display: block; animation: fadeUp .45s var(--ease); }
@media (prefers-reduced-motion: reduce) { .agenda__day.is-active { animation: none; } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.session {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 28px;
  padding: 28px 0;
  border-top: 1px solid var(--slate-100);
}
.session:last-child { border-bottom: 1px solid var(--slate-100); }
@media (max-width: 620px) { .session { grid-template-columns: 1fr; gap: 8px; } }
.session__time { font-family: var(--font-display); font-weight: 600; color: var(--ink); font-size: .95rem; }
.session__time span { display: block; color: var(--slate-500); font-weight: 500; font-size: .8rem; margin-top: 4px; }
.session__body h3 { font-size: 1.22rem; margin-bottom: 8px; }
.session__body p { color: var(--slate-700); font-size: .98rem; max-width: 70ch; }
.session__by { margin-top: 12px; font-family: var(--font-display); font-weight: 600; font-size: .88rem; color: var(--brass); }
.session--keynote .session__body h3 { color: var(--ink); }
.session--break { opacity: .78; }
.session--break .session__body h3 { font-size: 1.02rem; color: var(--slate-500); font-family: var(--font-display); font-weight: 600; }

.agenda__note {
  margin-top: 44px; padding: 26px 30px;
  background: var(--brass-08); border: 1px solid rgba(180,146,76,.24); border-radius: var(--r);
  color: var(--slate-700); font-size: .98rem;
}
.agenda__note b { color: var(--ink); }

/* =====================================================================
   Content pages — About, Contacts, Privacy, FAQ
   ===================================================================== */
.page { background: var(--paper); }
.page__intro { font-size: var(--fs-lead); line-height: 1.6; color: var(--slate-700); max-width: 66ch; }

.prose { max-width: 74ch; }
.prose h2 { font-size: 1.5rem; margin: 2.6rem 0 .6rem; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { font-size: 1.14rem; margin: 1.8rem 0 .4rem; }
.prose p { color: var(--slate-700); font-size: 1.05rem; line-height: 1.75; margin-bottom: 1rem; }
.prose ul { display: grid; gap: 10px; margin: 0 0 1.2rem; }
.prose ul li { position: relative; padding-left: 24px; color: var(--slate-700); font-size: 1.05rem; line-height: 1.6; }
.prose ul li::before { content: ""; position: absolute; left: 0; top: .62em; width: 9px; height: 9px; border: 1.5px solid var(--brass); border-radius: 50%; }
.prose a { color: var(--ink); border-bottom: 1px solid var(--brass); transition: color var(--dur) var(--ease); }
.prose a:hover { color: var(--brass); }
.prose strong { color: var(--ink); font-weight: 600; }

/* Contacts */
.contact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 6px; }
@media (max-width: 640px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-card { background: #fff; border: 1px solid var(--slate-100); border-radius: var(--r); padding: 30px 32px; transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.contact-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.contact-card .role { font-family: var(--font-display); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--brass); margin-bottom: 12px; }
.contact-card h3 { font-size: 1.15rem; margin-bottom: 10px; }
.contact-card p { color: var(--slate-700); font-size: .96rem; line-height: 1.6; margin-bottom: 12px; }
.contact-card a.contact-link { display: flex; align-items: center; gap: .4rem; font-family: var(--font-display); font-weight: 600; font-size: .98rem; color: var(--ink); }
.contact-card a.contact-link:hover { color: var(--brass); }
.contact-card a.contact-link + a.contact-link { margin-top: 4px; }

/* FAQ accordion */
.faq { max-width: 82ch; }
.faq__item { border-bottom: 1px solid var(--slate-100); }
.faq__item summary { cursor: pointer; list-style: none; padding: 24px 44px 24px 0; position: relative; font-family: var(--font-display); font-weight: 600; font-size: 1.08rem; color: var(--ink); transition: color var(--dur) var(--ease); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:hover { color: var(--brass); }
.faq__item summary::after { content: "+"; position: absolute; right: 4px; top: 21px; font-size: 1.5rem; line-height: 1; color: var(--brass); transition: transform var(--dur) var(--ease); }
.faq__item[open] summary::after { content: "\2013"; }
.faq__item p { color: var(--slate-700); font-size: 1.02rem; line-height: 1.75; padding: 0 44px 26px 0; max-width: 72ch; }

/* =====================================================================
   CTA band (sub-pages) — mirrors the homepage final CTA
   ===================================================================== */
.cta-band { background: linear-gradient(160deg, var(--ink) 0%, var(--ink-deep) 100%); color: #fff; text-align: center; position: relative; overflow: hidden; }
.cta-band::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(600px 400px at 50% 0%, rgba(180,146,76,.18), transparent 60%); }
.cta-band .wrap { position: relative; z-index: 2; }
.cta-band .eyebrow { justify-content: center; color: var(--brass-soft); }
.cta-band .eyebrow::before { background: var(--brass-soft); }
.cta-band h2 { color: #fff; max-width: 24ch; margin: 0 auto 16px; font-size: clamp(1.9rem, 3vw, 2.8rem); }
.cta-band p { color: var(--on-dark-72); font-size: 1.08rem; max-width: 54ch; margin: 0 auto 30px; }
.cta-band .cta-row { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
@media (max-width: 640px) {
  .cta-band .cta-row { flex-direction: column; align-items: stretch; }
  .cta-band .cta-row .btn { width: 100%; }
}
.sp-detail__nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--slate-100)}.sp-nav__link{font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--slate-700);transition:color var(--dur) var(--ease)}.sp-nav__link:hover{color:var(--brass)}
.sp-detail__cta{display:flex;align-items:center;gap:18px;margin-top:20px;flex-wrap:wrap}.sp-detail__cta .sp-detail__links{margin-top:0}.sp-detail__cta .sp-logo{margin:0}
@media (max-width:820px){.sp-detail__aside{display:grid;grid-template-columns:minmax(120px,36%) 1fr;grid-template-areas:"photo id" "links logo";column-gap:22px;row-gap:14px;align-items:start}.sp-detail__photo{grid-area:photo;align-self:start;aspect-ratio:1/1.14}.sp-detail__id{grid-area:id;margin-top:0}.sp-detail__cta{display:contents}.sp-detail__cta .sp-detail__links{grid-area:links;margin-top:8px}.sp-detail__cta .sp-logo{grid-area:logo;align-self:end;margin:0}}
.sp-detail__body .link-brass{font-size:inherit}
.agenda__tab{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 28px;line-height:1.4}.agenda__tab-d{font-family:var(--font-display);font-weight:700;font-size:1.02rem;letter-spacing:-.01em}.agenda__tab-date{font-family:var(--font-serif);font-style:italic;font-size:.84rem;color:var(--brass)}.agenda__tab[aria-selected="true"] .agenda__tab-date{color:var(--brass-soft)}
