/* Site typefaces (Google Fonts, SIL Open Font License 1.1; licences in
   assets/fonts/*-OFL.txt). Self-hosted variable fonts, Latin and Latin
   Extended. Both carry the rupee sign.

   Bricolage Grotesque: headlines, statements, names and figures. A warm,
   lively grotesque with an optical-size axis: open and confident at hero
   size, plain and steady at card size.
   Figtree: body text, labels, buttons, navigation, forms and the footer.
   A friendly geometric sans with generous spacing that stays easy to read
   at 14 to 18px.

   Bricolage has no italic. Emphasis inside a headline is colour and weight,
   never a slanted fake: font-synthesis is off for the display face.

   Loaded LAST on every page. Every other stylesheet sets type through the
   same four variables (--face-display, --face-text, --serif, --sans), so
   redefining them here moves the whole site. */

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("../fonts/bricolage-grotesque-var-latin-ext.woff2") format("woff2");
  font-weight: 200 800;
  font-stretch: 75% 100%;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Bricolage Grotesque";
  src: url("../fonts/bricolage-grotesque-var-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-stretch: 75% 100%;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Figtree";
  src: url("../fonts/figtree-var-latin-ext.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Figtree";
  src: url("../fonts/figtree-var-latin.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Figtree";
  src: url("../fonts/figtree-var-italic-latin-ext.woff2") format("woff2");
  font-weight: 300 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Figtree";
  src: url("../fonts/figtree-var-italic-latin.woff2") format("woff2");
  font-weight: 300 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --face-bricolage: "Bricolage Grotesque", "Figtree", "Helvetica Neue", Arial, sans-serif;
  --face-figtree: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --face-display: var(--face-bricolage);
  --face-text: var(--face-figtree);
  --serif: var(--face-bricolage);
  --sans: var(--face-figtree);
  --display-stretch: 100%;
  --display-weight: 600;
}

html {
  font-stretch: 100%;
  font-feature-settings: "kern" 1;
  font-variant-numeric: lining-nums;
  font-optical-sizing: auto;
}
body { font-family: var(--face-figtree); font-weight: 400; letter-spacing: 0; }
p, li, dd, .lede { line-height: 1.6; }
h1, h2, h3, p, li { text-wrap: pretty; }
h1, h2, .display { text-wrap: balance; }

/* Headlines: Bricolage at a firm weight, tight but open. */
h1, h2, h3, .display, .frame__title, .about-title, .th-head__title, .th-hero__title, .group__title,
.sheet__name, .company__name, .person__name, .pf-sector__title, .fb__nav a, .faq__q,
.explorer__name, .explorer__title, .how__title, .platform__item h3, .assemble__block h3,
.matrix__cell h3, .feature__body h3, .timeline__title, .stage__name, .pin__title, .half__kicker {
  font-family: var(--face-bricolage);
  font-weight: 600;
  font-stretch: 100%;
  letter-spacing: -0.02em;
  font-synthesis: none;
}
h1, .frame__title, .about-title, .th-head__title, .th-hero__title { font-weight: 600; letter-spacing: -0.026em; line-height: 1.02; }
h2 { letter-spacing: -0.028em; line-height: 1.05; }

/* Statements and names: Bricolage at a lighter weight carries the voice. */
.thesis__lead, .th-statement__text, .about-mission__text, .mission, .intro__lede,
.strip__title, .pf-head__line, .pf-quote__text, .face__name, .pf-row__name, .pf-az__name,
.sheet__lede, .explorer__for, .shift__name {
  font-family: var(--face-bricolage);
  font-weight: 450;
  font-stretch: 100%;
  letter-spacing: -0.018em;
  font-synthesis: none;
}

/* Figures: Bricolage's lining numerals. */
.stat__value, .group__big, .group__fact-value, .group-home__value, .proof__figure,
.timeline__year, .how__num, .sheet__index, .pf-sector__num {
  font-family: var(--face-bricolage);
  font-weight: 600;
  letter-spacing: -0.02em;
  font-variant-numeric: lining-nums tabular-nums;
}

/* Emphasis inside headlines: upright, in the accent colour set elsewhere. */
h1 em, h2 em, h3 em, .display em, .frame__title em, .about-title em, .th-head__title em,
.th-hero__title em, .group__title em, .thesis__lead em, .th-statement__text em, .home-h2 em, .pf-quote__text em {
  font-family: var(--face-bricolage);
  font-style: normal;
  font-weight: inherit;
}

/* Small labels, buttons and navigation: Figtree, tracked capitals. */
.eyebrow, .nav a, .nav__cta, .button, .link-arrow, .badge, .filter, .fb__label, .frame__kicker,
.frame__corners, .sheet__status, .explorer__num, .rail, .hero__meta, .stat__label,
.sheet__visit, .company__visit, .fb__social, .menu-toggle, .explorer__kicker,
.explorer__for span, .dl__row dt, .sheet__facts dt, .face__role, .timeline__btn, .pf-tab,
.pf-fund, .pf-row__label, .pf-row__site, .strip__tag, .matrix__tag, .proof__layer, .alt__tag,
.assemble__n, .pin__num, .pin__count, .protect__n, .protect__go, .protect__name, .half__draw,
.credits summary, .group-home__label, .proof__name, .alt__name, .stage__tag, .ct-form__hint,
.th-hero__kicker, .th-hero__cue {
  font-family: var(--face-figtree);
  font-stretch: 100%;
}
.eyebrow, .nav a, .button, .link-arrow, .frame__kicker, .sheet__status, .fb__label, .pf-tab { font-weight: 600; letter-spacing: 0.08em; }

/* Form labels and legends read as labels: the text face, like the eyebrows. */
.form .field label, .form legend, .ct-form__hint, .field label { font-family: var(--face-figtree); font-weight: 600; }

/* Footer and its bottom bars: the text face, with the nav links in Bricolage. */
.site-footer, .site-footer * { font-family: var(--face-figtree); }
.site-footer .fb__nav a, .site-footer .fb__pitch-title, .site-footer .fb__pitch-kicker, .site-footer .protect__name { font-family: var(--face-bricolage); font-synthesis: none; }
.footer__reg, .footer__bottom { letter-spacing: 0.02em; }

/* Portfolio sizes were tuned on a narrower face; Bricolage sets wider, so the
   names come down a touch and the sector heads keep their modest scale. */
.pf-row__name { font-size: clamp(1.2rem, 1rem + 0.5vw, 1.5rem); }
.pf-sector__title { font-size: clamp(1.2rem, 1rem + 0.5vw, 1.45rem); }

/* Footer pitch card: Bricolage sets wider, so the title steps down a size and
   keeps its arrow on the same line. */
.site-footer .fb__pitch-title { font-size: clamp(1.6rem, 1rem + 1.2vw, 2.3rem); font-weight: 600; letter-spacing: -0.02em; white-space: nowrap; }
.sheet__name { font-size: clamp(2.8rem, 1.8rem + 3.2vw, 5rem); letter-spacing: -0.03em; }
