/* PlatFARM site styles
   Layout: alternating paper (light) and field (dark) bands; one 1180px column.
   Products carry their own accent: Farmer Intelligence = blue, Third India = violet.
   Single committed look (light bands + dark bands), so no theme switching. */

:root{
  /* Layout: alternating daylight (paper) and night-field (dark) bands in one 1180px column.
     Palette from the land, overlay from the machine: crop green = brand and Farmer Intelligence,
     turmeric = Third India, signal cyan = data overlays only. Single committed look. */
  --ink:#0A3D17;
  --ink-2:#1F4A2A;
  --ink-3:#3D5E45;
  --ink-4:#5F7A64;
  --paper:#F2F4EF;
  --paper-2:#E3E8DF;
  --field:#0F2A1C;
  --field-2:#12301F;
  --field-text:#F1F6EF;
  --field-text-2:#C9E3C9;
  --field-text-3:#A3C7A6;
  --acc:#4CC35A;           /* crop green on dark: brand, Farmer Intelligence */
  --acc-deep:#00781A;      /* crop green on light */
  --ti:#E8A23A;            /* turmeric on dark: Third India */
  --ti-deep:#995E07;       /* turmeric on light */
  --teal:#1F7F91;          /* signal on light */
  --teal-light:#4FC3D9;    /* signal on dark: data overlays */
  --soil:#7C6440;
  --good:#7CCB6E;
  --bad:#E08A6A;
  --rule-light:rgba(20,32,26,0.14);
  --rule-dark:rgba(234,240,232,0.13);
  --font-display:'Archivo','Arial Narrow',system-ui,sans-serif;
  --font-body:'IBM Plex Sans','IBM Plex Sans Devanagari',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --font-hi:'IBM Plex Sans Devanagari','Noto Sans Devanagari',sans-serif;
  --max:1180px;
  --gutter:32px;
  --header-h:68px;
  color-scheme:light;
}
@media (max-width:640px){ :root{ --gutter:20px; } }

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); -webkit-text-size-adjust:100%; }
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
:focus-visible{ outline:2px solid var(--teal); outline-offset:3px; border-radius:2px; }

.wrap{ max-width:var(--max); margin:0 auto; padding-inline:var(--gutter); }
.skip-link{ position:absolute; left:-9999px; top:8px; z-index:100; background:var(--ink); color:var(--paper); padding:10px 16px; border-radius:3px; }
.skip-link:focus{ left:16px; }

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; font-stretch:112%; letter-spacing:-0.02em; line-height:1.06; text-wrap:balance; }
h1{ font-size:clamp(38px,6vw,68px); }
h2{ font-size:clamp(28px,4vw,42px); }
h3{ font-size:clamp(22px,2.6vw,28px); }
.h-sans{ font-family:var(--font-body); font-weight:600; letter-spacing:0; }
p{ max-width:62ch; }
.lede{ font-size:clamp(17px,1.6vw,19px); color:var(--ink-2); }
.muted{ color:var(--ink-3); }
.note{ font-size:12.5px; color:var(--ink-4); }

.eyebrow{
  display:block; font-family:var(--font-mono); font-size:11.5px; font-weight:500;
  letter-spacing:0.09em; text-transform:uppercase; color:var(--acc-deep);
}
.eyebrow::before{ content:""; display:inline-block; width:7px; height:7px; background:currentColor; margin-right:10px; vertical-align:1px; }
.hi{ font-family:var(--font-hi); font-weight:500; letter-spacing:0; text-transform:none; }
.stack > * + *{ margin-top:16px; }
.section-head{ max-width:680px; display:flex; flex-direction:column; gap:12px; }
.section-head p{ color:var(--ink-3); font-size:17px; }

/* Bands */
section{ padding-block:96px; position:relative; }
@media (max-width:760px){ section{ padding-block:64px; } }
.paper-2{ background:var(--paper-2); }
.field,.field-2{ background:var(--field); color:var(--field-text); }
.field-2{ background:var(--field-2); }
.field .eyebrow,.field-2 .eyebrow{ color:var(--acc); }
.field .lede,.field-2 .lede,.field .section-head p,.field-2 .section-head p{ color:var(--field-text-2); }
.field .muted,.field-2 .muted{ color:var(--field-text-3); }
.field .note,.field-2 .note{ color:var(--field-text-3); }
.field::before,.field-2::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240' viewBox='0 0 320 240'%3E%3Cg fill='none' stroke='%23EAF0E8' stroke-opacity='.05' stroke-width='1'%3E%3Cpath d='M0 40 C60 20 110 70 170 50 S270 10 320 40'/%3E%3Cpath d='M0 70 C60 50 110 100 170 80 S270 40 320 70'/%3E%3Cpath d='M0 100 C70 85 120 130 180 112 S280 75 320 100'/%3E%3Cpath d='M0 140 C50 125 120 170 175 150 S275 120 320 140'/%3E%3Cpath d='M0 175 C60 160 115 205 175 185 S270 150 320 175'/%3E%3Cpath d='M0 210 C70 195 120 235 180 218 S280 185 320 210'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(rgba(79,195,217,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(79,195,217,.035) 1px, transparent 1px);
  background-size:320px 240px, 56px 56px, 56px 56px;
}
.paper-2{ background-image:repeating-linear-gradient(118deg, rgba(20,32,26,.028) 0 1px, transparent 1px 16px); }
.field > *,.field-2 > *{ position:relative; z-index:1; }

/* Product themes: violet replaces blue inside Third India areas */
.ti .eyebrow{ color:var(--ti-deep); }
.ti.field .eyebrow,.ti.field-2 .eyebrow,.field .ti .eyebrow,.field-2 .ti .eyebrow{ color:var(--ti); }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:env(safe-area-inset-top,0px); z-index:50;
  background:rgba(242,244,239,0.94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rule-light);
}
.navbar{ max-width:var(--max); margin:0 auto; padding-inline:var(--gutter); height:var(--header-h); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo{ font-family:var(--font-display); font-weight:600; font-size:21px; letter-spacing:-0.01em; display:flex; align-items:baseline; gap:8px; white-space:nowrap; }
.logo small{ font-family:var(--font-body); font-weight:400; font-size:11px; color:var(--ink-4); }
@media (max-width:420px){ .logo small{ display:none; } }
.nav-links{ display:flex; align-items:center; gap:24px; font-size:14.5px; }
.nav-links a{ padding:6px 0; position:relative; transition:color .2s ease; }
.nav-links a:hover{ color:var(--acc-deep); }
.nav-links a[aria-current="page"]{ color:var(--acc-deep); }
.nav-links a[aria-current="page"]::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:currentColor; }
.nav-links .nav-product{ font-weight:600; }
.nav-links .nav-product.ti-link:hover,.nav-links .nav-product.ti-link[aria-current="page"]{ color:var(--ti-deep); }
.nav-sep{ width:1px; height:18px; background:var(--rule-light); }
.nav-cta{ display:inline-flex; }
.menu-toggle{ display:none; width:44px; height:44px; align-items:center; justify-content:center; margin-right:-10px; }
.menu-toggle span{ display:block; width:22px; height:2px; background:var(--ink); position:relative; transition:background .2s; }
.menu-toggle span::before,.menu-toggle span::after{ content:""; position:absolute; left:0; width:22px; height:2px; background:var(--ink); transition:transform .25s ease; }
.menu-toggle span::before{ top:-7px; } .menu-toggle span::after{ top:7px; }
.menu-open .menu-toggle span{ background:transparent; }
.menu-open .menu-toggle span::before{ transform:translateY(7px) rotate(45deg); }
.menu-open .menu-toggle span::after{ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:1060px){
  .navbar .nav-links,.navbar .nav-cta{ display:none; }
  .menu-toggle{ display:inline-flex; }
}
.mobile-menu{
  display:none; border-top:1px solid var(--rule-light); background:var(--paper);
  max-height:calc(100vh - var(--header-h)); overflow-y:auto;
}
.menu-open .mobile-menu{ display:block; }
@media (min-width:1061px){ .menu-open .mobile-menu{ display:none; } }
.mobile-menu .wrap{ padding-block:12px 28px; display:flex; flex-direction:column; }
.mobile-menu .group-label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-4); padding:18px 0 6px; }
.mobile-menu a{ font-size:18px; padding:12px 0; border-bottom:1px solid var(--rule-light); display:flex; justify-content:space-between; }
.mobile-menu a[aria-current="page"]{ color:var(--acc-deep); }
.mobile-menu .btn{ margin-top:24px; justify-content:center; border-bottom:0; font-size:16px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-body); font-weight:600; font-size:14.5px;
  padding:12px 22px; min-height:44px; border-radius:2px; border:1px solid transparent;
  cursor:pointer; transition:transform .18s ease, background .2s ease, border-color .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); }
@media (max-width:640px){ .btn{ white-space:normal; text-align:left; } }
.btn-primary{ background:var(--ink); color:var(--paper); }
.btn-primary:hover{ background:var(--acc-deep); }
.btn-line{ border-color:var(--ink); color:var(--ink); }
.btn-line:hover{ border-color:var(--acc-deep); color:var(--acc-deep); }
.field .btn-primary,.field-2 .btn-primary,.final-cta .btn-primary{ background:var(--acc); color:var(--field); }
.field .btn-primary:hover,.field-2 .btn-primary:hover,.final-cta .btn-primary:hover{ background:var(--field-text); }
.field .btn-line,.field-2 .btn-line{ border-color:var(--field-text); color:var(--field-text); }
.field .btn-line:hover,.field-2 .btn-line:hover{ border-color:var(--acc); color:var(--acc); }
.ti .btn-primary{ background:var(--ti); color:var(--field); }
.ti .btn-primary:hover{ background:var(--field-text); }
.arrow{ transition:transform .2s ease; display:inline-block; }
.btn:hover .arrow,a:hover > .arrow,a:hover .go .arrow{ transform:translateX(3px); }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }

/* ---------- Page heads ---------- */
.page-head{ padding-block:80px 72px; overflow:hidden; }
.page-head-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.page-head-grid > div{ display:flex; flex-direction:column; gap:20px; min-width:0; }
@media (max-width:900px){ .page-head-grid{ grid-template-columns:1fr; } .page-art{ max-width:420px; } }
.page-head h1{ max-width:16ch; }
.page-art{ width:100%; height:auto; }
.hero h1{ font-size:clamp(40px,6.2vw,74px); max-width:14ch; }
@keyframes fadeUp{ from{ opacity:.001; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.page-head-grid > *{ animation:fadeUp .8s cubic-bezier(.2,.7,.3,1) both; }
.page-head-grid > *:nth-child(2){ animation-delay:.1s; }
@keyframes pulseDot{ 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.6; transform:scale(1.15); } }
.pulse-node{ animation:pulseDot 3.2s ease-in-out infinite; transform-origin:center; transform-box:fill-box; }

.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ font-size:12.5px; border:1px solid var(--rule-light); padding:6px 12px; border-radius:20px; color:var(--ink-2); background:var(--paper-2); }
.field .chip,.field-2 .chip{ border-color:var(--rule-dark); color:var(--field-text-2); background:transparent; }

/* ---------- Home: audience router ---------- */
.router-head{ display:flex; justify-content:space-between; align-items:end; gap:24px; flex-wrap:wrap; margin-bottom:40px; }
.router{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:860px){ .router{ grid-template-columns:1fr; } }
.route{
  display:flex; flex-direction:column; gap:18px; padding:40px 36px; min-width:0;
  background:var(--field); color:var(--field-text); border-radius:4px; position:relative; overflow:hidden;
  border:1px solid transparent; transition:border-color .2s ease, transform .2s ease;
}
.route:hover{ transform:translateY(-2px); }
.route.fi{ border-top:3px solid var(--acc); }
.route.fi:hover{ border-color:var(--acc); }
.route.ti{ background:#1B1A10; border-top:3px solid var(--ti); }
.route.ti:hover{ border-color:var(--ti); }
@media (max-width:640px){ .route{ padding:32px 24px; } }
.route .who{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--field-text-3); }
.route h3{ font-size:clamp(26px,3vw,34px); max-width:16ch; }
.route p{ color:var(--field-text-2); }
.route-stat{ display:flex; align-items:baseline; gap:12px; padding-block:16px; border-top:1px solid var(--rule-dark); border-bottom:1px solid var(--rule-dark); }
.route-stat b{ white-space:nowrap; flex-shrink:0; font-family:var(--font-mono); font-weight:500; font-size:clamp(28px,3.4vw,38px); font-variant-numeric:tabular-nums; }
.route.fi .route-stat b{ color:var(--acc); }
.route.ti .route-stat b{ color:var(--ti); }
.route-stat span{ font-size:13.5px; color:var(--field-text-3); }
.route .for{ font-size:13.5px; color:var(--field-text-3); }
.route .for strong{ color:var(--field-text); font-weight:500; }
.route .go{ margin-top:auto; font-weight:600; font-size:15px; display:inline-flex; gap:8px; align-items:center; }
.route.fi .go{ color:var(--acc); }
.route.ti .go{ color:var(--ti); }

/* ---------- Model row (sequence) ---------- */
.model-row{ margin-top:48px; display:grid; grid-template-columns:repeat(var(--steps,5),1fr); border-top:1px solid var(--rule-light); border-bottom:1px solid var(--rule-light); }
.model-step{ padding:24px 18px; border-right:1px solid var(--rule-light); position:relative; min-width:0; }
.model-step:last-child{ border-right:none; }
.model-step .num{ font-family:var(--font-mono); font-size:12px; color:var(--acc-deep); font-weight:500; }
.model-step h4{ font-family:var(--font-body); font-size:15.5px; font-weight:600; margin-top:8px; letter-spacing:0; }
.model-step p{ font-size:13.5px; color:var(--ink-3); margin-top:6px; }
@media (min-width:861px){ .model-step:not(:last-child)::after{ content:"→"; position:absolute; right:-9px; top:24px; color:var(--acc-deep); font-size:14px; background:inherit; z-index:2; } }
@media (max-width:860px){ .model-row{ grid-template-columns:1fr 1fr; } .model-step{ border-bottom:1px solid var(--rule-light); } .model-step:nth-child(2n){ border-right:none; } }
@media (max-width:480px){ .model-row{ grid-template-columns:1fr; } .model-step{ border-right:none; } }
.field .model-row,.field-2 .model-row,.field .model-step,.field-2 .model-step{ border-color:var(--rule-dark); }
.field .model-step .num,.field-2 .model-step .num{ color:var(--acc); }
.field .model-step p,.field-2 .model-step p{ color:var(--field-text-3); }
.ti .model-step .num{ color:var(--ti); }

/* ---------- Grids of cells ---------- */
.cell-grid{ display:grid; grid-template-columns:repeat(var(--cols,3),1fr); gap:1px; background:var(--rule-light); border:1px solid var(--rule-light); margin-top:48px; }
.cell-grid > *{ background:var(--paper); padding:32px 28px; min-width:0; }
.paper-2 .cell-grid > *{ background:var(--paper-2); }
.field .cell-grid,.field-2 .cell-grid{ background:var(--rule-dark); border-color:var(--rule-dark); }
.field .cell-grid > *{ background:var(--field); }
.field-2 .cell-grid > *{ background:var(--field-2); }
.cell-grid h4{ font-family:var(--font-body); font-size:17.5px; font-weight:600; letter-spacing:0; margin-bottom:8px; }
.cell-grid h3{ font-size:21px; margin:8px 0 10px; }
.cell-grid p{ font-size:14.5px; color:var(--ink-3); }
.field .cell-grid p,.field-2 .cell-grid p{ color:var(--field-text-3); }
.cell-grid .num{ font-family:var(--font-mono); font-size:11.5px; color:var(--acc-deep); font-weight:500; letter-spacing:.04em; text-transform:uppercase; }
.field .cell-grid .num,.field-2 .cell-grid .num{ color:var(--acc); }
.ti .cell-grid .num{ color:var(--ti-deep); }
.ti.field .cell-grid .num,.ti.field-2 .cell-grid .num{ color:var(--ti); }
.cell-icon{ width:26px; height:26px; margin-bottom:14px; }
@media (max-width:900px){ .cell-grid{ --cols:2 !important; } }
@media (max-width:560px){ .cell-grid{ --cols:1 !important; } }

/* ---------- Stats ---------- */
.stat-strip{ display:grid; grid-template-columns:repeat(var(--cols,4),1fr); border-top:1px solid var(--rule-light); border-bottom:1px solid var(--rule-light); margin-top:44px; }
.stat-strip > div{ padding:24px 20px; border-right:1px solid var(--rule-light); min-width:0; }
.stat-strip > div:last-child{ border-right:none; }
.stat-num{ font-family:var(--font-mono); font-weight:500; font-size:clamp(28px,3.6vw,44px); color:var(--acc-deep); font-variant-numeric:tabular-nums; line-height:1.1; }
.stat-label{ font-size:13.5px; color:var(--ink-3); margin-top:6px; }
.field .stat-strip,.field-2 .stat-strip,.field .stat-strip > div,.field-2 .stat-strip > div{ border-color:var(--rule-dark); }
.field .stat-num,.field-2 .stat-num{ color:var(--acc); }
.field .stat-label,.field-2 .stat-label{ color:var(--field-text-3); }
.ti .stat-num{ color:var(--ti-deep); }
.ti.field .stat-num,.ti.field-2 .stat-num,.field .ti .stat-num{ color:var(--ti); }
@media (max-width:760px){
  .stat-strip{ grid-template-columns:1fr 1fr; }
  .stat-strip > div{ border-bottom:1px solid var(--rule-light); }
  .stat-strip > div:nth-child(2n){ border-right:none; }
  .field .stat-strip > div,.field-2 .stat-strip > div{ border-bottom-color:var(--rule-dark); }
}
@media (max-width:420px){ .stat-strip{ grid-template-columns:1fr; } .stat-strip > div{ border-right:none; } }

/* ---------- Tables ---------- */
.table-wrap{ margin-top:44px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-wrap table{ width:100%; border-collapse:collapse; min-width:760px; }
.table-wrap th{ text-align:left; font-family:var(--font-mono); font-size:11.5px; font-weight:500; letter-spacing:.04em; text-transform:uppercase; color:var(--acc-deep); padding:12px 16px; border-bottom:2px solid var(--rule-light); vertical-align:bottom; }
.table-wrap td{ padding:16px; border-bottom:1px solid var(--rule-light); font-size:14px; color:var(--ink-3); vertical-align:top; }
.table-wrap td:first-child{ font-weight:600; color:var(--ink); }
.field .table-wrap th,.field-2 .table-wrap th{ color:var(--acc); border-bottom-color:var(--rule-dark); }
.ti .table-wrap th{ color:var(--ti-deep); }
.ti.field .table-wrap th,.ti.field-2 .table-wrap th{ color:var(--ti); }
.field .table-wrap td,.field-2 .table-wrap td{ color:var(--field-text-2); border-bottom-color:var(--rule-dark); }
.field .table-wrap td:first-child,.field-2 .table-wrap td:first-child{ color:var(--field-text); }
.scroll-hint{ display:none; font-size:12px; color:var(--ink-4); margin-top:10px; }
@media (max-width:800px){ .scroll-hint{ display:block; } }

/* ---------- Flow (horizontal chain) ---------- */
.flow{ margin-top:44px; display:grid; grid-template-columns:repeat(var(--steps,5),1fr); gap:1px; background:var(--rule-light); border:1px solid var(--rule-light); }
.flow > div{ background:var(--paper); padding:22px 18px; position:relative; min-width:0; }
.paper-2 .flow > div{ background:var(--paper-2); }
.flow h4{ font-family:var(--font-body); font-size:15px; font-weight:600; letter-spacing:0; }
.flow h4 + p,.flow span{ font-size:12.5px; color:var(--ink-4); display:block; margin-top:6px; }
.flow .num{ font-family:var(--font-mono); font-size:11px; color:var(--acc-deep); letter-spacing:.04em; text-transform:uppercase; display:block; margin-bottom:6px; }
.field .flow,.field-2 .flow{ background:var(--rule-dark); border-color:var(--rule-dark); }
.field .flow > div{ background:var(--field); }
.field-2 .flow > div{ background:var(--field-2); }
.field .flow span,.field-2 .flow span,.field .flow h4 + p,.field-2 .flow h4 + p{ color:var(--field-text-3); }
.field .flow .num,.field-2 .flow .num{ color:var(--acc); }
.ti .flow .num{ color:var(--ti); }
@media (max-width:860px){ .flow{ grid-template-columns:1fr; } .flow > div:not(:last-child)::after{ content:"↓"; position:absolute; right:18px; top:50%; transform:translateY(-50%); color:var(--ink-4); } }

/* ---------- Profiles ---------- */
.profile-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-light); border:1px solid var(--rule-light); margin-top:44px; }
.profile-grid > div{ background:var(--paper); padding:28px 26px; min-width:0; }
.paper-2 .profile-grid > div{ background:var(--paper); }
.profile-grid h4{ font-family:var(--font-mono); font-size:11.5px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); margin-bottom:12px; }
.ti .profile-grid h4{ color:var(--ti-deep); }
.profile-stat{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:8px 0; border-bottom:1px solid var(--rule-light); font-size:14px; color:var(--ink-3); }
.profile-stat:last-child{ border-bottom:none; }
.profile-stat b{ font-family:var(--font-mono); font-weight:500; font-size:16px; color:var(--ink); font-variant-numeric:tabular-nums; }
.field .profile-grid{ background:var(--rule-dark); border-color:var(--rule-dark); }
.field .profile-grid > div{ background:var(--field); }
.field .profile-grid h4{ color:var(--acc); }
.field .profile-stat{ color:var(--field-text-3); border-bottom-color:var(--rule-dark); }
.field .profile-stat b{ color:var(--field-text); }
@media (max-width:860px){ .profile-grid{ grid-template-columns:1fr; } }

/* ---------- Density panel ---------- */
.density{ margin-top:44px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule-light); border:1px solid var(--rule-light); }
.density > div{ background:var(--paper); padding:26px 24px; }
.density .tier{ font-family:var(--font-mono); font-size:11px; color:var(--acc-deep); letter-spacing:.06em; text-transform:uppercase; }
.density .place{ font-family:var(--font-display); font-size:22px; margin-top:6px; }
.density .pct{ font-family:var(--font-mono); font-size:30px; color:var(--acc-deep); margin-top:12px; font-variant-numeric:tabular-nums; }
.density .pct-label{ font-size:13px; color:var(--ink-3); }
@media (max-width:760px){ .density{ grid-template-columns:1fr; } }

/* ---------- Channel matrix ---------- */
.channels{ margin-top:40px; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule-dark); border:1px solid var(--rule-dark); }
.channels > div{ background:var(--field-2); padding:18px 18px; display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:15px; }
.channels .mark{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; }
.channels .yes .mark{ color:var(--good); }
.channels .no{ color:var(--field-text-3); }
.channels .no .mark{ color:var(--bad); }

/* ---------- Lists ---------- */
.dash-list{ margin-top:24px; display:flex; flex-direction:column; gap:12px; max-width:62ch; }
.dash-list li{ padding-left:26px; position:relative; font-size:16px; color:var(--ink-2); }
.dash-list li::before{ content:"—"; position:absolute; left:0; color:var(--ti-deep); font-weight:600; }

.pill-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.pill{ font-size:14px; padding:10px 18px; border:1px solid var(--rule-light); border-radius:24px; }
.field .pill,.field-2 .pill{ border-color:var(--rule-dark); }
.dot-list{ display:flex; flex-wrap:wrap; gap:6px 12px; font-size:13.5px; color:var(--ink-3); }
.dot-list span:not(:last-child)::after{ content:"·"; margin-left:12px; color:var(--ink-4); }
.field .dot-list,.field-2 .dot-list{ color:var(--field-text-3); }

.patrons{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.patrons span{ font-size:14px; padding:9px 16px; border:1px solid var(--rule-light); border-radius:3px; color:var(--ink-2); background:var(--paper); }
.patrons-band{ padding-block:56px; }
.patrons-band .inner{ display:grid; grid-template-columns:240px 1fr; gap:32px; align-items:center; }
.patrons-band .patrons{ margin-top:0; }
@media (max-width:860px){ .patrons-band .inner{ grid-template-columns:1fr; gap:16px; } }

.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.two-col > *{ min-width:0; }
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; gap:32px; } }

.quote{ font-family:var(--font-display); font-weight:500; font-stretch:105%; font-size:clamp(20px,2.2vw,26px); line-height:1.35; max-width:40ch; }
.formula{ margin-top:32px; padding:24px 28px; border:1px solid var(--rule-light); font-family:var(--font-mono); font-size:16px; line-height:1.6; max-width:62ch; border-left:3px solid var(--acc-deep); }
.field .formula,.field-2 .formula{ border-color:var(--rule-dark); }
.belief{ font-family:var(--font-display); font-weight:500; font-stretch:105%; font-size:clamp(20px,2.2vw,24px); line-height:1.4; display:flex; flex-direction:column; gap:6px; }
.badge{ display:inline-block; font-family:var(--font-mono); font-size:10.5px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--ti); border:1px solid var(--ti); padding:4px 10px; border-radius:20px; }

/* ---------- Case studies ---------- */
.case-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
@media (max-width:960px){ .case-grid{ grid-template-columns:1fr; } }
.case-card{ border:1px solid var(--rule-light); padding:30px 26px; display:flex; flex-direction:column; gap:12px; transition:border-color .2s ease; background:var(--paper); min-width:0; }
a.case-card:hover{ border-color:var(--acc-deep); }
.case-client{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--teal); }
.case-card h3{ font-size:22px; }
.case-line{ font-size:14px; color:var(--ink-3); }
.case-line b{ display:block; font-weight:600; color:var(--ink); font-size:12.5px; margin-bottom:2px; }
.case-card .go{ margin-top:auto; padding-top:12px; font-size:14px; font-weight:600; color:var(--acc-deep); }
.case-full{ display:grid; grid-template-columns:280px 1fr; gap:48px; padding-block:56px; border-top:1px solid var(--rule-light); }
.case-full:first-child{ border-top:0; padding-top:0; }
.case-full aside{ display:flex; flex-direction:column; gap:14px; }
.case-full aside svg{ width:56px; height:56px; }
.case-full h2{ font-size:clamp(26px,3vw,34px); }
.case-full dl{ display:grid; grid-template-columns:180px 1fr; gap:0; border-top:1px solid var(--rule-light); }
.case-full dt,.case-full dd{ padding:16px 0; border-bottom:1px solid var(--rule-light); }
.case-full dt{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); padding-top:19px; }
.case-full dd{ color:var(--ink-2); }
.case-full dd.pending{ color:var(--ink-4); font-style:italic; }
@media (max-width:860px){ .case-full{ grid-template-columns:1fr; gap:24px; } }
@media (max-width:560px){ .case-full dl{ grid-template-columns:1fr; } .case-full dt{ border-bottom:0; padding-bottom:0; } }

/* ---------- Insights ---------- */
.insight-grid{ display:grid; grid-template-columns:.75fr 1.25fr; gap:56px; }
@media (max-width:860px){ .insight-grid{ grid-template-columns:1fr; gap:32px; } }
.cat-list li{ font-size:14.5px; padding:10px 0; border-bottom:1px solid var(--rule-light); color:var(--ink-2); }
.article-row{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 0; border-bottom:1px solid var(--rule-light); }
.article-row:first-child{ padding-top:0; }
.article-row h3{ font-size:19px; max-width:38ch; }
.article-row .status{ font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); flex-shrink:0; }

/* ---------- Forms ---------- */
.contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }
.contact-aside{ display:flex; flex-direction:column; gap:24px; }
.contact-aside .addr{ font-family:var(--font-mono); font-size:15px; user-select:all; }
.form{ display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; background:var(--paper); border:1px solid var(--rule-light); padding:32px; border-radius:4px; }
@media (max-width:640px){ .form{ grid-template-columns:1fr; padding:24px 20px; } }
.form .full{ grid-column:1 / -1; }
.field-row{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.field-row label,.field-row legend{ font-size:13.5px; font-weight:600; }
.field-row .opt{ font-weight:400; color:var(--ink-4); }
.form input,.form select,.form textarea{
  font:inherit; font-size:15px; color:var(--ink); background:#fff;
  border:1px solid rgba(16,19,26,0.25); border-radius:3px; padding:11px 12px; width:100%; min-height:44px;
}
.form textarea{ min-height:120px; resize:vertical; }
.form input:focus,.form select:focus,.form textarea:focus{ outline:2px solid var(--acc); outline-offset:0; border-color:var(--acc); }
.form [aria-invalid="true"]{ border-color:#B4432A; }
.field-error{ font-size:12.5px; color:#B4432A; }
.form fieldset{ border:0; display:flex; flex-direction:column; gap:8px; }
.choice-row{ display:flex; flex-wrap:wrap; gap:10px; }
.choice{ display:flex; align-items:center; gap:8px; padding:10px 14px; border:1px solid rgba(16,19,26,0.25); border-radius:3px; font-size:14.5px; cursor:pointer; background:#fff; }
.choice input{ width:auto; min-height:0; accent-color:var(--acc-deep); }
.choice:has(input:checked){ border-color:var(--acc-deep); background:#E4F0E0; }
.form .consent{ font-size:12.5px; color:var(--ink-4); }
.form .consent a{ text-decoration:underline; }
.form-status{ grid-column:1 / -1; padding:16px 18px; border-radius:3px; font-size:14.5px; }
.form-status.ok{ background:#E7F4EC; color:#1D5A35; }
.form-status.err{ background:#FBEAE5; color:#7E2A16; }
.form-status pre{ white-space:pre-wrap; font-family:var(--font-mono); font-size:12.5px; background:#fff; padding:12px; margin-top:10px; border:1px solid var(--rule-light); border-radius:3px; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- Legal ---------- */
.legal{ max-width:72ch; }
.legal h2{ font-size:24px; margin-top:44px; margin-bottom:12px; }
.legal p,.legal li{ color:var(--ink-2); margin-top:10px; }
.legal ul{ list-style:disc; padding-left:22px; }
.draft-banner{ background:#FFF4D6; border:1px solid #E7C66B; color:#5C4605; padding:14px 18px; border-radius:3px; font-size:14px; margin-bottom:32px; }

/* ---------- Final CTA ---------- */
.final-cta{
  background:linear-gradient(135deg,#0D2618 0%,#123A24 55%,#2B3315 100%);
  color:var(--field-text); text-align:center; padding-block:112px; overflow:hidden;
}
.final-cta::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 20%,rgba(124,203,110,.14),transparent 45%),radial-gradient(circle at 80% 80%,rgba(232,162,58,.14),transparent 45%); }
.final-cta .wrap{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:28px; }
.final-cta h2{ font-size:clamp(30px,5vw,54px); max-width:18ch; }
.final-cta p{ color:var(--field-text-2); }

/* ---------- Footer ---------- */
.site-footer{ background:#0A1F14; color:var(--field-text-3); padding-block:64px calc(40px + env(safe-area-inset-bottom,0px)); }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
@media (max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; } .foot-grid > :first-child{ grid-column:1 / -1; } }
.site-footer .logo{ color:var(--field-text); }
.site-footer .logo small{ color:var(--ink-4); }
.foot-blurb{ font-size:14px; margin-top:14px; max-width:36ch; }
.site-footer h2{ font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.09em; text-transform:uppercase; color:var(--field-text-3); margin-bottom:14px; }
.foot-links{ display:flex; flex-direction:column; gap:10px; font-size:14px; }
.foot-links a:hover{ color:var(--acc); }
.foot-bottom{ margin-top:56px; padding-top:24px; border-top:1px solid rgba(238,240,244,.1); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12.5px; color:var(--field-text-3); }

/* ---------- Third India page wrapper: swap blue accents for violet ---------- */
.ti-page .eyebrow,.ti-page .stat-num,.ti-page .model-step .num,.ti-page .cell-grid .num,
.ti-page .table-wrap th,.ti-page .profile-grid h4,.ti-page .flow .num{ color:var(--ti-deep); }
.ti-page .field .eyebrow,.ti-page .field-2 .eyebrow,.ti-page .field .stat-num,.ti-page .field-2 .stat-num,
.ti-page .field .cell-grid .num,.ti-page .field-2 .cell-grid .num,.ti-page .field .table-wrap th,.ti-page .field-2 .table-wrap th,
.ti-page .field .flow .num,.ti-page .field-2 .flow .num,.ti-page .field .model-step .num{ color:var(--ti); }
.ti-page .field .btn-primary,.ti-page .field-2 .btn-primary{ background:var(--ti); }
.ti-page .field .btn-primary:hover,.ti-page .field-2 .btn-primary:hover{ background:var(--field-text); }
.ti-page .btn-primary:hover{ background:var(--ti-deep); }
.ti-page .final-cta .btn-primary{ background:var(--ti); }
.ti-page .final-cta .btn-primary:hover{ background:var(--field-text); }
.ti-page .page-head.field-2{ background:#12301F; }
.equation{ font-family:var(--font-display); font-size:clamp(20px,2.4vw,26px); color:var(--ti-deep); }
.chain{ font-weight:600; font-size:15px; display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; }
.chain span[aria-hidden]{ color:var(--ink-4); }

::selection{ background:var(--acc); color:var(--ink); }
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* ---------- Field-plot map panel ---------- */
.map-panel{ border:1px solid var(--rule-dark); border-radius:6px; overflow:hidden; background:var(--field); box-shadow:0 30px 60px -30px rgba(0,0,0,.6); min-width:0; }
.map-bar{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 14px; font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--field-text-3); border-bottom:1px solid var(--rule-dark); background:var(--field-2); }
.map-bar b{ color:var(--field-text); font-weight:500; }
.map-bar .live{ display:inline-flex; align-items:center; gap:7px; color:var(--teal-light); }
.map-bar .live::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; animation:pulseDot 2.4s ease-in-out infinite; }
.map-foot{ display:flex; flex-wrap:wrap; gap:6px 16px; padding:10px 14px; border-top:1px solid var(--rule-dark); font-family:var(--font-mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--field-text-3); background:var(--field-2); }
.map-foot i{ display:inline-block; width:9px; height:9px; margin-right:6px; vertical-align:-1px; font-style:normal; }
.plot-map{ width:100%; height:auto; display:block; }
@keyframes scan{ from{ transform:translateY(0); } to{ transform:translateY(460px); } }
.plot-map .scan{ animation:scan 6s linear infinite; }
.map-bar > span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.map-foot .coords{ margin-left:auto; color:var(--field-text-2); }
@media (max-width:480px){ .map-foot .coords{ margin-left:0; } }
.hero h1{ font-stretch:118%; }
.field .eyebrow .hi,.field-2 .eyebrow .hi{ color:var(--field-text-2); }

/* ---------- Farmer photos ---------- */
.photo{ margin:0; border-radius:4px; overflow:hidden; background:var(--field-2); aspect-ratio:var(--ratio,4/3); max-width:100%; }
.photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.photo-strip{ display:grid; grid-template-columns:repeat(var(--n,3),1fr); gap:16px; margin-top:40px; }


@media (max-width:760px){
  .photo-strip{ grid-template-columns:repeat(var(--n,3),82%); overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; }
  .photo-strip .photo{ scroll-snap-align:start; }
  .photo-strip .photo:nth-child(2){ transform:none; }
}
.photo-wide{ margin-top:40px; max-width:820px; }
.route-photo{ margin:-40px -36px 4px; border-radius:0; aspect-ratio:16/9; }
@media (max-width:640px){ .route-photo{ margin:-32px -24px 4px; } }
.case-full aside .case-photo{ width:100%; height:auto; }

/* ---------- Third India personas ---------- */
.persona-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:44px; }
@media (max-width:1000px){ .persona-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .persona-grid{ grid-template-columns:1fr; } }
.persona{ background:var(--paper); border:1px solid var(--rule-light); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; min-width:0; }
.persona .photo{ border-radius:0; }
.persona-body{ padding:20px 20px 24px; display:flex; flex-direction:column; gap:10px; }
.persona-age{ font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ti-deep); }
.persona h3{ font-size:21px; }
.persona p{ font-size:14px; color:var(--ink-3); }
.persona .chips{ margin-top:4px; }
.persona .chip{ font-size:11.5px; padding:4px 10px; }
/* ---------- Before / after ---------- */
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:40px; }
@media (max-width:760px){ .compare{ grid-template-columns:1fr; } }
.compare > div{ border:1px solid var(--rule-light); border-radius:4px; padding:28px 28px 30px; }
.compare h3{ font-size:20px; margin-bottom:14px; }
.compare li{ padding:9px 0 9px 24px; border-bottom:1px solid var(--rule-light); position:relative; color:var(--ink-3); font-size:15px; }
.compare li:last-child{ border-bottom:0; }
.compare li::before{ content:"–"; position:absolute; left:0; color:var(--ink-4); }
.compare .with{ background:var(--field); border-color:var(--field); }
.compare .with h3{ color:var(--ti); }
.compare .with li{ color:var(--field-text-2); border-bottom-color:var(--rule-dark); }
.compare .with li::before{ content:"→"; color:var(--ti); }
.field .two-col .photo,.field-2 .two-col .photo{ box-shadow:0 20px 40px -24px rgba(0,0,0,.6); }

/* ---------- Third India: why targeting misses (teaser cards) ---------- */
.myth-grid h3{ font-size:19px; margin:10px 0 8px; }
.myth-grid p{ font-size:14px; padding-left:20px; position:relative; }
.myth-grid p::before{ content:"→"; position:absolute; left:0; color:var(--ti); }

@keyframes flow{ to{ stroke-dashoffset:-36; } }
.plot-map .flow-line{ animation:flow 1.6s linear infinite; }

.tm{ font-size:.45em; font-weight:500; vertical-align:super; margin-left:1px; letter-spacing:0; }

/* ---------- Brand logo ---------- */
:root{ --header-h:82px; }
.logo{ align-items:center; gap:10px; }
.logo-mark{ height:66px; width:auto; display:block; }
.logo .tm{ align-self:flex-start; margin:8px 0 0 -8px; font-size:10px; color:var(--ink-3); }
.logo small{ max-width:9ch; line-height:1.25; }
@media (max-width:640px){ :root{ --header-h:66px; } .logo-mark{ height:48px; } }
.site-footer .logo-mark{ height:86px; }
.site-footer .logo .tm{ color:var(--field-text-3); margin-top:12px; }
.cta-mark{ height:72px; width:auto; opacity:.95; }

@media (max-width:860px){ .channels{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .channels{ grid-template-columns:1fr; } }

.challenge-grid > div{ display:flex; flex-direction:column; gap:4px; border-top:3px solid transparent; }
.challenge-grid > div:nth-child(1){ border-top-color:var(--acc-deep); }
.challenge-grid > div:nth-child(2){ border-top-color:var(--teal); }
.challenge-grid > div:nth-child(3){ border-top-color:var(--ti-deep); }
.challenge-grid > div:nth-child(4){ border-top-color:var(--soil); }
.challenge-grid h3{ font-size:19px; line-height:1.25; }

.layer-tiles h3{ font-size:19px; line-height:1.25; margin:8px 0 8px; }
.layer-tiles p{ font-size:14px; padding-left:20px; position:relative; }
.layer-tiles p::before{ content:"→"; position:absolute; left:0; color:var(--acc-deep); }

/* ---------- Farmer journey timeline ---------- */
.journey{ list-style:none; margin-top:52px; display:grid; grid-template-columns:repeat(6,1fr); gap:18px; position:relative; counter-reset:j; }
.journey::before{ content:""; position:absolute; left:20px; right:calc(100% / 6 - 20px); top:19px; height:2px;
  background:linear-gradient(90deg, var(--acc) 0%, var(--teal-light) 100%); opacity:.55; }
.journey li{ position:relative; display:flex; flex-direction:column; gap:8px; min-width:0; }
.j-dot{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-family:var(--font-mono); font-size:12px; font-weight:600;
  color:var(--field); background:var(--acc); box-shadow:0 0 0 5px var(--field-2), 0 0 18px rgba(124,203,110,.45); position:relative; z-index:1; margin-bottom:8px; }
.j-dot.j-end{ background:var(--teal-light); box-shadow:0 0 0 5px var(--field-2), 0 0 18px rgba(79,195,217,.45); }
.journey h3{ font-size:18px; }
.journey p{ font-size:13.5px; color:var(--field-text-3); }
.j-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.j-tags span{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; padding:4px 8px; border:1px solid rgba(124,203,110,.45); color:var(--acc); border-radius:3px; }
.j-tags .j-measure{ border-color:rgba(79,195,217,.5); color:var(--teal-light); }
@media (max-width:1000px){
  .journey{ grid-template-columns:1fr; gap:26px; }
  .journey::before{ left:19px; right:auto; top:20px; bottom:20px; width:2px; height:auto; background:linear-gradient(180deg, var(--acc), var(--teal-light)); }
  .journey li{ padding-left:60px; }
  .j-dot{ position:absolute; left:0; top:0; margin:0; }
}

/* ---------- Omnichannel farmer orbit ---------- */
.omni{ margin-top:48px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:48px; align-items:center; }
.omni-art{ margin:0; }
.omni-art svg{ width:100%; height:auto; display:block; }
.omni-list{ list-style:none; display:flex; flex-direction:column; gap:0; position:relative; }
.omni-list::before{ content:""; position:absolute; left:19px; top:24px; bottom:24px; width:2px; background:linear-gradient(180deg, var(--acc), var(--teal-light)); opacity:.6; }
.omni-list li{ display:grid; grid-template-columns:40px 1fr; gap:18px; padding:12px 0; position:relative; }
.omni-list .j-dot{ position:relative; z-index:1; margin:0; left:auto; top:auto; }
.omni-list h3{ font-size:17px; margin-bottom:2px; }
.omni-list p{ font-size:13.5px; color:var(--field-text-3); margin:0; }
.omni-list .j-tags{ margin-top:8px; }
@media (max-width:1000px){
  .omni{ grid-template-columns:1fr; gap:32px; }
  .omni-art{ max-width:560px; margin:0 auto; width:100%; }
}
.omni-devices{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin-top:32px; }
.omni-devices li{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--field-text,#E8EEE6);
  padding:8px 14px 8px 28px; border:1px solid rgba(79,195,217,.4); border-radius:999px; position:relative; background:rgba(79,195,217,.06); }
.omni-devices li::before{ content:""; position:absolute; left:12px; top:50%; width:7px; height:7px; margin-top:-3.5px; border-radius:50%; background:var(--acc); box-shadow:0 0 8px var(--acc); animation:omniPing 2.4s infinite; }
.omni-devices li:nth-child(2n)::before{ animation-delay:.6s; background:var(--teal-light); box-shadow:0 0 8px var(--teal-light); }
@keyframes omniPing{ 0%,100%{ opacity:1 } 50%{ opacity:.35 } }
@media (prefers-reduced-motion:reduce){ .omni-devices li::before{ animation:none; } }
.map-pockets{ padding:10px 14px 12px; border-top:1px solid var(--rule-dark); background:var(--field); font-family:var(--font-mono); }
.map-pockets .pk-title{ display:block; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ti); margin-bottom:8px; }
.map-pockets ul{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; }
.map-pockets li{ font-size:10.5px; letter-spacing:.02em; color:var(--field-text,#E8EEE6); border:1px solid rgba(232,162,58,.45); border-radius:3px; padding:3px 7px; background:rgba(232,162,58,.07); white-space:nowrap; }
.map-pockets li b{ color:var(--ti); margin-right:5px; font-weight:600; }
.map-pockets li em{ font-style:normal; color:var(--field-text-3); margin-left:6px; }
.audience-chain{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; margin:8px 0 36px; padding:16px 20px; border:1px solid var(--rule); border-radius:6px; }
.audience-chain .chain{ margin:0; }
.persona-grid.persona-six{ grid-template-columns:repeat(3,1fr); }
.persona-six .photo{ aspect-ratio:4/3 !important; }
@media (max-width:1000px){ .persona-grid.persona-six{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .persona-grid.persona-six{ grid-template-columns:1fr; } }
.lens{ margin-top:12px; padding-left:12px; border-left:2px solid var(--rule-light); }
.lens span{ display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:3px; }
.lens p{ font-size:14px; margin:0; line-height:1.45; }
.lens-others span{ color:var(--ink-4); }
.lens-others p{ color:var(--ink-4); text-decoration:line-through; text-decoration-color:rgba(0,0,0,.28); }
.lens-pf{ border-left-color:var(--ti); background:linear-gradient(90deg, rgba(232,162,58,.12), rgba(232,162,58,0)); padding:8px 10px 8px 12px; border-radius:0 4px 4px 0; }
.lens-pf span{ color:var(--ti-deep); font-weight:600; }
.lens-pf p{ color:var(--ink); font-weight:500; }
.lens-layers{ display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.lens-layers i{ font-style:normal; font-family:var(--font-mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:3px; border:1px solid rgba(31,127,145,.45); color:var(--teal); background:rgba(31,127,145,.06); }
.persona-town{ display:inline-flex; align-items:center; gap:6px; margin-top:6px; font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; color:var(--teal); }
.persona-town::before{ content:""; width:8px; height:8px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--teal); }

/* ---------- Intelligence to growth (merged flow) ---------- */
.growth{ list-style:none; margin:44px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; counter-reset:g; }
.growth > li{ position:relative; padding:24px 22px; border:1px solid var(--rule-dark); border-radius:6px; background:rgba(255,255,255,.02); display:flex; flex-direction:column; gap:10px; min-width:0; }
.growth > li:not(:last-child)::after{ content:"→"; position:absolute; right:-14px; top:26px; width:12px; text-align:center; color:var(--ti); font-weight:600; }
.growth > li.g-key{ border-color:rgba(232,162,58,.5); background:linear-gradient(180deg, rgba(232,162,58,.08), rgba(232,162,58,0) 70%); }
.g-num{ font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ti); display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.g-num .badge{ font-size:9.5px; }
.growth h3{ font-size:19px; }
.growth p{ font-size:14px; color:var(--field-text-3); margin:0; }
.growth .g-small{ font-size:12.5px; }
.g-chain{ list-style:none; margin:4px 0 2px; padding:0 0 0 16px; position:relative; display:flex; flex-direction:column; gap:10px; }
.g-chain::before{ content:""; position:absolute; left:4px; top:6px; bottom:6px; width:1.5px; background:linear-gradient(180deg, var(--ti), var(--teal-light)); }
.g-chain li{ position:relative; font-size:13.5px; line-height:1.4; color:var(--field-text-2,#C9D2C6); }
.g-chain li::before{ content:""; position:absolute; left:-16px; top:5px; width:9px; height:9px; border-radius:50%; background:var(--field); border:2px solid var(--ti); }
.g-chain li:last-child::before{ background:var(--ti); }
.g-chain b{ display:block; color:var(--field-text,#E8EEE6); font-weight:600; font-size:14px; }
@media (max-width:1100px){ .growth{ grid-template-columns:repeat(2,1fr); } .growth > li::after{ display:none; } }
@media (max-width:600px){ .growth{ grid-template-columns:1fr; } }
.g-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:8px; }
.g-tags i{ font-style:normal; font-family:var(--font-mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:3px; border:1px solid rgba(79,195,217,.45); color:var(--teal-light); }

/* ---------- Solutions: unified objectives ---------- */
.obj-legend{ display:flex; gap:20px; margin-top:28px; font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); }
.obj-legend span::before{ content:""; display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; vertical-align:-1px; }
.obj-legend .fi::before{ background:var(--acc-deep); } .obj-legend .ti::before{ background:var(--ti); }
.obj-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:18px; }
.obj{ background:var(--paper); border:1px solid var(--rule-light); border-radius:6px; padding:22px 22px 20px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.obj-num{ font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-4); }
.obj h3{ font-size:20px; }
.obj-line{ margin:0; font-size:14px; line-height:1.45; color:var(--ink-2); padding:8px 0 0 12px; border-left:2px solid; }
.obj-line b{ display:block; font-family:var(--font-mono); font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:2px; }
.obj-line.fi{ border-color:var(--acc-deep); } .obj-line.fi b{ color:var(--acc-deep); }
.obj-line.ti{ border-color:var(--ti); } .obj-line.ti b{ color:var(--ti-deep); }
.obj-measure{ margin-top:16px; padding:24px 26px; border-radius:6px; background:var(--field); color:var(--field-text,#E8EEE6); display:grid; grid-template-columns:auto 1fr; gap:6px 28px; align-items:baseline; border-left:4px solid; border-image:linear-gradient(180deg,var(--acc),var(--ti)) 1; }
.obj-measure .obj-num{ color:var(--teal-light); grid-row:span 2; }
.obj-measure h3{ font-size:20px; color:#fff; }
.obj-measure p{ margin:0; color:var(--field-text-3); font-size:14.5px; }
.ind-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:40px; background:var(--rule-dark); border:1px solid var(--rule-dark); border-radius:6px; overflow:hidden; }
.ind-grid > div{ background:var(--field); padding:22px; display:flex; flex-direction:column; gap:8px; }
.ind-grid h3{ font-size:18px; }
.ind-grid p{ margin:0; font-size:13.5px; color:var(--field-text-3); }
.ind-tags{ display:flex; gap:6px; margin-top:auto; padding-top:6px; }
.ind-tags i{ font-style:normal; font-family:var(--font-mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:3px; border:1px solid; }
.ind-tags .fi{ color:var(--acc); border-color:rgba(124,203,110,.45); } .ind-tags .ti{ color:var(--ti); border-color:rgba(232,162,58,.5); }
@media (max-width:1000px){ .obj-grid,.ind-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .obj-grid,.ind-grid{ grid-template-columns:1fr; } .obj-measure{ grid-template-columns:1fr; } .obj-measure .obj-num{ grid-row:auto; } }

/* ---------- About: story + beliefs ---------- */
.about-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:start; }
.about-story{ display:flex; flex-direction:column; gap:20px; }
.about-story .lede{ margin:0; font-size:clamp(20px,1.7vw,24px); line-height:1.45; color:var(--ink); }
.about-story .muted{ margin:0; font-size:16px; line-height:1.65; max-width:58ch; }
.about-story .btn-row{ margin-top:8px; }
.about-facts{ display:flex; flex-wrap:wrap; gap:0; margin:0 0 4px; border-top:1px solid var(--rule-light); border-bottom:1px solid var(--rule-light); }
.about-facts > div{ padding:12px 28px 12px 0; margin-right:28px; border-right:1px solid var(--rule-light); }
.about-facts > div:last-child{ border-right:none; margin-right:0; }
.about-facts dt{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4); }
.about-facts dd{ margin:2px 0 0; font-family:var(--font-display); font-size:20px; font-weight:600; color:var(--acc-deep); }
.about-belief{ padding:28px 30px; background:var(--paper); border:1px solid var(--rule-light); border-left:3px solid var(--acc-deep); border-radius:4px; }
.about-belief ol{ list-style:none; margin:16px 0 0; padding:0; }
.about-belief li{ display:grid; grid-template-columns:36px 1fr; align-items:baseline; padding:16px 0; border-top:1px solid var(--rule-light); font-family:var(--font-display); font-size:clamp(16px,1.3vw,18px); font-weight:600; line-height:1.3; color:var(--ink); }
.about-belief li:first-child{ border-top:none; padding-top:4px; }
.about-belief li span{ font-family:var(--font-mono); font-size:11px; font-weight:500; color:var(--acc-deep); letter-spacing:.06em; }
@media (max-width:900px){ .about-grid{ grid-template-columns:1fr; gap:40px; } }
@media (max-width:480px){ .about-facts > div{ padding-right:16px; margin-right:16px; } .about-belief{ padding:22px 20px; } }

/* ---------- Compact farmer photo rows ---------- */
.photo-strip{ grid-template-columns:repeat(var(--n,3),minmax(0,280px)); gap:14px; margin-top:32px; }
.photo-strip .photo{ aspect-ratio:auto !important; height:clamp(150px,15vw,200px); border-radius:6px; }
.photo-strip .photo img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:720px){
  .photo-strip{ grid-template-columns:repeat(var(--n,3),minmax(0,1fr)); gap:8px; overflow:visible; padding-bottom:0; }
  .photo-strip .photo{ height:120px; }
}
.photo-strip{ grid-template-columns:repeat(var(--n,3),minmax(0,1fr)); }
.ground-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; }
.ground-grid .section-head{ margin:0; }
.ground-grid .photo-strip{ margin-top:0; }
.ground-grid .photo-strip .photo{ height:clamp(170px,16vw,220px); }
@media (max-width:900px){ .ground-grid{ grid-template-columns:1fr; gap:24px; } }
.photo-strip .photo{ height:clamp(160px,16vw,235px); }
.ground-grid .photo-strip .photo{ height:clamp(170px,16vw,220px); }
@media (max-width:720px){ .photo-strip .photo{ height:120px; } .ground-grid .photo-strip .photo{ height:150px; } }

/* ---------- Activation: combined channels hero ---------- */
.act-combo{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:48px; align-items:center; margin-top:40px; }
.act-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--rule-dark); }
.act-list li{ display:grid; grid-template-columns:150px 1fr; gap:16px; align-items:baseline; padding:16px 0; border-bottom:1px solid var(--rule-dark); }
.act-list span{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--acc); }
.act-list b{ font-weight:500; font-size:16px; color:var(--field-text,#E8EEE6); }
@media (max-width:900px){ .act-combo{ grid-template-columns:1fr; gap:28px; } .act-combo .page-art{ max-width:520px; margin:0 auto; } }
@media (max-width:480px){ .act-list li{ grid-template-columns:1fr; gap:4px; } }
.act-head{ padding-bottom:88px; }

/* ================= Type system (single scale, overrides earlier one-offs) ================= */
main h1{ font-family:var(--font-display); font-weight:600; font-size:clamp(38px,5.2vw,68px) !important; line-height:1.04; }
main .hero h1{ font-size:clamp(38px,5.2vw,68px) !important; }
main h2{ font-family:var(--font-display); font-weight:600; font-size:clamp(28px,3.2vw,42px); line-height:1.1; }
main .final-cta h2{ font-size:clamp(30px,3.6vw,48px); }
main .legal h2{ font-size:24px; }
main h3{ font-family:var(--font-display); font-weight:600; font-size:20px !important; line-height:1.25; }
main .route h3{ font-size:clamp(22px,2.2vw,28px) !important; }
main h4{ font-family:var(--font-body); font-weight:600; font-size:16px !important; line-height:1.35; }
main .lede{ font-family:var(--font-body); font-size:clamp(17px,1.4vw,19px) !important; line-height:1.55; }
main .section-head > p, main p.muted{ font-size:17px !important; line-height:1.6; }
main p, main li, main dd{ font-size:15px; line-height:1.6; }
main .cell-grid p, main .model-step p, main .persona p, main .lens p, main .obj-line, main .omni-list p,
main .growth p, main .ind-grid p, main .layer-tiles p, main .journey p, main .act-list b, main .about-story .muted{ font-size:15px !important; }
main .g-small, main .consent, main .note, main .for{ font-size:13px !important; }
main .eyebrow, main .num, main .g-num, main .obj-num, main .persona-age, main .lens span, main .obj-line b,
main .act-list span, main .about-facts dt, main .stat-label + .x{ font-family:var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
main .lens-pf p{ font-weight:500; }
main .about-belief li{ font-size:18px !important; }
main .about-story .lede{ font-size:clamp(19px,1.6vw,22px) !important; }

/* ================= Colour system (single rule per background) ================= */
main h1, main h2, main h3, main h4{ color:var(--ink); }
main .lede, main .section-head > p{ color:var(--ink-2); }
main p, main li, main dd{ color:var(--ink-3); }
main .field h1, main .field h2, main .field h3, main .field h4,
main .field-2 h1, main .field-2 h2, main .field-2 h3, main .field-2 h4,
main .final-cta h2, main .obj-measure h3{ color:var(--field-text); }
main .field .lede, main .field-2 .lede, main .field .section-head > p, main .field-2 .section-head > p, main .final-cta p{ color:var(--field-text-2); }
main .field p, main .field li, main .field dd, main .field-2 p, main .field-2 li, main .field-2 dd, main .obj-measure p{ color:var(--field-text-3); }
/* intentional emphasis kept */
main .lens-pf p, main .about-story .lede, main .about-belief li{ color:var(--ink); }
main .lens-others p{ color:var(--ink-4); }
main .act-list b{ color:var(--field-text); }
main .about-facts dd{ color:var(--acc-deep); }
main .eyebrow{ color:var(--acc-deep); }
main .field .eyebrow, main .field-2 .eyebrow{ color:var(--acc); }
main .ti-page .eyebrow{ color:var(--ti-deep); }
main .ti-page .field .eyebrow, main .ti-page .field-2 .eyebrow{ color:var(--ti); }
main .section-head > p.lede{ font-size:clamp(17px,1.4vw,19px) !important; }
main .formula{ font-family:var(--font-body) !important; font-size:17px !important; line-height:1.6; color:var(--ink-2); }

/* ================= Seamless photos: soft-faded edges into the background ================= */
.photo-strip{ gap:0 !important; }
.photo-strip .photo, .ground-grid .photo{
  border-radius:0 !important; box-shadow:none !important; background:transparent !important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 18%,#000 82%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 16%,#000 80%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 18%,#000 82%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 16%,#000 80%,transparent 100%);
  mask-composite:intersect;
}
.photo-strip .photo + .photo{ margin-left:-6%; }
.photo-strip .photo img{ filter:saturate(.92) contrast(1.02); }
/* audience cards: photo dissolves into the card */
.persona .photo{
  -webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 62%,transparent 100%);
}
.persona{ border-color:transparent; box-shadow:0 1px 0 var(--rule-light); }
.photo-strip .photo, .ground-grid .photo{
  -webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent 100%) !important;
  mask-image:radial-gradient(closest-side,#000 62%,transparent 100%) !important;
  -webkit-mask-composite:source-over; mask-composite:add;
}
.photo-strip .photo + .photo{ margin-left:-12%; }
.photo-strip{ grid-template-columns:repeat(var(--n,3),minmax(0,1fr)) !important; padding:0 4%; }
.photo-strip .photo{ height:clamp(190px,18vw,260px) !important; }
.ground-grid .photo-strip .photo{ height:clamp(200px,18vw,250px) !important; }
@media (max-width:720px){ .photo-strip .photo{ height:150px !important; } .photo-strip .photo + .photo{ margin-left:-14%; } }
/* panoramic band: images cross-dissolve sideways; the whole band fades at its outer edges */
.photo-strip{ padding:0 !important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 84%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 84%,transparent 100%);
  mask-composite:intersect; }
.photo-strip .photo, .ground-grid .photo{
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%) !important;
  mask-image:linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%) !important; }
.photo-strip .photo:first-child{ -webkit-mask-image:linear-gradient(to right,#000 86%,transparent 100%) !important; mask-image:linear-gradient(to right,#000 86%,transparent 100%) !important; }
.photo-strip .photo:last-child{ -webkit-mask-image:linear-gradient(to right,transparent 0,#000 14%) !important; mask-image:linear-gradient(to right,transparent 0,#000 14%) !important; }
.photo-strip .photo + .photo{ margin-left:-9% !important; }
@media (max-width:720px){ .photo-strip .photo + .photo{ margin-left:-12% !important; } }
.photo-strip .photo, .ground-grid .photo-strip .photo{ -webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%) !important; mask-image:linear-gradient(to right,transparent 0,#000 22%) !important; position:relative; }
.photo-strip .photo:first-child{ -webkit-mask-image:none !important; mask-image:none !important; }
.photo-strip .photo + .photo{ margin-left:-14% !important; }
.photo-strip{ display:flex !important; }
.photo-strip .photo{ flex:1 1 0; min-width:0; }
.photo-strip .photo + .photo{ margin-left:-12% !important; }
.photo-strip .photo:last-child{ -webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%) !important; mask-image:linear-gradient(to right,transparent 0,#000 22%) !important; }
.map-bar .map-loc{ display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px; min-width:0; }
.map-bar .crumb{ white-space:normal; color:var(--field-text-2); }
.map-bar > span.map-loc{ white-space:normal; overflow:visible; }
.map-bar > span.live{ flex-shrink:0; overflow:visible; }
.map-bar .crumb s{ text-decoration:none; white-space:nowrap; }
.map-bar .crumb i{ font-style:normal; color:var(--teal-light); margin:0 2px; }
.map-bar{ flex-wrap:wrap; row-gap:6px; }
.map-bar .crumb{ flex-basis:100%; order:3; white-space:normal !important; overflow:visible !important; }
.map-bar .crumb em{ font-style:normal; color:var(--field-text-3); font-size:9.5px; margin-right:3px; }
.map-bar .crumb{ letter-spacing:.02em; font-size:10.5px; } .map-bar .crumb i{ margin:0; } .map-bar .crumb em{ font-size:9px; margin-right:2px; }
.act-combo{ grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); } @media (max-width:900px){ .act-combo{ grid-template-columns:1fr; } .act-combo .act-list{ order:2; } }
main .route h3{ color:var(--field-text) !important; } main .route p, main .route li{ color:var(--field-text-2); } main .route .for, main .route .route-stat span{ color:var(--field-text-3); }

/* ================= Insights articles ================= */
a.article-row{ text-decoration:none; color:inherit; transition:padding .2s ease; }
a.article-row:hover h3{ color:var(--acc-deep); }
a.article-row:hover .status{ color:var(--acc-deep); }
.article-row .row-topic{ display:block; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--acc-deep); margin-bottom:4px; }
.article-wrap{ max-width:760px; }
.article-head{ padding-block:72px 32px; }
.back-link{ display:inline-block; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); text-decoration:none; margin-bottom:24px; }
.back-link:hover{ color:var(--acc-deep); }
main .article-head h1{ font-size:clamp(34px,4.4vw,54px) !important; margin-top:10px; }
.article-meta{ font-family:var(--font-mono); font-size:11.5px !important; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4) !important; margin-top:20px; }
.article-section{ padding-top:16px; }
.article-body{ border-top:1px solid var(--rule-light); padding-top:24px; }
main .article-body h2{ font-size:26px !important; margin:40px 0 12px; }
main .article-body p, main .article-body li{ font-size:17px !important; line-height:1.75; color:var(--ink-2); }
main .article-body p{ margin:0 0 16px; }
.article-body ul{ margin:8px 0 20px; padding-left:20px; display:flex; flex-direction:column; gap:10px; }
.article-body li::marker{ color:var(--acc-deep); }
main .article-body b{ color:var(--ink); }
.article-body blockquote{ margin:32px 0; padding:8px 0 8px 24px; border-left:3px solid var(--acc-deep); font-family:var(--font-display); font-size:clamp(21px,2.2vw,26px); font-weight:600; line-height:1.35; color:var(--ink); }
.pf-box{ margin-top:40px; padding:24px 28px; border-radius:6px; background:var(--field); }
main .pf-box p{ color:var(--field-text-2) !important; margin:10px 0 0 !important; }
main .pf-box .eyebrow{ color:var(--acc) !important; }
.article-cta{ margin-top:48px; padding-top:32px; border-top:1px solid var(--rule-light); }
main .article-cta p{ font-size:19px !important; font-weight:600; color:var(--ink); margin:0 0 16px; }
.more-insights{ margin:56px 0 24px; display:flex; flex-direction:column; }
.more-link{ display:grid; grid-template-columns:1fr auto; gap:4px 16px; padding:16px 0; border-bottom:1px solid var(--rule-light); text-decoration:none; color:var(--ink); font-family:var(--font-display); font-weight:600; font-size:18px; }
.more-link span{ grid-column:1/-1; font-family:var(--font-mono); font-weight:500; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--acc-deep); }
.more-link i{ font-style:normal; color:var(--acc-deep); }
.more-link:hover{ color:var(--acc-deep); }
.more-insights .eyebrow{ margin-bottom:8px; }
.article-head .lede{ margin-top:18px; }
.nav-links a, .mobile-menu a:not(.btn){ font-weight:600 !important; }

/* ---------- Logo with tagline below ---------- */
:root{ --header-h:94px; }
.site-header .logo{ display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; align-items:start; justify-items:center; column-gap:2px; row-gap:3px; }
.site-header .logo-mark{ height:58px; grid-row:1; grid-column:1; }
.site-header .logo .tm{ grid-row:1; grid-column:2; align-self:start; }
.site-header .logo small{ grid-row:2; grid-column:1 / -1; justify-self:start; font-family:var(--font-body); font-weight:700; font-size:10.5px; letter-spacing:.04em; color:var(--acc-deep); text-transform:none; }
@media (max-width:420px){ .site-header .logo small{ display:block; font-size:9.5px; } .site-header .logo-mark{ height:50px; } }
.site-header .logo{ display:flex !important; flex-direction:column; align-items:center; gap:3px; position:relative; }
.site-header .logo .tm{ position:absolute; top:0; left:calc(50% + 31px); }
.site-header .logo small{ justify-self:auto; }
@media (max-width:420px){ .site-header .logo .tm{ left:calc(50% + 27px); } }
.site-header .logo small{ width:max-content; }
.site-header .logo small{ max-width:none; }
.site-header .logo small{ width:auto !important; max-width:68px !important; white-space:normal; text-align:center; font-size:9.5px; line-height:1.15; letter-spacing:.01em; }
.site-header .logo-mark{ height:54px; }
.site-header .logo .tm{ left:calc(50% + 29px); }
@media (max-width:420px){ .site-header .logo small{ font-size:9px; max-width:62px !important; } .site-header .logo-mark{ height:48px; } .site-header .logo .tm{ left:calc(50% + 26px); } }

/* ---------- Clean header logo; tagline lives in footer ---------- */
:root{ --header-h:84px; }
.site-header .logo{ display:flex !important; flex-direction:row; align-items:flex-start; gap:2px; position:static; }
.site-header .logo-mark{ height:64px !important; }
.site-header .logo .tm{ position:static; margin-top:2px; }
@media (max-width:420px){ .site-header .logo-mark{ height:54px !important; } }
.foot-tagline{ margin:16px 0 6px; font-family:var(--font-display); font-weight:700; font-size:18px; letter-spacing:.01em; color:var(--acc) !important; }

/* ---------- People photos: home cards, activation, solutions ---------- */
.route .route-photo{ margin:-40px -36px 4px; aspect-ratio:16/8 !important; border-radius:0;
  -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%); mask-image:linear-gradient(to bottom,#000 55%,transparent 100%); }
.route .route-photo img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:640px){ .route .route-photo{ margin:-32px -24px 4px; } }
.act-photo{ aspect-ratio:4/3 !important; margin:28px 0 0; border-radius:0;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 55%,transparent 100%); mask-image:radial-gradient(ellipse at center,#000 55%,transparent 100%); }
.act-photo img{ width:100%; height:100%; object-fit:cover; }
.obj-legend{ align-items:center; gap:28px !important; }
.obj-legend span{ display:inline-flex; align-items:center; gap:10px; }
.obj-legend span::before{ display:none !important; }
.obj-legend img{ width:40px; height:40px; border-radius:50%; object-fit:cover; border:2px solid; }
.obj-legend .fi img{ border-color:var(--acc-deep); } .obj-legend .ti img{ border-color:var(--ti); }
.route .route-photo{ max-width:none; width:calc(100% + 72px); aspect-ratio:16/9 !important; }
@media (max-width:640px){ .route .route-photo{ width:calc(100% + 48px); } }

/* ---------- Third India traits ---------- */
.trait-head{ margin-top:64px; display:flex; flex-direction:column; gap:10px; }
.trait-head h3{ font-size:clamp(22px,2.4vw,28px); color:var(--ink); }
.trait-grid{ list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:var(--rule-light); border:1px solid var(--rule-light); }
.trait-grid li{ background:var(--paper); padding:26px 18px 28px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.trait-ic{ width:48px; height:48px; border-radius:50%; background:var(--field); display:grid; place-items:center; }
.trait-ic svg{ width:24px; height:24px; fill:none; stroke:var(--ti); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
main .trait-grid h3{ font-size:16px !important; line-height:1.3; margin:4px 0 0; color:var(--ink); }
.trait-grid p{ font-size:13.5px; line-height:1.5; color:var(--ink-3); margin:0; }
.trait-foot{ max-width:none !important; margin-top:22px; padding:18px 22px; background:var(--field); color:var(--field-text-2); border-left:3px solid var(--ti); font-size:15px; }
.trait-foot b{ color:var(--ti); font-weight:600; }
@media (max-width:1100px){ .trait-grid{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:640px){ .trait-grid{ grid-template-columns:repeat(2,1fr); } .trait-grid li{ padding:20px 16px; } }
@media (max-width:1100px){ .trait-grid li:last-child{ grid-column:span 2; } }
/* trait cards with photos */
.trait-grid{ grid-template-columns:repeat(4,1fr) !important; }
.trait-grid li{ padding:0 0 26px !important; gap:8px; }
.trait-grid li > :not(.trait-photo){ margin-left:22px; margin-right:22px; }
.trait-photo{ aspect-ratio:4/3 !important; border-radius:0; margin:0 !important; }
.trait-photo img{ width:100%; height:100%; object-fit:cover; }
.trait-ic{ margin-top:-30px; position:relative; z-index:1; border:3px solid var(--paper); width:52px !important; height:52px !important; }
.trait-grid li.trait-end{ background:var(--field) !important; border-left:3px solid var(--ti); justify-content:center; padding:32px 0 !important; }
.trait-end p{ color:var(--field-text-2); font-size:17px !important; line-height:1.55; }
.trait-end b{ display:block; color:var(--ti); font-family:var(--font-display); font-size:22px; line-height:1.25; margin-bottom:10px; font-weight:600; }
.trait-grid li:last-child{ grid-column:auto !important; }
@media (max-width:1100px){ .trait-grid{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:520px){ .trait-grid{ grid-template-columns:1fr !important; } }

/* ---------- Photo strips: one unified panorama, people evenly spaced ---------- */
.photo-strip{ display:flex !important; gap:0 !important; padding:0 !important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 10%,#000 88%,transparent 100%) !important;
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 10%,#000 88%,transparent 100%) !important;
  mask-composite:intersect; }
.photo-strip .photo, .ground-grid .photo-strip .photo,
.photo-strip .photo:first-child, .photo-strip .photo:last-child{
  flex:1 1 0 !important; min-width:0; border-radius:0 !important; box-shadow:none !important; background:transparent !important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 20%,#000 80%,transparent 100%) !important;
  mask-image:linear-gradient(to right,transparent 0,#000 20%,#000 80%,transparent 100%) !important; }
.photo-strip .photo + .photo{ margin-left:-8% !important; }
.photo-strip .photo img{ filter:sepia(.18) saturate(.9) contrast(1.03) brightness(1.02) !important; }
@media (max-width:720px){
  .photo-strip{ flex-wrap:nowrap !important; }
  .photo-strip .photo{ flex:1 1 0 !important; height:170px !important; }
  .photo-strip .photo + .photo{ margin-left:-10% !important; }
}

/* ---------- How it works: graphic shown full width under the intro ---------- */
.head-stack{ grid-template-columns:1fr !important; gap:40px; }
.head-stack > div{ max-width:780px; }
.head-stack .stack-art{ width:100%; max-width:1120px !important; margin:0 auto; justify-self:center; }

.legal h3{ font-size:17px !important; margin:22px 0 6px; color:var(--ink); }
.partner-photo{ aspect-ratio:4/3 !important; border-radius:0 !important; background:transparent !important;
  -webkit-mask-image:radial-gradient(closest-side,#000 45%,transparent 100%); mask-image:radial-gradient(closest-side,#000 45%,transparent 100%); }
.partner-photo img{ width:100%; height:100%; object-fit:cover; }

/* ---------- FAQ accordion ---------- */
.faq{ margin-top:36px; border-top:1px solid var(--rule-light); max-width:880px; }
.faq details{ border-bottom:1px solid var(--rule-light); }
.faq summary{ list-style:none; cursor:pointer; padding:20px 40px 20px 0; position:relative; font-family:var(--font-display); font-weight:600; font-size:18px; color:var(--ink); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-size:24px; font-weight:400; color:var(--acc-deep); transition:transform .2s; }
.faq details[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.faq details p{ padding:0 0 22px; color:var(--ink-3); font-size:15.5px; max-width:72ch; }
.faq summary:focus-visible{ outline:2px solid var(--acc-deep); outline-offset:2px; }

/* ---------- Agencies: planning calendar ---------- */
.dash-list.cols-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px 40px; max-width:none; }
@media (max-width:720px){ .dash-list.cols-2{ grid-template-columns:1fr; } }
.cal-title{ margin-top:48px; font-size:20px; color:var(--ink); }
.cal-table{ margin-top:16px !important; }
.cal-table table{ min-width:860px; }
.cal-table td:first-child{ white-space:nowrap; }
.cal-sub{ display:block; font-family:var(--font-mono); font-size:11px; font-weight:400; color:var(--ink-4); letter-spacing:.03em; margin-top:4px; white-space:normal; }

/* ---------- Agencies: insights cards ---------- */
.ins-grid{ margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.ins-card{ display:flex; flex-direction:column; gap:12px; padding:26px 24px; border:1px solid var(--rule-dark); border-radius:6px; background:rgba(255,255,255,.03); text-decoration:none; min-height:190px; transition:border-color .2s, background .2s, transform .2s; }
.ins-card:hover{ border-color:var(--acc); background:rgba(76,195,90,.08); transform:translateY(-2px); }
.ins-topic{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ti); }
main .ins-card h3{ font-size:19px !important; line-height:1.3; color:var(--field-text) !important; margin:0; }
.ins-go{ margin-top:auto; font-weight:600; font-size:14.5px; color:var(--acc); }
@media (max-width:900px){ .ins-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .ins-grid{ grid-template-columns:1fr; } .ins-card{ min-height:0; } }

/* ---------- Agencies: Third India consumer moments ---------- */
.cal-ti{ margin-top:36px; }
.moments{ list-style:none; padding:0; margin:16px 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.moments li{ position:relative; padding:24px 22px 24px; border:1px solid var(--rule-light); border-top:3px solid var(--ti); border-radius:6px; background:linear-gradient(180deg,rgba(232,162,58,.07),rgba(232,162,58,0) 60%); display:flex; flex-direction:column; gap:8px; min-width:0; }
.mo-ic{ width:44px; height:44px; border-radius:50%; background:var(--field); display:grid; place-items:center; margin-bottom:6px; }
.mo-ic svg{ width:22px; height:22px; fill:none; stroke:var(--ti); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.mo-when{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ti-deep); }
main .moments h4{ font-size:18px !important; color:var(--ink); margin:0; }
.moments p{ font-size:14.5px; line-height:1.55; color:var(--ink-3); margin:0; }
@media (max-width:900px){ .moments{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .moments{ grid-template-columns:1fr; } }

/* ---------- Planning resources: farmer + Third India pair ---------- */
.page-head-grid > .duo{ display:grid !important; flex-direction:unset; grid-template-columns:1fr 1fr; gap:16px; align-items:start; max-width:540px; width:100%; justify-self:end; }
.duo-item{ margin:0; position:relative; min-width:0; }
.duo-item.ti{ margin-top:48px; }
.duo-photo{ aspect-ratio:3/4 !important; border-radius:6px !important; overflow:hidden; background:transparent !important;
  -webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent 100%); mask-image:linear-gradient(to bottom,#000 70%,transparent 100%); }
.duo-photo img{ width:100%; height:100%; object-fit:cover; }
.duo-item figcaption{ margin-top:-30px; position:relative; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; display:flex; align-items:center; gap:8px; color:var(--field-text-2); }
.duo-item figcaption::before{ content:""; width:8px; height:8px; border-radius:50%; }
.duo-item.fi figcaption::before{ background:var(--acc); }
.duo-item.ti figcaption::before{ background:var(--ti); }
@media (max-width:900px){ .page-head-grid > .duo{ justify-self:start; max-width:460px; margin-top:8px; } .duo-item.ti{ margin-top:32px; } }
.tagline-line{ font-family:var(--font-display); font-weight:600; font-size:clamp(19px,1.8vw,22px); line-height:1.35; color:var(--acc) !important; padding-left:14px; border-left:3px solid var(--acc); margin:0; }

/* ---------- Planning resources: type consistency with the rest of the site ---------- */
main .cal-table td{ font-size:15px; line-height:24px; font-weight:400; color:var(--ink-3); padding:18px 16px; }
main .cal-table td:first-child{ font-family:var(--font-display); font-size:17px; font-weight:600; color:var(--ink); }
main .cal-table th{ font-size:11.5px; }
.cal-sub{ font-family:var(--font-mono); font-size:11.5px; font-weight:400; letter-spacing:.04em; text-transform:uppercase; color:var(--acc-deep); margin-top:6px; }
main .moments h4{ font-family:var(--font-display); font-size:20px !important; line-height:25px; font-weight:600; }
main .moments p{ font-size:15px; line-height:24px; }
.mo-when{ font-weight:500; }
main .cal-title{ font-family:var(--font-display); font-size:20px; font-weight:600; }

/* ---------- Campaign planner ---------- */
.pl-form{ margin-top:36px; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.pl-form label{ display:flex; flex-direction:column; gap:8px; }
.pl-form label > span{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); }
.pl-form select{ appearance:none; -webkit-appearance:none; font:inherit; font-size:15px; color:var(--ink); padding:13px 40px 13px 14px; border:1px solid var(--rule-light); border-radius:6px; background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2300781A' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 14px center; cursor:pointer; }
.pl-form select:focus{ outline:2px solid var(--acc); outline-offset:0; border-color:var(--acc); }
.pl-out{ margin-top:20px; background:var(--paper); border:1px solid var(--rule-light); border-top:3px solid var(--acc); border-radius:6px; padding:28px 28px 30px; }
#planner.is-ti .pl-out{ border-top-color:var(--ti); }
.pl-head{ display:flex; flex-direction:column; gap:8px; }
.pl-tag{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); }
#planner.is-ti .pl-tag{ color:var(--ti-deep); }
main .pl-head h3{ font-family:var(--font-display); font-size:22px; color:var(--ink); margin:0; }
.pl-bar{ list-style:none; padding:0; margin:20px 0 0; display:grid; grid-template-columns:repeat(12,1fr); gap:4px; }
.pl-m{ height:42px; border-radius:4px; background:var(--paper-2); display:grid; place-items:center; position:relative; }
.pl-m span{ font-family:var(--font-mono); font-size:11px; color:var(--ink-4); }
.pl-m.on{ background:rgba(76,195,90,.22); }
.pl-m.on span{ color:var(--ink); font-weight:500; }
.pl-m.key::after{ content:""; position:absolute; bottom:5px; width:6px; height:6px; border-radius:50%; background:var(--acc-deep); }
#planner.is-ti .pl-m.on{ background:rgba(232,162,58,.22); }
#planner.is-ti .pl-m.key::after{ background:var(--ti-deep); }
.pl-grid{ margin-top:26px; display:grid; grid-template-columns:1.5fr 1fr; gap:32px; }
.pl-sec{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); }
.pl-list{ list-style:none; padding:0; margin:12px 0 0; display:flex; flex-direction:column; }
.pl-list li{ display:grid; grid-template-columns:150px 1fr; column-gap:16px; padding:12px 0; border-bottom:1px solid var(--rule-light); }
.pl-list li b{ font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--ink); }
.pl-when{ grid-row:span 2; font-family:var(--font-mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--acc-deep); padding-top:3px; }
#planner.is-ti .pl-when{ color:var(--ti-deep); }
.pl-d{ font-size:15px; line-height:24px; color:var(--ink-3); }
.pl-empty{ display:block !important; color:var(--ink-3); font-size:15px; }
.pl-note{ margin-top:14px; font-size:14px; color:var(--ink-4); }
.pl-meta{ display:flex; flex-direction:column; gap:16px; background:var(--paper-2); border-radius:6px; padding:20px; align-self:start; }
.pl-meta div{ font-size:15px; line-height:23px; color:var(--ink-2); }
.pl-meta span{ display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); margin-bottom:4px; }
.pl-cta{ margin-top:24px; }
@media (max-width:900px){ .pl-form{ grid-template-columns:1fr 1fr; } .pl-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .pl-form{ grid-template-columns:1fr; } .pl-out{ padding:20px 16px; } .pl-bar{ grid-template-columns:repeat(6,1fr); } .pl-list li{ grid-template-columns:1fr; } .pl-when{ grid-row:auto; } }
.pl-form{ grid-template-columns:repeat(4,1fr); }

.pl-form input{ font:inherit; font-size:15px; color:var(--ink); padding:13px 14px; border:1px solid var(--rule-light); border-radius:6px; background:var(--paper); }
.pl-form input:focus{ outline:2px solid var(--acc); outline-offset:0; border-color:var(--acc); }
.pl-form em{ font-style:normal; text-transform:none; letter-spacing:0; color:var(--ink-4); }
.pl-obj{ margin-top:22px; padding:20px; border-radius:6px; background:var(--paper-2); }
.pl-obj-line{ margin:8px 0 0; font-family:var(--font-display); font-weight:600; font-size:18px; line-height:1.4; color:var(--ink); }
.pl-obj-grid{ margin-top:14px; display:grid; grid-template-columns:1fr 1fr; gap:16px; font-size:15px; line-height:23px; color:var(--ink-2); }
.pl-obj-grid span{ display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); margin-bottom:4px; }
.pl-fit{ margin:14px 0 0; padding-left:12px; border-left:3px solid var(--ti); font-size:15px; color:var(--ink-2); }
.pl-fit.ok{ border-left-color:var(--acc); }
@media (max-width:900px){ .pl-form .pl-wide{ grid-column:span 2; } }
@media (max-width:560px){ .pl-form .pl-wide{ grid-column:auto; } .pl-obj-grid{ grid-template-columns:1fr; } }
.pl-form label{ min-width:0; }
.pl-form select,.pl-form input{ width:100%; min-width:0; max-width:100%; text-overflow:ellipsis; }
.pl-form{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; align-items:end; }
@media (max-width:900px){ .pl-form{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:560px){ .pl-form{ grid-template-columns:minmax(0,1fr) !important; } }

/* ---------- Solutions: audience switch ---------- */
.aud-switch{ display:inline-flex; gap:6px; margin-top:28px; padding:6px; border:1px solid var(--rule-light); border-radius:999px; background:var(--paper); flex-wrap:wrap; }
.aud-switch button{ display:inline-flex; align-items:center; gap:10px; padding:6px 18px 6px 6px; border:0; border-radius:999px; background:transparent; cursor:pointer; font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); transition:background .2s,color .2s; }
.aud-switch button img{ width:34px; height:34px; border-radius:50%; object-fit:cover; border:2px solid; }
.aud-switch .fi img{ border-color:var(--acc-deep); } .aud-switch .ti img{ border-color:var(--ti); }
.aud-switch .both{ padding-left:12px; }
.both-dots{ display:inline-flex; } .both-dots i{ width:12px; height:12px; border-radius:50%; display:block; } .both-dots i:first-child{ background:var(--acc-deep); } .both-dots i:last-child{ background:var(--ti); margin-left:-4px; }
.aud-switch button:hover{ background:var(--paper-2); color:var(--ink); }
.aud-switch button[aria-pressed="true"]{ background:var(--field); color:var(--field-text); }
.aud-switch button.fi[aria-pressed="true"]{ color:var(--acc); } .aud-switch button.ti[aria-pressed="true"]{ color:var(--ti); }
.aud-switch button:focus-visible{ outline:2px solid var(--acc); outline-offset:2px; }
.obj-more{ display:none; margin:6px 0 0; padding-top:12px; border-top:1px solid var(--rule-light); }
.obj-more div{ margin-bottom:8px; } .obj-more dt{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-4); } .obj-more dd{ margin:2px 0 0; font-size:14.5px; line-height:1.5; color:var(--ink-2); }
.obj-grid[data-aud="fi"] .obj-line.ti, .obj-grid[data-aud="ti"] .obj-line.fi{ display:none; }
.obj-grid[data-aud="fi"] .obj-more, .obj-grid[data-aud="ti"] .obj-more{ display:block; }
.obj-grid[data-aud="fi"] .obj-line, .obj-grid[data-aud="ti"] .obj-line{ font-size:16px; line-height:1.5; }
.obj-grid[data-aud="fi"] .obj{ border-top-color:var(--acc-deep); } .obj-grid[data-aud="ti"] .obj{ border-top-color:var(--ti); }
@media (max-width:560px){ .aud-switch{ border-radius:14px; } .aud-switch button{ padding-right:12px; } }
.obj-grid[data-aud="fi"] .obj, .obj-grid[data-aud="ti"] .obj{ border-top-width:3px; }

/* ---------- Activation: photo fused into the background ---------- */
.fuse{ position:relative; overflow:hidden; padding:0 !important; min-height:600px; display:flex; align-items:center; }
.fuse .fuse-photo{ position:absolute !important; left:0; top:0; bottom:0; width:64%; height:100%; aspect-ratio:auto !important; margin:0; border-radius:0 !important; background:transparent !important;
  -webkit-mask-image:linear-gradient(to right,#000 0%,#000 48%,transparent 96%),linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,#000 0%,#000 48%,transparent 96%),linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);
  mask-composite:intersect; }
.fuse .fuse-photo img{ width:100%; height:100%; object-fit:cover; object-position:40% 45%; }
.fuse-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; width:100%; padding-block:96px; }
.fuse-text{ grid-column:2; display:flex; flex-direction:column; gap:18px; padding:36px 0 36px 40px; }
.fuse-text h2{ margin:0; }
.fuse-text .formula{ margin:6px 0 0; background:rgba(242,245,240,.88); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.fuse-text .muted{ margin:0; }
@media (max-width:900px){
  .fuse{ display:block; min-height:0; }
  .fuse .fuse-photo{ position:relative !important; width:100%; height:auto; aspect-ratio:4/3 !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 65%,transparent 100%); mask-image:linear-gradient(to bottom,#000 65%,transparent 100%); }
  .fuse-grid{ grid-template-columns:1fr; padding-block:0 64px; margin-top:-24px; }
  .fuse-text{ grid-column:1; padding:0; }
}
.pl-form .pl-hide{ display:none; }
.pl-form.pl-locked .pl-dist-l{ grid-column:span 2; }
@media (max-width:560px){ .pl-form.pl-locked .pl-dist-l{ grid-column:auto; } }

/* Solutions: ask the visitor to choose an audience first */
.aud-ask{ margin:28px 0 0; font-family:var(--font-display, inherit); font-size:20px; line-height:1.4; color:var(--ink); }
.aud-ask span{ display:block; font-size:15px; color:var(--ink-3); margin-top:2px; }
.aud-ask + .aud-switch{ margin-top:14px; }
.obj-grid[data-aud="none"]{ display:none; }
.aud-switch:has(+ .obj-grid[data-aud="none"]){ animation:audpulse 2.4s ease-in-out infinite; }
@keyframes audpulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(76,175,80,0); } 50%{ box-shadow:0 0 0 6px rgba(76,175,80,.18); } }
@media (prefers-reduced-motion:reduce){ .aud-switch{ animation:none !important; } }
.obj-grid[data-aud="none"] ~ .obj-measure{ display:none; }

/* Channel row under the stat strips */
.chan-row{ list-style:none; margin:0; padding:16px 0 4px; display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; border-top:1px solid rgba(255,255,255,.08); }
.chan-row li{ font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--field-text); padding:6px 12px; border:1px solid rgba(255,255,255,.16); border-radius:999px; }
.chan-row li.chan-k{ border:0; padding-left:0; color:var(--acc); }
.ti-page .chan-row li.chan-k{ color:var(--ti); }

.pl-obj-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:760px){ .pl-obj-grid{ grid-template-columns:1fr; } }

/* Solutions: eight objectives in a 4-column grid */
.obj-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1100px){ .obj-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .obj-grid{ grid-template-columns:1fr; } }

/* Insights cards on a light background (Planning resources) */
.paper-2 .ins-card{ border-color:var(--rule-light); background:var(--paper); }
.paper-2 .ins-card:hover{ border-color:var(--acc-deep); background:var(--paper); }
main .paper-2 .ins-card h3{ color:var(--ink) !important; }
.paper-2 .ins-topic{ color:var(--ti-deep); }
.paper-2 .ins-go{ color:var(--acc-deep); }

/* Calendar teaser on product pages (full calendar lives on Planning resources) */
.cal-chips{ list-style:none; margin:28px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.cal-chips li{ font-family:var(--font-mono); font-size:13px; letter-spacing:.04em; color:var(--ink-2); padding:8px 14px; border:1px solid var(--rule-light); border-radius:999px; background:var(--paper); }
.ti-page .cal-chips li{ border-color:color-mix(in srgb, var(--ti) 45%, var(--rule-light)); }
.cal-teaser .btn-row{ margin-top:28px; }

/* Compact planner: basic fields first, details on expand */
.pl-form.pl-basic.pl-locked{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.pl-form.pl-extra{ margin-top:16px; }
.pl-toggle-row{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-top:20px; }
.pl-toggle-note{ font-size:15px; color:var(--ink-3); }
.pl-detail[hidden]{ display:none !important; }
.pl-detail .pl-out{ margin-top:24px; }
@media (max-width:900px){ .pl-form.pl-basic.pl-locked{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:560px){ .pl-form.pl-basic.pl-locked{ grid-template-columns:1fr !important; } }

/* Folded sections: glimpse + expand */
.fold-body{ min-width:0; }
.is-folded .fold-body{ max-height:260px; overflow:hidden; -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent); mask-image:linear-gradient(to bottom,#000 55%,transparent); }
.fold-row{ margin-top:20px; }
.two-col > .fold-row{ grid-column:1 / -1; }
@media (max-width:560px){ .is-folded .fold-body{ max-height:340px; } }
@media print{ .is-folded .fold-body{ max-height:none; -webkit-mask-image:none; mask-image:none; } .fold-row{ display:none; } }

/* Solutions objectives: compact cards, details on demand */
.obj-grid .obj-more{ display:block !important; margin-top:14px; border-top:1px solid var(--rule-light); padding-top:10px; }
.obj-grid .obj-more summary{ cursor:pointer; list-style:none; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); }
.obj-grid .obj-more summary::-webkit-details-marker{ display:none; }
.obj-grid .obj-more summary::after{ content:" +"; }
.obj-grid .obj-more[open] summary::after{ content:" −"; }
.obj-grid .obj-more dl{ margin:10px 0 0; }
.obj-grid .obj-more dt{ font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); margin-top:8px; }
.obj-grid .obj-more dd{ margin:2px 0 0; font-size:14.5px; line-height:1.45; color:var(--ink-2); }
.obj-grid[data-aud="both"] .obj-more{ display:none !important; }

/* Built on trust band (How it works) */
.trust-band{ padding-block:56px !important; }
.trust-list{ list-style:none; margin:20px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.trust-list li{ border-left:2px solid var(--acc); padding-left:18px; }
main .trust-list h3{ font-size:19px !important; line-height:1.3; color:var(--field-text) !important; margin:0 0 6px; }
.trust-list p{ margin:0; font-size:15.5px; line-height:1.5; color:var(--field-text); opacity:.8; }
@media (max-width:860px){ .trust-list{ grid-template-columns:1fr; gap:20px; } }

/* Home: marketer roles, split by market */
.mk-tabs .aud-switch{ margin-top:28px; }
.mk-tabs .aud-switch button[aria-selected="true"]{ background:var(--field); color:var(--field-text); }
.mk-tabs .aud-switch button.fi[aria-selected="true"]{ color:var(--acc); } .mk-tabs .aud-switch button.ti[aria-selected="true"]{ color:var(--ti); }
.mk-panel{ margin-top:24px; }
.mk-panel[hidden]{ display:none; }
.mk-cats{ font-family:var(--font-mono); font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-3); margin:0 0 18px; }
.role-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.role{ background:var(--paper); border:1px solid var(--rule-light); border-top:3px solid var(--acc-deep); border-radius:6px; padding:22px 20px; display:flex; flex-direction:column; gap:10px; }
.mk-ti .role{ border-top-color:var(--ti); }
.role-who{ font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); font-weight:600; }
.mk-ti .role-who{ color:var(--ti-deep); }
.role-pain{ margin:0; font-size:15px; line-height:1.5; color:var(--ink-3); font-style:italic; }
.role-gain{ margin:0; font-size:16px; line-height:1.5; color:var(--ink); font-weight:500; }
.mk-panel .btn-row{ margin-top:24px; }
.mk-agency{ margin:24px 0 0; font-size:15px; color:var(--ink-3); }
.mk-agency a{ color:var(--acc-deep); font-weight:600; }
@media (max-width:1000px){ .role-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .role-grid{ grid-template-columns:1fr; } }

/* Solutions: industry playbooks */
.pb-group{ margin-top:36px; }
.pb-title{ margin:0 0 14px; font-family:var(--font-mono); font-size:13px !important; letter-spacing:.08em; text-transform:uppercase; }
.pb-fi .pb-title{ color:var(--acc-deep) !important; } .pb-ti .pb-title{ color:var(--ti-deep) !important; }
.pb-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; align-items:start; }
.pb-fi .pb-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.pb{ background:var(--paper); border:1px solid var(--rule-light); border-top:3px solid var(--acc-deep); border-radius:6px; }
.pb-ti .pb{ border-top-color:var(--ti); }
.pb summary{ list-style:none; cursor:pointer; padding:20px; display:flex; flex-direction:column; gap:6px; }
.pb summary::-webkit-details-marker{ display:none; }
main .pb summary h3{ margin:0; font-size:19px !important; }
.pb-cat{ font-size:14px; line-height:1.45; color:var(--ink-3); }
.pb-open{ margin-top:6px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); }
.pb-ti .pb-open{ color:var(--ti-deep); }
.pb-open::after{ content:" +"; } .pb[open] .pb-open::after{ content:" −"; }
.pb dl{ margin:0; padding:0 20px 20px; border-top:1px solid var(--rule-light); }
.pb dt{ margin-top:14px; font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-4); }
.pb dd{ margin:3px 0 0; font-size:15px; line-height:1.5; color:var(--ink-2); }
@media (max-width:1000px){ .pb-grid, .pb-fi .pb-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .pb-grid, .pb-fi .pb-grid{ grid-template-columns:1fr; } }

.role-lbl{ display:block; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-4); margin-bottom:4px; }
.role-kpi p{ margin:0; font-size:15.5px; line-height:1.45; color:var(--ink-2); }
.role-kpi em{ font-style:italic; }
.role-usp{ margin-top:4px; padding-top:12px; border-top:1px solid var(--rule-light); }
.role-usp p{ margin:0; font-size:15.5px; line-height:1.5; color:var(--ink); font-weight:500; }

.role-for{ display:block; margin-top:-4px; font-size:13.5px; line-height:1.4; color:var(--ink-3); }

/* Planner detail row: campaign type + 3 fields, districts full width */
.pl-form.pl-extra .pl-dist-full{ grid-column:1 / -1; }
/* Solutions: six objectives, three across */
.obj-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1000px){ .obj-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .obj-grid{ grid-template-columns:1fr; } }

/* The question each objective answers */
.obj-q{ margin:-4px 0 12px; font-style:italic; font-size:15.5px; line-height:1.4; color:var(--ink-3); }
.pl-q{ margin:4px 0 6px; font-style:italic; font-size:15px; color:var(--ink-3); }

/* Planner: crop type step for farmers */
.pl-grp-l[hidden]{ display:none !important; }
#planner.has-grp .pl-form.pl-basic:not(.pl-locked){ grid-template-columns:repeat(5,minmax(0,1fr)) !important; }
#planner.has-grp .pl-form.pl-basic.pl-locked{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; }
@media (max-width:900px){ #planner.has-grp .pl-form.pl-basic:not(.pl-locked), #planner.has-grp .pl-form.pl-basic.pl-locked{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:560px){ #planner.has-grp .pl-form.pl-basic:not(.pl-locked), #planner.has-grp .pl-form.pl-basic.pl-locked{ grid-template-columns:1fr !important; } }

/* Approach layer: consumer outreach vs trade marketing */
.appr-switch{ display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; margin-top:28px; }
.appr-l, .pl-appr-l{ align-self:center; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-4); margin-right:6px; }
.appr-switch button{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:12px 18px; border:1px solid var(--rule-light); border-radius:8px; background:var(--paper); cursor:pointer; text-align:left; font:inherit; color:var(--ink); }
.appr-switch button b{ font-size:16px; } .appr-switch button span{ font-size:13.5px; color:var(--ink-3); }
.appr-switch button[aria-pressed="true"]{ background:var(--field); border-color:var(--field); color:var(--field-text); }
.appr-switch button[aria-pressed="true"] span{ color:var(--field-text); opacity:.75; }
.appr-switch button:focus-visible, .pl-appr button:focus-visible{ outline:2px solid var(--acc); outline-offset:2px; }
.obj-grid[data-appr="consumer"] .obj[data-appr="trade"], .obj-grid[data-appr="trade"] .obj[data-appr="consumer"]{ display:none; }
.pl-appr{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:28px; }
.pl-appr button{ padding:9px 16px; border:1px solid var(--rule-light); border-radius:999px; background:var(--paper); cursor:pointer; font:inherit; font-size:14.5px; color:var(--ink-2); }
.pl-appr button[aria-pressed="true"]{ background:var(--field); border-color:var(--field); color:var(--field-text); }
.pl-appr + .pl-form{ margin-top:18px; }
.role-link{ margin-top:auto; padding-top:10px; font-size:14px; font-weight:600; color:var(--acc-deep); }
.mk-ti .role-link{ color:var(--ti-deep); }

.obj-sum{ margin:-2px 0 6px; font-size:16px; line-height:1.45; color:var(--ink); font-weight:500; }
.obj-sum + .obj-q{ margin-top:0; }
.pl-sum{ margin:4px 0 2px; font-size:15.5px; font-weight:500; color:var(--ink); }
.aud-ask .aud-q{ display:inline; font-size:inherit; color:inherit; margin:0; }

/* Campaign planner page: steps */
.cp-steps{ list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.cp-steps li{ border-top:1px solid rgba(255,255,255,.18); padding-top:14px; display:flex; flex-direction:column; gap:6px; }
.cp-steps b{ font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; color:var(--acc); }
.cp-steps span{ color:var(--field-text); font-size:15.5px; line-height:1.45; }
@media (max-width:860px){ .cp-steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cp-steps{ grid-template-columns:1fr; } }
#planner .pl-toggle-row:has(.pl-toggle[aria-expanded="true"]){ }

/* Nav with Campaign Planner tab: keep on one line */
.nav-links{ gap:18px; font-size:14px; }
.nav-links a{ white-space:nowrap; }
@media (max-width:1240px){
  .navbar .nav-links,.navbar .nav-cta{ display:none; }
  .menu-toggle{ display:inline-flex; }
}
/* Campaign Planner page: hero already carries the heading */
.cp-page #planner .section-head{ display:none; }
.cp-page #planner .pl-appr{ margin-top:0; }

/* Planner: multi-select states */
.pl-ms-l{ display:flex; flex-direction:column; gap:8px; min-width:0; position:relative; }
.pl-ms-t{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--acc-deep); }
.pl-ms{ position:relative; }
.pl-ms summary{ list-style:none; cursor:pointer; font-size:15px; color:var(--ink); padding:13px 40px 13px 14px; border:1px solid var(--rule-light); border-radius:6px; background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2300781A' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 14px center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-ms summary::-webkit-details-marker{ display:none; }
.pl-ms[open] summary{ border-color:var(--acc); }
.pl-ms-list{ position:absolute; z-index:20; left:0; right:0; top:calc(100% + 4px); max-height:300px; overflow:auto; background:var(--paper); border:1px solid var(--rule-light); border-radius:6px; box-shadow:0 10px 30px rgba(0,0,0,.12); padding:6px; min-width:240px; }
.pl-ms-opt{ display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:4px; font-size:14.5px; color:var(--ink); cursor:pointer; flex-direction:row !important; }
.pl-ms-opt:hover{ background:var(--paper-2); }
.pl-ms-opt input{ accent-color:var(--acc-deep); width:16px; height:16px; }
.pl-ms-all{ font-weight:600; border-bottom:1px solid var(--rule-light); border-radius:0; margin-bottom:4px; }

/* Planner: campaign name + districts share a row */
.pl-form.pl-extra .pl-half{ grid-column:span 2; }
@media (max-width:900px){ .pl-form.pl-extra .pl-half{ grid-column:1 / -1; } }

/* Planner: additional information */
.pl-form.pl-extra .pl-notes{ grid-column:1 / -1; }
.pl-notes textarea{ font:inherit; font-size:15px; color:var(--ink); padding:12px 14px; border:1px solid var(--rule-light); border-radius:6px; background:var(--paper); resize:vertical; min-height:84px; width:100%; }
.pl-notes textarea:focus{ outline:2px solid var(--acc); outline-offset:0; border-color:var(--acc); }

.pl-obj-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:760px){ .pl-obj-grid{ grid-template-columns:1fr; } }

/* Consistent card titles across the site */
main .cell-grid h4, main .model-step h4{ font-family:var(--font-display); font-size:19px; line-height:1.3; font-weight:600; }
.navbar .logo, .navbar .nav-cta{ flex-shrink:0; }
@media (max-width:1300px){ .navbar .nav-links,.navbar .nav-cta{ display:none; } .menu-toggle{ display:inline-flex; } }
@media (min-width:1241px){ .navbar .nav-links{ display:flex; } .navbar .nav-cta{ display:inline-flex; } .menu-toggle{ display:none; } }
.nav-cta[href="campaign-planner.html"]{ }
