/* ExecuteConsult(TM) proposal deck. Summit slides, 16:9 on wide screens, stacked panels on phones. */
.deck { --d-paper: #F5F4EF; --d-white: #FFFFFF; --d-ink: #16181B; --d-ink-2: #22262C; --d-mist: #DCE5EE; --d-slate: #3F5A73; --d-slate-2: #647D96;
  --d-body: #4A5058; --d-body-dark: #B9C3CE; --d-line: #D9D9D2; --d-line-dark: #333941;
  display: flex; flex-direction: column; gap: 18px; font-family: 'Manrope', system-ui, sans-serif; }
.deck .slide { container: slide / inline-size; position: relative; border-radius: 14px; box-shadow: 0 1px 3px rgba(22,24,27,.08); aspect-ratio: 16 / 9; display: flex; }
.deck .bg { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; }
.deck .ridges { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 44%; }
.deck .t-paper { background: var(--d-paper); color: var(--d-ink); }
.deck .t-mist { background: var(--d-mist); color: var(--d-ink); }
.deck .t-ink { background: var(--d-ink); color: var(--d-paper); }
.deck .t-slate { background: var(--d-slate); color: var(--d-paper); }

/* type scale: 1920px canvas mapped to the slide width */
.deck .s { --pad: 6.667cqw; --gap: 1.25cqw; --gap-l: 3.33cqw; --fs-d: 7.5cqw; --fs-h: 3.75cqw; --fs-h3: 1.875cqw; --fs-lead: 1.667cqw; --fs-p: 1.354cqw; --fs-s: 1.25cqw; --fs-big: 4.17cqw;
  position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--gap-l); padding: var(--pad) var(--pad) calc(var(--pad) * 1.25); }
.deck .spread .s { justify-content: space-between; }
.deck p, .deck h1, .deck h2, .deck h3, .deck ul { margin: 0; }
.deck .eyebrow { font-size: var(--fs-s); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--d-slate); }
.deck .t-ink .eyebrow { color: #9DB1C4; } .deck .t-slate .eyebrow { color: var(--d-mist); }
.deck .h1 { font-size: var(--fs-d); font-weight: 800; line-height: .96; letter-spacing: -.048em; color: inherit; }
.deck .h2 { font-size: var(--fs-h); font-weight: 800; line-height: 1.05; letter-spacing: -.039em; color: inherit; }
.deck .h2.sm { font-size: calc(var(--fs-h) * .89); }
.deck .h3 { font-size: var(--fs-h3); font-weight: 800; line-height: 1.2; letter-spacing: -.02em; color: inherit; }
.deck .lead { font-size: var(--fs-lead); line-height: 1.45; color: var(--d-body); }
.deck .lead.strong { color: var(--d-ink); font-weight: 600; }
.deck .t-mist .lead { color: #2D3540; } .deck .t-ink .lead, .deck .t-slate .lead { color: var(--d-body-dark); } .deck .t-slate .lead { color: var(--d-mist); }
.deck .p, .deck .p li, .deck .md p, .deck .md li { font-size: var(--fs-p); line-height: 1.45; color: var(--d-body); }
.deck .t-ink .p, .deck .t-ink .p li { color: var(--d-body-dark); }
.deck ul.p, .deck .md ul, .deck .md ol { padding-left: 1.2em; }
.deck .md p + p { margin-top: .6em; }
.deck .small { font-size: var(--fs-s); color: #6A7079; }
.deck .big { display: block; font-size: var(--fs-big); font-weight: 800; letter-spacing: -.05em; line-height: 1; }
.deck .n { font-size: var(--fs-s); font-weight: 800; color: var(--d-slate-2); }
.deck .tag { font-size: var(--fs-s); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--d-slate); }
.deck .head { display: flex; flex-direction: column; gap: calc(var(--gap) * 1.15); }

/* footer */
.deck .foot { position: absolute; left: var(--pad); right: var(--pad); bottom: 3.33cqw; display: flex; justify-content: space-between; font-size: var(--fs-s); color: #6A7079; }
.deck .foot .fl { font-weight: 800; color: var(--d-ink); letter-spacing: -.02em; }
.deck .t-ink .foot, .deck .t-slate .foot { color: #8C96A1; } .deck .t-ink .foot .fl { color: var(--d-paper); }
.deck .t-mist .foot { color: var(--d-body); }

/* layouts */
.deck .split { display: flex; gap: 5cqw; flex: 1; }
.deck .split.center { align-items: center; }
.deck .col-l { flex: 1; display: flex; flex-direction: column; gap: calc(var(--gap) * 1.15); min-width: 0; }
.deck .col-l.narrow { flex: 0 0 31%; }
.deck .col-r { flex: 1.3; display: flex; flex-direction: column; justify-content: center; gap: var(--gap); min-width: 0; }
.deck .grid { display: grid; gap: var(--gap); }
.deck .g1 { grid-template-columns: 1fr; } .deck .g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .deck .g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.deck .g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .deck .g5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.deck .card { border-radius: 1.25cqw; padding: 2.08cqw; display: flex; flex-direction: column; gap: .7cqw; background: var(--d-white); }
.deck .card.dark { background: var(--d-ink); color: var(--d-paper); } .deck .card.dark .p, .deck .card.dark .p li { color: #C9D2DC; } .deck .card.dark .tag { color: #9DB1C4; }
.deck .card.glass { background: var(--d-ink-2); border: 1px solid var(--d-line-dark); } .deck .card.glass .tag { color: #9DB1C4; }
.deck .card.mist { background: var(--d-mist); color: var(--d-ink); } .deck .card.mist .p, .deck .card.mist .p li { color: #2D3540; }
.deck .card.quote { justify-content: space-between; gap: 1.6cqw; } .deck .who { font-size: var(--fs-s); font-weight: 700; color: var(--d-slate); }
.deck .rows, .deck .list { display: flex; flex-direction: column; }
.deck .rowi { display: flex; gap: 2cqw; padding: 1.45cqw 0; border-top: 2px solid var(--d-line); font-size: var(--fs-lead); line-height: 1.4; }
.deck .rowi:last-child { border-bottom: 2px solid var(--d-line); } .deck .rowi .n { font-size: var(--fs-lead); width: 3.3cqw; flex: none; }
.deck .li { display: flex; align-items: baseline; gap: 1.6cqw; padding: 1.45cqw 0; border-top: 2px solid var(--d-line); }
.deck .li:last-child { border-bottom: 2px solid var(--d-line); }
.deck .li b { flex: 0 0 45%; font-size: calc(var(--fs-h3) * 1.2); font-weight: 800; letter-spacing: -.03em; } .deck .li span { font-size: var(--fs-p); color: var(--d-body); }
.deck .names span { background: var(--d-white); border-radius: .85cqw; padding: 1.45cqw; text-align: center; font-size: var(--fs-p); font-weight: 800; letter-spacing: -.02em; display: flex; align-items: center; justify-content: center; }
.deck .stat { display: flex; flex-direction: column; gap: .6cqw; border-top: 4px solid var(--d-ink); padding-top: 1.25cqw; }
.deck .stat b { font-size: 3.75cqw; font-weight: 800; letter-spacing: -.05em; line-height: 1; } .deck .stat span { font-size: var(--fs-p); color: var(--d-body); line-height: 1.4; } .deck .stat i { font-style: normal; font-size: var(--fs-s); font-weight: 700; color: var(--d-slate); }
.deck .step { display: flex; flex-direction: column; gap: .6cqw; border-top: 2px solid currentColor; padding-top: 1.25cqw; }
.deck .step .n { font-size: 2.9cqw; letter-spacing: -.04em; }
.deck .photo { width: 32cqw; aspect-ratio: 62 / 76; object-fit: cover; object-position: top; border-radius: 1.25cqw; flex: none; }
.deck .score { flex: 0 0 auto; display: flex; flex-direction: column; gap: .4cqw; border-left: 2px solid var(--d-line); padding-left: 2.5cqw; }
.deck .score b { font-size: var(--fs-d); font-weight: 800; letter-spacing: -.05em; line-height: 1; } .deck .score span { font-size: var(--fs-p); color: var(--d-body); }
.deck .fact { display: flex; flex-direction: column; gap: .4cqw; border-top: 2px solid var(--d-line); padding-top: 1.25cqw; }
.deck .panel { flex: 0 0 31%; background: var(--d-ink); color: var(--d-paper); border-radius: 1.25cqw; padding: 2.9cqw; display: flex; flex-direction: column; justify-content: center; gap: 1.6cqw; }
.deck .panel > div { display: flex; flex-direction: column; gap: .4cqw; } .deck .panel > div + div { border-top: 1px solid var(--d-line-dark); padding-top: 1.6cqw; } .deck .panel span { font-size: var(--fs-p); color: var(--d-body-dark); }
.deck .deliv .card { gap: .4cqw; padding: 1.66cqw 2.08cqw; }
.deck .price .per { font-size: var(--fs-p); color: var(--d-body); } .deck .price .dark .per { color: var(--d-body-dark); }
.deck .price ul { border-top: 1px solid var(--d-line); padding-top: 1cqw; margin-top: .4cqw; } .deck .price .dark ul { border-color: var(--d-line-dark); }
.deck .note { margin-top: calc(var(--gap) * -1); }
.deck .stack { display: flex; flex-direction: column; gap: var(--gap); }
.deck .pills { display: flex; flex-wrap: wrap; gap: .6cqw; margin-top: .4cqw; } .deck .pills span { font-size: var(--fs-s); font-weight: 700; background: var(--d-mist); padding: .4cqw 1cqw; border-radius: 99px; }

/* cover and dividers */
.deck .cover { position: relative; flex: 1; display: flex; flex-direction: column; gap: 2.5cqw; }
.deck .logo { display: flex; align-items: center; gap: .85cqw; font-size: 2.08cqw; font-weight: 800; letter-spacing: -.04em; }
.deck .logo .mark { width: 2.9cqw; height: 2.3cqw; }
.deck .cover-meta { position: absolute; right: 0; top: 0; display: flex; flex-direction: column; align-items: flex-end; font-size: var(--fs-s); line-height: 1.5; color: #2D3540; }
.deck .cover-main { display: flex; flex-direction: column; gap: 1.45cqw; max-width: 66%; }
.deck .divider .s { justify-content: center; }
.deck .mid { display: flex; flex-direction: column; gap: 1.45cqw; max-width: 62%; }
.deck .mid.wide { max-width: 80%; }
.deck .h1.statement { font-size: 5cqw; line-height: 1.05; letter-spacing: -.04em; }

/* case study */
.deck .case { display: flex; gap: 4.2cqw; flex: 1; }
.deck .case-l { flex: 0 0 30%; display: flex; flex-direction: column; justify-content: space-between; gap: 2cqw; border-right: 2px solid var(--d-line); padding-right: 3.3cqw; }
.deck .case-l > div:first-child { display: flex; flex-direction: column; gap: 1.25cqw; }
.deck .case-stats { display: flex; flex-direction: column; gap: 1.6cqw; } .deck .case-stats span { font-size: var(--fs-p); color: var(--d-body); }
.deck .case-r { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 1.9cqw; }
.deck .case-r .fact { border-top: 0; padding-top: 0; }

/* next steps */
.deck .next-slide { overflow: hidden; }
.deck .next { display: flex; flex: 1; gap: 4cqw; }
.deck .next-l { flex: 1; display: flex; flex-direction: column; gap: var(--gap-l); padding-right: 37.5cqw; }
.deck .next-photo { position: absolute; right: 0; top: 0; bottom: 0; width: 37.5cqw; height: 100%; object-fit: cover; border-radius: 0 14px 14px 0; }
.deck .next .contact { display: flex; gap: 3.3cqw; } .deck .next .contact div { display: flex; flex-direction: column; gap: .4cqw; flex: 1; }
.deck .next .contact b { font-size: var(--fs-p); } .deck .next .contact span { font-size: var(--fs-p); line-height: 1.5; color: var(--d-body-dark); }
.deck .next .logo { margin-top: auto; font-size: 1.66cqw; }
.deck .next .h2 { font-size: 5cqw; }

/* ---------- phones and narrow panes: stacked, readable ---------- */
@container slide (max-width: 720px) {
  .deck .s { --pad: 22px; --gap: 10px; --gap-l: 22px; --fs-d: 40px; --fs-h: 28px; --fs-h3: 17px; --fs-lead: 16.5px; --fs-p: 15px; --fs-s: 12px; --fs-big: 32px; padding: 30px 22px 54px; }
  .deck .split, .deck .case, .deck .next { flex-direction: column; gap: 22px; }
  .deck .col-l.narrow, .deck .case-l, .deck .panel { flex: none; }
  .deck .case-l { border-right: 0; padding-right: 0; border-bottom: 2px solid var(--d-line); padding-bottom: 20px; }
  .deck .g2, .deck .g3, .deck .g4 { grid-template-columns: 1fr; } .deck .g5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .deck .names, .deck .stats, .deck .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .deck .card { border-radius: 12px; padding: 18px; gap: 6px; } .deck .deliv .card { padding: 14px 16px; }
  .deck .names span { border-radius: 10px; padding: 12px; }
  .deck .rowi, .deck .li { padding: 12px 0; gap: 14px; } .deck .rowi .n { width: 26px; }
  .deck .li { flex-direction: column; gap: 2px; } .deck .li b { flex: none; font-size: 19px; }
  .deck .stat { gap: 4px; padding-top: 10px; } .deck .stat b { font-size: 28px; }
  .deck .step { gap: 4px; padding-top: 10px; } .deck .step .n { font-size: 22px; }
  .deck .photo { width: 100%; aspect-ratio: 4 / 3.4; border-radius: 12px; }
  .deck .score { border-left: 0; padding-left: 0; border-top: 2px solid var(--d-line); padding-top: 14px; } .deck .score b { font-size: 48px; }
  .deck .panel { border-radius: 12px; padding: 22px; gap: 14px; } .deck .panel > div + div { padding-top: 14px; }
  .deck .fact { padding-top: 12px; gap: 4px; }
  .deck .pills { gap: 6px; } .deck .pills span { padding: 4px 12px; }
  .deck .cover { gap: 22px; padding-bottom: 120px; } .deck .logo { font-size: 18px; gap: 8px; } .deck .logo .mark { width: 24px; height: 19px; }
  .deck .cover-meta { position: static; align-items: flex-start; order: 3; }
  .deck .cover-main, .deck .mid { max-width: none; gap: 12px; }
  .deck .h1.statement { font-size: 28px; }
  .deck .divider .s { padding-bottom: 120px; }
  .deck .ridges { height: 110px; }
  .deck .case-stats { gap: 14px; } .deck .case-r { gap: 18px; }
  .deck .next-l { padding-right: 0; gap: 22px; } .deck .next .h2 { font-size: 32px; }
  .deck .next-photo { position: static; width: 100%; height: 280px; border-radius: 12px; order: -1; }
  .deck .next .contact { flex-direction: column; gap: 14px; } .deck .next .logo { margin-top: 0; font-size: 16px; }
  .deck .foot { bottom: 20px; }
  .deck .note { margin-top: 0; }
}
@supports not (container-type: inline-size) { .deck .slide { aspect-ratio: auto; } }

/* phones drop the fixed ratio so text never clips */
@media (max-width: 760px) { .deck .slide { aspect-ratio: auto; } .deck { gap: 12px; } }

/* ---------- present mode: one slide at a time, fitted to the screen ---------- */
.deck.presenting { position: fixed; inset: 0; z-index: 100; background: #0d0e10; display: block; gap: 0; }
.deck.presenting .slide { display: none; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(100vw, 177.78vh); height: auto; aspect-ratio: 16 / 9; border-radius: 0; box-shadow: none; }
.deck.presenting .slide.on { display: flex; }
.deck.presenting .next-photo { border-radius: 0; }
.present-ui { position: fixed; z-index: 101; right: 18px; bottom: 16px; display: flex; gap: 8px; align-items: center; color: #c9d2dc; font: 600 13px 'Manrope', system-ui, sans-serif; }
.present-ui button { background: rgba(255,255,255,.1); color: #f5f4ef; border: 0; border-radius: 99px; padding: 8px 14px; cursor: pointer; font: inherit; }

/* ---------- print / PDF: one landscape page per slide ---------- */
@media print {
  @page { size: 297mm 167.06mm; margin: 0; }
  .deck { gap: 0; display: block; }
  .deck .slide { width: 297mm; height: 167.06mm; aspect-ratio: auto; border-radius: 0; box-shadow: none; break-after: page; page-break-after: always; overflow: hidden; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .deck .slide:last-child { break-after: auto; page-break-after: auto; }
  .deck .next-photo { border-radius: 0; }
  #respond-slot, .banner { display: none !important; }
}
