/* ══════════════════════════════════════════════════════════════
   MMGY PRESENTATION DESIGN SYSTEM
   Extracted from "New Biz — MMGY Deck Template" (PowerPoint master)
   Canvas: 1920 × 1080 (16:9). All sizes are px at that canvas.
   Fonts: Big Shoulders Display (display) + Archivo (text) — Google Fonts.
   ══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@500;600;700;800&family=Archivo:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

:root {
  /* ── Color tokens (from theme1.xml "MMGY Template") ── */
  --mmgy-red:    #F8340D;   /* accent1 / dk2 — brand red     */
  --mmgy-ink:    #141414;   /* dk1 — near-black              */
  --mmgy-stone:  #E5E6E1;   /* lt2 — warm light gray         */
  --mmgy-white:  #FFFFFF;   /* lt1                           */
  --mmgy-teal:   #0097A7;   /* folHlink — rare, links only   */
  /* Red gradient used on illustration fills / accent bars */
  --mmgy-grad-red: linear-gradient(90deg, #3d1008 0%, #c22408 35%, #F8340D 65%, #e9e6df 100%);

  /* ── Type tokens ── */
  --font-display: "Big Shoulders Display", "Arial Narrow", sans-serif;
  --font-text: "Archivo", Arial, sans-serif;

  --text-mega: 500px;      /* closer word (LET'S TALK)       */
  --text-stat-xl: 340px;   /* hero stat                      */
  --text-stat: 256px;      /* 4-up stats (96pt)              */
  --text-h1: 160px;        /* title slide client name (60pt) */
  --text-h2: 128px;        /* divider / section title (48pt) */
  --text-h3: 114px;        /* big headline (43pt)            */
  --text-callout: 96px;    /* callout rows (36pt)            */
  --text-h4: 80px;         /* headline block (30pt)          */
  --text-h5: 60px;         /* card headline (22.5pt)         */
  --text-body-lg: 32px;    /* lead body (12pt)               */
  --text-body: 29px;       /* body (11pt)                    */
  --text-body-sm: 26px;    /* dense body (10pt)              */
  --text-eyebrow: 20px;    /* tracked caps label (7.5pt)     */

  /* ── Layout tokens ── */
  --margin: 128px;         /* standard slide margin (6.7% of 1920) */
  --margin-top: 130px;     /* 12% of 1080 */
  --col-gap: 32px;         /* 4-col grid gutter */
  --notch: 120px;          /* signature clipped corner size */
}

/* ── Slide canvas ─────────────────────────────────────────── */
.slide {
  width: 1920px; height: 1080px;
  position: relative; overflow: hidden;
  background: var(--mmgy-white); color: var(--mmgy-ink);
  font-family: var(--font-text);
  font-size: var(--text-body);
  line-height: 1.45;
  box-sizing: border-box;
}
.slide *, .slide *::before, .slide *::after { box-sizing: inherit; }
.slide--ink   { background: var(--mmgy-ink);   color: var(--mmgy-white); }
.slide--red   { background: var(--mmgy-red);   color: var(--mmgy-white); }
.slide--stone { background: var(--mmgy-stone); color: var(--mmgy-ink);  }
.slide--pad   { padding: var(--margin-top) var(--margin); }

/* ── Typography ───────────────────────────────────────────── */
.t-display {
  font-family: var(--font-display); font-weight: 700;
  text-transform: uppercase; line-height: 0.92; letter-spacing: 0.01em;
  margin: 0; text-wrap: balance;
}
.t-mega    { font-size: var(--text-mega);    line-height: 0.85; }
.t-stat-xl { font-size: var(--text-stat-xl); line-height: 0.9;  }
.t-stat    { font-size: var(--text-stat);    line-height: 0.9;  }
.t-h1      { font-size: var(--text-h1); }
.t-h2      { font-size: var(--text-h2); }
.t-h3      { font-size: var(--text-h3); }
.t-h4      { font-size: var(--text-h4); }
.t-h5      { font-size: var(--text-h5); line-height: 1.0; }
.t-callout { font-family: var(--font-text); font-weight: 700; font-size: var(--text-callout); line-height: 1.05; margin: 0; }
.t-eyebrow {
  font-family: var(--font-text); font-weight: 700;
  font-size: var(--text-eyebrow); text-transform: uppercase;
  letter-spacing: 0.18em; margin: 0;
}
.t-body-lg { font-size: var(--text-body-lg); margin: 0; }
.t-body    { font-size: var(--text-body); margin: 0; }
.t-body-sm { font-size: var(--text-body-sm); margin: 0; }
.t-red   { color: var(--mmgy-red); }
.t-white { color: var(--mmgy-white); }
.t-ink   { color: var(--mmgy-ink); }

.slide a { color: var(--mmgy-red); text-decoration: none; }
.slide a:hover { color: var(--mmgy-ink); text-decoration: underline; }
.slide--ink a:hover, .slide--red a:hover { color: var(--mmgy-white); }

/* ── Signature shapes ─────────────────────────────────────── */
/* Notched corner (echoes the MMGY logo cut) — apply to img or div */
.notch-br { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--notch)), calc(100% - var(--notch)) 100%, 0 100%); }
.notch-tr { clip-path: polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, 0 100%); }
/* Arch: top corners fully rounded (round2SameRect) */
.arch { border-radius: 999px 999px 0 0; }

.img-cover { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Rules */
.rule       { border: 0; border-top: 3px solid currentColor; margin: 0; }
.rule--red  { border-color: var(--mmgy-red); }
.rule-v     { width: 3px; background: var(--mmgy-red); }

/* Numbered circle chip */
.num-chip {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--mmgy-stone); color: var(--mmgy-red);
  font-family: var(--font-text); font-weight: 600; font-size: 28px;
  display: flex; align-items: center; justify-content: center;
}

/* Big red index number (numbered columns) */
.num-index {
  font-family: var(--font-display); font-weight: 700;
  font-size: 50px; color: var(--mmgy-red); line-height: 1;
}

/* Logo */
.logo { width: 128px; height: auto; display: block; }
.logo--sm { width: 96px; }

/* Grain-gradient brand texture (photographic asset) */
.texture-gradient { background: url("assets/texture-gradient.jpg") center/cover; }

/* ── Layout helpers ───────────────────────────────────────── */
.cols-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--col-gap); }
.cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--col-gap); }
.cols-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--col-gap); }
.stack  { display: flex; flex-direction: column; }

/* Split slide: media pane + content pane */
.split { display: grid; grid-template-columns: 1fr 1fr; height: 100%; }
.split__pane { position: relative; padding: var(--margin-top) var(--margin); display: flex; flex-direction: column; justify-content: center; }
.split__pane--ink   { background: var(--mmgy-ink);   color: var(--mmgy-white); }
.split__pane--red   { background: var(--mmgy-red);   color: var(--mmgy-white); }
.split__pane--stone { background: var(--mmgy-stone); color: var(--mmgy-ink); }

/* Callout row list (dark stat slides) */
.callout-rows { display: flex; flex-direction: column; }
.callout-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px;
  align-items: center; padding: 44px 0;
  border-top: 2px solid var(--mmgy-red);
}
.callout-row:first-child { border-top: 0; }
.callout-row > .t-body, .callout-row > .t-body-lg { text-align: right; }
.slide--ink .callout-row { border-color: var(--mmgy-red); }
.callout-rows--white .callout-row { border-color: var(--mmgy-white); }

/* Divider slide footer meta block */
.meta-list { display: grid; gap: 40px; max-width: 460px; }
.meta-list .t-eyebrow { margin-bottom: 8px; }

/* Statement highlight (quote slides): red or white emphasis */
.hl-red   { color: var(--mmgy-red); }
.hl-white { color: var(--mmgy-white); }

/* Idea list (dark right panel, one idea highlighted) */
.idea-list { display: flex; flex-direction: column; gap: 48px; }
.idea-list .idea { font-family: var(--font-display); font-weight: 700; font-size: 122px; line-height: 1; text-transform: uppercase; color: var(--mmgy-red); margin: 0; }
.idea-list .idea--active { color: var(--mmgy-white); }

/* Team card */
.team-card .team-photo { width: 100%; aspect-ratio: 355/397; object-fit: cover; display: block; }
.team-name  { font-family: var(--font-display); font-weight: 700; font-size: 66px; line-height: 0.95; text-transform: uppercase; margin: 0; }
.team-title { font-family: var(--font-display); font-weight: 500; font-size: 27px; line-height: 1.1; text-transform: uppercase; margin: 0; }

/* Slide number / footer strip (optional) */
.slide-foot {
  position: absolute; left: var(--margin); right: var(--margin); bottom: 48px;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 22px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
}
