/* /case-study/aceplay-igaming-backend-transformation-case-study — AISHTMLNEWDESIGN-515
   Page-owned styles. EVERY selector is scoped to #page-case-study-aceplay-igaming-backend-transformation-case-study or a
   csai- prefixed class: this sheet must never style body, a bare
   element, #ais-header or #ais-footer. The document reset
   (html,body{margin:0}) is owned by the shared layout sheet.
   Font is Inter; no body/UI text below 16px.

   COLD AISLE — the cool aisle between server racks. A BACKEND case study,
   so the page is cool where its siblings are warm: slate ground for the
   hero, the metrics rail and the quote; cool white for the record
   sections; one teal signal accent. Every ordinal is a 1U rack plate with
   its mounting holes. Deliberately a different TEMPERATURE from -505
   (graphite/vermilion) and -513 (oxblood/gold). No @keyframes exist in
   this file; motion is limited to hover/focus/active (rule 26). */

#page-case-study-aceplay-igaming-backend-transformation-case-study {
  --csai-slate: #10161d;       /* cool near-black - hero, rail, quote      */
  --csai-slate-2: #182230;     /* gradient stop                            */
  --csai-slate-3: #22303f;     /* chip ground on slate                     */
  --csai-white: #f7f9fb;       /* cool white - record sections             */
  --csai-white-2: #eef2f6;     /* deeper cool white - alternating bands    */
  --csai-crumb-b: #f1f5f8;     /* breadcrumb strip                         */
  --csai-signal: #0e7490;      /* teal signal - rules, spines, plates      */
  --csai-signal-btn: #0a5c74;  /* signal button ground (measured, not guessed) */
  --csai-signal-ink: #0a5f74;  /* signal text on white                     */
  --csai-signal-lt: #5ccbe4;   /* signal text on slate                     */
  --csai-text: #0d141b;        /* near-black on white                      */
  --csai-text-2: #3b4757;      /* secondary on white                       */
  --csai-text-3: #212c39;      /* prose on white                           */
  --csai-light: #f7f9fb;       /* cool white on slate                      */
  --csai-light-2: #b9c6d4;     /* secondary on slate                       */
  --csai-line: #dde4ec;        /* hairline on white                        */
  --csai-line-2: #d2dae4;      /* hairline on white-2                      */
  font-family: "Inter", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--csai-text-3);
  display: block;
}

/* Scoped border-box reset. Without it the padded full-bleed sections
   resolve to viewport+48px under content-box and the document scrolls
   sideways, leaving an unpainted gutter down the right of every band. */
#page-case-study-aceplay-igaming-backend-transformation-case-study *,
#page-case-study-aceplay-igaming-backend-transformation-case-study *::before,
#page-case-study-aceplay-igaming-backend-transformation-case-study *::after { box-sizing: border-box; }

/* ---- shared page primitives ------------------------------------------ */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-wrap { max-width: 1160px; margin-inline: auto; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-wrap--read { max-width: 780px; }

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-sec {
  padding: clamp(64px, 7vw, 104px) 24px;
  /* The shared site header is position:sticky, top:0, 77px tall. Without
     this a contents jump parks the section heading UNDER the header and
     the link reads as broken. This sheet may not style html, so
     scroll-margin on each target is the scoped equivalent. */
  scroll-margin-top: 96px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-sec:target { box-shadow: inset 0 3px 0 0 var(--csai-signal); }

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-sec--white { background: var(--csai-white); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-sec--white2 { background: var(--csai-white-2); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-sec--slate {
  background: linear-gradient(166deg, var(--csai-slate) 0%, var(--csai-slate-2) 100%); /* static */
}

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-h2 {
  font-family: "Inter", system-ui, sans-serif;
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 750;
  line-height: 1.14;
  letter-spacing: -0.01em;
  color: var(--csai-text);
  margin: 0 0 28px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-h2--light { color: var(--csai-light); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-h2--centre { text-align: center; }

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-eyebrow {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--csai-signal-ink);
  margin: 0 0 10px;
  text-align: center;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-body {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--csai-text-2);
  margin: 0;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-prose {
  font-size: 17.5px;
  line-height: 1.78;
  color: var(--csai-text-3);
  margin: 0;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-link {
  color: var(--csai-signal-ink);
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1.5px;
  transition: color 130ms ease;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-link:hover { color: var(--csai-text); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-link:focus-visible { outline: 3px solid var(--csai-signal); outline-offset: 2px; }

/* signal rule above the reading sections' headings */
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-about .csai-h2::before,
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chal .csai-h2::before,
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-map .csai-h2::before,
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-why .csai-h2::before {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  background: var(--csai-signal);
  margin-bottom: 18px;
}

/* ---- the 1U rack plate ------------------------------------------------ */

/* A rack unit: a slate plate with its two mounting holes, carrying the
   ordinal. Decorative only - every plate is aria-hidden and the ordinal is
   already conveyed by the <ol> it sits in.
   The plate paints its own ground, so it MUST own its foreground at a
   specificity no prose rule in this sheet can outrank (skill 39A): the
   ancestor class is what does the outranking, a bare tag only ties. */
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-unit {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 44px;
  height: 30px;
  border-radius: 3px;
  border: 1px solid #2f3f51;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index .csai-unit,
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chal .csai-unit {
  background: var(--csai-slate-3);
  color: var(--csai-light);
}
/* the two mounting holes */
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-unit::before,
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-unit::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 4px;
  height: 4px;
  margin-top: -2px;
  border-radius: 50%;
  background: var(--csai-signal-lt);
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-unit::before { left: 5px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-unit::after { right: 5px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-unit--lg {
  width: 56px;
  height: 38px;
  font-size: 17px;
  border-radius: 4px;
}

/* ---- buttons ---------------------------------------------------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn {
  display: inline-block;
  min-height: 48px;
  padding: 13px 30px;
  border: 2px solid transparent;
  border-radius: 5px;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.25;
  cursor: pointer;
  transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease, transform 90ms ease;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn--signal {
  background: var(--csai-signal-btn);
  color: #ffffff;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn--signal:hover { background: #084c60; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn--signal:active { transform: translateY(1px); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn--ink {
  background: transparent;
  border-color: var(--csai-text);
  color: var(--csai-text);
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn--ink:hover { background: var(--csai-text); color: var(--csai-light); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn--ink:active { transform: translateY(1px); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn:focus-visible { outline: 3px solid var(--csai-signal); outline-offset: 3px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-sec--slate .csai-btn:focus-visible { outline-color: var(--csai-signal-lt); }

/* Every section CTA centres UNCONDITIONALLY - not as a side effect of the
   section's own text-align. Sibling -503 shipped with its CTA centring
   keyed off whether the section had a centred H2, so three sections
   left-aligned their button. Stating it on the action block itself means a
   section added later cannot reintroduce that. */
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-secact {
  margin-top: 44px;
  display: flex;
  justify-content: center;
  text-align: center;
}

/* ---- hero — rule 24: full-bleed static ground, no image --------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero {
  padding: clamp(72px, 9vw, 122px) 24px clamp(56px, 7vw, 92px);
  background: linear-gradient(168deg, #0a0f14 0%, var(--csai-slate) 36%, var(--csai-slate-2) 100%); /* static */
  text-align: center;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__inner { max-width: 900px; margin-inline: auto; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__eyebrow {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--csai-signal-lt);
  margin: 0 0 22px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__h1 {
  font-family: "Inter", system-ui, sans-serif;
  font-size: clamp(32px, 4.2vw, 52px);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--csai-light);
  margin: 0 0 24px;
  text-wrap: balance;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__lede {
  font-size: 18px;
  line-height: 1.72;
  color: var(--csai-light-2);
  max-width: 66ch;
  margin: 0 auto 36px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__act { margin: 0 0 44px; display: flex; justify-content: center; }

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__stack {
  border-top: 1px solid rgba(185, 198, 212, 0.24);
  padding-top: 26px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__stackh {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--csai-light-2);
  margin: 0 0 16px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stack {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
/* chip owns its foreground at ancestor-class specificity (skill 39A) */
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stack li.csai-stack__item {
  background: var(--csai-slate-3);
  color: var(--csai-light);
  border: 1px solid #2f3f51;
  border-radius: 4px;
  padding: 9px 16px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* ---- breadcrumb -------------------------------------------------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb {
  background: var(--csai-crumb-b);
  border-bottom: 1px solid var(--csai-line);
  padding: 16px 24px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  font-size: 16px;
  color: var(--csai-text-2);
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--csai-line);
  border-radius: 4px;
  background: #ffffff;
  transition: border-color 130ms ease;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__back:hover { border-color: var(--csai-signal); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__back:focus-visible { outline: 3px solid var(--csai-signal); outline-offset: 2px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__bar a {
  color: var(--csai-text-2);
  display: inline-flex;
  align-items: center;
  min-height: 40px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__bar a:hover { color: var(--csai-signal-ink); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__bar a:focus-visible { outline: 3px solid var(--csai-signal); outline-offset: 2px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__slash { color: #5d6672; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__here { color: var(--csai-text); font-weight: 650; }

/* ---- case study contents ---------------------------------------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index {
  background: var(--csai-white-2);
  border-bottom: 1px solid var(--csai-line-2);
  padding: clamp(44px, 5vw, 66px) 24px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__h {
  font-size: clamp(22px, 2.2vw, 26px);
  font-weight: 750;
  letter-spacing: -0.005em;
  color: var(--csai-text);
  margin: 0 0 22px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__h::after {
  content: "";
  display: block;
  width: 42px;
  height: 3px;
  background: var(--csai-signal);
  margin-top: 14px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 40px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 4px;
  border-top: 1px solid var(--csai-line-2);
  transition: padding-left 130ms ease, border-color 130ms ease;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__list > li:nth-child(1) .csai-index__item,
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__list > li:nth-child(2) .csai-index__item { border-top: 0; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__t {
  font-size: 17px;
  font-weight: 650;
  line-height: 1.4;
  color: var(--csai-text-3);
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__item:hover { padding-left: 10px; border-color: var(--csai-signal); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__item:hover .csai-index__t { color: var(--csai-signal-ink); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__item:focus-visible { outline: 3px solid var(--csai-signal); outline-offset: 2px; }

/* ---- challenges rack elevation ------------------------------------------ */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chlist { list-style: none; margin: 0; padding: 0; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chlist__item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 22px;
  align-items: start;
  padding: 26px 0;
  border-top: 1px solid var(--csai-line-2);
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chlist__item:first-child { border-top: 0; padding-top: 0; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chlist__item:last-child { padding-bottom: 0; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chlist__t {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--csai-text);
  margin: 0 0 8px;
}

/* ---- solution mapping table --------------------------------------------- */

/* Divider layout adopted on -505 from the reference page
   /case-study/sportivaplay-fantasy-sports-app-case-study: a bordered
   radiused container plus continuous 4px accent spines running through the
   header band, so the grid reads as a grid rather than three loose columns
   of prose. Colour is this page's signal teal. */
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-map__scroll {
  overflow-x: auto;
  border: 1px solid var(--csai-line);
  border-radius: 14px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  text-align: left;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table th {
  background: var(--csai-slate);
  color: var(--csai-light);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 15px 18px;
  border-bottom: 3px solid var(--csai-signal);
  vertical-align: bottom;
}
/* border-LEFT on :not(:first-child), not border-RIGHT on :not(:last-child):
   both draw the same two lines, but left-on-not-first is what survives a
   column being added or removed without the rule needing to change. */
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table th:not(:first-child) { border-left: 4px solid var(--csai-signal); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table__ch { width: 34%; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table__so { width: 33%; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table__re { width: 33%; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table td {
  font-size: 16.5px;
  line-height: 1.66;
  color: var(--csai-text-2);
  padding: 18px;
  border-bottom: 1px solid var(--csai-line);
  vertical-align: top;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table td:not(:first-child) { border-left: 4px solid var(--csai-signal); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table tbody tr:nth-child(even) { background: var(--csai-white-2); }

/* ---- measurable results rail --------------------------------------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats__item {
  padding: 8px 26px 4px;
  border-left: 1px solid rgba(185, 198, 212, 0.22);
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats__item:first-child { border-left: 0; padding-left: 0; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats__n {
  display: block;
  margin: 0 0 10px;
  font-size: clamp(40px, 4.6vw, 58px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--csai-light);
  font-variant-numeric: tabular-nums;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats__p {
  font-size: 16.5px;
  line-height: 1.66;
  color: var(--csai-light-2);
  margin: 0;
}

/* ---- why AIS ------------------------------------------------------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-whylist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 34px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-whylist__item { border-top: 3px solid var(--csai-signal); padding-top: 20px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-whylist__t {
  font-size: 18.5px;
  font-weight: 700;
  line-height: 1.32;
  color: var(--csai-text);
  margin: 0 0 10px;
}

/* ---- client quote --------------------------------------------------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-quote__h { text-align: center; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-quote__fig { margin: 0; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-quote__bq { margin: 0; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-quote__p {
  font-size: clamp(21px, 2.6vw, 30px);
  line-height: 1.46;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--csai-light);
  text-align: center;
  margin: 0;
  padding-top: 26px;
  border-top: 3px solid var(--csai-signal);
}

/* ---- area we serve --------------------------------------------------------- */

#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-servelist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 30px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-servelist__item { border-top: 1px solid var(--csai-line); padding-top: 20px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-servelist__r {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--csai-text);
  margin: 0 0 12px;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-tel {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 17px;
  font-weight: 700;
  color: var(--csai-signal-ink);
  margin-bottom: 10px;
  transition: color 130ms ease;
}
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-tel:hover { color: var(--csai-text); }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-tel:focus-visible { outline: 3px solid var(--csai-signal); outline-offset: 2px; }
#page-case-study-aceplay-igaming-backend-transformation-case-study .csai-serve .csai-body { line-height: 1.62; }

/* ---- CTA modal --------------------------------------------------------------- */

/* display:none -> flex (the sibling-page pattern): the dialog and its close
   button are focusable the same tick .is-open lands - a visibility
   transition would keep them unfocusable at t=0 and silently eat
   closeBtn.focus(). */
.csai-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 100px 20px 20px 20px; overflow-y: auto;
  background: rgba(6, 10, 14, 0.82);
}
.csai-modal.is-open { display: flex; }
.csai-modal__box {
  position: relative;
  width: min(560px, calc(100vw - 32px));
  background: #f7f9fb;
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(4, 7, 10, 0.55);
}
.csai-modal__x {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: #10161d;
  color: #f7f9fb;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 130ms ease;
}
.csai-modal__x:hover { background: #0a5c74; }
.csai-modal__x:focus-visible { outline: 3px solid #5ccbe4; outline-offset: 2px; }
.csai-modal__box iframe {
  display: block;
  width: 100%;
  min-height: 820px; /* skill 14: content height + buffer; form_embed.js refines on open */
  border: 0;
  border-radius: 8px;
}

/* ---- responsive --------------------------------------------------------------- */

@media (max-width: 1020px) {
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats__item:nth-child(odd) { border-left: 0; padding-left: 0; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-whylist { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-servelist { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 30px; }
}
@media (max-width: 760px) {
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__list { grid-template-columns: 1fr; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__list > li:nth-child(2) .csai-index__item { border-top: 1px solid var(--csai-line-2); }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-chlist__item { grid-template-columns: 1fr; gap: 14px; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table { min-width: 0; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table thead { display: none; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table tbody tr:nth-child(even) { background: transparent; }
  /* The table stops having columns here, so the spine and the outer box both
     go. The override MUST repeat :not(:first-child): a bare `.csai-table td`
     is (1,1,1) and LOSES to the (1,2,1) rule above, because a media query
     adds no specificity. That exact bug was caught by measurement on -505;
     it is written correctly here from the start. */
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-map__scroll { border: 0; border-radius: 0; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table tr {
    display: block;
    border-top: 3px solid var(--csai-signal);
    padding: 18px 0 6px;
  }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table td { display: block; padding: 0 0 14px; border-bottom: 0; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table td:not(:first-child) { border-left: 0; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-table td::before {
    content: attr(data-label);
    display: block;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--csai-signal-ink);
    margin-bottom: 4px;
  }
}
@media (max-width: 560px) {
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats { grid-template-columns: 1fr; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-stats__item { border-left: 0; padding-left: 0; padding-right: 0; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-whylist { grid-template-columns: 1fr; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-servelist { grid-template-columns: 1fr; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn { width: 100%; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-secact,
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-hero__act { align-self: stretch; }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__bar { font-size: 16px; }
}

/* ---- reduced motion: nothing runs anyway; keep state changes instant ------ */

@media (prefers-reduced-motion: reduce) {
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-btn,
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__item,
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-link,
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-tel,
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-crumb__back,
  .csai-modal__x {
    transition-duration: 0.01ms !important;
  }
  #page-case-study-aceplay-igaming-backend-transformation-case-study .csai-index__item:hover { padding-left: 4px; }
}
