/* ============================================================
   LOCKED BRAND SLIDE SYSTEM — do not edit per presentation.
   Every slide is 1280×720 (13.333in × 7.5in @ 96dpi).
   Brand is selected via [data-brand] on the .slide element.
   ============================================================ */

/* ---------- fonts ---------- */
@font-face { font-family: 'Poppins'; src: url('/fonts/Poppins-ExtraLight.ttf') format('truetype'); font-weight: 200; }
@font-face { font-family: 'Poppins'; src: url('/fonts/Poppins-Light.ttf') format('truetype'); font-weight: 300; }
@font-face { font-family: 'Poppins'; src: url('/fonts/Poppins-Regular.ttf') format('truetype'); font-weight: 400; }
@font-face { font-family: 'Poppins'; src: url('/fonts/Poppins-Medium.ttf') format('truetype'); font-weight: 500; }
@font-face { font-family: 'Poppins'; src: url('/fonts/Poppins-SemiBold.ttf') format('truetype'); font-weight: 600; }
@font-face { font-family: 'Genova'; src: url('/fonts/Genova-Thin.otf') format('opentype'); font-weight: 200; }
@font-face { font-family: 'Genova'; src: url('/fonts/Genova-ThinItalic.otf') format('opentype'); font-weight: 200; font-style: italic; }
@font-face { font-family: 'Genova'; src: url('/fonts/Genova-Regular.otf') format('opentype'); font-weight: 400; }
@font-face { font-family: 'Genova'; src: url('/fonts/Genova-Italic.otf') format('opentype'); font-weight: 400; font-style: italic; }
@font-face { font-family: 'Genova'; src: url('/fonts/Genova-Medium.otf') format('opentype'); font-weight: 500; }
@font-face { font-family: 'Genova'; src: url('/fonts/Genova-Black.otf') format('opentype'); font-weight: 900; }
@font-face { font-family: 'Genova'; src: url('/fonts/Genova-BlackItalic.otf') format('opentype'); font-weight: 900; font-style: italic; }

/* ---------- brand tokens ---------- */
.slide[data-brand="acumen"] {
  --font: 'Poppins', 'Segoe UI', sans-serif;
  --paper: #FFFFFF; --ink: #0A0A0A; --muted: #6F6F6F;
  --field: #0A0A0A; --field-ink: #FFFFFF; --field-muted: rgba(255,255,255,.55);
  --hairline: rgba(0,0,0,.13); --field-hairline: rgba(255,255,255,.22);
}
.slide[data-brand="icosa"] {
  --font: 'Genova', 'Segoe UI', sans-serif;
  --paper: #FFFFFF; --ink: #0A121C; --muted: #64748E;
  --field: #64748E; --field-ink: #FFFFFF; --field-muted: #9AA6BD;
  --hairline: rgba(10,18,28,.14); --field-hairline: rgba(255,255,255,.28);
}
.slide[data-brand="alastra"] {
  --font: 'Poppins', 'Segoe UI', sans-serif;
  --paper: #F7F4EF; --ink: #1C1A17; --muted: #9A9084;
  --field: #2B2723; --field-ink: #F7F4EF; --field-muted: rgba(247,244,239,.55);
  --hairline: rgba(28,26,23,.14); --field-hairline: rgba(247,244,239,.22);
}
.slide[data-brand="velur"] {
  --font: 'Poppins', 'Segoe UI', sans-serif;
  --paper: #F4EFE7; --ink: #241C15; --muted: #8C8073;
  --field: #241C15; --field-ink: #F4EFE7; --field-muted: rgba(244,239,231,.6);
  --hairline: rgba(36,28,21,.16); --field-hairline: rgba(244,239,231,.25);
}

/* ---------- canvas ---------- */
.slide {
  width: 1280px; height: 720px;
  position: relative; overflow: hidden;
  background: var(--paper); color: var(--ink);
  font-family: var(--font); font-weight: 300;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}
.slide *, .slide *::before, .slide *::after { box-sizing: inherit; margin: 0; }
.slide img { display: block; }

/* dark "field" slides (cover / divider / closing / back) */
.slide.on-field { background: var(--field); color: var(--field-ink); }

/* padded content area — tight margins (≈0.5in) */
.pad { position: absolute; inset: 48px; }

/* ---------- shared primitives (locked) ---------- */
.eyebrow {
  font-size: 12px; font-weight: 600; letter-spacing: .32em;
  text-transform: uppercase; color: var(--muted);
}
.on-field .eyebrow, .over-img .eyebrow { color: var(--field-muted); }
.slide[data-brand="icosa"] .eyebrow { font-weight: 500; }

.display { font-weight: 200; line-height: 1.08; letter-spacing: .01em; }

.hairline { border: 0; border-top: 1px solid var(--hairline); }
.on-field .hairline, .over-img .hairline { border-top-color: var(--field-hairline); }

/* logo badge — boxed square (Acumen), wide (ICOSA), wordmark mask (VELUR) */
.logo { display: block; }
.logo.square { width: 62px; height: 62px; object-fit: contain; }
.logo.wide { height: 44px; width: auto; object-fit: contain; }
.logo.wordmark {
  width: 128px; height: 44px; background: currentColor;
  -webkit-mask: var(--logo-url) no-repeat left center / contain;
  mask: var(--logo-url) no-repeat left center / contain;
}
/* typographic boxed wordmark (brands without a raster logo yet, e.g. ALASTRA) */
.logo.typebox {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid currentColor; padding: 0 16px; height: 44px;
  font-family: var(--font); font-weight: 200; font-size: 15px;
  letter-spacing: .42em; text-indent: .42em; text-transform: uppercase;
  color: inherit; white-space: nowrap;
}
.s-back .logo.typebox { height: 64px; padding: 0 26px; font-size: 21px; }
.a-page .lh .logo.typebox { height: 38px; font-size: 12px; padding: 0 12px; }
.a-cover .top .logo.typebox { height: 50px; font-size: 15px; }

/* footer — locked on all content slides */
.footer {
  position: absolute; left: 48px; right: 48px; bottom: 26px;
  display: flex; align-items: baseline; justify-content: space-between;
  padding-top: 12px; border-top: 1px solid var(--hairline);
  font-size: 10.5px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  color: var(--muted);
}
.footer .pageno { font-weight: 400; letter-spacing: .12em; }

/* full-bleed background image */
.bg { position: absolute; inset: 0; }
.bg img { width: 100%; height: 100%; object-fit: cover; }
.bg .scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.55)); }

/* image placeholder (empty state) */
.ph {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--ink) 5%, var(--paper));
  border: 1px dashed var(--hairline);
  color: var(--muted); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500;
}

/* ============================================================
   SLIDE LAYOUTS
   ============================================================ */

/* --- cover --- */
.s-cover { color: #fff; }
.s-cover .inner {
  position: absolute; inset: 48px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; z-index: 2;
}
.s-cover .client { font-size: 12px; font-weight: 600; letter-spacing: .34em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-bottom: 26px; }
.s-cover h1 { font-size: 72px; font-weight: 200; letter-spacing: .06em; text-transform: uppercase; line-height: 1.05; max-width: 1050px; }
.s-cover .rule { width: 64px; border-top: 1px solid rgba(255,255,255,.5); margin: 30px auto 24px; }
.s-cover .subtitle { font-size: 20px; font-weight: 200; letter-spacing: .5em; text-transform: uppercase; color: rgba(255,255,255,.9); padding-left: .5em; }
.s-cover .date { position: absolute; right: 48px; bottom: 48px; z-index: 2; font-size: 11px; font-weight: 400; letter-spacing: .26em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.s-cover .logo-slot { position: absolute; left: 48px; bottom: 48px; z-index: 2; }
.s-cover.no-image { background: var(--field); }

/* --- statement --- */
.s-statement .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-statement .text {
  flex: 1; display: flex; align-items: center;
  font-size: 30px; font-weight: 200; line-height: 1.75; text-align: justify;
}
.s-statement .text > div { max-width: 1080px; margin: 0 auto; }

/* --- divider --- */
.s-divider { }
.s-divider .num {
  position: absolute; top: 44px; right: 48px; z-index: 2;
  font-size: 15px; font-weight: 200; letter-spacing: .3em; color: var(--field-muted);
}
.s-divider .inner { position: absolute; left: 48px; right: 48px; bottom: 150px; z-index: 2; }
.s-divider .kicker { font-size: 12px; font-weight: 600; letter-spacing: .34em; text-transform: uppercase; color: var(--field-muted); margin-bottom: 20px; }
.s-divider h2 { font-size: 60px; font-weight: 200; letter-spacing: .08em; text-transform: uppercase; line-height: 1.1; }
.s-divider .rule { margin-top: 30px; border-top: 1px solid var(--field-hairline); }
.s-divider .logo-slot { position: absolute; left: 48px; bottom: 44px; z-index: 2; }
.slide[data-brand="icosa"] .s-divider-title, .slide[data-brand="icosa"] .s-divider h2 { font-weight: 900; font-style: italic; letter-spacing: .04em; }

/* --- image-full --- */
.s-imagefull .bg .scrim { background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.45)); }
.s-imagefull .caption {
  position: absolute; left: 48px; bottom: 44px; z-index: 2; color: #fff;
  font-size: 12px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase;
  padding-top: 12px; border-top: 1px solid rgba(255,255,255,.5); min-width: 260px;
}
.s-imagefull .pageno { position: absolute; right: 48px; bottom: 44px; z-index: 2; color: rgba(255,255,255,.8); font-size: 10.5px; letter-spacing: .12em; }

/* --- image grids --- */
.s-grid .inner { position: absolute; inset: 48px 48px 88px; display: grid; gap: 14px; }
.s-grid.cols2 .inner { grid-template-columns: 1fr 1fr; }
.s-grid.cols4 .inner { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.s-grid figure { position: relative; overflow: hidden; height: 100%; }
.s-grid figure img { width: 100%; height: 100%; object-fit: cover; }
.s-grid figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 18px 12px;
  background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.55));
  color: #fff; font-size: 10.5px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
}

/* --- split (image + text) --- */
.s-split .inner { position: absolute; inset: 48px 48px 88px; display: grid; grid-template-columns: 1.05fr 1fr; gap: 44px; }
.s-split.img-right .inner { grid-template-columns: 1fr 1.05fr; }
.s-split .media { overflow: hidden; }
.s-split .media img { width: 100%; height: 100%; object-fit: cover; }
.s-split .copy { display: flex; flex-direction: column; justify-content: center; }
.s-split .copy h3 { font-size: 40px; font-weight: 200; line-height: 1.15; margin: 18px 0 22px; }
.s-split .copy p { font-size: 15px; font-weight: 300; line-height: 1.85; color: var(--ink); white-space: pre-wrap; }

/* --- text --- */
.s-text .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-text h3 { font-size: 44px; font-weight: 200; line-height: 1.12; margin: 18px 0 30px; max-width: 900px; }
.s-text .cols { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; flex: 1; align-content: start; }
.s-text .cols p { font-size: 14.5px; font-weight: 300; line-height: 1.9; white-space: pre-wrap; }
.s-text .cols.single { grid-template-columns: 1fr; }
.s-text .cols.single p { max-width: 860px; }

/* --- specs --- */
.s-specs .inner { position: absolute; inset: 48px 48px 88px; display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 48px; }
.s-specs .left { display: flex; flex-direction: column; }
.s-specs .left h3 { font-size: 38px; font-weight: 200; line-height: 1.15; margin-top: 18px; }
.s-specs .left .media { margin-top: 26px; flex: 1; overflow: hidden; }
.s-specs .left .media img { width: 100%; height: 100%; object-fit: cover; }
.s-specs .rows { align-self: center; width: 100%; }
.s-specs .row { display: grid; grid-template-columns: 210px 1fr; gap: 20px; padding: 15px 2px; border-bottom: 1px solid var(--hairline); }
.s-specs .row:first-child { border-top: 1px solid var(--hairline); }
.s-specs .row .k { font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); align-self: center; }
.s-specs .row .v { font-size: 15px; font-weight: 300; line-height: 1.5; }

/* --- stats --- */
.s-stats .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-stats .items { flex: 1; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 36px; align-items: center; }
.s-stats .item { border-left: 1px solid var(--hairline); padding-left: 26px; }
.s-stats .value { font-size: 66px; font-weight: 200; line-height: 1; letter-spacing: .01em; }
.s-stats .label { margin-top: 14px; font-size: 11px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); }

/* --- before / after --- */
.s-ba .inner { position: absolute; inset: 48px 48px 88px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.s-ba figure { position: relative; overflow: hidden; }
.s-ba figure img { width: 100%; height: 100%; object-fit: cover; }
.s-ba .tag {
  position: absolute; top: 0; left: 0; z-index: 2; padding: 9px 18px;
  background: var(--field); color: var(--field-ink);
  font-size: 10.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase;
}
.s-ba .caption { position: absolute; left: 48px; bottom: 30px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; color: var(--muted); }
.s-ba.has-caption .inner { bottom: 108px; }

/* --- closing --- */
.s-closing .inner {
  position: absolute; inset: 48px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
}
.s-closing .text { font-size: 34px; font-weight: 200; line-height: 1.7; max-width: 980px; }
.s-closing .rule { width: 64px; border-top: 1px solid var(--field-hairline); margin: 36px auto 0; }
.s-closing .logo-slot { position: absolute; left: 48px; bottom: 48px; }

/* --- back cover --- */
.s-back .inner {
  position: absolute; inset: 48px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; gap: 34px;
}
.s-back .logo.square { width: 96px; height: 96px; }
.s-back .logo.wide { height: 64px; }
.s-back .logo.wordmark { width: 200px; height: 68px; -webkit-mask-position: center; mask-position: center; }
.s-back .site { font-size: 15px; font-weight: 300; letter-spacing: .34em; text-transform: lowercase; color: var(--field-ink); }
.s-back .tagline { font-size: 11px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; color: var(--field-muted); }

/* --- image + title --- */
.s-imgtitle .bg .scrim { background: linear-gradient(180deg, rgba(0,0,0,.05) 40%, rgba(0,0,0,.62)); }
.s-imgtitle .inner { position: absolute; left: 48px; right: 48px; bottom: 56px; z-index: 2; color: #fff; }
.s-imgtitle h2 { font-size: 52px; font-weight: 200; letter-spacing: .06em; text-transform: uppercase; line-height: 1.1; }
.s-imgtitle .sub { margin-top: 14px; font-size: 12px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.s-imgtitle .pageno { position: absolute; right: 48px; top: 44px; z-index: 2; color: rgba(255,255,255,.8); font-size: 10.5px; letter-spacing: .12em; }

/* --- 3-image grid --- */
.s-grid.cols3 .inner { grid-template-columns: 1.35fr 1fr; }
.s-grid.cols3 .stack { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; min-height: 0; }

/* --- extended image grids (5 / 7 / 8 / 9 / 10) --- */
.s-grid.cols5 .inner { grid-template-columns: 1.55fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.s-grid.cols5 figure:first-child { grid-row: span 2; }
.s-grid.cols7 .inner { grid-template-columns: repeat(12, 1fr); grid-template-rows: 1fr 1fr; }
.s-grid.cols7 figure { grid-column: span 3; }
.s-grid.cols7 figure:nth-child(-n+3) { grid-column: span 4; }
.s-grid.cols8 .inner { grid-template-columns: repeat(4, 1fr); grid-template-rows: 1fr 1fr; }
.s-grid.cols9 .inner { grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); }
.s-grid.cols10 .inner { grid-template-columns: repeat(5, 1fr); grid-template-rows: 1fr 1fr; }

/* --- one image, framed with air --- */
.s-img1 .inner { position: absolute; inset: 58px 150px 96px; display: flex; flex-direction: column; }
.s-img1 figure { flex: 1; overflow: hidden; margin: 0; min-height: 0; }
.s-img1 figure img { width: 100%; height: 100%; object-fit: cover; }
.s-img1 .cap {
  text-align: center; margin-top: 16px; font-size: 11px; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase; color: var(--muted);
}

/* --- images + text --- */
.s-imgtext .inner { position: absolute; inset: 48px 48px 88px; display: grid; gap: 42px; }
.s-imgtext.four .inner { grid-template-columns: 0.85fr 1.5fr; }
.s-imgtext.four.text-right .inner { grid-template-columns: 1.5fr 0.85fr; }
.s-imgtext.two .inner { grid-template-columns: 1fr 1.15fr; }
.s-imgtext.two.text-right .inner { grid-template-columns: 1.15fr 1fr; }
.s-imgtext .grid { display: grid; gap: 12px; min-height: 0; }
.s-imgtext.four .grid { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.s-imgtext.two .grid { grid-template-rows: 1fr 1fr; }
.s-imgtext figure { position: relative; overflow: hidden; margin: 0; }
.s-imgtext figure img { width: 100%; height: 100%; object-fit: cover; }
.s-imgtext figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 14px 10px;
  background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.55));
  color: #fff; font-size: 10px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
}
.s-imgtext .copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.s-imgtext .copy h3 { font-size: 33px; font-weight: 200; line-height: 1.2; margin: 16px 0 18px; }
.s-imgtext .copy p { font-size: 13.5px; font-weight: 300; line-height: 1.85; white-space: pre-wrap; }

/* --- 6-image board --- */
.s-grid.cols6 .inner-h { position: absolute; left: 48px; right: 48px; top: 42px; }
.s-grid.cols6 .inner.six { inset: 84px 48px 88px; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; }

/* --- contents --- */
.s-toc .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-toc .list { margin-top: 40px; flex: 1; align-content: start; display: grid; grid-template-columns: 1fr; column-gap: 60px; }
.s-toc .list.two { grid-template-columns: 1fr 1fr; }
.s-toc .it { display: flex; align-items: baseline; gap: 24px; padding: 17px 2px; border-bottom: 1px solid var(--hairline); }
.s-toc .no { font-size: 13px; font-weight: 200; letter-spacing: .1em; color: var(--muted); }
.s-toc .t { font-size: 21px; font-weight: 200; letter-spacing: .02em; }

/* --- bullets / list --- */
.s-bullets .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-bullets h3 { font-size: 40px; font-weight: 200; line-height: 1.12; margin: 16px 0 8px; max-width: 900px; }
.s-bullets .list { margin-top: 22px; display: grid; grid-template-columns: 1fr; column-gap: 56px; align-content: start; }
.s-bullets .list.two { grid-template-columns: 1fr 1fr; }
.s-bullets .it { display: flex; gap: 20px; padding: 13px 2px; border-bottom: 1px solid var(--hairline); }
.s-bullets .mk { font-size: 11px; font-weight: 500; letter-spacing: .12em; color: var(--muted); padding-top: 4px; min-width: 22px; }
.s-bullets .t { font-size: 15.5px; font-weight: 300; line-height: 1.65; }

/* --- comparison --- */
.s-compare .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-compare h3 { font-size: 38px; font-weight: 200; line-height: 1.12; margin: 16px 0 30px; }
.s-compare .cols2 { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-content: start; }
.s-compare .col { border-top: 2px solid var(--ink); padding-top: 18px; }
.s-compare .ct { font-size: 12px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; margin-bottom: 14px; }
.s-compare .it { font-size: 14.5px; font-weight: 300; line-height: 1.7; padding: 9px 0; border-bottom: 1px solid var(--hairline); }

/* --- steps --- */
.s-steps .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-steps h3 { font-size: 38px; font-weight: 200; margin: 16px 0 0; }
.s-steps .row { flex: 1; display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 26px; align-content: center; }
.s-steps .step { border-top: 1px solid var(--ink); padding-top: 18px; }
.s-steps .no { font-size: 30px; font-weight: 200; color: var(--muted); }
.s-steps .st { margin-top: 12px; font-size: 17px; font-weight: 400; letter-spacing: .02em; }
.s-steps .sd { margin-top: 8px; font-size: 12.5px; font-weight: 300; line-height: 1.7; color: var(--muted); }

/* --- timeline --- */
.s-timeline .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-timeline h3 { font-size: 38px; font-weight: 200; margin: 16px 0 0; }
.s-timeline .track { flex: 1; position: relative; display: flex; align-items: center; }
.s-timeline .line { position: absolute; left: 0; right: 0; top: 46%; border-top: 1px solid var(--hairline); }
.s-timeline .points { position: relative; width: 100%; display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 20px; }
.s-timeline .dot { width: 9px; height: 9px; background: var(--ink); border-radius: 50%; margin-bottom: 18px; }
.s-timeline .date { font-size: 10.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.s-timeline .lb { margin-top: 7px; font-size: 17px; font-weight: 400; }
.s-timeline .ds { margin-top: 6px; font-size: 12px; font-weight: 300; line-height: 1.6; color: var(--muted); max-width: 200px; }

/* --- team --- */
.s-team .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-team h3 { font-size: 38px; font-weight: 200; margin: 16px 0 26px; }
.s-team .row { flex: 1; display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 22px; align-content: start; }
.s-team .photo { aspect-ratio: 1; overflow: hidden; }
.s-team .photo img { width: 100%; height: 100%; object-fit: cover; }
.s-team .nm { margin-top: 14px; font-size: 16px; font-weight: 400; }
.s-team .rl { margin-top: 4px; font-size: 10.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }

/* --- shared table --- */
.ktable { width: 100%; border-collapse: collapse; }
.ktable th {
  text-align: left; font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  color: var(--muted); padding: 10px 12px 10px 2px; border-bottom: 1px solid var(--ink);
}
.ktable td { font-size: 13.5px; font-weight: 300; line-height: 1.5; padding: 11px 12px 11px 2px; border-bottom: 1px solid var(--hairline); vertical-align: top; }
.ktable tr td:first-child { font-weight: 400; }

.s-table .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-table h3 { font-size: 34px; font-weight: 200; margin: 14px 0 22px; }
.s-table .twrap { flex: 1; overflow: hidden; }

/* --- totals --- */
.s-totals .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-totals h3 { font-size: 38px; font-weight: 200; margin: 16px 0 0; }
.s-totals .box { margin: auto 0; max-width: 720px; width: 100%; align-self: center; }
.s-totals .ln { display: flex; justify-content: space-between; align-items: baseline; padding: 15px 2px; border-bottom: 1px solid var(--hairline); font-size: 16px; font-weight: 300; }
.s-totals .ln .amt { font-weight: 400; letter-spacing: .02em; }
.s-totals .ln.total { border-top: 2px solid var(--ink); border-bottom: none; margin-top: 6px; padding-top: 22px; font-size: 21px; font-weight: 200; }
.s-totals .ln.total .amt { font-size: 27px; font-weight: 200; }
.s-totals .note { margin-top: 22px; font-size: 11.5px; color: var(--muted); line-height: 1.7; }

/* --- palette --- */
.s-palette .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-palette h3 { font-size: 38px; font-weight: 200; margin: 16px 0 30px; }
.s-palette .sw { flex: 1; display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 18px; align-content: center; }
.s-palette .clr { height: 190px; border: 1px solid var(--hairline); }
.s-palette .nm { margin-top: 14px; font-size: 14px; font-weight: 400; }
.s-palette .hx { margin-top: 4px; font-size: 10.5px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }

/* --- signoff --- */
.s-signoff .inner { position: absolute; inset: 48px 48px 88px; display: flex; flex-direction: column; }
.s-signoff h3 { font-size: 38px; font-weight: 200; margin: 16px 0 0; }
.s-signoff .bd { margin-top: 18px; font-size: 14.5px; font-weight: 300; line-height: 1.8; max-width: 760px; white-space: pre-wrap; }
.s-signoff .blocks { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding-bottom: 16px; }
.s-signoff .sig { border-bottom: 1px solid var(--ink); height: 74px; }
.s-signoff .nm { margin-top: 12px; font-size: 16px; font-weight: 400; }
.s-signoff .rl { margin-top: 4px; font-size: 10.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.s-signoff .dt { margin-top: 20px; font-size: 10.5px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); border-top: 1px solid var(--hairline); padding-top: 10px; width: 55%; }

/* --- contact (dark) --- */
.s-contact .inner { position: absolute; inset: 48px; display: flex; flex-direction: column; justify-content: center; max-width: 760px; margin: 0 auto; right: 48px; left: 48px; }
.s-contact h2 { font-size: 52px; font-weight: 200; letter-spacing: .03em; margin-bottom: 40px; }
.s-contact .ln { display: flex; gap: 30px; padding: 15px 2px; border-bottom: 1px solid var(--field-hairline); align-items: baseline; }
.s-contact .k { font-size: 10.5px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--field-muted); min-width: 130px; }
.s-contact .v { font-size: 17px; font-weight: 200; letter-spacing: .04em; }
.s-contact .logo-slot { position: absolute; left: 48px; bottom: 48px; }

/* ============================================================
   A4 DOCUMENT PAGES — LANDSCAPE (1123 × 794 px = 297 × 210 mm)
   ============================================================ */
.slide.a4 { width: 1123px; height: 794px; }

.a-page { position: absolute; inset: 44px 52px 40px; display: flex; flex-direction: column; }
.a-page .lh { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 18px; border-bottom: 1px solid var(--ink); margin-bottom: 30px; }
.a-page .lh .logo.square { width: 46px; height: 46px; }
.a-page .lh .logo.wide { height: 34px; }
.a-page .lh .logo.wordmark { width: 100px; height: 34px; }
.a-page .lh .dt, .a-page .lh .qt { font-size: 10px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--muted); padding-top: 16px; }
.a-page .lh .qt { font-size: 14px; font-weight: 200; letter-spacing: .4em; color: var(--ink); }
.a-page .eyebrow { margin-bottom: 10px; }
.a-page .ah { font-size: 27px; font-weight: 200; line-height: 1.2; margin-bottom: 20px; }
.a-page .bd { font-size: 12.5px; font-weight: 300; line-height: 1.95; white-space: pre-wrap; }
.a-page .twrap { flex: 0 1 auto; overflow: hidden; }
.a-page .ktable th { font-size: 8.5px; padding: 8px 8px 8px 2px; }
.a-page .ktable td { font-size: 11px; padding: 9px 8px 9px 2px; }

.afoot {
  margin-top: auto; display: flex; justify-content: space-between; padding-top: 12px;
  border-top: 1px solid var(--hairline);
  font-size: 8.5px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: var(--muted);
}

/* a4 cover */
.a-cover .top { position: absolute; top: 52px; left: 52px; z-index: 2; }
.a-cover .top .logo.square { width: 58px; height: 58px; }
.a-cover .top .logo.wide { height: 40px; }
.a-cover .imgbox { position: absolute; inset: 0; }
.a-cover .imgbox img { width: 100%; height: 100%; object-fit: cover; }
.a-cover .imgbox::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.6)); }
.a-cover .mid { position: absolute; left: 52px; right: 52px; top: 38%; z-index: 2; }
.a-cover.has-img .mid { color: #fff; }
.a-cover .doctype { font-size: 12px; font-weight: 600; letter-spacing: .4em; text-transform: uppercase; color: var(--muted); }
.a-cover.has-img .doctype { color: rgba(255,255,255,.75); }
.a-cover h1 { font-size: 44px; font-weight: 200; letter-spacing: .04em; text-transform: uppercase; line-height: 1.15; margin-top: 20px; }
.a-cover .rule { width: 60px; border-top: 1px solid currentColor; opacity: .45; margin: 26px 0; }
.a-cover .cl { font-size: 11px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; }
.a-cover .bot { position: absolute; left: 52px; right: 52px; bottom: 44px; z-index: 2; display: flex; justify-content: space-between; font-size: 9px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); }
.a-cover.has-img .bot { color: rgba(255,255,255,.75); }

/* a4 letter */
.a-letter .rcp { font-size: 12.5px; font-weight: 300; line-height: 1.8; white-space: pre-wrap; margin-bottom: 24px; }
.a-letter .subj { font-size: 13px; font-weight: 500; margin-bottom: 22px; }
.a-letter .sig { margin-top: 44px; }
.a-letter .sig .nm { font-size: 14px; font-weight: 400; }
.a-letter .sig .rl { margin-top: 4px; font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }

/* a4 quotation */
.a-quote .qmeta { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 40px; margin-bottom: 26px; }
.a-quote .qmeta > div { display: flex; gap: 16px; padding: 8px 2px; border-bottom: 1px solid var(--hairline); align-items: baseline; }
.a-quote .qmeta .k { font-size: 8.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); min-width: 92px; }
.a-quote .qmeta .v { font-size: 11.5px; font-weight: 400; }
.a-quote .totbox { margin-top: 18px; margin-left: auto; width: 42%; }
.a-quote .totbox .ln { display: flex; justify-content: space-between; padding: 8px 2px; border-bottom: 1px solid var(--hairline); font-size: 11.5px; font-weight: 300; }
.a-quote .totbox .ln.total { border-top: 2px solid var(--ink); border-bottom: none; margin-top: 4px; padding-top: 13px; font-size: 13.5px; font-weight: 400; }
.a-quote .totbox .ln.total .amt { font-size: 16px; }
.a-quote .qnote { margin-top: 20px; font-size: 9.5px; color: var(--muted); line-height: 1.8; }

/* a4 product datasheet — full spec sheet (Luminaire + Electrical + dimensions) */
.a-ds .dshead { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 18px; }
.a-ds .dshead h3 { font-size: 31px; font-weight: 200; line-height: 1.12; margin-top: 7px; letter-spacing: .01em; }
.a-ds .dscode {
  font-size: 10.5px; font-weight: 500; letter-spacing: .16em; color: var(--muted);
  border: 1px solid var(--hairline); padding: 7px 13px; white-space: nowrap;
}
.a-ds .dsgrid3 { flex: 1; display: grid; grid-template-columns: 0.72fr 1fr 1fr; gap: 32px; min-height: 0; }
.a-ds .dsleft { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.a-ds .dsimg {
  flex: 1.15; background: color-mix(in srgb, var(--ink) 4%, var(--paper));
  border: 1px solid var(--hairline); overflow: hidden; min-height: 0;
}
.a-ds .dsimg img { width: 100%; height: 100%; object-fit: contain; padding: 16px; box-sizing: border-box; }
.a-ds .dsimg .ph { border: 0; height: 100%; }
.a-ds .dsdim { flex: 1; border: 1px solid var(--hairline); padding: 10px 12px; display: flex; flex-direction: column; min-height: 0; background: #fff; }
.a-ds .dsdim .dslabel { font-size: 8.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.a-ds .dsdim img { flex: 1; width: 100%; object-fit: contain; min-height: 0; }
.a-ds .dscol { min-width: 0; display: flex; flex-direction: column; }
.a-ds .dshead2 {
  font-size: 10px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase;
  padding-bottom: 9px; border-bottom: 2px solid var(--ink); margin-bottom: 4px;
}
.a-ds .dsspecs { overflow: hidden; }
.a-ds .dsspecs .row { display: flex; gap: 14px; padding: 6.5px 2px; border-bottom: 1px solid color-mix(in srgb, var(--ink) 22%, transparent); font-size: 11px; }
.a-ds .dsspecs .k { min-width: 150px; flex-shrink: 0; font-size: 8.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); padding-top: 2px; }
.a-ds .dsspecs .v { font-weight: 300; line-height: 1.55; min-width: 0; }
.a-ds .dsnote { margin-top: auto; padding-top: 12px; font-size: 9px; color: var(--muted); line-height: 1.7; }

/* a4 terms */
.a-page .terms .it { display: flex; gap: 18px; padding: 11px 2px; border-bottom: 1px solid var(--hairline); }
.a-page .terms .no { font-size: 9px; font-weight: 600; letter-spacing: .1em; color: var(--muted); padding-top: 3px; min-width: 20px; }
.a-page .terms .t { font-size: 11.5px; font-weight: 300; line-height: 1.75; }

/* a4 approval */
.a-page .ablocks { margin-top: 60px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.a-page .ablocks .sig { border-bottom: 1px solid var(--ink); height: 64px; }
.a-page .ablocks .nm { margin-top: 10px; font-size: 13px; font-weight: 400; }
.a-page .ablocks .rl { margin-top: 3px; font-size: 9px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.a-page .ablocks .dt { margin-top: 18px; font-size: 9px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); border-top: 1px solid var(--hairline); padding-top: 8px; width: 55%; }

/* ============================================================
   CLASSIC DECK STYLE — official Acumen pptx, measured 1:1
   (slide 13.333×7.5in @96dpi → 1280×720px; 1in = 96px)
   ============================================================ */

/* footer bar: mark · hairline · website — x=0.591in, w=12.249in, y=6.943in, h=0.242in */
.cbar {
  position: absolute; left: 57px; right: 47px; bottom: 26px; height: 38px; z-index: 4;
  display: flex; align-items: center; gap: 14px; color: var(--ink);
}
.cbar .cmark { height: 38px; width: 38px; object-fit: contain; }
.cbar .cline { flex: 1; border-top: 2px solid currentColor; }
.cbar .csite { font-size: 10.5px; font-weight: 300; letter-spacing: .06em; }
.cbar.dark { color: #fff; }

/* --- cover: small bold title + light subtitle, dead centre; logo 1.097in bottom-left --- */
.slide[data-style="classic"] .s-cover h1 {
  font-size: 19px; font-weight: 600; letter-spacing: .3em; text-indent: .3em; line-height: 1.5;
}
.slide[data-style="classic"] .s-cover .rule { display: none; }
.slide[data-style="classic"] .s-cover .subtitle {
  margin-top: 8px; font-size: 16px; font-weight: 300; letter-spacing: .02em;
  text-transform: none; padding-left: 0; color: #fff;
}
.slide[data-style="classic"] .s-cover .client { font-size: 10px; letter-spacing: .3em; margin-bottom: 20px; }
.slide[data-style="classic"] .s-cover .logo-slot { left: 58px; bottom: 52px; }
.slide[data-style="classic"] .s-cover .logo.square { width: 105px; height: 105px; }
.slide[data-style="classic"] .s-cover .date { font-size: 10px; }

/* --- statement: 8.84in-wide justified block, centred both ways, 12pt --- */
.slide[data-style="classic"] .s-statement .inner { inset: 48px 48px 78px; }
.slide[data-style="classic"] .s-statement .eyebrow { display: none; }
.slide[data-style="classic"] .s-statement .text { font-size: 16.5px; line-height: 1.8; font-weight: 300; }
.slide[data-style="classic"] .s-statement .text > div { max-width: 849px; }

/* --- divider: title centred mid-slide, 14pt Poppins Light --- */
.slide[data-style="classic"] .s-divider .num,
.slide[data-style="classic"] .s-divider .kicker,
.slide[data-style="classic"] .s-divider .rule,
.slide[data-style="classic"] .s-divider .logo-slot { display: none; }
.slide[data-style="classic"] .s-divider .inner {
  left: 48px; right: 48px; top: 0; bottom: 0;
  display: flex; align-items: center; justify-content: center; text-align: center;
}
.slide[data-style="classic"] .s-divider h2 {
  font-size: 19px; font-weight: 300; letter-spacing: .12em; line-height: 1.4;
}

/* --- image slides: edge-to-edge above the bar --- */
.slide[data-style="classic"] .s-grid .inner { inset: 0 0 64px 0; gap: 8px; }
.slide[data-style="classic"] .s-grid.cols6 .inner.six { inset: 64px 0 64px 0; }
.slide[data-style="classic"] .s-grid.cols6 .inner-h { left: 57px; top: 26px; }
.slide[data-style="classic"] .s-ba .inner { inset: 0 0 64px 0; gap: 8px; }
.slide[data-style="classic"] .s-ba.has-caption .inner { bottom: 96px; }
.slide[data-style="classic"] .s-ba .caption { left: 57px; bottom: 62px; }

/* --- closing: white slide, small centred text (12pt), bar --- */
.slide[data-style="classic"] .s-closing .inner { inset: 48px 48px 78px; }
.slide[data-style="classic"] .s-closing .text {
  font-size: 16.5px; font-weight: 300; line-height: 1.9; max-width: 680px; color: var(--ink);
}

/* --- back cover: website centred (11pt), logo 0.808in bottom-left --- */
.slide[data-style="classic"] .s-back .inner { gap: 0; }
.slide[data-style="classic"] .s-back .logo { position: absolute; left: 58px; bottom: 52px; }
.slide[data-style="classic"] .s-back .logo.square { width: 78px; height: 78px; }
.slide[data-style="classic"] .s-back .site { font-size: 15px; font-weight: 300; letter-spacing: .04em; text-transform: none; }
.slide[data-style="classic"] .s-back .tagline { font-size: 9.5px; letter-spacing: .32em; }

/* --- generic content slides: keep type calm, room for the bar --- */
.slide[data-style="classic"] .footer { display: none; }
.slide[data-style="classic"] .s-text .inner,
.slide[data-style="classic"] .s-specs .inner,
.slide[data-style="classic"] .s-stats .inner,
.slide[data-style="classic"] .s-toc .inner,
.slide[data-style="classic"] .s-bullets .inner,
.slide[data-style="classic"] .s-compare .inner,
.slide[data-style="classic"] .s-steps .inner,
.slide[data-style="classic"] .s-timeline .inner,
.slide[data-style="classic"] .s-team .inner,
.slide[data-style="classic"] .s-table .inner,
.slide[data-style="classic"] .s-totals .inner,
.slide[data-style="classic"] .s-palette .inner,
.slide[data-style="classic"] .s-signoff .inner,
.slide[data-style="classic"] .s-imgtext .inner,
.slide[data-style="classic"] .s-split .inner { bottom: 78px; }
.slide[data-style="classic"] .s-img1 .inner { inset: 50px 130px 84px; }

/* ---------- print ---------- */
@media print {
  @page { size: 13.333in 7.5in; margin: 0; }
  body { margin: 0; }
  .slide { page-break-after: always; break-inside: avoid; }
  .slide:last-child { page-break-after: auto; }
  .footer, .eyebrow, .s-cover, .s-divider, .s-closing, .s-back, .s-ba .tag {
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
}
