
/* ===== Original design layer 1 ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] {
  --fp-black:#060202;
  --fp-deep:#100505;
  --fp-wine:#300505;
  --fp-wine-soft:#5A1511;
  --fp-rust:#AA5432;
  --fp-rust-light:#C8754F;
  --fp-gold:#B98532;
  --fp-gold-soft:#D8B56E;
  --fp-ivory:#FFF8EA;
  --fp-cream:#F3E3C6;
  --fp-paper:#F6E8CE;

  position:relative;
  width:100%;
  overflow:hidden;
  border:1px solid rgba(185,133,50,.55);
  border-radius:18px;
  background:
    radial-gradient(circle at 7% 0%,rgba(170,84,50,.19),transparent 29%),
    radial-gradient(circle at 96% 8%,rgba(185,133,50,.13),transparent 25%),
    linear-gradient(145deg,#080303 0%,#150707 49%,#080303 100%);
  box-shadow:
    0 38px 90px rgba(0,0,0,.40),
    inset 0 1px 0 rgba(255,248,234,.05);
  isolation:isolate;
  box-sizing:border-box;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] *,
section.tt-festival-pulse[id^="tt-festival-pulse-"] *::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] *::after {
  box-sizing:border-box;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] button,
section.tt-festival-pulse[id^="tt-festival-pulse-"] input,
section.tt-festival-pulse[id^="tt-festival-pulse-"] select {
  font:inherit;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell {
  position:relative;
  padding:54px 32px 35px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell::before {
  content:"";
  position:absolute;
  inset:11px;
  border:1px solid rgba(185,133,50,.12);
  border-radius:12px;
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(370px,.9fr);
  align-items:center;
  gap:42px;
  max-width:1200px;
  margin:0 auto 38px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kicker,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-section-kicker,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-selected-label {
  display:block;
  color:var(--fp-gold-soft);
  font-family:"Montserrat",sans-serif;
  font-size:7px;
  font-weight:700;
  letter-spacing:1.55px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kicker {
  margin-bottom:12px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero h1 {
  margin:0 0 20px;
  color:var(--fp-ivory);
  font-family:"Expletus Sans",sans-serif;
  font-size:clamp(52px,7vw,92px);
  font-weight:600;
  line-height:.88;
  letter-spacing:-1.5px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero h1 span {
  color:var(--fp-rust-light);
  font-weight:500;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy > p {
  max-width:680px;
  margin:0;
  color:rgba(243,227,198,.73);
  font-family:"Montserrat",sans-serif;
  font-size:10.2px;
  line-height:1.72;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-top,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-more {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:38px;
  padding:9px 16px 9px 18px;
  border:1px solid rgba(185,133,50,.40);
  border-radius:8px;
  background:linear-gradient(135deg,rgba(170,84,50,.35),rgba(48,5,5,.84));
  color:#fff;
  font-family:"Montserrat",sans-serif;
  font-size:6.7px;
  font-weight:700;
  letter-spacing:.48px;
  text-transform:uppercase;
  cursor:pointer;
  transition:
    transform .2s ease,
    border-color .2s ease,
    background .2s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-top:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-top:focus-visible,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom:focus-visible,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-more:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-more:focus-visible {
  transform:translateY(-2px);
  border-color:var(--fp-rust-light);
  background:linear-gradient(135deg,var(--fp-rust),var(--fp-wine));
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-top svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-more svg {
  width:13px;
  height:13px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-top,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom {
  min-height:38px;
  padding:8px 13px;
  border:1px solid rgba(185,133,50,.18);
  border-radius:8px;
  background:rgba(255,248,234,.02);
  color:rgba(243,227,198,.68);
  font-family:"Montserrat",sans-serif;
  font-size:6.5px;
  font-weight:700;
  letter-spacing:.5px;
  text-transform:uppercase;
  cursor:pointer;
  transition:
    border-color .2s ease,
    background .2s ease,
    color .2s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-top:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-top:focus-visible {
  border-color:rgba(200,117,79,.68);
  background:rgba(170,84,50,.17);
  color:#fff;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-intro-notes {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
  color:rgba(216,181,110,.50);
  font-family:"Montserrat",sans-serif;
  font-size:5.8px;
  font-weight:700;
  letter-spacing:.75px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-intro-notes i {
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--fp-rust-light);
}

/* Orbit artwork */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
  position:relative;
  min-height:430px;
  perspective:900px;
  transform-style:preserve-3d;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun {
  position:absolute;
  top:50%;
  left:50%;
  width:185px;
  height:185px;
  border-radius:50%;
  transform:translate(-50%,-50%);
  background:
    radial-gradient(circle at 35% 30%,#E0A75C 0%,#B75A34 38%,#641C16 72%,#260705 100%);
  box-shadow:
    0 0 0 1px rgba(216,181,110,.20),
    0 0 70px rgba(170,84,50,.26),
    inset -25px -20px 45px rgba(48,5,5,.46),
    inset 20px 14px 38px rgba(255,216,151,.14);
  animation:ttFpSunPulse 8s ease-in-out infinite;
  will-change:transform,box-shadow;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun::after {
  content:"";
  position:absolute;
  border:1px solid rgba(216,181,110,.20);
  border-radius:50%;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun::before {
  inset:13px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun::after {
  inset:31px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit {
  position:absolute;
  top:50%;
  left:50%;
  border:1px solid rgba(185,133,50,.18);
  border-radius:50%;
  transform:translate(-50%,-50%);
  transform-origin:center;
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-one {
  width:305px;
  height:305px;
  animation:ttFpOrbitClockwise 28s linear infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-two {
  width:405px;
  height:405px;
  border-style:dashed;
  opacity:.60;
  animation:ttFpOrbitCounter 42s linear infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit::after {
  content:"";
  position:absolute;
  border-radius:50%;
  background:var(--fp-gold-soft);
  box-shadow:
    0 0 0 4px rgba(216,181,110,.08),
    0 0 18px rgba(216,181,110,.55);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-one::before {
  top:18px;
  left:50%;
  width:7px;
  height:7px;
  transform:translateX(-50%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-one::after {
  right:24px;
  bottom:48px;
  width:5px;
  height:5px;
  background:var(--fp-rust-light);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-two::before {
  top:50%;
  right:-4px;
  width:8px;
  height:8px;
  transform:translateY(-50%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-two::after {
  left:31px;
  bottom:72px;
  width:5px;
  height:5px;
  background:var(--fp-rust-light);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card {
  position:absolute;
  width:150px;
  padding:15px 16px;
  border:1px solid rgba(185,133,50,.24);
  border-radius:11px;
  background:
    radial-gradient(circle at 95% 5%,rgba(170,84,50,.15),transparent 35%),
    rgba(12,4,4,.78);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 18px 42px rgba(0,0,0,.30);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card span {
  display:block;
  margin-bottom:8px;
  color:var(--fp-rust-light);
  font-family:"Expletus Sans",sans-serif;
  font-size:11px;
  font-weight:600;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card strong {
  display:block;
  margin-bottom:3px;
  color:var(--fp-ivory);
  font-family:"Expletus Sans",sans-serif;
  font-size:14px;
  font-weight:600;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card small {
  color:rgba(243,227,198,.57);
  font-family:"Montserrat",sans-serif;
  font-size:6.3px;
  line-height:1.4;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-one {
  top:27px;
  left:17px;
  animation:ttFpFloatOne 6.8s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-two {
  top:154px;
  right:0;
  animation:ttFpFloatTwo 7.6s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-three {
  right:45px;
  bottom:18px;
  animation:ttFpFloatThree 7.1s ease-in-out infinite;
}

/* Moving cultural ribbon */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
  position:relative;
  z-index:2;
  width:calc(100% + 64px);
  margin:0 -32px 34px;
  overflow:hidden;
  border-top:1px solid rgba(185,133,50,.18);
  border-bottom:1px solid rgba(185,133,50,.18);
  background:
    linear-gradient(90deg,rgba(48,5,5,.92),rgba(170,84,50,.22),rgba(48,5,5,.92));
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-track {
  display:flex;
  align-items:center;
  gap:18px;
  width:max-content;
  min-height:42px;
  padding:0 18px;
  color:rgba(255,248,234,.72);
  font-family:"Montserrat",sans-serif;
  font-size:6.5px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  animation:ttFpRibbon 28s linear infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-track i {
  width:6px;
  height:6px;
  border:1px solid var(--fp-gold-soft);
  transform:rotate(45deg);
}

/* Light festival-year area */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section {
  position:relative;
  z-index:2;
  max-width:1200px;
  margin:0 auto;
  padding:30px;
  overflow:hidden;
  border:1px solid rgba(185,133,50,.28);
  border-radius:17px;
  background:
    radial-gradient(circle at 100% 0%,rgba(185,133,50,.16),transparent 27%),
    linear-gradient(145deg,#FFF9EE,#EED9B8);
  box-shadow:
    0 30px 70px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.92);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section::before {
  content:"";
  position:absolute;
  top:-160px;
  right:-120px;
  width:360px;
  height:360px;
  border:1px solid rgba(170,84,50,.12);
  border-radius:50%;
  box-shadow:
    0 0 0 35px rgba(170,84,50,.025),
    0 0 0 70px rgba(170,84,50,.018);
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:21px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-section-kicker {
  color:#AA5432;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
  margin:5px 0 6px;
  color:#300505;
  font-family:"Expletus Sans",sans-serif;
  font-size:32px;
  font-weight:600;
  line-height:1.08;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading p {
  max-width:610px;
  margin:0;
  color:rgba(48,5,5,.58);
  font-family:"Montserrat",sans-serif;
  font-size:7.8px;
  line-height:1.5;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav {
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-prev,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-next,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow {
  border:1px solid rgba(48,5,5,.17);
  border-radius:8px;
  background:rgba(255,255,255,.48);
  color:#4A1A14;
  cursor:pointer;
  transition:
    background .18s ease,
    color .18s ease,
    border-color .18s ease,
    transform .18s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-prev,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-next,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow {
  width:35px;
  height:35px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-prev svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-next svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow svg {
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-number {
  min-width:52px;
  color:#300505;
  font-family:"Expletus Sans",sans-serif;
  font-size:17px;
  font-weight:600;
  text-align:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
  min-height:35px;
  padding:7px 11px;
  font-family:"Montserrat",sans-serif;
  font-size:6.2px;
  font-weight:700;
  letter-spacing:.55px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-prev:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-next:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow:hover {
  transform:translateY(-1px);
  border-color:#AA5432;
  background:#300505;
  color:#FFF8EA;
}

/* Filters */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:20px;
  padding:12px;
  border:1px solid rgba(48,5,5,.12);
  border-radius:11px;
  background:rgba(255,255,255,.45);
  box-shadow:0 12px 28px rgba(83,34,19,.07);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs {
  display:flex;
  gap:5px;
  flex:0 0 auto;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button {
  min-height:32px;
  padding:6px 10px;
  border:1px solid rgba(48,5,5,.14);
  border-radius:7px;
  background:rgba(255,255,255,.36);
  color:#5E2A1D;
  font-family:"Montserrat",sans-serif;
  font-size:6.1px;
  font-weight:700;
  letter-spacing:.62px;
  text-transform:uppercase;
  cursor:pointer;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button:focus-visible,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button.is-active {
  border-color:#AA5432;
  background:#300505;
  color:#FFF8EA;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
  flex:1 1 300px;
  display:flex;
  align-items:center;
  min-height:33px;
  border:1px solid rgba(48,5,5,.14);
  border-radius:8px;
  background:#FFFDF7;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search svg {
  width:13px;
  height:13px;
  margin-left:10px;
  fill:none;
  stroke:#8A4A31;
  stroke-width:1.7;
  stroke-linecap:round;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search input {
  width:100%;
  height:31px;
  padding:0 10px 0 8px;
  border:0;
  outline:0;
  background:transparent;
  color:#300505;
  font-family:"Montserrat",sans-serif;
  font-size:7.2px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search input::placeholder {
  color:rgba(48,5,5,.40);
}


/* Month rail */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
  position:relative;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 36px;
  align-items:center;
  gap:9px;
  margin-bottom:28px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail {
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:4px 2px 10px;
  scroll-behavior:smooth;
  scrollbar-width:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail::-webkit-scrollbar {
  display:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
  flex:0 0 112px;
  min-height:108px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:13px 13px 12px;
  border:1px solid rgba(48,5,5,.11);
  border-radius:14px;
  background:rgba(255,255,255,.42);
  color:#300505;
  box-shadow:
    0 8px 20px rgba(78,31,18,.06),
    inset 0 1px 0 rgba(255,255,255,.76);
  cursor:pointer;
  transition:
    transform .22s ease,
    border-color .22s ease,
    background .22s ease,
    color .22s ease,
    box-shadow .22s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:focus-visible {
  transform:translateY(-4px);
  border-color:rgba(170,84,50,.44);
  background:#FFFDF8;
  box-shadow:0 14px 28px rgba(78,31,18,.11);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active {
  transform:translateY(-5px);
  border-color:#AA5432;
  background:
    radial-gradient(circle at 75% 15%,rgba(200,117,79,.82),transparent 35%),
    linear-gradient(145deg,#641811,#300505);
  color:#FFF8EA;
  box-shadow:
    0 16px 34px rgba(48,5,5,.26),
    inset 0 1px 0 rgba(255,248,234,.14);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-index {
  color:rgba(170,84,50,.65);
  font-family:"Expletus Sans",sans-serif;
  font-size:10px;
  font-weight:600;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active .tt-fp-month-index {
  color:rgba(255,248,234,.65);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
  display:block;
  font-family:"Expletus Sans",sans-serif;
  font-size:15px;
  font-weight:600;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
  color:rgba(48,5,5,.48);
  font-family:"Montserrat",sans-serif;
  font-size:5.8px;
  font-weight:700;
  letter-spacing:.55px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active .tt-fp-month-count {
  color:rgba(255,248,234,.62);
}

/* Timeline */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:20px;
  padding-bottom:15px;
  border-bottom:1px solid rgba(48,5,5,.12);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-selected-label {
  color:#AA5432;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-selected-title {
  margin:5px 0 0;
  color:#300505;
  font-family:"Expletus Sans",sans-serif;
  font-size:27px;
  font-weight:600;
  line-height:1.08;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-result-meta {
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(48,5,5,.48);
  font-family:"Montserrat",sans-serif;
  font-size:5.8px;
  font-weight:700;
  letter-spacing:.58px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-result-meta i {
  width:3px;
  height:3px;
  border-radius:50%;
  background:#AA5432;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 34px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::before {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:1px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,transparent,rgba(170,84,50,.38),transparent);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card {
  --event-accent:#B98532;

  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  min-height:170px;
  overflow:hidden;
  border:1px solid rgba(48,5,5,.11);
  border-radius:14px;
  background:rgba(255,253,247,.70);
  box-shadow:
    0 14px 32px rgba(70,27,16,.09),
    inset 0 1px 0 rgba(255,255,255,.85);
  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] {
  --event-accent:#C8754F;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even) {
  transform:translateY(32px);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked {
  cursor:pointer;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:focus-visible {
  transform:translateY(-4px);
  border-color:color-mix(in srgb,var(--event-accent) 62%,#7A432F);
  box-shadow:
    0 21px 42px rgba(70,27,16,.15),
    inset 0 1px 0 rgba(255,255,255,.92);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):focus-visible {
  transform:translateY(27px);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card::before {
  content:"";
  position:absolute;
  top:50%;
  width:12px;
  height:12px;
  border:3px solid #F3E3C6;
  border-radius:50%;
  transform:translateY(-50%);
  background:var(--event-accent);
  box-shadow:0 0 0 1px rgba(170,84,50,.42);
  z-index:5;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(odd)::before {
  right:-24px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even)::before {
  left:-24px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image {
  position:relative;
  min-width:0;
  overflow:hidden;
  background:#2C0A08;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .35s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover .tt-fp-event-image img {
  transform:scale(1.035);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image::after {
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent 60%,rgba(28,7,6,.30)),
    linear-gradient(180deg,transparent 68%,rgba(0,0,0,.22));
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-kind {
  position:absolute;
  top:11px;
  left:11px;
  z-index:2;
  padding:5px 7px;
  border:1px solid rgba(255,248,234,.16);
  border-radius:6px;
  background:rgba(24,5,4,.75);
  color:#FFF8EA;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  font-family:"Montserrat",sans-serif;
  font-size:5.4px;
  font-weight:700;
  letter-spacing:.62px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-copy {
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:18px 18px 16px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-copy::before {
  content:"";
  position:absolute;
  top:14px;
  bottom:14px;
  left:0;
  width:1px;
  background:linear-gradient(180deg,transparent,var(--event-accent),transparent);
  opacity:.72;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-status {
  align-self:flex-start;
  margin-bottom:7px;
  padding:4px 7px;
  border:1px solid color-mix(in srgb,var(--event-accent) 46%,transparent);
  border-radius:999px;
  color:#7D3C28;
  background:color-mix(in srgb,var(--event-accent) 10%,transparent);
  font-family:"Montserrat",sans-serif;
  font-size:5.5px;
  font-weight:700;
  letter-spacing:.55px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-date {
  margin-bottom:5px;
  color:#9E4F31;
  font-family:"Montserrat",sans-serif;
  font-size:5.9px;
  font-weight:700;
  letter-spacing:.64px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card h4 {
  margin:0 0 7px;
  color:#300505;
  font-family:"Expletus Sans",sans-serif;
  font-size:16px;
  font-weight:600;
  line-height:1.12;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  margin-bottom:7px;
  color:#80503A;
  font-family:"Montserrat",sans-serif;
  font-size:5.5px;
  font-weight:700;
  letter-spacing:.54px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-meta i {
  width:3px;
  height:3px;
  border-radius:50%;
  background:#AA5432;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card p {
  margin:0;
  color:rgba(48,5,5,.60);
  font-family:"Montserrat",sans-serif;
  font-size:6.7px;
  line-height:1.45;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-cue {
  display:inline-flex;
  align-items:center;
  gap:6px;
  align-self:flex-start;
  margin-top:auto;
  padding-top:9px;
  color:#763B2A;
  font-family:"Montserrat",sans-serif;
  font-size:5.5px;
  font-weight:700;
  letter-spacing:.55px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-cue svg {
  width:11px;
  height:11px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty {
  padding:43px 20px;
  border:1px dashed rgba(48,5,5,.18);
  border-radius:14px;
  background:rgba(255,255,255,.25);
  text-align:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit {
  position:relative;
  width:74px;
  height:74px;
  margin:0 auto 15px;
  border:1px solid rgba(170,84,50,.24);
  border-radius:50%;
  animation:ttFpEmptySpin 13s linear infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit::before {
  content:"";
  position:absolute;
  inset:16px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#D8B56E,#AA5432 58%,#300505);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit i {
  position:absolute;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#AA5432;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit i:nth-child(1) {
  top:7px;
  left:34px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit i:nth-child(2) {
  right:8px;
  bottom:18px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit i:nth-child(3) {
  left:9px;
  bottom:17px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty > span {
  display:block;
  color:#300505;
  font-family:"Expletus Sans",sans-serif;
  font-size:15px;
  font-weight:600;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty p {
  margin:7px 0 0;
  color:rgba(48,5,5,.51);
  font-family:"Montserrat",sans-serif;
  font-size:6.8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-wrap {
  display:flex;
  justify-content:center;
  margin-top:48px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-wrap[hidden] {
  display:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-more {
  background:linear-gradient(135deg,#AA5432,#300505);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:48px;
  padding:23px 24px;
  border:1px solid rgba(48,5,5,.12);
  border-radius:13px;
  background:
    radial-gradient(circle at 94% 8%,rgba(170,84,50,.14),transparent 32%),
    rgba(255,255,255,.35);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer > div:first-child > span {
  display:block;
  margin-bottom:5px;
  color:#AA5432;
  font-family:"Montserrat",sans-serif;
  font-size:6.3px;
  font-weight:700;
  letter-spacing:.90px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer h3 {
  margin:0 0 6px;
  color:#300505;
  font-family:"Expletus Sans",sans-serif;
  font-size:21px;
  font-weight:600;
  line-height:1.12;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer p {
  max-width:620px;
  margin:0;
  color:rgba(48,5,5,.54);
  font-family:"Montserrat",sans-serif;
  font-size:7.2px;
  line-height:1.46;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom {
  border-color:rgba(48,5,5,.17);
  background:rgba(255,255,255,.48);
  color:#4A1A14;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom:hover {
  border-color:#AA5432;
  background:#300505;
  color:#FFF8EA;
}

/* Animations */

@keyframes ttFpOrbitClockwise {
  from { transform:translate(-50%,-50%) rotate(0deg); }
  to   { transform:translate(-50%,-50%) rotate(360deg); }
}

@keyframes ttFpOrbitCounter {
  from { transform:translate(-50%,-50%) rotate(360deg); }
  to   { transform:translate(-50%,-50%) rotate(0deg); }
}

@keyframes ttFpSunPulse {
  0%,100% {
    transform:translate(-50%,-50%) scale(1);
  }
  50% {
    transform:translate(-50%,-50%) scale(1.035);
  }
}

@keyframes ttFpFloatOne {
  0%,100% { transform:translate3d(0,0,0) rotate(-1deg); }
  50%     { transform:translate3d(0,-9px,18px) rotate(1deg); }
}

@keyframes ttFpFloatTwo {
  0%,100% { transform:translate3d(0,0,0) rotate(1deg); }
  50%     { transform:translate3d(-7px,-6px,22px) rotate(-1deg); }
}

@keyframes ttFpFloatThree {
  0%,100% { transform:translate3d(0,0,0) rotate(-.5deg); }
  50%     { transform:translate3d(6px,-8px,15px) rotate(1deg); }
}

@keyframes ttFpRibbon {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

@keyframes ttFpEmptySpin {
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}

/* Responsive */

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell {
    padding:43px 21px 28px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
    grid-template-columns:1fr 390px;
    gap:28px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    min-height:390px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
    width:calc(100% + 42px);
    margin-left:-21px;
    margin-right:-21px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    flex-wrap:wrap;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
    order:5;
    flex-basis:100%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card {
    grid-template-columns:125px minmax(0,1fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
    align-items:flex-start;
    flex-direction:column;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] {
    border-radius:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell {
    padding:30px 11px 18px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell::before {
    inset:7px;
    border-radius:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
    display:block;
    margin-bottom:25px;
    padding:0 7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero h1 {
    font-size:44px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy > p {
    font-size:8.8px;
    line-height:1.57;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    min-height:360px;
    margin-top:22px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun {
    width:145px;
    height:145px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-one {
    width:245px;
    height:245px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-two {
    width:330px;
    height:330px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card {
    width:130px;
    padding:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-one {
    top:16px;
    left:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-two {
    top:140px;
    right:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-three {
    right:18px;
    bottom:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
    width:calc(100% + 22px);
    margin-left:-11px;
    margin-right:-11px;
    margin-bottom:22px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section {
    padding:16px 10px;
    border-radius:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
    align-items:flex-start;
    flex-direction:column;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:24px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav {
    width:100%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year {
    margin-left:auto;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    align-items:stretch;
    flex-direction:column;
    padding:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs {
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }


  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
    width:100%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
    grid-template-columns:30px minmax(0,1fr) 30px;
    gap:5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow {
    width:30px;
    height:34px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    flex-basis:98px;
    min-height:96px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline-head {
    align-items:flex-start;
    flex-direction:column;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
    grid-template-columns:1fr;
    gap:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::before {
    left:8px;
    transform:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even) {
    grid-template-columns:110px minmax(0,1fr);
    min-height:154px;
    margin-left:22px;
    transform:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:focus-visible,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):hover,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):focus-visible {
    transform:translateY(-3px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(odd)::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even)::before {
    left:-21px;
    right:auto;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-copy {
    padding:14px 13px 13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card h4 {
    font-size:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card p {
    display:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
    margin-top:30px;
    padding:19px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions {
    align-items:stretch;
    flex-direction:column;
    width:100%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom {
    width:100%;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-one,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-two,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-one,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-two,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-three,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-track,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit {
    animation:none!important;
  }
}

/* ===== AUDITED CORRECTIONS ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-sun,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-three,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-track,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit {
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-sun,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-orbit-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-orbit-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-orbit-card-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-orbit-card-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-orbit-card-three,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-motion-track,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-empty-orbit {
  animation-play-state:running;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-track {
  padding-right:36px;
  backface-visibility:hidden;
  transform:translateZ(0);
  will-change:transform;
}

/* Clean editorial event stream; no broken centre-line or vertical staggering. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:dense;
  gap:18px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::before {
  display:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even) {
  grid-column:span 6;
  min-height:176px;
  transform:none;
  content-visibility:auto;
  contain-intrinsic-size:176px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(5n+1) { grid-column:span 7; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(5n+2) { grid-column:span 5; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(5n+3) { grid-column:span 5; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(5n+4) { grid-column:span 7; }

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(5n+5) {
  grid-column:span 12;
  grid-template-columns:minmax(210px,30%) minmax(0,70%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(odd)::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even)::before {
  display:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:focus-visible,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):focus-visible {
  transform:translateY(-4px);
}

/* Events are dark; festivals remain light, adding visual contrast. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] {
  border-color:rgba(185,133,50,.24);
  background:
    radial-gradient(circle at 100% 0%,rgba(170,84,50,.20),transparent 34%),
    linear-gradient(145deg,#260B09,#100505);
  box-shadow:
    0 16px 34px rgba(48,5,5,.22),
    inset 0 1px 0 rgba(255,248,234,.05);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] .tt-fp-event-status {
  border-color:rgba(216,181,110,.28);
  background:rgba(216,181,110,.08);
  color:#E1BD78;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] .tt-fp-event-date {
  color:#D18462;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] h4 {
  color:#FFF8EA;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] .tt-fp-event-meta {
  color:rgba(216,181,110,.66);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] p {
  color:rgba(243,227,198,.68);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] .tt-fp-event-cue {
  color:rgba(255,248,234,.66);
}

/* Safe poster fallback. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-fallback {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 48%,rgba(216,181,110,.34) 0 8%,transparent 9%),
    radial-gradient(circle at 50% 48%,transparent 0 25%,rgba(216,181,110,.20) 26% 27%,transparent 28%),
    radial-gradient(circle at 50% 48%,transparent 0 42%,rgba(200,117,79,.20) 43% 44%,transparent 45%),
    linear-gradient(145deg,#5D1712,#200605);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-fallback::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-fallback::after {
  content:"";
  position:absolute;
  border:1px solid rgba(255,248,234,.12);
  border-radius:50%;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-fallback::before {
  width:92px;
  height:92px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-fallback::after {
  width:126px;
  height:126px;
  border-style:dashed;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-fallback span {
  position:relative;
  z-index:1;
  color:rgba(255,248,234,.78);
  font-family:"Expletus Sans",sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image img.is-broken {
  display:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:not(.is-linked) {
  cursor:default;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:not(.is-linked):hover {
  transform:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:not(.is-linked) .tt-fp-event-cue {
  display:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty {
  min-height:245px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty[hidden] {
  display:none;
}

@media (max-width:1100px) and (min-width:768px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(n) {
    grid-column:span 6;
    grid-template-columns:118px minmax(0,1fr);
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(n) {
    grid-column:1;
    grid-template-columns:108px minmax(0,1fr);
    min-height:154px;
    margin-left:0;
    transform:none;
  }
}


/* ===== TRUE SEAMLESS INFINITE RIBBON ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
  --tt-fp-ribbon-gap:18px;
  mask-image:linear-gradient(
    90deg,
    transparent 0,
    #000 4%,
    #000 96%,
    transparent 100%
  );
  -webkit-mask-image:linear-gradient(
    90deg,
    transparent 0,
    #000 4%,
    #000 96%,
    transparent 100%
  );
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-track {
  display:flex;
  align-items:center;
  gap:0;
  width:max-content;
  min-width:max-content;
  padding:0;
  transform:translate3d(0,0,0);
  animation-name:ttFpRibbonSeamless;
  animation-duration:28s;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
  animation-direction:normal;
  animation-fill-mode:none;
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-group {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:var(--tt-fp-ribbon-gap);
  min-height:42px;
  padding:0 var(--tt-fp-ribbon-gap) 0 0;
  white-space:nowrap;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-group span {
  flex:0 0 auto;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-group i {
  flex:0 0 auto;
}

@keyframes ttFpRibbonSeamless {
  from {
    transform:translate3d(0,0,0);
  }
  to {
    transform:translate3d(-50%,0,0);
  }
}


/* =========================================================
CATCHY FESTIVAL ENERGY LAYER
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] {
  --fp-saffron:#E69A2D;
  --fp-magenta:#B9437A;
  --fp-teal:#1F8A83;
  --fp-coral:#E56A4A;
}

/* Stronger hero lighting */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
  min-height:520px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy {
  position:relative;
}


section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero h1 {
  text-shadow:
    0 12px 38px rgba(0,0,0,.30),
    0 0 34px rgba(170,84,50,.10);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero h1 span {
  background:linear-gradient(
    90deg,
    var(--fp-saffron),
    var(--fp-coral),
    var(--fp-magenta)
  );
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* Festival burst behind the orbit */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst {
  position:absolute;
  top:50%;
  left:50%;
  width:420px;
  height:420px;
  transform:translate(-50%,-50%);
  animation:ttFpBurstRotate 44s linear infinite;
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i {
  position:absolute;
  top:50%;
  left:50%;
  width:44%;
  height:15px;
  border-radius:999px;
  transform-origin:0 50%;
  opacity:.44;
  filter:blur(.2px);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(1)  { transform:rotate(0deg);   background:linear-gradient(90deg,var(--fp-saffron),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(2)  { transform:rotate(30deg);  background:linear-gradient(90deg,var(--fp-coral),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(3)  { transform:rotate(60deg);  background:linear-gradient(90deg,var(--fp-magenta),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(4)  { transform:rotate(90deg);  background:linear-gradient(90deg,var(--fp-teal),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(5)  { transform:rotate(120deg); background:linear-gradient(90deg,var(--fp-saffron),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(6)  { transform:rotate(150deg); background:linear-gradient(90deg,var(--fp-coral),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(7)  { transform:rotate(180deg); background:linear-gradient(90deg,var(--fp-magenta),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(8)  { transform:rotate(210deg); background:linear-gradient(90deg,var(--fp-teal),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(9)  { transform:rotate(240deg); background:linear-gradient(90deg,var(--fp-saffron),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(10) { transform:rotate(270deg); background:linear-gradient(90deg,var(--fp-coral),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(11) { transform:rotate(300deg); background:linear-gradient(90deg,var(--fp-magenta),transparent); }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst i:nth-child(12) { transform:rotate(330deg); background:linear-gradient(90deg,var(--fp-teal),transparent); }

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field {
  position:absolute;
  inset:0;
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b {
  position:absolute;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--fp-gold-soft);
  box-shadow:0 0 16px currentColor;
  animation:ttFpSparkFloat 6s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(1)  { left:10%; top:22%; color:var(--fp-saffron); animation-delay:-1s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(2)  { left:18%; top:68%; color:var(--fp-magenta); animation-delay:-2.2s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(3)  { left:31%; top:12%; color:var(--fp-teal); animation-delay:-3.1s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(4)  { left:39%; top:79%; color:var(--fp-coral); animation-delay:-4.3s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(5)  { left:53%; top:7%; color:var(--fp-saffron); animation-delay:-1.8s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(6)  { left:63%; top:88%; color:var(--fp-magenta); animation-delay:-2.8s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(7)  { left:74%; top:18%; color:var(--fp-teal); animation-delay:-3.8s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(8)  { left:86%; top:59%; color:var(--fp-coral); animation-delay:-4.8s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(9)  { left:8%; top:47%; color:var(--fp-teal); animation-delay:-2.4s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(10) { left:92%; top:31%; color:var(--fp-saffron); animation-delay:-3.4s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(11) { left:48%; top:95%; color:var(--fp-magenta); animation-delay:-4.4s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b:nth-child(12) { left:57%; top:31%; color:var(--fp-coral); animation-delay:-5.2s; }

/* Make orbit cards feel like active invitations */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card {
  overflow:hidden;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card::after {
  content:"";
  position:absolute;
  inset:auto -20% -35% 35%;
  width:110px;
  height:110px;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(229,154,45,.22),
    transparent 68%
  );
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-one {
  border-color:rgba(230,154,45,.36);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-two {
  border-color:rgba(185,67,122,.36);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-three {
  border-color:rgba(31,138,131,.36);
}

/* Editorial contrast band */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-band {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(420px,.8fr);
  align-items:center;
  gap:28px;
  max-width:1200px;
  margin:0 auto 30px;
  padding:28px 30px;
  overflow:hidden;
  border:1px solid rgba(216,181,110,.28);
  border-radius:16px;
  background:
    radial-gradient(circle at 88% 20%,rgba(185,67,122,.15),transparent 28%),
    radial-gradient(circle at 75% 80%,rgba(31,138,131,.13),transparent 30%),
    linear-gradient(135deg,#2B0807,#170504);
  box-shadow:
    0 24px 58px rgba(0,0,0,.31),
    inset 0 1px 0 rgba(255,248,234,.04);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-band::before {
  content:"";
  position:absolute;
  left:-120px;
  top:50%;
  width:260px;
  height:260px;
  border:1px solid rgba(230,154,45,.13);
  border-radius:50%;
  transform:translateY(-50%);
  box-shadow:
    0 0 0 28px rgba(230,154,45,.025),
    0 0 0 56px rgba(185,67,122,.018);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-copy {
  position:relative;
  z-index:1;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-copy > span {
  display:block;
  margin-bottom:7px;
  color:var(--fp-saffron);
  font-family:"Montserrat",sans-serif;
  font-size:6.6px;
  font-weight:700;
  letter-spacing:1.1px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-copy h2 {
  margin:0 0 9px;
  max-width:620px;
  color:var(--fp-ivory);
  font-family:"Expletus Sans",sans-serif;
  font-size:27px;
  font-weight:600;
  line-height:1.1;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-copy p {
  max-width:650px;
  margin:0;
  color:rgba(243,227,198,.68);
  font-family:"Montserrat",sans-serif;
  font-size:7.7px;
  line-height:1.52;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals div {
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:15px;
  border:1px solid rgba(255,248,234,.10);
  border-radius:12px;
  background:rgba(255,255,255,.025);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals div:nth-child(1) {
  box-shadow:inset 0 -3px 0 var(--fp-saffron);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals div:nth-child(2) {
  transform:translateY(-12px);
  box-shadow:inset 0 -3px 0 var(--fp-magenta);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals div:nth-child(3) {
  box-shadow:inset 0 -3px 0 var(--fp-teal);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals strong {
  display:block;
  margin-bottom:8px;
  color:rgba(255,248,234,.42);
  font-family:"Expletus Sans",sans-serif;
  font-size:12px;
  font-weight:600;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals span {
  color:var(--fp-ivory);
  font-family:"Montserrat",sans-serif;
  font-size:6.2px;
  font-weight:700;
  letter-spacing:.55px;
  text-transform:uppercase;
}

/* Stronger month rail and event poster treatment */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
  position:relative;
  overflow:hidden;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card::after {
  content:"";
  position:absolute;
  right:-26px;
  bottom:-31px;
  width:70px;
  height:70px;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(170,84,50,.16),
    transparent 68%
  );
  transition:transform .25s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:hover::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active::after {
  transform:scale(1.4);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card {
  min-height:188px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(4n+1) {
  --event-accent:var(--fp-saffron);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(4n+2) {
  --event-accent:var(--fp-magenta);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(4n+3) {
  --event-accent:var(--fp-teal);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(4n+4) {
  --event-accent:var(--fp-coral);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image {
  min-height:100%;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover {
  box-shadow:
    0 24px 50px rgba(70,27,16,.18),
    0 0 0 1px color-mix(in srgb,var(--event-accent) 25%,transparent),
    0 0 34px color-mix(in srgb,var(--event-accent) 18%,transparent);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-kind {
  border-color:color-mix(in srgb,var(--event-accent) 42%,rgba(255,248,234,.18));
}

/* Animation keyframes */
@keyframes ttFpBurstRotate {
  from { transform:translate(-50%,-50%) rotate(0deg); }
  to   { transform:translate(-50%,-50%) rotate(360deg); }
}

@keyframes ttFpSparkFloat {
  0%,100% {
    transform:translate3d(0,0,0) scale(.85);
    opacity:.35;
  }
  50% {
    transform:translate3d(0,-14px,0) scale(1.18);
    opacity:.95;
  }
}

/* Visibility-aware motion */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b {
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-burst,
section.tt-festival-pulse[id^="tt-festival-pulse-"].is-motion-active .tt-fp-spark-field b {
  animation-play-state:running;
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-band {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals {
    max-width:620px;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
    min-height:0;
  }


  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst {
    width:340px;
    height:340px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-band {
    margin-bottom:22px;
    padding:21px 17px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-copy h2 {
    font-size:21px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals div {
    min-height:82px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-editorial-signals div:nth-child(2) {
    transform:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card {
    min-height:164px;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-burst,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field b {
    animation:none!important;
  }
}



/* =========================================================
AUDITED LOWER-SECTION EFFECTS
Conflict-free, visibility-aware and performance-safe.
========================================================= */

/* ---------- Section-level motion control ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-sun,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-card-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-card-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-card-three,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-burst,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-spark-field b,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon .tt-fp-motion-track,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::after {
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-sun,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-orbit-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-orbit-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-orbit-card-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-orbit-card-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-orbit-card-three,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-burst,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero.is-fp-motion-active .tt-fp-spark-field b,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon.is-fp-motion-active .tt-fp-motion-track,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section.is-fp-motion-active::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section.is-fp-motion-active .tt-fp-month-card.is-active,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section.is-fp-motion-active .tt-fp-timeline::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section.is-fp-motion-active .tt-fp-empty-orbit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.is-fp-motion-active::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.is-fp-motion-active::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.is-fp-motion-active .tt-fp-catalogue-bottom,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.is-fp-motion-active .tt-fp-plan-bottom::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.is-fp-motion-active .tt-fp-year-footer-actions::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.is-fp-motion-active .tt-fp-year-footer-actions::after {
  animation-play-state:running;
}

/* ---------- Festival-year atmosphere ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section::after {
  content:"";
  position:absolute;
  inset:-16% -8%;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 17% 23%,rgba(230,154,45,.13),transparent 24%),
    radial-gradient(circle at 80% 27%,rgba(185,67,122,.10),transparent 23%),
    radial-gradient(circle at 64% 78%,rgba(31,138,131,.09),transparent 25%),
    radial-gradient(circle at 27% 77%,rgba(229,106,74,.10),transparent 23%);
  transform:translate3d(0,0,0);
  animation:ttFpAuditedGlow 20s ease-in-out infinite alternate;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section > * {
  position:relative;
  z-index:1;
}

/* ---------- Month rail ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap::after {
  content:"";
  position:absolute;
  left:52px;
  right:52px;
  bottom:-2px;
  height:2px;
  border-radius:999px;
  background:
    linear-gradient(
      90deg,
      rgba(48,5,5,.06),
      rgba(170,84,50,.18),
      rgba(48,5,5,.06)
    );
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap::before {
  content:"";
  position:absolute;
  left:52px;
  right:52px;
  bottom:-2px;
  height:2px;
  z-index:2;
  border-radius:999px;
  background:
    linear-gradient(
      90deg,
      transparent 0%,
      var(--fp-saffron) 22%,
      var(--fp-magenta) 47%,
      var(--fp-teal) 72%,
      transparent 100%
    );
  background-size:220% 100%;
  animation:ttFpAuditedRailFlow 7s linear infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active {
  animation:ttFpAuditedMonthGlow 3.2s ease-in-out infinite;
}

/* Remove the clipped outer pulse from the previous version. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active::before {
  display:none!important;
}

/* ---------- Event stream ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
  position:relative;
  perspective:1100px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::after {
  content:"";
  position:absolute;
  inset:-14px;
  z-index:0;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(
      118deg,
      transparent 0%,
      rgba(255,255,255,.10) 18%,
      transparent 34%
    );
  transform:translate3d(-125%,0,0);
  animation:ttFpAuditedTimelineLight 12s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card {
  z-index:1;
  transform-style:preserve-3d;
  transition:
    transform .32s cubic-bezier(.2,.75,.2,1),
    border-color .24s ease,
    box-shadow .24s ease,
    opacity .42s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  border-radius:inherit;
  opacity:0;
  background:
    linear-gradient(
      115deg,
      transparent 0%,
      rgba(255,255,255,.15) 17%,
      transparent 34%
    );
  transform:translate3d(-135%,0,0);
  transition:
    transform .72s ease,
    opacity .22s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked:hover::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked:focus-visible::after {
  opacity:1;
  transform:translate3d(135%,0,0);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked:focus-visible,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed.is-linked:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed.is-linked:focus-visible {
  transform:
    translateY(-7px)
    rotateX(1.2deg)
    rotateY(-1.2deg);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:not(.is-linked):hover {
  transform:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(
      circle at var(--tt-card-x,50%) var(--tt-card-y,50%),
      rgba(255,255,255,.19),
      transparent 31%
    );
  transition:opacity .24s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked:hover .tt-fp-event-image::before {
  opacity:1;
}

/* ---------- Reliable reveal animation ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.tt-fp-reveal-ready,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.tt-fp-reveal-ready {
  opacity:0;
  transform:translateY(26px) scale(.987);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.tt-fp-reveal-ready.tt-fp-revealed,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.tt-fp-reveal-ready.tt-fp-revealed {
  opacity:1;
  transform:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready {
  transition-delay:var(--tt-reveal-delay,0ms);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.tt-fp-reveal-ready.tt-fp-revealed:hover {
  transform:translateY(-4px);
}

/* ---------- Stronger final CTA ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
  position:relative;
  min-height:178px;
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 20%,rgba(185,67,122,.15),transparent 31%),
    radial-gradient(circle at 76% 78%,rgba(31,138,131,.12),transparent 28%),
    linear-gradient(135deg,#FFF7E9,#E8CEA8);
  box-shadow:
    0 20px 46px rgba(75,27,17,.13),
    inset 0 1px 0 rgba(255,255,255,.82);
  transition:
    transform .34s ease,
    box-shadow .34s ease,
    opacity .42s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer:hover {
  transform:translateY(-4px);
  box-shadow:
    0 28px 58px rgba(75,27,17,.18),
    inset 0 1px 0 rgba(255,255,255,.88);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::before {
  content:"";
  position:absolute;
  top:50%;
  right:14%;
  width:220px;
  height:220px;
  margin-top:-110px;
  border:1px dashed rgba(170,84,50,.18);
  border-radius:50%;
  box-shadow:
    0 0 0 25px rgba(185,67,122,.024),
    0 0 0 50px rgba(31,138,131,.016);
  animation:ttFpAuditedFooterRing 18s linear infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::after {
  content:"";
  position:absolute;
  top:50%;
  right:calc(14% + 105px);
  width:10px;
  height:10px;
  margin-top:-5px;
  border-radius:50%;
  background:var(--fp-saffron);
  box-shadow:
    0 0 0 5px rgba(230,154,45,.10),
    0 0 22px rgba(230,154,45,.48);
  animation:ttFpAuditedFooterSatellite 18s linear infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer > * {
  position:relative;
  z-index:2;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom {
  animation:ttFpAuditedCtaBreath 3.8s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom {
  position:relative;
  overflow:hidden;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(
      110deg,
      transparent 0%,
      rgba(255,255,255,.30) 46%,
      transparent 66%
    );
  transform:translate3d(-135%,0,0);
  animation:ttFpAuditedButtonShine 5.4s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions {
  position:relative;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::after {
  content:"";
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::before {
  top:-13px;
  right:18px;
  background:var(--fp-magenta);
  box-shadow:0 0 18px rgba(185,67,122,.48);
  animation:ttFpAuditedFooterSpark 4.6s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::after {
  left:18px;
  bottom:-14px;
  background:var(--fp-teal);
  box-shadow:0 0 18px rgba(31,138,131,.48);
  animation:ttFpAuditedFooterSpark 5.3s ease-in-out infinite reverse;
}

/* ---------- Keyframes ---------- */

@keyframes ttFpAuditedGlow {
  from {
    transform:translate3d(-1%,0,0) scale(1);
  }
  to {
    transform:translate3d(2%,1.2%,0) scale(1.045);
  }
}

@keyframes ttFpAuditedRailFlow {
  from {
    background-position:100% 0;
  }
  to {
    background-position:-120% 0;
  }
}

@keyframes ttFpAuditedMonthGlow {
  0%,100% {
    box-shadow:
      0 16px 34px rgba(48,5,5,.24),
      0 0 0 0 rgba(200,117,79,0),
      inset 0 1px 0 rgba(255,248,234,.14);
  }
  50% {
    box-shadow:
      0 18px 38px rgba(48,5,5,.29),
      0 0 0 6px rgba(200,117,79,.09),
      inset 0 1px 0 rgba(255,248,234,.17);
  }
}

@keyframes ttFpAuditedTimelineLight {
  0%,76%,100% {
    opacity:0;
    transform:translate3d(-125%,0,0);
  }
  84% {
    opacity:.58;
  }
  95% {
    opacity:0;
    transform:translate3d(125%,0,0);
  }
}

@keyframes ttFpAuditedFooterRing {
  from {
    transform:rotate(0deg);
  }
  to {
    transform:rotate(360deg);
  }
}

@keyframes ttFpAuditedFooterSatellite {
  from {
    transform:rotate(0deg) translateX(110px) rotate(0deg);
  }
  to {
    transform:rotate(360deg) translateX(110px) rotate(-360deg);
  }
}

@keyframes ttFpAuditedCtaBreath {
  0%,100% {
    box-shadow:
      0 0 0 0 rgba(170,84,50,0),
      0 8px 20px rgba(48,5,5,.16);
  }
  50% {
    box-shadow:
      0 0 0 7px rgba(170,84,50,.08),
      0 12px 28px rgba(48,5,5,.25);
  }
}

@keyframes ttFpAuditedButtonShine {
  0%,72%,100% {
    transform:translate3d(-135%,0,0);
  }
  88% {
    transform:translate3d(135%,0,0);
  }
}

@keyframes ttFpAuditedFooterSpark {
  0%,100% {
    transform:translate3d(0,0,0) scale(.76);
    opacity:.35;
  }
  50% {
    transform:translate3d(0,-9px,0) scale(1.14);
    opacity:1;
  }
}

/* ---------- Responsive ---------- */

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap::after {
    left:36px;
    right:36px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked:hover,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.is-linked:focus-visible,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed.is-linked:hover,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed.is-linked:focus-visible {
    transform:translateY(-4px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
    min-height:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::after {
    opacity:.38;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::after {
    animation:none!important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.tt-fp-reveal-ready,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer.tt-fp-reveal-ready {
    opacity:1;
    transform:none;
  }
}


/* =========================================================
CINEMATIC NEXT-CELEBRATION SPOTLIGHT
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  min-height:430px;
  max-width:1200px;
  margin:0 auto 32px;
  overflow:hidden;
  border:1px solid rgba(216,181,110,.34);
  border-radius:18px;
  background:
    radial-gradient(circle at 82% 18%,rgba(185,67,122,.14),transparent 27%),
    linear-gradient(145deg,#240807,#100404);
  box-shadow:
    0 30px 70px rgba(0,0,0,.36),
    inset 0 1px 0 rgba(255,248,234,.05);
  transition:
    opacity .45s ease,
    transform .45s ease,
    box-shadow .35s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured:hover {
  box-shadow:
    0 38px 86px rgba(0,0,0,.42),
    0 0 0 1px rgba(216,181,110,.08),
    inset 0 1px 0 rgba(255,248,234,.06);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
  position:relative;
  min-height:430px;
  overflow:hidden;
  background:#1A0605;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-fallback {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 48%,rgba(230,154,45,.30) 0 8%,transparent 9%),
    radial-gradient(circle at 50% 48%,transparent 0 26%,rgba(185,67,122,.18) 27% 28%,transparent 29%),
    radial-gradient(circle at 50% 48%,transparent 0 43%,rgba(31,138,131,.16) 44% 45%,transparent 46%),
    linear-gradient(145deg,#611A12,#260706);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-fallback span {
  color:rgba(255,248,234,.74);
  font-family:"Expletus Sans",sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  opacity:0;
  transform:scale(1.035);
  transition:
    opacity .45s ease,
    transform 1.2s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.has-image .tt-fp-featured-image {
  opacity:1;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured:hover .tt-fp-featured-image {
  transform:scale(1.075);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-overlay {
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent 52%,rgba(14,4,4,.62) 100%),
    linear-gradient(180deg,rgba(0,0,0,.06),transparent 46%,rgba(0,0,0,.50));
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date {
  position:absolute;
  left:24px;
  bottom:23px;
  z-index:3;
  width:96px;
  min-height:111px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:13px;
  border:1px solid rgba(255,248,234,.20);
  border-radius:14px;
  background:rgba(30,6,5,.78);
  color:#FFF8EA;
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  box-shadow:0 18px 38px rgba(0,0,0,.26);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-day {
  font-family:"Expletus Sans",sans-serif;
  font-size:31px;
  font-weight:600;
  line-height:.9;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-month {
  margin-top:8px;
  color:var(--fp-saffron);
  font-family:"Montserrat",sans-serif;
  font-size:8px;
  font-weight:700;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-year {
  margin-top:3px;
  color:rgba(255,248,234,.56);
  font-family:"Montserrat",sans-serif;
  font-size:6px;
  font-weight:700;
  letter-spacing:.8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-orbits {
  position:absolute;
  right:-80px;
  top:-86px;
  width:260px;
  height:260px;
  pointer-events:none;
  animation:ttFpFeaturedOrbitSpin 24s linear infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-orbits {
  animation-play-state:running;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-orbits i {
  position:absolute;
  inset:0;
  border:1px solid rgba(230,154,45,.20);
  border-radius:50%;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-orbits i:nth-child(2) {
  inset:28px;
  border-color:rgba(185,67,122,.20);
  border-style:dashed;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-orbits i:nth-child(3) {
  inset:61px;
  border-color:rgba(31,138,131,.20);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px 42px 38px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::before {
  content:"";
  position:absolute;
  left:0;
  top:12%;
  bottom:12%;
  width:1px;
  background:
    linear-gradient(
      180deg,
      transparent,
      var(--fp-saffron),
      var(--fp-magenta),
      var(--fp-teal),
      transparent
    );
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker {
  display:block;
  margin-bottom:10px;
  color:var(--fp-saffron);
  font-family:"Montserrat",sans-serif;
  font-size:6.6px;
  font-weight:700;
  letter-spacing:1.3px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  margin:0 0 13px;
  color:#FFF8EA;
  font-family:"Expletus Sans",sans-serif;
  font-size:clamp(28px,3.2vw,42px);
  font-weight:600;
  line-height:1.02;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
  margin:0;
  color:rgba(243,227,198,.70);
  font-family:"Montserrat",sans-serif;
  font-size:8px;
  line-height:1.58;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:15px;
  color:rgba(216,181,110,.68);
  font-family:"Montserrat",sans-serif;
  font-size:5.8px;
  font-weight:700;
  letter-spacing:.62px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-meta i {
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--fp-coral);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:23px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
  position:relative;
  min-height:82px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:12px;
  overflow:hidden;
  border:1px solid rgba(255,248,234,.09);
  border-radius:11px;
  background:rgba(255,255,255,.025);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div::after {
  content:"";
  position:absolute;
  right:-23px;
  bottom:-29px;
  width:68px;
  height:68px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(230,154,45,.13),transparent 69%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div:nth-child(2)::after {
  background:radial-gradient(circle,rgba(185,67,122,.13),transparent 69%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div:nth-child(3)::after {
  background:radial-gradient(circle,rgba(31,138,131,.13),transparent 69%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
  color:#FFF8EA;
  font-family:"Expletus Sans",sans-serif;
  font-size:20px;
  font-weight:600;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
  margin-top:4px;
  color:rgba(216,181,110,.60);
  font-family:"Montserrat",sans-serif;
  font-size:5.5px;
  font-weight:700;
  letter-spacing:.7px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta {
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:39px;
  margin-top:21px;
  padding:9px 16px 9px 18px;
  border:1px solid rgba(216,181,110,.36);
  border-radius:8px;
  background:linear-gradient(135deg,#AA5432,#300505);
  color:#FFF8EA;
  font-family:"Montserrat",sans-serif;
  font-size:6.5px;
  font-weight:700;
  letter-spacing:.52px;
  text-transform:uppercase;
  cursor:pointer;
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    opacity .2s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta:not(:disabled):hover {
  transform:translateY(-2px);
  box-shadow:
    0 12px 28px rgba(48,5,5,.30),
    0 0 0 5px rgba(170,84,50,.08);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta:disabled {
  cursor:default;
  opacity:.58;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta svg {
  width:13px;
  height:13px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@keyframes ttFpFeaturedOrbitSpin {
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}

@media (max-width:900px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:390px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::before {
    top:0;
    right:10%;
    bottom:auto;
    left:10%;
    width:auto;
    height:1px;
    background:
      linear-gradient(
        90deg,
        transparent,
        var(--fp-saffron),
        var(--fp-magenta),
        var(--fp-teal),
        transparent
      );
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    min-height:0;
    margin-bottom:22px;
    border-radius:14px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:310px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date {
    left:15px;
    bottom:15px;
    width:83px;
    min-height:98px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-day {
    font-size:26px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:28px 20px 24px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    font-size:25px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
    min-height:70px;
    padding:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
    font-size:17px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta {
    width:100%;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-orbits {
    animation:none!important;
  }
}


/* =========================================================
REFINED UPCOMING FESTIVAL / EVENT BLOCK
Clean hierarchy with subtle cinematic movement.
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
  grid-template-columns:minmax(0,1.04fr) minmax(390px,.96fr);
  min-height:448px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
  min-height:448px;
}

/* Slow zoom-out / zoom-in rather than a permanent enlarged image. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-image {
  transform:scale(1.09);
  will-change:transform,opacity;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.has-image.is-fp-motion-active .tt-fp-featured-image {
  animation:ttFpFeaturedKenBurns 14s ease-in-out infinite alternate;
}

/* Soft moving sheen over the poster. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media::after {
  content:"";
  position:absolute;
  inset:-20%;
  z-index:2;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(
      112deg,
      transparent 30%,
      rgba(255,248,234,.16) 45%,
      rgba(255,248,234,.04) 51%,
      transparent 64%
    );
  transform:translate3d(-85%,0,0) rotate(4deg);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-media::after {
  animation:ttFpFeaturedSheen 8.5s ease-in-out infinite;
}

/* Gently floating date ticket. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date {
  z-index:4;
  width:92px;
  min-height:108px;
  animation-play-state:paused;
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-date {
  animation:ttFpFeaturedDateFloat 5.8s ease-in-out infinite;
}

/* Cleaner and more deliberate copy spacing. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
  justify-content:flex-start;
  padding:38px 40px 35px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::after {
  content:"";
  position:absolute;
  right:-70px;
  bottom:-80px;
  width:220px;
  height:220px;
  border-radius:42% 58% 63% 37% / 48% 39% 61% 52%;
  pointer-events:none;
  opacity:.14;
  background:
    radial-gradient(circle at 35% 35%,var(--fp-magenta),transparent 58%),
    radial-gradient(circle at 68% 68%,var(--fp-teal),transparent 60%);
  filter:blur(4px);
  transform:rotate(0deg) scale(.92);
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-copy::after {
  animation:ttFpFeaturedMorph 11s ease-in-out infinite alternate;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  min-height:31px;
  margin-bottom:15px;
  padding-bottom:11px;
  border-bottom:1px solid rgba(255,248,234,.09);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker {
  display:inline-flex;
  align-items:center;
  min-height:25px;
  margin:0;
  padding:7px 10px;
  border:1px solid rgba(230,154,45,.36);
  border-radius:999px;
  background:rgba(230,154,45,.09);
  color:#F2B855;
  font-size:7.1px;
  letter-spacing:1.1px;
  text-shadow:0 0 18px rgba(230,154,45,.24);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker::before {
  content:"";
  width:5px;
  height:5px;
  margin-right:7px;
  border-radius:50%;
  background:var(--fp-saffron);
  box-shadow:0 0 0 4px rgba(230,154,45,.10);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
  color:rgba(243,227,198,.52);
  font-family:"Montserrat",sans-serif;
  font-size:5.9px;
  font-weight:700;
  letter-spacing:.75px;
  text-align:right;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  position:relative;
  z-index:2;
  max-width:560px;
  margin:0 0 12px;
  font-size:clamp(24px,2.35vw,33px);
  line-height:1.08;
  text-wrap:balance;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-title {
  animation:ttFpFeaturedTitleDissolve 7.5s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
  position:relative;
  z-index:2;
  max-width:560px;
  font-size:7.7px;
  line-height:1.65;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:9px;
  margin-top:19px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail {
  position:relative;
  min-height:69px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:12px 13px;
  overflow:hidden;
  border:1px solid rgba(255,248,234,.09);
  border-radius:10px;
  background:rgba(255,255,255,.026);
  transition:
    transform .28s ease,
    border-color .28s ease,
    background .28s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:hover {
  transform:translateY(-3px);
  border-color:rgba(230,154,45,.23);
  background:rgba(255,255,255,.04);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(
      110deg,
      transparent 25%,
      rgba(255,255,255,.10) 48%,
      transparent 66%
    );
  transform:translate3d(-130%,0,0);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-detail::after {
  animation:ttFpFeaturedDetailSheen 9s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:nth-child(2)::after {
  animation-delay:1.1s!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > span {
  margin-bottom:5px;
  color:rgba(216,181,110,.54);
  font-family:"Montserrat",sans-serif;
  font-size:5.2px;
  font-weight:700;
  letter-spacing:.65px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > strong {
  color:rgba(255,248,234,.88);
  font-family:"Montserrat",sans-serif;
  font-size:6.8px;
  font-weight:600;
  line-height:1.42;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:13px;
  margin-top:15px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
  gap:7px;
  margin-top:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
  min-height:67px;
  padding:10px 11px;
  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div:hover {
  transform:translateY(-3px);
  background:rgba(255,255,255,.045);
  border-color:rgba(255,248,234,.15);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
  font-size:17px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta {
  min-width:158px;
  min-height:42px;
  margin-top:0;
  padding:10px 14px;
  overflow:hidden;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(
      105deg,
      transparent 20%,
      rgba(255,255,255,.28) 48%,
      transparent 70%
    );
  transform:translate3d(-145%,0,0);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-cta::before {
  animation:ttFpFeaturedCtaSheen 5.8s ease-in-out infinite;
}

/* Month rail: no number line, only Jan / Feb / Mar etc. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-index {
  display:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
  min-height:82px;
  justify-content:center;
  padding-top:14px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
  font-size:13px;
  letter-spacing:.2px;
  text-transform:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
  margin-top:6px;
}

/* Animations */
@keyframes ttFpFeaturedKenBurns {
  0% {
    transform:scale(1.09) translate3d(-.4%,0,0);
  }
  50% {
    transform:scale(1.025) translate3d(.4%,-.3%,0);
  }
  100% {
    transform:scale(1.075) translate3d(0,.25%,0);
  }
}

@keyframes ttFpFeaturedSheen {
  0%,62%,100% {
    opacity:0;
    transform:translate3d(-85%,0,0) rotate(4deg);
  }
  72% {
    opacity:.5;
  }
  86% {
    opacity:0;
    transform:translate3d(85%,0,0) rotate(4deg);
  }
}

@keyframes ttFpFeaturedDateFloat {
  0%,100% {
    transform:translate3d(0,0,0) rotate(-.25deg);
  }
  50% {
    transform:translate3d(0,-7px,0) rotate(.35deg);
  }
}

@keyframes ttFpFeaturedMorph {
  0% {
    border-radius:42% 58% 63% 37% / 48% 39% 61% 52%;
    transform:rotate(0deg) scale(.92);
  }
  100% {
    border-radius:60% 40% 38% 62% / 35% 60% 40% 65%;
    transform:rotate(10deg) scale(1.08);
  }
}

@keyframes ttFpFeaturedTitleDissolve {
  0%,100% {
    opacity:.92;
    text-shadow:0 0 0 rgba(230,154,45,0);
  }
  50% {
    opacity:1;
    text-shadow:0 0 22px rgba(230,154,45,.10);
  }
}

@keyframes ttFpFeaturedDetailSheen {
  0%,68%,100% {
    opacity:0;
    transform:translate3d(-130%,0,0);
  }
  76% {
    opacity:.65;
  }
  90% {
    opacity:0;
    transform:translate3d(130%,0,0);
  }
}

@keyframes ttFpFeaturedCtaSheen {
  0%,66%,100% {
    transform:translate3d(-145%,0,0);
  }
  84% {
    transform:translate3d(145%,0,0);
  }
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:minmax(0,1fr) minmax(350px,.95fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:32px 30px 30px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta {
    width:100%;
  }
}

@media (max-width:900px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:29px 24px 25px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    max-width:680px;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
    align-items:flex-start;
    flex-direction:column;
    gap:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
    text-align:left;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    font-size:23px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail {
    min-height:61px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower {
    gap:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-height:74px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
    font-size:12px;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-image,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta::before {
    animation:none!important;
  }
}


/* =========================================================
COMPACT UPCOMING FESTIVAL / EVENT BLOCK
========================================================= */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured{
  min-height:382px;
  grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr);
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media{min-height:382px;}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy{
  justify-content:center;
  padding:27px 32px 25px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row{
  min-height:26px;
  margin-bottom:10px;
  padding-bottom:8px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker{
  min-height:22px;
  padding:5px 9px;
  font-size:6.3px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category{font-size:5.3px;}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title{
  max-width:500px;
  margin-bottom:7px;
  font-size:clamp(19px,1.75vw,25px);
  line-height:1.12;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description{
  max-width:510px;
  display:-webkit-box;
  overflow:hidden;
  margin:0;
  font-size:6.8px;
  line-height:1.48;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details{
  gap:8px;
  margin-top:12px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail{
  min-height:54px;
  padding:9px 11px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail>span{
  margin-bottom:3px;
  font-size:4.8px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail>strong{font-size:6.1px;}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower{
  display:block;
  margin-top:11px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:0;
  min-height:61px;
  margin:0;
  padding:8px 11px;
  overflow:hidden;
  border:1px solid rgba(255,248,234,.10);
  border-radius:11px;
  background:
    radial-gradient(circle at 10% 50%,rgba(230,154,45,.08),transparent 31%),
    radial-gradient(circle at 90% 50%,rgba(31,138,131,.07),transparent 31%),
    rgba(255,255,255,.025);
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown>div{
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:4px 7px;
  border:0;
  border-radius:0;
  background:transparent;
  transition:transform .25s ease;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit:hover{transform:translateY(-2px);}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown>i{
  width:1px;
  height:29px;
  background:linear-gradient(180deg,transparent,rgba(216,181,110,.28),transparent);
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong{
  font-size:17px;
  line-height:1;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span{
  margin-top:4px;
  font-size:4.9px;
}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown>div::after{display:none!important;}
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-cta{display:none!important;}
@media(max-width:1024px){
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured{grid-template-columns:minmax(0,1fr) minmax(330px,.92fr);}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy{padding:24px 26px 22px;}
}
@media(max-width:900px){
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured{grid-template-columns:1fr;min-height:0;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media{min-height:340px;}
}
@media(max-width:767px){
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media{min-height:285px;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy{padding:21px 17px 19px;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title{font-size:19px;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description{font-size:6.6px;-webkit-line-clamp:4;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown{min-height:58px;padding:7px 6px;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown>div{padding:4px;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong{font-size:15px;}
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown>i{height:25px;}
}


/* =========================================================
ULTRA-COMPACT UPCOMING FESTIVAL / EVENT BLOCK
========================================================= */

/* The complete block is intentionally much shorter. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
  min-height:310px;
  grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
  min-height:310px;
}

/* Smaller date ticket so it does not dominate the poster. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date {
  left:17px;
  bottom:16px;
  width:76px;
  min-height:88px;
  padding:10px;
  border-radius:11px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-day {
  font-size:24px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-month {
  margin-top:6px;
  font-size:6.8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-year {
  font-size:5.4px;
}

/* Dense but clearly separated content column. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
  justify-content:center;
  padding:18px 23px 17px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
  min-height:23px;
  margin-bottom:8px;
  padding-bottom:7px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker {
  min-height:20px;
  padding:4px 8px;
  font-size:5.8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker::before {
  width:4px;
  height:4px;
  margin-right:6px;
  box-shadow:0 0 0 3px rgba(230,154,45,.10);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
  font-size:4.8px;
}

/* Compact title with a strict two-line ceiling. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  max-width:480px;
  display:-webkit-box;
  overflow:hidden;
  margin:0 0 7px;
  font-size:clamp(17px,1.45vw,22px);
  line-height:1.08;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

/* The description is now a very small, distinct story strip. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-summary {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:70px minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:7px 9px;
  border:1px solid rgba(255,248,234,.085);
  border-left:2px solid rgba(230,154,45,.58);
  border-radius:8px;
  background:rgba(255,255,255,.022);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-summary-label {
  color:rgba(230,154,45,.78);
  font-family:"Montserrat",sans-serif;
  font-size:4.8px;
  font-weight:700;
  letter-spacing:.62px;
  line-height:1.3;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
  max-width:none;
  display:-webkit-box;
  overflow:hidden;
  margin:0;
  color:rgba(243,227,198,.66);
  font-size:6.1px;
  line-height:1.42;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

/* Destination and timing are equal compact cells. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail {
  min-height:45px;
  padding:7px 9px;
  border-radius:8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > span {
  margin-bottom:3px;
  font-size:4.3px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > strong {
  display:-webkit-box;
  overflow:hidden;
  font-size:5.7px;
  line-height:1.32;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

/* One compact countdown bar, internally segregated. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower {
  margin-top:8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
  grid-template-columns:
    62px
    minmax(0,1fr)
    auto
    minmax(0,1fr)
    auto
    minmax(0,1fr);
  min-height:48px;
  padding:5px 8px;
  border-radius:8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-label {
  align-self:stretch;
  display:flex;
  align-items:center;
  padding-right:8px;
  border-right:1px solid rgba(216,181,110,.19);
  color:rgba(216,181,110,.66);
  font-family:"Montserrat",sans-serif;
  font-size:4.5px;
  font-weight:700;
  letter-spacing:.62px;
  line-height:1.3;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
  padding:2px 6px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
  font-size:14px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
  margin-top:3px;
  font-size:4.2px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > i {
  height:22px;
}

/* Keep subtle effects without allowing them to enlarge the layout. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::after {
  width:165px;
  height:165px;
  right:-58px;
  bottom:-66px;
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    min-height:300px;
    grid-template-columns:minmax(0,1fr) minmax(330px,.95fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:300px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:17px 20px 16px;
  }
}

@media (max-width:900px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:1fr;
    min-height:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:270px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:18px 20px 17px;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:220px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:16px 14px 15px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
    min-height:0;
    margin-bottom:7px;
    padding-bottom:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    font-size:17px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-summary {
    grid-template-columns:60px minmax(0,1fr);
    gap:7px;
    min-height:39px;
    padding:6px 8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
    font-size:5.9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail {
    min-height:43px;
    padding:6px 7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
    grid-template-columns:
      52px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
    min-height:45px;
    padding:4px 5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-label {
    padding-right:5px;
    font-size:4px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
    padding:2px 3px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
    font-size:12.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
    font-size:3.9px;
  }
}

@media (max-width:420px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-summary {
    grid-template-columns:1fr;
    gap:3px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-summary-label {
    font-size:4.2px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
    grid-template-columns:
      46px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
  }
}


/* =========================================================
MODERN READABLE UPCOMING FESTIVAL / EVENT BLOCK
Final authoritative layout overrides.
========================================================= */

/*
  Compact overall composition:
  readable typography, clean whitespace and thin dividers.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
  min-height:340px;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
  border-radius:17px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
  min-height:340px;
}

/* Content panel */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
  justify-content:center;
  padding:27px 31px 25px;
}

/* Clear first row */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
  min-height:auto;
  margin:0 0 13px;
  padding:0 0 11px;
  border-bottom:1px solid rgba(255,248,234,.12);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker {
  min-height:28px;
  padding:7px 12px;
  border-color:rgba(230,154,45,.42);
  background:rgba(230,154,45,.10);
  color:#F4BD5B;
  font-size:10px;
  line-height:1;
  letter-spacing:.85px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker::before {
  width:6px;
  height:6px;
  margin-right:8px;
  box-shadow:0 0 0 4px rgba(230,154,45,.11);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
  color:rgba(243,227,198,.66);
  font-size:10px;
  line-height:1.3;
  letter-spacing:.55px;
}

/* Readable title, still restrained */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  max-width:590px;
  display:block;
  overflow:visible;
  margin:0 0 10px;
  font-size:clamp(24px,2.1vw,31px);
  line-height:1.12;
  -webkit-line-clamp:unset;
  text-wrap:balance;
}

/*
  No box around the description.
  It reads as modern editorial copy and is visually separated
  by spacing rather than borders.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
  max-width:590px;
  display:-webkit-box;
  overflow:hidden;
  margin:0;
  color:rgba(243,227,198,.74);
  font-size:14px;
  line-height:1.55;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

/* Remove all remnants of the previous retro summary box */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-summary,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-summary-label {
  display:none!important;
}

/*
  Details are segregated by one shared row and a central divider,
  not by two heavy boxes.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  margin-top:17px;
  padding:13px 0;
  border-top:1px solid rgba(255,248,234,.10);
  border-bottom:1px solid rgba(255,248,234,.10);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details::after {
  content:"";
  position:absolute;
  top:12px;
  bottom:12px;
  left:50%;
  width:1px;
  background:rgba(255,248,234,.11);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail {
  min-height:auto;
  padding:0 17px 0 0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:nth-child(2) {
  padding:0 0 0 18px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:hover {
  transform:none;
  border-color:transparent;
  background:transparent;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail::after {
  display:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > span {
  margin-bottom:5px;
  color:rgba(216,181,110,.68);
  font-size:10px;
  line-height:1.2;
  letter-spacing:.65px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > strong {
  display:block;
  overflow:visible;
  color:rgba(255,248,234,.91);
  font-size:13px;
  line-height:1.4;
  font-weight:600;
  -webkit-line-clamp:unset;
}

/* One modern countdown bar */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower {
  margin-top:15px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
  grid-template-columns:
    82px
    minmax(0,1fr)
    auto
    minmax(0,1fr)
    auto
    minmax(0,1fr);
  min-height:66px;
  padding:8px 12px;
  border:1px solid rgba(255,248,234,.11);
  border-radius:10px;
  background:
    linear-gradient(90deg,rgba(230,154,45,.055),transparent 35%),
    rgba(255,255,255,.025);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-label {
  padding-right:12px;
  color:rgba(216,181,110,.72);
  font-size:10px;
  line-height:1.25;
  letter-spacing:.7px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
  min-height:auto;
  padding:2px 12px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
  font-size:22px;
  line-height:1;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
  margin-top:5px;
  font-size:9px;
  line-height:1;
  letter-spacing:.55px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > i {
  height:31px;
}

/* Date card remains legible */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date {
  left:20px;
  bottom:19px;
  width:87px;
  min-height:99px;
  padding:12px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-day {
  font-size:28px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-month {
  margin-top:7px;
  font-size:9px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-year {
  font-size:8px;
}

/* Tablet */
@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);
    min-height:330px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:330px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:24px 25px 23px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    font-size:24px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
    font-size:13.5px;
  }
}

/* Stacked layout */
@media (max-width:900px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:1fr;
    min-height:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:300px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:25px 24px 24px;
  }
}

/* Mobile */
@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:245px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:21px 17px 20px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker {
    min-height:26px;
    padding:7px 10px;
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
    font-size:9px;
    text-align:right;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    margin-bottom:9px;
    font-size:22px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
    font-size:13.5px;
    line-height:1.5;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
    margin-top:15px;
    padding:12px 0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail {
    padding-right:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:nth-child(2) {
    padding-left:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > span {
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > strong {
    font-size:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
    grid-template-columns:
      65px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
    min-height:60px;
    padding:7px 6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-label {
    padding-right:6px;
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
    padding:2px 5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
    font-size:18px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > i {
    height:27px;
  }
}

@media (max-width:420px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
    text-align:left;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
    grid-template-columns:1fr;
    gap:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details::after {
    top:50%;
    right:0;
    bottom:auto;
    left:0;
    width:auto;
    height:1px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:nth-child(2) {
    padding:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
    grid-template-columns:
      55px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-label {
    font-size:7.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
    font-size:16px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
    font-size:7px;
  }
}


/* =========================================================
FEATURED TITLE — SINGLE LINE + BLACK TEXT BACKGROUND
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  display:inline-block;
  width:auto;
  max-width:none;
  margin:0 0 10px;
  padding:6px 10px 7px;
  background:#000;
  color:#FFF8EA;
  white-space:nowrap;
  text-wrap:nowrap;
  line-height:1.18;
  font-size:clamp(18px,1.75vw,25px);
  border-radius:4px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    font-size:clamp(16px,1.8vw,22px);
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    padding:5px 8px 6px;
    font-size:14px;
    line-height:1.2;
  }
}


/* =========================================================
FEATURED TITLE — FROSTED GLASS + CATCHY EFFECTS
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:0 0 12px;
  padding:8px 14px 9px;
  overflow:hidden;
  border:1px solid rgba(255,248,234,.18);
  border-radius:8px;
  background:
    linear-gradient(
      135deg,
      rgba(8,8,8,.72),
      rgba(48,5,5,.62)
    );
  color:#FFF8EA;
  white-space:nowrap;
  text-wrap:nowrap;
  line-height:1.16;
  font-size:clamp(18px,1.72vw,25px);
  box-shadow:
    0 12px 28px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.08),
    0 0 24px rgba(170,84,50,.08);
  backdrop-filter:blur(10px) saturate(125%);
  -webkit-backdrop-filter:blur(10px) saturate(125%);
  transition:
    transform .32s ease,
    border-color .32s ease,
    box-shadow .32s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(
      circle at 15% 25%,
      rgba(230,154,45,.12),
      transparent 38%
    ),
    radial-gradient(
      circle at 85% 75%,
      rgba(185,67,122,.10),
      transparent 38%
    );
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title::after {
  content:"";
  position:absolute;
  top:-45%;
  left:-28%;
  width:24%;
  height:190%;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.26),
      transparent
    );
  transform:skewX(-18deg) translate3d(-260%,0,0);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured.is-fp-motion-active .tt-fp-featured-title::after {
  animation:ttFpFeaturedTitleFrostSheen 6.8s ease-in-out infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured:hover .tt-fp-featured-title {
  transform:translateY(-2px);
  border-color:rgba(230,154,45,.32);
  box-shadow:
    0 16px 34px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.10),
    0 0 30px rgba(170,84,50,.14);
}

/* The time value remains visible without a redundant heading. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail-time {
  justify-content:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail-time > strong {
  margin:0;
}

@keyframes ttFpFeaturedTitleFrostSheen {
  0%,68%,100% {
    opacity:0;
    transform:skewX(-18deg) translate3d(-260%,0,0);
  }
  76% {
    opacity:.72;
  }
  90% {
    opacity:0;
    transform:skewX(-18deg) translate3d(560%,0,0);
  }
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    font-size:clamp(16px,1.85vw,22px);
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    padding:7px 10px 8px;
    font-size:clamp(12px,3.35vw,15px);
    border-radius:7px;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title::after {
    animation:none!important;
  }
}


/* =========================================================
ELEGANT MINIMAL UPCOMING FESTIVAL / EVENT BLOCK
Authoritative final overrides.
========================================================= */

/* A quieter, gallery-like frame */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
  min-height:336px;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
  border:1px solid rgba(255,248,234,.09);
  border-radius:22px;
  background:
    radial-gradient(circle at 92% 10%,rgba(170,84,50,.08),transparent 33%),
    linear-gradient(145deg,#210706,#120303);
  box-shadow:
    0 28px 68px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.025);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured:hover {
  box-shadow:
    0 30px 72px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.03);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
  min-height:336px;
}

/* Remove decorative UI noise from the copy panel */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
  justify-content:center;
  padding:30px 34px 28px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::before {
  top:14%;
  bottom:14%;
  width:1px;
  opacity:.42;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::after {
  opacity:.045;
}

/* Type and category become editorial metadata, not pills */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
  min-height:auto;
  margin:0 0 15px;
  padding:0;
  border:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker {
  min-height:auto;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#DFA343;
  font-size:10px;
  line-height:1.2;
  letter-spacing:1.45px;
  text-shadow:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker::before {
  width:5px;
  height:5px;
  margin-right:9px;
  background:#DFA343;
  box-shadow:0 0 10px rgba(223,163,67,.35);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
  color:rgba(243,227,198,.48);
  font-size:10px;
  line-height:1.2;
  letter-spacing:.7px;
}

/*
  The title remains on one line and retains a dark background,
  but it now reads as an editorial highlight rather than a button.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  position:relative;
  isolation:auto;
  display:inline-block;
  width:max-content;
  max-width:100%;
  margin:0 0 14px;
  padding:7px 11px 8px;
  overflow:hidden;
  border:0;
  border-radius:3px;
  background:
    linear-gradient(
      90deg,
      rgba(0,0,0,.56),
      rgba(0,0,0,.30)
    );
  color:#FFF8EA;
  white-space:nowrap;
  text-wrap:nowrap;
  font-size:clamp(20px,1.72vw,26px);
  line-height:1.18;
  letter-spacing:-.15px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  animation:none!important;
  transition:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:2px;
  background:
    linear-gradient(
      180deg,
      rgba(230,154,45,.82),
      rgba(170,84,50,.44)
    );
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title::after {
  display:none!important;
  animation:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured:hover .tt-fp-featured-title {
  transform:none;
  border-color:transparent;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035);
}

/* Clean editorial description */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
  max-width:590px;
  margin:0;
  color:rgba(243,227,198,.69);
  font-size:14px;
  line-height:1.58;
  -webkit-line-clamp:2;
}

/* Information row: one quiet baseline, one divider */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:0;
  margin-top:20px;
  padding:15px 0 14px;
  border-top:1px solid rgba(255,248,234,.08);
  border-bottom:1px solid rgba(255,248,234,.08);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details::after {
  content:"";
  position:absolute;
  top:14px;
  bottom:14px;
  left:56%;
  width:1px;
  background:rgba(255,248,234,.09);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:hover {
  min-height:auto;
  padding:0 22px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  transform:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:nth-child(2),
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail-time {
  justify-content:center;
  padding:0 0 0 22px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail::after {
  display:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > span {
  margin-bottom:5px;
  color:rgba(216,181,110,.58);
  font-size:9px;
  line-height:1.2;
  letter-spacing:.8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > strong {
  color:rgba(255,248,234,.88);
  font-size:13px;
  line-height:1.42;
  font-weight:600;
}

/* One countdown field, visually quiet and typographic */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower {
  margin-top:16px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
  grid-template-columns:
    78px
    minmax(0,1fr)
    auto
    minmax(0,1fr)
    auto
    minmax(0,1fr);
  min-height:62px;
  padding:7px 12px;
  border:1px solid rgba(255,248,234,.075);
  border-radius:8px;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.022),
      rgba(255,255,255,.010)
    );
  box-shadow:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-label {
  padding-right:12px;
  border-right:1px solid rgba(255,248,234,.08);
  color:rgba(216,181,110,.55);
  font-size:9px;
  line-height:1.25;
  letter-spacing:.9px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div:hover {
  min-height:auto;
  padding:2px 12px;
  border:0;
  background:transparent;
  transform:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
  color:#FFF8EA;
  font-size:21px;
  line-height:1;
  font-weight:500;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
  margin-top:5px;
  color:rgba(216,181,110,.54);
  font-size:8px;
  line-height:1;
  letter-spacing:.65px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > i {
  width:1px;
  height:27px;
  background:rgba(255,248,234,.075);
}

/* Date card: lighter and less ornamental */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date {
  left:20px;
  bottom:20px;
  width:84px;
  min-height:96px;
  padding:12px;
  border:1px solid rgba(255,248,234,.12);
  border-radius:10px;
  background:rgba(11,4,4,.62);
  box-shadow:0 14px 34px rgba(0,0,0,.21);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-day {
  font-size:27px;
  font-weight:500;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-month {
  color:#E2A54A;
  font-size:9px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-year {
  font-size:8px;
}

/* Keep only the image's slow cinematic movement */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-date,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit {
  animation:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media::after {
  opacity:.26;
}

/* Tablet */
@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);
    min-height:326px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:326px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:26px 27px 25px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    font-size:clamp(18px,1.8vw,23px);
  }
}

/* Stacked */
@media (max-width:900px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    grid-template-columns:1fr;
    min-height:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:300px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:27px 25px 25px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy::before {
    top:0;
    right:12%;
    bottom:auto;
    left:12%;
    width:auto;
    height:1px;
  }
}

/* Mobile */
@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured {
    border-radius:16px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-media {
    min-height:245px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-copy {
    padding:22px 18px 21px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
    align-items:center;
    flex-direction:row;
    gap:12px;
    margin-bottom:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-kicker,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    max-width:100%;
    padding:6px 8px 7px;
    font-size:clamp(13px,3.55vw,16px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-description {
    font-size:13.5px;
    line-height:1.52;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
    margin-top:17px;
    padding:13px 0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details::after {
    left:53%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail {
    padding-right:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:nth-child(2),
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail-time {
    padding-left:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > span {
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail > strong {
    font-size:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
    grid-template-columns:
      62px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
    min-height:57px;
    padding:6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-label {
    padding-right:6px;
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown-unit,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown > div {
    padding:2px 5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown strong {
    font-size:18px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown span {
    font-size:7px;
  }
}

@media (max-width:420px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-heading-row {
    align-items:flex-start;
    flex-direction:column;
    gap:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-category {
    text-align:left;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details {
    grid-template-columns:1fr;
    gap:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details::after {
    top:50%;
    right:0;
    bottom:auto;
    left:0;
    width:auto;
    height:1px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail:nth-child(2),
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail-time {
    padding:0;
  }
}


/* =========================================================
DESTINATION + BEGINS IN — ONE CONTINUOUS LINE
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(175px,.72fr) minmax(0,1.28fr);
  align-items:center;
  gap:22px;
  margin-top:20px;
  padding-top:15px;
  border-top:1px solid rgba(255,248,234,.09);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination {
  min-width:0;
  padding-right:22px;
  border-right:1px solid rgba(255,248,234,.09);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination > span {
  display:block;
  margin-bottom:5px;
  color:rgba(216,181,110,.58);
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.8px;
  text-transform:uppercase;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination > strong {
  display:block;
  overflow:hidden;
  color:rgba(255,248,234,.90);
  font-family:"Montserrat",sans-serif;
  font-size:13px;
  font-weight:600;
  text-overflow:ellipsis;
  white-space:nowrap;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown {
  grid-template-columns:
    70px minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  min-width:0;
  min-height:50px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-label {
  padding-right:11px;
  border-right:1px solid rgba(255,248,234,.08);
  color:rgba(216,181,110,.56);
  font-size:9px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-unit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown > div {
  padding:2px 9px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown strong {
  font-size:20px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown span {
  font-size:8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-details,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-lower,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-detail-time {
  display:none!important;
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line {
    grid-template-columns:minmax(112px,.66fr) minmax(0,1.34fr);
    gap:10px;
    margin-top:17px;
    padding-top:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination {
    padding-right:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination > span {
    font-size:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination > strong {
    font-size:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown {
    grid-template-columns:
      44px minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
    min-height:42px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-label {
    padding-right:4px;
    font-size:6.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-unit,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown > div {
    padding:2px 3px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown strong {
    font-size:14px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown span {
    font-size:6px;
  }
}



/* =========================================================
CORRECT HERO LAYOUT
Orbit remains top-right; the three lower hero cards are removed.
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
  position:relative;
  display:block;
  min-height:420px;
  overflow:hidden;
  padding-right:0;
}

/* Keep the text safely away from the top-right animated object. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy {
  position:relative;
  z-index:3;
  max-width:760px;
  padding-right:clamp(190px,30vw,380px);
}

/* Restore the two hero buttons to their intended horizontal flex layout. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-actions {
  position:relative;
  z-index:3;
  display:flex !important;
  grid-template-columns:none;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}

/* Animated artwork remains clear and independently pinned top-right. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
  position:absolute;
  top:10px;
  right:10px;
  z-index:1;
  width:clamp(260px,29vw,350px);
  height:clamp(260px,29vw,350px);
  min-height:0;
  margin:0;
  pointer-events:none;
}

/*
  The three cards are no longer inside .tt-fp-orbit-art.
  This row is reserved below the artwork, so the cards never cover it.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
  position:absolute;
  right:10px;
  bottom:24px;
  left:10px;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
  position:relative;
  inset:auto;
  top:auto;
  right:auto;
  bottom:auto;
  left:auto;
  width:auto;
  min-width:0;
  min-height:92px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:14px 16px;
  overflow:hidden;
  border-radius:12px;
  background:
    radial-gradient(circle at 94% 8%,rgba(170,84,50,.13),transparent 38%),
    rgba(12,4,4,.72);
  box-shadow:
    0 16px 34px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card span {
  margin-bottom:6px;
  font-size:10px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card strong {
  margin-bottom:3px;
  font-size:14px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card small {
  font-size:7px;
  line-height:1.35;
}

/* One floating rhythm, with staggered timing. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card-three {
  animation-name:ttFpHorizontalCardFloat;
  animation-duration:6.6s;
  animation-timing-function:ease-in-out;
  animation-iteration-count:infinite;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card-one {
  animation-delay:0s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card-two {
  animation-delay:-2.1s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card-three {
  animation-delay:-4.2s;
}

@keyframes ttFpHorizontalCardFloat {
  0%,100% {
    transform:translate3d(0,0,0);
  }
  50% {
    transform:translate3d(0,-7px,0);
  }
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
    min-height:390px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy {
    padding-right:clamp(165px,27vw,290px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    width:clamp(220px,27vw,285px);
    height:clamp(220px,27vw,285px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
    gap:11px;
    bottom:22px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
    min-height:86px;
    padding:12px 13px;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
    min-height:350px;
    padding:0 7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy {
    max-width:100%;
    padding-right:145px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    top:8px;
    right:8px;
    width:140px;
    height:140px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
    right:7px;
    bottom:18px;
    left:7px;
    gap:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
    min-height:76px;
    padding:10px 8px;
    text-align:left;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card span {
    margin-bottom:4px;
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card strong {
    font-size:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card small {
    font-size:6px;
  }
}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
    min-height:330px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy {
    padding-right:118px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    top:6px;
    right:6px;
    width:112px;
    height:112px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
    gap:6px;
    bottom:15px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
    min-height:70px;
    padding:8px 6px;
    border-radius:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card strong {
    font-size:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card small {
    font-size:5.4px;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
    animation:none!important;
  }
}


/* Remove floating dots around the animated orbit */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-spark-field {
  display:none!important;
}


/* =========================================================
RESPONSIVE OVERLAP + TEXT-CLIPPING AUDIT
========================================================= */

/* ---------- Hero: every element owns its own layout space ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
  position:relative;
  display:block;
  min-height:0;
  overflow:visible;
  padding:0;
  margin-bottom:38px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-main {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  align-items:start;
  gap:clamp(28px,4vw,58px);
  min-width:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy {
  position:relative;
  z-index:2;
  min-width:0;
  max-width:none;
  padding-right:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy > p {
  max-width:720px;
}

/*
  The orbit is no longer absolutely positioned.
  It remains in the top-right grid cell on every screen size,
  so it cannot cover or be covered by the text/cards.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
  position:relative;
  top:auto;
  right:auto;
  bottom:auto;
  left:auto;
  z-index:1;
  justify-self:end;
  align-self:start;
  width:min(100%,350px);
  height:auto;
  min-height:0;
  aspect-ratio:1 / 1;
  margin:0;
  overflow:visible;
  pointer-events:none;
}

/* Restore hero action buttons; they were accidentally targeted before. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-actions {
  position:relative;
  z-index:3;
  display:flex !important;
  grid-template-columns:none !important;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}

/* Intro notes may wrap instead of colliding. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-intro-notes {
  flex-wrap:wrap;
  row-gap:7px;
}

/*
  The three boxes are in normal flow below the top row.
  No bottom/left/right coordinates, no collision with the orbit.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
  position:relative;
  inset:auto;
  z-index:3;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
  width:100%;
  margin-top:26px;
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
  position:relative;
  inset:auto;
  width:auto;
  min-width:0;
  min-height:96px;
  height:auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:14px 16px;
  overflow:hidden;
  white-space:normal;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card span,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card strong,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card small {
  max-width:100%;
  overflow:visible;
  white-space:normal;
  overflow-wrap:anywhere;
  text-overflow:clip;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card span {
  font-size:10px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card strong {
  font-size:15px;
  line-height:1.2;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card small {
  font-size:9px;
  line-height:1.45;
}

/* ---------- Featured block: never crop dynamic text ---------- */

/*
  The dark/frosted title background still hugs the text.
  It remains one line when space permits, and wraps cleanly when it does not.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  display:inline;
  width:auto;
  max-width:100%;
  overflow:visible;
  white-space:normal;
  text-wrap:balance;
  overflow-wrap:anywhere;
  word-break:normal;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
  line-height:1.34;
}

/* Remove clipping/ellipsis from the dynamic destination. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination > strong {
  overflow:visible;
  white-space:normal;
  overflow-wrap:anywhere;
  text-overflow:clip;
}

/*
  Keep Destination and Begins In on one row while there is sufficient room.
  At narrow widths they become two clean rows instead of shrinking/cropping.
*/
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line {
  grid-template-columns:minmax(190px,.72fr) minmax(330px,1.28fr);
  align-items:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown {
  min-width:330px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-label,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-unit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-unit strong,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-unit span {
  white-space:normal;
  overflow:visible;
}

/* ---------- Tablet ---------- */

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-main {
    grid-template-columns:minmax(0,1fr) minmax(235px,285px);
    gap:24px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    width:min(100%,285px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
    gap:11px;
    margin-top:23px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
    min-height:90px;
    padding:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line {
    grid-template-columns:minmax(165px,.66fr) minmax(300px,1.34fr);
    gap:16px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown {
    min-width:300px;
  }
}

/* ---------- Mobile ---------- */

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero {
    padding:0 7px;
    margin-bottom:26px;
  }

  /*
    The object remains top-right through a dedicated narrow grid column.
    Text is allowed to wrap instead of being placed underneath it.
  */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-main {
    grid-template-columns:minmax(0,1fr) 132px;
    gap:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    width:132px;
    max-width:132px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy h1,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-copy > p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kicker {
    max-width:100%;
    overflow:visible;
    overflow-wrap:anywhere;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-actions {
    gap:8px;
    margin-top:17px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:18px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
    min-height:82px;
    padding:10px 8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card span {
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card strong {
    font-size:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card small {
    font-size:8px;
    line-height:1.35;
  }

  /* Featured title wraps only when the mobile width requires it. */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
    display:inline;
    font-size:clamp(15px,4.3vw,20px);
    line-height:1.42;
  }

  /*
    One horizontal row is no longer forced into an impossibly narrow width.
    This avoids clipped destination names and unreadably small countdown text.
  */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line {
    grid-template-columns:1fr;
    gap:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination {
    padding:0 0 12px;
    border-right:0;
    border-bottom:1px solid rgba(255,248,234,.08);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination > span {
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-destination > strong {
    font-size:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown {
    width:100%;
    min-width:0;
    grid-template-columns:
      62px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-label {
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown strong {
    font-size:17px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown span {
    font-size:8px;
  }
}

/* ---------- Very narrow phones ---------- */

@media (max-width:430px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero-main {
    grid-template-columns:minmax(0,1fr) 105px;
    gap:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-art {
    width:105px;
    max-width:105px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
    gap:6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card {
    min-height:80px;
    padding:9px 6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card strong {
    font-size:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row .tt-fp-orbit-card small {
    font-size:7.4px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown {
    grid-template-columns:
      53px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown-unit,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown > div {
    padding:2px 4px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown strong {
    font-size:15px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line .tt-fp-countdown span {
    font-size:7px;
  }
}


/* =========================================================
EFFICIENT FESTIVAL FILTER TOOLBAR
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
  position:relative;
  display:grid;
  grid-template-columns:
    minmax(260px,.92fr)
    minmax(320px,1.35fr)
    auto;
  grid-template-areas:"types search reset";
  align-items:center;
  gap:10px;
  padding:11px;
  border:1px solid rgba(86,39,22,.12);
  border-radius:15px;
  background:
    linear-gradient(
      135deg,
      rgba(255,250,240,.88),
      rgba(248,236,218,.72)
    );
  box-shadow:
    0 12px 30px rgba(65,24,11,.07),
    inset 0 1px 0 rgba(255,255,255,.82);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* ---------- Type tabs ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs {
  grid-area:types;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  min-width:0;
  padding:4px;
  border:1px solid rgba(86,39,22,.10);
  border-radius:11px;
  background:rgba(255,255,255,.44);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button {
  min-width:0;
  min-height:40px;
  padding:9px 11px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:rgba(48,5,5,.70);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.55px;
  text-transform:uppercase;
  box-shadow:none;
  transition:
    background .22s ease,
    color .22s ease,
    transform .22s ease,
    box-shadow .22s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button:hover {
  background:rgba(48,5,5,.055);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button.is-active {
  background:
    linear-gradient(
      135deg,
      #4A0807,
      #250303
    );
  color:#FFF8EA;
  box-shadow:0 7px 17px rgba(48,5,5,.16);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button:active {
  transform:translateY(1px);
}

/* ---------- Search ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
  grid-area:search;
  position:relative;
  display:block;
  min-width:0;
  margin:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search > svg {
  position:absolute;
  top:50%;
  left:14px;
  z-index:2;
  width:16px;
  height:16px;
  fill:none;
  stroke:#AA5432;
  stroke-width:1.7;
  transform:translateY(-50%);
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input {
  width:100%;
  min-width:0;
  min-height:48px;
  margin:0;
  padding:10px 14px 10px 41px;
  border:1px solid rgba(86,39,22,.13);
  border-radius:10px;
  background:rgba(255,255,255,.68);
  color:#3D1710;
  font-family:"Montserrat",sans-serif;
  font-size:12px;
  line-height:1.2;
  box-shadow:none;
  transition:
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input::placeholder {
  color:rgba(61,23,16,.42);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input:hover {
  background:rgba(255,255,255,.84);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input:focus {
  border-color:rgba(170,84,50,.42);
  outline:none;
  box-shadow:0 0 0 3px rgba(170,84,50,.09);
}

/* ---------- Reset ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
  grid-area:reset;
  min-width:92px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:0;
  padding:10px 14px;
  border:1px solid rgba(86,39,22,.13);
  border-radius:10px;
  background:rgba(255,255,255,.50);
  color:rgba(48,5,5,.76);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.55px;
  text-transform:uppercase;
  box-shadow:none;
  transition:
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    transform .22s ease;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset svg {
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset:hover {
  border-color:rgba(170,84,50,.25);
  background:rgba(170,84,50,.08);
  color:#6E2419;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset:active {
  transform:translateY(1px);
}

/* ---------- Medium desktop / tablet ---------- */

@media (max-width:1100px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "types reset"
      "search search";
    gap:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
    min-width:98px;
  }
}

/* ---------- Small tablet ---------- */

@media (max-width:760px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "types types"
      "search reset";
    padding:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button {
    min-height:39px;
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
    min-height:46px;
  }
}

/* ---------- Phone ---------- */

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "types"
      "search"
      "reset";
    gap:8px;
    padding:9px;
    border-radius:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs {
    gap:4px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button {
    min-height:38px;
    padding:8px 6px;
    font-size:8px;
  }


  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input {
    font-size:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
    width:100%;
  }
}


/* =========================================================
COMPACT MONTH STRIP
Makes the month selector denser and less oversized.
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-wrap,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-shell,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-strip,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail {
  margin-top:14px;
  padding-top:0;
  padding-bottom:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-wrap {
  gap:10px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-nav,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-nav {
  width:32px;
  min-width:32px;
  height:32px;
  min-height:32px;
  border-radius:9px;
  padding:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-track,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-track {
  gap:10px;
  padding:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
  min-width:106px;
  max-width:106px;
  min-height:74px;
  padding:10px 10px 8px;
  border-radius:14px;
  justify-content:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card[aria-pressed="true"] {
  box-shadow:0 8px 18px rgba(65,24,11,.14);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
  margin-bottom:4px;
  font-size:12px;
  line-height:1.15;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
  margin-top:2px;
  font-size:8px;
  line-height:1.15;
  letter-spacing:.45px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-index {
  display:none !important;
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-track,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-track {
    gap:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-width:94px;
    max-width:94px;
    min-height:68px;
    padding:9px 8px 7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
    font-size:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
    font-size:7px;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-wrap,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-shell,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-strip,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail {
    margin-top:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-nav,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-nav {
    width:28px;
    min-width:28px;
    height:28px;
    min-height:28px;
    border-radius:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-track,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-track {
    gap:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-width:82px;
    max-width:82px;
    min-height:60px;
    padding:8px 6px 6px;
    border-radius:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
    font-size:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
    font-size:6.5px;
  }
}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-width:76px;
    max-width:76px;
    min-height:56px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
    font-size:6px;
  }
}


/* =========================================================
EDITORIAL MINIMAL FEATURED EXPERIENCE
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.14fr) minmax(360px,.86fr);
  min-height:380px;
  max-width:1200px;
  margin:0 auto 34px;
  overflow:hidden;
  border:1px solid rgba(255,248,234,.08);
  border-radius:26px;
  background:#160504;
  box-shadow:0 28px 72px rgba(0,0,0,.28);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal:hover {
  box-shadow:0 32px 78px rgba(0,0,0,.31);
}

/* ---------- Image ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-media {
  position:relative;
  min-height:380px;
  overflow:hidden;
  background:#1A0706;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.02);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal.has-image.is-fp-motion-active .tt-fp-featured-image {
  animation:ttFpMinimalImageDrift 18s ease-in-out infinite alternate;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-overlay {
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent 64%,rgba(22,5,4,.55) 100%),
    linear-gradient(180deg,transparent 58%,rgba(0,0,0,.24) 100%);
}

/* Remove visual clutter from the image */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-orbits {
  display:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-date {
  left:22px;
  bottom:22px;
  width:auto;
  min-width:74px;
  min-height:0;
  padding:11px 13px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(10,4,3,.56);
  box-shadow:none;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  animation:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-day {
  font-size:27px;
  font-weight:500;
  line-height:1;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-month {
  margin-top:6px;
  font-size:9px;
  letter-spacing:1px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-year {
  margin-top:2px;
  font-size:8px;
}

/* ---------- Copy ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy {
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:44px 42px 40px;
  background:
    radial-gradient(circle at 100% 0%,rgba(170,84,50,.06),transparent 34%),
    #160504;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy::before {
  content:"";
  position:absolute;
  top:12%;
  bottom:12%;
  left:0;
  width:1px;
  background:linear-gradient(
    180deg,
    transparent,
    rgba(223,163,67,.30),
    transparent
  );
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy::after {
  display:none!important;
}

/* Metadata is quiet, not pill-like */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-heading-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:0;
  margin:0 0 18px;
  padding:0;
  border:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-kicker {
  display:inline-flex;
  align-items:center;
  min-height:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#DFA343;
  font-size:10px;
  letter-spacing:1.3px;
  text-shadow:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-kicker::before {
  width:5px;
  height:5px;
  margin-right:9px;
  background:#DFA343;
  box-shadow:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-category {
  color:rgba(243,227,198,.42);
  font-size:9px;
  letter-spacing:.65px;
}

/* Editorial title: no box, no sheen, no forced one-line clipping */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
  display:block;
  width:auto;
  max-width:620px;
  margin:0 0 16px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  color:#FFF8EA;
  white-space:normal;
  text-wrap:balance;
  overflow-wrap:normal;
  font-size:clamp(28px,2.65vw,39px);
  line-height:1.08;
  letter-spacing:-.5px;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  animation:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title::after {
  display:none!important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal:hover .tt-fp-featured-title {
  transform:none;
  box-shadow:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-description {
  max-width:610px;
  display:block;
  margin:0;
  overflow:visible;
  color:rgba(243,227,198,.68);
  font-size:14px;
  line-height:1.65;
  -webkit-line-clamp:unset;
}

/* ---------- One quiet information line ---------- */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-info-line {
  display:grid;
  grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);
  align-items:center;
  gap:28px;
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid rgba(255,248,234,.08);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination {
  min-width:0;
  padding-right:28px;
  border-right:1px solid rgba(255,248,234,.08);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination > span {
  display:block;
  margin-bottom:6px;
  color:rgba(216,181,110,.52);
  font-size:9px;
  letter-spacing:.8px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination > strong {
  display:block;
  overflow:visible;
  color:rgba(255,248,234,.88);
  font-size:13px;
  line-height:1.4;
  white-space:normal;
  text-overflow:clip;
}

/* Countdown becomes typography, not a card */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown {
  display:grid;
  grid-template-columns:
    64px
    minmax(0,1fr)
    auto
    minmax(0,1fr)
    auto
    minmax(0,1fr);
  align-items:center;
  min-width:0;
  min-height:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-label {
  padding-right:12px;
  border-right:1px solid rgba(255,248,234,.08);
  color:rgba(216,181,110,.48);
  font-size:9px;
  letter-spacing:.75px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-unit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown > div {
  min-height:0;
  padding:2px 12px;
  border:0;
  border-radius:0;
  background:transparent;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-unit:hover {
  transform:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown strong {
  color:#FFF8EA;
  font-size:22px;
  font-weight:500;
  line-height:1;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown span {
  margin-top:5px;
  color:rgba(216,181,110,.48);
  font-size:8px;
  letter-spacing:.55px;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown > i {
  width:1px;
  height:26px;
  background:rgba(255,248,234,.07);
}

/* ---------- Tablet ---------- */

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal {
    grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy {
    padding:36px 32px 34px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
    font-size:clamp(25px,2.8vw,34px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-info-line {
    grid-template-columns:minmax(150px,.68fr) minmax(0,1.32fr);
    gap:20px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination {
    padding-right:20px;
  }
}

/* ---------- Mobile ---------- */

@media (max-width:820px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal {
    grid-template-columns:1fr;
    min-height:0;
    border-radius:20px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-media {
    min-height:300px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy {
    padding:30px 24px 28px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy::before {
    top:0;
    right:12%;
    bottom:auto;
    left:12%;
    width:auto;
    height:1px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
    font-size:clamp(24px,5.5vw,32px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-info-line {
    grid-template-columns:1fr;
    gap:16px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination {
    padding:0 0 14px;
    border-right:0;
    border-bottom:1px solid rgba(255,248,234,.08);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown {
    width:100%;
    grid-template-columns:
      62px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
  }
}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-media {
    min-height:240px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy {
    padding:24px 18px 23px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-heading-row {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
    font-size:24px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-description {
    font-size:13.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown {
    grid-template-columns:
      52px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-unit,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown > div {
    padding:2px 6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown strong {
    font-size:18px;
  }
}

@keyframes ttFpMinimalImageDrift {
  from {
    transform:scale(1.02) translate3d(0,0,0);
  }
  to {
    transform:scale(1.07) translate3d(-.5%,-.3%,0);
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-image {
    animation:none!important;
  }
}


/* =========================================================
ULTRA-COMPACT MOBILE FEATURED BLOCK
Desktop and tablet layouts remain unchanged.
========================================================= */

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal {
    position:relative;
    display:block;
    min-height:258px;
    margin-bottom:22px;
    overflow:hidden;
    border-radius:16px;
    border-color:rgba(255,248,234,.09);
    background:#120403;
    box-shadow:0 18px 44px rgba(0,0,0,.26);
  }

  /* Image becomes the full-card background instead of a stacked section. */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-media {
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    min-height:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-image {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-overlay {
    background:
      linear-gradient(
        90deg,
        rgba(12,3,3,.88) 0%,
        rgba(18,4,3,.77) 48%,
        rgba(18,4,3,.46) 100%
      ),
      linear-gradient(
        180deg,
        rgba(0,0,0,.10),
        rgba(0,0,0,.32)
      );
  }

  /* Compact text layer over the image. */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy {
    position:relative;
    z-index:3;
    min-height:258px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    padding:15px 15px 13px;
    background:transparent;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy::after {
    display:none!important;
  }

  /* Reduce metadata noise on mobile. */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-heading-row {
    display:block;
    margin:0 70px 8px 0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-kicker {
    font-size:8px;
    letter-spacing:1px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-kicker::before {
    width:4px;
    height:4px;
    margin-right:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-category {
    display:none;
  }

  /* Title remains readable but tightly controlled. */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
    max-width:calc(100% - 62px);
    display:-webkit-box;
    overflow:hidden;
    margin:0 0 7px;
    color:#FFF8EA;
    font-size:18px;
    line-height:1.12;
    letter-spacing:-.2px;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-description {
    max-width:calc(100% - 18px);
    display:-webkit-box;
    overflow:hidden;
    margin:0;
    color:rgba(255,248,234,.73);
    font-size:11px;
    line-height:1.42;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  /* Small date badge at top-right. */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-date {
    top:11px;
    right:11px;
    bottom:auto;
    left:auto;
    width:54px;
    min-width:54px;
    min-height:0;
    padding:7px 8px;
    border-radius:9px;
    background:rgba(8,3,3,.60);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-day {
    font-size:20px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-month {
    margin-top:4px;
    font-size:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-year {
    font-size:6.5px;
  }

  /*
    Destination and countdown stay in one compact bottom row.
    The row uses available width instead of stacking vertically.
  */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-info-line {
    display:grid;
    grid-template-columns:minmax(100px,.78fr) minmax(0,1.22fr);
    align-items:center;
    gap:10px;
    margin-top:auto;
    padding-top:10px;
    border-top:1px solid rgba(255,248,234,.12);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination {
    min-width:0;
    padding:0 10px 0 0;
    border-right:1px solid rgba(255,248,234,.11);
    border-bottom:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination > span {
    margin-bottom:3px;
    font-size:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination > strong {
    display:-webkit-box;
    overflow:hidden;
    color:#FFF8EA;
    font-size:10px;
    line-height:1.25;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown {
    width:100%;
    min-width:0;
    grid-template-columns:
      42px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
    gap:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-label {
    padding-right:5px;
    font-size:6px;
    line-height:1.2;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-unit,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown > div {
    padding:1px 3px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown strong {
    font-size:14px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown span {
    margin-top:3px;
    font-size:6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown > i {
    height:20px;
  }
}

@media (max-width:420px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy {
    min-height:238px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-copy {
    padding:13px 12px 11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-heading-row {
    margin-right:62px;
    margin-bottom:6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
    max-width:calc(100% - 52px);
    font-size:16px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-description {
    font-size:10px;
    line-height:1.35;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-date {
    top:9px;
    right:9px;
    width:48px;
    min-width:48px;
    padding:6px 7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-day {
    font-size:18px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-info-line {
    grid-template-columns:minmax(84px,.72fr) minmax(0,1.28fr);
    gap:7px;
    padding-top:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination {
    padding-right:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination > strong {
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown {
    grid-template-columns:
      36px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-label {
    font-size:5.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown strong {
    font-size:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown span {
    font-size:5.5px;
  }
}


/* =========================================================
ULTRA-COMPACT MOBILE CALENDAR AREA
Compact month selector + calendar/listing area on phones.
========================================================= */

@media (max-width:767px) {
  /* Slimmer month/calendar intro area */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-rail-kicker,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-section-kicker {
    margin-bottom:6px;
    font-size:8px;
    letter-spacing:.9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-section-title {
    margin:0 0 8px;
    font-size:22px;
    line-height:1.12;
    letter-spacing:-.2px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-section-title + p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-rail-kicker + p {
    margin-top:0;
    margin-bottom:8px;
    font-size:11px;
    line-height:1.4;
  }

  /* Month strip tightened further */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-wrap,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-shell,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-strip,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail {
    margin-top:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-nav,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-nav {
    width:26px;
    min-width:26px;
    height:26px;
    min-height:26px;
    border-radius:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-months-track,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-track {
    gap:6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-width:74px;
    max-width:74px;
    min-height:54px;
    padding:7px 5px 6px;
    border-radius:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
    margin-bottom:3px;
    font-size:9px;
    line-height:1.1;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
    margin-top:1px;
    font-size:6px;
    line-height:1.1;
  }

  /*
    Compact generic cards / grids in the calendar browsing area.
    Scoped to likely patterns and kept mobile-only.
  */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="listing-grid"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="results-grid"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="calendar-grid"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="card-grid"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="list-grid"] {
    gap:10px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="listing-card"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="result-card"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="calendar-card"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="festival-card"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="event-card"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="journey-card"] {
    min-height:0 !important;
    padding:11px !important;
    border-radius:14px !important;
    box-shadow:0 10px 24px rgba(65,24,11,.08);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="listing-card"] h3,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="result-card"] h3,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="calendar-card"] h3,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="festival-card"] h3,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="event-card"] h3,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="journey-card"] h3,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="listing-card"] h4,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="result-card"] h4,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="calendar-card"] h4,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="festival-card"] h4,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="event-card"] h4,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="journey-card"] h4 {
    margin:0 0 5px;
    font-size:14px;
    line-height:1.2;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="listing-card"] p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="result-card"] p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="calendar-card"] p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="festival-card"] p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="event-card"] p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="journey-card"] p {
    margin:0;
    font-size:10.5px;
    line-height:1.4;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="listing-card"] img,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="result-card"] img,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="calendar-card"] img,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="festival-card"] img,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="event-card"] img,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="journey-card"] img {
    max-height:118px;
    object-fit:cover;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="meta"],
  section.tt-festival-pulse[id^="tt-festival-pulse-"] [class*="eyebrow"] {
    font-size:8px;
    line-height:1.3;
  }

  /* Also compact the detached CTA panel below the calendar area */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel {
    margin-top:16px !important;
    padding:14px 12px !important;
    border-radius:16px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel .tt-fp-cta-title,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel h3 {
    font-size:20px;
    line-height:1.12;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel .tt-fp-button,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel .tt-fp-btn,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel a,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel button {
    min-height:42px;
    padding:9px 12px;
    font-size:9px;
  }
}

@media (max-width:430px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-section-title {
    font-size:20px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-width:68px;
    max-width:68px;
    min-height:50px;
    padding:6px 4px 5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
    font-size:5.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel .tt-fp-cta-title,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-detached-cta-panel h3 {
    font-size:18px;
  }
}


/* =========================================================
TRUE ULTRA-COMPACT MOBILE CALENDAR BLOCK
Targets the exact block below the featured/upcoming event.
========================================================= */

@media (max-width:767px) {
  /* Entire calendar parent block */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section {
    margin-top:0;
    padding:10px 8px;
    border-radius:14px;
  }

  /* Heading + year controls share one compact row */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading > div:first-child {
    min-width:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-section-kicker {
    font-size:7px;
    letter-spacing:1px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    margin:3px 0 0;
    font-size:19px;
    line-height:1.05;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading p {
    display:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav {
    width:auto;
    gap:4px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav button {
    min-width:28px;
    height:28px;
    min-height:28px;
    padding:0 7px;
    border-radius:7px;
    font-size:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav svg {
    width:12px;
    height:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-number {
    min-width:38px;
    font-size:13px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year {
    margin-left:0;
    padding:0 8px !important;
  }

  /* Two-row filter toolbar instead of four stacked rows */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-areas:
      "types types types reset"
      "search search search search";
    gap:5px;
    margin-bottom:10px;
    padding:6px;
    border-radius:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs {
    grid-area:types;
    gap:3px;
    padding:3px;
    border-radius:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button {
    min-height:30px;
    padding:6px 4px;
    border-radius:6px;
    font-size:7px;
  }


  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
    grid-area:search;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search > svg {
    left:9px;
    width:12px;
    height:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input {
    min-height:36px;
    height:36px;
    padding:7px 8px 7px 27px;
    border-radius:8px;
    font-size:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
    grid-area:reset;
    width:100%;
    min-width:0;
    min-height:36px;
    height:36px;
    padding:0;
    border-radius:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset span {
    display:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset svg {
    width:13px;
    height:13px;
  }

  /* Very compact month rail */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
    grid-template-columns:24px minmax(0,1fr) 24px;
    gap:4px;
    margin-bottom:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow {
    width:24px;
    min-width:24px;
    height:28px;
    min-height:28px;
    border-radius:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow svg {
    width:11px;
    height:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail {
    gap:5px;
    margin-top:0;
    padding:2px 1px 4px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-width:64px;
    max-width:64px;
    min-height:48px;
    padding:6px 4px 5px;
    border-radius:9px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-name {
    margin:0;
    font-size:8px;
    line-height:1.05;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-count {
    margin-top:3px;
    font-size:5px;
    line-height:1;
  }

  /* Selected period bar */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-direction:row;
    gap:8px;
    margin-bottom:8px;
    padding-bottom:7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-selected-label {
    font-size:6px;
    letter-spacing:.8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-selected-title {
    margin-top:2px;
    font-size:16px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-result-meta {
    font-size:6px;
    text-align:right;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-result-meta i,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-result-meta span:last-child {
    display:none;
  }

  /* Actual calendar/event listing cards */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
    grid-template-columns:1fr;
    gap:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(n) {
    grid-column:1;
    grid-template-columns:82px minmax(0,1fr);
    min-height:104px;
    margin:0;
    border-radius:11px;
    transform:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:focus-visible,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):hover,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):focus-visible {
    transform:translateY(-2px);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image {
    min-height:104px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-kind {
    top:6px;
    left:6px;
    padding:3px 5px;
    border-radius:5px;
    font-size:5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-copy {
    justify-content:center;
    padding:8px 9px 7px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-status {
    margin-bottom:4px;
    padding:3px 5px;
    font-size:5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-date {
    margin-bottom:3px;
    font-size:5.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card h4 {
    margin:0 0 4px;
    font-size:12px;
    line-height:1.15;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-meta {
    gap:3px;
    margin-bottom:0;
    font-size:5px;
    line-height:1.2;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card p,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-cue {
    display:none;
  }

  /* Empty and load-more states */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty {
    padding:18px 10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit {
    width:54px;
    height:54px;
    margin-bottom:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty span {
    font-size:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty p {
    margin-top:4px;
    font-size:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-wrap {
    margin-top:10px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-more {
    min-height:36px;
    padding:8px 12px;
    font-size:8px;
  }

  /* Compact footer inside the same calendar block */
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
    min-height:0;
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    margin-top:14px;
    padding:12px;
    border-radius:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer > div:first-child > span {
    font-size:6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer h3 {
    margin:3px 0 0;
    font-size:17px;
    line-height:1.08;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer p {
    display:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    width:100%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom {
    width:100%;
    min-height:34px;
    padding:7px 8px;
    font-size:6.5px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::after {
    display:none;
  }
}

@media (max-width:420px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section {
    padding:8px 6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:17px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav button {
    min-width:26px;
    height:26px;
    min-height:26px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
    min-width:60px;
    max-width:60px;
    min-height:45px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(n) {
    grid-template-columns:74px minmax(0,1fr);
    min-height:96px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image {
    min-height:96px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card h4 {
    font-size:11px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer h3 {
    font-size:15px;
  }
}



/* ===== Original design layer 2 ===== */

/* Keep the HTML widget and every internal layout box within Elementor's column. */
section.tt-festival-pulse[id^="tt-festival-pulse-"],
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
  width:100%;
  max-width:100%;
  min-width:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] *,
section.tt-festival-pulse[id^="tt-festival-pulse-"] *::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] *::after {
  box-sizing:border-box;
}

/* Elementor/theme SVG resets can otherwise make the arrow/search/reset artwork vanish. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] svg {
  display:block !important;
  flex:0 0 auto;
  max-width:none !important;
  overflow:visible !important;
  visibility:visible !important;
  opacity:1 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] button svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] label svg {
  pointer-events:none;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] svg path,
section.tt-festival-pulse[id^="tt-festival-pulse-"] svg circle,
section.tt-festival-pulse[id^="tt-festival-pulse-"] svg line,
section.tt-festival-pulse[id^="tt-festival-pulse-"] svg polyline {
  vector-effect:non-scaling-stroke;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-prev svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-next svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-arrow svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-top svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-load-more svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search svg,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-cue svg {
  fill:none !important;
  stroke:currentColor !important;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Do not let Elementor button rules collapse icon buttons. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] button {
  position:relative;
  flex-shrink:0;
  line-height:1.2;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions {
  min-width:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav {
  flex-wrap:wrap;
  justify-content:flex-end;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar > *,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading > *,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline-head > *,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer > *,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card > *,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured > * {
  min-width:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
  width:auto;
  min-width:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search-input {
  min-width:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail {
  min-width:0;
  overscroll-behavior-inline:contain;
}

/* Preserve the exact existing animations, but do not leave them paused when
   Elementor injects the widget after the ordinary page-load event. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-sun,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-card-one,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-card-two,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-orbit-card-three,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-burst,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-hero .tt-fp-spark-field b,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon .tt-fp-motion-track,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured .tt-fp-featured-orbits,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured .tt-fp-featured-date,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured .tt-fp-featured-copy::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured .tt-fp-featured-title,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-empty-orbit,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-catalogue-bottom,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-plan-bottom::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions::after {
  animation-play-state:running !important;
}

/* Responsive hardening outside the hero. The hero artwork/layout is untouched. */
@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
    align-items:flex-start;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    flex-wrap:wrap;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
    flex:1 1 260px;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell {
    padding-left:12px;
    padding-right:12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
    width:calc(100% + 24px);
    margin-left:-12px;
    margin-right:-12px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline-head,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer {
    flex-direction:column;
    align-items:stretch;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-nav {
    justify-content:flex-start;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
    grid-column:1 / -1;
    width:100%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button {
    width:100%;
    min-width:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-reset {
    grid-column:2;
    justify-self:end;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
    grid-template-columns:34px minmax(0,1fr) 34px;
    gap:6px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
    grid-template-columns:1fr;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::before {
    display:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(n) {
    transform:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer-actions {
    width:100%;
    flex-wrap:wrap;
  }
}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-section {
    padding-left:8px;
    padding-right:8px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-info-line {
    min-width:0;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-countdown {
    width:100%;
    min-width:0;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] *,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] *::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
  }
}


/* ===== Original design layer 3 ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
  position:relative;
  isolation:isolate;
  align-items:center;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail {
  position:relative;
  z-index:1;
  min-width:0;
}

/* Override Elementor's global button padding/min-width rules. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] button.tt-fp-month-arrow {
  position:relative !important;
  z-index:3 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 35px !important;
  width:35px !important;
  min-width:35px !important;
  max-width:35px !important;
  height:35px !important;
  min-height:35px !important;
  max-height:35px !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1 !important;
  transform:none;
  overflow:hidden;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] button.tt-fp-month-arrow svg {
  position:static !important;
  display:block !important;
  flex:0 0 14px !important;
  width:14px !important;
  min-width:14px !important;
  max-width:14px !important;
  height:14px !important;
  min-height:14px !important;
  max-height:14px !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
    grid-template-columns:32px minmax(0,1fr) 32px !important;
    column-gap:7px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] button.tt-fp-month-arrow {
    flex-basis:32px !important;
    width:32px !important;
    min-width:32px !important;
    max-width:32px !important;
    height:32px !important;
    min-height:32px !important;
    max-height:32px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] button.tt-fp-month-arrow svg {
    flex-basis:12px !important;
    width:12px !important;
    min-width:12px !important;
    max-width:12px !important;
    height:12px !important;
    min-height:12px !important;
    max-height:12px !important;
  }
}

@media (max-width:380px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
    grid-template-columns:30px minmax(0,1fr) 30px !important;
    column-gap:6px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] button.tt-fp-month-arrow {
    flex-basis:30px !important;
    width:30px !important;
    min-width:30px !important;
    max-width:30px !important;
    height:30px !important;
    min-height:30px !important;
    max-height:30px !important;
  }
}


/* ===== Original design layer 4 ===== */

/* =========================================================
TARGETED ELEMENTOR FIX — SEARCH ICON CONTAINMENT
Only fixes the search icon/input overlap. Hero and animations
are not changed.
========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search {
  position:relative !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}

/* Hide the inline SVG because Elementor can reposition or resize it. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search > svg {
  display:none !important;
}

/* Draw a stable magnifying-glass icon inside the input area. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search::before {
  content:"";
  position:absolute !important;
  z-index:5 !important;
  top:50% !important;
  left:12px !important;
  width:10px !important;
  height:10px !important;
  margin:0 !important;
  border:1.5px solid #AA5432 !important;
  border-radius:50% !important;
  background:transparent !important;
  transform:translateY(-62%) !important;
  pointer-events:none !important;
  box-sizing:border-box !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search::after {
  content:"";
  position:absolute !important;
  z-index:5 !important;
  top:50% !important;
  left:21px !important;
  width:6px !important;
  height:1.5px !important;
  margin:0 !important;
  border:0 !important;
  border-radius:2px !important;
  background:#AA5432 !important;
  transform:translateY(3px) rotate(45deg) !important;
  transform-origin:left center !important;
  pointer-events:none !important;
}

/* Reserve permanent space for the icon, overriding Elementor input rules. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] input.tt-fp-search-input,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search input[type="search"] {
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding-left:36px !important;
  padding-right:12px !important;
  text-indent:0 !important;
  box-sizing:border-box !important;
  position:relative !important;
  z-index:1 !important;
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search::before {
    left:10px !important;
    width:9px !important;
    height:9px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search::after {
    left:18px !important;
    width:5px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] input.tt-fp-search-input,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-search input[type="search"] {
    padding-left:31px !important;
    padding-right:9px !important;
  }
}


/* ===== Original design layer 5 ===== */

/* =========================================================
   EVENT POSTER VISIBILITY FIX
   Keep the real event image above its decorative fallback at
   all times. Hover now only applies the subtle zoom effect.
   ========================================================= */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image > img:not(.is-broken) {
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  width:100% !important;
  height:100% !important;
  opacity:1 !important;
  visibility:visible !important;
  object-fit:cover !important;
  object-position:center !important;
  transform:translateZ(0) scale(1) !important;
  backface-visibility:hidden !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover .tt-fp-event-image > img:not(.is-broken),
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:focus-within .tt-fp-event-image > img:not(.is-broken) {
  transform:translateZ(0) scale(1.035) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-fallback {
  z-index:0 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image::after {
  z-index:2 !important;
  pointer-events:none !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-kind {
  z-index:3 !important;
}


/* Three lower hero cards intentionally removed. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-orbit-card-row {
  display:none !important;
}


/* ===== Original design layer 6 ===== */

/* =========================================================
   FEATURED EVENT — TRUE MINIMAL SECTION HEADER
   The Upcoming Festival/Event label now heads the complete
   section. The event title is deliberately smaller.
   ========================================================= */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal {
  display:grid !important;
  grid-template-columns:minmax(0,1.14fr) minmax(340px,.86fr) !important;
  grid-template-areas:
    "featured-heading featured-heading"
    "featured-media featured-copy" !important;
  grid-template-rows:auto minmax(0,1fr) !important;
  min-height:0 !important;
  overflow:hidden !important;
}

/* One restrained heading across the complete section. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head {
  grid-area:featured-heading !important;
  position:relative !important;
  z-index:6 !important;
  min-width:0 !important;
  min-height:46px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:20px !important;
  margin:0 !important;
  padding:0 24px !important;
  border:0 !important;
  border-bottom:1px solid rgba(255,248,234,.09) !important;
  background:#160504 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head .tt-fp-featured-kicker {
  display:inline-flex !important;
  align-items:center !important;
  flex:0 1 auto !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#DFA343 !important;
  font-size:9px !important;
  line-height:1.2 !important;
  letter-spacing:1.15px !important;
  white-space:nowrap !important;
  text-transform:uppercase !important;
  box-shadow:none !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head .tt-fp-featured-kicker::before {
  content:"" !important;
  display:block !important;
  flex:0 0 4px !important;
  width:4px !important;
  height:4px !important;
  margin:0 8px 0 0 !important;
  border:0 !important;
  border-radius:50% !important;
  background:#DFA343 !important;
  box-shadow:none !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head .tt-fp-featured-category {
  display:block !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  color:rgba(243,227,198,.46) !important;
  font-size:8px !important;
  line-height:1.2 !important;
  letter-spacing:.6px !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
  text-transform:uppercase !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-media {
  grid-area:featured-media !important;
  position:relative !important;
  inset:auto !important;
  z-index:1 !important;
  display:block !important;
  width:auto !important;
  height:auto !important;
  min-height:315px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-copy {
  grid-area:featured-copy !important;
  position:relative !important;
  z-index:2 !important;
  min-width:0 !important;
  min-height:315px !important;
  justify-content:center !important;
  padding:28px 32px 26px !important;
  background:
    radial-gradient(circle at 100% 0%,rgba(170,84,50,.045),transparent 35%),
    #160504 !important;
}

/* Smaller editorial title: the section label now carries hierarchy. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
  width:auto !important;
  max-width:540px !important;
  display:block !important;
  margin:0 0 10px !important;
  padding:0 !important;
  overflow:visible !important;
  color:#FFF8EA !important;
  font-size:clamp(20px,1.65vw,26px) !important;
  font-weight:600 !important;
  line-height:1.14 !important;
  letter-spacing:-.2px !important;
  white-space:normal !important;
  text-wrap:balance !important;
  -webkit-line-clamp:unset !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-description {
  max-width:555px !important;
  display:block !important;
  margin:0 !important;
  overflow:visible !important;
  color:rgba(243,227,198,.66) !important;
  font-size:12px !important;
  line-height:1.55 !important;
  -webkit-line-clamp:unset !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-info-line {
  margin-top:21px !important;
  padding-top:15px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination > span,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown-label {
  font-size:8px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination > strong {
  font-size:12px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown strong {
  font-size:19px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown span {
  font-size:7px !important;
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal {
    grid-template-columns:minmax(0,1fr) minmax(330px,.92fr) !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-copy {
    padding:25px 27px 23px !important;
  }
}

@media (max-width:820px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal {
    grid-template-columns:1fr !important;
    grid-template-areas:
      "featured-heading"
      "featured-media"
      "featured-copy" !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head {
    min-height:44px !important;
    padding:0 19px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-media {
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:auto !important;
    height:auto !important;
    min-height:260px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-copy {
    min-height:0 !important;
    padding:23px 21px 22px !important;
    background:#160504 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
    max-width:100% !important;
    font-size:22px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-description {
    max-width:100% !important;
  }
}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-copy {
    min-height:0 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head {
    min-height:42px !important;
    gap:12px !important;
    padding:0 15px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head .tt-fp-featured-kicker {
    font-size:8px !important;
    letter-spacing:.95px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-section-head .tt-fp-featured-category {
    font-size:7px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-media {
    min-height:220px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal > .tt-fp-featured-copy {
    padding:20px 16px 19px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-title {
    max-width:100% !important;
    margin-bottom:8px !important;
    font-size:19px !important;
    line-height:1.16 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-description {
    max-width:100% !important;
    font-size:11.5px !important;
    line-height:1.5 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-date {
    top:auto !important;
    right:auto !important;
    bottom:14px !important;
    left:14px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-info-line {
    grid-template-columns:1fr !important;
    gap:14px !important;
    margin-top:18px !important;
    padding-top:13px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-featured-destination {
    padding:0 0 12px !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(255,248,234,.08) !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown {
    grid-template-columns:
      52px
      minmax(0,1fr)
      auto
      minmax(0,1fr)
      auto
      minmax(0,1fr) !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-minimal .tt-fp-countdown strong {
    font-size:16px !important;
  }
}


/* ===== Original design layer 7 ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-track {
  gap:0 !important;
  width:max-content !important;
  min-width:max-content !important;
  padding:0 !important;
  animation:none !important;
  transform:translate3d(0,0,0);
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-group {
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  gap:var(--tt-fp-ribbon-gap,18px) !important;
  min-height:42px;
  padding:0 var(--tt-fp-ribbon-gap,18px) 0 0 !important;
  white-space:nowrap !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon.is-tt-fp-ribbon-ready .tt-fp-motion-track {
  animation:ttFpRibbonGapless var(--tt-fp-ribbon-duration,28s) linear infinite !important;
  animation-play-state:running !important;
}

@keyframes ttFpRibbonGapless {
  from {
    transform:translate3d(0,0,0);
  }
  to {
    transform:translate3d(var(--tt-fp-ribbon-shift,-600px),0,0);
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon.is-tt-fp-ribbon-ready .tt-fp-motion-track {
    animation-duration:80s !important;
  }
}


/* ===== Original design layer 8 ===== */

/* The section wrappers now control spacing. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell {
  padding:0 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-shell::before {
  display:none !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section {
  position:relative;
  z-index:2;
  width:100%;
  min-width:0;
  isolation:isolate;
}

/* SECTION 1 — HERO */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero {
  padding:54px 32px 42px;
  background:
    radial-gradient(circle at 7% 0%,rgba(170,84,50,.18),transparent 30%),
    radial-gradient(circle at 94% 10%,rgba(185,133,50,.10),transparent 28%),
    linear-gradient(145deg,#080303 0%,#150707 52%,#080303 100%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero .tt-fp-hero {
  margin-bottom:0 !important;
}

/* RIBBON — the full-width divider between section 1 and section 2. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
  z-index:5 !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border-top:1px solid rgba(216,181,110,.30) !important;
  border-bottom:1px solid rgba(216,181,110,.30) !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,248,234,.035);
}

/* SECTION 2 — UPCOMING FESTIVAL */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-featured {
  padding:40px 32px 44px;
  border-bottom:1px solid rgba(185,133,50,.16);
  background:
    radial-gradient(circle at 88% 0%,rgba(170,84,50,.10),transparent 30%),
    linear-gradient(180deg,#100404 0%,#0A0303 100%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-featured .tt-fp-featured {
  width:100%;
  max-width:1200px !important;
  margin:0 auto !important;
}

/* SECTION 3 — FESTIVAL YEAR / LISTINGS */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-year {
  padding:44px 32px 35px;
  background:
    radial-gradient(circle at 10% 100%,rgba(170,84,50,.09),transparent 30%),
    linear-gradient(180deg,#0B0303 0%,#080303 100%);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-year .tt-fp-year-section {
  width:100%;
  max-width:1200px !important;
  margin:0 auto !important;
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero {
    padding:38px 12px 30px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-featured {
    padding:26px 12px 30px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-year {
    padding:30px 12px 24px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
    width:100% !important;
    margin:0 !important;
  }
}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero {
    padding-top:30px;
    padding-bottom:26px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-featured {
    padding-top:22px;
    padding-bottom:25px;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-year {
    padding:25px 8px 18px;
  }
}


/* ===== Original design layer 9 ===== */

/* Keep a clear outer gutter around the hero card. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero {
  padding:32px 32px 38px !important;
  background:
    radial-gradient(circle at 7% 0%,rgba(170,84,50,.13),transparent 30%),
    radial-gradient(circle at 94% 10%,rgba(185,133,50,.08),transparent 28%),
    linear-gradient(180deg,#090303 0%,#0D0404 100%) !important;
}

/* The hero itself is now a distinct card/block. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero .tt-fp-hero {
  width:100%;
  max-width:1200px;
  margin:0 auto !important;
  padding:38px 42px !important;
  overflow:hidden;
  border:1px solid rgba(185,133,50,.30);
  border-radius:18px;
  background:
    radial-gradient(circle at 7% 0%,rgba(170,84,50,.20),transparent 31%),
    radial-gradient(circle at 94% 9%,rgba(185,133,50,.13),transparent 27%),
    linear-gradient(145deg,#110505 0%,#1A0807 50%,#0C0404 100%);
  box-shadow:
    0 30px 70px rgba(0,0,0,.36),
    inset 0 1px 0 rgba(255,248,234,.055);
  isolation:isolate;
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero {
    padding:24px 21px 30px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero .tt-fp-hero {
    padding:32px 28px !important;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero {
    padding:16px 12px 22px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero .tt-fp-hero {
    padding:27px 17px 20px !important;
    border-radius:14px;
  }

}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero {
    padding:10px 8px 18px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero .tt-fp-hero {
    padding:24px 14px 17px !important;
    border-radius:12px;
  }
}


/* ===== Original design layer 10 ===== */

/* Light warm canvas behind every section and the ribbon. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] {
  background:
    radial-gradient(circle at 8% 0%,rgba(185,133,50,.10),transparent 29%),
    radial-gradient(circle at 94% 12%,rgba(170,84,50,.075),transparent 26%),
    linear-gradient(180deg,#FBF6ED 0%,#F3E4CF 52%,#F8EFE2 100%) !important;
  border-color:rgba(126,82,48,.20) !important;
  box-shadow:
    0 28px 68px rgba(82,48,25,.16),
    inset 0 1px 0 rgba(255,255,255,.72) !important;
}

/* Remove the dark-maroon wrapper fills while preserving the
   actual section cards/blocks inside them. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-hero,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-featured,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-year {
  background:transparent !important;
}

/* Keep only a subtle divider in the light outer canvas. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-featured {
  border-bottom-color:rgba(126,82,48,.14) !important;
}


/* ===== Original design layer 11 ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-motion-ribbon {
  background:linear-gradient(
    90deg,
    #300505 0%,
    #3B0907 38%,
    #42100C 50%,
    #3B0907 62%,
    #300505 100%
  ) !important;
}


/* ===== Original design layer 12 ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-featured-title {
  display:block !important;
  width:max-content !important;
  max-width:none !important;
  margin-right:0 !important;
  font-family:"Montserrat",sans-serif !important;
  font-weight:600 !important;
  text-transform:uppercase !important;
  letter-spacing:.02em !important;
  white-space:nowrap !important;
  text-wrap:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  -webkit-line-clamp:unset !important;
  line-clamp:unset !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}


/* ===== Original design layer 13 ===== */

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer {
  position:relative;
  z-index:2;
  width:100%;
  padding:18px 32px 34px !important;
  background:transparent !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer {
  position:relative;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:24px !important;
  width:100% !important;
  max-width:1200px !important;
  min-height:0 !important;
  margin:0 auto !important;
  padding:17px 20px !important;
  overflow:hidden !important;
  border:1px solid rgba(126,82,48,.20) !important;
  border-radius:12px !important;
  background:linear-gradient(120deg,rgba(255,251,243,.94),rgba(246,229,202,.88)) !important;
  box-shadow:
    0 12px 28px rgba(82,48,25,.10),
    inset 0 1px 0 rgba(255,255,255,.78) !important;
  transform:none !important;
  opacity:1 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer:hover {
  transform:none !important;
  box-shadow:
    0 14px 31px rgba(82,48,25,.12),
    inset 0 1px 0 rgba(255,255,255,.82) !important;
}

/* Remove the large decorative orbit/glow treatment from this CTA only. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer::after,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer-actions::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer-actions::after {
  content:none !important;
  display:none !important;
  animation:none !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer > * {
  position:relative !important;
  z-index:1 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer-copy {
  min-width:0;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer-copy > span {
  display:block !important;
  margin:0 0 4px !important;
  color:#AA5432 !important;
  font-family:"Montserrat",sans-serif !important;
  font-size:6px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  letter-spacing:.95px !important;
  text-transform:uppercase !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer h3 {
  margin:0 0 4px !important;
  color:#300505 !important;
  font-family:"Expletus Sans",sans-serif !important;
  font-size:18px !important;
  font-weight:600 !important;
  line-height:1.12 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer p {
  max-width:680px !important;
  margin:0 !important;
  color:rgba(48,5,5,.52) !important;
  font-family:"Montserrat",sans-serif !important;
  font-size:7px !important;
  line-height:1.42 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer-actions {
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:0 !important;
  flex:0 0 auto !important;
  margin:0 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom {
  min-width:0 !important;
  min-height:34px !important;
  padding:8px 14px 8px 16px !important;
  border-radius:8px !important;
  box-shadow:0 7px 16px rgba(48,5,5,.13) !important;
  white-space:nowrap !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom svg {
  width:12px !important;
  height:12px !important;
  flex:0 0 12px !important;
}

@media (max-width:1024px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer {
    padding:16px 21px 28px !important;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer {
    padding:14px 12px 23px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer {
    grid-template-columns:1fr !important;
    gap:13px !important;
    padding:16px !important;
    border-radius:11px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer-actions {
    justify-content:flex-start !important;
  }
}

@media (max-width:480px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer {
    padding:12px 8px 18px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer {
    gap:11px !important;
    padding:14px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer h3 {
    font-size:16px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom {
    width:100% !important;
  }
}

/* Calendar section: single purposeful heading only */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
  margin:0;
}


/* ===== Original design layer 14 ===== */

/* Search and Reset controls removed: keep the remaining type filter compact. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
  width:max-content !important;
  max-width:100% !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-filterbar {
    width:100% !important;
  }
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs {
    width:100% !important;
  }
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs button {
    flex:1 1 0 !important;
  }
}


/* ===== Original design layer 15 ===== */

/* Final calendar-header placement fix:
   type filters sit at the top-right beside the heading;
   every filter label stays on one uninterrupted line. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  width:100% !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading > div:first-child {
  min-width:0 !important;
  flex:1 1 auto !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
  margin:0 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading {
  display:inline-flex !important;
  flex:0 0 auto !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  gap:5px !important;
  margin:0 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading button {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:58px !important;
  max-width:none !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  hyphens:none !important;
  line-height:1 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row {
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  width:100% !important;
  margin:0 0 18px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
  margin:0 !important;
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
    gap:9px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:clamp(12px,3.7vw,18px) !important;
    line-height:1.08 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading {
    width:auto !important;
    gap:3px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading button {
    flex:0 0 auto !important;
    min-width:0 !important;
    padding:7px 8px !important;
    font-size:6.4px !important;
    letter-spacing:.28px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row {
    margin-bottom:15px !important;
  }
}

@media (max-width:420px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
    gap:6px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:11px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading button {
    padding:6px 6px !important;
    font-size:5.9px !important;
    letter-spacing:.18px !important;
  }
}


/* ===== Original design layer 16 ===== */

/* =========================================================
   CALENDAR REFINEMENT — centred heading, one-line controls,
   all-year default and cleaner event/festival cards.
   ========================================================= */

/* Primary calendar heading */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
  display:block !important;
  width:100% !important;
  margin:0 0 24px !important;
  text-align:center !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
  display:block !important;
  width:100% !important;
  margin:0 !important;
  color:#300505 !important;
  font-family:"Expletus Sans",sans-serif !important;
  font-size:clamp(30px,4.4vw,54px) !important;
  font-weight:600 !important;
  line-height:1 !important;
  letter-spacing:-1px !important;
  text-align:center !important;
  text-wrap:balance !important;
}

/* Filters left, year controls right, on one shared row */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  width:100% !important;
  margin:0 0 22px !important;
  padding:10px !important;
  border:1px solid rgba(48,5,5,.10) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.42) !important;
  box-shadow:0 10px 26px rgba(78,31,18,.06) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
  display:inline-flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  width:auto !important;
  margin:0 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading {
  justify-content:flex-start !important;
  gap:5px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading button {
  flex:0 0 auto !important;
  width:auto !important;
  min-width:72px !important;
  max-width:none !important;
  min-height:36px !important;
  padding:8px 14px !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  hyphens:none !important;
  line-height:1 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
  justify-content:flex-end !important;
  gap:7px !important;
  flex:0 0 auto !important;
}

/* The obsolete selected-period / Next Up header is fully removed. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline-head {
  display:none !important;
}

/* Month rail follows the control row cleanly. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-rail-wrap {
  margin-bottom:24px !important;
}

/* Cleaner event grid: no timeline spine, no stagger, no overlap. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:16px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card::before {
  display:none !important;
  content:none !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even) {
  --event-accent:#B98532;
  display:grid !important;
  grid-template-columns:148px minmax(0,1fr) !important;
  min-height:178px !important;
  overflow:hidden !important;
  transform:none !important;
  border:1px solid rgba(48,5,5,.12) !important;
  border-top:3px solid var(--event-accent) !important;
  border-radius:13px !important;
  background:rgba(255,253,247,.92) !important;
  box-shadow:0 12px 30px rgba(70,27,16,.09) !important;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card[data-kind="event"] {
  --event-accent:#C8754F;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:focus-visible,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even):focus-visible {
  transform:translateY(-4px) !important;
  border-color:color-mix(in srgb,var(--event-accent) 58%,#6F3428) !important;
  box-shadow:0 18px 38px rgba(70,27,16,.15) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image {
  min-height:178px !important;
  border-right:1px solid rgba(48,5,5,.08) !important;
  background:#2C0A08 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image::after {
  background:linear-gradient(180deg,transparent 58%,rgba(20,4,3,.46)) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-kind {
  top:10px !important;
  left:10px !important;
  padding:5px 8px !important;
  border-radius:999px !important;
  font-size:5.7px !important;
  letter-spacing:.7px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-copy {
  justify-content:flex-start !important;
  padding:16px 17px 15px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-copy::before {
  display:none !important;
  content:none !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-status {
  order:0 !important;
  margin:0 0 7px !important;
  padding:4px 8px !important;
  font-size:5.7px !important;
  letter-spacing:.55px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-date {
  order:1 !important;
  margin:0 0 5px !important;
  color:#9A4B30 !important;
  font-size:6px !important;
  letter-spacing:.68px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card h4 {
  order:2 !important;
  margin:0 0 7px !important;
  color:#300505 !important;
  font-family:"Montserrat",sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1.24 !important;
  letter-spacing:-.15px !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-meta {
  order:3 !important;
  gap:5px !important;
  margin:0 0 8px !important;
  color:#7B4937 !important;
  font-size:5.6px !important;
  line-height:1.35 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card p {
  order:4 !important;
  display:-webkit-box !important;
  overflow:hidden !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:3 !important;
  margin:0 !important;
  color:rgba(48,5,5,.62) !important;
  font-size:6.8px !important;
  line-height:1.55 !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-cue {
  order:5 !important;
  margin-top:auto !important;
  padding-top:10px !important;
  color:#6E3327 !important;
  font-size:5.7px !important;
}

@media (max-width:900px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:clamp(26px,5vw,42px) !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-timeline {
    grid-template-columns:1fr !important;
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
    margin-bottom:17px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:clamp(24px,8vw,34px) !important;
    line-height:1.04 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row {
    flex-wrap:wrap !important;
    gap:10px !important;
    padding:9px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
    width:100% !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading {
    justify-content:flex-start !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
    justify-content:flex-end !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading button {
    flex:1 1 0 !important;
    min-width:0 !important;
    padding:8px 9px !important;
  }
}

@media (max-width:560px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:clamp(22px,8.2vw,30px) !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even) {
    grid-template-columns:112px minmax(0,1fr) !important;
    min-height:164px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-image {
    min-height:164px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-copy {
    padding:14px 13px 13px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card h4 {
    font-size:13px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card p {
    -webkit-line-clamp:2 !important;
  }
}

@media (max-width:390px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even) {
    grid-template-columns:96px minmax(0,1fr) !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
    justify-content:center !important;
  }
}


/* ===== Original design layer 17 ===== */

/* Keep filters and year selection on one horizontal line at every viewport. */
@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row {
    flex-wrap:nowrap !important;
    gap:7px !important;
    padding:7px !important;
    overflow-x:auto !important;
    scrollbar-width:none !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row::-webkit-scrollbar {
    display:none !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
    width:auto !important;
    min-width:0 !important;
    flex-wrap:nowrap !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading {
    flex:1 1 auto !important;
    justify-content:flex-start !important;
    gap:3px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading button {
    flex:0 0 auto !important;
    min-width:0 !important;
    min-height:31px !important;
    padding:7px 9px !important;
    font-size:5.9px !important;
    letter-spacing:.25px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row .tt-fp-year-nav {
    flex:0 0 auto !important;
    justify-content:flex-end !important;
    gap:4px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-prev,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-next {
    width:30px !important;
    min-width:30px !important;
    height:31px !important;
    min-height:31px !important;
    padding:0 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-number {
    min-width:38px !important;
    font-size:13px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year {
    width:38px !important;
    min-width:38px !important;
    min-height:31px !important;
    padding:0 !important;
    font-size:0 !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year::before {
    content:"NOW" !important;
    font-family:"Montserrat",sans-serif !important;
    font-size:5.4px !important;
    font-weight:700 !important;
    letter-spacing:.35px !important;
  }
}

@media (max-width:360px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-controls-row {
    gap:5px !important;
    padding:6px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-kind-tabs-heading button {
    padding:6px 7px !important;
    font-size:5.4px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-prev,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-next {
    width:27px !important;
    min-width:27px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-number {
    min-width:34px !important;
    font-size:12px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-this-year {
    width:33px !important;
    min-width:33px !important;
  }
}


/* ===== Original design layer 18 ===== */

/* =========================================================
   CALENDAR HEADING — SAME FULL-WIDTH BANNER TREATMENT AS THE
   UPCOMING FESTIVAL HEADER, WITHOUT AN OVERSIZED TITLE.
   ========================================================= */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
  position:relative !important;
  z-index:6 !important;
  min-width:0 !important;
  min-height:46px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  margin:-30px -30px 22px !important;
  padding:0 24px !important;
  border:0 !important;
  border-bottom:1px solid rgba(48,5,5,.13) !important;
  background:rgba(255,248,234,.46) !important;
  text-align:center !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
  display:block !important;
  width:100% !important;
  margin:0 !important;
  color:#300505 !important;
  font-family:"Expletus Sans",sans-serif !important;
  font-size:clamp(16px,1.75vw,21px) !important;
  font-weight:600 !important;
  line-height:1.15 !important;
  letter-spacing:.45px !important;
  text-align:center !important;
  white-space:normal !important;
  text-wrap:balance !important;
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
    min-height:44px !important;
    margin:-10px -8px 16px !important;
    padding:0 16px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:15px !important;
    line-height:1.15 !important;
    letter-spacing:.35px !important;
  }
}

@media (max-width:420px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
    min-height:42px !important;
    margin:-8px -6px 14px !important;
    padding:0 12px !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
    font-size:13px !important;
    letter-spacing:.25px !important;
  }
}


/* ===== Original design layer 19 ===== */

/* =========================================================
   DARK THEME — CALENDAR HEADING BANNER + FOURTH CTA BLOCK ONLY
   The calendar body, controls, cards, ribbon, hero and upcoming
   event block retain their existing colours and layout.
   ========================================================= */

/* Calendar heading banner */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading {
  border-bottom:1px solid rgba(216,181,110,.42) !important;
  background:
    radial-gradient(circle at 14% 50%,rgba(170,84,50,.22),transparent 34%),
    radial-gradient(circle at 88% 18%,rgba(185,133,50,.11),transparent 28%),
    linear-gradient(135deg,#100505 0%,#300505 58%,#160706 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,248,234,.06),
    0 11px 25px rgba(48,5,5,.16) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading h2 {
  color:#FFF8EA !important;
  text-shadow:0 1px 0 rgba(0,0,0,.34) !important;
}

/* Independent fourth / catalogue block */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer {
  border:1px solid rgba(185,133,50,.42) !important;
  background:
    radial-gradient(circle at 86% 16%,rgba(185,133,50,.13),transparent 30%),
    radial-gradient(circle at 8% 100%,rgba(170,84,50,.15),transparent 34%),
    linear-gradient(135deg,#100505 0%,#300505 58%,#160706 100%) !important;
  box-shadow:
    0 18px 42px rgba(48,5,5,.24),
    inset 0 1px 0 rgba(255,248,234,.06) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer:hover {
  box-shadow:
    0 21px 48px rgba(48,5,5,.28),
    inset 0 1px 0 rgba(255,248,234,.08) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer-copy > span {
  color:#D8B56E !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer h3 {
  color:#FFF8EA !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-year-footer p {
  color:rgba(243,227,198,.68) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom {
  border-color:rgba(216,181,110,.38) !important;
  background:linear-gradient(135deg,#AA5432,#5A1511) !important;
  color:#FFF !important;
  box-shadow:
    0 9px 20px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,248,234,.08) !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom:focus-visible {
  border-color:#D8B56E !important;
  background:linear-gradient(135deg,#C8754F,#641C16) !important;
}


/* ===== Original design layer 20 ===== */

/* Animate only after the helper script has initialized. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero-copy,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-orbit-art,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-motion-ribbon,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-section-head,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-media,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-copy,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-heading,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-controls-row,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-month-rail-wrap,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-copy,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-actions {
  will-change:transform,opacity;
}

/* 1. Hero: copy glides in while the artwork settles softly. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero-copy {
  opacity:0;
  transform:translate3d(-18px,8px,0);
  transition:
    opacity .85s cubic-bezier(.22,.68,.24,1),
    transform 1s cubic-bezier(.22,.68,.24,1);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-orbit-art {
  opacity:0;
  transform:translate3d(14px,0,0) scale(.985);
  transition:
    opacity 1.05s ease .12s,
    transform 1.25s cubic-bezier(.22,.68,.24,1) .12s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero.tt-fp-elegant-visible .tt-fp-hero-copy,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero.tt-fp-elegant-visible .tt-fp-orbit-art {
  opacity:1;
  transform:none;
}

/* 2. Ribbon: a restrained horizontal reveal, independent of its loop. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-motion-ribbon {
  opacity:0;
  clip-path:inset(0 8% 0 8% round 8px);
  transform:translate3d(0,8px,0);
  transition:
    opacity .72s ease,
    clip-path 1.05s cubic-bezier(.22,.68,.24,1),
    transform .9s cubic-bezier(.22,.68,.24,1);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-motion-ribbon.tt-fp-elegant-visible {
  opacity:1;
  clip-path:inset(0 0 0 0 round 0);
  transform:none;
}

/* 3. Upcoming block: banner, image and copy enter with distinct timing. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-section-head {
  opacity:0;
  transform:translate3d(0,-10px,0);
  transition:
    opacity .62s ease,
    transform .78s cubic-bezier(.22,.68,.24,1);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-media {
  opacity:0;
  transform:translate3d(-15px,0,0);
  transition:
    opacity .82s ease .08s,
    transform .95s cubic-bezier(.22,.68,.24,1) .08s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-copy {
  opacity:0;
  transform:translate3d(18px,0,0);
  transition:
    opacity .82s ease .16s,
    transform 1s cubic-bezier(.22,.68,.24,1) .16s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured.tt-fp-elegant-visible .tt-fp-featured-section-head,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured.tt-fp-elegant-visible .tt-fp-featured-media,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured.tt-fp-elegant-visible .tt-fp-featured-copy {
  opacity:1;
  transform:none;
}

/* 4. Calendar: banner settles first, controls meet from opposite sides. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-heading {
  opacity:0;
  transform:translate3d(0,-12px,0);
  transition:
    opacity .68s ease,
    transform .85s cubic-bezier(.22,.68,.24,1);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-controls-row {
  opacity:0;
  transform:translate3d(0,12px,0);
  transition:
    opacity .72s ease .10s,
    transform .88s cubic-bezier(.22,.68,.24,1) .10s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-month-rail-wrap {
  opacity:0;
  transform:translate3d(0,16px,0);
  transition:
    opacity .78s ease .18s,
    transform .95s cubic-bezier(.22,.68,.24,1) .18s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-section.tt-fp-elegant-visible .tt-fp-year-heading,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-section.tt-fp-elegant-visible .tt-fp-year-controls-row,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-section.tt-fp-elegant-visible .tt-fp-month-rail-wrap {
  opacity:1;
  transform:none;
}

/* Fine moving accent across the dark calendar banner. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading::after {
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  bottom:-1px;
  height:1px;
  pointer-events:none;
  opacity:.68;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(216,181,110,.26),
    rgba(255,248,234,.72),
    rgba(216,181,110,.26),
    transparent
  );
  background-size:220% 100%;
  animation:ttFpElegantBannerLine 11s ease-in-out infinite;
}

/* Month cards receive a quiet stagger when the calendar first appears. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-section:not(.tt-fp-elegant-visible) .tt-fp-month-card {
  opacity:0;
  transform:translate3d(0,10px,0);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card {
  --tt-month-delay:0ms;
  transition:
    opacity .58s ease var(--tt-month-delay),
    transform .62s cubic-bezier(.22,.68,.24,1) var(--tt-month-delay),
    border-color .22s ease,
    background .22s ease,
    color .22s ease,
    box-shadow .22s ease !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(2) { --tt-month-delay:35ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(3) { --tt-month-delay:70ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(4) { --tt-month-delay:105ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(5) { --tt-month-delay:140ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(6) { --tt-month-delay:175ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(7) { --tt-month-delay:210ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(8) { --tt-month-delay:245ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(9) { --tt-month-delay:280ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(10) { --tt-month-delay:315ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(11) { --tt-month-delay:350ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(12) { --tt-month-delay:385ms; }
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card:nth-child(13) { --tt-month-delay:420ms; }

/* 5. Entries: alternate direction instead of repeating one fade-up. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even).tt-fp-reveal-ready {
  opacity:0;
  transform:translate3d(-16px,10px,0);
  transition:
    opacity .7s ease var(--tt-reveal-delay,0ms),
    transform .82s cubic-bezier(.22,.68,.24,1) var(--tt-reveal-delay,0ms),
    border-color .24s ease,
    box-shadow .24s ease !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even).tt-fp-reveal-ready {
  transform:translate3d(16px,10px,0);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even).tt-fp-reveal-ready.tt-fp-revealed {
  opacity:1;
  transform:none;
}

/* Keep hover elegant after the reveal completes. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed.is-linked:hover,
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed.is-linked:focus-visible {
  transform:translate3d(0,-4px,0) !important;
}

/* 6. Fourth block: copy and action arrive separately. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-copy {
  opacity:0;
  transform:translate3d(-16px,0,0);
  transition:
    opacity .72s ease,
    transform .9s cubic-bezier(.22,.68,.24,1);
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-actions {
  opacity:0;
  transform:translate3d(16px,0,0);
  transition:
    opacity .72s ease .12s,
    transform .9s cubic-bezier(.22,.68,.24,1) .12s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer.tt-fp-elegant-visible .tt-fp-year-footer-copy,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer.tt-fp-elegant-visible .tt-fp-year-footer-actions {
  opacity:1;
  transform:none;
}

/* Tone down previously stronger repeating effects. */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active {
  animation:ttFpElegantMonthBreath 6.4s ease-in-out infinite !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom {
  animation:ttFpElegantButtonBreath 7.2s ease-in-out infinite !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::before {
  opacity:.34;
  animation-duration:34s !important;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-footer::after {
  opacity:.68;
  animation-duration:34s !important;
}

@keyframes ttFpElegantBannerLine {
  0%,100% { background-position:100% 0; opacity:.44; }
  50% { background-position:-100% 0; opacity:.78; }
}

@keyframes ttFpElegantMonthBreath {
  0%,100% {
    box-shadow:
      0 15px 31px rgba(48,5,5,.22),
      0 0 0 0 rgba(200,117,79,0),
      inset 0 1px 0 rgba(255,248,234,.14);
  }
  50% {
    box-shadow:
      0 17px 35px rgba(48,5,5,.25),
      0 0 0 3px rgba(200,117,79,.055),
      inset 0 1px 0 rgba(255,248,234,.16);
  }
}

@keyframes ttFpElegantButtonBreath {
  0%,100% {
    box-shadow:
      0 9px 20px rgba(0,0,0,.23),
      0 0 0 0 rgba(216,181,110,0),
      inset 0 1px 0 rgba(255,248,234,.08);
  }
  50% {
    box-shadow:
      0 11px 24px rgba(0,0,0,.27),
      0 0 0 3px rgba(216,181,110,.045),
      inset 0 1px 0 rgba(255,248,234,.10);
  }
}

@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-orbit-art,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-media,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-actions {
    transform:translate3d(0,12px,0);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero.tt-fp-elegant-visible .tt-fp-hero-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero.tt-fp-elegant-visible .tt-fp-orbit-art,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured.tt-fp-elegant-visible .tt-fp-featured-media,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured.tt-fp-elegant-visible .tt-fp-featured-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer.tt-fp-elegant-visible .tt-fp-year-footer-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer.tt-fp-elegant-visible .tt-fp-year-footer-actions {
    transform:none;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even).tt-fp-reveal-ready {
    transform:translate3d(0,12px,0);
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready.tt-fp-revealed,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even).tt-fp-reveal-ready.tt-fp-revealed {
    transform:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-year-heading::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-month-card.is-active,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-page-section-footer .tt-fp-catalogue-bottom {
    animation:none !important;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-hero-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-orbit-art,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-motion-ribbon,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-section-head,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-media,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-featured-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-heading,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-controls-row,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-month-rail-wrap,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-copy,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-elegant-motion .tt-fp-year-footer-actions,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card.tt-fp-reveal-ready,
  section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-event-card:nth-child(even).tt-fp-reveal-ready {
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}


/* ===== Original design layer 21 ===== */

/* LIVE 1 — Hero: a slow travelling glow, while the existing orbit
   system remains untouched. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-hero::before {
  content:"";
  position:absolute;
  inset:-34%;
  z-index:0;
  pointer-events:none;
  opacity:.28;
  background:
    radial-gradient(circle at 50% 50%,rgba(216,181,110,.16) 0%,rgba(170,84,50,.075) 24%,transparent 58%);
  transform:translate3d(-8%,-5%,0) scale(.94);
  animation:ttFpLiveHeroGlow 19s ease-in-out infinite alternate;
  animation-play-state:paused;
  will-change:transform,opacity;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-hero-main {
  position:relative;
  z-index:1;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-hero h1 span {
  animation:ttFpLiveAmpersandGlow 10.5s ease-in-out infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero.tt-fp-live-active .tt-fp-hero::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero.tt-fp-live-active .tt-fp-hero h1 span {
  animation-play-state:running;
}

/* LIVE 2 — Ribbon: retain the gapless text loop and add only a very
   soft light trace that crosses at a different rhythm. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-motion-ribbon::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-42%;
  z-index:3;
  width:34%;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(
    105deg,
    transparent 0%,
    rgba(216,181,110,.015) 34%,
    rgba(255,248,234,.16) 50%,
    rgba(216,181,110,.025) 66%,
    transparent 100%
  );
  transform:skewX(-16deg) translate3d(0,0,0);
  animation:ttFpLiveRibbonGleam 13.5s ease-in-out infinite;
  animation-play-state:paused;
  will-change:transform,opacity;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-motion-ribbon .tt-fp-motion-track {
  position:relative;
  z-index:2;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-motion-ribbon.tt-fp-live-active::after {
  animation-play-state:running;
}

/* LIVE 3 — Upcoming block: the poster slowly reframes, the heading dot
   glows quietly, and the countdown breathes in a staggered sequence. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-featured-image {
  animation:ttFpLiveFeaturedImagePan 18s ease-in-out infinite alternate;
  animation-play-state:paused;
  will-change:object-position;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-featured-section-head .tt-fp-featured-kicker::before {
  animation:ttFpLiveFeaturedDot 6.8s ease-in-out infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-countdown-unit strong {
  animation:ttFpLiveCountdownGlow 7.8s ease-in-out infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-countdown-unit:nth-of-type(1) strong {
  animation-delay:0s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-countdown-unit:nth-of-type(2) strong {
  animation-delay:1.25s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-countdown-unit:nth-of-type(3) strong {
  animation-delay:2.5s;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-featured.tt-fp-live-active .tt-fp-featured-image,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-featured.tt-fp-live-active .tt-fp-featured-section-head .tt-fp-featured-kicker::before,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-featured.tt-fp-live-active .tt-fp-countdown-unit strong {
  animation-play-state:running;
}

/* LIVE 4 — Calendar controls: banner typography, active category and
   year number each use a different quiet visual rhythm. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-year-heading h2 {
  animation:ttFpLiveCalendarHeading 12s ease-in-out infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-kind-tabs-heading button.is-active {
  animation:ttFpLiveActiveFilter 9.5s ease-in-out infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-year-number {
  animation:ttFpLiveYearNumber 8.6s ease-in-out infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-year.tt-fp-live-active .tt-fp-year-heading h2,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-year.tt-fp-live-active .tt-fp-kind-tabs-heading button.is-active,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-year.tt-fp-live-active .tt-fp-year-number {
  animation-play-state:running;
}

/* LIVE 5 — Calendar entries: odd/even posters drift differently and
   a sparse sheen crosses each card at staggered intervals. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card:nth-child(odd) .tt-fp-event-image img {
  animation:ttFpLiveEventImagePanA 21s ease-in-out infinite alternate;
  animation-play-state:paused;
  will-change:object-position;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card:nth-child(even) .tt-fp-event-image img {
  animation:ttFpLiveEventImagePanB 24s ease-in-out infinite alternate;
  animation-play-state:paused;
  will-change:object-position;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card::after {
  opacity:0;
  transform:translate3d(-145%,0,0);
  animation:ttFpLiveCardSheen 17s ease-in-out infinite;
  animation-play-state:paused;
  will-change:transform,opacity;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card:nth-child(2n)::after { animation-delay:2.7s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card:nth-child(3n)::after { animation-delay:5.1s; }
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card:nth-child(5n)::after { animation-delay:7.4s; }

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-year.tt-fp-live-active .tt-fp-event-image img,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-year.tt-fp-live-active .tt-fp-event-card::after {
  animation-play-state:running;
}

/* LIVE 6 — Fourth block: its border aura breathes rather than moving,
   while the catalogue arrow makes a restrained independent glide. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-footer .tt-fp-year-footer {
  animation:ttFpLiveFooterAura 14.5s ease-in-out infinite;
  animation-play-state:paused;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-footer .tt-fp-catalogue-bottom svg {
  animation:ttFpLiveFooterArrow 6.6s ease-in-out infinite;
  animation-play-state:paused;
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-footer.tt-fp-live-active .tt-fp-year-footer,
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-footer.tt-fp-live-active .tt-fp-catalogue-bottom svg {
  animation-play-state:running;
}

/* The hero catalogue arrow has a slower, different timing from the
   fourth-section action. */
section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-catalogue-top svg {
  animation:ttFpLiveHeroArrow 8.4s ease-in-out infinite;
  animation-play-state:paused;
  will-change:transform;
}

section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero.tt-fp-live-active .tt-fp-catalogue-top svg {
  animation-play-state:running;
}

@keyframes ttFpLiveHeroGlow {
  0% {
    opacity:.19;
    transform:translate3d(-9%,-6%,0) scale(.93);
  }
  50% {
    opacity:.34;
    transform:translate3d(5%,1%,0) scale(1.02);
  }
  100% {
    opacity:.23;
    transform:translate3d(10%,7%,0) scale(.97);
  }
}

@keyframes ttFpLiveAmpersandGlow {
  0%,100% { text-shadow:0 0 0 rgba(200,117,79,0); }
  50% { text-shadow:0 0 18px rgba(200,117,79,.24); }
}

@keyframes ttFpLiveRibbonGleam {
  0%,58% {
    opacity:0;
    transform:skewX(-16deg) translate3d(0,0,0);
  }
  68% { opacity:.30; }
  82% { opacity:.16; }
  93%,100% {
    opacity:0;
    transform:skewX(-16deg) translate3d(430%,0,0);
  }
}

@keyframes ttFpLiveFeaturedImagePan {
  0% { object-position:48% 50%; }
  50% { object-position:51% 48%; }
  100% { object-position:54% 51%; }
}

@keyframes ttFpLiveFeaturedDot {
  0%,100% {
    opacity:.72;
    box-shadow:0 0 0 0 rgba(216,181,110,0);
  }
  50% {
    opacity:1;
    box-shadow:0 0 0 5px rgba(216,181,110,.07),0 0 12px rgba(216,181,110,.22);
  }
}

@keyframes ttFpLiveCountdownGlow {
  0%,100% {
    opacity:.90;
    text-shadow:0 0 0 rgba(216,181,110,0);
  }
  50% {
    opacity:1;
    text-shadow:0 0 12px rgba(216,181,110,.18);
  }
}

@keyframes ttFpLiveCalendarHeading {
  0%,100% { text-shadow:0 0 0 rgba(216,181,110,0); }
  50% { text-shadow:0 0 19px rgba(216,181,110,.16); }
}

@keyframes ttFpLiveActiveFilter {
  0%,100% {
    box-shadow:0 5px 13px rgba(48,5,5,.11),inset 0 1px 0 rgba(255,248,234,.07);
  }
  50% {
    box-shadow:0 7px 17px rgba(48,5,5,.16),0 0 0 2px rgba(170,84,50,.045),inset 0 1px 0 rgba(255,248,234,.10);
  }
}

@keyframes ttFpLiveYearNumber {
  0%,100% {
    opacity:.88;
    text-shadow:0 0 0 rgba(170,84,50,0);
  }
  50% {
    opacity:1;
    text-shadow:0 0 11px rgba(170,84,50,.16);
  }
}

@keyframes ttFpLiveEventImagePanA {
  0% { object-position:47% 50%; }
  100% { object-position:54% 48%; }
}

@keyframes ttFpLiveEventImagePanB {
  0% { object-position:54% 49%; }
  100% { object-position:47% 52%; }
}

@keyframes ttFpLiveCardSheen {
  0%,67% {
    opacity:0;
    transform:translate3d(-145%,0,0);
  }
  73% { opacity:.12; }
  82% { opacity:.20; }
  91%,100% {
    opacity:0;
    transform:translate3d(145%,0,0);
  }
}

@keyframes ttFpLiveFooterAura {
  0%,100% {
    border-color:rgba(185,133,50,.28);
    box-shadow:0 20px 48px rgba(67,20,13,.20),inset 0 1px 0 rgba(255,248,234,.045);
  }
  50% {
    border-color:rgba(216,181,110,.40);
    box-shadow:0 23px 54px rgba(67,20,13,.25),0 0 0 1px rgba(216,181,110,.035),inset 0 1px 0 rgba(255,248,234,.065);
  }
}

@keyframes ttFpLiveFooterArrow {
  0%,100% { transform:translate3d(0,0,0); }
  50% { transform:translate3d(2px,0,0); }
}

@keyframes ttFpLiveHeroArrow {
  0%,100% { transform:translate3d(0,0,0); }
  50% { transform:translate3d(1.5px,0,0); }
}

/* Mobile keeps the live feeling but lowers the visual amplitude. */
@media (max-width:767px) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-hero::before {
    opacity:.19;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-motion-ribbon::after {
    width:44%;
  }

  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card::after {
    opacity:0;
  }
}

/* Accessibility: disable only this new live layer when reduced motion is
   requested. Existing reduced-motion protections remain intact. */
@media (prefers-reduced-motion:reduce) {
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-hero::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-hero h1 span,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-motion-ribbon::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-featured-image,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-featured-section-head .tt-fp-featured-kicker::before,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-countdown-unit strong,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-year-heading h2,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-kind-tabs-heading button.is-active,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-year-number,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-image img,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-event-card::after,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-footer .tt-fp-year-footer,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-footer .tt-fp-catalogue-bottom svg,
  section.tt-festival-pulse[id^="tt-festival-pulse-"].tt-fp-live-ambient .tt-fp-page-section-hero .tt-fp-catalogue-top svg {
    animation:none !important;
  }
}



/* ===== Elementor widget integration ===== */
section.tt-festival-pulse[id^="tt-festival-pulse-"] .tt-fp-config { display:none !important; }
.elementor-editor-active section.tt-festival-pulse[id^="tt-festival-pulse-"] { min-height:40px; }
