/* Slide deck: viewer (screen) and PDF (print) share this markup. Slide sizes are in em; 1em = 1/80 of the stage width
   (container query units), so a slide is a 1280x720 design at any width. Narrow screens reflow instead of shrinking. */
.deck-page { padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(3rem, 8vw, 5rem); }
.deck-page .section__desc { max-width: 46rem; }
.deck__downloads { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.25rem 0 1.75rem; }
.deck { min-width: 0; }
.deck__frame { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; }
.deck__viewport { min-width: 0; border-radius: var(--r-lg); }
.deck__viewport:focus-visible { outline-offset: 4px; }
.deck__stage { container-type: inline-size; width: 100%; min-width: 0; }
.deck__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem; }
.deck__btn { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--c-border-strong); background: var(--c-surface); color: var(--c-text); cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.deck__btn:hover { background: var(--c-brand); border-color: var(--c-brand); color: var(--c-on-brand); }
.deck__count { min-width: 4.5rem; text-align: center; font: 700 0.9375rem var(--font-display); color: var(--c-text); font-variant-numeric: tabular-nums; margin: 0; }
.deck__jump select { min-height: 2.75rem; max-width: 16rem; padding: 0.4rem 0.75rem; font: 500 0.875rem var(--font-sans); color: var(--c-text); background: var(--c-surface); border: 1px solid var(--c-border-strong); border-radius: var(--r-md); }
.deck__btn .icon-min { display: none; }
.deck__btn[aria-pressed="true"] .icon-max { display: none; }
.deck__btn[aria-pressed="true"] .icon-min { display: block; }
.deck__hint { margin: 0.9rem 0 0; text-align: center; font-size: 0.8125rem; color: var(--c-text-3); }
html:not(.js) .deck__bar, html:not(.js) .deck__hint { display: none; }
html:not(.js) .slide { margin-bottom: 1.25rem; }
.deck.is-ready .slide:not(.is-active) { display: none; }
.deck__frame:fullscreen { background: #060b18; justify-items: center; align-content: center; padding: 1rem; }
.deck__frame:fullscreen .deck__viewport { width: min(100%, calc((100vh - 6.5rem) * 16 / 9)); }
.deck__frame:fullscreen .deck__btn { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.3); color: #fff; }
.deck__frame:fullscreen .deck__count { color: #fff; }

/* ---- slide (light = default / PDF, dark = site dark theme on screen) ---- */
.slide { --s-bg: #ffffff; --s-bg2: #f2f6fd; --s-text: #0a1224; --s-text2: #38455e; --s-border: rgba(10,18,36,0.18); --s-acc: #1f4fd8; --s-acc2: #0e7490; --s-chip: rgba(31,79,216,0.08);
  position: relative; box-sizing: border-box; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; font-size: calc(100cqw / 80); line-height: 1.45;
  color: var(--s-text); background: var(--s-bg); border: 1px solid var(--s-border); border-radius: 0.9em; font-family: var(--font-sans); }
@media screen { [data-theme="dark"] .slide--light { --s-bg: #0d1630; --s-bg2: #121d3d; --s-text: #eaf0fb; --s-text2: #b9c6e0; --s-border: rgba(143,177,255,0.28); --s-acc: #8fb1ff; --s-acc2: #5ee0f5; --s-chip: rgba(143,177,255,0.12); } }
.slide--dark { --s-bg: #070d1f; --s-bg2: #0e1936; --s-text: #eaf0fb; --s-text2: #b9c6e0; --s-border: rgba(143,177,255,0.3); --s-acc: #8fb1ff; --s-acc2: #5ee0f5; --s-chip: rgba(143,177,255,0.12);
  background: radial-gradient(60% 90% at 90% 0%, rgba(37,99,235,0.38), transparent 60%), radial-gradient(50% 70% at 0% 100%, rgba(6,182,212,0.2), transparent 60%), linear-gradient(180deg, #060b18 0%, #0a1430 100%); }
.slide__inner { box-sizing: border-box; height: 100%; padding: 3.2em 4em 3.6em; display: flex; flex-direction: column; justify-content: flex-start; gap: 1.1em; }
.slide__foot { position: absolute; left: 4em; right: 4em; bottom: 1.3em; margin: 0; display: flex; justify-content: space-between; font-size: 0.75em; color: var(--s-text2); letter-spacing: 0.04em; }
.slide__kicker { margin: 0; font: 700 0.8em/1 var(--font-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--s-acc2); }
.slide__title { margin: 0; font: 800 2.35em/1.12 var(--font-display); letter-spacing: -0.025em; color: var(--s-text); }
.slide .grad { background: none; color: var(--s-acc); }
.slide .icon { width: 1.5em; height: 1.5em; color: var(--s-acc); flex: none; }
.slide .grid { display: grid; gap: 1em; }
.slide .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.slide .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.slide .grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.slide .box { min-width: 0; padding: 1.1em 1.2em; border: 1px solid var(--s-border); border-radius: 0.8em; background: var(--s-bg2); }
.slide .box h3 { margin: 0.45em 0 0.3em; font: 700 1.1em/1.25 var(--font-display); color: var(--s-text); }
.slide .box p { margin: 0; font-size: 0.9em; color: var(--s-text2); }
.slide .box .out { margin-top: 0.55em; font-size: 0.82em; color: var(--s-text); }
.slide .box .out strong { color: var(--s-acc2); }
.slide .box--row .num, .slide .step .num { display: inline-flex; align-items: center; justify-content: center; min-width: 2.1em; height: 2.1em; padding: 0 0.4em; border: 1px solid var(--s-border); border-radius: 999px; font: 800 0.85em var(--font-display); color: var(--s-acc); background: var(--s-chip); }
.slide .box--row { display: grid; gap: 0.6em; align-content: start; }
.slide .grid--5 .box h3 { font-size: 1em; }
.slide .grid--5 .box p { font-size: 0.8em; }
.slide .stat strong { display: block; font: 800 2.6em/1 var(--font-display); color: var(--s-acc); letter-spacing: -0.03em; }
.slide .stat p { margin-top: 0.5em; }
.slide .steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1em; margin: 0; padding: 0; list-style: none; }
.slide .step { min-width: 0; padding: 1.1em 1.2em; border: 1px solid var(--s-border); border-radius: 0.8em; background: var(--s-bg2); }
.slide .step h3 { margin: 0.7em 0 0.35em; font: 700 1.2em/1.2 var(--font-display); }
.slide .step p { margin: 0; font-size: 0.9em; color: var(--s-text2); }
.slide .pills, .slide .chips { display: flex; flex-wrap: wrap; gap: 0.5em; margin: 0; padding: 0; list-style: none; }
.slide .pills li, .slide .chips .chip { padding: 0.4em 0.9em; border: 1px solid var(--s-border); border-radius: 999px; background: var(--s-chip); color: var(--s-text); font-size: 0.82em; font-weight: 600; }
.slide .box .chips { margin-top: 0.7em; }
.slide .box .chips .chip { font-size: 0.72em; padding: 0.3em 0.7em; }
.slide .bullets { margin: 0; padding-left: 1.2em; display: grid; gap: 0.45em; font-size: 0.95em; color: var(--s-text2); }
.slide .bullets li::marker { color: var(--s-acc2); }
.slide .note { margin: auto 0 0; font-size: 0.85em; color: var(--s-text2); }
.slide .cover, .slide .closing { display: grid; height: 100%; align-content: center; }
.slide .cover { grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.8fr); gap: 3em; align-items: center; }
.slide .cover__text, .slide .closing { display: grid; gap: 1em; align-content: center; }
.slide .cover__title { margin: 0; font: 800 3em/1.08 var(--font-display); letter-spacing: -0.03em; color: #fff; }
.slide .cover__lead { margin: 0; font-size: 1.15em; color: var(--s-text2); max-width: 34em; }
.slide .cover__name { margin: 0.4em 0 0; display: grid; gap: 0.15em; color: #fff; font-size: 1.05em; }
.slide .cover__name span { color: var(--s-acc2); font-size: 0.9em; }
.slide .cover__photo { margin: 0; border: 1px solid var(--s-border); border-radius: 1em; overflow: hidden; align-self: center; }
.slide .cover__photo img { display: block; width: 100%; height: auto; max-height: 24em; object-fit: cover; object-position: top; }
.slide .training-layout, .slide .pillar-detail-layout, .slide .credential-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 2em; align-items: center; flex: 1; min-height: 0; }
.slide .training-layout .visual-frame, .slide .pillar-usecase-visual, .slide .credential-visual { position: relative; min-width: 0; height: 100%; min-height: 0; max-height: 31em; margin: 0; overflow: hidden; border-radius: .8em; background: var(--s-bg2); }
.slide .training-layout .visual-frame img, .slide .pillar-usecase-visual img, .slide .credential-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.slide .training-layout .visual-caption, .slide .pillar-usecase-visual figcaption, .slide .credential-visual figcaption { position: absolute; inset: auto 0 0; padding: .7em .9em; color: #fff; background: rgba(6,11,24,.78); font-size: .78em; line-height: 1.35; }
.slide .training-list { display: grid; gap: .9em; align-content: center; }
.slide .training-list article, .slide .credential-groups article { padding: .6em 0; border-top: 1px solid var(--s-border); }
.slide .training-list h3, .slide .credential-groups h3 { margin: 0 0 .2em; font: 750 1.15em/1.25 var(--font-display); color: var(--s-text); }
.slide .training-list p, .slide .credential-groups p { margin: 0; color: var(--s-text2); font-size: .9em; line-height: 1.4; }
.slide .pillar-usecases { display: grid; gap: .65em; align-content: center; min-width: 0; }
.slide .pillar-usecases article { display: grid; grid-template-columns: 2.5em minmax(0,1fr); gap: .7em; align-items: start; padding: .8em .85em; border-radius: .7em; background: var(--s-bg2); }
.slide .pillar-usecases article > span { display: inline-flex; width: 2.25em; height: 2.25em; align-items: center; justify-content: center; border: 1px solid var(--s-border); border-radius: 50%; background: var(--s-chip); color: var(--s-acc2); font-weight: 800; }
.slide .pillar-usecases h3 { margin: 0 0 .18em; font: 750 1.1em/1.25 var(--font-display); color: var(--s-text); }
.slide .pillar-usecases p { margin: 0; font-size: .9em; line-height: 1.4; color: var(--s-text2); }
.slide .pillar-usecase-visual figcaption { position: absolute; inset: auto 0 0; padding: .7em .9em; color: #fff; background: rgba(6,11,24,.78); font-size: .78em; line-height: 1.35; }
.slide .credential-layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 1.7em; }
.slide .credential-groups { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .2em 1.2em; align-content: center; }
.slide .credential-groups h3 { font-size: 1em; }
.slide .credential-groups p { font-size: .9em; }
.slide .credential-visual img { object-position: center; }
.slide .pillar-detail .slide__inner { gap: .8em; }
.slide .pillar-detail .slide__title { font-size: 2.25em; }
.slide .pillar-detail-layout { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.slide .contact { display: grid; gap: 0.6em; margin: 0.4em 0 0; padding: 0; list-style: none; }
.slide .contact li { display: flex; align-items: center; gap: 0.7em; padding: 0.7em 1em; border: 1px solid var(--s-border); border-radius: 0.8em; background: rgba(143,177,255,0.08); color: #fff; width: fit-content; max-width: 100%; }
.slide--dark .slide__foot { color: var(--s-text2); }

/* ---- narrow screens: reflow (no tiny 16:9 canvas) ---- */
@media (max-width: 719.98px) {
  .slide { font-size: 15px; aspect-ratio: auto; min-height: 0; }
  .slide__inner { height: auto; padding: 1.6em 1.3em 3em; }
  .slide__foot { left: 1.3em; right: 1.3em; }
  .slide__title { font-size: 1.7em; }
  .slide .grid--3, .slide .grid--4, .slide .grid--5, .slide .steps, .slide .cover { grid-template-columns: minmax(0, 1fr); }
  .slide .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .slide .cover__title { font-size: 2em; }
  .slide .cover__photo img { max-height: 18em; }
  .slide .note { margin-top: 0.5em; }
  .slide .stat strong { font-size: 2em; }
  .slide .training-layout, .slide .pillar-detail-layout, .slide .credential-layout { grid-template-columns: minmax(0,1fr); gap: 1em; }
  .slide .training-layout .visual-frame, .slide .pillar-usecase-visual, .slide .credential-visual { min-height: 15em; max-height: 22em; }
  .slide .credential-groups { grid-template-columns: minmax(0,1fr); }
  .slide .pillar-detail .slide__title { font-size: 1.7em; }
}
@media (max-width: 380px) { .slide .grid--4 { grid-template-columns: minmax(0, 1fr); } }

/* ---- PDF / print: every slide is one 1280x720 page ---- */
@page { size: 1280px 720px; margin: 0; }
@media print {
  html, body { background: #ffffff !important; }
  .skip-link, .cv-header, .deck-page .section__title, .deck-page .section__desc, .deck__downloads, .deck__bar, .deck__hint, .footer { display: none !important; }
  .deck-page, .deck-page .container { padding: 0 !important; margin: 0 !important; max-width: none !important; width: auto !important; }
  .deck__frame, .deck__viewport { display: block; border-radius: 0; }
  .deck__stage { width: 1280px !important; }
  .slide, .deck.is-ready .slide:not(.is-active), .slide[hidden] { display: block !important; width: 1280px; height: 720px; aspect-ratio: auto; font-size: 16px; border: 0; border-radius: 0; margin: 0 !important; break-after: page; page-break-after: always; break-inside: avoid; }
  .slide:last-child { break-after: auto; page-break-after: auto; }
  .slide__inner { height: 720px; padding: 3.2em 4em 3.6em; }
  .slide .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .slide .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .slide .grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .slide .steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } .slide .cover { grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.8fr); }
  .slide .training-layout, .slide .pillar-detail-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .slide .credential-layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
  .slide .credential-groups { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .slide .pillar-detail .slide__title { font-size: 2.25em; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.slide .cover__gloss { margin: 0; font-size: 0.95em; color: var(--s-acc2); max-width: 34em; }

/* Refined bilingual deck: service overview, balanced matrices and final infographics. */
.slide--value .slide__inner { gap: .65em; }
.slide--value .slide__title { font-size: 2.15em; }
.slide .service-overview-visual { position: relative; width: 100%; height: 9.5em; flex: none; margin: 0; overflow: hidden; border-radius: .8em; background: var(--s-bg2); }
.slide .service-overview-visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.slide .service-overview-visual figcaption, .slide .training-banner figcaption, .slide .pillar-usecase-visual figcaption { position: absolute; inset: auto 0 0; padding: .38em .7em; color: #fff; background: rgba(6,11,24,.76); font: italic 500 .66em/1.25 var(--font-sans); text-align: center; }
.slide .service-overview-visual figcaption { background: rgba(6,11,24,.58); }
.slide--value .grid--5 { gap: .65em; }
.slide--value .grid--5 .box { padding: .72em .82em; }
.slide .value-result-pills { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7em; width: 100%; }
.slide .value-result-pills li { display: flex; align-items: center; justify-content: center; min-height: 2.3em; text-align: center; }
#slide-kpis .grid--3, #slide-usecases .grid--3, #slide-capabilities .grid--3 { gap: .75em; }
#slide-kpis .box, #slide-usecases .box { padding: .78em .9em; }
#slide-kpis .box h3, #slide-usecases .box h3 { margin-top: .25em; font-size: 1.03em; }
#slide-kpis .box p, #slide-usecases .box p { font-size: .82em; line-height: 1.35; }
#slide-capabilities .box { padding: .65em .78em; }
#slide-capabilities .box h3 { margin-top: .28em; font-size: .96em; line-height: 1.2; }
#slide-capabilities .chips { gap: .28em; margin-top: .45em; }
#slide-capabilities .chips .chip { font-size: .66em; padding: .2em .52em; }
.slide .method-infographic { flex: 1; min-height: 0; max-height: 13.2em; margin: .15em 0 0; width: 100%; }
.slide .method-infographic svg { display: block; width: 100%; height: 100%; }
.slide .slide__inner--training { gap: .55em; }
.slide .slide__inner--training .slide__title { font-size: 2.12em; }
.slide .training-banner { position: relative; height: 7.3em; flex: none; overflow: hidden; margin: 0; border-radius: .7em; background: var(--s-bg2); }
.slide .training-banner img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 43%; }
.slide .training-curriculum { gap: .55em .7em; flex: 1; min-height: 0; align-content: stretch; }
.slide .training-card { position: relative; min-width: 0; padding: .55em .72em .55em 2.45em; border: 1px solid var(--s-border); border-radius: .7em; background: var(--s-bg2); }
.slide .training-card__num { position: absolute; left: .65em; top: .65em; display: inline-flex; width: 1.45em; height: 1.45em; align-items: center; justify-content: center; border-radius: 50%; background: var(--s-chip); color: var(--s-acc); font: 800 .72em var(--font-display); }
.slide .training-card h3 { margin: 0 0 .22em; font: 750 .97em/1.2 var(--font-display); color: var(--s-text); }
.slide .training-card p { margin: 0; font-size: .75em; line-height: 1.3; color: var(--s-text2); }
.slide .training-banner + .training-curriculum { grid-template-columns: repeat(3,minmax(0,1fr)); }
.slide .credential-map { display: flex; flex-direction: column; justify-content: center; align-items: stretch; padding: .5em; }
.slide .credential-map-svg { display: block; width: 100%; height: calc(100% - 2.5em); min-height: 0; }
.slide .credential-map figcaption { position: static; margin-top: .3em; padding: .3em; color: var(--s-text2); background: transparent; font: italic 500 .68em/1.25 var(--font-sans); text-align: center; }
.slide .closing--contact { grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); grid-template-rows: minmax(0,1fr) auto; gap: .6em 1.4em; align-content: stretch; align-items: center; }
.slide .closing-copy { display: grid; gap: .85em; align-content: center; min-width: 0; }
.slide .closing-copy .cover__title { font-size: 2.6em; }
.slide .closing-infographic { margin: 0; min-width: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.slide .closing-map-svg { display: block; width: min(100%, 440px); max-height: 100%; height: auto; }
.slide .contact--horizontal { grid-column: 1 / -1; display: flex; flex-direction: row; align-items: stretch; justify-content: space-between; gap: .65em; width: 100%; margin: .1em 0 0; }
.slide .contact--horizontal li { display: flex; align-items: stretch; justify-content: center; flex: 1 1 0; width: auto; max-width: none; min-width: 0; padding: 0; }
.slide .contact-pill { display: flex; width: 100%; min-width: 0; align-items: center; justify-content: center; gap: .55em; padding: .72em .85em; color: #fff; text-decoration: none; font-size: .82em; font-weight: 700; }
.slide .contact-pill span { overflow-wrap: anywhere; }
.slide .contact-pill:hover, .slide .contact-pill:focus-visible { color: #fff; background: rgba(130,167,255,.18); outline-color: #9ab9ff; }
@media (max-width: 719.98px) {
  .slide--value .slide__inner { gap: .8em; }
  .slide .service-overview-visual { height: 11em; }
  .slide .value-result-pills { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .slide .method-infographic { min-height: 10em; }
  .slide .training-banner { height: 12em; }
  .slide .training-curriculum { grid-template-columns: minmax(0,1fr); }
  .slide .training-card { min-height: 4.7em; }
  .slide .closing--contact { grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto auto; }
  .slide .closing-infographic { min-height: 17em; }
  .slide .contact--horizontal { grid-column: auto; flex-direction: column; }
  .slide .contact--horizontal li { flex: none; }
}
@media print {
  .slide .training-curriculum { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .slide .training-card { padding: .5em .6em .5em 2.2em; }
  .slide .training-card h3 { font-size: .9em; }
  .slide .training-card p { font-size: .7em; }
  .slide .training-banner { height: 6.8em; }
  .slide .closing--contact { grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); grid-template-rows: minmax(0,1fr) auto; }
  .slide .contact--horizontal { flex-direction: row; }
  .slide .contact--horizontal li { flex: 1 1 0; }
}

.slide .service-pillar-overview { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: 1em; align-items: stretch; flex: 1; min-height: 0; }
.slide .service-pillar-overview .grid--5 { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: repeat(5,minmax(0,1fr)); gap: .48em; min-height: 0; }
.slide .service-pillar-overview .box { display: grid; grid-template-columns: 1.8em minmax(0,1fr); grid-template-rows: auto auto; column-gap: .58em; align-content: center; align-items: center; padding: .38em .65em; }
.slide .service-pillar-overview .box .icon { grid-row: 1 / 3; width: 1.45em; height: 1.45em; }
.slide .service-pillar-overview .box h3 { margin: 0 0 .12em; font-size: .94em; }
.slide .service-pillar-overview .box p { font-size: .72em; line-height: 1.25; }
.slide .service-pillar-overview .service-overview-visual { height: 100%; min-height: 0; }
@media (max-width:719.98px) { .slide .service-pillar-overview { grid-template-columns: minmax(0,1fr); } .slide .service-pillar-overview .service-overview-visual { height: 13em; } }

#slide-kpis .grid--3, #slide-usecases .grid--3, #slide-capabilities .grid--3 { flex: 1; min-height: 0; grid-template-rows: repeat(3,minmax(0,1fr)); align-content: stretch; }
