/* [project]/app/src/app/fiche-technique/technique.css [app-client] (css) */
@keyframes ft-fade-up {
  from {
    opacity: 0;
    transform: translateY(28px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes ft-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes ft-slide-right {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes ft-line-grow {
  from {
    transform: scaleX(0);
  }

  to {
    transform: scaleX(1);
  }
}

@keyframes ft-glow-pulse {
  0%, 100% {
    box-shadow: inset 0 0 #e817e800;
  }

  50% {
    box-shadow: inset 0 0 40px #e817e80f;
  }
}

.ft-hero {
  background: #0f0014;
  padding: 6rem 0 5.5rem;
  position: relative;
  overflow: hidden;
}

.ft-hero-bg {
  filter: grayscale(20%) contrast(1.1);
  background-image: url("/920A3448-min-scaled-e1724085717722-2048x1231.webp");
  background-position: 50% 30%;
  background-size: cover;
  position: absolute;
  inset: 0;
}

.ft-hero-overlay {
  background: linear-gradient(to top, #0f0014 20%, #15021d99 60%, #0000 100%), linear-gradient(100deg, #0f0014eb 0%, #0000 60%);
  position: absolute;
  inset: 0;
}

.ft-hero-noise {
  opacity: .6;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  position: absolute;
  inset: 0;
}

.ft-hero-title {
  font-family: var(--font-display), sans-serif;
  text-transform: uppercase;
  color: #f7f7f7;
  letter-spacing: .01em;
  text-shadow: 0 0 35px #e817e847, 0 0 80px #8d1ae624;
  margin: 0;
  font-size: clamp(3.5rem, 9vw, 8rem);
  line-height: .85;
  animation: .7s cubic-bezier(.22, 1, .36, 1) .2s both ft-fade-up;
}

.ft-hero-title em {
  background: var(--brand-glow);
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  font-style: normal;
}

.ft-hero-sub {
  color: #858585;
  max-width: 480px;
  margin: 1.2rem 0 0;
  padding-bottom: 1rem;
  font-size: .92rem;
  line-height: 1.65;
  animation: .6s cubic-bezier(.22, 1, .36, 1) .4s both ft-fade-up;
}

.ft-hero-stats {
  z-index: 2;
  background: #16071d;
  border-top: 1px solid #3b2145;
  position: relative;
}

.ft-hero-stats-inner {
  grid-template-columns: repeat(5, 1fr);
  display: grid;
}

.ft-stat {
  border-right: 1px solid #2c1934;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: .4rem;
  padding: 1.6rem 1.5rem;
  animation: .5s cubic-bezier(.22, 1, .36, 1) both ft-fade-up;
  display: flex;
}

.ft-stat:last-child {
  border-right: none;
}

.ft-stat:first-child {
  animation-delay: 50ms;
}

.ft-stat:nth-child(2) {
  animation-delay: .12s;
}

.ft-stat:nth-child(3) {
  animation-delay: .19s;
}

.ft-stat:nth-child(4) {
  animation-delay: .26s;
}

.ft-stat:nth-child(5) {
  animation-delay: .33s;
}

.ft-stat-n {
  font-family: var(--font-display), sans-serif;
  color: #f2f2f2;
  align-items: baseline;
  gap: .25rem;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1;
  display: flex;
}

.ft-stat-unit {
  font-size: .45em;
  font-family: var(--font-display), sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--primary);
}

.ft-stat-l {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #666;
  font-size: .82rem;
  line-height: 1.35;
}

.ft-stat-sep {
  display: none;
}

.ft-body {
  padding: 0 0 6rem;
}

.ft-sep {
  align-items: center;
  gap: 0;
  margin-bottom: 2.5rem;
  padding: 3.5rem 0 0;
  display: flex;
}

.ft-sep-num {
  font-family: var(--font-title-display), sans-serif;
  color: #351e3e;
  text-align: right;
  -webkit-user-select: none;
  user-select: none;
  min-width: 5rem;
  margin-right: 1.2rem;
  font-size: 5rem;
  font-weight: 900;
  line-height: 1;
}

.ft-sep-body {
  flex: 1;
}

.ft-sep-label {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--primary);
  margin: 0 0 .4rem;
  font-size: .82rem;
}

.ft-sep-title {
  font-family: var(--font-title-display), sans-serif;
  text-transform: uppercase;
  color: #ededed;
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: .9;
}

.ft-sep-rule {
  background: linear-gradient(to right, var(--primary), transparent);
  transform-origin: 0;
  height: 1px;
  margin-top: 1.4rem;
  animation: .8s cubic-bezier(.22, 1, .36, 1) .15s both ft-line-grow;
}

.ft-lineup {
  background: #291730;
  border: 1px solid #291730;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  display: grid;
}

.ft-lineup-row {
  cursor: default;
  background: #0e0a10;
  flex-direction: column;
  padding: 2rem 1.6rem 1.8rem;
  transition: background .25s;
  display: flex;
  position: relative;
  overflow: hidden;
}

.ft-lineup-row:before {
  content: "";
  background: var(--lc, var(--primary));
  opacity: .7;
  height: 3px;
  transition: opacity .3s, height .3s;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.ft-lineup-row:hover {
  background: #140d17;
}

.ft-lineup-row:hover:before {
  opacity: 1;
  height: 4px;
}

.ft-lineup-n {
  font-family: var(--font-title-display), sans-serif;
  color: #291730;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
  font-size: 4rem;
  line-height: 1;
  transition: color .3s;
  position: absolute;
  bottom: -.5rem;
  right: .8rem;
}

.ft-lineup-row:hover .ft-lineup-n {
  color: #351e3e;
}

.ft-lineup-role {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--lc, var(--primary));
  margin-bottom: .6rem;
  font-size: .82rem;
}

.ft-lineup-name {
  font-family: var(--font-title-display), sans-serif;
  text-transform: uppercase;
  color: #f0f0f0;
  margin-bottom: 1rem;
  font-size: 1.6rem;
  line-height: 1;
}

.ft-lineup-instrs {
  color: #707070;
  font-size: .85rem;
  line-height: 1.7;
}

.ft-crew {
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  margin-top: 2px;
  display: grid;
}

.ft-crew-card {
  background: #0b080c;
  border: 1px solid #121212;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.2rem;
  display: flex;
}

.ft-crew-icon {
  color: #ad70db;
  background: #231429;
  border: 1px solid #41244c;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  display: flex;
}

.ft-crew-role {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #595959;
  margin: 0 0 .2rem;
  font-size: .82rem;
}

.ft-crew-name {
  font-family: var(--font-title-display), sans-serif;
  text-transform: uppercase;
  color: #c7c7c7;
  margin: 0;
  font-size: 1rem;
}

.ft-timings {
  border: 1px solid #2f1b37;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  display: grid;
}

.ft-timing {
  border-right: 1px solid #291730;
  padding: 2rem 1.5rem;
  transition: background .2s;
  position: relative;
  overflow: hidden;
}

.ft-timing:last-child {
  border-right: none;
}

.ft-timing:hover {
  background: #140c1780;
}

.ft-timing:after {
  content: "";
  background: var(--brand-glow);
  transform-origin: bottom;
  width: 2px;
  transition: transform .4s cubic-bezier(.22, 1, .36, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  transform: scaleY(0);
}

.ft-timing:hover:after {
  transform: scaleY(1);
}

.ft-timing:after {
  content: "";
  background: #231429;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.ft-timing-n {
  font-family: var(--font-title-display), sans-serif;
  background: var(--brand-glow);
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  margin: 0 0 .2rem;
  font-size: 4rem;
  line-height: 1;
}

.ft-timing-unit {
  font-family: var(--font-title-display), sans-serif;
  background: var(--brand-glow);
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  font-size: 1.4rem;
  display: inline-block;
}

.ft-timing-label {
  color: #8a8a8a;
  margin: .5rem 0 0;
  font-size: .92rem;
  line-height: 1.55;
}

.ft-timing-cond {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #4d4d4d;
  margin: .7rem 0 0;
  font-size: .82rem;
  display: block;
}

.ft-specs-layout {
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  display: grid;
}

.ft-spec-panel {
  border: 1px solid #2f1b37;
  border-top: 2px solid var(--primary);
  background: #0e0a10;
  padding: 1.8rem 1.8rem 1.6rem;
  transition: border-top-color .3s, background .2s;
}

.ft-spec-panel:hover {
  background: #110b13;
}

.ft-spec-panel--alt {
  border-top-color: #992bee;
}

.ft-spec-panel--alt:hover {
  border-top-color: #c07bf4;
}

.ft-spec-panel-title {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--primary);
  margin: 0 0 1.4rem;
  font-size: .82rem;
}

.ft-spec-panel--alt .ft-spec-panel-title {
  color: #b05af2;
}

.ft-spec-line {
  border-bottom: 1px solid #201226;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: .65rem 0;
  display: flex;
}

.ft-spec-line:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.ft-spec-k {
  color: #707070;
  flex-shrink: 0;
  font-size: .88rem;
}

.ft-spec-v {
  color: #d6d6d6;
  text-align: right;
  font-size: .95rem;
  line-height: 1.5;
}

.ft-spec-v strong {
  color: #f5f5f5;
  font-weight: 600;
}

.ft-spec-v .ft-tag {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #f27df2;
  background: #7a1f7a40;
  border-radius: 2px;
  margin-left: .4rem;
  padding: .22rem .55rem;
  font-size: .82rem;
  display: inline-block;
}

.ft-drums {
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  display: grid;
}

.ft-drum {
  background: #0e0a10;
  border: 1px solid #291730;
  padding: 2rem 1.8rem;
  transition: border-color .25s, transform .3s cubic-bezier(.22, 1, .36, 1);
  position: relative;
  overflow: hidden;
}

.ft-drum--main {
  background: #120c12;
  border-color: #7a1f7a80;
}

.ft-drum:hover {
  border-color: #522e60;
  transform: translateY(-3px);
}

.ft-drum--main:hover {
  border-color: #b82eb899;
}

.ft-drum-badge {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  border-radius: 2px;
  margin-bottom: 1.2rem;
  padding: .28rem .7rem;
  font-size: .82rem;
  display: inline-block;
}

.ft-drum--main .ft-drum-badge {
  color: #f27df2;
  background: #7a1f7a4d;
}

.ft-drum-badge--alt {
  color: #ad70db;
  background: #3b244c66;
}

.ft-drum-size {
  font-family: var(--font-title-display), sans-serif;
  color: #292929;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
  font-size: 3.5rem;
  line-height: 1;
  position: absolute;
  bottom: -.5rem;
  right: 1rem;
}

.ft-drum-title {
  font-family: var(--font-title-display), sans-serif;
  text-transform: uppercase;
  color: #e6e6e6;
  margin: 0 0 .3rem;
  font-size: 1.8rem;
  line-height: 1;
}

.ft-drum-m2 {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .1em;
  color: var(--primary);
  margin: 0 0 1rem;
  font-size: .84rem;
}

.ft-drum-list {
  color: #858585;
  flex-direction: column;
  gap: .35rem;
  margin: 0;
  padding: 0;
  font-size: .92rem;
  list-style: none;
  display: flex;
}

.ft-drum-list li {
  padding-left: 1rem;
  position: relative;
}

.ft-drum-list li:before {
  content: "·";
  color: #474747;
  position: absolute;
  left: .1rem;
}

.sp-wrap {
  background: #0b080c;
  border: 1px solid #291730;
  padding: 2rem;
}

.sp-legend {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  display: flex;
}

.sp-legend-label {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: #424242;
  font-size: .82rem;
}

.sp-legend-title {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #5c5c5c;
  font-size: .82rem;
}

.sp-depth {
  flex-direction: column;
  gap: 4px;
  display: flex;
}

.sp-zone {
  border: 1px solid #231429;
  align-items: stretch;
  min-height: 70px;
  display: flex;
  position: relative;
}

.sp-zone:before {
  content: attr(data-depth);
  font-family: var(--font-display), sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #333;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  white-space: nowrap;
  font-size: .82rem;
  position: absolute;
  top: 50%;
  left: -.8rem;
  transform: translateY(-50%);
}

.sp-zone--back {
  background: #110b14;
  border-color: #291730;
  justify-content: center;
}

.sp-zone--mid {
  background: #0e0910;
  border-color: #26162d;
}

.sp-zone--front {
  background: #0e0a10;
  border-color: #4f224f;
  animation: 5s ease-in-out infinite ft-glow-pulse;
  box-shadow: 0 0 0 1px #4f224f66, inset 0 0 40px #260d264d;
}

.sp-zone--facade {
  background: #0b080c;
  border-color: #251730;
}

.sp-slot {
  border-right: 1px solid #1d1122;
  flex-direction: column;
  flex: 1;
  justify-content: flex-start;
  gap: 0;
  padding: 1.4rem 1.4rem 1.2rem;
  transition: background .2s;
  display: flex;
  position: relative;
}

.sp-slot:last-child {
  border-right: none;
}

.sp-slot:hover {
  background: #170e1b;
}

.sp-slot-icon {
  background: color-mix(in srgb, var(--mc, var(--primary)) 11%, transparent);
  border: 1px solid color-mix(in srgb, var(--mc, var(--primary)) 22%, transparent);
  width: 48px;
  height: 48px;
  color: var(--mc, var(--primary));
  border-radius: 10px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  margin-bottom: .85rem;
  transition: background .25s, border-color .25s;
  display: flex;
}

.sp-slot:hover .sp-slot-icon {
  background: color-mix(in srgb, var(--mc, var(--primary)) 18%, transparent);
}

.sp-slot--musician {
  text-align: center;
  align-items: center;
}

.sp-slot--musician .sp-name {
  color: color-mix(in srgb, var(--mc) 42%, #f0f0f0);
}

.sp-slot--musician .sp-role {
  color: color-mix(in srgb, var(--mc) 22%, gray);
  margin-top: .25rem;
}

.sp-req {
  flex-wrap: wrap;
  justify-content: center;
  gap: .28rem;
  margin-top: .65rem;
  display: flex;
}

.sp-req-tag {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .07em;
  color: #575757;
  white-space: nowrap;
  background: #140d17;
  border: 1px solid #231429;
  border-radius: 3px;
  padding: .18rem .5rem;
  font-size: .82rem;
}

.sp-slot--musician .sp-req-tag {
  border-color: color-mix(in srgb, var(--mc) 15%, #201226);
}

.sp-slot--lead {
  background: #130c13;
  border-right-color: #391839;
}

.sp-slot--lead:after {
  content: "";
  background: linear-gradient(90deg, var(--primary), transparent);
  height: 2px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.sp-slot--lead:hover {
  background: #1a0f1a;
}

.sp-slot--drum {
  background: #130c11;
}

.sp-slot--right {
  flex: 0 0 270px;
  max-width: 270px;
  margin-left: auto;
}

.sp-slot--center {
  flex: none;
  max-width: 300px;
  margin: 0 auto;
}

.sp-slot--speaker {
  background: #0d0a10;
}

.sp-slot--sub {
  background: #0b080c;
  flex: 0 0 180px;
  max-width: 180px;
}

.sp-name {
  font-family: var(--font-title-display), sans-serif;
  text-transform: uppercase;
  color: #e6e6e6;
  margin: 0;
  font-size: 1.3rem;
  line-height: 1;
}

.sp-slot--speaker .sp-name, .sp-slot--sub .sp-name {
  color: #925eba;
  font-size: .92rem;
}

.sp-role {
  color: gray;
  margin: 0;
  font-size: .9rem;
  line-height: 1.5;
}

.sp-slot--speaker .sp-role, .sp-slot--sub .sp-role {
  color: #6a4785;
  font-size: .75rem;
}

.sp-axis {
  text-align: center;
  font-family: var(--font-display), sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #383838;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 1.2rem;
  font-size: .82rem;
  display: flex;
}

.sp-axis:before, .sp-axis:after {
  content: "";
  background: linear-gradient(to right, #0000, #242424);
  flex: 1;
  height: 1px;
}

.sp-axis:after {
  background: linear-gradient(to left, #0000, #242424);
}

@media (max-width: 768px) {
  .sp-name {
    font-size: 1.1rem;
  }

  .sp-role {
    font-size: .85rem;
  }

  .sp-detail {
    font-size: .75rem;
  }

  .sp-slot {
    padding: .9rem 1rem;
  }
}

@media (max-width: 620px) {
  .sp-wrap {
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #3b2145 transparent;
    padding: .8rem 0;
    overflow-x: auto;
  }

  .sp-depth {
    min-width: 400px;
    padding: 0 .8rem;
  }

  .sp-zone {
    min-height: 32px;
  }

  .sp-slot {
    padding: .45rem .65rem;
  }

  .sp-slot-icon {
    display: none;
  }

  .sp-name {
    font-size: .82rem;
  }

  .sp-role {
    font-size: .7rem;
  }

  .sp-req {
    display: none;
  }

  .sp-slot--sub {
    flex: 1;
    max-width: none;
  }

  .sp-axis {
    padding: 0 .8rem;
    font-size: .72rem;
  }
}

.ft-lights {
  border: 1px solid #291730;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  display: grid;
}

.ft-light-item {
  background: #0e0a10;
  border-right: 1px solid #231429;
  align-items: flex-start;
  gap: .9rem;
  padding: 1.5rem 1.4rem;
  display: flex;
}

.ft-light-item:last-child {
  border-right: none;
}

.ft-light-icon {
  width: 34px;
  height: 34px;
  color: var(--primary);
  background: #231429;
  border: 1px solid #41244c;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  margin-top: .1rem;
  font-size: 1rem;
  display: flex;
}

.ft-light-name {
  font-family: var(--font-title-display), sans-serif;
  text-transform: uppercase;
  color: #dbdbdb;
  margin: 0 0 .25rem;
  font-size: .95rem;
}

.ft-light-note {
  color: #757575;
  font-size: .9rem;
  line-height: 1.6;
}

.ft-catering {
  border: 1px solid #291730;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1px;
  display: grid;
}

.ft-catering-col {
  background: #0e0a10;
  padding: 1.8rem;
}

.ft-catering-col + .ft-catering-col {
  border-left: 1px solid #201226;
}

.ft-catering-tag {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin: 0 0 .9rem;
  font-size: .82rem;
}

.ft-catering-tag--drinks {
  color: #ad70db;
}

.ft-catering-tag--soft {
  color: #616161;
}

.ft-catering-tag--info {
  color: #525252;
}

.ft-catering-names {
  font-family: var(--font-title-display), sans-serif;
  text-transform: uppercase;
  color: #dbdbdb;
  margin: 0 0 .6rem;
  font-size: 1.15rem;
  line-height: 1.25;
}

.ft-catering-detail {
  color: #707070;
  font-size: .88rem;
  line-height: 1.55;
}

.ft-catering-stat {
  font-family: var(--font-title-display), sans-serif;
  color: #2e2e2e;
  margin: 0 0 .5rem;
  font-size: 2.8rem;
  line-height: 1;
}

.ft-contact {
  border: 1px solid #2f1b37;
  border-top: 2px solid;
  border-image: linear-gradient(90deg, var(--primary), var(--brand-violet)) 1;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 0;
  margin-top: 3.5rem;
  display: grid;
  overflow: hidden;
}

.ft-contact-item {
  border-right: 1px solid #231429;
  padding: 1.8rem 2rem;
}

.ft-contact-item:last-child {
  border-right: none;
}

.ft-contact-k {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #525252;
  margin: 0 0 .5rem;
  font-size: .82rem;
}

.ft-contact-v {
  color: #c7c7c7;
  font-size: .88rem;
  line-height: 1.55;
}

.ft-contact-v a {
  color: var(--primary);
  text-decoration: none;
}

.ft-contact-v a:hover {
  text-decoration: underline;
}

.ft-contact-cta {
  background: #140c17;
  justify-content: center;
  align-items: center;
  padding: 1.8rem 2rem;
  display: flex;
}

.ft-cta-btn {
  font-family: var(--font-display), sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--primary);
  white-space: nowrap;
  background: #2b122b66;
  border: 1px solid #9b279b80;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.3rem;
  font-size: .82rem;
  text-decoration: none;
  transition: border-color .2s, background .2s, color .2s;
  display: inline-flex;
}

.ft-cta-btn:hover {
  border-color: var(--primary);
  color: #f48bf4;
  background: #32153299;
}

@media (max-width: 960px) {
  .ft-contact {
    grid-template-columns: 1fr 1fr;
  }

  .ft-contact-item:nth-child(2) {
    border-right: none;
  }

  .ft-contact-cta {
    border-right: none;
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .ft-lineup {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .ft-hero-title {
    font-size: clamp(3rem, 12vw, 5rem);
  }

  .ft-hero {
    min-height: 45vh;
  }

  .ft-hero-stats-inner {
    grid-template-columns: repeat(3, 1fr);
  }

  .ft-stat {
    padding: 1.1rem 1rem;
  }

  .ft-stat-n {
    font-size: 1.6rem;
  }

  .ft-stat-l {
    font-size: .82rem;
  }

  .ft-lineup-row {
    padding: 1.4rem 1.2rem 1.2rem;
  }

  .ft-lineup-name {
    font-size: 1.3rem;
  }

  .ft-lineup-n {
    font-size: 3rem;
  }

  .sp-slot-icon {
    border-radius: 8px;
    width: 40px;
    height: 40px;
  }

  .sp-slot-icon svg {
    width: 28px;
    height: 28px;
  }

  .sp-name {
    font-size: 1.1rem;
  }

  .sp-role {
    font-size: .82rem;
  }

  .ft-timings {
    grid-template-columns: 1fr 1fr;
  }

  .ft-specs-layout, .ft-drums, .ft-lights {
    grid-template-columns: 1fr;
  }

  .ft-light-item {
    border-bottom: 1px solid #231429;
    border-right: none;
  }

  .ft-light-item:last-child {
    border-bottom: none;
  }

  .ft-catering {
    grid-template-columns: 1fr;
  }

  .ft-sep-num {
    min-width: 3.5rem;
    font-size: 3.5rem;
  }

  .ft-contact {
    grid-template-columns: 1fr;
  }

  .ft-contact-item {
    border-bottom: 1px solid #231429;
    border-right: none;
  }
}

@media (max-width: 560px) {
  .ft-lineup {
    grid-template-columns: repeat(2, 1fr);
  }

  .ft-lineup-row {
    padding: 1.2rem 1rem 1rem;
  }

  .ft-lineup-name {
    font-size: 1.2rem;
  }

  .ft-lineup-instrs {
    font-size: .78rem;
  }

  .ft-hero-stats-inner {
    grid-template-columns: repeat(3, 1fr);
  }

  .ft-stat:nth-child(n+4) {
    border-top: 1px solid #2c1934;
  }

  .ft-crew {
    grid-template-columns: 1fr;
  }

  .ft-timings {
    grid-template-columns: 1fr 1fr;
  }

  .ft-catering {
    grid-template-columns: 1fr;
  }

  .ft-catering-col {
    padding: 1.1rem 1.2rem;
  }

  .ft-catering-col + .ft-catering-col {
    border-top: 1px solid #231429;
    border-left: none;
  }

  .ft-catering-names {
    font-size: .98rem;
  }

  .ft-catering-stat {
    margin-bottom: .3rem;
    font-size: 2rem;
  }
}

@media (max-width: 400px) {
  .ft-lineup {
    grid-template-columns: 1fr;
  }

  .ft-hero-stats-inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .ft-stat:nth-child(n+3) {
    border-top: 1px solid #2c1934;
  }
}

/*# sourceMappingURL=app_src_app_fiche-technique_technique_0vghfmm.css.map*/