/* Free presentation page (/freepresentation/). Only what mfp.css does not already have. */
.fp-hero { padding: 48px 0 64px; }
.fp-head { text-align: center; max-width: 860px; margin: 0 auto 28px; }
.fp-head h1 { font-size: clamp(36px, 5vw, 60px); margin-bottom: 10px; }
.fp-head .lead { color: #e6efe1; margin: 0; }

.fp-video { max-width: 960px; margin: 0 auto; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: #0d220a;
  box-shadow: 0 24px 60px rgba(0,0,0,.35); position: relative; }
.fp-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.fp-facade { position: absolute; inset: 0; display: block; color: #fff; text-decoration: none; }
.fp-poster { position: absolute; inset: 0; display: flex; align-items: stretch;
  background: radial-gradient(120% 120% at 85% 20%, #3f9a2e 0%, #1f4a17 45%, #10280c 100%); }
.fp-poster-text { position: relative; z-index: 1; flex: 1 1 58%; display: flex; flex-direction: column; justify-content: center; padding: 6% 0 6% 6%; }
.fp-kicker { font: 700 16px/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: #bfe3ad; margin-bottom: 12px; }
.fp-title { font: 400 clamp(22px, 3.3vw, 40px)/1.12 var(--serif); color: #fff; margin-bottom: 14px; }
.fp-by { font-size: 18px; color: #e6efe1; }
.fp-laura { flex: 0 0 42%; width: 42%; height: 100%; object-fit: contain; object-position: bottom right; align-self: flex-end; }
.fp-play { display: inline-flex; align-items: center; gap: 14px; margin-top: 22px; color: var(--coral); font: 700 18px/1.2 var(--sans); }
.fp-play > span { color: #fff; }
.fp-play svg { width: 76px; height: 76px; flex: 0 0 auto; filter: drop-shadow(0 8px 20px rgba(0,0,0,.4)); transition: transform .15s ease; }
.fp-facade:hover .fp-play svg, .fp-facade:focus-visible .fp-play svg { transform: scale(1.08); }
.fp-facade:focus-visible { outline: 4px solid #fff; outline-offset: -4px; }
.fp-len { position: absolute; left: 18px; bottom: 18px; z-index: 2; background: rgba(0,0,0,.55);
  padding: 6px 14px; border-radius: 999px; font-size: 16px; font-weight: 600; white-space: nowrap; }
.fp-sound { text-align: center; max-width: 760px; margin: 18px auto 34px; font-size: 18px; color: #e6efe1; }

.fp-offer { display: flex; gap: 32px; align-items: center; max-width: 960px; margin: 0 auto; padding: 32px; color: var(--text); }
.fp-offer img { width: 240px; height: auto; flex: 0 0 auto; }
.fp-offer-body { flex: 1 1 auto; }
.band-dark .fp-offer h2 { color: var(--ink); font-size: clamp(24px, 2.6vw, 32px); margin-bottom: 10px; }
.fp-price { font-size: 20px; margin-bottom: 16px; }
.fp-price strong { font: 400 40px/1 var(--serif); color: var(--forest); }
.band-dark .fp-offer .buy-guar { color: var(--forest); }
.fp-guar { margin: 16px 0 8px; }
.fp-small { font-size: 16px; color: var(--muted); margin: 0 0 8px; }
.band-dark .fp-offer a:not(.btn) { color: var(--leaf-h); }

.fp-prods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 40px; }
.fp-prod { display: flex; gap: 22px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.fp-prod:last-child { grid-column: 1 / -1; }
.fp-prod-img { flex: 0 0 120px; display: flex; justify-content: center; }
.fp-prod-img img { max-height: 160px; width: auto; max-width: 120px; object-fit: contain; }
.fp-prod h3 { font-size: 24px; margin-bottom: 8px; }
.fp-prod p:last-child { margin-bottom: 0; }
.fp-buy { margin-top: 36px; }

.fp-final { text-align: center; margin-top: 44px; }
.fp-final-price { font-size: 20px; margin-bottom: 18px; }

@media (max-width: 860px) {
  .fp-prods { grid-template-columns: 1fr; }
  .fp-offer { flex-direction: column; text-align: center; padding: 26px 20px; }
  .fp-offer img { width: 200px; }
  .fp-offer .buy-guar { justify-content: center; }
}
@media (max-width: 640px) {
  .fp-hero { padding: 32px 0 44px; }
  .fp-video { border-radius: 12px; margin: 0 -4px; }
  .fp-poster-text { padding: 5% 0 5% 5%; }
  .fp-kicker { display: none; }
  .fp-title { font-size: 18px; }
  .fp-by { font-size: 16px; }
  .fp-play { margin-top: 10px; font-size: 16px; gap: 10px; }
  .fp-play svg { width: 48px; height: 48px; }
  .fp-play > span { display: none; }
  .fp-len { display: none; }
  .fp-by { display: none; }
  .fp-prod { flex-direction: column; align-items: center; text-align: center; padding: 20px; }
  .fp-prod-img { flex-basis: auto; }
}
