/* ==========================================================================
   EL BADR Industries — Ceramic Industry catalog page (templates/ceramic.html)
   Built on the tokens in main.css.

   The banner and the two contrast bands (headline figures, films) are painted
   from the --cer-* tokens below rather than from fixed colours, so they follow
   the light/dark toggle like the rest of the site: light values here, dark ones
   in the [data-theme="dark"] block that follows. Only the film cards themselves
   stay dark in both themes — they are video posters.
   ========================================================================== */

.cer {
  --cer-night: #0d0d11;
  --cer-night-2: #17171e;
  --cer-ring: var(--white);   /* halo colour behind the timeline dots */

  /* --- banner ---------------------------------------------------------- */
  --cer-hero-bg: #ececf0;
  /* Legibility veil: heaviest behind the headline, thinning across the photo
     wall on the far side — so the angle mirrors on the Arabic page, where the
     headline sits on the right. Near-solid on phones, where the text takes the
     whole width. --cer-veil-rgb is the paint; the theme flips it. */
  --cer-veil-rgb: 246, 246, 247;
  --cer-veil-angle: 102deg;
  --cer-veil-narrow: linear-gradient(180deg,
    rgba(var(--cer-veil-rgb), 0.9) 0%, rgba(var(--cer-veil-rgb), 0.66) 40%,
    rgba(var(--cer-veil-rgb), 0.95) 100%);
  --cer-tile-opacity: 0.5;
  --cer-tile-filter: grayscale(0.5) contrast(0.9) brightness(1.1);
  --cer-glow-opacity: 0.12;
  --cer-sheen: linear-gradient(100deg,
    var(--red-dark) 0%, var(--red-dark) 26%, #e5322c 44%, #ff7a72 50%, #e5322c 56%,
    var(--red-dark) 74%, var(--red-dark) 100%);

  /* --- text and trim on the banner and the contrast bands --------------- */
  --cer-on: var(--ink);       /* headings, figures */
  --cer-on-2: var(--text);    /* body copy */
  --cer-on-3: var(--muted);   /* eyebrows, captions, meta */
  --cer-hair: rgba(25, 25, 28, 0.12);      /* rules and dividers */
  --cer-glass: rgba(255, 255, 255, 0.6);   /* kicker pill */
  --cer-glass-2: rgba(255, 255, 255, 0.86); /* keyword ribbon, over photos */
  --cer-grid: rgba(25, 25, 28, 0.05);      /* engineering grid pattern */

  /* --- contrast bands -------------------------------------------------- */
  --cer-stats-bg: var(--paper);
  --cer-films-bg: linear-gradient(180deg, var(--paper) 0%, #e9e9ee 52%, var(--paper) 100%);
}

[dir="rtl"] .cer { --cer-veil-angle: 258deg; }

[data-theme="dark"] .cer {
  --cer-hero-bg: var(--cer-night);
  --cer-veil-rgb: 9, 9, 12;
  --cer-tile-opacity: 0.5;
  --cer-tile-filter: grayscale(0.4) contrast(1.06);
  --cer-glow-opacity: 0.42;
  --cer-sheen: linear-gradient(100deg,
    var(--red) 0%, var(--red) 26%, #ffb3ac 44%, #ffffff 50%, #ffb3ac 56%,
    var(--red) 74%, var(--red) 100%);

  --cer-on: #fff;
  --cer-on-2: rgba(255, 255, 255, 0.82);
  --cer-on-3: rgba(255, 255, 255, 0.62);
  --cer-hair: rgba(255, 255, 255, 0.13);
  --cer-glass: rgba(255, 255, 255, 0.07);
  --cer-glass-2: rgba(9, 9, 12, 0.6);
  --cer-grid: rgba(255, 255, 255, 0.045);

  --cer-stats-bg: var(--cer-night-2);
  --cer-films-bg: linear-gradient(180deg, var(--cer-night) 0%, var(--cer-night-2) 52%, var(--cer-night) 100%);
}

.cer-sec { position: relative; }
.cer-sec--paper { background: var(--paper); --cer-ring: var(--paper); }

.section-head--invert h2 { color: var(--cer-on); }
.section-head--invert p { color: var(--cer-on-3); }

/* Ghost buttons sit on the banner and inside the films band, both of which are
   light in light mode — same treatment the homepage banner uses. */
.cer .btn--ghost { border-color: rgba(25, 25, 28, 0.5); color: var(--ink); background: rgba(25, 25, 28, 0.03); }
.cer .btn--ghost:hover { border-color: var(--ink); color: var(--ink); background: rgba(25, 25, 28, 0.08); }
[data-theme="dark"] .cer .btn--ghost { border-color: rgba(255, 255, 255, 0.55); color: #fff; background: rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .cer .btn--ghost:hover { border-color: #fff; color: #fff; background: rgba(255, 255, 255, 0.12); }

/* --------------------------------------------------------------------------
   Hero — a wall of catalog photos that tiles itself into place
   -------------------------------------------------------------------------- */
.cer-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: min(100vh, 940px);
  padding: calc(var(--header-h) + clamp(2rem, 6vw, 4rem)) 0 clamp(4.5rem, 9vw, 6rem);
  overflow: hidden;
  background: var(--cer-hero-bg);
  color: var(--cer-on-2);
}

.cer-hero__wall {
  position: absolute;
  inset: -3%;
  z-index: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(clamp(104px, 15vw, 226px), 1fr));
  grid-auto-rows: clamp(104px, 15vw, 226px);
  gap: 5px;
  animation: cer-drift 40s ease-in-out infinite alternate;
}
.cer-tile {
  background-size: cover;
  background-position: center;
  opacity: 0;
  filter: var(--cer-tile-filter);
  animation: cer-tile-in 1s cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
  animation-delay: calc(var(--i) * 55ms);
}
@keyframes cer-tile-in {
  from { opacity: 0; transform: scale(0.84) translateY(16px); }
  to   { opacity: var(--cer-tile-opacity); transform: none; }
}
@keyframes cer-drift {
  from { transform: translate3d(0, 0, 0) scale(1.02); }
  to   { transform: translate3d(-2.5%, -3%, 0) scale(1.09); }
}

/* Legibility veil — see --cer-veil-rgb / --cer-veil-angle above. */
.cer-hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(var(--cer-veil-angle),
    rgba(var(--cer-veil-rgb), 0.95) 0%, rgba(var(--cer-veil-rgb), 0.88) 34%,
    rgba(var(--cer-veil-rgb), 0.46) 68%, rgba(var(--cer-veil-rgb), 0.78) 100%);
}
.cer-hero__glow {
  position: absolute;
  z-index: 1;
  inset-inline-end: -18%;
  bottom: -32%;
  width: min(78vw, 900px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, var(--red) 0%, transparent 62%);
  opacity: var(--cer-glow-opacity);
  animation: cer-kiln 8s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes cer-kiln {
  from { opacity: calc(var(--cer-glow-opacity) * 0.55); transform: scale(0.94); }
  to   { opacity: var(--cer-glow-opacity); transform: scale(1.06); }
}

.cer-hero__inner { position: relative; z-index: 2; }
.cer-crumbs { color: var(--cer-on-3); margin-bottom: 1.4rem; }
.cer-crumbs a { color: var(--cer-on-2); }
.cer-crumbs span[aria-current] { color: var(--cer-on); }

.cer-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 1.3rem;
  padding: 0.5rem 1.05rem;
  border: 1px solid var(--cer-hair);
  border-radius: 999px;
  background: var(--cer-glass);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.76rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cer-on);
  animation: cer-rise 0.8s cubic-bezier(0.2, 0.75, 0.15, 1) both;
}
.cer-kicker i {
  flex: none;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--red);
  animation: cer-ping 2.6s ease-out infinite;
}

.cer-title {
  margin: 0 0 1.1rem;
  max-width: 20ch;
  color: var(--cer-on);
  font-size: clamp(2.35rem, 6.6vw, 5rem);
  line-height: 1.02;
  letter-spacing: -0.025em;
}
.cer-title__l {
  display: block;
  animation: cer-rise 1s cubic-bezier(0.2, 0.75, 0.15, 1) both;
  animation-delay: calc(0.12s + var(--d) * 0.16s);
}
/* Glaze sheen sweeping across the word "ceramic" — the highlight runs to white
   on the dark banner and to a pale red on the light one, where white would drop
   the word out of the page (see --cer-sheen). */
.cer-title em {
  font-style: normal;
  background-image: var(--cer-sheen);
  background-size: 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: cer-sheen 7s linear infinite;
}
@keyframes cer-sheen {
  from { background-position: 200% 0; }
  to   { background-position: -100% 0; }
}

.cer-lede {
  max-width: 54ch;
  margin: 0 0 2rem;
  color: var(--cer-on-2);
  font-size: clamp(1rem, 1.4vw, 1.16rem);
  animation: cer-rise 1s cubic-bezier(0.2, 0.75, 0.15, 1) 0.44s both;
}
.cer-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  animation: cer-rise 1s cubic-bezier(0.2, 0.75, 0.15, 1) 0.56s both;
}
/* Keep each label on one line — wrapping turns the pills into tall blobs. */
.cer-hero__cta .btn { white-space: nowrap; }
.cer-hero__cta .btn svg { flex: none; width: 19px; height: 19px; }
.cer-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.6rem;
  margin-top: 2rem;
  animation: cer-rise 1s cubic-bezier(0.2, 0.75, 0.15, 1) 0.68s both;
}
.cer-hero__meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-head);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cer-on-3);
}
.cer-hero__meta span::before {
  content: "";
  width: 16px; height: 2px;
  background: var(--red);
}

@keyframes cer-rise {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: none; }
}
@keyframes cer-ping {
  0%   { box-shadow: 0 0 0 0 rgba(210, 14, 16, 0.55); }
  70%  { box-shadow: 0 0 0 14px rgba(210, 14, 16, 0); }
  100% { box-shadow: 0 0 0 0 rgba(210, 14, 16, 0); }
}

@media (max-width: 760px) {
  .cer-hero__veil { background: var(--cer-veil-narrow); }
  .cer-title { max-width: none; }
}
@media (max-width: 560px) {
  /* Match the rest of the site: full-width stacked CTAs on a phone. */
  .cer-hero__cta { flex-direction: column; align-items: stretch; gap: 0.7rem; }
  .cer-hero__cta .btn { width: 100%; justify-content: center; }
}

/* ---- scrolling keyword ribbon along the bottom of the hero -------------- */
.cer-marquee {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  z-index: 3;
  padding: 0.8rem 0;
  overflow: hidden;
  border-top: 1px solid var(--cer-hair);
  background: var(--cer-glass-2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.cer-marquee__track {
  display: flex;
  width: max-content;
  animation: cer-marquee 42s linear infinite;
}
.cer-marquee__item {
  display: inline-flex;
  align-items: center;
  gap: 2.4rem;
  padding-inline-end: 2.4rem;
  white-space: nowrap;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cer-on-3);
}
.cer-marquee__item::after {
  content: "";
  flex: none;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--red);
}
@keyframes cer-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* --------------------------------------------------------------------------
   Headline figures
   -------------------------------------------------------------------------- */
.cer-stats {
  position: relative;
  overflow: hidden;
  padding: clamp(2.6rem, 5vw, 3.8rem) 0;
  background: var(--cer-stats-bg);
  color: var(--cer-on-2);
  /* In light mode the band and the banner above it are both pale, so the band
     is fenced off the way .trustbar is on the homepage. */
  border-block: 1px solid var(--line);
}
[data-theme="dark"] .cer-stats { border-block-color: rgba(255, 255, 255, 0.07); }
.cer-stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--cer-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--cer-grid) 1px, transparent 1px);
  background-size: 38px 38px;
  -webkit-mask-image: radial-gradient(120% 130% at 50% 0%, #000, transparent 72%);
  mask-image: radial-gradient(120% 130% at 50% 0%, #000, transparent 72%);
}
.cer-stats__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1.6rem 1rem;
}
.cer-stat { text-align: center; transition-delay: calc(var(--i) * 90ms); }
.cer-stat__num {
  display: block;
  font-family: var(--font-head);
  font-weight: 800;
  font-size: clamp(2.2rem, 5vw, 3.3rem);
  line-height: 1;
  color: var(--cer-on);
}
.cer-stat__label {
  display: block;
  margin-top: 0.55rem;
  font-size: 0.84rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cer-on-3);
}
.cer-stat + .cer-stat { position: relative; }
@media (min-width: 780px) {
  .cer-stat + .cer-stat::before {
    content: "";
    position: absolute;
    inset-inline-start: -0.5rem;
    top: 12%; bottom: 12%;
    width: 1px;
    background: var(--cer-hair);
  }
}

/* --------------------------------------------------------------------------
   The production line — a timeline that fills as you scroll it
   -------------------------------------------------------------------------- */
.cer-line {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: clamp(1.4rem, 3vw, 2.2rem);
}
.cer-line__rail {
  position: absolute;
  z-index: 0;
  top: 0; bottom: 0;
  inset-inline-start: 26px;
  width: 2px;
  background: var(--line);
  border-radius: 2px;
  overflow: hidden;
}
.cer-line__fill {
  position: absolute;
  inset: 0 0 auto 0;
  height: 0;
  background: linear-gradient(180deg, var(--red), var(--red-dark));
  transition: height 0.35s linear;
}

.cer-stage {
  position: relative;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  transition-delay: calc(var(--i, 0) * 60ms);
}
.cer-stage__dot {
  position: relative;
  z-index: 1;
  width: 54px; height: 54px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--red);
  color: #fff;
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 0.95rem;
  box-shadow: 0 0 0 6px var(--cer-ring), 0 10px 24px rgba(210, 14, 16, 0.3);
}
.cer-stage__card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-inline-start: 3px solid transparent;
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  box-shadow: var(--shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.cer-stage__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-inline-start-color: var(--red);
}
.cer-stage__card h3 { font-size: 1.16rem; margin: 0 0 0.35rem; }
.cer-stage__card p { color: var(--muted); font-size: 0.96rem; margin: 0; }
.cer-stage__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.7rem;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.cer-stage__link::after { content: "↓"; transition: transform 0.2s ease; }
.cer-stage__link:hover::after { transform: translateY(3px); }

/* Desktop: centre rail with the cards alternating around it */
@media (min-width: 920px) {
  .cer-line { gap: 0.4rem; }
  .cer-line__rail { inset-inline-start: calc(50% - 1px); }
  .cer-stage { grid-template-columns: minmax(0, 1fr) 96px minmax(0, 1fr); gap: 0; }
  .cer-stage__dot { grid-column: 2; justify-self: center; }
  .cer-stage__card { grid-column: 3; }
  .cer-stage:nth-of-type(even) .cer-stage__card { grid-column: 1; text-align: end; }
  .cer-stage:nth-of-type(even) .cer-stage__card {
    border-inline-start-width: 1px;
    border-inline-end: 3px solid transparent;
  }
  .cer-stage:nth-of-type(even) .cer-stage__card:hover {
    border-inline-start-color: var(--line);
    border-inline-end-color: var(--red);
  }
  /* alternate slide-in directions */
  .cer-stage.reveal-pending .cer-stage__card { transform: translateX(30px); }
  .cer-stage:nth-of-type(even).reveal-pending .cer-stage__card { transform: translateX(-30px); }
}

/* --------------------------------------------------------------------------
   Capability cloud — every part sized by how much of it we can show
   -------------------------------------------------------------------------- */
.cer-sec--cloud { overflow: hidden; }
.cer-cloud {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.35em 0.9em;
  max-width: 1000px;
  margin-inline: auto;
  text-align: center;
}
.cer-cloud__w {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-family: var(--font-head);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--cloud-c, var(--ink));
  transition: color 0.2s ease, transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  animation: cer-cloud-in 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  animation-delay: calc(var(--i) * 14ms);
}
@keyframes cer-cloud-in {
  from { opacity: 0; transform: scale(0.86); }
  to   { opacity: 1; transform: none; }
}
.cer-cloud__w:hover,
.cer-cloud__w:focus-visible { color: var(--red); transform: scale(1.08); }

/* three sizes: photographed / headline / everything else */
.cer-cloud__w--3 { font-size: clamp(1.5rem, 3.4vw, 2.9rem); font-weight: 800; }
.cer-cloud__w--2 { font-size: clamp(1.05rem, 1.9vw, 1.65rem); }
.cer-cloud__w--1 { font-size: clamp(0.8rem, 1.15vw, 1.02rem); font-weight: 600; }

/* five tones cycled across the cloud so neighbours never match */
.cer-cloud__w[style*="--t:0"] { --cloud-c: var(--red); }
.cer-cloud__w[style*="--t:1"] { --cloud-c: var(--ink); }
.cer-cloud__w[style*="--t:2"] { --cloud-c: var(--muted); }
.cer-cloud__w[style*="--t:3"] { --cloud-c: var(--red-dark); }
.cer-cloud__w[style*="--t:4"] { --cloud-c: var(--gray); }
[data-theme="dark"] .cer-cloud__w[style*="--t:2"] { --cloud-c: #8f8f9a; }
[data-theme="dark"] .cer-cloud__w[style*="--t:4"] { --cloud-c: #a9a9b4; }
[data-theme="dark"] .cer-cloud__w[style*="--t:3"] { --cloud-c: #ef5a52; }

@media (prefers-reduced-motion: reduce) {
  .cer-cloud__w { animation: none; }
}

/* --------------------------------------------------------------------------
   Parts index — searchable list of everything we can machine or fabricate
   -------------------------------------------------------------------------- */
.cer-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  max-width: 620px;
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  padding: 0.2rem 0.4rem 0.2rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  box-shadow: var(--shadow);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.cer-search:focus-within { border-color: var(--red); box-shadow: var(--shadow-lg); }
.cer-search > svg { flex: none; width: 20px; height: 20px; color: var(--muted); }
.cer-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: none;
  padding: 0.85rem 0;
  font: inherit;
  color: var(--ink);
  outline: none;
}
.cer-search input::placeholder { color: var(--muted); }
.cer-search input::-webkit-search-cancel-button { filter: grayscale(1); }
.cer-search__count {
  flex: none;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  background: var(--paper);
  font-family: var(--font-head);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--muted);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.cer-search__count.is-on { opacity: 1; background: var(--red); color: #fff; }
[data-theme="dark"] .cer-search__count { background: rgba(255, 255, 255, 0.08); }

.cer-parts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.2rem;
  align-items: start;
}
.cer-part {
  padding: 1.3rem 1.4rem 1.4rem;
  border: 1px solid var(--line);
  border-top: 3px solid var(--red);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease, opacity 0.25s ease;
  transition-delay: calc(var(--i) * 45ms);
}
.cer-part:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.cer-part.is-out { display: none; }
.cer-part h3 { font-size: 1.02rem; margin: 0 0 0.85rem; }
.cer-part ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.cer-part li {
  position: relative;
  padding-inline-start: 1.15rem;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--text);
}
.cer-part li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0.55em;
  width: 6px; height: 6px;
  border-radius: 50%;
  border: 1px solid var(--muted);
}
.cer-part li.is-shot::before { background: var(--red); border-color: var(--red); }
.cer-part li.is-out { display: none; }
.cer-part li mark { background: var(--red-soft); color: var(--red-dark); border-radius: 3px; padding: 0 1px; }
[data-theme="dark"] .cer-part li mark { background: rgba(210, 14, 16, 0.28); color: #ffb3ac; }

.cer-parts__empty { grid-column: 1 / -1; text-align: center; color: var(--muted); }
.cer-parts__key {
  margin-top: 1.4rem;
  text-align: center;
  font-size: 0.84rem;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.cer-parts__key b { width: 8px; height: 8px; border-radius: 50%; background: var(--red); }

/* --------------------------------------------------------------------------
   Catalog: filter chips + photo mosaic
   -------------------------------------------------------------------------- */
.cer-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem;
  margin-bottom: clamp(1.6rem, 3vw, 2.4rem);
}
.cer-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text);
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.cer-chip:hover { border-color: var(--red); color: var(--red); transform: translateY(-2px); }
.cer-chip span {
  font-size: 0.72rem;
  padding: 0.1rem 0.42rem;
  border-radius: 999px;
  background: var(--paper);
  color: var(--muted);
}
.cer-chip.is-active { background: var(--red); border-color: var(--red); color: #fff; }
.cer-chip.is-active:hover { color: #fff; }
.cer-chip.is-active span { background: rgba(255, 255, 255, 0.22); color: #fff; }
[data-theme="dark"] .cer-chip span { background: rgba(255, 255, 255, 0.09); }

.cer-mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 200px;
  grid-auto-flow: dense;
  gap: 0.9rem;
}
@media (min-width: 1320px) { .cer-mosaic { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 920px) { .cer-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 168px; } }
@media (max-width: 620px) { .cer-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 152px; gap: 0.6rem; } }
@media (max-width: 400px) { .cer-mosaic { grid-auto-rows: 124px; } }

.cer-shot {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 14px;
  background: var(--paper);
  box-shadow: var(--shadow);
  transition: box-shadow 0.35s ease, transform 0.35s ease;
}
.cer-shot:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
.cer-shot--wide { grid-column: span 2; }
.cer-shot--tall { grid-row: span 2; }
.cer-shot--big  { grid-column: span 2; grid-row: span 2; }

.cer-shot img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.cer-shot:hover img { transform: scale(1.07); }
.cer-shot__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 11, 14, 0) 34%, rgba(11, 11, 14, 0.85) 100%);
  transition: background 0.4s ease;
}
.cer-shot:hover .cer-shot__scrim {
  background: linear-gradient(180deg, rgba(11, 11, 14, 0.1) 0%, rgba(165, 11, 13, 0.34) 46%, rgba(11, 11, 14, 0.92) 100%);
}
.cer-shot__body {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  display: grid;
  gap: 0.22rem;
  padding: 0.95rem 1rem;
  color: #fff;
}
.cer-shot__title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.02rem;
  line-height: 1.18;
}
.cer-shot__text {
  font-size: 0.82rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.82);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease;
}
.cer-shot:hover .cer-shot__text { max-height: 3.2em; opacity: 1; }
/* Touch devices never hover — show the caption outright instead. */
@media (hover: none) {
  .cer-shot__text { max-height: 3.2em; opacity: 1; }
}
@media (max-width: 620px) {
  .cer-shot__body { padding: 0.7rem 0.75rem; }
  .cer-shot__title { font-size: 0.86rem; }
  .cer-shot__text { font-size: 0.74rem; -webkit-line-clamp: 2; }
}
@media (max-width: 400px) {
  .cer-shot__text { display: none; }
}

.cer-shot__zoom {
  position: absolute;
  top: 0.7rem;
  inset-inline-end: 0.7rem;
  width: 36px; height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.32);
  background: rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.cer-shot__zoom svg { width: 16px; height: 16px; }
.cer-shot:hover .cer-shot__zoom, .cer-shot:focus-visible .cer-shot__zoom { opacity: 1; transform: none; }

/* filtering + staggered entrance (ceramic.js arms only tiles below the fold,
   so the mosaic is complete without JS) */
.cer-shot.is-out { display: none; }
.cer-shot.is-armed { opacity: 0; }
.cer-shot.is-fresh { animation: cer-pop 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
@keyframes cer-pop {
  from { opacity: 0; transform: scale(0.9) translateY(14px); }
  to   { opacity: 1; transform: none; }
}
.cer-mosaic__empty { grid-column: 1 / -1; text-align: center; color: var(--muted); }

/* --------------------------------------------------------------------------
   Download-the-brochure band
   -------------------------------------------------------------------------- */
.cer-pdf {
  margin-top: clamp(2.4rem, 5vw, 3.6rem);
  padding: clamp(1.6rem, 3vw, 2.4rem);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1.2rem, 3vw, 2.4rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.cer-pdf__copy h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); margin: 0 0 0.4rem; }
.cer-pdf__copy p { color: var(--muted); font-size: 0.95rem; margin: 0; max-width: 58ch; }
.cer-pdf .eyebrow { margin-bottom: 0.4rem; }

/* a small stack of paper that fans out on hover */
.cer-pdf__doc { position: relative; width: 74px; height: 96px; flex: none; }
.cer-pdf__sheet {
  position: absolute;
  inset: 0;
  border-radius: 6px;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: 0 6px 18px rgba(25, 25, 28, 0.12);
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.cer-pdf__sheet:nth-child(1) { transform: rotate(-7deg); }
.cer-pdf__sheet:nth-child(2) { transform: rotate(4deg); }
.cer-pdf__sheet:nth-child(3) {
  display: grid;
  place-items: center;
  background: var(--red);
  border-color: var(--red);
}
.cer-pdf__sheet b {
  font-family: var(--font-head);
  font-size: 0.9rem;
  letter-spacing: 0.14em;
  color: #fff;
}
.cer-pdf:hover .cer-pdf__sheet:nth-child(1) { transform: rotate(-13deg) translateY(-4px); }
.cer-pdf:hover .cer-pdf__sheet:nth-child(2) { transform: rotate(9deg) translateY(-2px); }
.cer-pdf:hover .cer-pdf__sheet:nth-child(3) { transform: translateY(-5px); }

.cer-dl svg { width: 18px; height: 18px; }

@media (max-width: 820px) {
  .cer-pdf { grid-template-columns: auto minmax(0, 1fr); text-align: start; }
  .cer-pdf .btn { grid-column: 1 / -1; justify-content: center; }
}

/* --------------------------------------------------------------------------
   Films & reels — click-to-load Facebook players
   -------------------------------------------------------------------------- */
.cer-films {
  position: relative;
  overflow: hidden;
  padding: clamp(4rem, 8vw, 6.5rem) 0;
  background: var(--cer-films-bg);
  color: var(--cer-on-2);
  border-block: 1px solid var(--line);
}
[data-theme="dark"] .cer-films { border-block-color: rgba(255, 255, 255, 0.07); }
.cer-films .container { position: relative; z-index: 1; }
.cer-films::before {
  content: "";
  position: absolute;
  inset: -20%;
  background-image:
    linear-gradient(var(--cer-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--cer-grid) 1px, transparent 1px);
  background-size: 44px 44px;
  animation: cer-pan 30s linear infinite;
}
@keyframes cer-pan {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(44px, 44px, 0); }
}

.cer-films__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.9rem, 2vw, 1.4rem);
}
.cer-film { margin: 0; transition-delay: calc(var(--i) * 90ms); }
.cer-film--lead { grid-column: 1 / -1; }
@media (max-width: 760px) { .cer-films__grid { grid-template-columns: minmax(0, 1fr); } }

/* The card itself stays dark in both themes: it is a video poster, and the
   Facebook player that replaces it on click is dark whatever the page is. */
.cer-film__frame {
  position: relative;
  aspect-ratio: 560 / 314;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: #08080b;
  box-shadow: var(--shadow-lg);
}
[data-theme="dark"] .cer-film__frame {
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 26px 60px rgba(0, 0, 0, 0.5);
}
/* The player itself, written in by ceramic.js when the card is clicked. */
.cer-film__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 1; }

/* The card as it ships: a poster that plays the video in place on click, and
   links to Facebook without JS or where the plugin is blocked. It is not a
   fallback layer behind the player — a blocked third-party iframe still paints
   an opaque "page blocked" panel over anything underneath it — so it is
   removed the moment the player goes in. */
.cer-film__under {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 0.8rem;
  padding: clamp(1rem, 3vw, 2rem);
  text-align: center;
  color: #fff;
  background-image:
    linear-gradient(150deg, rgba(22, 22, 28, 0.86) 0%, rgba(9, 9, 13, 0.94) 100%),
    radial-gradient(130% 130% at 22% -10%, var(--red) 0%, transparent 58%);
}
.cer-film__frame.is-playing .cer-film__under,
.cer-film__frame.is-playing .cer-film__fb,
.cer-film__frame.is-playing .cer-film__poster { display: none; }
/* Optional artwork, when a video carries a poster: sits under the gradient. */
.cer-film__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cer-film__frame:has(.cer-film__poster) .cer-film__under {
  background-image: linear-gradient(160deg, rgba(12, 12, 16, 0.34) 0%, rgba(8, 8, 11, 0.72) 100%);
}
.cer-film__under:hover .cer-film__play,
.cer-film__under:focus-visible .cer-film__play { transform: scale(1.08); }
.cer-film__under:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.cer-film__play {
  transition: transform 0.22s ease;
  width: clamp(52px, 7vw, 70px);
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--red);
  color: #fff;
  animation: cer-ping 2.8s ease-out infinite;
}
.cer-film__play svg { width: 42%; height: 42%; margin-inline-start: 8%; }
.cer-film__under-s {
  font-family: var(--font-head);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 999px;
  padding: 0.34rem 0.85rem;
}

/* The play button plays the film here on the page, so Facebook keeps its own
   way out: a chip in the corner of the poster, above the full-card link. */
.cer-film__fb {
  position: absolute;
  z-index: 3;
  inset-block-start: 0.7rem;
  inset-inline-end: 0.7rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.36rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(10, 10, 14, 0.55);
  backdrop-filter: blur(6px);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.cer-film__fb .ico { display: inline-flex; }
.cer-film__fb .ico svg { width: 14px; height: 14px; }
.cer-film__fb:hover,
.cer-film__fb:focus-visible { background: var(--red); border-color: var(--red); color: #fff; }
.cer-film__fb:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
/* Narrow cards (reels, phones) keep the icon only — the caption below still
   spells out "open on Facebook". */
@media (max-width: 560px) { .cer-film__fb { font-size: 0; gap: 0; padding: 0.4rem; } }
.cer-reel .cer-film__fb { font-size: 0; gap: 0; padding: 0.4rem; }

.cer-film__cap {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem 0.2rem 0;
}
.cer-film__cap strong {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  color: var(--cer-on);
}
.cer-film__cap > span { font-size: 0.88rem; color: var(--cer-on-3); }
.cer-film__cap a {
  justify-self: start;
  margin-top: 0.35rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cer-on-2);
}
.cer-film__cap a::after { content: "↗"; transition: transform 0.2s ease; }
.cer-film__cap a:hover { color: var(--red); }
[data-theme="dark"] .cer-film__cap a:hover { color: #fff; }
.cer-film__cap a:hover::after { transform: translate(2px, -2px); }
.cer-film--lead .cer-film__cap strong { font-size: clamp(1.15rem, 2.2vw, 1.6rem); }

.cer-reels__head {
  margin: clamp(2.4rem, 5vw, 3.4rem) 0 1.2rem;
  color: var(--cer-on);
  font-size: 1.1rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 0.9rem;
}
.cer-reels__head::after { content: ""; flex: 1; height: 1px; background: var(--cer-hair); }
.cer-reels {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 300px);
  justify-content: center;
  gap: clamp(0.9rem, 2vw, 1.4rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 0.5rem;
  scrollbar-width: thin;
}
.cer-reel { margin: 0; scroll-snap-align: center; transition-delay: calc(var(--i) * 90ms); }
.cer-reel .cer-film__frame { aspect-ratio: 267 / 476; }
@media (max-width: 620px) {
  .cer-reels { grid-auto-columns: 76%; justify-content: start; }
}

.cer-films__note { margin: clamp(2rem, 4vw, 3rem) 0 0; text-align: center; }

/* --------------------------------------------------------------------------
   Fairs & visits
   -------------------------------------------------------------------------- */
.cer-events { display: grid; gap: clamp(2.4rem, 5vw, 4rem); }
.cer-ev {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: clamp(1.4rem, 3vw, 2.8rem);
  align-items: center;
}
.cer-ev:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
.cer-ev:nth-child(even) .cer-ev__media { order: 2; }

.cer-ev__media {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--shadow-lg);
  transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.cer-ev__media img { width: 100%; height: auto; transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.cer-ev__media:hover img { transform: scale(1.04); }
.cer-ev__zoom {
  position: absolute;
  bottom: 0.9rem;
  inset-inline-end: 0.9rem;
  width: 40px; height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(12, 12, 15, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.cer-ev__zoom svg { width: 17px; height: 17px; }
.cer-ev__media:hover .cer-ev__zoom,
.cer-ev__media:focus-visible .cer-ev__zoom { opacity: 1; transform: none; }
@media (hover: none) { .cer-ev__zoom { opacity: 1; transform: none; } }

.cer-ev__place {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.76rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--red);
}
.cer-ev__place::before { content: ""; width: 22px; height: 2px; background: var(--red); }
.cer-ev__copy h3 { font-size: clamp(1.5rem, 3vw, 2.1rem); margin: 0.7rem 0 0.6rem; }
.cer-ev__copy p { color: var(--muted); margin: 0; }

@media (min-width: 860px) {
  .cer-ev.reveal-pending .cer-ev__media { transform: translateX(-34px); }
  .cer-ev:nth-child(even).reveal-pending .cer-ev__media { transform: translateX(34px); }
}
@media (max-width: 859px) {
  .cer-ev, .cer-ev:nth-child(even) { grid-template-columns: minmax(0, 1fr); }
  .cer-ev:nth-child(even) .cer-ev__media { order: 0; }
}

/* --------------------------------------------------------------------------
   Ceramic companies — a wall of glazed logo tiles
   -------------------------------------------------------------------------- */
.cer-logos {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 0.85rem;
}
@media (max-width: 480px) { .cer-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.cer-logo {
  position: relative;
  overflow: hidden;
  display: grid;
  justify-items: center;
  gap: 0.6rem;
  padding: 1.1rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  transition-delay: calc(var(--i) * 35ms);
}
.cer-logo:hover { transform: translateY(-5px); border-color: var(--red); box-shadow: var(--shadow-lg); }
.cer-logo img { width: 88px; height: 88px; object-fit: contain; }
[data-theme="dark"] .cer-logo img { background: #fff; border-radius: 8px; padding: 4px; }
.cer-logo__name { font-size: 0.78rem; line-height: 1.35; color: var(--muted); }
.cer-logo__sheen {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(112deg, transparent 38%, rgba(255, 255, 255, 0.5) 50%, transparent 62%);
  transform: translateX(-130%);
  transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.cer-logo:hover .cer-logo__sheen { transform: translateX(130%); }

/* --------------------------------------------------------------------------
   Lightbox (this page only — main.js binds the generic .gallery one)
   -------------------------------------------------------------------------- */
.cer-lb {
  position: fixed;
  inset: 0;
  z-index: 95;
  display: none;
  place-items: center;
  padding: clamp(0.8rem, 3vw, 2.2rem);
  background: rgba(7, 7, 10, 0.96);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.cer-lb.is-open { display: grid; }
.cer-lb__stage { display: grid; justify-items: center; gap: 1rem; max-width: 100%; }
.cer-lb__img {
  max-width: min(1280px, 100%);
  max-height: 74vh;
  width: auto;
  border-radius: 10px;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.6);
  animation: cer-lb-in 0.32s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes cer-lb-in {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: none; }
}
.cer-lb__cap { max-width: 68ch; text-align: center; color: rgba(255, 255, 255, 0.72); }
.cer-lb__cap strong {
  display: block;
  margin-bottom: 0.25rem;
  font-family: var(--font-head);
  font-size: 1.12rem;
  color: #fff;
}
.cer-lb__cap span { font-size: 0.92rem; }
.cer-lb__count {
  display: block;
  margin-top: 0.6rem;
  font-family: var(--font-head);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.5);
}
.cer-lb button {
  position: absolute;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.09);
  color: #fff;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.cer-lb button:hover { background: var(--red); border-color: var(--red); transform: scale(1.06); }
.cer-lb__close { top: clamp(0.7rem, 2vw, 1.4rem); inset-inline-end: clamp(0.7rem, 2vw, 1.4rem); width: 46px; height: 46px; font-size: 1.2rem; }
.cer-lb__prev, .cer-lb__next { top: 50%; margin-top: -26px; width: 52px; height: 52px; font-size: 1.8rem; line-height: 1; }
.cer-lb__prev { inset-inline-start: clamp(0.4rem, 2vw, 1.6rem); }
.cer-lb__next { inset-inline-end: clamp(0.4rem, 2vw, 1.6rem); }
@media (max-width: 600px) {
  .cer-lb__img { max-height: 62vh; }
  .cer-lb__prev, .cer-lb__next { top: auto; bottom: 0.8rem; margin-top: 0; width: 46px; height: 46px; }
}

/* --------------------------------------------------------------------------
   Arabic (ceramic-ar.html)
   Arabic is cursive: any letter-spacing breaks the joins in Chromium/Edge and
   chops words into pieces, and uppercasing means nothing. Neutralise the
   tracking this page applies to Latin type — same treatment main.css gives the
   shared components.
   -------------------------------------------------------------------------- */
[dir="rtl"] .cer-kicker,
[dir="rtl"] .cer-title,
[dir="rtl"] .cer-hero__meta span,
[dir="rtl"] .cer-marquee__item,
[dir="rtl"] .cer-stat__label,
[dir="rtl"] .cer-stage__link,
[dir="rtl"] .cer-search__count,
[dir="rtl"] .cer-cloud__w,
[dir="rtl"] .cer-reels__head,
[dir="rtl"] .cer-film__under-s,
[dir="rtl"] .cer-film__cap a,
[dir="rtl"] .cer-ev__place,
[dir="rtl"] .cer-pdf__sheet b,
[dir="rtl"] .cer-lb__count {
  letter-spacing: 0;
  text-transform: none;
}

/* The ribbon scrolls with the text: leftwards in English, rightwards here. */
[dir="rtl"] .cer-marquee__track { animation-name: cer-marquee-rtl; }
@keyframes cer-marquee-rtl {
  from { transform: translateX(0); }
  to   { transform: translateX(50%); }
}

/* "Opens in a new tab" arrow, pointing the way the page reads. */
[dir="rtl"] .cer-film__cap a::after { content: "↖"; }
[dir="rtl"] .cer-film__cap a:hover::after { transform: translate(-2px, -2px); }

/* --------------------------------------------------------------------------
   Reduced motion — kill everything that loops or slides on its own
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .cer-tile, .cer-hero__wall, .cer-hero__glow, .cer-title em, .cer-marquee__track,
  .cer-films::before, .cer-film__play, .cer-kicker i,
  .cer-kicker, .cer-title__l, .cer-lede, .cer-hero__cta, .cer-hero__meta,
  .cer-shot.is-fresh, .cer-lb__img {
    animation: none !important;
  }
  .cer-tile { opacity: var(--cer-tile-opacity); }
  .cer-stage.reveal-pending .cer-stage__card,
  .cer-ev.reveal-pending .cer-ev__media { transform: none; }
  .cer-line__fill { transition: none; }
}
