/* ==========================================================================
   ILHF 2027 — "Little Havana Nights" Art Deco theme
   Loaded after the Webflow stylesheets on every page. It re-points the
   Webflow design tokens at the new palette, then layers on deco details
   (gold hairline frames, sunburst headers, Cuban-tile bands).
   ========================================================================== */

:root {
  /* Palette: Calle Ocho after dark */
  --deco-ink: #140c0e;          /* warm black */
  --deco-ink-2: #1f1215;        /* mahogany black */
  --deco-wine: #3a151c;         /* cigar-box red */
  --deco-gold: #d8b26a;         /* deco gold */
  --deco-gold-soft: #d8b26a55;
  --deco-gold-faint: #d8b26a26;
  --deco-coral: #ec6a52;        /* guava / coral */
  --deco-coral-hover: #f3876f;
  --deco-pink: #e8317a;         /* neon pink */
  --deco-jade: #1c6e69;         /* domino-park jade */
  --deco-jade-deep: #0f3b39;
  --deco-teal: #3cc1b3;         /* neon teal */
  --deco-cream: #f4e7cf;        /* cafecito cream */
  --deco-cream-2: #f4e7cfb3;

  --deco-font-display: "Limelight", "Josefin Sans", serif;
  --deco-font-heading: "Josefin Sans", "Source Sans 3", sans-serif;
  --deco-font-script: "Pinyon Script", cursive;
  --deco-font-body: "Source Sans 3", sans-serif;

  /* Webflow tokens → deco palette */
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-neutral-color--neutral-primary: var(--deco-ink);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-neutral-color--neutral-secondary: var(--deco-ink-2);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-neutral-color--neutral-inverse: var(--deco-cream);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-accent-color--accent-primary: var(--deco-coral);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-accent-color--accent-primary-hover: var(--deco-coral-hover);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---text-color--text-on-accent-primary: var(--deco-ink);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---text-color--text-accent-on-primary: var(--deco-gold);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---text-color--text-accent-on-primary-hover: var(--deco-cream);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---text-color--text-accent-on-inverse: var(--deco-gold);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---text-color--text-accent-on-inverse-hover: var(--deco-cream);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-color-tint--accent-primary-a10: #ec6a521a;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-color-tint--accent-primary-a20: #ec6a5233;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-color-tint--accent-primary-a30: #ec6a524d;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-color-tint--neutral-inverse-a10: #f4e7cf1a;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-color-tint--neutral-inverse-a20: #f4e7cf33;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---core-color-tint--neutral-inverse-a60: #f4e7cf99;

  /* "Inverse" sections become deep jade instead of light grey */
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---background-color--bg-inverse: var(--deco-jade-deep);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---text-color--text-inverse-primary: var(--deco-cream);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---text-color--text-inverse-secondary: var(--deco-cream-2);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---background-color--bg-overlay: var(--deco-ink);

  /* Type */
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---font--heading-font: var(--deco-font-heading);
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---font--button-font: var(--deco-font-heading);

  /* Deco shapes are crisp, not rounded */
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---card--card-radius: 2px;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---button--button-radius: 0px;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---radius--md-radius: 2px;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---radius--lg-radius: 2px;
  --ai-gen-82921b10-4b39-48f0-b346-808cf4903d29-1746310433538---radius--xl-radius: 2px;

  /* Reusable deco motifs */
  --deco-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23d8b26a' stroke-opacity='.55' stroke-width='1'%3E%3Cpath d='M24 2 46 24 24 46 2 24Z'/%3E%3Cpath d='M24 12 36 24 24 36 12 24Z'/%3E%3Ccircle cx='24' cy='24' r='3'/%3E%3Cpath d='M0 0h6M42 0h6M0 48h6M42 48h6M0 0v6M48 0v6M0 42v6M48 42v6'/%3E%3C/g%3E%3C/svg%3E");
  --deco-sunburst: repeating-conic-gradient(from 0deg at 50% 100%, #d8b26a14 0deg 4deg, transparent 4deg 9deg);
}

/* ---------- Base ---------- */
body {
  background-color: var(--deco-ink);
  color: var(--deco-cream);
  font-family: var(--deco-font-body);
}

h1, .h1-heading, .h0-heading {
  font-family: var(--deco-font-display);
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--deco-gold);
}

h2, h3, h4, h5, h6,
.h2-heading, .h3-heading, .h4-heading, .h5-heading, .h6-heading {
  font-family: var(--deco-font-heading);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}

h2, .h2-heading { color: var(--deco-gold); }

.eyebrow {
  font-family: var(--deco-font-heading);
  font-weight: 600;
  letter-spacing: .28em;
  color: var(--deco-coral);
}

a { color: var(--deco-gold); }

/* ---------- Nav: black lacquer with a gold rule ---------- */
.nav.accent-primary-nav {
  background-color: var(--deco-ink);
  color: var(--deco-cream);
  border-bottom: 1px solid var(--deco-gold-soft);
  box-shadow: 0 3px 0 -1px var(--deco-ink), 0 4px 0 -1px var(--deco-gold-faint);
}

.nav-link.nav-link-on-accent-primary {
  font-family: var(--deco-font-heading);
  font-weight: 600;
  letter-spacing: .14em;
  color: var(--deco-cream);
  border-radius: 0;
}

.nav-link.nav-link-on-accent-primary:hover,
.nav-link.nav-link-on-accent-primary.w--current {
  background-color: transparent;
  color: var(--deco-gold);
  box-shadow: inset 0 -2px 0 var(--deco-coral);
}

.mega-nav-dropdown-list-wrapper,
.nav-menu-dropdown-list-wrapper {
  background-color: var(--deco-ink-2);
  border: 1px solid var(--deco-gold-soft);
  border-radius: 2px;
}

.mega-nav-link-item { color: var(--deco-cream); border-radius: 0; }
.mega-nav-link-item:hover { background-color: var(--deco-gold-faint); }

@media screen and (max-width: 991px) {
  .nav-menu.w-nav-menu,
  .w-nav-overlay .nav-menu {
    background-color: var(--deco-ink);
    border-bottom: 1px solid var(--deco-gold-soft);
  }
}

/* ---------- Buttons: coral with a gold double rule ---------- */
.button,
.button.w-button {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  background-color: var(--deco-coral);
  background-image: none;
  color: var(--deco-ink);
  border-radius: 0;
  box-shadow: 0 0 0 1px var(--deco-ink), 0 0 0 2px var(--deco-gold);
}

.button:hover,
.button.w-button:hover {
  background-color: var(--deco-coral-hover);
  color: var(--deco-ink);
  box-shadow: 0 0 0 1px var(--deco-ink), 0 0 0 2px var(--deco-gold), 0 0 22px #ec6a5266;
}

.button.deco-ghost {
  background-color: transparent;
  color: var(--deco-gold);
  box-shadow: inset 0 0 0 1px var(--deco-gold);
}

.button.deco-ghost:hover {
  background-color: var(--deco-gold-faint);
  color: var(--deco-cream);
  box-shadow: inset 0 0 0 1px var(--deco-gold), 0 0 18px #d8b26a40;
}

/* ---------- Cards: double gold frame ---------- */
.card {
  background-color: var(--deco-ink-2);
  box-shadow: inset 0 0 0 1px var(--deco-gold-soft), inset 0 0 0 6px var(--deco-ink-2), inset 0 0 0 7px var(--deco-gold-faint);
}

.card.card-on-inverse {
  background-color: #0b2e2c;
  color: var(--deco-cream);
}

.divider { border-bottom-color: var(--deco-gold-soft); }

/* ---------- Sections ---------- */
.section.inverse-section {
  background-color: var(--deco-jade-deep);
  background-image: linear-gradient(#0f3b39f0, #0f3b39f0), var(--deco-tile);
  background-size: auto, 48px 48px;
}

.section.inverse-section h2,
.section.inverse-section .h2-heading { color: var(--deco-gold); }

/* Inner-page headers: the beach/disco-ball photo gives way to a deco
   sunburst rising over a Cuban-tile floor. */
.section.comp-image.innerpage {
  background-color: var(--deco-wine);
  background-image:
    var(--deco-sunburst),
    radial-gradient(ellipse at 50% 110%, #ec6a5566 0%, transparent 60%),
    linear-gradient(180deg, var(--deco-ink) 0%, var(--deco-wine) 100%);
  border-bottom: 1px solid var(--deco-gold-soft);
  overflow: hidden;
}

.section.comp-image.innerpage > .absolute-bg-image { display: none; }
.section.comp-image.innerpage > .overlay { display: none; }

.section.comp-image.innerpage::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 14px;
  background-image: var(--deco-tile);
  background-size: 14px 14px;
  opacity: .8;
  border-top: 1px solid var(--deco-gold-soft);
}

.section.comp-image.innerpage .h1-heading {
  color: var(--deco-gold);
  text-shadow: 0 0 18px #d8b26a55;
}

/* Non-inner comp-image CTA bands (e.g. hotel "book your room") */
.section.comp-image:not(.innerpage) {
  background-image:
    var(--deco-sunburst),
    linear-gradient(135deg, var(--deco-jade-deep), var(--deco-wine));
}

/* ---------- Footer ---------- */
.footer.inverse-footer {
  background-color: var(--deco-ink);
  color: var(--deco-cream);
  border-top: 1px solid var(--deco-gold-soft);
  position: relative;
}

.footer.inverse-footer::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 14px;
  background-image: var(--deco-tile);
  background-size: 14px 14px;
  opacity: .6;
}

.footer .h6-heading { color: var(--deco-gold); letter-spacing: .22em; }
.footer-link { color: var(--deco-cream-2); }
.footer-link:hover { color: var(--deco-gold); }

/* ---------- Schedule pages ---------- */
.schedule-grid { border-color: var(--deco-gold-faint); }

/* ---------- Workshop schedule (overrides the page's inline neon styles) ---------- */
body .neon-schedule-outer-container {
  background: var(--deco-ink);
  background-image: linear-gradient(#140c0ef2, #140c0ef2), var(--deco-tile);
  background-size: auto, 48px 48px;
}

body .neon-border-wrapper {
  background: linear-gradient(135deg, var(--deco-gold), var(--deco-coral) 50%, var(--deco-teal));
  border-radius: 2px;
  box-shadow: 0 0 30px #ec6a5533;
}

body .neon-schedule-content { background: var(--deco-ink-2); border-radius: 0; color: var(--deco-cream); }

body .neon-schedule-title {
  font-family: var(--deco-font-display);
  font-weight: 400;
  color: var(--deco-cream);
  text-shadow: 0 0 12px #ec6a5599, 0 0 28px #e8317a55;
}

body .track-title {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--deco-gold);
  background: #d8b26a12;
  border-radius: 0;
}

body .las-olas-track .track-title { border-bottom-color: var(--deco-coral); text-shadow: none; }
body .balcony-track .track-title { border-bottom-color: var(--deco-teal); text-shadow: none; }

body .day-header {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  letter-spacing: .2em;
  background: var(--deco-jade);
  color: var(--deco-cream);
  border-radius: 0;
}

body .schedule-card,
body .special-card-book {
  background: var(--deco-cream);
  color: var(--deco-ink);
  border-radius: 0;
  box-shadow: inset 0 0 0 1px var(--deco-gold), inset 0 0 0 4px var(--deco-cream), inset 0 0 0 5px #d8b26a80;
}

body .schedule-card:hover { box-shadow: inset 0 0 0 1px var(--deco-gold), inset 0 0 0 4px var(--deco-cream), inset 0 0 0 5px #d8b26a80, 0 8px 18px #ec6a5540; }
body .card-instructor { font-family: var(--deco-font-heading); letter-spacing: .06em; }
body .competition-card { background: #f4e7cfd9; border: 2px dashed var(--deco-coral); }
body .neon-schedule-footer { font-family: var(--deco-font-heading); color: var(--deco-cream-2); border-top-color: var(--deco-gold-faint); }
body .neon-schedule-footer span { text-shadow: none; color: var(--deco-gold); }

/* ==========================================================================
   Homepage components (index.html)
   ========================================================================== */

.deco-hero {
  position: relative;
  overflow: hidden;
  background: var(--deco-ink);
  color: var(--deco-cream);
  border-bottom: 1px solid var(--deco-gold-soft);
}

.deco-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  min-height: min(56.25vw, 820px);
  margin: 0 auto;
  padding: 3rem 3.5rem;
  display: flex;
  align-items: center;
}

.deco-hero__copy { max-width: 36rem; }

/* The generated hero photo fills the frame; a plum scrim on the left
   keeps the headline readable over the palms. */
.deco-hero__scene {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.deco-hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% 30%;
  display: block;
}

.deco-hero__scene::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, #140c0ef2 0%, #140c0ed9 26%, #140c0e80 42%, transparent 58%),
    linear-gradient(0deg, #140c0ecc 0%, transparent 20%);
}

.deco-hero__frame {
  position: absolute;
  inset: 1.25rem;
  border: 1px solid var(--deco-gold-soft);
  pointer-events: none;
  z-index: 1;
}

.deco-hero__frame::before,
.deco-hero__frame::after {
  content: "";
  position: absolute;
  width: 56px;
  height: 56px;
  border: 2px solid var(--deco-gold);
}

.deco-hero__frame::before { top: 8px; left: 8px; border-right: 0; border-bottom: 0; }
.deco-hero__frame::after { bottom: 8px; right: 8px; border-left: 0; border-top: 0; }

.deco-kicker {
  display: inline-flex;
  align-items: center;
  gap: .9rem;
  font-family: var(--deco-font-heading);
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--deco-teal);
  margin-bottom: 1rem;
}

.deco-kicker::before,
.deco-kicker::after {
  content: "";
  width: 34px;
  height: 1px;
  background: var(--deco-gold);
}

.deco-hero__title {
  margin: 0;
  font-family: var(--deco-font-display);
  font-weight: 400;
  font-size: clamp(3.4rem, 9vw, 7.5rem);
  line-height: .92;
  letter-spacing: .04em;
  color: var(--deco-cream);
  text-shadow: 0 0 2px #fff6, 0 0 18px #ec6a5599, 0 0 42px #e8317a55;
}

.deco-hero__script {
  display: block;
  margin: .4rem 0 1.4rem;
  font-family: var(--deco-font-script);
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height: 1.1;
  color: var(--deco-coral);
  text-shadow: 0 0 14px #ec6a5580;
  transform: rotate(-3deg);
  transform-origin: left center;
}

.deco-hero__tagline {
  font-family: var(--deco-font-heading);
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--deco-gold);
  font-size: .95rem;
  margin: 0 0 1rem;
}

.deco-hero__lede {
  max-width: 34rem;
  font-size: 1.12rem;
  line-height: 1.6;
  color: var(--deco-cream-2);
  margin: 0 0 1.8rem;
}

.deco-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

/* Date bar: a stepped deco cartouche under the tagline */
.deco-datebar {
  display: inline-flex;
  flex-direction: column;
  gap: .15rem;
  margin: .2rem 0 1.4rem;
  padding: .8rem 1.4rem .85rem;
  background: #140c0ecc;
  border: 1px solid var(--deco-gold);
  box-shadow: inset 0 0 0 4px #140c0ecc, inset 0 0 0 5px var(--deco-gold-soft);
  clip-path: polygon(10px 0, calc(100% - 10px) 0, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px), 0 10px);
}

.deco-datebar__day {
  font-family: var(--deco-font-script);
  font-size: 1.35rem;
  line-height: 1;
  color: var(--deco-gold);
}

.deco-datebar__date {
  font-family: var(--deco-font-display);
  font-size: 1.9rem;
  line-height: 1.1;
  color: var(--deco-cream);
  text-shadow: 0 0 12px #e8317a66;
}

.deco-datebar__venue {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--deco-teal);
}

/* Tile border strip */
.deco-tile-band {
  height: 22px;
  background-color: var(--deco-ink);
  background-image: var(--deco-tile);
  background-size: 22px 22px;
  border-top: 1px solid var(--deco-gold-soft);
  border-bottom: 1px solid var(--deco-gold-soft);
}

/* ---------- Info strip (after image 1's bottom band) ---------- */
.deco-strip {
  background: var(--deco-ink);
  border-bottom: 1px solid var(--deco-gold-soft);
}

.deco-strip__inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 2fr 1.1fr .95fr;
}

.deco-strip__cell {
  padding: 2.4rem 1.6rem;
  border-left: 1px solid var(--deco-gold-faint);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.deco-strip__cell:first-child { border-left: 0; }

.deco-strip__label {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--deco-teal);
  text-align: center;
  margin-bottom: 1.2rem;
}

.deco-strip__label span {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
}

.deco-strip__label span::before,
.deco-strip__label span::after {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--deco-gold);
}

.deco-when {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.deco-when svg { width: 64px; flex: none; }

.deco-when__text {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  line-height: 1.45;
  font-size: .82rem;
  color: var(--deco-cream-2);
}

.deco-when__text strong {
  display: block;
  font-size: 1.25rem;
  color: var(--deco-coral);
  letter-spacing: .08em;
}

.deco-when__text em {
  font-style: normal;
  color: var(--deco-gold);
}

/* Featured artists */
.deco-artists {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.deco-artist {
  text-align: center;
  margin: 0;
}

.deco-artist__portrait {
  position: relative;
  width: 100%;
  max-width: 116px;
  aspect-ratio: 1;
  margin: 0 auto .8rem;
  border-radius: 50%;
  padding: 4px;
  background: conic-gradient(from 210deg, var(--deco-gold), var(--deco-coral), var(--deco-pink), var(--deco-teal), var(--deco-gold));
  box-shadow: 0 0 0 4px var(--deco-ink), 0 0 0 5px var(--deco-gold-soft), 0 0 26px #ec6a5540;
}

.deco-artist__portrait img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 22%;
  display: block;
  border: 3px solid var(--deco-ink);
}

.deco-artist__name {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--deco-cream);
  line-height: 1.3;
}

.deco-artist__role {
  font-family: var(--deco-font-heading);
  font-weight: 600;
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--deco-coral);
  margin-top: .25rem;
}

.deco-strip__cta {
  text-align: center;
  margin-top: 1.4rem;
}

.button.deco-small {
  padding: .7em 1.3em;
  font-size: .78rem;
}

/* Feature list with deco icons */
.deco-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.deco-features li {
  display: flex;
  align-items: center;
  gap: .85rem;
  font-family: var(--deco-font-heading);
  font-weight: 700;
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--deco-cream);
  line-height: 1.35;
}

.deco-features svg {
  width: 36px;
  height: 36px;
  flex: none;
  color: var(--deco-gold);
}

.deco-passcell {
  text-align: center;
  font-family: var(--deco-font-heading);
}

.deco-passcell__big {
  font-family: var(--deco-font-display);
  font-size: 2rem;
  line-height: 1.05;
  color: var(--deco-cream);
  margin: .2rem 0 .5rem;
}

.deco-passcell__note {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--deco-cream-2);
  margin-bottom: 1rem;
}

.deco-countdown {
  display: flex;
  justify-content: center;
  gap: .5rem;
  margin: 0 0 1rem;
}

.deco-countdown div {
  min-width: 48px;
  padding: .4rem .3rem;
  border: 1px solid var(--deco-gold-soft);
  text-align: center;
}

.deco-countdown b {
  display: block;
  font-family: var(--deco-font-display);
  font-weight: 400;
  font-size: 1.3rem;
  color: var(--deco-gold);
  line-height: 1.1;
}

.deco-countdown span {
  font-size: .58rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--deco-cream-2);
}

/* ---------- "Why Miami" intro ---------- */
.deco-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 3rem;
  align-items: center;
}

.deco-intro__script {
  font-family: var(--deco-font-script);
  font-size: 2.2rem;
  color: var(--deco-coral);
  line-height: 1;
  margin-bottom: .2rem;
}

.deco-intro__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--deco-gold-soft);
  box-shadow: inset 0 0 0 5px var(--deco-ink), inset 0 0 0 6px var(--deco-gold-faint);
}

.deco-intro__facts li {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
  border-top: 1px solid var(--deco-gold-faint);
  margin: 0;
}

.deco-intro__facts li:first-child { border-top: 0; }

.deco-intro__facts dt,
.deco-intro__facts .k {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--deco-teal);
  padding-top: .2rem;
}

.deco-intro__facts .v {
  color: var(--deco-cream);
  line-height: 1.5;
}

.deco-intro__facts .v strong { color: var(--deco-gold); font-weight: 600; }

/* Pass cards on homepage */
.deco-price-soon {
  font-family: var(--deco-font-display);
  font-size: 2.2rem;
  color: var(--deco-gold);
  margin: 0 0 .2rem;
}

/* "Plan your weekend" cards: deco line-art in a sunburst medallion */
.deco-plan {
  text-align: center;
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.deco-plan .button-group { margin-top: auto; justify-content: center; }

.deco-plan__icon {
  width: 132px;
  height: 132px;
  padding: 18px;
  margin: .5rem auto 1.5rem;
  color: var(--deco-gold);
  border-radius: 50%;
  border: 1px solid var(--deco-gold-soft);
  background: repeating-conic-gradient(#d8b26a14 0deg 6deg, transparent 6deg 15deg), radial-gradient(circle, #3a151c, var(--deco-ink-2) 70%);
  box-shadow: 0 0 0 6px var(--deco-ink-2), 0 0 0 7px var(--deco-gold-faint);
}

/* Hotel page: deco illustration where the hotel photo used to be */
.deco-hotel-art {
  width: 100%;
  max-width: 460px;
  justify-self: center;
  align-self: center;
}

.deco-hotel-art svg { width: 100%; height: auto; display: block; }

/* Homepage strip: lineup placeholder (four deco medallions awaiting portraits) */
.deco-artists-soon { text-align: center; }

.deco-artists-soon__ring {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.deco-artists-soon__ring span {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--deco-font-display);
  font-size: 1.8rem;
  color: var(--deco-gold);
  background: repeating-conic-gradient(#d8b26a14 0deg 6deg, transparent 6deg 15deg), radial-gradient(circle, var(--deco-wine), var(--deco-ink) 72%);
  box-shadow: 0 0 0 3px var(--deco-ink), 0 0 0 4px var(--deco-gold-soft), 0 0 20px #ec6a5530;
}

.deco-artists-soon__title {
  font-family: var(--deco-font-display);
  font-size: 1.7rem;
  color: var(--deco-cream);
}

.deco-artists-soon__note {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--deco-coral);
  margin-top: .3rem;
}

/* Coming-soon panels on schedule and artists pages */
.deco-soon__panel {
  max-width: 720px;
  margin: 0 auto;
  padding: 3.5rem 2rem;
  text-align: center;
  border: 1px solid var(--deco-gold-soft);
  box-shadow: inset 0 0 0 6px var(--deco-ink), inset 0 0 0 7px var(--deco-gold-faint);
  background: repeating-conic-gradient(from 0deg at 50% 100%, #d8b26a0d 0deg 4deg, transparent 4deg 9deg), var(--deco-ink);
}

.deco-soon__panel .h2-heading { font-family: var(--deco-font-display); font-weight: 400; font-size: clamp(2.4rem, 6vw, 3.6rem); }

.deco-soon__script {
  font-family: var(--deco-font-script);
  font-size: 2.2rem;
  color: var(--deco-coral);
  line-height: 1;
  margin-bottom: .4rem;
}

.deco-soon__date {
  font-family: var(--deco-font-heading);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--deco-teal);
  line-height: 1.7;
  margin: 1rem 0 1.8rem;
}

.deco-soon__panel .button-group { justify-content: center; }

@media screen and (max-width: 479px) {
  .deco-artists-soon__ring span { width: 56px; height: 56px; font-size: 1.4rem; }
}

/* ---------- Responsive ---------- */
@media screen and (max-width: 991px) {
  .deco-hero__inner { min-height: 0; padding: 4rem 2.5rem; }
  .deco-hero__scene::after { background: linear-gradient(90deg, #140c0ef2 0%, #140c0ecc 45%, #140c0e40 75%), linear-gradient(0deg, #140c0ecc 0%, transparent 20%); }
  .deco-strip__inner { grid-template-columns: 1fr 1fr; }
  .deco-strip__cell { border-left: 0; border-top: 1px solid var(--deco-gold-faint); }
  .deco-strip__cell--artists { grid-column: 1 / -1; order: -1; border-top: 0; }
  .deco-intro { grid-template-columns: 1fr; gap: 2rem; }
}

@media screen and (max-width: 767px) {
  /* Phones: photo on top as its own panel, copy below on ink */
  .deco-hero__scene { position: relative; aspect-ratio: 4 / 3; }
  .deco-hero__photo { object-position: 64% 20%; }
  .deco-hero__scene::after { background: linear-gradient(0deg, var(--deco-ink) 0%, transparent 35%); }
  .deco-hero__inner { padding: 0 1.5rem 3rem; margin-top: -2.5rem; }
  .deco-hero__frame { display: none; }
  .deco-hero__tagline { letter-spacing: .18em; font-size: .82rem; }
  .deco-kicker { letter-spacing: .22em; font-size: .74rem; }
  .deco-kicker::before { display: none; }
  .deco-strip__inner { grid-template-columns: 1fr; }
  .deco-strip__cell { padding: 2rem 1.25rem; }
  .deco-artists { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.6rem; }
  .deco-intro__facts li { grid-template-columns: 1fr; gap: .3rem; }
}
