/* ============================================================================
   TOKEN2049 ZÜRICH — Swiss layer
   Loaded after the mirrored Webflow stylesheet. Only token overrides + a few
   photographic/legibility touches; the layout stays 1:1 with the original.
   ========================================================================== */

:root {
  /* the whole accent system of the template is driven by the "asia blue" tokens */
  --_primitives---base_asia--blue: #e1000f;         /* Swiss red */
  --_primitives---base_asia--blue-hover: #b3000c;   /* hover */
  --_primitives---base_asia--blue-dull: #ffb4b0;
  --_primitives---colors--primary: #e1000f;

  --ch-red: #e1000f;
  --ch-red-deep: #8f0009;
  --ch-ink: #080b12;
}

/* ---------- thin Swiss-red rule on top of the hero ------------------------- */
.section_hero-header::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--ch-red);
  z-index: 6;
  pointer-events: none;
}

/* ---------- hero: Zürich panorama needs a little help for legibility ------- */
/* the background wrapper used to be sized by its <video>; with the film gone it
   is pinned to the section instead of collapsing to 0×0 */
.section_hero-header .hero-header_background-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  overflow: hidden;
}

.section_hero-header .hero-header_fallback-image {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  z-index: 0 !important;
}

/* the template only reveals this layer when its hero film cannot autoplay —
   the Zürich edition ships without a film, so the still is always shown */
.section_hero-header img.hero-header_fallback-image {
  display: block !important;
  filter: brightness(0.72) saturate(0.95) contrast(1.04);
  animation: zh-hero-drift 28s ease-in-out infinite alternate;
  will-change: transform;
}

@keyframes zh-hero-drift {
  from { transform: scale(1.02); }
  to   { transform: scale(1.09); }
}

.section_hero-header .hero-header_background-wrapper::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(6, 9, 16, 0.88) 0%, rgba(6, 9, 16, 0.55) 40%, rgba(6, 9, 16, 0.06) 100%),
    linear-gradient(180deg, rgba(6, 9, 16, 0.72) 0%, rgba(6, 9, 16, 0.05) 28%, rgba(6, 9, 16, 0.55) 78%, rgba(6, 9, 16, 0.92) 100%);
}

@media (prefers-reduced-motion: reduce) {
  .section_hero-header .hero-header_fallback-image { animation: none; }
}

/* ---------- Swiss cross in the hero badge --------------------------------- */
.ui-tag .ui-tag-icon {
  content: url("../zurich/swiss-flag.svg");
  border-radius: 1px;
}

/* ---------- the bento card lost its film — keep the editorial B&W look ----- */
.gallery-bento_video video {
  filter: grayscale(1) contrast(1.08) brightness(0.92);
}
.gallery-play-button,
.gallery-video-overlay {
  display: none !important;
}

/* ---------- red gradient text where the template used the blue one --------- */
.text--gradient,
.clipped {
  background-image: linear-gradient(180deg, #e1000f 0%, #ff6f63 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

/* ---------- small Swiss signatures ---------------------------------------- */
.footer-v2_copyright::before {
  content: "ZÜRICH · SWITZERLAND";
  display: block;
  margin-bottom: 0.35rem;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.14em;
  font-size: 0.72rem;
}

.text-color-blue-2-2 {
  color: var(--ch-red) !important;
}

.newsletter_form-field::placeholder {
  letter-spacing: 0.12em;
}
