﻿:root{
  --bg: #fff9f1;
  --panel: #ffffff;
  --panel2: #fff9f1;
  --text: #144b46;
  --muted: #666;
  --line: #e8b47b;
  --accent: #005557;
  --accent2: #4CAF50;
  --warn: #e8b47b;
  --shadow: 0 4px 10px rgba(0,0,0,.12);
  --radius: 14px;
  --maxw: 1100px;
  --pad: clamp(18px, 2.4vw, 28px);
  --slideGap: clamp(14px, 2vw, 22px);
}

*{ box-sizing: border-box; }
html,body{ height:100%; }

.valeo-deck{
  margin:0;
  font-family: Arial, sans-serif;
  color: var(--text);
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(0, 85, 87, .10), transparent 60%),
    radial-gradient(700px 420px at 85% 0%, rgba(232, 180, 123, .16), transparent 55%),
    var(--bg);
}

a{ color: var(--accent); text-underline-offset: 3px; }
a:hover{ opacity: .9; }

.skip-link{
  position:absolute; left:-9999px; top:auto;
  width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:12px; top:12px; width:auto; height:auto;
  padding:10px 12px; border-radius:10px;
  background:rgba(0,0,0,.6); border:1px solid var(--line);
}

/* ---- TOPBAR ---- */
.topbar{
  position:sticky; top:0; z-index:10;
  backdrop-filter:blur(10px);
  background:rgba(255,255,255,.88);
  border-bottom:3px solid var(--line);
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:12px var(--pad);
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand__mark{
  width:14px; height:44px; border-radius:999px;
  background:linear-gradient(180deg,var(--accent),var(--accent2));
  box-shadow:var(--shadow);
}
.brand__title{ font-weight:700; letter-spacing:.2px; }
.brand__subtitle{ color:var(--muted); font-size:12.5px; }
.topbar__right{ display:flex; align-items:center; gap:10px; }
.navbtn{ padding:10px 18px; border-radius:10px; font-size:14px; cursor:pointer; }
.progress{
  font-variant-numeric:tabular-nums; color:var(--muted);
  border:1px solid rgba(0,0,0,.08); background:rgba(255,255,255,.70);
  padding:8px 10px; border-radius:12px;
}

/* ---- DECK / SLIDES ---- */
.deck{
  height:calc(100vh - 64px);
  overflow-y:auto;
  scroll-snap-type:y mandatory;
}
.slide{
  scroll-snap-align:start;
  min-height:calc(100vh - 64px);
  padding:var(--pad);
  display:flex; align-items:center;
}
.slide__inner{
  width:100%; max-width:var(--maxw); margin:0 auto;
}

/* Section divider slides */
.slide--section{
  background:linear-gradient(135deg, rgba(0,85,87,.06), rgba(232,180,123,.08));
}

/* ---- TYPOGRAPHY ---- */
h1,h2,h3{ margin:0 0 12px 0; }
h1{ font-size:clamp(34px,4vw,58px); line-height:1.06; }
h2{ font-size:clamp(22px,2.6vw,34px); line-height:1.12; }
h3{ font-size:16px; color:var(--text); }
p{ margin:0 0 12px 0; }
.valeo-deck .slide__inner p,
.valeo-deck .slide__inner li{ color:#333; }
.valeo-deck .slide__inner p{ text-align:left; padding:0; }

.kicker{
  text-transform:uppercase; letter-spacing:.16em;
  font-size:12px; color:var(--muted); margin-bottom:12px;
}
.lede{ font-size:18px; color:#333; max-width:70ch; }
.meta{ margin-top:14px; display:grid; gap:10px; max-width:72ch; }
.meta__k{ display:inline-block; min-width:92px; color:var(--muted); }

/* ---- GRID ---- */
.grid{ display:grid; gap:var(--slideGap); }
.grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid--mix{ grid-template-columns:repeat(4,minmax(0,1fr)); }

@media(max-width:900px){ .grid--3{ grid-template-columns:1fr; } }
@media(max-width:1100px){ .grid--mix{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px){
  .grid--2{ grid-template-columns:1fr; }
  .topbar{ flex-direction:column; align-items:flex-start; }
  .deck{ height:calc(100vh - 108px); }
  .slide{ min-height:calc(100vh - 108px); }
}

/* ---- CARD ---- */
.card{
  border:1px solid rgba(0,0,0,.06); background:var(--panel);
  border-radius:var(--radius); padding:16px 16px 14px 16px;
  box-shadow:var(--shadow);
}
.card__lede{ color:var(--muted); margin-top:6px; }

ul,ol{ margin:10px 0 0 18px; }
li{ margin:7px 0; }
strong{ color:var(--text); }
.list{ max-width:80ch; }

/* ---- CALLOUT ---- */
.callout{
  margin-top:18px; border-radius:var(--radius); padding:14px 16px;
  border:1px solid rgba(0,85,87,.22); background:rgba(0,85,87,.06);
}
.callout__title{ font-weight:700; margin-bottom:6px; }
.callout__body{ color:#333; }

.note{ color:var(--muted); font-size:12.5px; margin-top:10px; }
.kbd{
  display:inline-block; padding:2px 6px; border-radius:8px;
  border:1px solid rgba(0,0,0,.12); background:rgba(255,255,255,.75);
  font-size:12px;
}

/* ---- INSERTED SLIDE VISUALS ---- */
.ai-visual{
  margin:10px 0 14px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow);
}
.ai-visual img{
  display:block;
  width:100%;
  height:auto;
}
.ai-visual--compact img{
  width:95%;
  margin:0 auto;
  max-height:none;
  object-fit:contain;
}

/* Slide-specific tuning for AI visuals */
.ai-visual--channels{
  width:95%;
  margin-left:auto;
  margin-right:auto;
}
.ai-visual--channels img{
  width:100%;
}

.ai-visual--budget{
  margin:4px 0 8px;
  padding:0;
}
.ai-visual--budget img{
  width:100%;
  max-height:58vh;
  object-fit:contain;
  display:block;
}

.ai-visual--approval{
  margin:6px 0 10px;
}
.ai-visual--approval img{
  width:100%;
  margin-left:0;
  margin-right:0;
}

/* Budget outline slide spacing rhythm */
.budget-outline-grid{
  margin-top:8px;
}
.budget-outline-grid .card{
  padding:14px 14px 12px;
}
.budget-outline-grid h3{
  margin-bottom:8px;
}

/* Budget viz bar chart (Slide 15) */
.budget-viz-grid{
  display:grid;
  grid-template-columns:1fr 240px;
  gap:20px;
  margin:8px 0 10px;
  align-items:start;
}
.budget-viz-h3{
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--accent);
  margin:0 0 10px;
}
.bbar-row{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:7px;
}
.bbar-name{
  width:185px;
  font-size:.78rem;
  color:#444;
  flex-shrink:0;
}
.bbar-track{
  flex:1;
  background:#e5e5e5;
  border-radius:5px;
  height:22px;
  overflow:hidden;
}
.bbar-fill{
  height:100%;
  border-radius:5px;
  display:flex;
  align-items:center;
  padding-left:7px;
  font-size:.68rem;
  color:#fff;
  font-weight:700;
  min-width:30px;
}
.bbar-amt{
  width:44px;
  font-size:.76rem;
  font-weight:700;
  color:#333;
  text-align:right;
  flex-shrink:0;
}
.budget-viz-gov{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.gov-list{
  list-style:none;
  padding:0;
  margin:0;
  font-size:.8rem;
  line-height:1.6;
}
.gov-list li{
  padding:5px 0;
  border-bottom:1px solid rgba(0,0,0,.07);
}
.budget-total-box{
  margin-top:10px;
  background:var(--accent);
  color:#fff;
  border-radius:10px;
  padding:12px 14px;
  text-align:center;
}
.budget-total-label{ font-size:.7rem; opacity:.85; margin-bottom:2px; }
.budget-total-num{ font-size:1.9rem; font-weight:800; line-height:1; }
.budget-total-sub{ font-size:.68rem; opacity:.75; margin-top:3px; }

@media(max-width:900px){
  .ai-visual--compact img{ width:98%; }
  .ai-visual--channels{ width:98%; }
  .ai-visual--budget img{
    width:96%;
    max-height:300px;
  }
  .ai-visual--approval img{
    width:100%;
    margin-left:0;
    margin-right:0;
  }
}

/* ---- SWOT ---- */
.swot{
  display:grid; gap:var(--slideGap);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.swot__cell{
  border:1px solid rgba(0,0,0,.06); background:var(--panel);
  border-radius:var(--radius); padding:14px 14px 12px 14px;
}
.swot--s{ border-left:4px solid var(--accent2); }
.swot--w{ border-left:4px solid #ef4444; }
.swot--o{ border-left:4px solid #3b82f6; }
.swot--t{ border-left:4px solid var(--warn); }

@media(max-width:760px){ .swot{ grid-template-columns:1fr; } }

.strip{
  margin-top:14px; display:flex; flex-wrap:wrap; gap:10px;
  align-items:center; border-top:1px solid rgba(0,0,0,.10);
  padding-top:12px; color:#333;
}
.strip>span{
  padding:6px 10px; border-radius:999px;
  border:1px solid rgba(0,0,0,.08); background:rgba(255,255,255,.65);
}

/* ---- JOURNEY ROADMAP ---- */
.roadmap{ margin-top:12px; }

.roadmap__row{
  display:flex; align-items:center; gap:0;
}

.roadmap__stop{
  flex:1; display:flex; align-items:flex-start; gap:14px;
  background:var(--panel); border:1px solid rgba(0,0,0,.06);
  border-radius:var(--radius); padding:18px 16px;
  box-shadow:var(--shadow); position:relative;
}

.roadmap__dot{
  flex-shrink:0; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; font-weight:800; color:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.15);
}
.j1 .roadmap__dot{ background:#3b82f6; }
.j2 .roadmap__dot{ background:#8b5cf6; }
.j3 .roadmap__dot{ background:#f59e0b; }
.j4 .roadmap__dot{ background:var(--accent2); }
.j5 .roadmap__dot{ background:var(--accent); }
.j6 .roadmap__dot{ background:#e8b47b; }

.roadmap__content{ flex:1; }
.roadmap__label{
  font-size:11px; color:var(--muted);
  text-transform:uppercase; letter-spacing:.12em; font-weight:700;
}
.roadmap__q{
  font-weight:700; font-size:15px; margin-top:4px;
  color:var(--text); line-height:1.3;
}
.roadmap__t{ margin-top:6px; color:#555; font-size:13px; }

/* Connecting lines */
.roadmap__line{
  flex-shrink:0; width:40px; height:3px;
  background:linear-gradient(90deg, var(--line), var(--accent));
  border-radius:4px; position:relative;
}
.roadmap__line::after{
  content:''; position:absolute; right:-5px; top:-4px;
  border:5px solid transparent; border-left:7px solid var(--accent);
}

/* Connector between rows: from step 3 (right) to step 4 (left) */
.roadmap__curve{
  height:46px;
  margin:8px 0;
  position:relative;
}
.roadmap__curve::before{
  content:'';
  position:absolute;
  left:22px;
  right:22px;
  top:4px;
  height:34px;
  border-top:3px solid var(--accent);
  border-left:3px solid var(--accent);
  border-top-left-radius:20px;
}
.roadmap__curve::after{
  content:'';
  position:absolute;
  left:17px;
  top:32px;
  border:6px solid transparent;
  border-top:8px solid var(--accent);
}
.roadmap__curve-arrow{
  position:absolute;
  right:24px;
  top:-3px;
  width:0;
  height:0;
  border:6px solid transparent;
  border-right:8px solid var(--accent);
}

@media(max-width:900px){
  .roadmap__row{ flex-direction:column; gap:0; }
  .roadmap__line{ width:3px; height:28px; }
  .roadmap__line::after{ display:none; }
  .roadmap__curve{
    width:3px;
    height:28px;
    margin:0 auto;
    background:var(--accent);
  }
  .roadmap__curve::before,
  .roadmap__curve::after,
  .roadmap__curve-arrow{ display:none; }
}

/* ---- BCG MATRIX ---- */
.bcg{
  display:grid; gap:var(--slideGap);
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto auto;
  position:relative;
}
.bcg__cell{
  border:1px solid rgba(0,0,0,.06); background:var(--panel);
  border-radius:var(--radius); padding:14px;
}
.bcg--star{ border-top:4px solid #facc15; }
.bcg--question{ border-top:4px solid #a78bfa; }
.bcg--cow{ border-top:4px solid var(--accent2); }
.bcg--dog{ border-top:4px solid #94a3b8; }
.bcg__label-y{
  grid-column:1/-1; text-align:center;
  font-size:12px; color:var(--muted); letter-spacing:.1em;
}
.bcg__label-x{
  grid-column:1/-1; text-align:center;
  font-size:12px; color:var(--muted); letter-spacing:.1em;
}

/* ---- 7Ps MIX CARDS ---- */
.mix-sub{ margin:0 0 10px 0; color:var(--muted); }
.mix-card{
  padding:12px;
  min-height:152px;
  border-top:4px solid var(--accent);
}
.mix-head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.mix-head h3{ margin:0; font-size:16px; }
.mix-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-weight:800;
  font-size:16px;
}
.mix-line{
  margin:0;
  font-size:13px;
  line-height:1.35;
}
.mix-chips{
  margin-top:9px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.mix-chips span{
  font-size:11px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(0,85,87,.07);
  border:1px solid rgba(0,85,87,.14);
  color:var(--text);
}

.mix-a{ border-top-color:var(--accent); }
.mix-b{ border-top-color:#4CAF50; }
.mix-c{ border-top-color:#2196F3; }
.mix-d{ border-top-color:#FF9800; }
.mix-e{ border-top-color:#9C27B0; }
.mix-f{ border-top-color:#E91E63; }
.mix-g{ border-top-color:#607D8B; }

.mix-a .mix-icon{ background:var(--accent); }
.mix-b .mix-icon{ background:#4CAF50; }
.mix-c .mix-icon{ background:#2196F3; }
.mix-d .mix-icon{ background:#FF9800; }
.mix-e .mix-icon{ background:#9C27B0; }
.mix-f .mix-icon{ background:#E91E63; }
.mix-g .mix-icon{ background:#607D8B; }

.mix-strip{ margin-top:10px; }

@media(max-width:640px){
  .grid--mix{ grid-template-columns:1fr; }
  .mix-card{ min-height:auto; }
}

/* ---- PERSONA CARDS ---- */
.persona-badge{
  display:inline-block; padding:3px 10px; border-radius:999px;
  font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; margin-bottom:8px;
  background:rgba(0,85,87,.08); color:var(--accent);
  border:1px solid rgba(0,85,87,.18);
}

/* ---- KPI CARDS ---- */
.kpi-card{ text-align:center; }
.kpi-num{
  font-size:clamp(28px,3vw,42px); font-weight:800;
  color:var(--accent); line-height:1.1;
}
.kpi-label{ font-size:13px; color:var(--muted); margin-top:4px; }

/* ---- CHANNEL HEADINGS ---- */
.channel-card{ display:block; }
.channel-card h3{ display:block; margin:0 0 10px 0; }
.channel-card ul{ display:block; margin:8px 0 0 18px; }
.ch-paid{ color:#e65100; }
.ch-owned{ color:var(--accent); }
.ch-earned{ color:var(--accent2); }

/* ---- EMAIL MOCKUPS ---- */
.email-mock{ padding:0; overflow:hidden; }
.email-subj{
  padding:12px 16px; display:flex; align-items:center; gap:10px;
  border-bottom:1px solid rgba(0,0,0,.06);
  background:rgba(0,85,87,.03);
}
.email-tag{
  display:inline-block; padding:2px 8px; border-radius:999px;
  font-size:11px; font-weight:700; white-space:nowrap;
  background:var(--accent); color:#fff;
}
.email-mock p{ padding:12px 16px 0; margin-bottom:0; font-size:14px; }
.email-cta{
  margin:10px 16px 14px; padding:8px 14px; border-radius:8px;
  background:var(--accent); color:#fff; display:inline-block;
  font-size:13px; font-weight:600;
}

/* ---- SOCIAL MOCKUPS ---- */
.social-mock{ padding:0; overflow:hidden; }
.social-platform{
  display:inline-block; padding:4px 10px; border-radius:0 0 10px 0;
  font-size:11px; font-weight:700; text-transform:uppercase;
  background:var(--accent); color:#fff;
}
.social-mock h3{ padding:8px 14px 0; }
.social-mock p{ padding:0 14px; font-size:14px; }
.social-tags{
  padding:4px 14px 12px; font-size:12px; color:var(--accent);
  font-weight:600;
}

/* ---- GOOGLE AD MOCKUPS ---- */
.gad{
  border:1px solid rgba(0,0,0,.08); border-radius:10px;
  padding:12px 14px; background:rgba(255,255,255,.8);
}
.gad__label{
  display:inline-block; font-size:11px; font-weight:700;
  color:#1a73e8; margin-bottom:4px;
}
.gad__url{ font-size:13px; color:#006621; margin-bottom:2px; }
.gad__head{ font-size:16px; color:#1a0dab; font-weight:600; margin-bottom:4px; }
.gad__desc{ font-size:13px; color:#333; }
.gad__links{
  margin-top:8px; display:flex; flex-wrap:wrap; gap:6px;
}
.gad__links span{
  font-size:12px; color:#1a73e8; padding:3px 8px;
  border:1px solid rgba(26,115,232,.2); border-radius:6px;
}

/* ---- SOCIAL AD MOCKUPS ---- */
.social-ad{
  border:1px solid rgba(0,0,0,.08); border-radius:10px;
  padding:12px 14px; background:rgba(255,255,255,.8);
}
.social-ad__head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.social-ad__avatar{
  width:36px; height:36px; border-radius:50%;
  background:var(--accent); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:14px;
}
.social-ad__img{
  margin:8px 0; padding:40px 14px; border-radius:8px;
  background:rgba(0,85,87,.06); color:var(--muted);
  text-align:center; font-size:13px; border:1px dashed rgba(0,0,0,.12);
}
.social-ad__cta{
  display:inline-block; padding:8px 16px; border-radius:8px;
  background:var(--accent); color:#fff; font-size:13px;
  font-weight:600; margin-top:4px;
}

/* ---- LANDING PAGE WIREFRAMES ---- */
.lp-mock{ padding:0; overflow:hidden; }
.lp-mock__url{
  padding:8px 14px; font-size:12px; font-family:monospace;
  color:var(--accent); background:rgba(0,85,87,.04);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.lp-mock h3{ padding:10px 14px 0; }
.lp-mock__hero{
  margin:8px 14px; padding:14px; border-radius:10px;
  background:linear-gradient(135deg,rgba(0,85,87,.08),rgba(232,180,123,.10));
}
.lp-mock__hero p{ font-size:13px; margin-bottom:0; }
.lp-mock__sections{
  padding:10px 14px 14px; display:flex; flex-wrap:wrap; gap:6px;
}
.lp-mock__sections span{
  font-size:11px; padding:4px 10px; border-radius:999px;
  border:1px solid rgba(0,0,0,.10); background:rgba(255,255,255,.7);
  color:#333;
}

/* ---- PHASE / TIMELINE CARDS ---- */
.phase-card{ position:relative; padding-top:30px; }
.phase-tag{
  position:absolute; top:0; left:0; padding:4px 12px;
  border-radius:0 0 10px 0; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
  background:var(--accent); color:#fff;
}
.phase--build .phase-tag{ background:#2196F3; }
.phase--launch .phase-tag{ background:var(--accent2); }
.phase--optimize .phase-tag{ background:#9C27B0; }
.phase-exit{
  margin-top:10px; padding-top:8px;
  border-top:1px solid rgba(0,0,0,.08);
  font-size:13px; color:var(--muted);
}

/* ---- FUNNEL ---- */
.funnel{
  display:flex; align-items:center; gap:8px;
  margin-bottom:var(--slideGap); flex-wrap:wrap;
  justify-content:center;
}
.funnel__step{
  flex:1; min-width:140px; text-align:center;
  padding:16px 12px; border-radius:var(--radius);
  background:var(--panel); border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow);
}
.funnel__num{
  font-size:clamp(24px,3vw,36px); font-weight:800;
  color:var(--accent); line-height:1;
}
.funnel__label{ font-size:13px; font-weight:600; margin-top:4px; }
.funnel__sub{ font-size:11px; color:var(--muted); margin-top:2px; }
.funnel__arrow{ font-size:20px; color:var(--muted); flex-shrink:0; }
.f1{ border-top:4px solid #3b82f6; }
.f2{ border-top:4px solid #f59e0b; }
.f3{ border-top:4px solid var(--accent2); }
.f4{ border-top:4px solid var(--accent); }

@media(max-width:640px){
  .funnel__arrow{ display:none; }
  .funnel{ gap:var(--slideGap); }
  .funnel__step{ min-width:100%; }
}

/* ---- CHANNEL TABLE ---- */
.ch-table{
  width:100%; border-collapse:collapse;
  font-size:14px; margin-top:8px;
}
.ch-table th{
  text-align:left; padding:10px 12px;
  border-bottom:2px solid var(--line);
  font-size:12px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--muted);
}
.ch-table td{
  padding:10px 12px; border-bottom:1px solid rgba(0,0,0,.06);
  color:#333;
}
.ch-table tbody tr:hover{ background:rgba(0,85,87,.03); }

/* ---- BUDGET BARS ---- */
.budget-bars{ margin-top:8px; }
.budget-row{
  display:grid; grid-template-columns:110px 1fr 130px;
  align-items:center; gap:10px; margin-bottom:8px;
}
.budget-label{ font-size:13px; font-weight:600; text-align:right; }
.budget-track{
  height:22px; border-radius:12px;
  background:rgba(0,0,0,.04); overflow:hidden;
}
.budget-bar{
  height:100%; border-radius:12px;
  min-width:16px; transition:width .4s ease;
}
.budget-val{ font-size:13px; color:var(--muted); }

.b-search{ background:linear-gradient(90deg,#1a73e8,#4285f4); }
.b-seo{ background:linear-gradient(90deg,var(--accent),#00897B); }
.b-social{ background:linear-gradient(90deg,#0077B5,#1DA1F2); }
.b-retarget{ background:linear-gradient(90deg,#FB8C00,#FFA726); }
.b-creative{ background:linear-gradient(90deg,#E91E63,#F48FB1); }
.b-conting{ background:linear-gradient(90deg,#78909C,#B0BEC5); }
.b-email{ background:linear-gradient(90deg,#7B1FA2,#BA68C8); }
.b-web{ background:linear-gradient(90deg,#00695C,#4DB6AC); }
.b-analytics{ background:linear-gradient(90deg,#F9A825,#FDD835); }
.b-local{ background:linear-gradient(90deg,#558B2F,#8BC34A); }

@media(max-width:640px){
  .budget-row{ grid-template-columns:80px 1fr 100px; }
  .budget-label{ font-size:11px; }
}

/* ---- NOTES PANEL ---- */
.notes{
  position:fixed; right:14px; bottom:14px;
  width:min(420px,calc(100vw - 28px));
  max-height:50vh; overflow:auto;
  border-radius:var(--radius);
  border:1px solid rgba(0,0,0,.10);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow);
  transform:translateY(10px); opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.notes.is-open{
  opacity:1; transform:translateY(0);
  pointer-events:auto;
}
.notes__inner{ padding:14px 14px 12px 14px; }
.notes__title{ font-weight:800; margin-bottom:8px; }
.notes__body{ color:#333; line-height:1.4; }
.notes__hint{ margin-top:10px; color:var(--muted); font-size:12px; }

/* ---- TITLE HERO ---- */
.slide--hero{
  position:relative; overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0; z-index:0;
}
.hero-bg img{
  width:100%; height:100%; object-fit:cover;
  opacity:.15;
}
.slide--hero .slide__inner{
  position:relative; z-index:1;
}
.title-accent{
  width:80px; height:5px; border-radius:99px;
  background:linear-gradient(90deg,var(--accent),var(--accent2));
  margin:14px 0 18px;
}

/* ---- STAT RINGS ---- */
.stat-row{
  display:flex; gap:24px; flex-wrap:wrap;
  margin:24px 0 18px;
}
.stat-ring{
  width:100px; height:100px; border-radius:50%;
  border:4px solid var(--accent);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  background:var(--panel);
  box-shadow:var(--shadow);
}
.stat-ring__num{
  font-size:26px; font-weight:800;
  color:var(--accent); line-height:1;
}
.stat-ring__label{
  font-size:10px; color:var(--muted);
  text-align:center; margin-top:3px;
  line-height:1.2; max-width:80px;
}

/* ---- CARD ICON ---- */
.card-icon{ font-size:28px; margin-bottom:6px; }

/* ---- DIFFERENTIATOR CARDS ---- */
.diff-card{ text-align:center; }
.diff-icon{
  width:48px; height:48px; border-radius:12px;
  display:inline-flex; align-items:center; justify-content:center;
  color:#fff; font-weight:800; font-size:20px;
  box-shadow:var(--shadow); margin-bottom:10px;
}
.diff-card h3{ margin-top:0; }
.diff-card .card__lede{ text-align:center; }
.diff-card ul{ text-align:left; }

/* ---- JOURNEY STEP NUMBERS ---- */
.journey__num{
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; color:#fff;
  margin-bottom:6px; background:var(--accent);
}
.j1 .journey__num{ background:#3b82f6; }
.j2 .journey__num{ background:#8b5cf6; }
.j3 .journey__num{ background:#f59e0b; }
.j4 .journey__num{ background:var(--accent2); }
.j5 .journey__num{ background:var(--accent); }
.j6 .journey__num{ background:#e8b47b; }

/* ---- PERSONA AVATARS ---- */
.persona-avatar{ font-size:32px; margin-bottom:6px; }
.pc--primary{ border-top:4px solid var(--accent); }
.pc--secondary{ border-top:4px solid #2196F3; }
.pc--tertiary{ border-top:4px solid #9C27B0; }

/* ---- CHANNEL ICONS ---- */
.ch-icon{ font-size:24px; margin-bottom:4px; }

/* ---- SECTION LABEL (merged tactic slides) ---- */
.section-label{
  font-size:13px; font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; color:var(--muted); margin-bottom:10px;
}

/* ---- COMPACT MOCKUPS ---- */
.email-mock.compact p{ font-size:13px; padding:8px 14px 0; }
.email-mock.compact .email-cta{ margin:6px 14px 10px; padding:6px 12px; font-size:12px; }
.email-mock.compact .email-subj{ padding:8px 12px; }
.social-mock.compact{ display:flex; flex-direction:column; gap:8px; }
.social-mock.compact .social-platform{ align-self:flex-start; }
.social-mock.compact h3{
  font-size:14px;
  margin:0;
  padding:0 14px;
  line-height:1.3;
  text-align:left;
}
.social-mock.compact p{
  font-size:13px;
  margin:0;
  padding:0 14px;
  line-height:1.45;
  text-align:left;
}
.social-mock.compact .social-tags{
  margin-top:2px;
  padding:0 14px 12px;
}

/* ---- CHECK LIST (Takeaways) ---- */
.check-list{
  display:flex; flex-direction:column; gap:10px;
  margin-top:10px;
}
.check-item{
  display:flex; align-items:flex-start; gap:10px;
}
.check-icon{
  flex-shrink:0; width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--accent2); color:#fff;
  font-size:14px; font-weight:800;
}

/* ---- PRINT ---- */
@media print{
  .topbar,.notes{ display:none !important; }
  body{ background:#fff; color:#111; }
  a{ color:#0a66c2; }
  .deck{ height:auto; overflow:visible; scroll-snap-type:none; }
  .slide{ min-height:auto; page-break-after:always; }
  .card,.swot__cell,.bcg__cell,.funnel__step{ box-shadow:none; }
  .budget-bar{ print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}
