/* Teneo.ai site styles. Brand colours are the variables below. */
/* Roboto Variable (wght 100-900), self-hosted from Google Fonts. Latin + Latin Extended. */
@font-face{font-family:'Roboto Variable';font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/fonts/roboto-var-latin-ext-italic.woff2) format('woff2');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:'Roboto Variable';font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/fonts/roboto-var-latin-italic.woff2) format('woff2');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:'Roboto Variable';font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/roboto-var-latin-ext-normal.woff2) format('woff2');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:'Roboto Variable';font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/roboto-var-latin-normal.woff2) format('woff2');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{
  --purple:#2f286e;   /* main brand colour */
  --purple-2:#3b309d; /* gradient end */
  --dark:#323e48;     /* body text */
  --light:#ecedf6;    /* light section background */
  --yellow:#fec800;   /* accent / main buttons */
  --font:'Roboto Variable',Roboto,system-ui,-apple-system,'Segoe UI',sans-serif; /* Roboto Variable is the only brand typeface */
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);color:var(--dark);line-height:1.6}
img{max-width:100%;height:auto}
button,input,select,textarea{font-family:inherit}
a{color:var(--purple)}
.w{max-width:1160px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{color:var(--purple);line-height:1.15}
h2{font-size:2.4rem}

/* Header */
.site-header{background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10}
.site-header .w{display:flex;align-items:center;gap:28px;min-height:72px;flex-wrap:wrap}
.site-header .logo img{height:30px;display:block}
.site-header nav{display:flex;gap:24px;flex:1;flex-wrap:wrap}
.site-header nav a{color:var(--dark);text-decoration:none;font-weight:500}
.site-header nav a:hover{color:var(--purple)}

/* Buttons */
.btn{display:inline-block;padding:12px 24px;border-radius:999px;background:var(--purple);color:#fff;font-weight:600;text-decoration:none}
.btn-yellow{background:var(--yellow);color:#111}
.btn-outline{background:transparent;border:2px solid #fff;color:#fff}

/* Hero: brand purple faded toward white (not a solid dark band) */
.hero{background:linear-gradient(180deg,color-mix(in srgb,var(--purple) 40%,#fff),color-mix(in srgb,var(--purple-2) 14%,#fff) 58%,#fff);color:var(--dark);padding:96px 0}
.hero h1,.hero h2,.hero h3,.hero .strap{color:var(--purple)}
.hero .btn-outline{border-color:var(--purple);color:var(--purple)}
.hero img{box-shadow:0 10px 28px rgba(47,40,110,.14)}
.hero h1{font-size:4rem;margin:16px 0}
.hero h1 span{display:block;font-weight:300}
.hero .h1-sm{font-size:2.8rem}
.hero .lead{max-width:700px}
.strap{color:var(--yellow);letter-spacing:.12em;font-weight:700;font-size:.9rem;text-transform:uppercase}
.lead{font-size:1.2rem}
.actions .btn{margin-right:12px}

/* Sections */
section{padding:72px 0}
.block:nth-of-type(even){background:var(--light)}
.logos{background:var(--light);padding:36px 0}
.logos .w{display:flex;flex-wrap:wrap;justify-content:space-around;align-items:center;gap:24px}
.logos img{height:72px;width:auto;filter:grayscale(1);opacity:.8}
.split .w,.split-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.tag{display:inline-block;background:var(--yellow);color:#111;padding:3px 12px;border-radius:4px;font-size:.8rem;font-weight:700;margin:0 0 8px}
.cta{background:var(--light)}
.form-box{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 24px rgba(47,40,110,.08)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin:24px 0}
.cell{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px}
.cell img{border-radius:8px}
.kpis .cell h4,.kpis .cell h3{font-size:2rem;margin:0}
.left-side,.right-side{display:inline-block;vertical-align:top;width:48%;background:#fff;border-radius:12px;padding:20px;margin-right:2%}
.quote{margin:0;padding:24px;border-left:4px solid var(--yellow);background:#fff;border-radius:8px}
.quote img{width:80px;border-radius:50%;float:right}
.quote blockquote{margin:0 0 12px;font-size:1.15rem;font-style:italic}
.video{position:relative;padding-top:56.25%}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.box-cta{background:var(--purple)!important;color:#fff}.box-cta h2,.box-cta h3,.box-cta h4{color:#fff}.box-cta .btn{background:var(--yellow);color:#111}
.crumbs{padding-top:16px;font-size:.9rem}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px;text-decoration:none;color:var(--dark)}
.card img{border-radius:10px;aspect-ratio:16/10;object-fit:cover;width:100%}
.card h3{font-size:1.15rem}
.news .mfn-feed{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.news .mfn-feed li{background:var(--light);border-radius:12px;padding:20px}
.news .mfn-feed small{display:block;color:#6b7280;margin-top:8px}

/* Footer */
.site-footer{background:#111827;color:#9ca3af;padding:48px 0}
.site-footer .w{display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.site-footer nav{display:flex;gap:24px;flex:1;flex-wrap:wrap}
.site-footer a{color:#e5e7eb;text-decoration:none}

/* Mobile */
@media (max-width:800px){
  .hero h1{font-size:2.6rem}
  .split .w,.split-inner,.cards,.news .mfn-feed{grid-template-columns:1fr}
  .left-side,.right-side{width:100%;margin:0 0 16px}
}
.form-box img{max-height:360px;width:auto;display:block;margin:0 auto 16px}
.cell img{max-height:260px;object-fit:cover;width:100%}

/* Migrated pages: blog posts, glossary, tables, lists */
.narrow{max-width:820px}
.post{padding:48px 0}
.post h1{font-size:2.4rem}
.post .meta{color:#6b7280}
.post img{border-radius:8px;margin:16px 0}
.post .featured{width:100%}
.post iframe,.block iframe{width:100%;aspect-ratio:16/9;border:0}
.meetings iframe{aspect-ratio:auto;height:720px}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;margin:16px 0}
th,td{border:1px solid #e5e7eb;padding:10px;text-align:left;vertical-align:top}
.post-list{list-style:none;padding:0}.post-list li{padding:8px 0;border-bottom:1px solid #e5e7eb}
.post-list small{color:#6b7280;margin-left:8px}
.mfn-list{display:block!important}
.mfn-list li{margin-bottom:12px}
.glossary-index{columns:3;list-style:none;padding:0}
.glossary-index li{padding:4px 0;break-inside:avoid}
@media (max-width:800px){.glossary-index{columns:1}}
/* Compliance badges in header */
.badges-top,.badges-top:hover{display:flex;gap:8px;align-items:center;text-decoration:none!important;outline-offset:4px;line-height:0;font-size:0}
.badges-top img{height:40px;width:auto;display:block}
.site-header nav a{white-space:nowrap}
/* Mobile menu button (hidden on desktop) */
.nav-toggle{display:none;background:none;border:0;padding:8px;margin:0;cursor:pointer;color:var(--purple);line-height:0;border-radius:8px}
.nav-toggle:focus-visible{outline:2px solid var(--purple)}
.nav-toggle .bars,.nav-toggle .bars::before,.nav-toggle .bars::after{display:block;width:24px;height:2px;background:currentColor;border-radius:2px;position:relative;transition:transform .2s}
.nav-toggle .bars::before,.nav-toggle .bars::after{content:"";position:absolute;left:0}
.nav-toggle .bars::before{top:-7px}.nav-toggle .bars::after{top:7px}
.nav-open .nav-toggle .bars{background:transparent}
.nav-open .nav-toggle .bars::before{transform:translateY(7px) rotate(45deg)}
.nav-open .nav-toggle .bars::after{transform:translateY(-7px) rotate(-45deg)}
@media (min-width:1025px){.site-header .w{flex-wrap:nowrap}.site-header nav{flex-wrap:nowrap;min-width:0}}
/* Phone and tablet: logo left; badges, Contact and the menu button right; links open in a panel below */
@media (max-width:1024px){
  .site-header .w{flex-wrap:wrap;gap:12px;min-height:64px}
  .site-header .logo{margin-right:auto}
  .nav-toggle{display:block;order:4}
  .badges-top{order:2;gap:6px}.badges-top img{height:30px}
  .site-header .btn{order:3;padding:9px 18px}
  .site-header nav{order:5;flex:0 0 100%;display:none;flex-direction:column;gap:0;padding:4px 0 12px;border-top:1px solid #e5e7eb}
  .site-header.nav-open nav{display:flex}
  .site-header nav a{padding:12px 4px;font-size:1.05rem;border-bottom:1px solid #f1f2f6;white-space:normal}
  .site-header.nav-open{max-height:100vh;overflow-y:auto}
}
@media (max-width:480px){.site-header .w{gap:8px}.badges-top{gap:3px}.badges-top img{height:22px}.site-header .logo img{height:24px}.site-header .btn{padding:8px 14px;font-size:.9rem}}
@media (max-width:1180px) and (min-width:1025px){.badges-top{gap:5px}.badges-top img{height:30px}.site-header nav{gap:14px}.site-header .w{gap:14px}.site-header nav a{font-size:.95rem}}
/* HubSpot forms inside a form box.
   Legacy forms inject `.hs-form-<id> .hs-form-field label { color:#fff }` and a magenta (#ED078D) button.
   !important keeps label text #323e48 and contact Submit brand purple #2f286e.
   Personal Assistant (.pa-contact) is a cross-origin iframe; these rules do not restyle its button. */
.box-cta .form-box{color:var(--dark)}
.form-box .hs-form .hs-form-field > label{display:block!important;font-weight:500;font-size:.9rem;line-height:1.4;margin-bottom:6px;color:var(--dark)!important}
.form-box .hs-form .hs-form-field > label span:not(.hs-form-required){color:var(--dark)!important}
.form-box .hs-form .hs-form-required{color:#b42318!important;margin-left:2px}
.form-box .hs-form .hs-input:not([type=checkbox]):not([type=radio]),.form-box .hs-form input[type=text],.form-box .hs-form input[type=email],.form-box .hs-form input[type=tel],.form-box .hs-form select,.form-box .hs-form textarea{width:100%!important;max-width:100%!important;box-sizing:border-box!important;min-height:48px!important;padding:12px 14px!important;border:1px solid #d1d5db!important;border-radius:8px!important;font:inherit!important;font-size:16px!important;background:#fff!important;color:var(--dark)!important;box-shadow:none!important}
.form-box .hs-form textarea.hs-input,.form-box .hs-form textarea{min-height:140px!important}
.form-box .hs-form .hs-form-field{margin-bottom:18px!important}
.form-box .hs-form fieldset{max-width:none!important}
.form-box .hs-form .input{margin-right:0!important}
.form-box .hs-form ul{list-style:none;padding:0;margin:0}
.form-box .hs-form .hs-error-msgs label,.form-box .hs-form .hs-error-msg{color:#b91c1c!important;font-size:.85rem}
.form-box .hs-form input[type=submit],.form-box .hs-form .hs-button{background:var(--purple)!important;border:0!important;border-color:var(--purple)!important;color:#fff!important;border-radius:999px;padding:12px 28px;font-weight:600;cursor:pointer;font:inherit;min-height:48px}
.form-box .hs-form input[type=submit]:hover,.form-box .hs-form .hs-button:hover,.form-box .hs-form input[type=submit]:focus,.form-box .hs-form .hs-button:focus{background:var(--purple-2)!important;border-color:var(--purple-2)!important}
.form-box .hs-form fieldset.form-columns-2 .hs-form-field{width:50%;float:left;padding-right:10px}
@media (max-width:520px){.form-box .hs-form fieldset.form-columns-2 .hs-form-field{width:100%;float:none;padding:0}}
/* Newsletter ad8bada5: HubSpot label is an empty string. CMO should set it to "Email".
   ::before covers the gap if script hasn't written the text yet. :empty stops it doubling. */
form.hs-form[data-form-id="ad8bada5-d192-45ed-8086-f79314d6ddc1"] .hs_email > label > span:empty::before{content:"Email"}
/* Logo grids: one tidy, full-colour grid */
.logo-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))!important;gap:16px}
.logo-grid .cell{display:flex;align-items:center;justify-content:center;height:120px;padding:16px;background:#fff}
.logo-grid .cell a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.logo-grid .cell img{max-height:64px!important;max-width:100%;width:auto!important;object-fit:contain;filter:none;opacity:1;border-radius:0}
.partner-logos{background:#fff!important}
.logos img{filter:none;opacity:1;height:56px;object-fit:contain}
@media (max-width:520px){.logo-grid{grid-template-columns:repeat(2,1fr)!important}.logo-grid .cell{height:96px}.logo-grid .cell img{max-height:48px!important}}
/* "Teneo today" block (partials/teneo-today.html) */
.teneo-today{background:var(--light)!important;padding:64px 0}
.teneo-today .tt-eyebrow{color:var(--purple);letter-spacing:.12em;font-weight:700;font-size:.9rem;text-transform:uppercase;margin:0}
.teneo-today h2{margin:8px 0 12px}
.teneo-today .tt-intro{max-width:780px;font-size:1.1rem}
.tt-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:28px 0}
.tt-cards .card h3{color:var(--purple);font-size:1.15rem;margin:0 0 8px}
.tt-cards .card p{margin:0}
.teneo-today .tt-continuity{max-width:860px}
.tt-compact h2{font-size:1.8rem}
@media (max-width:1024px){.tt-cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.tt-cards{grid-template-columns:1fr}}
.investor-feed .mfn-feed{list-style:none;padding:0}
.investor-feed .mfn-feed li{padding:10px 0;border-bottom:1px solid #e5e7eb}
.investor-feed .mfn-feed small{display:block;color:#6b7280}
.investor-feed .mfn-feed[data-tag] li{font-size:1.15rem;font-weight:600;border:0}
.board-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
/* Phones: long tables in articles scroll inside themselves; long links and words wrap instead of pushing the page sideways */
@media (max-width:767px){main table:not(.table-wrap table){display:block;max-width:100%;overflow-x:auto}main p,main li,main td,main th,main h1,main h2,main h3,main a{overflow-wrap:anywhere}}

/* Contact (/contact/): HubSpot form card — readable fields, not full-bleed raw HS chrome */
.hero-right-hubspot > .w{display:flex;justify-content:center}
.hero-right-hubspot .form-box{width:100%;max-width:560px;padding:36px 40px;margin:24px auto}
@media (max-width:600px){.hero-right-hubspot .form-box{padding:24px 20px;margin:8px auto;border-radius:12px}}
.hero-right-hubspot .form-box h1{margin:0 0 8px;color:var(--purple)}
.hero-right-hubspot .form-box > p{margin:0 0 24px;color:var(--dark)}
.form-box .hs-form .input{margin-right:0!important;max-width:100%}
