/* Kiwi News hub (/news/): top story / breaking, latest cards, category chips, "What's new at Kiwi" strip.
   Brand: Plus Jakarta Sans 800 headlines, sentence case, lilac/white ground, violet accents.
   Motion uses transform/opacity only; prefers-reduced-motion turns it all off. */
.kn {
  --kn-violet: #7c3aed; --kn-royal: #5b21b6; --kn-deep: #3b0f7a; --kn-bright: #a855f7; --kn-teal: #0e9aa6;
  --kn-ink: #1c1633; --kn-muted: #5d5875; --kn-lilac: #f4f2fb; --kn-alert: #d64545;
  --kn-shadow: 0 24px 70px rgba(60, 24, 120, 0.12);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  color: var(--kn-ink);
}
.kn *, .kn *::before, .kn *::after { box-sizing: border-box; }
.kn a { color: inherit; text-decoration: none; }
.kn picture { display: block; }
.kn-card > a { display: block; height: 100%; }

/* ---------- labels ---------- */
.kn-flag {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px;
  font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  background: var(--kn-violet); color: #fff;
}
.kn-flag--breaking { background: var(--kn-alert); }
.kn-flag--breaking::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%; background: #fff;
  animation: kn-pulse 1.6s ease-in-out infinite;
}
@keyframes kn-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.7); } }
.kn-cat {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px;
  font-weight: 800; font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
  background: #ede7fb; color: var(--kn-royal);
}
.kn-cat::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--kn-cat, var(--kn-violet)); }
.kn-date { font-size: 14px; font-weight: 600; color: var(--kn-muted); }

/* category accents (dot colour on chips and cards) */
[data-cat="cqc"] { --kn-cat: #5b21b6; } [data-cat="funding"] { --kn-cat: #0e9aa6; } [data-cat="workforce"] { --kn-cat: #a855f7; }
[data-cat="immigration"] { --kn-cat: #2563eb; } [data-cat="ld"] { --kn-cat: #7c3aed; } [data-cat="mh"] { --kn-cat: #8b5cf6; }
[data-cat="nursing"] { --kn-cat: #3b0f7a; } [data-cat="supported"] { --kn-cat: #0b6e77; } [data-cat="law"] { --kn-cat: #1c1633; }
[data-cat="digital"] { --kn-cat: #2563eb; }

/* ---------- 1. top story ---------- */
.kn-top { position: relative; border-radius: 30px; background: #fff; box-shadow: var(--kn-shadow); overflow: hidden; }
.kn-top::before { /* a thin live "wire" along the top edge */
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; z-index: 2;
  background: linear-gradient(90deg, var(--kn-royal), var(--kn-violet), var(--kn-teal), var(--kn-violet), var(--kn-royal));
  background-size: 200% 100%; animation: kn-wire 6s linear infinite;
}
.kn-top[data-flag="breaking"]::before { background: linear-gradient(90deg, var(--kn-alert), #f08a8a, var(--kn-alert)); background-size: 200% 100%; }
@keyframes kn-wire { to { background-position: -200% 0; } }
.kn-top > a { display: grid; grid-template-columns: 1.45fr 1fr; align-items: stretch; }
.kn-top-img { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #ede7fb; }
.kn-top-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.kn-top > a:hover .kn-top-img img { transform: scale(1.025); }
.kn-top-body { padding: clamp(22px, 3vw, 40px); display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.kn-top-tags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kn-top-h { margin: 0; font-weight: 800; font-size: clamp(26px, 3vw, 40px); line-height: 1.08; letter-spacing: -.035em; }
.kn-top > a:hover .kn-top-h { color: var(--kn-royal); }
.kn-top-sum { margin: 0; color: var(--kn-muted); font-size: 17px; line-height: 1.5; }

/* ---------- 2. latest cards ---------- */
.kn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; }
.kn-card { border-radius: 22px; background: #fff; box-shadow: 0 12px 34px rgba(60, 24, 120, .08); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.kn-card:hover { transform: translateY(-3px); box-shadow: 0 20px 48px rgba(60, 24, 120, .14); }
.kn-card-img { aspect-ratio: 16 / 9; background: #ede7fb; overflow: hidden; }
.kn-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kn-card-body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 10px; }
.kn-card-h { margin: 0; font-weight: 800; font-size: 19px; line-height: 1.2; letter-spacing: -.02em; }
.kn-card-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

/* ---------- 3. category chips (plain crawlable links) ---------- */
.kn-chips { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; list-style: none; }
.kn-chips a {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px;
  background: #fff; border: 2px solid #e4def3; font-weight: 700; font-size: 15px; color: var(--kn-ink);
  transition: border-color .2s ease, background .2s ease;
}
.kn-chips a::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--kn-cat, var(--kn-violet)); }
.kn-chips a:hover, .kn-chips a[aria-current="page"] { border-color: var(--kn-violet); background: #f7f4fe; }

/* ---------- 4. "What's new at Kiwi" strip ---------- */
.kn-new {
  position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: clamp(16px, 3vw, 36px); align-items: center;
  padding: clamp(18px, 2.5vw, 28px) clamp(18px, 3vw, 36px); border-radius: 28px; overflow: hidden;
  background: linear-gradient(120deg, #5b21b6 0%, #7c3aed 45%, #0e9aa6 110%); color: #fff;
}
.kn-new::after { content: ''; position: absolute; width: 480px; height: 480px; right: -160px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.2), transparent 62%); pointer-events: none; }
.kn-new-kiwi { width: clamp(96px, 11vw, 150px); height: auto; display: block; animation: kn-bob 5s ease-in-out infinite; }
@keyframes kn-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.kn-new-h { margin: 0 0 8px; font-weight: 800; font-size: clamp(20px, 2.2vw, 26px); letter-spacing: -.03em; }
.kn-new-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.kn-new-list a {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px;
  background: rgba(255,255,255,.14); border: 1.5px solid rgba(255,255,255,.3); font-weight: 700; font-size: 14px; color: #fff;
}
.kn-new-list time { font-weight: 600; opacity: .8; }
.kn-new-all { white-space: nowrap; font-weight: 800; padding: 12px 18px; border-radius: 14px; background: #fff; color: var(--kn-royal) !important; }

@media (max-width: 760px) {
  .kn-top > a { grid-template-columns: 1fr; }
  .kn-new { grid-template-columns: auto 1fr; }
  .kn-new-all { grid-column: 1 / -1; justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .kn *, .kn *::before, .kn *::after { animation: none !important; transition: none !important; }
}


/* ---- Website chat additions (27 Oct 2026): story page, key dates, pagination, corrections policy. Kiwi brand only. ---- */
.kn-hero h1{max-width:900px}
.kn-hero .eyebrow a{color:inherit}
.kn-story-hero h1{font-size:clamp(30px,4vw,52px);line-height:1.08;letter-spacing:-.03em}
.kn-byline{margin:14px 0 0;font-size:14.5px;color:var(--muted);font-weight:600}
.kn-byline a{color:var(--violet)}
.kn-sum{max-width:760px}
.kn-sec-h{margin:34px 0 14px;font-size:clamp(22px,2.2vw,28px)}
.kn-story{max-width:860px}
.kn-hero-img{margin:0 0 26px}
.kn-story-pic img,.kn-story-pic{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:24px;object-fit:cover;box-shadow:0 24px 60px rgba(60,24,120,.14)}
.kn-body{max-width:760px}
.kn-body h2{margin-top:34px}
.kn-body .kn-note{font-size:14.5px;color:var(--muted);border-left:3px solid rgba(124,58,237,.35);padding:4px 0 4px 14px}
.kn-sources{font-size:14.5px;line-height:1.55;word-break:break-word}
.kn-sources li{margin:6px 0}
.kn-related a{font-weight:700}
.kn-foot{margin-top:28px;font-size:14px;color:var(--muted)}
.kn-keydates{margin:28px 0 0;padding:26px 28px}
.kn-keydates h2{margin:0 0 14px;font-size:clamp(20px,2vw,26px)}
.kn-keydates ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.kn-keydates li{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:baseline}
.kn-keydates time{font-weight:800;color:var(--violet)}
@media(max-width:560px){.kn-keydates li{grid-template-columns:1fr;gap:2px}.kn-keydates{padding:20px}}
.kn-pages{display:flex;gap:8px;margin:22px 0 0}
.kn-pages a,.kn-pages span{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border-radius:12px;font-weight:700}
.kn-pages span{background:var(--violet);color:#fff}.kn-pages a{background:#fff;border:1px solid rgba(124,58,237,.18)}
.kn-policy h2{margin:0 0 10px;font-size:clamp(20px,2vw,26px)}
.kn-policy p{margin:8px 0 0;color:var(--muted)}
.kn-top > a > *,.kn-top-img,.kn-card-img{min-width:0}
.kn-top-img,.kn-card-img{width:100%}

/* Story tables (urgent fix 28 Oct 2026): a real <table> in a labelled scroll region. Phones scroll the table sideways inside its
   own box, never the page; the first column stays visible while scrolling. Kiwi ink/lavender, AA contrast. */
.kn-body .kn-table{margin:18px 0 24px;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #E4DCF7;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(60,24,120,.06)}
.kn-body .kn-table:focus-visible{outline:3px solid #7C3AED;outline-offset:2px}
.kn-body .kn-table table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;line-height:1.45;color:#1C1633}
.kn-body .kn-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.kn-body .kn-table th,.kn-body .kn-table td{padding:11px 14px;text-align:left;vertical-align:top;border-bottom:1px solid #EEE9F8;min-width:7.5em}
.kn-body .kn-table thead th{background:#F4F0FF;font-size:13px;font-weight:800;letter-spacing:.02em;color:#3B1F86;white-space:nowrap}
.kn-body .kn-table tbody th{font-weight:700;background:#fff;position:sticky;left:0;z-index:1;box-shadow:1px 0 0 #EEE9F8}
.kn-body .kn-table thead th:first-child{position:sticky;left:0;z-index:2}
.kn-body .kn-table tbody tr:last-child>*{border-bottom:0}
.kn-body ol{padding-left:22px}.kn-body ol li{margin:6px 0}
@media(max-width:520px){.kn-body .kn-table table{font-size:14px}.kn-body .kn-table th,.kn-body .kn-table td{padding:10px 12px}}
