/* TAKUVEN consulting site v2 — additions on top of the shared brand tokens (style.css).
   Width system, one type scale, dropdown nav, WhatsApp float. No new brand colors. */

/* ===== Width & rhythm: inherited 1:1 from the shared platform system ===== */
.center { text-align: center; }

/* ===== Type scale (one scale, all pages) ===== */
.hero-h1-consulting { font-size: 44px; line-height: 1.16; max-width: 920px; letter-spacing: -0.01em; }
@media (max-width: 700px) { .hero-h1-consulting { font-size: 30px; } }
.page-hero h1 { line-height: 1.2; }
.section-title { line-height: 1.25; }
.section-sub { line-height: 1.6; }
/* section-head alignment defined in the platform-grammar block below */

/* ===== Dropdown navigation ===== */
.nav .dd { position: relative; }
.nav .dd > a { cursor: pointer; display: block; }
.nav .dd > a .car { font-size: 10px; margin-left: 5px; opacity: .7; }
.nav .dd-menu { position: absolute; top: calc(100% + 10px); left: -14px; min-width: 250px;
  background: var(--navy-800); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px;
  box-shadow: var(--shadow-lg); padding: 8px; display: none; z-index: 60; }
.nav .dd:hover .dd-menu, .nav .dd:focus-within .dd-menu, .nav .dd.open .dd-menu { display: block; }
/* invisible bridge so the menu stays open while the pointer crosses the gap */
.nav .dd::after { content: ""; position: absolute; left: -10px; right: -10px; top: 100%; height: 14px; }
.nav .dd-menu a { display: block; padding: 10px 14px; border-radius: 8px; font-size: 14.5px;
  color: var(--slate-300); white-space: nowrap; }
.nav .dd-menu a:hover { background: rgba(0,194,199,0.10); color: var(--teal-400); }
@media (max-width: 1080px) {
  .nav .dd-menu { position: static; display: none; background: transparent; border: none;
    box-shadow: none; padding: 0 0 0 16px; }
  .nav .dd.open .dd-menu { display: block; }
}
.nav-toggle { color: var(--white); font-size: 24px; line-height: 1; }

/* ===== Hero stats ===== */
.hero .stats { display: flex; gap: clamp(18px, 4vw, 54px); flex-wrap: wrap; margin-top: 34px; }
.hero .stat .value { font-family: var(--font-display); font-weight: 700; font-size: 30px; color: var(--teal-400); }
.hero .stat .label { font-size: 13.5px; color: var(--slate-300); margin-top: 2px; max-width: 190px; }

/* ===== Card grids (one gap, one padding, equal heights) ===== */
.door-grid, .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 34px; align-items: stretch; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 34px; align-items: stretch; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 34px; align-items: stretch; }
@media (max-width: 1000px) { .grid-4 { grid-template-columns: 1fr 1fr; } .grid-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .door-grid, .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }
.door-card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--mist-200);
  border-radius: var(--radius); padding: 28px; box-shadow: var(--shadow); text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease; }
.door-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.door-card h3 { color: var(--navy-700); font-size: 20px; margin-bottom: 10px; }
.door-card p { color: var(--slate-600); font-size: 15px; flex: 1; }
.door-cta { display: inline-block; margin-top: 14px; color: var(--teal-ink); font-weight: 600; font-size: 14.5px; }

/* SME "What the work can cover": six capability cards, link pinned to the bottom */
.covgrid .card { display: flex; flex-direction: column; }
.covgrid .card p { flex: 1; }
.covgrid .door-cta { align-self: flex-start; }

/* ===== Money chips ===== */
.money-chips { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 26px; }
.mchip { background: var(--navy-700); color: var(--white); border-radius: 999px; padding: 12px 22px;
  font-family: var(--font-display); font-weight: 600; font-size: 16px; }
.mchip:first-child { background: var(--teal-600); }
.fineprint { color: var(--ink-400); font-size: 13px; margin-top: 16px; }

/* ===== Numbered step cards ===== */
.step-card { position: relative; padding-top: 36px; }
.step-tag { position: absolute; top: -14px; left: -10px; background: var(--teal-500); color: var(--navy-800);
  font-family: var(--font-display); font-weight: 700; width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font-size: 16px; }
.step-meta { color: var(--teal-ink); font-weight: 600; font-size: 13.5px; margin: 4px 0 10px; }

/* ===== Level chips + model strip ===== */
.lvl-chips { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.lchip { background: var(--white); border: 1px solid var(--mist-200); color: var(--navy-700);
  font-family: var(--font-display); font-weight: 600; font-size: 15px; border-radius: 999px; padding: 9px 18px; box-shadow: var(--shadow); }
.lchip.l5 { background: var(--navy-700); color: var(--teal-400); border-color: var(--navy-700); }
.lsep { color: var(--ink-400); font-weight: 600; }
.model-strip .ls-card { min-height: 210px; }
.ls-desc { font-size: 13px; color: var(--slate-600); margin-top: 8px; line-height: 1.45; }
.lvl-strip .ls-card.l5 .ls-desc { color: var(--mist-200); }
.mlvl-block { display: grid; grid-template-columns: 260px 1fr; gap: 28px; padding: 26px 0; border-bottom: 1px solid var(--mist-200); align-items: start; }
.mlvl-block:last-child { border-bottom: none; }
@media (max-width: 800px) { .mlvl-block { grid-template-columns: 1fr; gap: 10px; } }
.mlvl-name { font-family: var(--font-display); font-weight: 700; color: var(--navy-700); font-size: 20px; }
.mlvl-lvl { font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--teal-ink); font-weight: 700; }
.mlvl-up { color: var(--purple-600); font-weight: 600; font-size: 14px; margin-top: 6px; }
.mlvl-block p { color: var(--slate-600); font-size: 15.5px; }

/* ===== Fact cards / proof ===== */
.fact-card { background: var(--white); border-left: 4px solid var(--teal-500); border-radius: 0 var(--radius) var(--radius) 0;
  box-shadow: var(--shadow); padding: 22px 24px; color: var(--navy-700); font-family: var(--font-display);
  font-weight: 600; font-size: 16px; }

/* ===== Experience wall (styled text, no logo images) ===== */
.wall { display: flex; gap: clamp(20px, 4vw, 56px); flex-wrap: wrap; align-items: center; justify-content: center; margin-top: 26px; }
.wall span { color: var(--ink-400); white-space: nowrap; transition: color .15s; }
.wall span:hover { color: var(--navy-700); }
.wall .w-ge { font-family: Georgia, serif; font-weight: 700; font-size: 30px; letter-spacing: .02em; }
.wall .w-dupont { font-family: Georgia, 'Times New Roman', serif; font-weight: 700; font-size: 24px; letter-spacing: .02em; font-style: italic; }
.wall .w-syngenta { font-family: var(--font-body); font-weight: 700; font-size: 23px; letter-spacing: .01em; }
.wall .w-medtronic { font-family: var(--font-body); font-weight: 600; font-size: 23px; letter-spacing: .04em; }
.wall .w-bcg { font-family: Georgia, serif; font-weight: 700; font-size: 26px; letter-spacing: .12em; }
.wall .w-givaudan { font-family: Georgia, serif; font-weight: 500; font-size: 24px; letter-spacing: .2em; text-transform: uppercase; }
.wall-label { text-align: center; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-400); font-weight: 600; }

/* ===== Rates ===== */
.rate-table { width: 100%; border-collapse: collapse; margin-top: 26px; background: var(--white);
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.rate-table th { background: var(--navy-700); color: var(--white); text-align: left; padding: 13px 20px;
  font-size: 13px; letter-spacing: .05em; text-transform: uppercase; }
.rate-table th:last-child, .rate-table td:last-child { text-align: right; }
.rate-table td { padding: 15px 20px; border-bottom: 1px solid var(--mist-200); color: var(--slate-600); font-size: 15.5px; }
.rate-table tr:last-child td { border-bottom: none; }
.rate-table td.fee { color: var(--navy-700); font-family: var(--font-display); font-weight: 700; }
.sa-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
@media (max-width: 680px) { .sa-grid { grid-template-columns: 1fr; } }
.sa-card { border-radius: var(--radius); padding: 26px; box-shadow: var(--shadow); }
.sa-card .sa-tag { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
.sa-card .sa-v { font-family: var(--font-display); font-weight: 700; font-size: 34px; margin: 8px 0 2px; }
.sa-card.m { background: var(--white); border: 1px solid var(--mist-200); }
.sa-card.m .sa-tag { color: var(--ink-400); } .sa-card.m .sa-v { color: var(--navy-700); }
.sa-card.y { background: var(--navy-700); }
.sa-card.y .sa-tag { color: var(--teal-400); } .sa-card.y .sa-v { color: var(--white); }
.sa-card.y .sa-l { color: var(--slate-300); }
.sa-card .sa-l { font-size: 14px; color: var(--slate-600); }

/* ===== CTA band: shared platform component; only the actions column is ours ===== */
.cta-actions { display: flex; flex-direction: column; gap: 12px; align-items: stretch; position: relative; z-index: 2; }
.cta-band .cta-qual { color: var(--mist-200); font-size: 13.5px; margin-top: 12px; max-width: 520px; position: relative; z-index: 2; }

/* ===== Callouts, offer list, misc ===== */
.callout-box { background: var(--white); border-left: 4px solid var(--purple-500); border-radius: 0 var(--radius) var(--radius) 0;
  box-shadow: var(--shadow); padding: 20px 24px; color: var(--navy-700); font-size: 15.5px; margin-top: 22px; }
.key-line { background: var(--mist-100); border-left: 4px solid var(--teal-500); border-radius: 0 var(--radius) var(--radius) 0;
  padding: 18px 24px; color: var(--navy-700); font-weight: 600; font-size: 16px; margin-top: 26px; }
.offer-list { margin: 12px 0 0 0; padding-left: 20px; }
.offer-list li { margin-bottom: 10px; color: var(--slate-600); font-size: 15.5px; }
.qual-list { margin: 14px 0 0 0; padding-left: 22px; }
.qual-list li { color: var(--slate-600); font-size: 16px; margin-bottom: 10px; }
.btn-ghost-dark { border: 1.5px solid var(--navy-700); color: var(--navy-700); border-radius: 10px; padding: 12px 22px;
  font-weight: 600; text-decoration: none; display: inline-block; }
.btn-ghost-dark:hover { background: var(--navy-700); color: var(--white); }

/* ===== Iceberg (interim brand visual; swaps for Frederic's exact image) ===== */
.ice-grid { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 26px; margin-top: 34px; align-items: stretch; }
@media (max-width: 1000px) { .ice-grid { grid-template-columns: 1fr; } }
.ice-col h3 { font-size: 19px; margin-bottom: 2px; }
.ice-col.vis h3 { color: var(--navy-700); }
.ice-col.hid h3 { color: var(--purple-600); }
.ice-col .ice-sub { font-style: italic; color: var(--ink-400); font-size: 14px; margin-bottom: 14px; }
.ice-item { margin-bottom: 14px; }
.ice-item b { display: block; color: var(--navy-700); font-size: 15px; }
.ice-item span { color: var(--slate-600); font-size: 13.5px; }
.ice-item.v b::before { content: ""; display: inline-block; width: 10px; height: 10px; background: var(--teal-500); margin-right: 8px; }
.ice-item.h b::before { content: ""; display: inline-block; width: 10px; height: 10px; background: var(--purple-500); margin-right: 8px; }
.ice-visual { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-lg); position: relative; min-height: 380px;
  background: linear-gradient(180deg, #BFE7F5 0%, #8FD1EC 28%, #1A6E96 34%, #0F4A70 60%, #0B2F4E 100%); }
.ice-visual .berg { position: absolute; left: 50%; transform: translateX(-50%); }
.ice-visual .pct { position: absolute; background: rgba(9,26,43,0.55); color: #fff; font-family: var(--font-display);
  font-weight: 700; font-size: 24px; padding: 8px 16px; border-radius: 10px; }
.ice-visual .pct.top { top: 14px; left: 16px; transform: none; }
.ice-visual .pct.bot { bottom: 16px; right: 16px; left: auto; transform: none; }
.ice-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ===== Roadblocks ===== */
.rb-card { background: var(--mist-100); border-radius: var(--radius); padding: 26px 28px; margin-top: 22px;
  display: grid; grid-template-columns: 64px 1fr; gap: 22px; align-items: start; }
@media (max-width: 680px) { .rb-card { grid-template-columns: 1fr; } }
.rb-num { width: 56px; height: 56px; border-radius: 50%; background: var(--navy-800); color: var(--teal-400);
  display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 700; font-size: 19px; }
.rb-card h3 { color: var(--navy-700); font-size: 17.5px; margin-bottom: 6px; }
.rb-q { font-style: italic; color: var(--slate-600); font-size: 16px; margin-bottom: 8px; }
.rb-a { color: var(--slate-600); font-size: 15px; }
.rb-a b { color: var(--purple-600); }

/* ===== Charts (illustrative SVG figures) ===== */
.fig { background: var(--white); border: 1px solid var(--mist-200); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 26px 26px 14px; margin-top: 30px; }
.fig svg { width: 100%; height: auto; display: block; }
.fig-cap { font-size: 13px; color: var(--ink-400); margin: 10px 4px 6px; }

/* ===== Journey image ===== */
.journey-img { border-radius: var(--radius); box-shadow: var(--shadow-lg); overflow: hidden; margin-top: 30px; background: var(--white); }
.journey-img img { width: 100%; display: block; }

/* ===== AI platform teaser ===== */
.tease-hero { background: url("../assets/brain-bg.png") no-repeat right -70px center / clamp(380px, 33vw, 630px),
  radial-gradient(1100px 500px at 70% -10%, rgba(123,97,255,0.25), transparent 60%),
  radial-gradient(900px 500px at 10% 110%, rgba(0,194,199,0.18), transparent 60%), var(--navy-800); }
.tease-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 30px; }
.code-panel, .pilot-panel { display: none; margin-top: 26px; }
.code-panel.open, .pilot-panel.open { display: block; }
.code-box { display: flex; gap: 10px; max-width: 420px; }
.code-box input { flex: 1; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--mist-200); font-size: 15px; letter-spacing: .2em; }
.code-msg { display: none; margin-top: 12px; color: var(--coral-500); font-weight: 600; font-size: 14.5px; }
.code-msg.show { display: block; }
.pilot-panel .calc-card { max-width: 560px; }

/* ===== About photo ===== */
.about-grid { display: grid; grid-template-columns: 400px 1fr; gap: 48px; align-items: stretch; }
.about-text { display: flex; flex-direction: column; }
.about-text .cpp-card { margin-top: auto; }
@media (max-width: 860px) { .about-grid { grid-template-columns: 1fr; } }
.about-photo img { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow-lg); display: block; }
.about-text p { color: var(--slate-600); font-size: 16px; margin-bottom: 16px; max-width: var(--prose-w); }
.marks-line { margin-top: 22px; color: var(--teal-ink); font-family: var(--font-display); font-weight: 600; font-size: 16.5px; }

/* ===== WhatsApp float (same as platform site) ===== */
.wa-btn { position: fixed; right: 22px; bottom: 22px; z-index: 90; width: 56px; height: 56px; border-radius: 50%;
  background: #25D366; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 24px rgba(0,0,0,0.25); transition: transform .15s; }
.wa-btn:hover { transform: scale(1.08); }
.wa-btn svg { width: 30px; height: 30px; fill: #fff; }
@media print { .wa-btn { display: none; } }

/* ===== Privacy ===== */
.privacy-grid { display: grid; grid-template-columns: 1fr; gap: 18px; margin-top: 8px; }

/* ===== Round 3: impact band (money section, elevated) ===== */
.impact-band { background: linear-gradient(135deg, var(--navy-800) 0%, var(--navy-700) 55%, #16406B 100%); position: relative; overflow: hidden; }
.impact-band::after { content: ""; position: absolute; right: -140px; top: -140px; width: 480px; height: 480px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0,194,199,0.16), transparent 65%); }
.impact-band .eyebrow { color: var(--teal-400); }
.impact-band h2 { color: var(--white); }
.impact-band .section-sub { color: var(--slate-300); }
.ib-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 800px) { .ib-stats { grid-template-columns: 1fr; } }
.ib-stat { background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.09); border-radius: var(--radius);
  padding: 30px 26px; text-align: center; position: relative; z-index: 1; }
.ib-stat .num { font-family: var(--font-display); font-weight: 700; font-size: 54px; color: var(--teal-400); line-height: 1; }
.ib-stat.alt .num { color: var(--white); }
.ib-stat .lbl { color: var(--slate-300); font-size: 15px; margin-top: 10px; }
.impact-band .fineprint { color: var(--slate-400); position: relative; z-index: 1; }

/* ===== Track record: lead impact banner ===== */
.impact-lead { background: var(--navy-700); border-radius: var(--radius); padding: 40px 44px; text-align: center;
  box-shadow: var(--shadow-lg); margin-top: 34px; }
.impact-lead .pre { color: var(--teal-400); font-size: 17px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; }
.impact-lead .big { font-family: var(--font-display); font-weight: 700; font-size: 62px; color: var(--white); line-height: 1.05; margin: 10px 0 6px; }
.impact-lead .sub { color: var(--slate-300); font-size: 16px; }
@media (max-width: 700px) { .impact-lead .big { font-size: 42px; } }
.awards-line { text-align: center; color: var(--navy-700); font-family: var(--font-display); font-weight: 600; font-size: 15.5px; margin-top: 26px; }

/* ===== Endorsement quote cards ===== */
.quote-card { background: var(--white); border: 1px solid var(--mist-200); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 30px 32px; margin-top: 26px; position: relative; }

.quote-card blockquote { margin: 0; color: var(--slate-600); font-size: 18px; line-height: 1.62; font-style: italic; }
.quote-card blockquote::before { content: "\201C"; font-family: Georgia, serif; font-size: 44px; line-height: 0; color: var(--teal-600); opacity: .55; margin-right: 10px; vertical-align: -0.32em; font-style: normal; }
.quote-card blockquote::after { content: "\201D"; font-family: Georgia, serif; font-size: 44px; line-height: 0; color: var(--teal-600); opacity: .55; margin-left: 10px; vertical-align: -0.32em; font-style: normal; }
.quote-attr { display: flex; align-items: center; gap: 14px; margin-top: 20px; }
.quote-attr img.avatar { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; box-shadow: var(--shadow); }
.quote-attr .who b { display: block; color: var(--navy-700); font-size: 17px; font-family: var(--font-display); }
.quote-attr .who span { color: var(--ink-400); font-size: 14.5px; }
.li-badge { margin-left: auto; display: flex; align-items: center; gap: 6px; color: var(--ink-400); font-size: 13px; }
.li-badge svg { width: 20px; height: 20px; fill: #0A66C2; }
.quote-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.quote-grid .quote-card { display: flex; flex-direction: column; }
.quote-grid .quote-card blockquote { flex: 1; }
@media (max-width: 900px) { .quote-grid { grid-template-columns: 1fr; } }
.quote-grid .quote-card { margin-top: 0; }

/* ===== CPP block ===== */
.cpp-card { background: var(--mist-100); border-left: 4px solid var(--purple-500); border-radius: 0 var(--radius) var(--radius) 0;
  padding: 20px 24px; margin-top: 22px; display: flex; align-items: center; gap: 24px; }
.cpp-card .cpp-text { flex: 1; min-width: 0; }
.cpp-card h3, .cpp-card h2 { color: var(--navy-700); font-size: 17px; font-family: var(--font-display); margin: 0 0 6px; }
.cpp-card p { color: var(--slate-600); font-size: 14.5px; margin-top: 6px; }
.cpp-badges { display: flex; align-items: center; gap: 16px; flex: 0 0 auto; margin-right: 46px; }
.cpp-badges img { height: 88px; width: auto; display: block; }
@media (max-width: 700px) { .cpp-card { flex-direction: column; align-items: flex-start; } .cpp-badges { margin-right: 0; } }

/* ===== Narrow content blocks: centered heads, aligned columns ===== */
/* narrow-block: left-anchored width limiter (platform grammar) */

/* ===== Model tables ===== */
.model-table { width: 100%; border-collapse: collapse; margin-top: 24px; background: var(--white); border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow); font-size: 14.5px; }
.model-table th { background: var(--navy-700); color: var(--white); text-align: left; padding: 12px 16px; font-size: 12.5px;
  letter-spacing: .05em; text-transform: uppercase; }
.model-table td { padding: 13px 16px; border-bottom: 1px solid var(--mist-200); color: var(--slate-600); }
.model-table tr:last-child td { border-bottom: none; }
.model-table td:first-child { color: var(--navy-700); font-weight: 600; }
.model-table td.w { color: var(--purple-600); font-weight: 700; }

/* ===== Iceberg photo overlay ===== */
.ice-visual { min-height: 420px; }
.ice-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ===== Leakage: dashboard composite ===== */
.fig.dark { background: var(--navy-800); border-color: var(--navy-700); }
.fig.dark .fig-cap { color: var(--slate-400); }
.wall .w-monsanto { font-family: var(--font-body); font-weight: 700; font-size: 23px; letter-spacing: .03em; }

/* ===== Round 4: one alignment axis, auto-scaling, upgraded components ===== */
/* Scaling: the shared platform breakpoints govern both sites identically */

/* Platform grammar site-wide: left-anchored heroes, section heads and body text.
   Rule: containers are never narrowed or de-centered; width caps live on inner elements only. */
.section-head { max-width: none; margin: 0; text-align: left; }
.qual-list { margin-left: 0; }
.rate-table { max-width: 960px; }
.tbl-wrap { max-width: 1100px; overflow-x: auto; }
.tbl-wrap .model-table { min-width: 640px; }
.fig { max-width: 1020px; }
.sa-grid { max-width: 760px; }
.calc-res .big { overflow-wrap: anywhere; }

/* Key line: bigger, grid-wide, consistent */
.key-line { font-size: 19px; line-height: 1.55; padding: 26px 36px; text-align: center; border-radius: var(--radius); border-left: 5px solid var(--teal-500); box-shadow: var(--shadow); background: var(--white); }
.bg-mist .key-line { background: var(--white); }
section:not(.bg-mist) .key-line { background: var(--mist-100); }

/* Native four-stage journey */
.journey { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; margin-top: 40px; }
@media (max-width: 1000px) { .journey { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .journey { grid-template-columns: 1fr; } }
.j-stage { background: var(--white); border: 1px solid var(--mist-200); border-radius: var(--radius); box-shadow: var(--shadow); padding: 30px 26px; text-align: center; position: relative; }
.j-badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: var(--navy-700); color: var(--teal-400); font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 5px 14px; border-radius: 999px; white-space: nowrap; }
.j-circle { width: 96px; height: 96px; border-radius: 50%; margin: 6px auto 16px; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 700; font-size: 34px; }
.j1 .j-circle { background: #CFF6F7; color: var(--navy-700); }
.j2 .j-circle { background: #7FD8DA; color: var(--navy-700); }
.j3 .j-circle { background: #00C2C7; color: var(--white); }
.j4 .j-circle { background: #00A8AD; color: var(--white); }
.j-stage h3 { color: var(--navy-700); font-size: 18px; line-height: 1.3; }
.j-tag { color: var(--teal-ink); font-style: italic; font-weight: 600; font-size: 14.5px; margin: 4px 0 12px; }
.j-stage p { color: var(--slate-600); font-size: 14.5px; }
.j-arrow { position: absolute; right: -22px; top: 72px; color: var(--slate-400); font-size: 22px; font-weight: 700; z-index: 2; }
@media (max-width: 1000px) { .j-arrow { display: none; } }

/* ===== Round 4b: one body-text scale + no orphan last words ===== */
h1, h2, h3, .section-title { text-wrap: balance; }
p, li, blockquote, .section-sub, .key-line, .cta-band .cta-body { text-wrap: pretty; }
.qual-list li { font-size: 17px; }
.about-text p { font-size: 16.5px; }
.offer-list li { font-size: 15px; }
.page-hero p { text-wrap: pretty; }
/* Large-monitor tier: same 1750px breakpoint as the platform, same proportions.
   Card-body texts follow the platform's .card p bump to 16px; nothing else grows. */
@media (min-width: 1750px) {
  .door-card p, .j-stage p, .mlvl-block p, .rb-a { font-size: 16px; }
  .hero .hero-content { max-width: 1300px; }
  .hero p.lead { max-width: 820px; }
  .hero-h1-consulting { max-width: none; }
  .quote-card blockquote { font-size: 21px; }
  .about-text p { font-size: 18px; }
  .impact-lead .pre { font-size: 17px; }
  .impact-lead .sub { font-size: 19px; }
  .fact-card { font-size: 18.5px; }
  .awards-line { font-size: 18px; }
  .wall-label { font-size: 15px; }
}

/* Anchored sections land clear of the fixed header (laptop and large monitor) */
section[id] { scroll-margin-top: 112px; }
.tease-actions { justify-content: flex-start; }


/* ===== Round 5: benchmark hero (left), one navy gradient token, rounded dark boxes ===== */
:root { --grad-navy: linear-gradient(135deg, var(--navy-800) 0%, var(--navy-700) 70%, var(--blue-600) 100%); }
/* Homepage hero returns to the platform pattern: left-anchored, visual on the right */
.hero .hero-content { text-align: left; margin: 0; max-width: 950px; }
.hero .eyebrow { text-align: left; }
.hero h1 { margin-left: 0; }
.hero p.lead { margin-left: 0; text-align: left; text-align-last: auto; max-width: 640px; }
.hero .btn-row, .hero .stats { justify-content: flex-start; }
.hero .stat .label { max-width: 170px; }
/* (cta-band styling comes 1:1 from the shared stylesheet) */
.impact-band { background: transparent; padding: 44px 0; }
.impact-band::after { display: none; }
.impact-band .container { background: var(--grad-navy); border-radius: 20px;
  padding: clamp(40px, 5vw, 58px) clamp(30px, 4.5vw, 56px); position: relative; overflow: hidden; }
.impact-band .container::after { content: ""; position: absolute; right: -140px; top: -140px; width: 480px; height: 480px;
  border-radius: 50%; background: radial-gradient(circle, rgba(0,194,199,0.16), transparent 65%); }
.impact-band .section-head, .impact-band .ib-stats, .impact-band .fineprint, .impact-band .btn-row { position: relative; z-index: 1; }
.impact-band .fineprint { text-align: left; }
.impact-lead { background: var(--grad-navy); }
.sa-card.y { background: var(--grad-navy); }

/* Teaser: no empty white band while the code/pilot panels are closed */
.tease-panels { padding: 0; }
.tease-panels .code-panel.open, .tease-panels .pilot-panel.open { margin: 64px 0; }

/* ===== Microsoft Bookings embed (call page) ===== */
.book-frame { background: var(--white); border: 1px solid var(--mist-200); border-radius: var(--radius);
  box-shadow: var(--shadow); overflow: hidden; margin-top: 26px; min-height: 560px; }
.book-frame iframe { width: 100%; height: 1150px; border: 0; display: block; }
@media (max-width: 700px) { .book-frame iframe { height: 1350px; } }

/* ===== Round 11: tighter vertical rhythm (less empty space between sections) ===== */
section { padding: clamp(38px, 4.8vw, 58px) 0; }
section.tight { padding: clamp(32px, 4vw, 46px) 0; }
.door-grid, .grid-2, .grid-3, .grid-4 { margin-top: 24px; }
.impact-band { padding-top: 26px; padding-bottom: 26px; }
.page-hero { padding-bottom: clamp(48px, 6vw, 68px); }

/* ============ Profit recovery rebuild (30 Aug 2026) ============ */
/* step headers + plain-words strip */
.stepline { display:flex; align-items:center; gap:14px; }
.stepb { flex:0 0 auto; width:36px; height:36px; border-radius:50%; background:var(--navy-700);
  color:#fff; font:700 17px/36px var(--font-body); text-align:center; }
.audline { color:var(--teal-ink); font-weight:600; font-size:16.5px; margin:10px 0 2px; }
.plainw { background:#F5F8FB; border-left:3px solid var(--purple-500); border-radius:0 10px 10px 0;
  padding:12px 18px; font-size:16.5px; line-height:1.55; color:var(--slate-600); margin:14px 0 0; }
.plainw .pw-k { font-size:11px; letter-spacing:1.3px; font-weight:700; color:#5A41E0; margin-right:8px; }
/* cockpit upgrades */
.ck-int2 { font-size:13px; padding:7px 16px; border-width:2px; }
.fig.ck .bar.barl { justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.seghint { font-size:13px; font-weight:700; color:var(--navy-700); }
.fig.ck .seg.seg2 { border:2px solid rgba(0,194,199,.55); background:#fff; padding:3px; gap:3px; }
.fig.ck .seg.seg2 button { font-size:13.5px; padding:9px 18px; color:var(--teal-ink); }
.fig.ck .seg.seg2 button.on { background:var(--navy-700); color:#fff; box-shadow:none; }
.fig.ck td.dev { font-weight:700; }
.fig.ck td.ctl { font-size:12.5px; }
.tl { display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; white-space:nowrap; }
.tl i { width:11px; height:11px; border-radius:50%; display:inline-block; }
.tl-red { color:#A8402F; } .tl-red i { background:#D9604A; }
.tl-amber { color:#8A6210; } .tl-amber i { background:#DB9A2C; }
.tl-green { color:#256B47; } .tl-green i { background:#2E7D53; }
.insbox { margin:14px 28px 20px; border:1px solid #E1E7EE; border-radius:12px; background:#F5F8FB; padding:18px 20px; }
.inshead { font-size:10.5px; letter-spacing:1.3px; font-weight:700; color:var(--ink-400); margin-bottom:10px; }
.insrow { display:flex; gap:12px; margin:10px 0; align-items:flex-start; }
.insflag { flex:0 0 auto; font-size:11px; font-weight:700; color:var(--navy-700); background:#E1E7EE; border-radius:20px; padding:3px 11px; margin-top:1px; }
.insrow p { margin:0; font-size:16.5px; color:var(--slate-600); }
.insteaser { margin:14px 0 0; font-size:15.5px; font-weight:600; color:var(--teal-ink); }
/* generic readout (outside .fig.ck) */
.readout { display:flex; align-items:baseline; gap:14px; margin:14px 0 6px; padding:13px 18px;
  background:#F5F8FB; border-left:2.5px solid #00C2C7; border-radius:0 10px 10px 0; }
.readout .rl { font-size:10.5px; letter-spacing:1.3px; font-weight:700; color:var(--ink-400); white-space:nowrap; }
.readout .rt { font-size:16.5px; color:var(--slate-600); }
/* waterfall zone */
.wfgrid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:24px; align-items:start; }
.wfctl { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:0 0 16px; }
.wfsel-lab { font-weight:700; font-size:14.5px; color:var(--navy-700); }
.wfsel { font:600 15px var(--font-body); color:var(--navy-700); padding:10px 14px; border:2px solid #00C2C7;
  border-radius:10px; background:#fff; cursor:pointer; }
.wfleader { font-size:13px; color:var(--ink-400); font-weight:600; }
.gate { position:relative; }
.gdim { filter:blur(4px) saturate(.75); opacity:.5; pointer-events:none; user-select:none; }
.gcover { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; }
.gcard { background:#fff; border:2px solid rgba(0,194,199,.55); border-radius:14px;
  box-shadow:0 10px 30px rgba(17,45,78,.14); padding:22px 26px; text-align:center; max-width:440px; }
.gcard .gt { font-weight:700; color:var(--navy-700); font-size:17px; margin:0 0 6px; font-family:var(--font-display); }
.gcard .gp { font-size:13.5px; color:var(--slate-600); margin:0; }
.gc-row { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:14px; }
.gc-btn { border:1.5px solid #00C2C7; background:#fff; color:var(--teal-ink); font:700 13.5px var(--font-body);
  padding:8px 16px; border-radius:24px; cursor:pointer; transition:all .15s ease; }
.gc-btn:hover { background:var(--navy-700); border-color:var(--navy-700); color:#fff; }
/* deviation table */
.devwrap { background:#fff; border:1px solid var(--mist-200); border-radius:14px; padding:4px 18px 6px; overflow-x:auto; }
.devtbl { width:100%; min-width:540px; border-collapse:collapse; }
.devtbl thead th { font-size:10.5px; letter-spacing:1.1px; font-weight:600; color:var(--ink-400);
  text-transform:uppercase; text-align:left; padding:12px 10px 9px; border-bottom:1px solid #E1E7EE; }
.devtbl tbody td { padding:11px 10px; border-bottom:1px solid #E1E7EE; font-size:13px; color:var(--slate-600); }
.devtbl td.src { font-weight:600; color:var(--navy-700); font-size:13.5px; }
.devtbl td.num, .devtbl th.num { text-align:right; font-variant-numeric:tabular-nums; }
.devtbl td.dev { font-weight:700; }
.devtbl tfoot td { padding:12px 10px; font-weight:700; color:var(--navy-700); font-size:13.5px; }
.devtbl tfoot td.dev { color:#A8402F; }
/* drill-down card */
.ddcard { background:#fff; border:1px solid var(--mist-200); border-radius:14px; padding:20px 22px; }
.ddhead { font-size:10.5px; letter-spacing:1.3px; font-weight:700; color:var(--ink-400); }
.ddsub { font-size:13.5px; color:var(--slate-600); margin:8px 0 0; }
.ddchips { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 4px; }
.ddchip { display:flex; flex-direction:column; align-items:flex-start; gap:1px; border:1.5px solid #E1E7EE;
  background:#F5F8FB; border-radius:10px; padding:8px 12px; cursor:pointer; transition:all .15s ease; }
.ddchip .cn { font-size:12.5px; font-weight:600; color:var(--navy-700); }
.ddchip .cv { font-size:13px; font-weight:700; color:var(--teal-ink); font-variant-numeric:tabular-nums; }
.ddchip:hover { border-color:#00C2C7; }
.ddchip.on { border-color:#00C2C7; background:#fff; box-shadow:0 2px 10px rgba(0,194,199,.2); }
.crumb { display:flex; gap:2px; flex-wrap:wrap; margin:10px 0 2px; align-items:center; }
.crseg { border:0; background:transparent; color:var(--teal-ink); font:600 13px var(--font-body); cursor:pointer;
  padding:2px 4px; text-decoration:underline; text-underline-offset:2px; }
.crseg:not(:first-child)::before { content:"\203A\00a0"; color:var(--ink-400); text-decoration:none; display:inline-block; margin-right:2px; }
.crseg.cur, .crseg:disabled { color:var(--navy-700); text-decoration:none; cursor:default; font-weight:700; }
.ddtbl { width:100%; border-collapse:collapse; }
.ddtbl thead th { font-size:10px; letter-spacing:1px; font-weight:600; color:var(--ink-400); text-transform:uppercase;
  text-align:left; padding:9px 8px 7px; border-bottom:1px solid #E1E7EE; }
.ddtbl tbody td { padding:9px 8px; border-bottom:1px solid #E1E7EE; font-size:13px; color:var(--slate-600); }
.ddtbl td.num, .ddtbl th.num { text-align:right; font-variant-numeric:tabular-nums; }
.ddtbl tr.dim td { color:var(--ink-400); }
.ddlink { border:0; background:none; color:var(--teal-ink); font:600 13.5px var(--font-body); cursor:pointer;
  text-decoration:underline; text-underline-offset:2px; padding:0; text-align:left; }
.ddhint { font-size:13.5px; color:var(--ink-400); margin:10px 0 2px; }
.ddhint.ok { color:#256B47; font-weight:600; }
.ddcov { font-size:12.5px; color:var(--ink-400); margin:8px 0 0; }
.ddlock { margin-top:16px; border-top:1px solid #E1E7EE; padding-top:16px; }
.locknote { margin-top:10px; font-size:13px; color:#8A6210; background:rgba(176,129,43,.10);
  border-radius:10px; padding:10px 14px; display:flex; gap:8px; align-items:center; }
/* quadrants */
.defcards { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:0 0 16px; }
.defcard { background:#fff; border:1px solid var(--mist-200); border-left:3px solid var(--purple-500);
  border-radius:12px; padding:16px 20px; }
.defcard h3 { font-size:16px; color:var(--navy-700); margin:0 0 6px; }
.defcard p { font-size:13.5px; color:var(--slate-600); margin:0; }
.qctl { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:6px 0 16px; }
.qswitch { display:inline-flex; gap:8px; flex-wrap:wrap; }
.qswitch button { border:1.5px solid #00C2C7; background:#fff; color:var(--teal-ink); font:700 14px var(--font-body);
  padding:10px 18px; border-radius:26px; cursor:pointer; transition:all .15s ease; }
.qswitch button:hover { border-color:var(--navy-700); color:var(--navy-700); }
.qswitch button.on { background:var(--navy-700); border-color:var(--navy-700); color:#fff; }
.qcountry { font-size:13px; font-weight:700; color:var(--navy-700); background:#E1E7EE; padding:4px 12px; border-radius:20px; }
.qwatch { font-size:13.5px; color:#5A41E0; font-weight:600; margin:10px 0 0; border-left:3px solid var(--purple-500);
  padding:9px 14px; background:rgba(123,97,255,.07); border-radius:0 10px 10px 0; }
.fairbox { margin-top:20px; max-width:860px; }
.fairbox p { font-size:14px; color:var(--slate-600); margin:7px 0; }
/* profitability */
.profwrap { background:#fff; border:1px solid var(--mist-200); border-radius:14px; padding:4px 18px 6px; }
.proftbl { width:100%; min-width:680px; border-collapse:collapse; }
.proftbl thead th { font-size:10.5px; letter-spacing:1.1px; font-weight:600; color:var(--ink-400);
  text-transform:uppercase; text-align:left; padding:12px 10px 9px; border-bottom:1px solid #E1E7EE; }
.proftbl tbody td { padding:11px 10px; border-bottom:1px solid #E1E7EE; font-size:13px; color:var(--slate-600); }
.proftbl td.src { font-weight:600; color:var(--navy-700); font-size:13.5px; }
.proftbl td.num, .proftbl th.num { text-align:right; font-variant-numeric:tabular-nums; }
.proftbl td.mcell { white-space:nowrap; min-width:170px; }
.mbar { display:inline-block; width:92px; height:8px; background:#EEF2F6; border-radius:8px; overflow:hidden; vertical-align:middle; margin-right:10px; }
.mbar i { display:block; height:100%; border-radius:8px; }
.mval { font-weight:700; font-size:13px; font-variant-numeric:tabular-nums; }
.tierchip { font-size:11.5px; font-weight:700; border-radius:16px; padding:3px 10px; white-space:nowrap; }
.tc-top { color:#0E5F63; background:rgba(0,168,173,.12); }
.tc-mid { color:#8A6210; background:rgba(176,129,43,.12); }
.tc-low { color:#A8402F; background:rgba(217,96,74,.12); }
.proftbl tr.midrow td { color:var(--ink-400); background:#FAFCFE; }
.actioncards { margin-top:18px; }
.actioncards .card.tcard-top { border-top:3px solid #00A8AD; }
.actioncards .card.tcard-mid { border-top:3px solid #DB9A2C; }
.actioncards .card.tcard-low { border-top:3px solid #D9604A; }
/* closing + investors product grid */
.closeblock { max-width:none; }
.closeblock .section-title { margin-bottom:14px; }
.closeblock .prose { margin:10px 0; }
.prodgrid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:14px; }
.prodgrid .prod-card { max-width:none; }
.pk-band { font-size:12px; letter-spacing:1.6px; font-weight:700; color:var(--teal-ink); margin:30px 0 4px; }
.prodlead { margin:0 0 6px; }
@media (max-width: 1020px) {
  .wfgrid { grid-template-columns:1fr; }
}
@media (max-width: 860px) {
  .prodgrid { grid-template-columns:1fr; }
  .defcards { grid-template-columns:1fr; }
  .stepb { width:30px; height:30px; font-size:15px; line-height:30px; }
  .gcard { padding:16px 18px; }
}
[hidden] { display: none !important; }

/* ============ Review round 2 (30 Aug 2026) ============ */
.cfwrap { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.segwrap { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fig.ck .seg.seg2 { flex-wrap:wrap; }
.cfchip { display:inline-flex; align-items:center; gap:7px; border:1.5px solid #E1E7EE; background:#F5F8FB;
  border-radius:22px; padding:7px 13px; cursor:pointer; font:600 13px var(--font-body); color:var(--slate-600); transition:all .15s ease; }
.cfchip:hover { border-color:#00C2C7; }
.cfchip input { accent-color:#007A80; width:15px; height:15px; margin:0; cursor:pointer; }
.cfchip:has(input:checked) { border-color:rgba(0,194,199,.55); background:#fff; color:var(--navy-700); }
.fig.ck tr.subrow td { font-weight:700; color:var(--navy-700); background:#FAFCFE; }
.fig.ck tr.otherrow td { color:var(--ink-400); }
@media (min-width:1750px){
  .fig.ck.ck-wide { max-width:1560px; display:grid; grid-template-columns:minmax(0,1fr) 430px; }
  .fig.ck.ck-wide > .hd, .fig.ck.ck-wide > .fig-cap.in { grid-column:1 / -1; }
  .fig.ck.ck-wide > .kpis, .fig.ck.ck-wide > .bar, .fig.ck.ck-wide > .tblwrap, .fig.ck.ck-wide > .readout { grid-column:1; }
  .fig.ck.ck-wide > .insbox { grid-column:2; grid-row:2 / span 4; align-self:start; margin:22px 28px 20px 4px; }
}
.funrow { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:30px; align-items:center; margin:0 0 26px; }
.funfig { margin:0; }
.funrow .funq { margin:0; }
@media (max-width:1000px){ .funrow { grid-template-columns:1fr; gap:12px; } }
@media (min-width:1750px){
  #qpanes.dual { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
}
.fairbox ul { margin:8px 0 0; padding-left:24px; }
.fairbox ul li { font-size:15px; color:var(--slate-600); margin:7px 0; }

/* ============ Final review round ("Go now", 30 Aug 2026) ============ */
/* 1 · step badge sits on the title's visual centre */
.stepline { margin-bottom: 10px; }
.stepline .section-title { margin: 0; }
/* 2d · "Keep going." stands on its own line */
.insgo { display: block; margin-top: 8px; font-weight: 700; }
/* 2c · step section-subs sit below the audience line in size */
.prsub { font-size: 15px; }
/* 2a + wide cockpit: readout spans the full cockpit width on large monitors */
@media (min-width: 1750px) {
  .fig.ck.ck-wide { grid-template-columns: minmax(0,1fr) 460px; }
  .fig.ck.ck-wide > .insbox { grid-row: 2 / span 3; }
  .fig.ck.ck-wide > .readout { grid-column: 1 / -1; }
}
/* 5 · waterfall chart card top-aligns with the drill-down card */
.wfgrid figure.fig { margin: 0 0 14px; }
.wfgrid .ddcard { margin-top: 0; }
/* 7 · dual-brain watermark behind the coffee card (CSS only, image untouched) */
.funfig { position: relative; overflow: hidden; }
.funfig::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: url("../assets/brain-bg.png") no-repeat right -60px center / auto 150%; opacity: .28; }
.funfig svg { position: relative; z-index: 1; }
/* 10 · profitability tables keep one fixed column grid across both views */
.proftbl { table-layout: fixed; }
.proftbl td.src { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 14 · SME investors two-product grid */
.pe-grid { margin-top: 22px; }
.pe-card h3 { color: var(--navy-700); }
/* 15 · rates: side by side on large monitors only */
.sa-h { margin-top: 44px; color: var(--navy-700); font-size: 21px; }
@media (min-width: 1750px) {
  .rateswrap { display: grid; grid-template-columns: minmax(0,1.02fr) minmax(0,1fr); gap: 44px; align-items: start; }
  .ratesright .sa-h { margin-top: 20px; }
}
/* 16 · investors product lead */
.prodlead { font-size: 16.5px; }
/* 22/23 · level strip on large monitors: full width + bigger type */
@media (min-width: 1750px) {
  .lvl-strip .ls-lvl { font-size: 14px; }
  .lvl-strip .ls-name { font-size: 19.5px; }
  .lvl-strip .ls-up { font-size: min(16px, 7.6cqw); }
  .lvl-strip .ls-desc { font-size: 14.5px; }
  .ls-cap { font-size: 18px; }
  /* 28b · home hero lead breathes on large monitors */
  .hero p.lead { max-width: 1050px; }
}
.funq p { margin: 7px 0; }

/* ============ Wife review round (31 Aug 2026) ============ */
/* 2 · "fictitious" sentence in brand red ink (6.1:1 on white) */
.fictx { color: #A8402F; font-weight: 700; }
/* 4 · animated coffee steam (art from coffee-steam.svg; static and visible under reduced motion) */
.cwsp { animation: csteam 2.7s cubic-bezier(.33,0,.67,1) infinite; }
.cwsp2 { animation-duration: 3.3s; animation-delay: -1.2s; }
@keyframes csteam {
  0%   { transform: translate(0, 10px); opacity: 0; }
  30%  { opacity: 1; }
  62%  { opacity: 1; }
  100% { transform: translate(1px, -24px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .cwsp, .cwsp2 { animation: none; opacity: .8; transform: none; }
}
/* 5 · interactivity affordances: teal note in the framing card + "click to explore" pills */
.trynote { display: flex; gap: 9px; align-items: flex-start; margin: 12px 0 0; padding: 10px 12px;
  background: rgba(0,194,199,.09); border: 1.5px solid rgba(0,194,199,.45); border-radius: 10px;
  font-size: 13.5px; font-weight: 600; color: #00666B; }
.trynote svg { flex: 0 0 auto; margin-top: 2px; }
.tryhint { display: inline-flex; align-items: center; gap: 6px; font: 700 12px var(--font-body);
  color: #00666B; background: rgba(0,194,199,.10); border: 1.5px solid rgba(0,194,199,.5);
  border-radius: 18px; padding: 5px 12px; white-space: nowrap; }
@keyframes tapnudge { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.07); } }
.reveal.visible .tryhint, .reveal.visible.tryhint { animation: tapnudge 1.1s ease .5s 2; }
@media (prefers-reduced-motion: reduce) { .tryhint { animation: none !important; } }
/* 5 · the teal outline = clickable rule holds everywhere: chips carry it by default */
.cfchip, .ddchip { border-color: rgba(0,194,199,.45); }
.ddchip, .gc-btn { cursor: pointer; }
.cfchip:hover, .ddchip:hover { box-shadow: 0 2px 10px rgba(0,194,199,.18); }
.ddheadrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ddheadrow .ddhead { margin: 0; }
/* 6 · dual quadrant view: shared row grid so the two discipline bars sit level */
@media (min-width: 1750px) {
  #qpanes.dual { align-items: stretch; grid-template-rows: auto auto auto auto; }
  #qpanes.dual .qpane { display: grid; grid-template-rows: subgrid; grid-row: span 4; align-content: start; }
  #qpanes.dual .qpane > figure.fig:first-child { grid-row: 1; margin: 0; }
  #qpanes.dual .qpane > .readout { grid-row: 2; align-self: start; }
  #qpanes.dual .qpane > .qwatch { grid-row: 3; align-self: start; }
  #qpanes.dual .qpane > figure.barfig { grid-row: 4; align-self: start; }
}
/* ============ AI TAKU chat widget (step 2) ============ */
.tkb-btn { position: fixed; right: 22px; bottom: 92px; z-index: 92; width: 56px; height: 56px;
  border-radius: 50%; background: var(--navy-700); border: 2px solid #00C2C7; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 24px rgba(17,45,78,.35); transition: transform .15s; }
.tkb-btn:hover { transform: scale(1.08); }
.tkb-btn img { display: block; }
.tkb-ai { position: absolute; right: -4px; top: -4px; background: #00C2C7; color: #06222B;
  font: 700 10px var(--font-body); letter-spacing: .5px; padding: 2px 6px; border-radius: 10px; }
.tkb-panel { position: fixed; right: 22px; bottom: 160px; z-index: 96; width: min(384px, calc(100vw - 24px));
  height: min(560px, calc(100vh - 200px)); background: #fff; border: 1px solid var(--mist-200);
  border-radius: 16px; box-shadow: 0 18px 60px rgba(17,45,78,.30); display: flex; flex-direction: column; overflow: hidden; }
.tkb-hd { display: flex; align-items: center; gap: 10px; padding: 13px 16px; background: var(--navy-700); color: #fff; }
.tkb-hh { display: flex; flex-direction: column; line-height: 1.25; flex: 1; min-width: 0; }
.tkb-hh b { font-size: 15px; letter-spacing: 1.5px; }
.tkb-hh span { font-size: 12px; color: #A6B9CB; }
.tkb-x { border: 0; background: transparent; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; padding: 0 4px; }
.tkb-m { flex: 1; overflow-y: auto; padding: 14px; background: #F5F8FB; }
.tkb-msg { max-width: 86%; margin: 6px 0; padding: 9px 13px; border-radius: 14px; font-size: 14px;
  line-height: 1.5; color: var(--navy-700); overflow-wrap: break-word; }
.tkb-msg.bot { background: #fff; border: 1px solid #E1E7EE; border-bottom-left-radius: 4px; }
.tkb-msg.me { background: var(--navy-700); color: #fff; margin-left: auto; border-bottom-right-radius: 4px; }
.tkb-msg.tkb-wait::after { content: "\2022\2022\2022"; letter-spacing: 3px; color: #00A8AD; animation: tkbdots 1.1s steps(4) infinite; }
@keyframes tkbdots { 0% { opacity: .25; } 50% { opacity: 1; } 100% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .tkb-msg.tkb-wait::after { animation: none; } }
.tkb-msg.tkb-errm { color: #A8402F; }
.tkb-chips { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.tkb-chip { border: 1.5px solid rgba(0,194,199,.55); background: #fff; color: #00666B;
  font: 600 13px var(--font-body); padding: 9px 13px; border-radius: 18px; cursor: pointer; text-align: left; }
.tkb-chip:hover { border-color: var(--navy-700); color: var(--navy-700); }
.tkb-note { margin: 0; padding: 8px 14px; font-size: 11.5px; color: var(--ink-400); background: #fff; border-top: 1px solid #EEF2F6; }
.tkb-note a { color: #00666B; font-weight: 700; }
.tkb-in { display: flex; gap: 8px; padding: 10px 12px; background: #fff; border-top: 1px solid #E1E7EE; }
.tkb-in textarea { flex: 1; resize: none; border: 1.5px solid #E1E7EE; border-radius: 12px; padding: 9px 12px;
  font: 400 14px var(--font-body); color: var(--navy-700); }
.tkb-in textarea:focus { outline: 2px solid rgba(0,194,199,.55); border-color: #00C2C7; }
.tkb-send { border: 0; background: var(--navy-700); color: #fff; font: 700 13.5px var(--font-body);
  padding: 0 16px; border-radius: 12px; cursor: pointer; }
.tkb-send:disabled { opacity: .5; cursor: default; }
.tkb-send:hover:not(:disabled) { background: #0B1F35; }
@media (max-width: 480px) { .tkb-panel { right: 12px; left: 12px; width: auto; bottom: 158px; } }
@media print { .tkb-btn, .tkb-panel { display: none; } }

/* About page, laptop: the photo fills the column so its bottom lines up with the CPP card.
   Where the columns already match (>=1920 monitors), cover changes nothing. Below 1280 the
   text column gets much taller, so the photo keeps its natural ratio there. */
@media (min-width: 1280px) {
  .about-photo img { height: 100%; object-fit: cover; object-position: center; }
}
/* About, compact widths (861-1279: snapped windows, zoomed laptops): the text column grows
   far taller than any photo, so side-by-side cannot line up without butchering the portrait.
   Stack the photo above the text instead, at a sensible size. */
@media (min-width: 861px) and (max-width: 1279px) {
  .about-grid { grid-template-columns: 1fr; }
  .about-photo { max-width: 440px; }
}
