/* Quick tour: one full-screen slide at a time */
body.tour { background: var(--paper); overflow: hidden; height: 100vh; height: 100dvh; display: flex; flex-direction: column; }
.tour-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px var(--gutter); border-bottom: 1px solid var(--line); flex: none;
}
.tour-count { color: var(--silt); font-size: 0.95rem; }
.tour-exit { font-weight: 700; }
.tour-progress { height: 4px; background: var(--surface); flex: none; }
.tour-progress span { display: block; height: 100%; width: 0; background: var(--frond); transition: width 0.3s; }

.slides { flex: 1; position: relative; overflow: hidden; }
.slide {
  position: absolute; inset: 0; display: none;
  grid-template-columns: 1.1fr 1fr; gap: clamp(20px, 4vw, 56px);
  align-items: safe center; padding: clamp(16px, 3vw, 40px) clamp(16px, 6vw, 88px) 96px;
  overflow-y: auto;
}
.slide.active { display: grid; }
.slide.wide-art { grid-template-columns: 1fr; align-content: safe center; }
.slide.wide-art .slide-art { order: 2; }
.slide-art img, .slide-art video {
  width: 100%; max-height: 62vh; object-fit: cover; border-radius: 16px; display: block;
}
.slide.cover .slide-art img { border-radius: 50%; aspect-ratio: 1; max-height: 60vh; width: auto; margin: 0 auto; }
.slide.wide-art .slide-art img { max-height: 42vh; object-fit: contain; }
.slide-text { max-width: 560px; }
.slide.wide-art .slide-text { max-width: 760px; }
.slide h1 { font-size: clamp(2rem, 4.6vw, 3.6rem); }
.slide h2 { font-size: clamp(1.7rem, 3.6vw, 2.8rem); }
.slide p { font-size: clamp(1.05rem, 1.6vw, 1.3rem); }
.kicker { font-family: var(--display); font-weight: 700; color: var(--frond-dark); }
.hint { color: var(--silt); font-size: 0.95rem !important; }

.big-facts, .team-list, .timeline { list-style: none; padding: 0; margin: 0 0 16px; }
.big-facts li { font-size: clamp(1.05rem, 1.6vw, 1.3rem); padding: 10px 0; border-bottom: 1px solid var(--line); }
.team-list li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.team-list strong { display: block; font-family: var(--display); font-size: 1.15rem; }
.timeline li { position: relative; padding: 8px 0 12px 22px; border-left: 3px solid var(--frond); margin-left: 6px; }
.timeline li::before { content: ""; position: absolute; left: -8px; top: 14px; width: 13px; height: 13px; border-radius: 50%; background: var(--frond); }
.timeline span { display: block; font-weight: 700; color: var(--wine); }

.more { margin-top: 12px; border: 2px solid var(--line); border-radius: 12px; }
.more summary { cursor: pointer; padding: 10px 14px; font-weight: 700; color: var(--frond-dark); }
.more-body { padding: 0 14px 12px; }
.more-body p, .more-body li { font-size: 1rem !important; }

.qr { max-width: 280px; margin: 0 auto; text-align: center; }
.slide-art .qr img { width: 100%; height: auto; max-height: none; object-fit: contain; border-radius: 0; }
.qr figcaption { font-weight: 700; color: var(--pond); font-size: 1.05rem; }
.flow-step { padding: 14px 10px; }
.slide .flow-step p { font-size: 0.9rem; }
.slide .flow-step h3 { font-size: 1rem; }

.tour-nav { position: fixed; right: var(--gutter); bottom: 16px; display: flex; gap: 10px; }
.tour-nav button {
  width: 52px; height: 52px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--pond); color: var(--paper); font-family: var(--body); font-size: 2rem; line-height: 1;
}
.tour-nav button:disabled { opacity: 0.3; cursor: default; }

@media (max-width: 860px), (orientation: portrait) {
  /* Arrows sit in a bar under the slide instead of floating over the text */
  .tour-nav { position: static; flex: none; justify-content: flex-end; padding: 8px var(--gutter) calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--paper); }
  .tour-nav button { width: 46px; height: 46px; font-size: 1.8rem; }
  .slide { padding-bottom: 24px; }
  .qr { max-width: 200px; }
  .slide { grid-template-columns: 1fr; align-content: start; }
  .slide-art img, .slide-art video { max-height: 34vh; }
  .slide.cover .slide-art img { max-height: 30vh; }
  .slide.wide-art .slide-art { order: 2; }
  .slide .flow-step p, .slide .flow figcaption { display: none; }
  .slide .flow-steps { gap: 10px; }
  .slide .flow-step { padding: 8px 12px; }
  .slide .flow-step svg { width: 40px; height: 40px; }
  .slide .flow-step h3 { grid-row: span 2; align-self: center; margin: 0; }
}

/* Print or save as PDF: one slide per page, details expanded */
@media print {
  body.tour { overflow: visible; height: auto; display: block; }
  .tour-bar, .tour-progress, .tour-nav, .hint { display: none; }
  .slides { overflow: visible; }
  .slide { display: grid !important; position: relative; break-after: page; min-height: 0; overflow: visible; padding: 24px; }
  .more summary { display: none; }
}

.tour-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 8px; }
.tour-sbu { width: 220px; height: auto; }
.tour-somas { width: 170px; height: auto; }
.slide-art .bloom-art { aspect-ratio: 1; width: auto; max-height: 60vh; margin: 0 auto; object-fit: cover; }

/* Phones: keep the top bar on one line, and slide 2's photo the same size as the others */
.tour-count, .tour-exit { white-space: nowrap; }
@media (max-width: 860px), (orientation: portrait) {
  .slide-art .bloom-art { max-height: 34vh; }
}
@media (max-width: 400px) {
  .tour-bar .brand { font-size: 1rem; gap: 6px; }
  .tour-bar .brand-logo { width: auto; height: 34px; }
  .tour-count { font-size: 0.85rem; }
}
.tour-bar .brand-logo { width: auto; height: 40px; }
@media (max-width: 400px) { .tour-bar .brand-logo { height: 32px; } }
