/* A lo cubano: permanent scenery, dated party heroes, people-free tickets.
   All functional forms and ticket states remain the shared platform's markup. */
body:has(.rv-havana) { background: var(--rv-cream); }
.rv-havana {
  --havana-paper: var(--rv-cream);
  --havana-ink: var(--rv-sea);
  --havana-red: var(--rv-red);
  background: var(--havana-paper) url("sol-de-rua-paper.385446a521bd.webp") repeat;
  background-size: 640px;
  color: var(--havana-ink);
}
body:has(.rv-havana) .rv-header-dusk { background: var(--rv-cream); border-bottom: 1px solid color-mix(in srgb, var(--rv-sea) 18%, transparent); color: var(--rv-sea); }
body:has(.rv-havana) .rv-header-dusk :is(.rv-dusk-link, .rv-lang-dusk, .rv-dusk-summary) { color: var(--rv-sea); }
body:has(.rv-havana) .rv-dusk-link:hover { color: var(--rv-red); }
.rv-havana .rv-s-cta { background: var(--havana-ink); color: var(--havana-paper); border: 1px solid var(--havana-ink); box-shadow: none; rotate: none; border-radius: 3px; font-family: var(--rv-f-cond); font-size: 1.2rem; padding: 1rem 1.5rem; }
.rv-havana .rv-s-cta:hover { background: var(--havana-red); border-color: var(--havana-red); color: var(--havana-paper); }
/* One scenery layer holds the logo, dated portraits and live edition facts. */
.rv-havana-hero { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); min-height: 630px; max-width: 1600px; margin-inline: auto; position: relative; isolation: isolate; overflow: hidden; }
.rv-havana-intro { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 2rem 0 1rem clamp(1.5rem, 6vw, 6rem); position: relative; z-index: 1; }
.rv-havana-eyebrow { color: var(--havana-red); font-family: var(--rv-f-cond); font-size: 1.1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.rv-havana-logo { width: min(100%, 220px); margin: .5rem 0; }
.rv-havana-logo img { width: 100%; height: auto; }
.rv-havana-intro > .rv-havana-hand { font-size: 1.5rem; margin-bottom: 1.25rem; }
.rv-havana-hand { font-family: var(--rv-f-hand); font-weight: 700; font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.3; margin: 0 0 1.5rem; }
.rv-havana-view { position: absolute; inset: 0; z-index: 0; min-width: 0; pointer-events: none; }
.rv-havana-view > .event-art-window { position: absolute; inset: 0; width: 100%; height: 100%; }
.rv-havana-view .rv-havana-scene { width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }
.rv-havana-view::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, color-mix(in srgb, var(--havana-paper) 97%, transparent), color-mix(in srgb, var(--havana-paper) 94%, transparent) 36%, transparent 70%), linear-gradient(0deg, var(--havana-paper), color-mix(in srgb, var(--havana-paper) 90%, transparent) 18%, transparent 50%); }
.rv-havana-band { background: var(--rv-ink); color: var(--rv-yellow); padding: 1.35rem 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 3rem; font-family: var(--rv-f-cond); text-transform: uppercase; letter-spacing: .07em; font-size: 1.15rem; font-weight: 700; }
.rv-havana-next { grid-column: 1 / -1; grid-row: 2; position: static; margin: 0 clamp(1.5rem, 6vw, 6rem); padding: 1.5rem 0 2.5rem; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 1.25rem 3rem; align-items: end; }
.rv-havana-next-summary { grid-column: 1; grid-row: 1; width: 100%; position: relative; z-index: 2; }
.rv-havana-next-summary > .rv-havana-eyebrow { grid-column: 1 / -1; margin-bottom: .65rem; }
.rv-havana-next-people { position: absolute; z-index: 2; right: -3%; top: clamp(6rem, 12vw, 10rem); margin: 0; width: 62%; max-width: 880px; pointer-events: none; }
.rv-havana-next-people img { display: block; width: 100%; height: auto; mask-image: linear-gradient(currentColor 78%, transparent 100%); }
/* November's complete original-photo poster keeps its composition and full frame.
   The accessible title and parent link precede it; live facts and booking follow. */
.rv-havana-hero:has(.rv-havana-next-people-group) { grid-template-columns: minmax(0, 1fr); min-height: 0; }
.rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-intro { width: 100%; padding: 1rem clamp(1.5rem, 6vw, 6rem); }
.rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-parent { margin: 0; }
.rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-view { display: none; }
.rv-havana-hero .rv-havana-next-people-group {
  position: relative;
  grid-column: 1;
  grid-row: 2;
  inset: auto;
  align-self: start;
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
}
.rv-havana-next-people-group img { width: 100%; height: auto; min-width: 0; object-fit: contain; mask-image: none; }
.rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-next { grid-row: 3; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-next-actions { grid-column: 2; grid-row: 1; justify-content: flex-end; }
.rv-havana-next h2 { font-family: var(--rv-f-cond); font-size: 1.8rem; line-height: 1.2; text-transform: uppercase; margin: .5rem 0; }
.rv-havana-next p { margin-block: .25rem; }
.rv-havana-next .rv-november-lesson { margin-block: 1rem; padding-left: 1rem; border-left: 2px solid currentColor; }
.rv-havana-next .rv-november-lesson-name { font-family: var(--rv-f-cond); font-size: 1.4rem; font-weight: 700; }
.rv-havana-next .rv-november-lesson-details { font-size: 1rem; }
.rv-havana-next .rv-november-lesson-guest { font-family: var(--rv-f-cond); font-size: 1.2rem; font-weight: 700; }
.rv-havana-next .rv-havana-eyebrow { font-size: 1rem; letter-spacing: .05em; }
.rv-havana-next time { display: block; font-size: clamp(1.6rem, 2.4vw, 2.25rem); letter-spacing: .02em; }
.rv-havana :is(.rv-s-editions, .rv-s-about) { background: transparent; color: var(--havana-ink); }
.rv-havana :is(.rv-s-h2, .rv-s-about-title, .rv-s-follow-title) { color: var(--havana-ink); }
.rv-havana :is(.rv-s-head-lede, .rv-s-hand-kicker, .rv-s-follow-text, .rv-s-about-body) { color: var(--havana-ink); }
.rv-havana .rv-s-card { box-shadow: none; background: var(--havana-paper); color: var(--havana-ink); border: 1px solid color-mix(in srgb, var(--havana-ink) 28%, transparent); }
.rv-havana .rv-s-card-off :is(.rv-s-card-date, .rv-s-card-title) { color: inherit; }
.rv-havana .rv-s-card:hover { background: color-mix(in srgb, var(--havana-paper) 85%, var(--rv-yellow)); }
.rv-havana .rv-s-follow { border-top: 1px dashed var(--havana-ink); color: var(--havana-paper); }
.rv-havana .rv-s-follow :is(.rv-s-follow-title, .rv-s-follow-text) { color: inherit; }
.rv-havana .rv-s-follow .btn-outline { color: var(--havana-paper); border-color: currentColor; background: transparent; }
.rv-havana .rv-s-follow .btn-outline:hover { color: var(--havana-ink); background: var(--havana-paper); }
/* Edition overview: one poster, compact facts and a separate booking section. */
.rv-havana.rv-edition { padding-bottom: 3rem; }
.rv-havana .rv-o { padding-top: 1.5rem; max-width: 1180px; }
.rv-havana .rv-o-brand { display: none; }
.rv-havana :is(.rv-o-side, .rv-o-main) { display: contents; }
.rv-havana .rv-o-booking-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "summary" "art" "invite" "description" "share" "booking"; gap: 1.5rem; }
.rv-havana .rv-o-head { gap: .8rem; }
.rv-havana :is(.rv-o-title, .rv-o-body, .rv-o-back a, .rv-o-venue, .rv-o-map) { color: var(--havana-ink); }
.rv-havana .rv-o-title { font-size: clamp(3rem, 5vw, 4.5rem); line-height: 1.05; }
.rv-havana .rv-o-date { color: var(--havana-red); font-family: var(--rv-f-cond); font-size: clamp(2.25rem, 4vw, 3rem); }
.rv-havana .rv-o-chip { background: transparent; padding: 0; color: var(--havana-red); rotate: none; }
.rv-havana .rv-o-ticket { grid-area: summary; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.25rem 0 0; border: 0; border-top: 1px solid color-mix(in srgb, var(--havana-ink) 25%, transparent); box-shadow: none; background: transparent; border-radius: 0; }
.rv-havana .rv-o-price { font-size: 2rem; }
.rv-havana .rv-o-cta { width: auto; }
.rv-havana .rv-o-where { grid-column: 1 / -1; padding-top: 0; border: 0; }
.rv-havana .rv-o-venue { font-size: 1.2rem; }
.rv-havana .rv-o-contacts { grid-column: 1 / -1; }
.rv-havana .rv-o-contact { flex: none; padding: 0; border: 0; min-height: 2rem; color: var(--havana-ink); text-decoration: underline; text-underline-offset: .25rem; }
.rv-havana .rv-o-contact:hover { background: transparent; color: var(--havana-red); }
.rv-havana :is(.rv-o-flyer, .rv-o-art) { grid-area: art; width: 100%; max-width: 440px; justify-self: center; align-self: start; border-radius: 4px; }
.rv-havana .rv-o-flyer { aspect-ratio: auto; box-shadow: 0 8px 28px color-mix(in srgb, var(--rv-ink) 15%, transparent); rotate: 0deg; background: var(--havana-paper); }
.rv-havana .rv-o-flyer img { display: block; width: 100%; height: auto; object-fit: contain; }
.rv-havana .rv-o-art { aspect-ratio: 3 / 2; height: auto; }
.rv-havana .rv-o-art img { width: 100%; height: 100%; object-fit: cover; }
.rv-havana .rv-party-edition > [data-invited-banner] { grid-area: invite; }
.rv-havana .rv-o-body { grid-area: description; font-size: 1rem; line-height: 1.65; gap: 1rem; }
.rv-havana .rv-o-main > #partilhar { grid-area: share; margin-top: 0; }
.rv-havana .rv-party-edition > :is(.rv-o-panel, .rv-o-alert) { grid-area: booking; width: 100%; max-width: 760px; justify-self: center; margin-top: 2rem; }
.rv-havana .rv-o-panel { border: 0; border-top: 4px solid var(--havana-red); padding: clamp(1.25rem, 4vw, 3rem); border-radius: 4px; }
.rv-havana .rv-o-booking-grid:not(:has(.rv-o-flyer, .rv-o-art)) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "summary" "invite" "description" "share" "booking"; max-width: 760px; margin-inline: auto; }
@media (max-width: 30rem) {
  .rv-havana .rv-o-ticket { grid-template-columns: minmax(0, 1fr); }
  .rv-havana .rv-o-cta { width: 100%; }
}
@media (min-width: 64rem) {
  .rv-havana .rv-o-booking-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-areas: "head art" "summary art" "invite art" "description art" "share art" "booking booking"; grid-template-rows: auto; column-gap: clamp(2rem, 5vw, 5rem); row-gap: 1.25rem; }
  .rv-havana .rv-party-edition > :is(.rv-o-panel, .rv-o-alert) { margin-top: 3rem; }
}
.rv-series-art .rv-havana-scene { width: 100%; height: 100%; object-fit: cover; }
/* The original supplied logo remains a separate layer on a legible paper island. */
.rv-series-art:has(.rv-havana-scene) .rv-series-art-logo { left: 2%; top: 10%; width: 47%; height: 80%; }
.rv-havana-ticket { max-width: 1120px; margin: 3rem auto; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); overflow: hidden; border-radius: 8px; box-shadow: 0 8px 36px color-mix(in srgb, var(--rv-ink) 12%, transparent); }
.rv-havana-ticket-art { min-width: 0; display: flex; flex-direction: column; border-right: 2px dashed color-mix(in srgb, var(--havana-ink) 30%, transparent); }
.rv-havana-ticket-image { position: relative; aspect-ratio: 1.22; overflow: hidden; }
.rv-havana-ticket-scene { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
.rv-havana-ticket-logo { position: absolute; width: 64%; height: auto; left: 3%; top: 12%; }
.rv-havana-ticket-facts { padding: 1.5rem 2.5rem 2.5rem; }
.rv-havana-ticket-facts time { display: block; font-family: var(--rv-f-cond); text-transform: uppercase; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.15; font-weight: 700; }
.rv-havana-ticket-title { font-family: var(--rv-f-cond); font-size: 1.4rem; margin-bottom: .8rem; }
.rv-havana-ticket-hours { font-family: var(--rv-f-cond); text-transform: uppercase; font-size: 1.4rem; color: var(--havana-red); margin-block: .75rem; }
.rv-havana-ticket-venue { font-size: 1rem; line-height: 1.5; }
.rv-havana-ticket-art > .rv-havana-band { margin-top: auto; }
.rv-havana-ticket-controls { min-width: 0; background: var(--color-base-100); }
.rv-havana-ticket-controls > .section { padding: 2rem; gap: 1.1rem; }
.rv-havana .rv-havana-ticket-controls :is(h1, .eyebrow, dt, dd) { color: var(--havana-ink); }
.rv-havana-ticket-controls h1 { font-size: 2.25rem; }
.rv-havana-ticket-controls > .section > dl { background: transparent; border: 0; border-top: 1px solid color-mix(in srgb, var(--havana-ink) 25%, transparent); border-radius: 0; }
.rv-havana-ticket-controls > .section > dl > div { padding-inline: 0; }
.rv-havana-ticket-controls .bg-white { border-radius: 0; }
.rv-havana-ticket-controls .bg-white > div { width: max-content; max-width: 100%; margin-inline: auto; }
.rv-havana-ticket-controls .bg-white svg { width: auto; height: auto; }
.rv-havana-ticket-controls .btn { white-space: normal; height: auto; min-height: 2.75rem; }
@media (max-width: 800px) {
  .rv-havana-hero { min-height: 0; grid-template-columns: minmax(0, 1fr); }
  .rv-havana-view .rv-havana-scene { object-position: 65% top; }
  .rv-havana-view::after { background: linear-gradient(90deg, color-mix(in srgb, var(--havana-paper) 97%, transparent), color-mix(in srgb, var(--havana-paper) 92%, transparent) 38%, transparent 76%), linear-gradient(0deg, var(--havana-paper), color-mix(in srgb, var(--havana-paper) 94%, transparent) 36%, transparent 64%); }
  .rv-havana-intro { grid-row: 1; width: 56%; align-items: flex-start; text-align: left; padding: 1.5rem 0 .75rem clamp(1.125rem, 5vw, 2.5rem); margin-top: 0; }
  .rv-havana-logo { width: clamp(120px, 32vw, 190px); max-width: 100%; margin-block: .5rem; }
  .rv-havana-band { font-size: 1rem; padding: 1.25rem; gap: .65rem 1.5rem; }
  .rv-havana-intro > .rv-havana-hand { font-size: clamp(1.125rem, 3.8vw, 1.5rem); }
  .rv-havana-next { grid-row: 2; grid-template-columns: minmax(0, 1fr); margin-inline: clamp(1.125rem, 5vw, 2.5rem); padding: .75rem 0 2rem; gap: .65rem .5rem; text-align: left; }
  .rv-havana-next-summary { display: block; }
  .rv-havana-next-people { top: 5.5rem; bottom: auto; right: -8%; width: 75%; max-width: 560px; }
  .rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-intro { padding-inline: clamp(1.125rem, 5vw, 2.5rem); }
  .rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-next { grid-template-columns: minmax(0, 1fr); }
  .rv-havana-hero:has(.rv-havana-next-people-group) .rv-havana-next-actions { grid-column: 1; grid-row: 2; justify-content: flex-start; }
  .rv-havana-next .rv-havana-next-actions { position: relative; z-index: 2; grid-column: 1; grid-row: 2; }
  .rv-havana-ticket { margin: 1rem; grid-template-columns: minmax(0, 1fr); }
  .rv-havana-ticket-art { border-right: 0; border-bottom: 2px dashed color-mix(in srgb, var(--havana-ink) 30%, transparent); }
  .rv-havana-ticket-image { aspect-ratio: 1.9; }
  .rv-havana-ticket-logo { width: 42%; left: 5%; top: 3%; }
  .rv-havana-ticket-facts { padding: 1.25rem 1.5rem 1.5rem; }
  .rv-havana-ticket-facts .rv-havana-hand { font-size: 1.4rem; margin-bottom: 1rem; }
  .rv-havana-ticket-controls > .section { padding: 1.5rem; }
}
@media print {
  body:has(.rv-havana-ticket) :is(.rv-header, .rv-footer, .rv-foot, [data-platform-credit], #toast-slot, #modal-slot) { display: none; }
  .rv-havana-ticket { margin: 0; max-width: none; box-shadow: none; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); print-color-adjust: exact; -webkit-print-color-adjust: exact; break-inside: avoid; }
  .rv-havana-ticket-controls > .section { padding: 1rem; font-size: 10pt; gap: .6rem; }
  .rv-havana-ticket-controls :is(form, .btn) { display: none; }
  .rv-havana-ticket-facts { padding: 1rem; }
  .rv-havana-ticket-facts time { font-size: 26pt; }
  .rv-havana-ticket-image { aspect-ratio: 1.2; }
  .rv-havana-ticket-art { border-right: 1px dashed var(--havana-ink); border-bottom: 0; }
}
/* Wash the previous gold paper into the cream ground without replacing its grain. */
.rv-havana.rv-sol { background-image: linear-gradient(color-mix(in srgb, var(--rv-cream) 96%, transparent), color-mix(in srgb, var(--rv-cream) 96%, transparent)), url("sol-de-rua-paper.385446a521bd.webp"); }
/* Use the supplied lettering as a single-colour mark on the cream header. */
body:has(.rv-havana) .rv-sol-nav-brand { position: relative; }
body:has(.rv-havana) .rv-sol-nav-brand::after { content: ""; position: absolute; inset: 0; background: var(--rv-sea); mask: url("a-lo-cubano-wordmark.4abaf09e92c7.webp") center / contain no-repeat; pointer-events: none; }
body:has(.rv-havana) .rv-sol-nav-brand .rv-nav-wordmark { opacity: 0; }
body:has(.rv-havana) .rv-lang-dusk .join-item { color: var(--rv-sea); }
body:has(.rv-havana) .rv-lang-dusk .join-item[aria-current] { background: var(--rv-sea); color: var(--rv-cream); }
body:has(.rv-havana) .rv-header-dusk a[href*="/conta/"] { color: var(--rv-sea); }
.rv-havana-editions-link { display: inline-flex; gap: 1rem; background: var(--havana-ink); color: var(--havana-paper); border-radius: 3px; font-family: var(--rv-f-cond); font-weight: 700; text-transform: uppercase; font-size: 1.2rem; padding: 1rem 1.5rem; }
.rv-havana-editions-link:hover { background: var(--havana-red); }
.rv-havana-next :is(.rv-s-cta, .rv-s-ghost) { padding: .85rem 1rem; }
.rv-havana-next-actions { position: relative; z-index: 2; grid-column: 1; grid-row: 2; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.rv-havana .rv-s-ghost { color: var(--havana-ink); border-color: currentColor; }
.rv-havana .rv-havana-instagram { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 2.75rem; max-width: 100%; padding: .85rem 1rem; border: 1px solid var(--havana-ink); border-radius: 3px; background: transparent; color: var(--havana-ink); font-family: var(--rv-f-cond); font-size: 1.2rem; font-weight: 700; line-height: 1.3; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.rv-havana .rv-havana-instagram:hover { color: var(--havana-red); border-color: currentColor; }
.rv-havana .rv-havana-instagram:focus-visible { outline: 3px solid var(--havana-ink); outline-offset: 3px; }
.rv-havana-intro > .rv-havana-instagram { margin-top: .75rem; }
.rv-havana > .rv-s-band { display: none; }
.rv-havana .rv-s-prog-who { display: block; font-family: var(--rv-f-hand); text-transform: none; font-size: 1.4rem; margin-top: .4rem; }

body:has(.rv-havana) .rv-burger-dusk { color: var(--rv-sea); border-color: var(--rv-sea); }
body:has(.rv-havana) .rv-burger-dusk:hover { background: var(--rv-sea); color: var(--rv-cream); }
body:has(.rv-havana) .rv-sheet-dusk { background: var(--rv-cream); color: var(--rv-sea); }
body:has(.rv-havana) .rv-sheet-dusk a { color: var(--rv-sea); }
body:has(.rv-havana) .rv-sheet-dusk a[aria-current] { background: var(--rv-sea); color: var(--rv-cream); }
.rv-havana .rv-o-panel-title { color: var(--rv-cream); }
.rv-havana .rv-havana-ticket-controls a.link-primary { color: var(--havana-ink); }

.rv-havana-party { padding: 3.5rem clamp(1.5rem, 4vw, 3rem); border-bottom: 1px solid color-mix(in srgb, var(--havana-ink) 25%, transparent); }
.rv-havana-party-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.75rem; }
.rv-havana-party-heading h2 { font-family: var(--rv-f-hand); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; color: var(--havana-red); scroll-margin-top: 1.5rem; }
.rv-havana-party-heading p { max-width: 26rem; line-height: 1.6; }
.rv-havana-party-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.rv-havana-party-clip { margin: 0; min-width: 0; }
.rv-havana-party-frame { position: relative; overflow: hidden; border-radius: 4px; }
.rv-havana-video-controls:not([hidden]) { position: absolute; inset: auto 0 0; display: flex; align-items: center; gap: .4rem; padding: 2.5rem .7rem .7rem; background: linear-gradient(transparent, color-mix(in srgb, var(--rv-ink) 55%, transparent)); pointer-events: none; }
.rv-havana-video-controls button { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--rv-cream) 45%, transparent); color: var(--rv-cream); background: color-mix(in srgb, var(--rv-ink) 72%, transparent); cursor: pointer; pointer-events: auto; }
.rv-havana-video-controls button:first-child { margin-right: auto; }
.rv-havana-video-controls button[hidden] { display: none; }
.rv-havana-video-controls button:focus-visible { outline: 3px solid var(--rv-yellow); outline-offset: 3px; }
.rv-havana-video-controls svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rv-havana-video-controls .rv-video-pause-icon, .rv-havana-video-controls .rv-video-sound-icon { display: none; }
.rv-havana-video-controls [data-playing="true"] .rv-video-play-icon, .rv-havana-video-controls [aria-pressed="true"] .rv-video-muted-icon { display: none; }
.rv-havana-video-controls [data-playing="true"] .rv-video-pause-icon, .rv-havana-video-controls [aria-pressed="true"] .rv-video-sound-icon { display: initial; }
.rv-havana-party-clip video { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: contain; background: var(--rv-ink); border-radius: 4px; }
/* A shared pace for the hero and the dated invitations; motion stays in base. */
.rv-havana-intro > .rv-havana-eyebrow,
.rv-havana-next-actions,
.rv-havana .rv-s-cards > :nth-child(2) { --i: 1; }
.rv-havana-intro > .rv-havana-hand,
.rv-havana .rv-s-cards > :nth-child(3) { --i: 2; }
.rv-havana-party-grid:has([data-playing="true"]) .rv-havana-party-clip:not(:has([data-playing="true"])) video { opacity: .48; filter: saturate(.5); }
.rv-havana-party-clip figcaption { display: flex; justify-content: space-between; gap: .5rem; padding-top: .75rem; font-family: var(--rv-f-cond); font-size: 1rem; }
.rv-havana-party-clip figcaption > :last-child { font-variant-numeric: tabular-nums; }
@media (max-width: 800px) {
  .rv-havana-party-heading { align-items: start; flex-direction: column; gap: .75rem; }
  .rv-havana-party-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .rv-havana-party-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 85%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem; cursor: grab; }
  .rv-havana-party-grid.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
  .rv-havana-party-clip { scroll-snap-align: start; }
}

.rv-havana .event-signup .signup-rate-choices .signup-price:has(input:checked) { background:var(--rv-sun); color:var(--havana-ink); border-color:var(--rv-sun); }

.rv-havana .event-signup .signup-rate-choices .signup-price:has(input[value=standard]:checked) { background:color-mix(in srgb,var(--rv-cream) 10%,var(--havana-ink)); color:var(--rv-cream); border-color:var(--rv-cream); }
.rv-havana .signup-rate-choices .signup-price-offer { border:2px solid var(--rv-sun); }
.rv-havana .signup-price-offer .signup-saving { background:var(--rv-sun); color:var(--havana-ink); text-transform:uppercase; letter-spacing:.04em; }
.rv-havana .signup-price-offer:has(input:checked) .signup-saving { background:var(--havana-ink); color:var(--rv-sun); }
.rv-havana .signup-price-offer .signup-price-amount strong { font-size:2.1rem; }

.rv-havana .signup-total-saving { background:var(--rv-sun); color:var(--havana-ink); }

/* The event keeps its poster identity within the parent community site. */
.rv-havana-parent { margin:0 0 1rem; font-family:var(--rv-f-body); font-size:.85rem; }
.rv-havana-parent a { text-decoration:none; }
.rv-havana-parent a:hover { text-decoration:underline; }
.rv-havana-parent span { margin-inline:.4rem; opacity:.5; }
.rv-havana .rv-o-back { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; }

/* One party page: expand the edition's existing description and booking below its hero. */
.rv-party-edition, .rv-edition-description { display: contents; }
.rv-edition-description > summary { display: none; }
.rv-inline-edition-heading { display: none; }
.rv-inline-booking[hidden], .rv-inline-booking [hidden] { display: none; }
.rv-inline-booking { padding: 1.5rem clamp(1.25rem, 4vw, 3rem) 3rem; scroll-margin-top: 15rem; border-bottom: 1px solid color-mix(in srgb, var(--havana-ink) 20%, transparent); }
.rv-inline-booking-toolbar { display: flex; justify-content: end; margin-bottom: 1rem; }
.rv-inline-booking-toolbar button { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; padding: .5rem 1rem; border: 1px solid currentColor; border-radius: 3px; cursor: pointer; }
.rv-inline-booking-toolbar button:hover { background: var(--havana-ink); color: var(--havana-paper); }
.rv-inline-booking-toolbar button span { font-size: 1.5rem; line-height: 1; }
.rv-inline-booking [data-party-error] a { text-decoration: underline; }
.rv-inline-booking .rv-party-edition { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); grid-template-areas: "heading booking" "invite booking" "description booking" ". booking"; grid-template-rows: auto auto auto 1fr; align-items: start; gap: 1rem clamp(1.5rem, 4vw, 4rem); }
.rv-inline-booking .rv-inline-edition-heading { display: grid; grid-area: heading; gap: .75rem; outline: none; }
.rv-inline-booking .rv-inline-edition-heading .rv-havana-hand { margin: 0; }
.rv-inline-booking .rv-party-edition:not(:has([data-invited-banner])) { grid-template-areas: "heading booking" "description booking" ". booking"; grid-template-rows: auto auto 1fr; }
.rv-inline-edition-heading h2 { font-family: var(--rv-f-cond); font-size: clamp(2rem, 4vw, 3rem); text-transform: uppercase; line-height: 1.1; }
.rv-inline-booking [data-invited-banner] { grid-area: invite; }
.rv-inline-booking .rv-edition-description { display: block; grid-area: description; }
.rv-inline-booking .rv-edition-description > summary { display: list-item; cursor: pointer; min-height: 44px; padding-block: .75rem; font-weight: 600; }
.rv-havana .rv-inline-booking :is(.rv-o-panel, .rv-o-alert) { grid-area: booking; margin: 0; background: var(--havana-ink); color: var(--havana-paper); box-shadow: none; }
.rv-inline-booking [aria-busy="true"] { opacity: .5; pointer-events: none; }
/* A dated page keeps the series' hero; inline visits keep their own compact heading. */
.rv-havana-edition .rv-party-edition > .rv-inline-edition-heading { display: none; }
.rv-havana-edition .rv-inline-booking .rv-party-edition:not(.rv-payment-booking) { grid-template-areas: "invite booking" "description booking" ". booking"; grid-template-rows: auto auto 1fr; }
.rv-havana-edition .rv-inline-booking .rv-party-edition:not(.rv-payment-booking):not(:has(.rv-o-panel, .rv-o-alert)) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "invite" "description"; grid-template-rows: auto; max-width: 760px; margin-inline: auto; }
.rv-havana-edition-price { margin-top: 1rem; }
@media (max-width: 47.99rem) {
  .rv-inline-booking .rv-party-edition { grid-template-columns: minmax(0, 1fr); grid-template-areas: "heading" "invite" "description" "booking"; grid-template-rows: auto; gap: 1.25rem; }
  .rv-inline-booking .rv-party-edition:not(:has([data-invited-banner])) { grid-template-areas: "heading" "description" "booking"; grid-template-rows: auto; }
  .rv-inline-booking { padding-inline: 1.25rem; scroll-margin-top: 3rem; }
  .rv-havana-edition .rv-inline-booking .rv-party-edition:not(.rv-payment-booking) { grid-template-areas: "invite" "description" "booking"; grid-template-rows: auto; }
  .rv-havana-edition .rv-inline-booking .rv-party-edition:not(.rv-payment-booking):not(:has(.rv-o-panel, .rv-o-alert)) { grid-template-areas: "invite" "description"; }
}
