@font-face {
  font-family: Castoro;
  src: url("/assets/Castoro-Regular.ttf");
}
@font-face {
  font-family: Raleway;
  src: url("/assets/Raleway-Regular.ttf");
  font-weight: 400;
}
@font-face {
  font-family: Raleway;
  src: url("/assets/Raleway-SemiBold.ttf");
  font-weight: 600;
}
@font-face {
  font-family: Raleway;
  src: url("/assets/Raleway-Bold.ttf");
  font-weight: 700;
}
:root {
  --ivory: #f9f4ec;
  --navy: #101c33;
  --navy2: #223250;
  --gold: #b89e60;
  --goldText: #715c2d;
  --ink: #45403a;
  --muted: #6d675f;
  --line: #d9cfbf;
  --serif: Castoro, Georgia, serif;
  --sans: Raleway, Arial, sans-serif;
  --page: 1320px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
  overflow-x: hidden;
}
body {
  margin: 0;
  overflow-x: clip;
  background: var(--ivory);
  color: var(--ink);
  font: 400 16px/1.65 var(--sans);
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
a {
  color: inherit;
  text-underline-offset: 4px;
}
h1,
h2,
h3 {
  margin: 0;
  color: var(--navy);
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.08;
}
h1 {
  font-size: clamp(3.25rem, 7.7vw, 7.25rem);
  color: #fff;
}
h1 em {
  color: var(--gold);
  font-weight: 400;
}
h2 {
  font-size: clamp(2.45rem, 5vw, 4.65rem);
}
h3 {
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}
p {
  max-width: 66ch;
}
.container {
  width: calc(100% - 40px);
  max-width: var(--page);
  margin-inline: auto;
}
.section {
  padding: clamp(5rem, 9vw, 9rem) 0;
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1.5rem;
  color: var(--goldText);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.eyebrow:before {
  width: 36px;
  height: 2px;
  background: currentColor;
  content: "";
}
.on-dark {
  color: #d5c18e;
}
.lead {
  font-size: 1.08rem;
}
.skip {
  position: fixed;
  top: -100px;
  left: 1rem;
  z-index: 200;
  padding: 0.8rem 1rem;
  background: #fff;
}
.skip:focus {
  top: 1rem;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(249, 244, 236, 0.97);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}
.nav-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: calc(100% - 40px);
  max-width: 1344px;
  min-height: 84px;
  margin: auto;
}
.brand {
  display: flex;
  align-items: center;
  min-height: 56px;
}
.brand img {
  width: 190px;
}
.site-header nav {
  display: flex;
  align-items: center;
  gap: clamp(0.8rem, 1.6vw, 1.75rem);
}
.site-header nav > a:not(.button) {
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
}
.menu {
  display: none;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  min-height: 52px;
  padding: 13px 25px;
  border: 1px solid var(--gold);
  border-radius: 2px;
  background: var(--gold);
  color: #101010;
  font-size: 0.87rem;
  font-weight: 700;
  text-decoration: none;
  transition:
    transform 0.16s ease,
    background 0.18s ease,
    border-color 0.18s ease;
}
.button:hover {
  transform: translateY(-4px);
  background: #d5c18e;
  border-color: #d5c18e;
}
.button:focus-visible,
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 3px solid #866a20;
  outline-offset: 4px;
}
.compact {
  min-height: 44px;
  padding: 10px 16px;
}
.ghost {
  background: transparent;
  color: #fff;
}
.ghost:hover {
  background: #fff;
  color: var(--navy);
}
.secondary {
  border-color: var(--navy);
  background: transparent;
  color: var(--navy);
}
.secondary:hover {
  background: var(--navy);
  color: #fff;
}
.hero {
  position: relative;
  overflow: hidden;
  padding: clamp(6rem, 11vw, 10.5rem) 0;
  background: var(--navy);
  color: #f3eee5;
}
.hero:after {
  position: absolute;
  right: -13vw;
  bottom: -33vw;
  width: 70vw;
  height: 70vw;
  border: 1px solid rgba(184, 158, 96, 0.24);
  border-radius: 50%;
  box-shadow:
    0 0 0 9vw rgba(184, 158, 96, 0.04),
    0 0 0 18vw rgba(184, 158, 96, 0.03);
  content: "";
}
.hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(310px, 0.65fr);
  align-items: end;
  gap: clamp(3rem, 8vw, 8rem);
}
.hero-lead {
  max-width: 46rem;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
}
.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.25rem;
}
.event-card {
  padding: 2rem;
  border-top: 6px solid var(--gold);
  background: #fff;
  color: var(--ink);
}
.year {
  display: block;
  margin-bottom: 1rem;
  color: var(--navy);
  font: 400 clamp(3rem, 6vw, 5rem)/1 var(--serif);
}
dl {
  margin: 0;
}
.event-card dl > div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}
dt {
  color: var(--goldText);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
dd {
  margin: 0;
  color: var(--navy);
  font-weight: 600;
}
.section-head {
  max-width: 800px;
  margin-bottom: 3rem;
}
.editorial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--navy);
  color: #e7ebf1;
}
.editorial-grid article {
  padding: clamp(2rem, 4vw, 3.5rem);
  border-right: 1px solid var(--gold);
}
.editorial-grid article:last-child {
  border: 0;
}
.editorial-grid span {
  display: block;
  margin-bottom: 1.5rem;
  color: var(--gold);
  font: 400 4rem/1 var(--serif);
}
.editorial-grid h3 {
  color: #fff;
}
.speaker {
  background: var(--navy);
  color: #e7ebf1;
}
.speaker h2,
.panel h2,
.heritage h2,
.closing h2 {
  color: #fff;
}
.split {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  align-items: center;
  gap: clamp(3rem, 9vw, 9rem);
}
.portrait {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 4/5;
  padding: 2rem;
  background: linear-gradient(145deg, #2a3955, #101c33 70%);
  border: 1px solid rgba(184, 158, 96, 0.6);
  color: var(--gold);
  box-shadow: inset 18px 18px 0 rgba(184, 158, 96, 0.08);
}
.portrait span {
  font: 400 clamp(7rem, 18vw, 14rem)/0.7 var(--serif);
  letter-spacing: -0.12em;
}
.portrait div {
  margin-top: 2rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.role {
  color: var(--gold);
  font-weight: 600;
}
.ticks {
  display: grid;
  gap: 0.65rem;
  padding: 0;
  list-style: none;
}
.ticks li {
  position: relative;
  padding-left: 1.4rem;
}
.ticks li:before {
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 7px;
  height: 7px;
  background: var(--gold);
  content: "";
}
.topic {
  background: #fff;
}
.topic-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 9vw, 9rem);
}
.subtitle {
  color: var(--goldText);
  font-weight: 600;
}
.questions {
  border-top: 1px solid var(--gold);
}
.questions p {
  position: relative;
  margin: 0;
  padding: 1.5rem 1rem 1.5rem 2.25rem;
  border-bottom: 1px solid var(--line);
  color: var(--navy);
  font: 400 1.2rem/1.45 var(--serif);
}
.questions p:before {
  position: absolute;
  left: 0;
  color: var(--gold);
  content: "?";
}
.panel,
.heritage,
.closing {
  background: var(--navy);
  color: #e7ebf1;
}
.panel h2 {
  max-width: 16ch;
}
.people {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 4rem;
  border-top: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
}
.people article {
  display: grid;
  align-content: end;
  min-height: 220px;
  padding: 2rem;
  border-right: 1px solid var(--gold);
}
.people article:last-child {
  border: 0;
}
.people b {
  color: #fff;
  font: 400 1.55rem var(--serif);
}
.people span {
  margin-top: 0.7rem;
  color: #d5c18e;
  font-size: 0.8rem;
}
.schedule-grid {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: clamp(3rem, 9vw, 9rem);
}
.schedule header {
  align-self: start;
  position: sticky;
  top: 120px;
}
.timeline {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.timeline li {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 1.5rem;
  padding: 1.65rem 0;
  border-bottom: 1px solid var(--line);
}
.timeline time {
  color: var(--goldText);
  font-weight: 700;
}
.timeline p {
  margin: 0.35rem 0 0;
}
.attendance {
  background: #fff;
}
.attendance-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--line);
}
.attendance-grid article {
  padding: clamp(2rem, 5vw, 4rem);
}
.attendance-grid article + article {
  border-left: 1px solid var(--gold);
}
.format {
  display: block;
  margin-bottom: 1.5rem;
  color: var(--goldText);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.price-note {
  margin: 2rem 0 0;
}
.heritage-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(3rem, 9vw, 9rem);
}
.text-link {
  display: inline-block;
  margin-top: 1rem;
  color: var(--gold);
  font-weight: 700;
}
.media {
  border-top: 1px solid var(--gold);
}
.label {
  color: var(--gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.media a {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid #53617a;
  text-decoration: none;
}
.media a:hover span {
  text-decoration: underline;
}
.media b {
  color: var(--gold);
}
.partners {
  padding-block: 4rem;
  background: #fff;
}
.partner-row {
  display: flex;
  align-items: center;
  gap: 3rem;
}
.partner-row a {
  color: var(--navy);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-decoration: none;
}
.venue-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 8vw, 8rem);
  align-items: stretch;
}
.venue address {
  margin: 1.5rem 0;
  font-style: normal;
  font-weight: 600;
}
.travel > div {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}
.map-stub {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 460px;
  padding: 2.5rem;
  background-color: var(--navy);
  background-image:
    linear-gradient(rgba(184, 158, 96, 0.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(184, 158, 96, 0.13) 1px, transparent 1px);
  background-size: 46px 46px;
  color: #fff;
  text-decoration: none;
}
.map-stub span {
  color: var(--gold);
  font-weight: 700;
  letter-spacing: 0.15em;
}
.map-stub strong {
  font: 400 clamp(2.4rem, 5vw, 4.5rem)/1.2 var(--serif);
}
.map-stub i {
  align-self: flex-end;
  color: var(--gold);
  font-style: normal;
}
.faq {
  background: #fff;
}
.faq-grid {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: clamp(3rem, 8vw, 8rem);
}
details {
  border-top: 1px solid var(--line);
}
details:last-child {
  border-bottom: 1px solid var(--line);
}
summary {
  position: relative;
  padding: 1.5rem 3rem 1.5rem 0;
  color: var(--navy);
  font-weight: 700;
  cursor: pointer;
}
summary:after {
  position: absolute;
  right: 0.5rem;
  color: var(--gold);
  content: "+";
}
details[open] summary:after {
  content: "−";
}
details p {
  margin-top: 0;
  padding-bottom: 1.5rem;
}
.closing {
  padding: clamp(5rem, 9vw, 8rem) 0;
}
.closing-inner {
  max-width: 980px;
}
.closing h2 {
  max-width: 14ch;
}
.closing .button {
  margin-top: 1.5rem;
}
footer {
  padding: 4rem 0 1.5rem;
  background: #f1e9dc;
  border-top: 1px solid var(--gold);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 0.8fr;
  gap: 3rem;
}
.footer-grid img {
  width: 190px;
}
.footer-grid b {
  color: var(--navy);
}
.footer-grid nav {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  font-size: 0.75rem;
}
@media (max-width: 980px) {
  .site-header nav {
    display: none;
    position: absolute;
    top: 84px;
    left: 0;
    width: 100%;
    padding: 1.5rem 20px;
    background: var(--ivory);
    border-bottom: 1px solid var(--line);
    flex-direction: column;
    align-items: stretch;
  }
  .site-header nav.open {
    display: flex;
  }
  .menu {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 0 1rem;
    border: 1px solid var(--navy);
    border-radius: 2px;
    background: transparent;
    color: var(--navy);
    font: 700 0.75rem var(--sans);
  }
  .hero-grid,
  .split,
  .topic-grid,
  .schedule-grid,
  .heritage-grid,
  .venue-grid,
  .faq-grid {
    grid-template-columns: 1fr;
  }
  .event-card {
    max-width: 580px;
  }
  .speaker .portrait {
    max-width: 560px;
  }
  .schedule header {
    position: static;
  }
  .people {
    grid-template-columns: 1fr 1fr;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-grid nav {
    grid-column: 1/-1;
  }
}
@media (max-width: 700px) {
  .container,
  .nav-shell {
    width: calc(100% - 32px);
  }
  .hero {
    padding-top: 5rem;
  }
  .editorial-grid,
  .attendance-grid,
  .people {
    grid-template-columns: 1fr;
  }
  .editorial-grid article,
  .people article {
    border-right: 0;
    border-bottom: 1px solid var(--gold);
  }
  .attendance-grid article + article {
    border-left: 0;
    border-top: 1px solid var(--gold);
  }
  .timeline li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
  .media a {
    grid-template-columns: 1fr;
  }
  .partner-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .footer-grid nav {
    grid-column: auto;
  }
  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
  }
  .map-stub {
    min-height: 340px;
  }
}

/* Task #327: practical venue, local route map and accessible map actions. */
.venue-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  background: transparent;
  border: 0;
  gap: 1px;
}
.venue-personal { grid-column: 1; grid-row: 1; }
.route-map { grid-column: 2; grid-row: 1; }
.venue-online { grid-column: 1 / -1; grid-row: 2; }
.venue-card,
.route-map {
  min-width: 0;
  margin: 0;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  background: #fff;
  border: 1px solid var(--gold);
  border-radius: 2px;
  box-shadow: none;
}
.venue-card { font-size: 1rem; }
.venue-card a:not(.button) { color: var(--navy); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.route-map { display: flex; flex-direction: column; gap: 1.25rem; }
.route-map img { display: block; width: 100%; height: auto; border: 1px solid rgba(16,28,51,.18); border-radius: 2px; }
.route-map figcaption { display: grid; gap: .45rem; color: var(--navy); font-size: 1rem; line-height: 1.55; }
.route-map figcaption strong { font: 400 1.5rem/1.2 var(--serif); }
.map-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: auto; }
.map-actions .button { min-width: 190px; min-height: 48px; border-radius: 2px; }
@media (max-width: 980px) {
  .venue-grid { grid-template-columns: 1fr; }
  .venue-personal { grid-column: 1; grid-row: 1; }
  .route-map { grid-column: 1; grid-row: 2; }
  .venue-online { grid-column: 1; grid-row: 3; }
}
@media (max-width: 700px) {
  .venue-card, .route-map { padding: 1.35rem; }
  .map-actions { flex-direction: column; }
  .map-actions .button { width: 100%; }
}

/* Task #312: approved light ivory / white-card rework of four sections. */
.speaker,
.panel,
.schedule,
.attendance,
.venue {
  background: var(--ivory);
  color: var(--navy);
}
.speaker h2,
.panel h2,
.schedule h2,
.attendance h2,
.venue h2,
.speaker p,
.panel p,
.schedule p,
.attendance p,
.venue p,
.speaker li,
.panel b,
.schedule h3,
.attendance h3,
.venue address,
.venue dt,
.venue dd {
  color: var(--navy);
}
.speaker .eyebrow.on-dark,
.panel .eyebrow.on-dark {
  color: var(--goldText);
}
.speaker .eyebrow.on-dark::before,
.panel .eyebrow.on-dark::before {
  background: var(--gold);
}
.speaker-portrait,
.panel .people,
.schedule .timeline li,
.schedule .timeline li.featured,
.attendance-grid,
.attendance-cta,
.venue-grid {
  background: #fff;
  border-color: var(--gold);
  border-radius: 2px;
  box-shadow: none;
}
.speaker-portrait figcaption {
  background: #fff;
  border-color: var(--gold);
}
.speaker-portrait strong,
.speaker-portrait span,
.panel .people b,
.panel .people span {
  color: var(--navy);
}
.speaker-portrait span,
.panel .people span,
.schedule time,
.attendance .format {
  color: var(--goldText);
}
.panel .people article,
.panel .people article:last-child,
.panel .people article:nth-child(odd),
.schedule .timeline li,
.schedule .timeline li.featured,
.attendance-grid article + article,
.attendance-cta,
.map-stub {
  border-color: var(--gold);
}
.schedule .timeline li.featured {
  background: #fff;
}
.schedule .timeline li.featured::before {
  background: var(--gold);
}
.attendance-grid article {
  background: #fff;
}
.venue-grid {
  background: #fff;
}
.map-stub {
  grid-column: 1;
  grid-row: 1;
  background-color: #fff;
  color: var(--navy);
  border-right: 1px solid var(--gold);
  border-left: 0;
  box-shadow: none;
}
.map-stub::before,
.map-stub::after {
  opacity: 0.1;
}
.map-stub span,
.map-stub i {
  color: var(--goldText);
}
.venue-grid > div {
  grid-column: 2;
  grid-row: 1;
}

@media (max-width: 980px) {
  .speaker-portrait,
  .panel .people,
  .schedule .timeline li,
  .attendance-grid,
  .attendance-cta,
  .venue-grid {
    border-color: var(--gold);
  }
  .venue-grid > div,
  .map-stub {
    grid-column: auto;
    grid-row: auto;
  }
  .map-stub {
    border-top: 1px solid var(--gold);
    border-right: 0;
  }
}

/* Task #310: structural rework of the four authorised conference sections. */
@media (min-width: 981px) {
  .speaker {
    padding-block: clamp(5rem, 7vw, 7rem);
  }
  .speaker-grid {
    grid-template-columns: minmax(0, 0.74fr) minmax(480px, 1.26fr);
    align-items: stretch;
    gap: clamp(2.5rem, 5vw, 5rem);
  }
  .speaker-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: 1.5rem;
  }
  .speaker-copy h2 {
    font-size: clamp(3.7rem, 5.7vw, 5.4rem);
  }
  .speaker-copy .role {
    margin: 1rem 0 1.75rem;
  }
  .speaker-portrait {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 205px;
    min-height: 580px;
    border: 1px solid rgba(184, 158, 96, 0.52);
  }
  .speaker-portrait img {
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
  }
  .speaker-portrait figcaption {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 0.65rem;
    padding: 1.75rem;
    border-top: 0;
    border-left: 1px solid var(--gold);
  }

  .panel {
    padding-block: clamp(4.5rem, 6vw, 6rem);
  }
  .panel .container {
    display: grid;
    grid-template-columns: minmax(250px, 0.58fr) minmax(0, 1.42fr);
    column-gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
  }
  .panel .eyebrow,
  .panel h2 {
    grid-column: 1;
  }
  .panel h2 {
    max-width: 11ch;
    font-size: clamp(2.7rem, 4vw, 4.25rem);
  }
  .people {
    grid-column: 2;
    grid-row: 1 / span 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    border: 1px solid rgba(184, 158, 96, 0.65);
  }
  .people article {
    grid-template-columns: 122px minmax(0, 1fr);
    gap: 1.25rem;
    min-height: 154px;
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(184, 158, 96, 0.52);
  }
  .people article:nth-child(odd) {
    border-right: 1px solid rgba(184, 158, 96, 0.52);
  }
  .people article:nth-last-child(-n + 2),
  .people article:last-child {
    border-bottom: 0;
  }
  .people img {
    height: 122px;
    aspect-ratio: 1;
  }
  .people b {
    font-size: 1.25rem;
  }

  .schedule {
    padding-block: clamp(5rem, 7vw, 7rem);
  }
  .schedule-grid {
    grid-template-columns: minmax(280px, 0.62fr) minmax(0, 1.38fr);
    gap: clamp(3rem, 7vw, 7rem);
  }
  .schedule h2 {
    max-width: 8ch;
    font-size: clamp(3.4rem, 5vw, 4.8rem);
  }
  .timeline {
    display: grid;
    gap: 0.7rem;
    border-top: 0;
  }
  .timeline li,
  .timeline li.featured {
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 1.5rem;
    min-height: 82px;
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid var(--line);
  }
  .timeline li.featured {
    padding-left: 1.5rem;
  }
  .timeline li.featured:before {
    top: 0;
    bottom: 0;
    width: 4px;
  }

  .attendance {
    padding-block: clamp(5rem, 7vw, 7rem);
  }
  .attendance .section-head {
    text-align: center;
  }
  .attendance .section-head .eyebrow {
    justify-content: center;
  }
  .attendance .section-head h2 {
    margin-inline: auto;
    max-width: 16ch;
  }
  .attendance-grid {
    margin-top: 3rem;
  }
  .attendance-grid article {
    min-height: 260px;
    padding: clamp(2rem, 3.5vw, 3rem);
  }
  .attendance-cta {
    margin-top: 0;
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-top: 0;
  }
  .venue {
    padding-block: clamp(5rem, 7vw, 7rem);
  }
  .venue-grid {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
    gap: 0;
    border: 1px solid var(--line);
  }
  .venue-grid > div {
    padding: clamp(2.5rem, 4vw, 4rem);
  }
  .map-stub {
    min-height: 100%;
    border-left: 1px solid var(--gold);
  }
}

@media (min-width: 701px) and (max-width: 980px) {
  .speaker-portrait {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    max-width: 760px;
    border: 1px solid rgba(184, 158, 96, 0.52);
  }
  .speaker-portrait figcaption {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border-top: 0;
    border-left: 1px solid var(--gold);
    padding: 1.5rem;
  }
  .people {
    gap: 0;
    border: 1px solid rgba(184, 158, 96, 0.65);
  }
  .people article {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(184, 158, 96, 0.52);
  }
  .people article:nth-child(odd) {
    border-right: 1px solid rgba(184, 158, 96, 0.52);
  }
  .people article:nth-last-child(-n + 2),
  .people article:last-child {
    border-bottom: 0;
  }
  .people img {
    height: 112px;
    aspect-ratio: 1;
  }
  .timeline {
    display: grid;
    gap: 0.7rem;
    border-top: 0;
  }
  .timeline li,
  .timeline li.featured {
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid var(--line);
  }
}

@media (max-width: 700px) {
  .speaker,
  .panel,
  .schedule,
  .attendance,
  .venue {
    padding-block: 4.5rem;
  }
  .speaker-portrait,
  .people,
  .attendance-grid,
  .venue-grid {
    border: 1px solid var(--line);
  }
  .speaker-portrait figcaption {
    padding: 1.25rem;
  }
  .people {
    gap: 0;
    margin-top: 2.5rem;
    border-color: rgba(184, 158, 96, 0.65);
  }
  .people article,
  .people article:last-child {
    grid-template-columns: 108px minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-bottom: 1px solid rgba(184, 158, 96, 0.52);
  }
  .people article:last-child {
    border-bottom: 0;
  }
  .people img {
    height: 108px;
    aspect-ratio: 1;
  }
  .people b {
    font-size: 1.2rem;
  }
  .timeline {
    display: grid;
    gap: 0.65rem;
    border-top: 0;
  }
  .timeline li,
  .timeline li.featured {
    gap: 0.25rem;
    padding: 1.15rem;
    background: #fff;
    border: 1px solid var(--line);
  }
  .timeline li.featured {
    padding-left: 1.15rem;
  }
  .timeline li.featured:before {
    top: 0;
    bottom: 0;
  }
  .attendance .section-head {
    text-align: left;
  }
  .attendance-grid {
    margin-top: 2.5rem;
  }
  .attendance-grid article {
    padding: 1.5rem;
  }
  .attendance-cta {
    margin-top: 0;
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-top: 0;
  }
  .venue-grid {
    gap: 0;
  }
  .venue-grid > div {
    padding: 1.5rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* Task 308: editorial speaker, panel and program composition. */
.speaker-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1.18fr);
  align-items: center;
  gap: clamp(3rem, 8vw, 8rem);
}
.speaker-copy {
  max-width: 38rem;
}
.speaker-portrait {
  margin: 0;
}
.speaker-portrait img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: center top;
  border-radius: 2px;
}
.speaker-portrait figcaption {
  display: grid;
  grid-template-columns: minmax(160px, 0.7fr) 1.3fr;
  gap: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gold);
}
.speaker-portrait strong {
  color: #fff;
  font: 400 1.55rem var(--serif);
}
.speaker-portrait span {
  color: var(--gold);
  font-size: 0.8rem;
}
.people {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 4rem);
  border: 0;
}
.people article {
  grid-template-columns: minmax(180px, 0.9fr) minmax(0, 1.1fr);
  align-items: end;
  align-content: initial;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  min-height: 0;
  padding: 0 0 clamp(1.5rem, 3vw, 2.5rem);
  border: 0;
  border-bottom: 1px solid var(--gold);
}
.people article:last-child {
  border-bottom: 1px solid var(--gold);
}
.people img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: center top;
  border-radius: 2px;
}
.people article div {
  display: grid;
  align-content: end;
}
.timeline li {
  grid-template-columns: minmax(120px, 150px) 1fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  padding: 2rem 0;
}
@media (max-width: 980px) {
  .speaker-grid {
    grid-template-columns: 1fr;
  }
  .speaker-portrait {
    max-width: 680px;
  }
  .people article {
    grid-template-columns: minmax(150px, 0.8fr) minmax(0, 1.2fr);
  }
}
@media (max-width: 700px) {
  .speaker-portrait figcaption {
    grid-template-columns: 1fr;
  }
  .people {
    grid-template-columns: 1fr;
  }
  .people article {
    grid-template-columns: 1fr;
  }
  .people img {
    aspect-ratio: 4/5;
  }
  .timeline li {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}

/* Task #299: focused CRO and spacing polish */
.brand img {
  width: 166px;
}
.hero-lead {
  max-width: 49rem;
}
.hero-facts {
  margin: 1.35rem 0 0;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.035em;
}
.year {
  margin-bottom: 0.8rem;
  color: var(--goldText);
  font-size: clamp(1.6rem, 3vw, 2.35rem);
  letter-spacing: 0.08em;
}
.attendance-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 2rem;
  padding: 1.5rem 0;
  border-top: 1px solid var(--line);
}
.price-note {
  display: grid;
  gap: 0.15rem;
  margin: 0;
}
.price-note span {
  color: var(--goldText);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.price-note strong {
  color: var(--navy);
  font: 400 1.75rem var(--serif);
}
.heritage {
  padding-block: clamp(4.5rem, 7vw, 7rem);
}
.heritage-grid {
  grid-template-columns: 0.9fr 1.1fr;
  align-items: start;
  gap: clamp(3rem, 7vw, 7rem);
}
.partners {
  padding-block: 2.75rem;
}
.mobile-ticket {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 120;
  display: none;
  align-items: center;
  gap: 8px;
  padding: 8px;
  background: var(--navy);
  border: 1px solid var(--gold);
  border-radius: 2px;
  box-shadow: 0 12px 34px rgba(16, 28, 51, 0.28);
  transform: translateY(140%);
  transition: transform 0.22s ease;
}
.mobile-ticket[hidden] {
  display: none;
}
.mobile-ticket.visible {
  transform: translateY(0);
}
.mobile-ticket .button {
  min-height: 48px;
  padding: 11px 15px;
}
.mobile-ticket-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid #d5c18e;
  border-radius: 2px;
  background: transparent;
  color: #fff;
  font: 400 1.7rem/1 var(--sans);
  cursor: pointer;
}
@media (max-width: 700px) {
  .attendance-cta {
    align-items: stretch;
    flex-direction: column;
  }
  .attendance-cta .button {
    width: 100%;
  }
  .mobile-ticket {
    display: flex;
    max-width: calc(100% - 24px);
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
  }
}

/* Task #302: final CRO and launch-ready preview */
.nav-shell {
  min-height: 92px;
}
.brand img {
  width: auto;
  height: 72px;
}
.button {
  min-height: 48px;
  border-radius: 4px;
}
.compact {
  min-height: 48px;
}
.registration-note,
.mid-cta small,
.attendance-cta small {
  display: block;
  margin: 0.75rem 0 0;
  max-width: 48ch;
  color: inherit;
  font-size: 0.76rem;
  line-height: 1.45;
}
.hero {
  padding: clamp(4.5rem, 7vw, 7rem) 0;
}
.hero-lead {
  max-width: 54rem;
}
.mid-cta {
  padding: 2.25rem 0;
  background: var(--ivory);
  border-top: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
}
.mid-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.mid-cta p {
  margin: 0;
  color: var(--navy);
  font: 400 clamp(1.4rem, 2.4vw, 2rem)/1.2 var(--serif);
}
.mid-cta small {
  text-align: right;
}
.timeline li.featured {
  position: relative;
  padding-left: 1rem;
  background: linear-gradient(90deg, rgba(184, 158, 96, 0.13), transparent 70%);
}
.timeline li.featured:before {
  position: absolute;
  top: 1.15rem;
  bottom: 1.15rem;
  left: 0;
  width: 3px;
  background: var(--gold);
  content: "";
}
.timeline li.featured h3 {
  font-weight: 600;
}
.attendance-cta {
  align-items: flex-end;
}
.attendance-cta .price-note span,
.attendance-cta .price-note strong {
  display: block;
}
.proof-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 2rem 0;
}
.proof-row span {
  padding-top: 1rem;
  border-top: 1px solid var(--gold);
  font-size: 0.8rem;
}
.proof-row b {
  display: block;
  color: #fff;
  font: 400 2rem var(--serif);
}
.faq-grid > header {
  position: relative;
}
.faq-sticky {
  position: sticky;
  top: 124px;
}
.faq-contact {
  margin-top: 2rem;
}
.faq-contact a {
  font-weight: 700;
}
.disclaimer {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}
.disclaimer p {
  margin: 0;
  max-width: 78ch;
  color: var(--navy);
  font-size: 0.78rem;
  line-height: 1.6;
}
.closing h2 {
  max-width: 18ch;
}
@media (min-width: 981px) and (max-height: 800px) {
  .hero {
    padding: 3.1rem 0;
  }
  .hero h1 {
    font-size: clamp(3.5rem, 5.7vw, 5.25rem);
  }
  .hero-lead {
    margin: 0.9rem 0;
    font-size: 1.04rem;
  }
  .hero-facts {
    margin: 0.75rem 0;
  }
  .hero .actions {
    margin-top: 1.1rem;
  }
  .hero .event-card {
    padding: 1.4rem;
  }
  .hero .event-card .year {
    font-size: 3rem;
    margin-bottom: 0.6rem;
  }
  .hero .event-card dl > div {
    padding: 0.62rem 0;
  }
  .hero .registration-note {
    margin-top: 0.5rem;
  }
}
@media (max-width: 980px) {
  .site-header nav {
    top: 92px;
  }
  .faq-sticky {
    position: static;
  }
  .mid-cta-inner {
    align-items: flex-start;
  }
  .attendance-cta {
    align-items: flex-start;
  }
}
@media (max-width: 700px) {
  .nav-shell {
    min-height: 76px;
  }
  .brand img {
    width: auto;
    height: 64px;
  }
  .site-header nav {
    top: 76px;
  }
  .hero {
    padding: 4rem 0;
  }
  .mid-cta-inner,
  .attendance-cta {
    display: grid;
    grid-template-columns: 1fr;
  }
  .mid-cta small {
    text-align: left;
  }
  .proof-row {
    grid-template-columns: 1fr;
  }
  .registration-note {
    font-size: 0.72rem;
  }
}

/* Task #310 final cascade layer. */
@media (min-width: 981px) {
  .speaker-grid {
    grid-template-columns: minmax(0, 0.74fr) minmax(480px, 1.26fr);
    align-items: stretch;
    gap: clamp(2.5rem, 5vw, 5rem);
  }
  .speaker-portrait {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 205px;
    min-height: 580px;
    border: 1px solid rgba(184, 158, 96, 0.52);
  }
  .speaker-portrait img {
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
  }
  .speaker-portrait figcaption {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 0.65rem;
    padding: 1.75rem;
    border-top: 0;
    border-left: 1px solid var(--gold);
  }
  .panel .container {
    display: grid;
    grid-template-columns: minmax(250px, 0.58fr) minmax(0, 1.42fr);
    column-gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
  }
  .panel .eyebrow,
  .panel h2 {
    grid-column: 1;
  }
  .panel h2 {
    max-width: 11ch;
    font-size: clamp(2.7rem, 4vw, 4.25rem);
  }
  .panel .people {
    grid-column: 2;
    grid-row: 1 / span 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    border: 1px solid rgba(184, 158, 96, 0.65);
  }
  .panel .people article,
  .panel .people article:last-child {
    grid-template-columns: 122px minmax(0, 1fr);
    gap: 1.25rem;
    min-height: 154px;
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(184, 158, 96, 0.52);
  }
  .panel .people article:nth-child(odd) {
    border-right: 1px solid rgba(184, 158, 96, 0.52);
  }
  .panel .people article:nth-last-child(-n + 2) {
    border-bottom: 0;
  }
  .panel .people img {
    height: 122px;
    aspect-ratio: 1;
  }
  .schedule-grid {
    grid-template-columns: minmax(280px, 0.62fr) minmax(0, 1.38fr);
    gap: clamp(3rem, 7vw, 7rem);
  }
  .schedule h2 {
    max-width: 8ch;
  }
  .schedule .timeline {
    display: grid;
    gap: 0.7rem;
    border-top: 0;
  }
  .schedule .timeline li,
  .schedule .timeline li.featured {
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 1.5rem;
    min-height: 82px;
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid var(--line);
  }
  .attendance .section-head {
    text-align: center;
  }
  .attendance .section-head .eyebrow {
    justify-content: center;
  }
  .attendance .section-head h2 {
    margin-inline: auto;
    max-width: 16ch;
  }
  .attendance-grid {
    margin-top: 3rem;
  }
  .attendance-cta {
    margin-top: 0;
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-top: 0;
  }
  .venue-grid {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
    gap: 0;
    border: 1px solid var(--line);
  }
  .venue-grid > div {
    padding: clamp(2.5rem, 4vw, 4rem);
  }
  .map-stub {
    min-height: 100%;
    border-left: 1px solid var(--gold);
  }
}

@media (max-width: 980px) {
  .schedule .timeline {
    display: grid;
    gap: 0.7rem;
    border-top: 0;
  }
  .schedule .timeline li,
  .schedule .timeline li.featured {
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid var(--line);
  }
}

@media (max-width: 700px) {
  .panel .people {
    gap: 0;
    border: 1px solid rgba(184, 158, 96, 0.65);
  }
  .panel .people article,
  .panel .people article:last-child {
    grid-template-columns: 108px minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-bottom: 1px solid rgba(184, 158, 96, 0.52);
  }
  .panel .people article:last-child {
    border-bottom: 0;
  }
  .panel .people img {
    height: 108px;
    aspect-ratio: 1;
  }
  .attendance-cta {
    margin-top: 0;
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-top: 0;
  }
}

/* Task #312 final cascade: approved light ivory / white-card rework. */
.speaker,
.panel,
.schedule,
.attendance,
.venue { background: var(--ivory); color: var(--navy); }
.speaker h2, .panel h2, .schedule h2, .attendance h2, .venue h2,
.speaker p, .panel p, .schedule p, .attendance p, .venue p,
.speaker li, .panel b, .schedule h3, .attendance h3,
.venue address, .venue dt, .venue dd { color: var(--navy); }
.speaker .eyebrow.on-dark, .panel .eyebrow.on-dark,
.speaker-portrait span, .panel .people span, .schedule time,
.attendance .format { color: var(--goldText); }
.speaker .eyebrow.on-dark::before,
.panel .eyebrow.on-dark::before { background: var(--gold); }
.speaker-portrait, .panel .people, .schedule .timeline li,
.schedule .timeline li.featured, .attendance-grid, .attendance-cta,
.venue-grid { background: #fff; border-color: var(--gold); border-radius: 2px; box-shadow: none; }
.speaker-portrait figcaption { background: #fff; border-color: var(--gold); }
.speaker-portrait strong, .panel .people b { color: var(--navy); }
.panel .people article, .panel .people article:last-child,
.panel .people article:nth-child(odd), .schedule .timeline li,
.schedule .timeline li.featured, .attendance-grid article + article,
.attendance-cta, .map-stub { border-color: var(--gold); }
.schedule .timeline li.featured, .attendance-grid article,
.venue-grid { background: #fff; }
.schedule .timeline li.featured::before { background: var(--gold); }
.map-stub {
  grid-column: 1;
  grid-row: 1;
  background-color: #fff;
  color: var(--navy);
  border-right: 1px solid var(--gold);
  border-left: 0;
  box-shadow: none;
}
.map-stub::before, .map-stub::after { opacity: 0.1; }
.map-stub span, .map-stub i { color: var(--goldText); }
.venue-grid > div { grid-column: 2; grid-row: 1; }

@media (max-width: 980px) {
  .venue-grid > div, .map-stub { grid-column: auto; grid-row: auto; }
  .map-stub { border-top: 1px solid var(--gold); border-right: 0; }
}

/* Task #312 rework after CTO #313: two authorised structural compositions. */
.speaker-grid {
  display: grid;
  align-items: start;
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
}
.speaker-intro {
  padding-top: 1rem;
}
.speaker-intro h2 {
  margin-bottom: 2rem;
  font-size: clamp(2.8rem, 4.4vw, 4.8rem);
}
.speaker-profile,
.speaker-topic,
.venue-card {
  min-width: 0;
  background: #fff;
  border: 1px solid var(--gold);
  border-radius: 2px;
  box-shadow: none;
}
.speaker-profile {
  padding: 1rem;
}
.speaker-profile .speaker-portrait {
  display: block;
  min-height: 0;
  margin: 0 0 1.5rem;
  border: 0;
  border-radius: 0;
}
.speaker-profile .speaker-portrait img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
}
.speaker-profile .speaker-portrait figcaption {
  display: grid;
  gap: 0.35rem;
  padding: 1rem 0 0;
  background: #fff;
  border: 0;
  border-top: 1px solid var(--gold);
}
.speaker-profile .speaker-portrait strong {
  color: var(--navy);
}
.speaker-profile .speaker-portrait span,
.speaker-profile .role {
  color: var(--goldText);
}
.speaker-topic {
  padding: clamp(1.5rem, 2.5vw, 2.5rem);
}
.speaker-topic h2 {
  margin-bottom: 0.35rem;
  font-size: clamp(2.15rem, 3.3vw, 3.65rem);
}
.speaker-topic .subtitle {
  color: var(--goldText);
}
.speaker-topic .questions {
  display: grid;
  gap: 0;
  margin-top: 1.75rem;
}
.speaker-topic .questions p {
  margin: 0;
  padding: 1rem 0;
  border-top: 1px solid var(--gold);
}
.venue-head {
  max-width: 54rem;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.venue-grid {
  display: grid;
  gap: 1rem;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.venue .map-stub {
  grid-column: 1;
  grid-row: 1;
  min-height: 100%;
  border: 1px solid var(--gold);
  border-radius: 2px;
  background-color: #fff;
  box-shadow: none;
}
.venue-grid > .venue-cards {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  gap: 1rem;
  padding: 0;
}
.venue-card {
  padding: clamp(1.5rem, 2.8vw, 2.5rem);
}
.venue-card h3 {
  margin: 0.5rem 0 0.25rem;
  color: var(--navy);
  font: 400 clamp(1.9rem, 3vw, 3rem)/1.08 var(--serif);
}
.venue-card h4 {
  margin: 0 0 1rem;
  color: var(--navy);
  font-size: 1rem;
}
.venue-card .format,
.venue-label {
  color: var(--goldText);
}
.venue-card .venue-label {
  margin-top: 1.75rem;
}
.venue-card .attendance-cta {
  margin-top: 1.75rem;
  padding: 1.5rem 0 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--gold);
  border-radius: 0;
}

@media (min-width: 981px) {
  .speaker-grid {
    grid-template-columns: minmax(220px, 0.72fr) minmax(320px, 1fr) minmax(340px, 1.08fr);
  }
  .venue-grid {
    grid-template-columns: minmax(380px, 0.9fr) minmax(460px, 1.1fr);
  }
}

@media (max-width: 980px) {
  .speaker-grid,
  .venue-grid {
    grid-template-columns: 1fr;
  }
  .speaker-intro,
  .speaker-profile,
  .speaker-topic,
  .venue .map-stub,
  .venue-grid > .venue-cards {
    grid-column: 1;
    grid-row: auto;
  }
  .speaker-profile {
    max-width: 680px;
  }
  .venue .map-stub {
    min-height: 360px;
  }
}

@media (max-width: 700px) {
  .speaker-intro h2 {
    font-size: clamp(2.55rem, 12vw, 3.6rem);
  }
  .venue-card .attendance-cta {
    display: grid;
  }
}

/* Task #317: authorised solid-navy hero with official local event-mark watermark. */
.hero {
  display: flex;
  min-height: min(900px, calc(100svh - 93px));
  padding: 0;
  isolation: isolate;
  background: var(--navy);
  color: #fff;
}
.hero::before {
  position: absolute;
  top: 50%;
  right: clamp(-7rem, -3vw, -2rem);
  z-index: -1;
  width: clamp(32rem, 54vw, 58rem);
  aspect-ratio: 168 / 120;
  background: var(--gold);
  content: "";
  opacity: 0.075;
  transform: translateY(-52%);
  -webkit-mask: url("/assets/vysehradske-forum-symbol.svg") center / contain no-repeat;
  mask: url("/assets/vysehradske-forum-symbol.svg") center / contain no-repeat;
  pointer-events: none;
}
.hero::after {
  content: none;
}
.hero-shell {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: inherit;
  padding-block: clamp(3rem, 6vw, 5.5rem) clamp(2rem, 4vw, 3.5rem);
}
.hero-main {
  position: relative;
  z-index: 1;
  max-width: 59rem;
}
.hero-meta {
  display: grid;
  width: fit-content;
  margin-bottom: clamp(2.75rem, 6vw, 5.25rem);
  padding-left: 1rem;
  border-left: 2px solid var(--gold);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  line-height: 1.45;
  text-transform: uppercase;
}
.hero-meta strong {
  color: var(--gold);
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
  font-weight: 700;
  letter-spacing: 0.035em;
}
.hero h1 {
  max-width: 12ch;
  font-size: clamp(3.65rem, 7.1vw, 6.8rem);
}
.hero-lead {
  max-width: 52rem;
  margin: 1.5rem 0 0;
  color: #fff;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
}
.hero .actions {
  margin-top: 1.75rem;
}
.hero .button {
  border-radius: 2px;
}
.hero-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(3rem, 7vw, 6rem);
  border: 1px solid rgba(184, 158, 96, 0.82);
  background: rgba(184, 158, 96, 0.82);
}
.hero-benefits article {
  min-width: 0;
  padding: clamp(1.15rem, 2vw, 1.75rem);
  background: rgba(16, 28, 51, 0.88);
}
.hero-benefits span {
  display: block;
  margin-bottom: 0.75rem;
  color: var(--gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.hero-benefits h2 {
  color: #fff;
  font: 600 clamp(0.92rem, 1.25vw, 1.08rem)/1.45 var(--sans);
  letter-spacing: 0;
}

@media (max-width: 980px) {
  .hero {
    min-height: auto;
  }
  .hero::before {
    right: -12rem;
    width: min(48rem, 88vw);
    opacity: 0.055;
  }
  .hero-shell {
    min-height: 0;
    padding-block: 3.5rem 2.5rem;
  }
  .hero-meta {
    margin-bottom: 3.5rem;
  }
  .hero-benefits {
    margin-top: 4rem;
  }
}

@media (max-width: 768px) {
  .hero::before {
    top: 9.5rem;
    right: 1rem;
    width: 11.5rem;
    opacity: 0.07;
    transform: none;
  }
  .hero-shell {
    padding-block: 2.75rem 2rem;
  }
  .hero-meta {
    margin-bottom: 13rem;
    font-size: 0.68rem;
  }
  .hero h1 {
    font-size: clamp(3rem, 14.5vw, 4.35rem);
  }
  .hero-lead {
    font-size: 0.96rem;
  }
  .hero .actions,
  .hero .button {
    width: 100%;
  }
  .hero-benefits {
    grid-template-columns: 1fr;
    margin-top: 3.25rem;
  }
}

/* Task #320: editorial attendance proof, local click-to-play and mobile polish. */
.social-proof {
  padding-block: clamp(4rem, 7vw, 7rem);
  background: var(--ivory);
}
.proof-header {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: end;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.proof-header h2 { margin: 0; max-width: 14ch; }
.attendance-proof {
  margin: 0;
  padding-left: clamp(1.25rem, 3vw, 2.5rem);
  border-left: 1px solid var(--gold);
  color: var(--navy);
}
.attendance-proof strong { display: block; font: 400 clamp(1.7rem, 3vw, 3rem)/1.05 var(--serif); }
.attendance-proof span { display: block; margin-top: .5rem; color: var(--goldText); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.proof-editorial { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.hall-proof, .video-proof { margin: 0; }
.hall-proof img, .video-invite img { display: block; width: 100%; object-fit: cover; border-radius: 2px; }
.hall-proof img { aspect-ratio: 3 / 2; }
.hall-proof figcaption, .video-proof > p { margin-top: .7rem; color: #59606c; font-size: .8rem; }
.video-invite { position: relative; width: 100%; padding: 0; border: 0; border-radius: 2px; overflow: hidden; background: var(--navy); color: #fff; cursor: pointer; text-align: left; }
.video-invite img { aspect-ratio: 16 / 9; opacity: .74; }
.video-invite > span:last-child { position: absolute; inset: auto 1rem 1rem; font-weight: 700; }
.proof-cta { margin-top: 1rem; }
.play-mark { position: absolute; inset: 50% auto auto 50%; display: grid; width: 3.4rem; aspect-ratio: 1; place-items: center; border: 1px solid var(--gold); border-radius: 50%; background: var(--navy); color: var(--gold); transform: translate(-50%, -50%); }
.video-frame { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.partner-lockup { display: flex; gap: 1.5rem; align-items: center; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(16,28,51,.18); }
.partner-lockup img { width: auto; max-width: 42%; height: 34px; object-fit: contain; }
.schedule header .button { margin-top: 1.5rem; }

@media (max-width: 768px) {
  .section { padding-block: 3.7rem; }
  .proof-header, .proof-editorial { grid-template-columns: 1fr; }
  .proof-header { gap: 1.25rem; margin-bottom: 1.75rem; }
  .attendance-proof { padding-left: 1rem; }
  .speaker-portrait img, .people article img { object-position: 50% 24%; }
  .format, .venue-label, .label, .eyebrow { font-size: .8rem; }
  .disclaimer p { font-size: .84rem; line-height: 1.55; }
  .speaker-profile, .speaker-topic, .venue-card { padding-block: 1.4rem; }
  .mobile-ticket { padding-bottom: max(.75rem, env(safe-area-inset-bottom)); }
}

/* Task #322: six-blocker preview-only remediation. */
.mobile-ticket {
  box-shadow: none;
}
.mobile-ticket,
.mobile-ticket .button,
.mobile-ticket-close,
.play-mark,
.button,
.video-external {
  border-radius: 2px;
}
.video-external {
  display: grid;
  min-height: 12rem;
  place-items: center;
  padding: 2rem;
  border: 1px solid var(--gold);
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 700px) {
  body.sticky-ticket-visible {
    padding-bottom: 0;
  }
  body.sticky-ticket-visible .container {
    padding-right: calc(82px + env(safe-area-inset-right));
  }
  .mobile-ticket {
    left: auto;
    right: max(8px, env(safe-area-inset-right));
    top: 50%;
    bottom: auto;
    width: 62px;
    max-width: 62px;
    flex-direction: column;
    justify-content: center;
    transform: translate(140%, -50%);
  }
  .mobile-ticket.visible {
    transform: translate(0, -50%);
  }
  .mobile-ticket .button {
    width: 44px;
    min-height: 174px;
    padding: 10px 7px;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
  }
  .disclaimer p {
    font-size: 13px;
  }

  /* The same content in a tighter editorial rhythm: spacing/card heights only. */
  .section,
  .social-proof,
  .heritage {
    padding-block: 1.2rem;
  }
  .hero {
    min-height: auto;
    padding-block: 2.2rem;
  }
  .hero-shell {
    min-height: auto;
    padding-block: 1.4rem;
  }
  .hero-meta {
    margin-bottom: 1.75rem;
  }
  .hero .actions {
    margin-top: 1rem;
  }
  .hero-benefits {
    margin-top: 2.1rem;
    gap: 1rem;
  }
  .hero-benefits article,
  .event-card,
  .speaker-profile,
  .speaker-topic,
  .venue-card,
  .people article,
  .schedule article,
  .faq details {
    padding-block: .65rem;
  }
  .speaker-grid,
  .people-grid,
  .schedule-grid,
  .venue-grid,
  .faq-grid,
  .closing-grid {
    gap: .85rem;
  }
  .proof-header {
    margin-bottom: 1.25rem;
  }
  .partner-lockup {
    margin-top: 1rem;
    padding-top: 1rem;
  }
  .mid-cta,
  .partners {
    padding-block: 1.8rem;
  }
  .disclaimer {
    margin-top: 2rem;
    padding-top: 1.35rem;
  }
  .hall-proof img {
    height: 220px;
    aspect-ratio: auto;
  }
  .video-invite img {
    height: 180px;
    aspect-ratio: auto;
  }
  .speaker-profile .speaker-portrait img {
    height: 280px;
    aspect-ratio: auto;
  }
  .people img {
    height: 180px;
    aspect-ratio: auto;
  }
  .venue .map-stub {
    min-height: 170px;
  }
  .speaker-intro h2,
  .venue-head,
  .schedule header,
  .faq-grid > header {
    margin-bottom: 1rem;
  }
  .speaker-profile {
    padding: .7rem;
  }
  .speaker-profile .speaker-portrait {
    margin-bottom: .75rem;
  }
  .speaker-profile .speaker-portrait figcaption {
    padding-top: .6rem;
  }
  .speaker-topic .questions {
    margin-top: .75rem;
  }
  .speaker-topic .questions p,
  .timeline li {
    padding-block: .4rem;
  }
  .venue-card,
  .attendance-cta,
  .media article,
  .faq details {
    padding: .6rem;
  }
  .media,
  .timeline,
  .venue-cards {
    gap: .65rem;
  }
}
