:root{
  --blue:#0B4C8F;      /* Portaprompt separator / icon blue (their CSS: 11,76,143) */
  --navy:#333399;      /* Portaprompt link colour */
  --orange:#FF7200;    /* end of Portaprompt hero heading gradient */
  --violet:#5C00FF;    /* start of Portaprompt hero heading gradient */
  --ink:#222222;
  --grey:#555555;
  --mid:#747373;
  --line:#DADADA;
  --paper:#F5F6F8;
  --tint:#E6EDF5;
  --white:#FFFFFF;
  --font:'Lato',Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0 auto;max-width:1920px;background:var(--white);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3,h4{font-family:var(--font);font-weight:900;line-height:1.1;margin:0 0 .5em;color:var(--blue);letter-spacing:-.01em}
h1{font-size:clamp(40px,4.6vw,84px);letter-spacing:-.025em}
h2{font-size:clamp(28px,2.8vw,46px)}
h3{font-size:clamp(20px,1.6vw,26px)}
p{margin:0 0 1em}
.wrap{width:min(1340px,100% - 48px);margin-inline:auto}
section{padding-block:clamp(40px,4.5vw,80px)}
.eyebrow{display:inline-block;font-weight:900;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:12px}
.lede{font-size:clamp(18px,1.4vw,22px);color:var(--grey);max-width:60ch}

/* concept banner */
.banner{background:var(--ink);color:var(--white);font-size:14px;text-align:center;padding:8px 24px;font-weight:700}
.banner p{margin:0}

/* header */
.site-header{background:var(--white);border-bottom:3px solid var(--blue);padding-block:14px}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 28px}
.logo img{width:318px;height:34px}
.nav{display:flex;flex-wrap:wrap;gap:4px 4px;align-items:center}
.nav a{font-size:15px;font-weight:700;text-decoration:none;color:var(--ink);padding:8px 11px;border-radius:4px}
.nav a:hover{background:var(--tint);color:var(--blue)}
.nav a[aria-current="page"]{background:var(--blue);color:var(--white)}
.nav a.nav-cta{background:var(--orange);color:var(--ink)}

/* buttons */
.btn{display:inline-block;font-weight:900;text-decoration:none;padding:13px 24px;border-radius:4px;border:2px solid var(--blue);background:var(--blue);color:var(--white);font-size:16px}
.btn:hover{background:var(--navy);border-color:var(--navy)}
.btn.alt{background:transparent;color:var(--blue)}
.btn.alt:hover{background:var(--tint)}
.btn.orange{background:var(--orange);border-color:var(--orange);color:var(--ink)}
.btn.light{background:var(--white);border-color:var(--white);color:var(--blue)}
.btn.ghost{background:transparent;border-color:var(--white);color:var(--white)}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}

/* hero */
.hero{padding-block:clamp(32px,3.5vw,56px);background:var(--paper);border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,3vw,56px);align-items:center}
.hero .art{max-height:340px;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:var(--white)}
.hero .art img{width:100%;height:340px;object-fit:cover}
.hero .art svg{display:block;width:100%;height:auto;max-height:340px}
.hero.blue{background:var(--blue);border:0}
.hero.blue h1,.hero.blue .lede{color:var(--white)}
.hero.blue .lede{opacity:.92}
.hero.navy{background:var(--navy);border:0}
.hero.navy h1,.hero.navy .lede{color:var(--white)}
.hero.slim .wrap{grid-template-columns:1fr}
.hero h1 .grad{color:var(--violet)}
.hero h1 em{font-style:normal;color:var(--orange)}

/* strip */
.strip{background:var(--blue);color:var(--white);padding-block:0}
.strip .wrap{display:grid;grid-template-columns:repeat(5,1fr)}
.strip .stat{padding:22px 20px;border-left:1px solid rgba(255,255,255,.28)}
.strip .stat:first-child{border-left:0;padding-left:0}
.strip b{display:block;font-size:clamp(26px,2.4vw,40px);font-weight:900;line-height:1.05}
.strip span{font-size:14px;opacity:.9}

/* generic blocks */
.band-paper{background:var(--paper)}
.band-tint{background:var(--tint)}
.band-blue{background:var(--blue);color:var(--white)}
.band-navy{background:var(--navy);color:var(--white)}
.band-ink{background:var(--ink);color:var(--white)}
.band-blue h2,.band-blue h3,.band-navy h2,.band-navy h3,.band-ink h2,.band-ink h3{color:var(--white)}
.band-blue a:not(.btn),.band-navy a:not(.btn),.band-ink a:not(.btn){color:var(--white)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,72px);align-items:center}
.split.rev>:first-child{order:2}
.split.wide-l{grid-template-columns:1.3fr .7fr}
.split.wide-r{grid-template-columns:.7fr 1.3fr}
.head{max-width:760px;margin-bottom:clamp(20px,2.5vw,36px)}
.head.center{margin-inline:auto;text-align:center}
.claim{font-size:clamp(28px,3.4vw,58px);font-weight:900;line-height:1.08;letter-spacing:-.02em;margin:0}
.claim em{font-style:normal;color:var(--orange)}
.photo{border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--white)}
.photo img{width:100%;height:100%;max-height:420px;object-fit:cover}
.photo.contain img{object-fit:contain;padding:12px}
.photo figcaption{font-size:13px;color:var(--mid);padding:8px 14px;background:var(--white);border-top:1px solid var(--line)}
figure{margin:0}

/* cards */
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:24px;display:flex;flex-direction:column}
.card.top{border-top:5px solid var(--blue)}
.card.top.o{border-top-color:var(--orange)}
.card.top.n{border-top-color:var(--navy)}
.card h3{margin-bottom:.4em}
.card p{color:var(--grey);margin-bottom:.8em}
.card .more{margin-top:auto;font-weight:900;text-decoration:none}
.card img{border-radius:6px;margin-bottom:14px;height:170px;width:100%;object-fit:cover}
.colour-card{border-radius:8px;padding:clamp(24px,2.6vw,40px);color:var(--white)}
.colour-card h3{color:var(--white)}
.colour-card.b{background:var(--blue)}
.colour-card.n{background:var(--navy)}
.colour-card ul{padding-left:20px;margin:0 0 1em}
.colour-card .btn{margin-top:8px}

/* lists */
ul.ticks{list-style:none;padding:0;margin:0 0 1em}
ul.ticks li{padding:7px 0;border-bottom:1px solid rgba(0,0,0,.1)}
.band-blue ul.ticks li,.band-navy ul.ticks li,.band-ink ul.ticks li{border-color:rgba(255,255,255,.2)}
.pills{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0;list-style:none}
.pills li{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-weight:700;color:var(--blue)}
.band-blue .pills li,.band-navy .pills li{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:var(--white)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s;padding:0;margin:0;list-style:none}
.steps li{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:22px}
.steps .n{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:50%;background:var(--orange);color:var(--ink);font-weight:900;margin-bottom:12px}
.steps h3{font-size:20px}
.steps p{color:var(--grey);margin:0}

/* tables */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--white)}
table.spec{border-collapse:collapse;width:100%;min-width:560px}
table.spec th,table.spec td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
table.spec thead th{background:var(--blue);color:var(--white);font-weight:900}
table.spec tbody tr:nth-child(even){background:var(--paper)}
table.spec th[scope=row]{color:var(--blue);width:30%}

/* faq */
details{background:var(--white);border:1px solid var(--line);border-radius:8px;margin-bottom:10px}
details summary{cursor:pointer;font-weight:900;color:var(--blue);padding:16px 20px;list-style:none;font-size:18px}
details summary::-webkit-details-marker{display:none}
details[open] summary{border-bottom:1px solid var(--line)}
details p{padding:14px 20px 4px;color:var(--grey)}

/* team */
.person{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:22px;border-left:6px solid var(--orange)}
.person h3{margin-bottom:2px}
.person .role{font-weight:900;color:var(--navy);margin-bottom:10px;display:block}
.person p{color:var(--grey);margin:0}

/* timeline */
.timeline{list-style:none;margin:0;padding:0;border-left:4px solid var(--blue)}
.timeline li{padding:0 0 22px 24px}
.timeline b{display:block;font-size:22px;color:var(--blue)}

/* cta */
.cta .wrap{display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;justify-content:space-between}
.cta h2{margin:0}

/* footer */
.site-footer{background:var(--ink);color:#D9D9D9;padding-block:clamp(36px,4vw,64px) 24px;font-size:15px}
.site-footer h4{color:var(--white);font-size:16px;margin-bottom:10px}
.site-footer a{color:var(--white)}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{padding:3px 0}
.chip{display:inline-block;background:var(--white);padding:12px 16px;border-radius:6px;margin-bottom:14px}
.chip img{width:318px;height:34px}
.site-footer .legal{border-top:1px solid rgba(255,255,255,.2);margin-top:28px;padding-top:16px;font-size:13px;color:#BDBDBD}

@media (max-width:1100px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .strip .wrap{grid-template-columns:repeat(3,1fr)}
  .site-footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .hero .wrap,.split,.split.wide-l,.split.wide-r{grid-template-columns:1fr}
  .split.rev>:first-child{order:0}
  .g2,.g3,.g4,.steps{grid-template-columns:1fr}
  .strip .wrap{grid-template-columns:repeat(2,1fr)}
  .strip .stat{border-left:0;padding-left:0}
  .site-footer .cols{grid-template-columns:1fr}
  .logo img,.chip img{width:260px;height:auto}
}

/* ---- QA pass ---- */
:root{--orange-t:#B04B00;--orange-l:#FFB366}
.eyebrow{color:var(--orange-t)}
.hero h1 em,.claim em{color:var(--orange-t)}
.band-blue .eyebrow,.band-navy .eyebrow,.band-ink .eyebrow,.hero.blue .eyebrow,.hero.navy .eyebrow,.colour-card .eyebrow,.cta .eyebrow{color:var(--orange-l)}
.band-blue .claim em,.band-navy .claim em,.band-ink .claim em,.hero.blue h1 em,.hero.navy h1 em,.band-blue h2 em,.band-navy h2 em,.band-ink h2 em{color:var(--orange-l)}
.logo img{width:360px;height:auto}
/* compact heroes */
.hero{padding-block:clamp(22px,2.2vw,38px)}
.hero h1{font-size:clamp(34px,3.6vw,62px);margin-bottom:.35em}
.hero .lede{font-size:clamp(17px,1.2vw,20px)}
.hero .btns{margin-top:14px}
.hero .art,.hero .art img{max-height:300px;height:300px}
/* small native images: do not upscale */
.card img{object-fit:cover}
.photo.contain img{width:auto;max-width:100%;margin-inline:auto;max-height:260px}
.photo div img{object-fit:contain;max-height:200px;padding:10px}
.hero .art.ctn img{object-fit:contain}
.card img{background:#fff;border:1px solid var(--line)}
.card img{object-fit:cover!important}
.card img{object-fit:contain!important;background:#fff}
/* ruled list instead of pill wall */
.pills{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 32px}
.pills li{background:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:13px 0 13px 26px;font-weight:700;color:var(--ink);position:relative;line-height:1.35}
.pills li::before{content:"";position:absolute;left:0;top:calc(13px + .675em - 6px);width:12px;height:12px;border-radius:50%;background:var(--orange)}
.pills li a{color:var(--navy)}
.band-blue .pills li,.band-navy .pills li,.band-ink .pills li{background:none;border:0;border-top:1px solid rgba(255,255,255,.3);color:var(--white)}
.band-blue .pills li a,.band-navy .pills li a{color:var(--white)}
@media(max-width:900px){
.site-header{padding-block:8px}
.logo img{width:min(300px,100%);height:auto}
.nav{flex-wrap:nowrap;overflow-x:auto;width:100%;scrollbar-width:none;gap:2px}
.nav::-webkit-scrollbar{display:none}
.nav a{white-space:nowrap;flex:none}
.hero .art,.hero .art img{height:220px;max-height:220px}
.hero h1{font-size:clamp(30px,8.2vw,40px)}
}

/* inner slim hero proportion */
.hero.slim{min-height:330px;display:flex;align-items:center}
.hero.slim .wrap{width:min(1340px,100% - 48px)}

/* home first screen: header + hero + stats strip fill the viewport exactly */
body:has(> main > .hero + .strip + .band-navy){--hero-h:clamp(340px,calc(100svh - 111px - 130px),640px)}
body:has(> main > .hero + .strip + .band-navy) .hero{min-height:var(--hero-h);display:flex;align-items:center}
body:has(> main > .hero + .strip + .band-navy) .hero>.wrap{width:min(1340px,100% - 48px)}
body:has(> main > .hero + .strip + .band-navy) .hero .art,body:has(> main > .hero + .strip + .band-navy) .hero .art img{height:calc(var(--hero-h) - 100px);max-height:calc(var(--hero-h) - 100px)}
body:has(> main > .hero + .strip + .band-navy) .hero h1{font-size:clamp(40px,4.2vw,68px)}
body:has(> main > .hero + .strip + .band-navy) .hero + .strip{height:130px;display:flex;align-items:center;overflow:hidden}
body:has(> main > .hero + .strip + .band-navy) .strip>.wrap{width:min(1340px,100% - 48px)}
body:has(> main > .hero + .strip + .band-navy) .strip .stat{padding:8px 20px}
@media(max-width:900px){body:has(> main > .hero + .strip + .band-navy) .hero{min-height:0}body:has(> main > .hero + .strip + .band-navy) .hero + .strip{height:auto;padding:16px 0}}
