/* ============================================================
   HORIZON — events-media.css
   Styles for the merged Events & Media page (events-media.html).

   This is the same page-specific CSS that used to be embedded
   directly in media.html's <head> as an inline <style> block —
   moved out to an external file as part of the Events + Media
   merge (pure code-organization change; nothing here was
   restyled). Covers: the Facebook event photo/video gallery
   (.fbgal-*), the GMTI 2026 industry highlight tabs, and the
   video/press/downloads grids.
   ============================================================ */

/* Per-event gallery cards */
  .fbgal-events-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
  .fbgal-event-card {
    display: flex; flex-direction: column; text-align: left;
    background: #fff; border: 1.5px solid var(--gray-100); border-radius: var(--r-lg);
    overflow: hidden; cursor: pointer; padding: 0; font: inherit; color: inherit;
    transition: all var(--dur-mid) var(--ease);
  }
  .fbgal-event-card:hover { border-color: var(--blue); box-shadow: var(--sh-md); transform: translateY(-3px); }
  .fbgal-event-cover { display:block; aspect-ratio: 4/3; overflow: hidden; background: var(--gray-100); }
  .fbgal-event-cover-img { width:100%; height:100%; object-fit: cover; display:block; transition: transform .55s cubic-bezier(.22,1,.36,1); }
  .fbgal-event-card:hover .fbgal-event-cover-img { transform: scale(1.06); }

  .fbgal-event-cover-img--photo {
    width: 100%; height: 100%; object-fit: cover;
    filter: none; opacity: 1;
  }
  .fbgal-event-cover-img--placeholder {
    width: 56px; height: 56px; object-fit: contain;
  }
  .fbgal-event-body { padding: 1.25rem 1.375rem 1.5rem; display:flex; flex-direction:column; gap:.375rem; }
  .fbgal-event-title { font-family: var(--font-display); font-size: .9375rem; font-weight: 700; color: var(--navy); line-height:1.35; }
  .fbgal-event-meta { font-size: .78125rem; color: var(--gray-600); }
  .fbgal-event-cta { margin-top:.5rem; font-family: var(--font-display); font-size: .78125rem; font-weight: 700; color: var(--blue); display:flex; align-items:center; gap:.4rem; }
  .fbgal-event-count:not(:empty)::before { content: '· '; }
  @media(max-width:900px){ .fbgal-events-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:560px){ .fbgal-events-grid{ grid-template-columns:1fr; } }


  .fbgal-page-status {
    min-height: 1.5rem; margin: 0 0 1.25rem;
    text-align: center; color: var(--gray-600); font-size: .8125rem;
  }
  .fbgal-page-status.is-error { color: #a63d36; }
  .fbgal-page-status.is-empty { color: var(--gray-500); }

  /* Album modal */
  #fbgal-modal{position:fixed;inset:0;z-index:2900;background:rgba(11,31,53,.72);
    display:flex;align-items:center;justify-content:center;padding:1.5rem;
    opacity:0;pointer-events:none;transition:opacity .28s ease;}
  #fbgal-modal.is-open{opacity:1;pointer-events:all;}
  .fbgal-modal-inner{background:#fff;border-radius:var(--r-lg);width:100%;max-width:920px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--sh-lg);}
  .fbgal-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-100);}
  .fbgal-modal-eyebrow{font-family:var(--font-display);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:.25rem;}
  .fbgal-modal-title{font-family:var(--font-display);font-size:1.0625rem;font-weight:700;color:var(--navy);}
  #fbgal-modal-close{color:var(--gray-400);font-size:1.75rem;line-height:1;padding:.25rem .5rem;cursor:pointer;transition:color .15s;flex-shrink:0;}
  #fbgal-modal-close:hover{color:var(--navy);}
  .fbgal-modal-body{overflow-y:auto;padding:1.5rem;}
  .fbgal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.625rem;}
  .fbgal-thumb{aspect-ratio:1/1;border-radius:8px;overflow:hidden;padding:0;border:none;cursor:pointer;background:var(--gray-100);}
  .fbgal-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
  .fbgal-thumb:hover img{transform:scale(1.08);}
  .fbgal-status{text-align:center;font-size:.8125rem;color:var(--gray-500);padding:1.25rem 0 .25rem;}
  .fbgal-status-error{color:var(--red-dark);}
  #fbgal-sentinel{height:1px;}

  /* Lightbox (shared) */
  #lightbox{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.94);
    display:flex;align-items:center;justify-content:center;padding:1.5rem;
    opacity:0;pointer-events:none;transition:opacity .3s ease;}
  #lightbox.is-open{opacity:1;pointer-events:all;}
  .lb-inner{position:relative;max-width:90vw;text-align:center;}
  #lb-img{max-width:90vw;max-height:82vh;object-fit:contain;border-radius:var(--r-md);}
  #lb-close{position:absolute;top:-2.5rem;right:0;color:rgba(255,255,255,.7);font-size:1.75rem;padding:.5rem;cursor:pointer;transition:color .15s;}
  #lb-close:hover{color:#fff;}
  #lb-caption{color:rgba(255,255,255,.65);font-size:.875rem;margin-top:.875rem;}
  .lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:1.75rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;}
  .lb-nav:hover{background:rgba(255,255,255,.22);}
  .lb-nav:disabled{opacity:.3;cursor:default;}
  .lb-nav.is-hidden{display:none;}
  .lb-prev{left:-1rem;}
  .lb-next{right:-1rem;}
  @media(max-width:640px){ .lb-prev{left:.25rem;} .lb-next{right:.25rem;} }

  /* ── GMTI 2026 — Horizon editorial ranking explorer ───────── */
  .gmti-highlight{width:100%;display:block;margin:0 auto clamp(2.5rem,5vw,4.5rem);background:#fff;color:#0b0c1a;border-radius:16px;overflow:hidden;box-shadow:0 16px 45px rgba(14,28,52,.07);border:1px solid #e3e6ee;position:relative}
  .gmti-highlight::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--red) 0%,var(--blue) 50%,var(--gold) 100%)}
  .gmti-header-image{display:block;width:100%;background:#0b2037;overflow:hidden;border-bottom:1px solid #e6e9ef}
  .gmti-header-image img{display:block;width:100%;height:auto;aspect-ratio:886/355;object-fit:cover;object-position:center}
  .gmti-highlight-copy{padding:clamp(1.6rem,3.2vw,3rem);min-width:0;display:flex;flex-direction:column}
  .gmti-highlight-kicker-row{display:flex;flex-wrap:wrap;gap:.55rem .75rem;align-items:center;margin-bottom:1rem}
  .gmti-live-dot{width:.52rem;height:.52rem;border-radius:50%;background:var(--red);box-shadow:0 0 0 5px rgba(255,64,64,.12)}
  .gmti-highlight-kicker,.gmti-highlight-edition{font-family:var(--font-display);font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
  .gmti-highlight-kicker{color:var(--red)}
  .gmti-highlight-edition{color:#7a8090}
  .gmti-highlight-title{font-family:var(--font-display);font-size:clamp(1.9rem,4vw,3.2rem);line-height:1.02;font-weight:850;margin:0 0 .9rem;color:#0b0c1a;letter-spacing:-.03em}
  .gmti-highlight-lead{max-width:75ch;color:#5f6675;font-size:.94rem;line-height:1.65;margin-bottom:1.45rem}
  .gmti-market{margin:0 0 1.35rem;padding:1.35rem 0 0;border-top:1px solid #e6e9ef;background:none;border-radius:0}
  .gmti-market-heading{max-width:78ch;margin-bottom:1rem}
  .gmti-market-heading h3{margin:.25rem 0 .45rem;color:#111322;font-family:var(--font-display);font-size:clamp(1.3rem,2.25vw,1.8rem);line-height:1.12}
  .gmti-market-heading p{margin:0;color:#6b7280;font-size:.78rem;line-height:1.6}
  .gmti-market-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}
  .gmti-market-stat{min-width:0;padding:1rem;border:1px solid #e1e5ec;border-radius:12px;background:#f8fafc}
  .gmti-market-year{display:block;color:#7a8090;font-size:.62rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase;margin-bottom:.32rem}
  .gmti-market-stat strong{display:block;color:#0b0c1a;font-family:var(--font-display);font-size:clamp(1.5rem,2.8vw,2.15rem);line-height:1;letter-spacing:-.025em}
  .gmti-market-stat > span:not(.gmti-market-year){display:block;margin-top:.45rem;color:#6d7482;font-size:.68rem;line-height:1.45}
  .gmti-market-stat b{display:block;margin-top:.5rem;color:#008c68;font-size:.65rem;font-weight:850}
  .gmti-market-source{margin-top:.8rem;color:#7a8090;font-size:.64rem;line-height:1.5}
  .gmti-stat-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0 0 1.55rem}
  .gmti-stat{padding:.95rem .9rem;border:1px solid #e1e5ec;background:#f8fafc;border-radius:12px;position:relative;overflow:hidden}
  .gmti-stat:nth-child(1)::before{background:var(--blue)}
  .gmti-stat:nth-child(2)::before{background:var(--gold)}
  .gmti-stat::before{content:"";position:absolute;inset:0 auto 0 0;width:3px}
  .gmti-stat strong{display:block;font-family:var(--font-display);font-size:1.22rem;font-weight:850;color:#111322;line-height:1.1;margin-bottom:.3rem}
  .gmti-stat span{display:block;color:#6d7482;font-size:.69rem;line-height:1.4}
  .gmti-top-wrap{border-top:0;padding-top:0;flex:1;display:flex;flex-direction:column;min-height:0}
  .gmti-top-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;margin-bottom:.85rem}
  .gmti-mini-label{display:block;color:#7a8090;font-family:var(--font-display);font-size:.62rem;font-weight:800;letter-spacing:.10em}
  .gmti-top-heading h3{margin:.22rem 0 0;font-family:var(--font-display);font-size:1.18rem;color:#111322}
  .gmti-updated{color:#7a8090;font-size:.68rem;text-align:right}
  .gmti-tabs{display:flex;align-items:stretch;gap:0;margin:0 0 1.15rem;border:1px solid #cfd8e5;width:max-content;max-width:100%;background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 6px 18px rgba(11,32,55,.05)}
  .gmti-tab{border:0;border-right:1px solid #d6deea;background:#fff;color:#24354d;padding:.85rem 1.2rem;font:700 .78rem/1 var(--font-display);cursor:pointer;transition:.18s ease;position:relative}
  .gmti-tab:last-child{border-right:0}
  .gmti-tab:hover{background:#f3f7fb;color:#0b2037}
  .gmti-tab[aria-selected="true"]{background:#0b2037;color:#fff}
  .gmti-tab[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--gold)}
  .gmti-view{display:none}
  .gmti-view.is-active{display:block}
  .gmti-table-wrap{overflow-x:auto;overflow-y:hidden;max-height:none;scrollbar-width:none;border:1px solid #cfd8e5;border-radius:0;background:#fff;box-shadow:0 8px 20px rgba(11,32,55,.045);scroll-behavior:smooth}
  .gmti-table-wrap::-webkit-scrollbar{display:none}
  .gmti-table{width:100%;min-width:640px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:1.05rem}
  .gmti-table th{position:static;padding:.9rem .85rem;color:#68768b;font-size:.78rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;text-align:left;border-bottom:1px solid #cfd8e5;white-space:nowrap;background:#f7f9fc}
  .gmti-table td{padding:1rem .85rem;color:#151a2a;border-bottom:1px solid #e8edf3;vertical-align:middle;background:#fff}
  .gmti-table tbody tr{transition:background-color .18s ease}
  .gmti-table tbody tr:hover td{background:#f5f8fc}
  .gmti-table tbody tr:last-child td{border-bottom:0}
  .gmti-table .col-rank{width:72px}
  .gmti-table .col-destination{width:auto}
  .gmti-table .col-score{width:104px;text-align:right}
  .gmti-table .col-change{width:128px;text-align:center}
  .gmti-rank{display:inline-flex;align-items:center;justify-content:center;min-width:1.9rem;height:1.65rem;font-family:var(--font-display);font-weight:850;color:#9aa1af;background:transparent}
  .gmti-rank--gold{color:#8a6a00}
  .gmti-rank--blue{color:#1f5fbf}
  .gmti-destination{font-family:var(--font-display);font-weight:750;color:#111322;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
  .gmti-destination-sub{display:block;margin-top:.22rem;color:#8a91a0;font-size:.82rem;font-weight:500}
  .gmti-score{font-family:var(--font-display);color:#0b0c1a;font-weight:850;text-align:right;font-size:1.35rem}
  .gmti-score-cell{text-align:right}
  .gmti-change-pill{display:inline-flex;align-items:center;justify-content:center;gap:.16rem;min-width:2.5rem;padding:.32rem .55rem;border-radius:999px;font-size:.82rem;font-weight:850;line-height:1;white-space:nowrap}
  .gmti-move-up{color:#008c68;font-weight:850;white-space:nowrap}
  .gmti-move-down{color:#dc3a2e;font-weight:850;white-space:nowrap}
  .gmti-move-flat{color:#8b93a1;font-weight:800;white-space:nowrap}
  .gmti-pill-up{background:#eaf9f3;color:#008c68}
  .gmti-pill-down{background:#fff0ee;color:#dc3a2e}
  .gmti-pill-flat{background:#f3f4f6;color:#8b93a1}
  .gmti-rank-skeleton{height:2rem;border-radius:8px;background:linear-gradient(90deg,#f0f2f6,#e6eaf1,#f0f2f6);background-size:200% 100%;animation:gmtiPulse 1.4s ease-in-out infinite}
  .gmti-mover-note{margin:.75rem .15rem .05rem;color:#7a8090;font-size:.67rem;line-height:1.55}
  .gmti-mover-note strong{color:#111322}
  .gmti-source-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:1rem;padding-top:.95rem;border-top:1px solid #e6e9ef;font-size:.69rem;color:#7a8090}
  .gmti-source-row a{color:#253a96;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;font-weight:750}
  .gmti-source-row a:hover{color:#111322}
  .gmti-credits{margin-top:1rem;padding:1rem 1.1rem;border:1px solid #e1e5ec;border-radius:12px;background:#fafbfc;color:#6d7482;font-size:.68rem;line-height:1.55}
  .gmti-credits-title{font-family:var(--font-display);font-weight:850;color:#111322;margin-bottom:.45rem}
  .gmti-credits p{margin:.3rem 0}
  .gmti-credits a{color:#253a96;font-weight:750}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  @media(max-width:900px){
    .gmti-market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .gmti-table{min-width:640px}
    .gmti-table .col-change{width:104px}
    .gmti-source-row{align-items:flex-start;flex-direction:column}
  }
  @media(max-width:640px){
    .gmti-highlight-copy{padding:1.1rem}
    .gmti-market-grid{grid-template-columns:1fr 1fr;gap:.5rem}
    .gmti-market-stat{padding:.75rem}
    .gmti-tabs{width:100%;overflow:hidden}
    .gmti-tab{flex:1;padding:.78rem .55rem;font-size:.68rem}
    .gmti-table th,.gmti-table td{padding:.72rem .5rem}
    .gmti-table{min-width:660px}
    .gmti-table .col-score{width:82px}
    .gmti-table .col-change{width:92px}
    
  }
  @media(max-width:430px){
    .gmti-market-grid{grid-template-columns:1fr}
    .gmti-stat-strip{grid-template-columns:1fr}
    .gmti-tab{font-size:.64rem}
  }
/* =========================================================
   MARKET STAT CARDS — HORIZON SIDE COLOR BARS
   ========================================================= */

.gmti-market-stat {
  min-width: 0;
  padding: 1rem 1rem 1rem 1.15rem;
  border: 1px solid #e1e5ec;
  border-radius: 12px;
  background: #f8fafc;
  position: relative;
  overflow: hidden;

  transition:
  transform .25s ease,
  border-color .25s ease,
  box-shadow .25s ease,
  background-color .25s ease;
}


/* Permanent left-side Horizon color line */
.gmti-market-stat::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  transition: width .25s ease;
}


/* ─────────────────────────────────────────
   196M — BLUE
   ───────────────────────────────────────── */

.gmti-market-stat:nth-child(1)::before {
  background: var(--horizon-blue);
}


/* ─────────────────────────────────────────
   208M — YELLOW
   ───────────────────────────────────────── */

.gmti-market-stat:nth-child(2)::before {
  background: var(--horizon-yellow);
}


/* ─────────────────────────────────────────
   262M — RED
   ───────────────────────────────────────── */

.gmti-market-stat:nth-child(3)::before {
  background: var(--horizon-red);
}


/* ─────────────────────────────────────────
   USD 310B — BLUE
   ───────────────────────────────────────── */

.gmti-market-stat:nth-child(4)::before {
  background: var(--horizon-blue);
}


/* =========================================================
   HOVER
   ========================================================= */

.gmti-market-stat:hover {
  transform: translateY(-4px);
  background: #fff;
}

.gmti-market-stat:hover::before {
  width: 6px;
}


/* Blue hover */
.gmti-market-stat:nth-child(1):hover,
.gmti-market-stat:nth-child(4):hover {
  border-color: rgba(22,119,232,.45);
  box-shadow: 0 12px 30px rgba(22,119,232,.12);
}


/* Yellow hover */
.gmti-market-stat:nth-child(2):hover {
  border-color: rgba(245,200,66,.70);
  box-shadow: 0 12px 30px rgba(245,200,66,.16);
}


/* Red hover */
.gmti-market-stat:nth-child(3):hover {
  border-color: rgba(240,68,68,.45);
  box-shadow: 0 12px 30px rgba(240,68,68,.12);
}


/* =========================================================
   TEXT
   ========================================================= */

.gmti-market-year {
  display: block;
  color: #7a8090;
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
  margin-bottom: .32rem;
}

.gmti-market-stat strong {
  display: block;
  color: #0b0c1a;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.8vw, 2.15rem);
  line-height: 1;
  letter-spacing: -.025em;
  transition: color .2s ease;
}

.gmti-market-stat > span:not(.gmti-market-year) {
  display: block;
  margin-top: .45rem;
  color: #6d7482;
  font-size: .68rem;
  line-height: 1.45;
}

.gmti-market-stat b {
  display: block;
  margin-top: .5rem;
  color: #008c68;
  font-size: .65rem;
  font-weight: 850;
}


/* Number changes color on hover */

.gmti-market-stat:nth-child(1):hover strong,
.gmti-market-stat:nth-child(4):hover strong {
  color: var(--horizon-blue);
}

.gmti-market-stat:nth-child(2):hover strong {
  color: var(--horizon-yellow-dark);
}

.gmti-market-stat:nth-child(3):hover strong {
  color: var(--horizon-red);
}
  /* ── GMTI 2026 — Horizon editorial ranking explorer ───────── */

  :root {
  --horizon-blue: #1677E8;
  --horizon-blue-dark: #0B4FA3;
  --horizon-yellow: #F5C842;
  --horizon-yellow-dark: #B48A00;
  --horizon-yellow-light: #FFF8D9;
  --horizon-red: #F04444;
  --horizon-red-light: #FFF0F0;
  }

  /* =========================================================
   MAIN GMTI CONTAINER
   ========================================================= */

  .gmti-highlight {
  width: 100%;
  display: block;
  margin: 0 auto clamp(2.5rem, 5vw, 4.5rem);
  background: #fff;
  color: #0b0c1a;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 16px 45px rgba(14,28,52,.07);
  border: 1px solid #e3e6ee;
  position: relative;
  }

  /* Horizon blue → yellow → red branding bar */
  .gmti-highlight::before {
  content: "";
  display: block;
  height: 5px;
  background: linear-gradient(
    90deg,
    var(--horizon-blue) 0%,
    var(--horizon-blue) 34%,
    var(--horizon-yellow) 50%,
    var(--horizon-red) 66%,
    var(--horizon-blue) 100%
  );
  background-size: 200% 100%;
  animation: horizonGradient 8s linear infinite;
  }

  @keyframes horizonGradient {
  0% {
    background-position: 0% 50%;
  }

  100% {
    background-position: 200% 50%;
  }
  }


  /* =========================================================
   HEADER IMAGE
   ========================================================= */

  .gmti-header-image {
  display: block;
  width: 100%;
  background: #0b2037;
  overflow: hidden;
  border-bottom: 1px solid #e6e9ef;
  position: relative;
  }

  .gmti-header-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(22,119,232,.10),
      transparent 40%,
      rgba(245,200,66,.10),
      rgba(240,68,68,.08)
    );
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
  }

  .gmti-header-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 886 / 355;
  object-fit: cover;
  object-position: center;
  transition: transform .5s ease;
  }

  .gmti-header-image:hover img {
  transform: scale(1.025);
  }

  .gmti-header-image:hover::after {
  opacity: 1;
  }


  /* =========================================================
   MAIN COPY
   ========================================================= */

  .gmti-highlight-copy {
  padding: clamp(1.6rem, 3.2vw, 3rem);
  min-width: 0;
  display: flex;
  flex-direction: column;
  }


  /* =========================================================
   KICKER
   ========================================================= */

  .gmti-highlight-kicker-row {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .75rem;
  align-items: center;
  margin-bottom: 1rem;
  }

  .gmti-live-dot {
  width: .52rem;
  height: .52rem;
  border-radius: 50%;
  background: var(--horizon-red);

  box-shadow:
    0 0 0 5px rgba(240,68,68,.12),
    0 0 14px rgba(240,68,68,.25);

  animation: horizonPulse 2s ease-in-out infinite;
  }

  @keyframes horizonPulse {
  0%, 100% {
    box-shadow:
      0 0 0 5px rgba(240,68,68,.12),
      0 0 10px rgba(240,68,68,.15);
  }

  50% {
    box-shadow:
      0 0 0 8px rgba(240,68,68,.04),
      0 0 18px rgba(240,68,68,.30);
  }
  }

  .gmti-highlight-kicker,
  .gmti-highlight-edition {
  font-family: var(--font-display);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  }

  .gmti-highlight-kicker {
  color: var(--horizon-red);
  }

  .gmti-highlight-edition {
  color: #7a8090;
  }


  /* =========================================================
   TITLE
   ========================================================= */

  .gmti-highlight-title {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 4vw, 3.2rem);
  line-height: 1.02;
  font-weight: 850;
  margin: 0 0 .9rem;
  color: #0b0c1a;
  letter-spacing: -.03em;
  }

  .gmti-highlight-lead {
  max-width: 75ch;
  color: #5f6675;
  font-size: .94rem;
  line-height: 1.65;
  margin-bottom: 1.45rem;
  }


  /* =========================================================
   MARKET SECTION
   ========================================================= */

  .gmti-market {
  margin: 0 0 1.35rem;
  padding: 1.35rem 0 0;
  border-top: 1px solid #e6e9ef;
  background: none;
  border-radius: 0;
  }

  .gmti-market-heading {
  max-width: 78ch;
  margin-bottom: 1rem;
  }

  .gmti-market-heading h3 {
  margin: .25rem 0 .45rem;
  color: #111322;
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.25vw, 1.8rem);
  line-height: 1.12;
  }

  .gmti-market-heading p {
  margin: 0;
  color: #6b7280;
  font-size: .78rem;
  line-height: 1.6;
  }


  /* =========================================================
   MARKET GRID
   ========================================================= */

  .gmti-market-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
  }

  .gmti-market-stat {
  min-width: 0;
  padding: 1rem;
  border: 1px solid #e1e5ec;
  border-radius: 12px;
  background: #f8fafc;
  position: relative;
  overflow: hidden;

  transition:
    transform .25s ease,
    border-color .25s ease,
    box-shadow .25s ease,
    background-color .25s ease;
  }

  /* Bottom Horizon accent */
  .gmti-market-stat::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
  }

  /* 196M — Blue */
  .gmti-market-stat:nth-child(1)::after {
  background: var(--horizon-blue);
  }

  /* 208M — Yellow */
  .gmti-market-stat:nth-child(2)::after {
  background: var(--horizon-yellow);
  }

  /* 262M — Red */
  .gmti-market-stat:nth-child(3)::after {
  background: var(--horizon-red);
  }

  /* USD 310B — Blue */
  .gmti-market-stat:nth-child(4)::after {
  background: var(--horizon-blue);
  }

  .gmti-market-stat:hover {
  transform: translateY(-4px);
  background: #fff;
  }

  .gmti-market-stat:nth-child(1):hover {
  border-color: rgba(22,119,232,.45);
  box-shadow: 0 12px 30px rgba(22,119,232,.12);
  }

  .gmti-market-stat:nth-child(2):hover {
  border-color: rgba(245,200,66,.70);
  box-shadow: 0 12px 30px rgba(245,200,66,.16);
  }

  .gmti-market-stat:nth-child(3):hover {
  border-color: rgba(240,68,68,.45);
  box-shadow: 0 12px 30px rgba(240,68,68,.12);
  }

  .gmti-market-stat:nth-child(4):hover {
  border-color: rgba(22,119,232,.45);
  box-shadow: 0 12px 30px rgba(22,119,232,.12);
  }

  .gmti-market-stat:hover::after {
  transform: scaleX(1);
  }

  .gmti-market-year {
  display: block;
  color: #7a8090;
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
  margin-bottom: .32rem;
  }

  .gmti-market-stat strong {
  display: block;
  color: #0b0c1a;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.8vw, 2.15rem);
  line-height: 1;
  letter-spacing: -.025em;
  }

  .gmti-market-stat > span:not(.gmti-market-year) {
  display: block;
  margin-top: .45rem;
  color: #6d7482;
  font-size: .68rem;
  line-height: 1.45;
  }

  .gmti-market-stat b {
  display: block;
  margin-top: .5rem;
  color: #008c68;
  font-size: .65rem;
  font-weight: 850;
  }

  .gmti-market-source {
  margin-top: .8rem;
  color: #7a8090;
  font-size: .64rem;
  line-height: 1.5;
  }


  /* =========================================================
   OVERVIEW STAT STRIP
   ========================================================= */

  .gmti-stat-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
  margin: 0 0 1.55rem;
  }

  .gmti-stat {
  position: relative;
  overflow: hidden;
  padding: 1rem 1rem 1rem 1.15rem;
  border: 1px solid #e1e5ec;
  background: #f8fafc;
  border-radius: 12px;

  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease,
    background-color .25s ease;
  }

  /* Left Horizon accent */
  .gmti-stat::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  transition: width .25s ease;
  }

  /* 150 destinations — Blue */
  .gmti-stat:nth-child(1)::before {
  background: var(--horizon-blue);
  }

  /* 98%+ — Yellow */
  .gmti-stat:nth-child(2)::before {
  background: var(--horizon-yellow);
  }

  .gmti-stat:hover {
  transform: translateY(-4px);
  background: #fff;
  }

  .gmti-stat:nth-child(1):hover {
  border-color: rgba(22,119,232,.45);
  box-shadow: 0 12px 28px rgba(22,119,232,.12);
  }

  .gmti-stat:nth-child(2):hover {
  border-color: rgba(245,200,66,.65);
  box-shadow: 0 12px 28px rgba(245,200,66,.16);
  }

  .gmti-stat:hover::before {
  width: 6px;
  }

  .gmti-stat strong {
  position: relative;
  z-index: 1;
  display: block;
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 850;
  color: #111322;
  line-height: 1.1;
  margin-bottom: .3rem;
  transition: color .2s ease;
  }

  .gmti-stat:nth-child(1):hover strong {
  color: var(--horizon-blue);
  }

  .gmti-stat:nth-child(2):hover strong {
  color: var(--horizon-yellow-dark);
  }

  .gmti-stat span {
  position: relative;
  z-index: 1;
  display: block;
  color: #6d7482;
  font-size: .69rem;
  line-height: 1.4;
  }


  /* =========================================================
   TOP DESTINATIONS
   ========================================================= */

  .gmti-top-wrap {
  border-top: 0;
  padding-top: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  }

  .gmti-top-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-end;
  margin-bottom: .85rem;
  }

  .gmti-mini-label {
  display: block;
  color: #7a8090;
  font-family: var(--font-display);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .10em;
  }

  .gmti-top-heading h3 {
  margin: .22rem 0 0;
  font-family: var(--font-display);
  font-size: 1.18rem;
  color: #111322;
  }

  .gmti-updated {
  color: #7a8090;
  font-size: .68rem;
  text-align: right;
  }


  /* =========================================================
   TABS
   ========================================================= */

  .gmti-tabs {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 0 0 1.15rem;
  border: 1px solid #cfd8e5;
  width: max-content;
  max-width: 100%;
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(11,32,55,.05);
  }

  .gmti-tab {
  border: 0;
  border-right: 1px solid #d6deea;
  background: #fff;
  color: #24354d;
  padding: .85rem 1.2rem;
  font: 700 .78rem/1 var(--font-display);
  cursor: pointer;
  position: relative;

  transition:
    background-color .2s ease,
    color .2s ease,
    box-shadow .2s ease;
  }

  .gmti-tab:last-child {
  border-right: 0;
  }

  .gmti-tab:hover {
  background: #eef6ff;
  color: var(--horizon-blue-dark);
  box-shadow: inset 0 -3px 0 var(--horizon-blue);
  }

  .gmti-tab[aria-selected="true"] {
  background: #0b2037;
  color: #fff;
  box-shadow: inset 0 -3px 0 var(--horizon-yellow);
  }

  .gmti-tab[aria-selected="true"]:hover {
  background: #102b49;
  }


  /* =========================================================
   VIEW SWITCHING
   ========================================================= */

  .gmti-view {
  display: none;
  }

  .gmti-view.is-active {
  display: block;
  }


  /* =========================================================
   TABLE
   ========================================================= */

  .gmti-table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  max-height: none;
  scrollbar-width: none;
  border: 1px solid #cfd8e5;
  border-radius: 0;
  background: #fff;
  box-shadow: 0 8px 20px rgba(11,32,55,.045);
  scroll-behavior: smooth;
  }

  .gmti-table-wrap::-webkit-scrollbar {
  display: none;
  }

  .gmti-table {
  width: 100%;
  min-width: 640px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  font-size: 1.05rem;
  }

  .gmti-table th {
  position: static;
  padding: .9rem .85rem;
  color: #68768b;
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: left;
  border-bottom: 1px solid #cfd8e5;
  white-space: nowrap;
  background: #f7f9fc;
  }

  .gmti-table td {
  padding: 1rem .85rem;
  color: #151a2a;
  border-bottom: 1px solid #e8edf3;
  vertical-align: middle;
  background: #fff;
  }

  .gmti-table tbody tr {
  transition:
    background-color .2s ease,
    transform .2s ease;
  }

  .gmti-table tbody tr:hover td {
  background: #f7fbff;
  }

  /* Blue indicator on hovered row */
  .gmti-table tbody tr:hover td:first-child {
  box-shadow: inset 3px 0 0 var(--horizon-blue);
  }

  .gmti-table tbody tr:hover .gmti-destination {
  color: var(--horizon-blue-dark);
  }

  .gmti-table tbody tr:last-child td {
  border-bottom: 0;
  }


  /* =========================================================
   TABLE COLUMNS
   ========================================================= */

  .gmti-table .col-rank {
  width: 72px;
  }

  .gmti-table .col-destination {
  width: auto;
  }

  .gmti-table .col-score {
  width: 104px;
  text-align: right;
  }

  .gmti-table .col-change {
  width: 128px;
  text-align: center;
  }


  /* =========================================================
   RANKINGS
   ========================================================= */

  .gmti-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.9rem;
  height: 1.65rem;
  font-family: var(--font-display);
  font-weight: 850;
  color: #9aa1af;
  background: transparent;
  border-radius: 6px;
  transition:
    background-color .2s ease,
    color .2s ease;
  }

  .gmti-rank--gold {
  color: var(--horizon-yellow-dark);
  background: var(--horizon-yellow-light);
  }

  .gmti-rank--blue {
  color: var(--horizon-blue);
  background: #eef6ff;
  }

  .gmti-destination {
  font-family: var(--font-display);
  font-weight: 750;
  color: #111322;
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  transition: color .2s ease;
  }

  .gmti-destination-sub {
  display: block;
  margin-top: .22rem;
  color: #8a91a0;
  font-size: .82rem;
  font-weight: 500;
  }

  .gmti-score {
  font-family: var(--font-display);
  color: #0b0c1a;
  font-weight: 850;
  text-align: right;
  font-size: 1.35rem;
  }

  .gmti-score-cell {
  text-align: right;
  }


  /* =========================================================
   SCORE / RANK MOVEMENT
   ========================================================= */

  .gmti-change-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .16rem;
  min-width: 2.5rem;
  padding: .32rem .55rem;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
  }

  .gmti-move-up {
  color: #008c68;
  font-weight: 850;
  white-space: nowrap;
  }

  .gmti-move-down {
  color: var(--horizon-red);
  font-weight: 850;
  white-space: nowrap;
  }

  .gmti-move-flat {
  color: #8b93a1;
  font-weight: 800;
  white-space: nowrap;
  }

  .gmti-pill-up {
  background: #eaf9f3;
  color: #008c68;
  }

  .gmti-pill-down {
  background: var(--horizon-red-light);
  color: var(--horizon-red);
  }

  .gmti-pill-flat {
  background: #f3f4f6;
  color: #8b93a1;
  }


  /* =========================================================
   LOADING SKELETON
   ========================================================= */

  .gmti-rank-skeleton {
  height: 2rem;
  border-radius: 8px;
  background:
    linear-gradient(
      90deg,
      #f0f2f6,
      #e6eaf1,
      #f0f2f6
    );
  background-size: 200% 100%;
  animation: gmtiPulse 1.4s ease-in-out infinite;
  }

  @keyframes gmtiPulse {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
  }


  /* =========================================================
   MOVER NOTE
   ========================================================= */

  .gmti-mover-note {
  margin: .75rem .15rem .05rem;
  color: #7a8090;
  font-size: .67rem;
  line-height: 1.55;
  }

  .gmti-mover-note strong {
  color: #111322;
  }


  /* =========================================================
   SOURCE
   ========================================================= */

  .gmti-source-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  margin-top: 1rem;
  padding-top: .95rem;
  border-top: 1px solid #e6e9ef;
  font-size: .69rem;
  color: #7a8090;
  }

  .gmti-source-row a {
  color: var(--horizon-blue);
  text-decoration: underline;
  text-decoration-color: var(--horizon-yellow);
  text-underline-offset: 3px;
  font-weight: 750;

  transition:
    color .2s ease,
    text-decoration-color .2s ease;
  }

  .gmti-source-row a:hover {
  color: var(--horizon-red);
  text-decoration-color: var(--horizon-yellow);
  }


  /* =========================================================
   CREDITS
   ========================================================= */

  .gmti-credits {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid #e1e5ec;
  border-radius: 12px;
  background: #fafbfc;
  color: #6d7482;
  font-size: .68rem;
  line-height: 1.55;

  transition:
    border-color .25s ease,
    box-shadow .25s ease,
    background-color .25s ease;
  }

  .gmti-credits:hover {
  border-color: rgba(22,119,232,.25);
  background: #fff;
  box-shadow: 0 8px 22px rgba(11,32,55,.06);
  }

  .gmti-credits-title {
  font-family: var(--font-display);
  font-weight: 850;
  color: #111322;
  margin-bottom: .45rem;
  }

  .gmti-credits p {
  margin: .3rem 0;
  }

  .gmti-credits a {
  color: var(--horizon-blue);
  font-weight: 750;

  transition:
    color .2s ease,
    text-decoration-color .2s ease;
  }

  .gmti-credits a:hover {
  color: var(--horizon-red);
  text-decoration-color: var(--horizon-yellow);
  }


  /* =========================================================
   SCREEN READER ONLY
   ========================================================= */

  .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  }


  /* =========================================================
   TABLET
   ========================================================= */

  @media (max-width: 900px) {

  .gmti-market-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gmti-table {
    min-width: 640px;
  }

  .gmti-table .col-change {
    width: 104px;
  }

  .gmti-source-row {
    align-items: flex-start;
    flex-direction: column;
  }
  }


  /* =========================================================
   MOBILE
   ========================================================= */

  @media (max-width: 640px) {

  .gmti-highlight-copy {
    padding: 1.1rem;
  }

  .gmti-market-grid {
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
  }

  .gmti-market-stat {
    padding: .75rem;
  }

  .gmti-market-stat strong {
    font-size: 1.4rem;
  }

  .gmti-tabs {
    width: 100%;
    overflow: hidden;
  }

  .gmti-tab {
    flex: 1;
    padding: .78rem .55rem;
    font-size: .68rem;
  }

  .gmti-table th,
  .gmti-table td {
    padding: .72rem .5rem;
  }

  .gmti-table {
    min-width: 660px;
  }

  .gmti-table .col-score {
    width: 82px;
  }

  .gmti-table .col-change {
    width: 92px;
  }

  .gmti-stat {
    padding-left: 1rem;
  }
  }


  /* =========================================================
   SMALL MOBILE
   ========================================================= */

  @media (max-width: 430px) {

  .gmti-market-grid {
    grid-template-columns: 1fr;
  }

  .gmti-stat-strip {
    grid-template-columns: 1fr;
  }

  .gmti-tab {
    font-size: .64rem;
  }

  .gmti-highlight-kicker-row {
    gap: .45rem .6rem;
  }
  }


  /* =========================================================
   REDUCED MOTION
   ========================================================= */

  @media (prefers-reduced-motion: reduce) {

  .gmti-highlight::before,
  .gmti-live-dot,
  .gmti-rank-skeleton {
    animation: none;
  }

  .gmti-market-stat,
  .gmti-stat,
  .gmti-tab,
  .gmti-table tbody tr,
  .gmti-header-image img,
  .gmti-header-image::after,
  .gmti-credits {
    transition: none;
  }
  }

/* ============================================================
 * Industry Training & Workshops — course card grid
 * ------------------------------------------------------------
 * Cards, not an accordion (superseded design — the accordion rules
 * that lived here previously have been removed along with the now
 * unused courses-accordion.js). Top-image cards were chosen over a
 * side-image layout because this renders as a responsive multi-
 * column grid (3 / 2 / 1 columns) rather than a single-column list —
 * a side image only reads well in a list, and gets awkward at grid
 * widths once cards are ~300px wide.
 * ============================================================ */
.courses-sector-block + .courses-sector-block { margin-top: var(--sp-10); }
.courses-sector-title {
  text-align: center; font-size: 1.05rem; font-weight: 700; color: var(--navy);
  margin: 0 auto var(--sp-6);
  padding-bottom: .85rem; border-bottom: 2px solid var(--gray-100);
}
.courses-ip-note {
  max-width: 860px; margin: var(--sp-7) auto 0; text-align: center;
  font-size: .75rem; line-height: 1.6; color: var(--gray-400);
}

.courses-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-6);
}
@media (max-width: 980px) { .courses-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .courses-grid { grid-template-columns: 1fr; } }

.course-card {
  display: flex; flex-direction: column; height: 100%;
  background: #fff; border: 1px solid var(--gray-100); border-radius: var(--r-lg);
  overflow: hidden; box-shadow: var(--sh-xs);
  transition: transform 220ms var(--ease), box-shadow 220ms var(--ease);
}
.course-card:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }

.course-card-img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--gray-50); }
.course-card-img img { width: 100%; height: 100%; object-fit: cover; }

.course-card-body { display: flex; flex-direction: column; flex: 1; padding: 1.4rem 1.5rem 1.6rem; }
.course-card-id { font: 700 .68rem/1 var(--font-body); letter-spacing: .07em; text-transform: uppercase; color: var(--blue); margin-bottom: .4rem; }
.course-card-name { font-size: 1.0625rem; line-height: 1.35; margin-bottom: .5rem; }
.course-card-delivery { font-size: .8rem; font-weight: 600; color: var(--gray-500); margin-bottom: .75rem; }
.course-card-desc { font-size: .875rem; line-height: 1.65; color: var(--gray-600); margin-bottom: 1.35rem; flex: 1; }
.course-card-btn { align-self: flex-start; }

@media (prefers-reduced-motion: reduce) {
  .course-card { transition: none; }
}

