/* ==========================================================================
   KYTEL THERAPEUTICS — BRAND STYLESHEET  (kytel.css)
   The single stylesheet for every Kytel deliverable: decks, brochures,
   one-pagers, product lists, letterheads, cards and social.
   Read reference/00_RULES.md before editing. Token sources are documented
   in reference/01_colors.md and reference/02_typography.md.
   ========================================================================== */

/* ---------- 1. FONTS (bundled, offline) ---------------------------------- */
@font-face{font-family:"Inter";font-weight:300;font-style:normal;src:url("../fonts/inter/web/inter-light.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:300;font-style:italic;src:url("../fonts/inter/web/inter-lightitalic.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:400;font-style:normal;src:url("../fonts/inter/web/inter-regular.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:400;font-style:italic;src:url("../fonts/inter/web/inter-italic.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;src:url("../fonts/inter/web/inter-medium.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:italic;src:url("../fonts/inter/web/inter-mediumitalic.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;src:url("../fonts/inter/web/inter-semibold.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:700;font-style:normal;src:url("../fonts/inter/web/inter-bold.woff2") format("woff2")}
@font-face{font-family:"Inter Display";font-weight:300;src:url("../fonts/inter/web/interdisplay-light.woff2") format("woff2")}
@font-face{font-family:"Inter Display";font-weight:400;src:url("../fonts/inter/web/interdisplay-regular.woff2") format("woff2")}
@font-face{font-family:"Inter Display";font-weight:500;src:url("../fonts/inter/web/interdisplay-medium.woff2") format("woff2")}
@font-face{font-family:"Inter Display";font-weight:600;src:url("../fonts/inter/web/interdisplay-semibold.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:300;font-style:normal;src:url("../fonts/ibm-plex-sans/web/ibmplexsans-light.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:300;font-style:italic;src:url("../fonts/ibm-plex-sans/web/ibmplexsans-lightitalic.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-style:normal;src:url("../fonts/ibm-plex-sans/web/ibmplexsans-regular.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-style:italic;src:url("../fonts/ibm-plex-sans/web/ibmplexsans-italic.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-style:normal;src:url("../fonts/ibm-plex-sans/web/ibmplexsans-medium.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-style:italic;src:url("../fonts/ibm-plex-sans/web/ibmplexsans-mediumitalic.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-style:normal;src:url("../fonts/ibm-plex-sans/web/ibmplexsans-semibold.woff2") format("woff2")}

/* ---------- 2. TOKENS ----------------------------------------------------- */
:root{
  /* Primary — Kytel Teal. 500 is the logo colour (#178F8C, supplied). Ramp sampled
     from the brand book p.30 (colour-managed to sRGB). */
  --k-teal-50:#E8F4F4; --k-teal-100:#B7DCDC; --k-teal-200:#95CACA; --k-teal-300:#63B4B2;
  --k-teal-400:#46A5A3; --k-teal-500:#178F8C; --k-teal-600:#14827F; --k-teal-700:#0F6663;
  --k-teal-800:#0B4F4D; --k-teal-900:#093C3B;
  --k-teal:var(--k-teal-500);
  --k-deep:#035957;            /* logo shadow / extrusion — logo use only */

  /* Secondary — Kytel Rose. Sparing: 2nd data series, attention chips, warm accents. */
  --k-rose-50:#FBF5F5; --k-rose-100:#F3E0E1; --k-rose-200:#EDD1D2; --k-rose-300:#E5BBBE;
  --k-rose-400:#E0AEB1; --k-rose-500:#D89A9E; --k-rose-600:#C68C90; --k-rose-700:#996D70;
  --k-rose-800:#775556; --k-rose-900:#5B4142;

  /* Grey (brand book naming: 50, 75, 100 … 500) */
  --k-grey-50:#E9E9E9; --k-grey-75:#A5A5A5; --k-grey-100:#808080; --k-grey-200:#494949;
  --k-grey-300:#242424; --k-grey-400:#191919; --k-grey-500:#161616;

  /* Surfaces (brand book p.30) */
  --k-surface-white:#FFFFFF;  --k-surface-white-hover:#FCFDFD;  --k-surface-white-active:#F7F9F8;
  --k-surface-light:#FCFDFD;  --k-surface-light-hover:#F7F9F8;  --k-surface-light-active:#F0F6F5;
  --k-surface-normal:#F9FBFB; --k-surface-normal-hover:#F2F7F6; --k-surface-normal-active:#EBF2F1;

  /* Text colours (measured from the 2026 collateral; brand book names the roles) */
  --k-ink:#0C2A2E;        /* headings, body, table text */
  --k-slate:#5B7476;      /* secondary text, eyebrows, captions */
  --k-on-dark:#DFEFED;    /* body text on teal/dark */
  --k-mint:#9FDFDB;       /* highlight phrase on teal/dark */
  --k-chip-ink:#094949;   /* chip / tag text */

  /* Functional (derived — see 01_colors.md) */
  --k-zebra:#F2F8F8;      /* product-table zebra row (measured) */
  --k-line:#DDE8E7;       /* hairlines, card borders (derived) */
  --k-line-strong:#C9DCDA;

  /* Gradients */
  --k-grad-dark:linear-gradient(135deg,#0A4644 0%,#0F6663 42%,#178F8C 100%);
  --k-grad-feature:linear-gradient(160deg,#178F8C 0%,#14827F 100%);
  --k-grad-wash:linear-gradient(120deg,#FFFFFF 0%,#F7FAFA 45%,#EAF4F3 100%);

  /* Families */
  --k-font-display:"Inter Display","Inter",system-ui,sans-serif;
  --k-font-sans:"Inter",system-ui,sans-serif;
  --k-font-alt:"IBM Plex Sans","Inter",system-ui,sans-serif;

  /* Shadows */
  --k-shadow-card:0 1px 2px rgba(12,42,46,.05),0 6px 18px rgba(12,42,46,.06);
  --k-shadow-lift:0 2px 4px rgba(12,42,46,.06),0 14px 34px rgba(12,42,46,.10);
}

/* ---------- 3. FORMAT FRAMES & PER-FORMAT TYPE SCALE ------------------------
   One frame element = one page in the PDF. Never mix frame types in one file. */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--k-font-sans);color:var(--k-ink);-webkit-font-smoothing:antialiased;
     text-rendering:geometricPrecision;font-feature-settings:"cv11" 1,"ss03" 1;}
img{display:block;max-width:100%}

.k-frame{position:relative;overflow:hidden;background:#fff;display:flex;flex-direction:column;
  page-break-after:always;break-after:page;isolation:isolate}
.k-frame > *{position:relative;z-index:1}
.k-frame > .k-bg{position:absolute;z-index:0}

/* 16:9 slide — 1920 × 1080 px */
.slide{ width:1920px;height:1080px;padding:96px 112px 72px;
  --fs-display:104px; --fs-h1:60px; --fs-h2:44px; --fs-h3:27px; --fs-h4:23px;
  --fs-lede:28px; --fs-body:23px; --fs-small:19px; --fs-eyebrow:18px; --fs-caption:15px;
  --fs-stat:132px; --fs-index:72px; --fs-table:19px;
  --gap-eyebrow:22px; --gap-title:28px; --gap-block:56px; --gap-grid:28px;
  --pad-card:36px; --radius:8px; --radius-sm:6px; --icon:52px; --rule:2px; }

/* A4 portrait — 210 × 297 mm (794 × 1123 px @96dpi) */
.page{ width:210mm;height:297mm;padding:17mm 16mm 13mm;
  --fs-display:54px; --fs-h1:32px; --fs-h2:22px; --fs-h3:14.5px; --fs-h4:13px;
  --fs-lede:13.4px; --fs-body:12.4px; --fs-small:10.6px; --fs-eyebrow:10.6px; --fs-caption:9px;
  --fs-stat:58px; --fs-index:30px; --fs-table:13.34px;
  --gap-eyebrow:10px; --gap-title:12px; --gap-block:26px; --gap-grid:12px;
  --pad-card:16px; --radius:5px; --radius-sm:4px; --icon:28px; --rule:1.5px; }
.page--letter{width:8.5in;height:11in}

/* Business card — 89 × 51 mm (India / US standard) */
.bizcard{ width:89mm;height:51mm;padding:5.5mm 6mm;
  --fs-h1:12px; --fs-h3:8.6px; --fs-body:7.4px; --fs-small:6.6px; --fs-eyebrow:6px; --fs-caption:5.6px;
  --gap-eyebrow:3px; --radius:2px; --icon:11px; }

/* Social square 1200 × 1200 and LinkedIn banner 1584 × 396 */
.social{ width:1200px;height:1200px;padding:88px;
  --fs-display:96px; --fs-h1:72px; --fs-h2:44px; --fs-h3:28px; --fs-lede:32px; --fs-body:28px;
  --fs-small:22px; --fs-eyebrow:20px; --fs-caption:18px; --fs-stat:200px;
  --gap-eyebrow:24px; --gap-title:32px; --gap-block:56px; --radius:10px; --icon:64px; }
.banner{ width:1584px;height:396px;padding:0 120px;
  --fs-h1:44px; --fs-lede:22px; --fs-eyebrow:15px; --fs-small:17px; --gap-eyebrow:14px; }

/* ---------- 4. SURFACES / BACKGROUNDS -------------------------------------- */
.is-wash{background:var(--k-grad-wash)}
.is-tint{background:var(--k-surface-light-active)}
.is-dark{background:var(--k-grad-dark);color:#fff}
.is-teal{background:var(--k-teal);color:#fff}

/* Motif layers — place as first child: <div class="k-bg motif-diamonds"></div> */
.k-bg{inset:0;pointer-events:none}
.motif-diamonds{background:url("../assets/motifs/diamond-lines-teal.svg") right center/auto 100% no-repeat}
.is-dark .motif-diamonds,.motif-diamonds--white{background-image:url("../assets/motifs/diamond-lines-white.svg")}
.motif-wave{inset:auto 0 -1px 0;height:50%;
  background:url("../assets/motifs/wave-ribbon-teal-wide.svg") center bottom/100% 100% no-repeat}
.motif-wave--white{background-image:url("../assets/motifs/wave-ribbon-white-wide.svg")}
.motif-wave--corner{inset:auto -1px -1px auto;width:62%;height:62%;
  background:url("../assets/motifs/wave-ribbon-teal.svg") right bottom/contain no-repeat}
.motif-curtain{inset:0 auto 0 6%;width:22%;background:url("../assets/motifs/wave-curtain-white.svg") left top/auto 100% no-repeat}
.motif-mark{inset:auto -6% -14% auto;width:46%;aspect-ratio:1;opacity:.06;
  background:url("../assets/logo/kytel-mark-teal-flat.svg") center/contain no-repeat}
.is-dark .motif-mark{background-image:url("../assets/logo/kytel-mark-white.svg");opacity:.06}

/* ---------- 5. TYPE ---------------------------------------------------------- */
.eyebrow{font-family:var(--k-font-alt);font-weight:500;font-size:var(--fs-eyebrow);
  letter-spacing:.28em;text-transform:uppercase;color:var(--k-slate);line-height:1.2;margin:0}
.eyebrow .num,.eyebrow b{color:var(--k-teal);font-weight:500;margin-right:.9em}
.eyebrow--dash::before{content:"—";color:var(--k-teal);margin-right:1em;letter-spacing:0}
.eyebrow--teal{color:var(--k-teal)}
.eyebrow + .title,.eyebrow + h1,.eyebrow + h2{margin-top:var(--gap-eyebrow)}

.display,.title,h1,h2{font-family:var(--k-font-display);font-weight:300;color:var(--k-ink);margin:0;
  letter-spacing:-.012em;text-wrap:balance}
.display{font-size:var(--fs-display);line-height:1.04;letter-spacing:-.02em}
.title,h1{font-size:var(--fs-h1);line-height:1.12}
h2,.h2{font-size:var(--fs-h2);line-height:1.15;font-family:var(--k-font-display);font-weight:300}
.display em,.title em,h1 em,h2 em,.hl{font-style:normal;color:var(--k-teal);font-weight:400}
.display strong,.title strong{font-weight:500;color:var(--k-teal)}
h3,.h3{font-family:var(--k-font-sans);font-weight:500;font-size:var(--fs-h3);line-height:1.25;margin:0;color:var(--k-ink);letter-spacing:-.005em}
h4,.h4{font-family:var(--k-font-sans);font-weight:500;font-size:var(--fs-h4);line-height:1.3;margin:0}
.lede{font-family:var(--k-font-alt);font-style:italic;font-weight:400;font-size:var(--fs-lede);
  line-height:1.4;color:var(--k-teal);margin:var(--gap-title) 0 0;max-width:62ch}
p,.body{font-size:var(--fs-body);line-height:1.55;font-weight:300;margin:0;color:var(--k-ink)}
.small{font-size:var(--fs-small);line-height:1.5;font-weight:300;color:var(--k-slate)}
.caption{font-size:var(--fs-caption);line-height:1.45;color:var(--k-slate);font-weight:400}
.muted{color:var(--k-slate)}
.label{font-family:var(--k-font-alt);font-weight:500;font-size:var(--fs-small);letter-spacing:.06em;color:var(--k-ink)}
.measure{max-width:46ch}
.measure-wide{max-width:64ch}
p + p{margin-top:.8em}

/* dark context overrides */
.is-dark .eyebrow,.is-teal .eyebrow{color:var(--k-teal-100)}
.is-dark .eyebrow .num,.is-teal .eyebrow .num{color:var(--k-mint)}
.is-dark :is(.display,.title,h1,h2,h3,h4),.is-teal :is(.display,.title,h1,h2,h3,h4){color:#fff}
.is-dark :is(.display,.title,h1,h2) em,.is-teal :is(.display,.title,h1,h2) em{color:var(--k-mint);font-weight:400}
.is-dark :is(p,.body),.is-teal :is(p,.body){color:var(--k-on-dark)}
.is-dark .lede,.is-teal .lede{color:var(--k-on-dark)}
.is-dark :is(.small,.caption,.muted),.is-teal :is(.small,.caption,.muted){color:var(--k-teal-100)}

/* ---------- 6. LAYOUT HELPERS ------------------------------------------------ */
.stack{display:flex;flex-direction:column}
.row{display:flex;gap:var(--gap-grid);align-items:stretch}
.row > *{flex:1 1 0;min-width:0}
.grid{display:grid;gap:var(--gap-grid)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:calc(var(--gap-block)*1.3);align-items:start}
.split--even{grid-template-columns:1fr 1fr}
.split--wide-left{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
.fill{flex:1 1 auto;min-height:0}
/* spacing utilities win over component margins */
.mt-0{margin-top:0!important}
.mt-auto{margin-top:auto!important}
.mt-s{margin-top:calc(var(--gap-block)*.4)!important} .mt-m{margin-top:calc(var(--gap-block)*.7)!important}
.mt-l{margin-top:var(--gap-block)!important} .mt-xl{margin-top:calc(var(--gap-block)*1.5)!important}
.center-y{margin-top:auto!important;margin-bottom:auto!important}
.rule{height:var(--rule);background:var(--k-teal);border:0;margin:0}
.hair{height:1px;background:var(--k-line);border:0;margin:0}
.is-dark .hair{background:rgba(255,255,255,.18)}

/* ---------- 7. BRAND CHROME (logo, footer) ------------------------------------ */
.logo{display:block;height:auto}
.slide .logo{width:250px} .page .logo{width:128px} .social .logo{width:300px}
.slide .logo--sm{width:190px} .page .logo--sm{width:100px}
.k-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
  font-family:var(--k-font-sans);font-size:var(--fs-caption);color:var(--k-slate);padding-top:calc(var(--gap-grid)*.8)}
.k-footer .brand{display:flex;align-items:center;gap:.7em}
.k-footer .brand img{height:1.35em;width:auto}
.k-footer .brand .sep{color:var(--k-teal-200);margin:0 .5em}
.k-footer .pg{font-family:var(--k-font-alt);font-weight:500;color:var(--k-teal);letter-spacing:.08em}
.is-dark .k-footer,.is-dark .k-footer .pg{color:var(--k-teal-100)}

/* ---------- 8. CARDS ------------------------------------------------------------ */
.card{background:#fff;border:1px solid var(--k-line);border-radius:var(--radius);
  box-shadow:var(--k-shadow-card);padding:var(--pad-card);display:flex;flex-direction:column;gap:calc(var(--pad-card)*.45)}
.card h3{margin-top:calc(var(--pad-card)*.2)}
.card .small{margin:0}
.card--flat{box-shadow:none}
.card--tint{background:var(--k-surface-light-active);border-color:transparent;box-shadow:none}
.card--feature{background:var(--k-grad-feature);border-color:transparent;color:#fff;box-shadow:var(--k-shadow-lift)}
.card--feature :is(h3,h4,.label){color:#fff}
.card--feature :is(p,.small,li){color:var(--k-on-dark)}
.card--outline-dark{background:transparent;border:1.5px solid rgba(255,255,255,.55);box-shadow:none;color:#fff}
.card--rose{background:var(--k-rose-50);border-color:var(--k-rose-200);box-shadow:none}
.card__head{display:flex;justify-content:space-between;align-items:flex-start}
.card__row{display:flex;gap:calc(var(--pad-card)*.55);align-items:flex-start}

/* Icon tile */
.ic{display:inline-flex;width:1em;height:1em;color:currentColor;vertical-align:-.14em}
.ic svg{width:100%;height:100%}
.icon-tile{flex:none;width:var(--icon);height:var(--icon);border-radius:calc(var(--icon)*.22);
  background:var(--k-teal-50);color:var(--k-teal);display:inline-flex;align-items:center;justify-content:center;
  border:1px solid rgba(23,143,140,.10)}
.icon-tile .ic{width:54%;height:54%}
.icon-tile--solid{background:var(--k-teal-800);color:#fff;border-color:transparent}
.card--feature .icon-tile,.is-dark .icon-tile{background:rgba(9,60,59,.45);color:#fff;border-color:rgba(255,255,255,.12)}

/* Big index numeral "01" */
.index{font-family:var(--k-font-display);font-weight:300;font-size:var(--fs-index);line-height:1;color:var(--k-teal-100);letter-spacing:-.02em}
.index--teal{color:var(--k-teal)}

/* ---------- 9. LISTS, CHIPS, STATS --------------------------------------------- */
.dots{list-style:none;margin:0;padding:0}
.dots li{position:relative;padding-left:1.15em;font-size:var(--fs-small);line-height:1.75;color:var(--k-slate);font-weight:300}
.dots li::before{content:"";position:absolute;left:.15em;top:.78em;width:.32em;height:.32em;border-radius:50%;background:var(--k-teal-300)}
.card--feature .dots li::before,.is-dark .dots li::before{background:var(--k-mint)}
.checks{list-style:none;margin:0;padding:0}
.checks li{position:relative;padding-left:1.6em;font-size:var(--fs-body);line-height:1.5;margin:.45em 0;font-weight:300}
.checks li::before{content:"";position:absolute;left:0;top:.28em;width:1.05em;height:1.05em;border-radius:50%;
  background:var(--k-teal-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23178F8C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/62% no-repeat}
.plain-list{list-style:none;padding:0;margin:0}
.plain-list li{padding:.62em 0;font-size:var(--fs-body);font-weight:300;border-bottom:1px solid rgba(255,255,255,.14)}
.plain-list li:last-child{border-bottom:0}

.chips{display:flex;flex-wrap:wrap;gap:calc(var(--gap-grid)*.6)}
.chip{font-family:var(--k-font-alt);font-weight:500;font-size:var(--fs-small);letter-spacing:.07em;
  color:var(--k-chip-ink);background:var(--k-teal-50);border-radius:999px;padding:.55em 2.1em;line-height:1.1;white-space:nowrap}
.chip--rose{background:var(--k-rose-100);color:var(--k-rose-900)}
.chip--outline{background:transparent;border:1px solid var(--k-teal-200);color:var(--k-teal-700)}
.is-dark .chip{background:rgba(255,255,255,.12);color:#fff}

.stat{display:flex;flex-direction:column;gap:.25em}
.stat__num{font-family:var(--k-font-display);font-weight:300;font-size:var(--fs-stat);line-height:.95;color:var(--k-teal);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat__num small{font-size:.42em;letter-spacing:0;margin-left:.06em}
.stat__label{font-size:calc(var(--fs-small)*1.12);color:var(--k-slate);line-height:1.4;font-weight:400}
.is-dark .stat__num{color:#fff} .is-dark .stat__label{color:var(--k-on-dark)}

/* "By the numbers" panel (outlined box on dark) */
.numbers{border:1.5px solid rgba(255,255,255,.55);border-radius:var(--radius);padding:calc(var(--pad-card)*1.05)}
.numbers__head{font-family:var(--k-font-alt);font-weight:500;letter-spacing:.3em;text-transform:uppercase;
  font-size:var(--fs-eyebrow);color:var(--k-teal-100);text-align:center}
.numbers__row{display:grid;grid-template-columns:30% 1fr;align-items:center;padding:.5em 0}
.numbers__row b{font-family:var(--k-font-display);font-weight:300;font-size:calc(var(--fs-h1)*1.05);color:#fff;padding-left:.4em}
.numbers__row span{font-size:var(--fs-small);color:var(--k-on-dark);font-weight:300}

/* Contact row */
.contact{display:flex;align-items:center;gap:.8em;font-size:var(--fs-body);font-weight:400}
.contact .icon-tile{width:calc(var(--icon)*.95);height:calc(var(--icon)*.95)}

/* Quote */
.quote{font-family:var(--k-font-display);font-weight:300;font-size:var(--fs-h2);line-height:1.25;color:var(--k-ink);margin:0;
  padding-left:.9em;border-left:var(--rule) solid var(--k-teal)}
.quote cite{display:block;margin-top:1em;font-family:var(--k-font-alt);font-style:normal;font-weight:500;font-size:var(--fs-eyebrow);letter-spacing:.24em;text-transform:uppercase;color:var(--k-slate)}

/* Portrait frame */
.portrait{background:#fff;border:1px solid var(--k-line);border-radius:var(--radius);box-shadow:var(--k-shadow-lift);padding:calc(var(--pad-card)*.5);overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius)*.6)}
.portrait--placeholder{display:flex;align-items:center;justify-content:center;background:var(--k-surface-light-active);color:var(--k-teal-300)}

/* Photo with diamond crop / feathered corner */
.photo{border-radius:var(--radius);overflow:hidden;background:var(--k-teal-50)}
.photo img{width:100%;height:100%;object-fit:cover}
.photo--diamond{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0}

/* ---------- 10. TABLES — canonical "Product List" table -----------------------
   Source of truth: Kytel Product List 2026 (reference/05_tables.md).
   Teal header band, rounded 0.51em; header Plex Sans Medium caps tracked .14em;
   rows 2.92em, zebra starts tinted; no rules; body Inter Light in ink.          */
.k-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-table);font-family:var(--k-font-sans);color:var(--k-ink)}
.k-table thead th{background:var(--k-teal);color:#fff;font-family:var(--k-font-alt);font-weight:500;text-transform:uppercase;
  letter-spacing:.14em;font-size:.94em;text-align:left;height:3.02em;padding:0 1em 0 3.1em;white-space:nowrap;vertical-align:middle}
.k-table thead th:first-child{border-radius:.51em 0 0 .51em}
.k-table thead th:last-child{border-radius:0 .51em .51em 0}
.k-table tbody tr:first-child td{border-top:.24em solid #fff}   /* hairline gap under header (measured 2.4pt) */
.k-table tbody td{height:2.92em;padding:.35em .6em .35em 3.66em;font-weight:300;vertical-align:middle;line-height:1.3}
.k-table tbody tr:nth-child(odd) td{background:var(--k-zebra)}
.k-table tbody tr:nth-child(even) td{background:#fff}
.k-table :is(th,td).tight{padding-left:1.8em}
.k-table tbody td.tight{padding-left:2.6em}
.k-table .num{text-align:right;font-variant-numeric:tabular-nums;padding-right:2.2em}
.k-table thead .num{text-align:right}
.k-table td.strong,.k-table tr.strong td{font-weight:500}
.k-table tr.hl td{background:var(--k-teal-50)!important;font-weight:400}
.k-table tr.total td{background:#fff!important;font-weight:500;border-top:1.5px solid var(--k-teal)}
.k-table tr.group td{background:#fff!important;font-family:var(--k-font-alt);font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  font-size:.86em;color:var(--k-teal);padding-top:1.1em;height:auto}
.k-table--snug tbody td{padding-left:2.4em}
.k-table--snug thead th{padding-left:2em}
.k-table--compact tbody td{height:2.45em}
.k-table--compact thead th{height:2.6em}
/* col widths helper: <col class="w-40"> */
.w-15{width:15%}.w-16{width:16%}.w-38{width:38%}.w-46{width:46%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-35{width:35%}.w-40{width:40%}.w-42{width:41.5%}.w-50{width:50%}

.table-block{display:flex;flex-direction:column}
.table-block__title{font-family:var(--k-font-display);font-weight:300;font-size:var(--fs-h2);line-height:1.15;margin:0;color:var(--k-ink)}
.table-block__sub{font-family:var(--k-font-alt);font-style:italic;font-size:calc(var(--fs-table)*.98);color:var(--k-teal);margin:.55em 0 1.35em}
.page .table-block__title{font-size:32px}

/* ---------- 11. PROCESS / TIMELINE ---------------------------------------------- */
.steps{display:grid;gap:var(--gap-grid)}
.step{position:relative}
.step__bar{height:var(--rule);background:var(--k-line);margin:.9em 0 1em;position:relative}
.step__bar::before{content:"";position:absolute;left:0;top:0;bottom:0;width:38%;background:var(--k-teal)}
.timeline{position:relative;display:grid;gap:var(--gap-grid)}
.timeline__dot{width:.9em;height:.9em;border-radius:50%;background:#fff;border:2px solid var(--k-teal);margin-bottom:.8em}
.timeline__dot--on{background:var(--k-teal)}
.timeline::before{content:"";position:absolute;left:0;right:0;top:.45em;height:2px;background:var(--k-line);z-index:-1}

/* ---------- 12. CHARTS (rendered by kytel-charts.js into inline SVG) ------------- */
.k-chart{width:100%;font-family:var(--k-font-sans)}
.k-chart text{font-family:var(--k-font-sans);fill:var(--k-slate)}
.k-chart .val{fill:var(--k-ink);font-weight:500}
.legend{display:flex;gap:1.6em;font-size:var(--fs-small);color:var(--k-slate)}
.legend i{display:inline-block;width:.8em;height:.8em;border-radius:2px;margin-right:.5em;vertical-align:-.05em}

/* ---------- 13. CERTIFICATION STRIP ------------------------------------------------ */
.cert-strip{display:inline-flex;flex-direction:column;align-items:center;border:1.5px solid var(--k-teal);border-radius:999px;
  padding:0 2.2em 1em;position:relative;background:#fff}
.cert-strip__label{font-family:var(--k-font-alt);font-weight:500;font-size:var(--fs-caption);letter-spacing:.22em;text-transform:uppercase;
  color:var(--k-teal);background:#fff;padding:0 .9em;transform:translateY(-55%)}
.cert-strip__logos{display:flex;gap:1.6em;align-items:center}
.cert-strip__logos img{height:4.2em;width:auto}

/* ---------- 14. PREVIEW CHROME (screen only; ignored in PDF) ----------------------- */
@media screen{
  body.k-preview{background:#D9E3E2;padding:40px 0}
  body.k-preview .k-frame{margin:0 auto 40px;box-shadow:0 10px 40px rgba(12,42,46,.18)}
}
@media print{ body.k-preview{background:#fff;padding:0} body.k-preview .k-frame{margin:0;box-shadow:none} }

/* ---------- 15. QA OVERLAY (add class "k-debug" to <body>) ------------------------- */
.k-debug .slide::after{content:"";position:absolute;inset:96px 112px 72px;outline:1px dashed rgba(216,154,158,.9);pointer-events:none;z-index:99}
.k-debug .page::after{content:"";position:absolute;inset:17mm 16mm 13mm;outline:1px dashed rgba(216,154,158,.9);pointer-events:none;z-index:99}
