/* ==========================================================
   iSoft Applications — site stylesheet (2026, v2)
   Type: Libre Caslon Display (headings) + Libre Caslon Text.
   Colours taken from the logo: orange "i", indigo "SOFT",
   olive "Applications", charcoal italic tagline.
   ========================================================== */
@font-face{font-family:"Libre Caslon Display";src:url(../fonts/libre-caslon-display-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url(../fonts/libre-caslon-text-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url(../fonts/libre-caslon-text-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url(../fonts/libre-caslon-text-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --ink:#24242E;
  --text:#45454F;
  --muted:#77777F;
  --indigo:#4E58A6;
  --indigo-deep:#363F82;
  --indigo-wash:#EEEFF7;
  --olive:#8E8E5C;
  --olive-deep:#6E6E44;
  --olive-wash:#F3F3EA;
  --orange:#EE6C1E;
  --paper:#FFFFFF;
  --mist:#F7F7F4;
  --line:#E3E3DC;
  --line-strong:#CFCFC4;

  --f-display:"Libre Caslon Display",Georgia,"Times New Roman",serif;
  --f-text:"Libre Caslon Text",Georgia,"Times New Roman",serif;

  --wrap:1180px;
  --gutter:clamp(18px,4vw,36px);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--text);
  font-family:var(--f-text);font-size:17px;line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
a{color:var(--indigo);text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--indigo-deep)}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
h1,h2{font-family:var(--f-display);font-weight:400;color:var(--ink);margin:0;line-height:1.08;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:clamp(2.8rem,6.2vw,5.2rem)}
h2{font-size:clamp(2.1rem,4vw,3.3rem)}
h3,h4{font-family:var(--f-text);font-weight:700;color:var(--ink);margin:0;line-height:1.3}
h3{font-size:1.22rem}
h4{font-size:1.02rem}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(72px,10vw,128px)}
.section--mist{background:var(--mist)}
.lede{font-size:clamp(1.1rem,1.6vw,1.25rem);line-height:1.65;color:var(--text);max-width:60ch}

.head{max-width:780px;margin-bottom:clamp(40px,5vw,64px)}
.head p{margin-top:18px}
.kicker{display:block;font-family:var(--f-text);font-style:italic;color:var(--olive-deep);font-size:1.08rem;margin-bottom:14px}
.head--split{max-width:none;display:grid;grid-template-columns:1fr;gap:18px 72px;align-items:end}
@media (min-width:900px){.head--split{grid-template-columns:1.1fr 1fr}.head--split p{margin:0}}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font:400 16px/1 var(--f-text);text-decoration:none;letter-spacing:.01em;
  padding:16px 28px;border-radius:2px;border:1px solid transparent;cursor:pointer;
  transition:background-color .15s,border-color .15s,color .15s;
}
.btn--primary{background:var(--indigo);color:#fff}
.btn--primary:hover{background:var(--indigo-deep);color:#fff}
.btn--ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn--ghost:hover{background:var(--ink);color:#fff}
.btn--light{background:#fff;color:var(--indigo-deep)}
.btn--light:hover{background:var(--olive-wash);color:var(--indigo-deep)}
.btn--outline-light{border-color:rgba(255,255,255,.6);color:#fff}
.btn--outline-light:hover{background:#fff;color:var(--indigo-deep)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}

/* ---------- Header ---------- */
.topbar{border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);font-style:italic}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:9px;flex-wrap:wrap}
.topbar a{color:var(--text);text-decoration:none;font-style:normal}
.topbar a:hover{color:var(--indigo)}
@media (max-width:640px){.topbar .tb-left{display:none}}

.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:100px;gap:24px}
.brand{display:block;flex:none}
.brand img{height:70px;width:auto}
@media (max-width:520px){.site-header .wrap{height:76px}.brand img{height:44px}}

.nav{display:flex;align-items:center;gap:2px}
.nav a{color:var(--ink);text-decoration:none;font-size:16px;padding:10px 14px}
.nav a:hover{color:var(--indigo)}
.nav a[aria-current="page"]{color:var(--indigo);text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:8px}
.nav a.btn{margin-left:14px;padding:13px 20px;color:#fff;text-decoration:none}
.nav a.btn:hover{color:#fff}
.nav-toggle{display:none;background:none;border:1px solid var(--line-strong);width:46px;height:42px;cursor:pointer;color:var(--ink)}
.nav-toggle svg{margin:auto}
@media (max-width:1060px){
  .nav-toggle{display:block}
  .nav{position:fixed;inset:100px 0 auto 0;flex-direction:column;align-items:stretch;background:#fff;padding:8px var(--gutter) 24px;border-bottom:1px solid var(--line);box-shadow:0 20px 30px rgba(36,36,46,.08);display:none}
  .nav.is-open{display:flex}
  .nav a{padding:15px 4px;border-bottom:1px solid var(--line)}
  .nav a.btn{margin:18px 0 0;border-bottom:0}
}
@media (max-width:520px){.nav{inset:76px 0 auto 0}}

/* ---------- Hero (home) ---------- */
.hero{border-bottom:1px solid var(--line);text-align:center}
.hero .wrap{padding-block:clamp(72px,10vw,132px) clamp(56px,7vw,88px)}
.hero h1{max-width:16ch;margin-inline:auto}
.hero h1 .h1-2{display:block}
.hero .kicker{font-size:1.15rem;margin-bottom:26px}
.hero .lede{margin:30px auto 0;max-width:58ch}
.hero .btn-row{justify-content:center;margin-top:40px}
.hero__facts{display:grid;grid-template-columns:1fr;max-width:920px;margin:72px auto 0;border-top:1px solid var(--line);text-align:center}
@media (min-width:720px){.hero__facts{grid-template-columns:repeat(3,1fr)}}
.hero__facts div{padding:26px 16px 0;font-style:italic;color:var(--muted);font-size:15.5px}
@media (min-width:720px){.hero__facts div+div{border-left:1px solid var(--line)}}
.hero__facts strong{display:block;font:400 2.3rem/1.1 var(--f-display);color:var(--ink);font-style:normal;margin-bottom:6px}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{border-bottom:1px solid var(--line);background:var(--mist)}
.page-hero .wrap{padding-block:clamp(60px,8vw,104px)}
.page-hero h1{font-size:clamp(2.5rem,5vw,4.2rem);max-width:18ch}
.page-hero .lede{margin-top:24px}
.page-hero .btn-row{margin-top:34px}
.crumbs{font-size:15px;margin-bottom:26px;color:var(--olive-deep);font-style:italic}
.crumbs a{color:var(--olive-deep);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span{margin-inline:10px;font-style:normal;color:var(--line-strong)}

/* ---------- Practices (home) ---------- */
.practices{display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink)}
@media (min-width:900px){.practices{grid-template-columns:repeat(3,1fr)}}
.practice{padding:40px 0 16px;border-bottom:1px solid var(--line)}
@media (min-width:900px){.practice{padding:44px 36px 16px;border-bottom:0;border-left:1px solid var(--line)}.practice:first-child{border-left:0;padding-left:0}.practice:last-child{padding-right:0}}
.practice__icon{width:40px;height:40px;color:var(--orange);margin-bottom:22px}
.practice h3{font:400 2.1rem/1.1 var(--f-display);margin-bottom:14px}
.ticks{list-style:none;margin:20px 0 26px}
.ticks li{padding:10px 0;border-top:1px solid var(--line);font-size:16px}
.ticks li::before{content:"\2014";color:var(--olive);margin-right:10px}
.link{text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:5px;font-style:italic}
.link svg{display:none}

/* ---------- Products ---------- */
.products{display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink)}
@media (min-width:760px){.products{grid-template-columns:repeat(2,1fr);column-gap:64px}}
.product{display:grid;grid-template-columns:auto 1fr;gap:24px;padding:36px 0;border-bottom:1px solid var(--line)}
.product__badge{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font:400 24px/1 var(--f-display);color:var(--indigo);border:1px solid var(--indigo)}
.product__badge--saffron{color:var(--orange);border-color:var(--orange)}
.product__badge--olive{color:var(--olive-deep);border-color:var(--olive)}
.product__badge--ink{color:var(--ink);border-color:var(--ink)}
.product h3{font:400 1.75rem/1.15 var(--f-display);margin-bottom:2px}
.product__kind{font-style:italic;color:var(--olive-deep);margin-bottom:12px;font-size:16px}
.product p{font-size:16px}
.chips{display:flex;flex-wrap:wrap;gap:6px 0;list-style:none;margin:8px 0 0;font-style:italic;color:var(--olive-deep);font-size:15px}
.chips li+li::before{content:"/";margin:0 12px;color:var(--line-strong);font-style:normal}

/* ---------- Sectors ---------- */
.sectors{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--ink)}
.sector{padding:28px 24px 28px 0;border-bottom:1px solid var(--line)}
@media (min-width:900px){.sector{border-bottom:0;padding:32px 24px;border-left:1px solid var(--line)}.sector:first-child{border-left:0;padding-left:0}}
.sector h3{font:400 1.45rem/1.15 var(--f-display);margin-bottom:10px}
.sector p{font-size:15.5px;margin:0}

/* ---------- Process ---------- */
.process{list-style:none;counter-reset:step;display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink)}
@media (min-width:700px){.process{grid-template-columns:repeat(2,1fr);column-gap:40px}}
@media (min-width:1080px){.process{grid-template-columns:repeat(6,1fr);column-gap:28px}}
.process li{counter-increment:step;padding:28px 0;border-bottom:1px solid var(--line)}
@media (min-width:1080px){.process li{border-bottom:0}}
.process li::before{content:counter(step,upper-roman) ".";display:block;font:400 1.6rem/1 var(--f-display);color:var(--orange);margin-bottom:14px}
.process h3{font:400 1.5rem/1.15 var(--f-display);margin-bottom:8px}
.process p{font-size:15.5px;margin:0}

/* ---------- Proof ---------- */
.proof{display:grid;grid-template-columns:1fr;gap:48px}
@media (min-width:960px){.proof{grid-template-columns:.9fr 1.1fr;gap:88px;align-items:start}}
.bignum{font:400 clamp(6rem,13vw,10rem)/.85 var(--f-display);color:var(--indigo)}
.bignum sup{color:var(--orange);font-size:.5em;vertical-align:.8em}
.clients{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));column-gap:28px;border-top:1px solid var(--ink)}
.clients li{padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:16.5px}

/* ---------- Indigo band ---------- */
.band{background:var(--indigo-deep);color:#DCDEEE}
.band h2,.band h3{color:#fff}
.band .kicker{color:#D4D4A6}
.band .lede{color:#DCDEEE}
.band-grid{display:grid;grid-template-columns:1fr;gap:0 48px;border-top:1px solid rgba(255,255,255,.35)}
@media (min-width:900px){.band-grid{grid-template-columns:repeat(3,1fr)}}
.band-item{padding:30px 0;border-bottom:1px solid rgba(255,255,255,.14)}
@media (min-width:900px){.band-item{border-bottom:0}}
.band-item h3{font:400 1.6rem/1.15 var(--f-display);margin-bottom:10px}
.band-item p{font-size:16px;margin:0}
.std{display:block;font-style:italic;color:#F6A46F;font-size:15px;margin-bottom:10px}

/* ---------- CTA ---------- */
.cta{background:var(--paper);border-top:1px solid var(--line);text-align:center}
.cta .wrap{padding-block:clamp(72px,9vw,112px)}
.cta h2{max-width:20ch;margin-inline:auto}
.cta p{margin:18px auto 0;max-width:54ch;font-size:1.15rem}
.cta .btn-row{justify-content:center;margin-top:34px}

/* ---------- Services page ---------- */
.svc-layout{display:grid;grid-template-columns:1fr;gap:48px}
@media (min-width:1000px){.svc-layout{grid-template-columns:230px 1fr;gap:80px}}
.svc-nav{align-self:start;position:sticky;top:120px}
.svc-nav h2{font:italic 400 1rem/1.3 var(--f-text);color:var(--olive-deep);margin-bottom:12px}
.svc-nav ul{list-style:none;border-top:1px solid var(--ink)}
.svc-nav a{display:block;padding:10px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;font-size:15.5px}
.svc-nav a:hover{color:var(--indigo)}
@media (max-width:999px){.svc-nav{position:static}.svc-nav ul{display:flex;flex-wrap:wrap;gap:8px 24px;border:0}.svc-nav a{border:0;padding:4px 0;text-decoration:underline;text-decoration-color:var(--line-strong)}}
.svc-group{padding-bottom:40px;margin-bottom:56px;border-bottom:1px solid var(--line);scroll-margin-top:120px}
.svc-group:last-child{border-bottom:0;margin-bottom:0}
.svc-group > h2{font-size:clamp(2rem,3.4vw,2.7rem);margin-bottom:14px}
.svc-group > p{max-width:62ch;font-size:1.08rem}
.svc-list{display:grid;grid-template-columns:1fr;margin-top:30px;border-top:1px solid var(--ink)}
@media (min-width:720px){.svc-list{grid-template-columns:1fr 1fr;column-gap:48px}}
.svc{padding:24px 0;border-bottom:1px solid var(--line)}
.svc h3{margin-bottom:6px}
.svc p{font-size:16px;margin:0}
.stack{display:flex;flex-wrap:wrap;gap:6px 0;list-style:none;margin-top:26px;font-style:italic;color:var(--olive-deep)}
.stack li:not(:last-child)::after{content:",";margin-right:8px}

/* ---------- Security page ---------- */
.two{display:grid;grid-template-columns:1fr;gap:48px}
@media (min-width:960px){.two{grid-template-columns:1fr 1fr;gap:88px}}
.themes{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--ink);margin-top:20px}
.theme{padding:24px 20px 24px 0;border-bottom:1px solid var(--line)}
.theme:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}
.theme b{display:block;font:400 3.2rem/1 var(--f-display);color:var(--indigo)}
.theme span{display:block;font-weight:700;color:var(--ink);margin-top:10px}
.theme small{display:block;color:var(--muted);font-size:14.5px;margin-top:4px;line-height:1.5;font-style:italic}
.timeline{list-style:none;counter-reset:ph;border-top:1px solid var(--ink)}
.timeline li{counter-increment:ph;display:grid;grid-template-columns:56px 1fr;padding:22px 0;border-bottom:1px solid var(--line)}
.timeline li::before{content:counter(ph,upper-roman) ".";font:400 1.5rem/1.2 var(--f-display);color:var(--orange);grid-row:span 3}
.timeline h3{margin-bottom:4px}
.timeline .when{font-size:15px;color:var(--olive-deep);font-style:italic;display:block}
.timeline p{font-size:16px;margin:0}
.note{border-left:2px solid var(--orange);padding:4px 0 4px 22px;font-style:italic;color:var(--text)}
.note p:last-child{margin:0}

/* ---------- Products page ---------- */
.prod-detail{display:grid;grid-template-columns:1fr;gap:36px;padding-block:64px;border-top:1px solid var(--line);scroll-margin-top:110px}
.prod-detail:first-of-type{border-top:0;padding-top:0}
@media (min-width:960px){.prod-detail{grid-template-columns:.9fr 1.1fr;gap:88px}}
.prod-detail h2{margin:22px 0 12px}
.prod-detail .btn{margin-top:10px}
.features{list-style:none;display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink);align-self:start}
@media (min-width:600px){.features{grid-template-columns:1fr 1fr;column-gap:32px}}
.features li{padding:16px 0;border-bottom:1px solid var(--line);font-size:15.5px;font-style:italic;color:var(--muted)}
.features li b{display:block;color:var(--ink);font-weight:700;font-style:normal;font-size:16px}
.case-grid{display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink)}
@media (min-width:860px){.case-grid{grid-template-columns:1fr 1fr;column-gap:64px}}
.case{padding:36px 0;border-bottom:1px solid var(--line)}
.case__client{font-style:italic;color:var(--olive-deep);margin-bottom:8px}
.case h3{font:400 1.9rem/1.15 var(--f-display);margin-bottom:14px}
.case p{font-size:16px}

/* ---------- About ---------- */
.values{display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink)}
@media (min-width:760px){.values{grid-template-columns:repeat(2,1fr);column-gap:64px}}
.value{padding:28px 0;border-bottom:1px solid var(--line)}
.value h3{font:400 1.6rem/1.15 var(--f-display);margin-bottom:8px}
.value p{margin:0;font-size:16px}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));list-style:none;border-top:1px solid var(--ink)}
.person{padding:30px 20px 30px 0;border-bottom:1px solid var(--line)}
.avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font:400 26px/1 var(--f-display);color:var(--indigo);border:1px solid var(--indigo);margin-bottom:20px}
.person:nth-child(3n+2) .avatar{color:var(--orange);border-color:var(--orange)}
.person:nth-child(3n) .avatar{color:var(--olive-deep);border-color:var(--olive)}
.person h3{font:400 1.45rem/1.2 var(--f-display)}
.person p{margin:4px 0 0;font-size:15px;color:var(--muted);font-style:italic}
.quote{font:400 clamp(1.9rem,3.4vw,2.8rem)/1.2 var(--f-display);color:var(--indigo);max-width:22ch;margin:0}

/* ---------- Careers ---------- */
.roles{list-style:none;border-top:1px solid var(--ink)}
.role{display:grid;grid-template-columns:1fr;gap:6px 36px;padding:26px 0;border-bottom:1px solid var(--line)}
@media (min-width:800px){.role{grid-template-columns:1.2fr 2fr auto;align-items:baseline}}
.role h3{font:400 1.55rem/1.2 var(--f-display)}
.role p{margin:0;font-size:16px}
.role .tag{font-size:15px;color:var(--olive-deep);font-style:italic}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr;gap:56px}
@media (min-width:960px){.contact-grid{grid-template-columns:1.2fr .8fr;gap:88px}}
.form{display:grid;grid-template-columns:1fr;gap:20px}
@media (min-width:640px){.form{grid-template-columns:1fr 1fr}.form .full{grid-column:1/-1}}
.field label{display:block;color:var(--ink);font-size:15.5px;margin-bottom:6px}
.field .hint{color:var(--muted);font-style:italic}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:2px;padding:13px 14px}
.field textarea{min-height:160px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 3px rgba(78,88,166,.15)}
.hp{position:absolute;left:-9999px}
.form-status{grid-column:1/-1;font-size:15.5px;margin:0;min-height:1.4em;font-style:italic}
.info-card{border-top:1px solid var(--ink)}
.info-card h2{font-size:2rem;margin:22px 0 14px}
.info-list{list-style:none}
.info-list li{padding:14px 0;border-top:1px solid var(--line)}
.info-list b{display:block;color:var(--olive-deep);font-weight:400;font-style:italic;font-size:15px;margin-bottom:2px}
.map{margin-top:24px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:var(--mist)}
.map iframe{width:100%;height:100%;border:0}

/* ---------- Footer ---------- */
.site-footer{background:var(--mist);border-top:1px solid var(--line);font-size:15.5px}
.site-footer .wrap{padding-block:72px 30px}
.foot-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:720px){.foot-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.foot-grid{grid-template-columns:1.5fr 1fr 1fr 1.3fr}}
.foot-grid h2{font:italic 400 1rem/1.3 var(--f-text);color:var(--olive-deep);margin-bottom:14px}
.foot-grid ul{list-style:none}
.foot-grid li{margin-bottom:8px}
.site-footer a{color:var(--ink);text-decoration:none}
.site-footer a:hover{color:var(--indigo);text-decoration:underline}
.site-footer .brand img{height:52px}
.foot-about{max-width:34ch;margin-top:20px;color:var(--text)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:56px;padding-top:22px;border-top:1px solid var(--line-strong);font-size:14px;color:var(--muted)}

/* ==========================================================
   Home page (v3): photos, client logos, graphics
   ========================================================== */
.h-hero{border-bottom:1px solid var(--line);overflow:hidden}
.h-hero__grid{display:grid;grid-template-columns:1fr;gap:56px;padding-block:clamp(56px,7vw,96px) 0;align-items:center}
@media (min-width:1000px){.h-hero__grid{grid-template-columns:1fr 1.02fr;gap:72px}}
.h-hero h1{font-size:clamp(2.7rem,5.2vw,4.6rem)}
.h-hero h1 .h1-2{display:block}
.h-hero .kicker{margin-bottom:22px}
.h-hero .lede{margin-top:26px}
.h-hero .btn-row{margin-top:36px}
.h-hero__media{position:relative;margin:0 0 28px 28px}
.h-hero__media img{position:relative;width:100%;aspect-ratio:5/4;object-fit:cover;object-position:40% center;z-index:1}
.h-hero__frame{position:absolute;inset:-22px 22px 22px -22px;border:1px solid var(--olive);z-index:0}
.h-hero__frame::after{content:"";position:absolute;right:-1px;top:-1px;width:64px;height:64px;border-top:3px solid var(--orange);border-right:3px solid var(--orange)}
.h-hero__card{position:absolute;z-index:2;left:-28px;bottom:-28px;display:flex;align-items:center;gap:14px;background:#fff;padding:14px 22px 14px 14px;box-shadow:0 18px 40px rgba(36,36,46,.16);max-width:320px}
.h-hero__card strong{display:block;font:400 1.2rem/1.2 var(--f-display);color:var(--ink)}
.h-hero__card span{display:block;font-size:14px;font-style:italic;color:var(--olive-deep);line-height:1.4}
.seal--sm{width:64px;height:64px;flex:none}
@media (max-width:640px){.h-hero__media{margin:0 0 24px 14px}.h-hero__frame{inset:-14px 14px 14px -14px}.h-hero__card{left:-14px;bottom:-24px;padding:10px 14px 10px 10px}.seal--sm{width:52px;height:52px}}
.h-hero .hero__facts{margin:64px auto 0;max-width:none;padding-bottom:clamp(40px,5vw,64px)}

/* client logo wall */
.clients-wall{padding-block:clamp(48px,6vw,72px);border-bottom:1px solid var(--line)}
.clients-wall__title{text-align:center;margin:0 0 30px}
.clients-wall__title .kicker{margin:0;font-size:1.1rem}
.logos{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
@media (min-width:640px){.logos{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.logos{grid-template-columns:repeat(6,1fr)}}
.logos li{display:grid;place-items:center;height:118px;padding:18px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.logos img{max-height:62px;max-width:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.78;transition:filter .2s,opacity .2s}
.logos li:hover img{filter:none;opacity:1}
@media (hover:none){.logos img{filter:none;opacity:1}}

/* practices with photos */
.h-practices{display:grid;grid-template-columns:1fr;gap:56px 44px}
@media (min-width:900px){.h-practices{grid-template-columns:repeat(3,1fr)}}
.h-practice figure{margin:0 0 26px;overflow:hidden;position:relative}
.h-practice figure::after{content:"";position:absolute;left:0;bottom:0;width:72px;height:3px;background:var(--orange)}
.h-practice img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s ease}
.h-practice:hover img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.h-practice img{transition:none}.h-practice:hover img{transform:none}}
.h-practice h3{font:400 2.1rem/1.1 var(--f-display);margin-bottom:12px}

/* products + dashboard graphic */
.h-products{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media (min-width:1000px){.h-products{grid-template-columns:1.15fr .85fr;gap:72px}}
.h-products__visual svg{width:100%;height:auto}
.h-prodlist{list-style:none;border-top:1px solid var(--ink)}
.h-prodlist a{display:flex;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.h-prodlist a:hover b{color:var(--indigo)}
.h-prodlist .product__badge{width:52px;height:52px;font-size:20px;flex:none}
.h-prodlist b{display:block;font:400 1.45rem/1.15 var(--f-display)}
.h-prodlist i{display:block;color:var(--olive-deep);font-size:15px}

/* sector icons */
.sector__icon{width:40px;height:40px;fill:none;stroke:var(--orange);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:18px}

/* why / proof split with photo */
.h-why{display:grid;grid-template-columns:1fr;background:var(--paper);border-top:1px solid var(--line)}
@media (min-width:1000px){.h-why{grid-template-columns:1fr 1fr}}
.h-why__media{min-height:340px}
.h-why__media img{width:100%;height:100%;object-fit:cover}
.h-why__text{padding:clamp(48px,7vw,96px) var(--gutter)}
@media (min-width:1000px){.h-why__text{padding:96px max(var(--gutter),calc((100vw - var(--wrap))/2 + var(--gutter))) 96px 72px}}
.h-why h2{font-size:clamp(1.8rem,3vw,2.5rem);margin-top:22px;max-width:18ch}
.h-why .lede{margin-top:16px}
.h-why .ticks{margin:24px 0 32px}

/* process with connecting line */
@media (min-width:1080px){
  .process--line{border-top:0;position:relative;padding-top:8px}
  .process--line::before{content:"";position:absolute;left:0;right:0;top:30px;height:1px;background:var(--line-strong)}
  .process--line li::before{position:relative;z-index:1;background:var(--mist);display:inline-block;padding-right:12px}
}

/* security band with photo + seals */
.band--photo{position:relative;background:linear-gradient(rgba(38,45,104,.93),rgba(38,45,104,.9)),url(../img/photos/servers.webp) center/cover no-repeat}
.h-sec{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media (min-width:1000px){.h-sec{grid-template-columns:1fr 1fr;gap:72px}}
.seals{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:560px;justify-self:center;width:100%}
.seal{width:100%;height:auto}
.cta h2{max-width:20ch}
img{height:auto}
.h-hero__card .seal{width:64px;height:64px}
@media (max-width:640px){.h-hero__card .seal{width:52px;height:52px}}
.logos li{height:128px}
.logos img{max-height:74px;filter:none;opacity:1}
.h-why__media img{height:100%}
.h-why__media{position:relative}
.h-why__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:639px){.logos li{height:100px;padding:14px}.logos img{max-height:60px}}
.h-why__media img{object-position:72% center}
.h-why__media img{object-position:100% center}
.h-hero__media img{object-position:30% center}

/* ==========================================================
   Inner pages: photo heroes, inline photos, product shots
   ========================================================== */
.page-hero--photo .wrap{padding-block:clamp(48px,6vw,80px)}
.ph-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media (min-width:960px){.ph-grid{grid-template-columns:1.1fr .9fr;gap:72px}}
.ph-media{position:relative;margin:0 0 20px 20px}
.ph-media img{position:relative;z-index:1;width:100%;aspect-ratio:4/3;object-fit:cover}
.ph-frame{position:absolute;inset:-18px 18px 18px -18px;border:1px solid var(--olive);z-index:0}
.ph-frame::after{content:"";position:absolute;right:-1px;top:-1px;width:56px;height:56px;border-top:3px solid var(--orange);border-right:3px solid var(--orange)}
@media (max-width:640px){.ph-media{margin:0 0 14px 14px}.ph-frame{inset:-12px 12px 12px -12px}}
.page-hero--photo h1{max-width:16ch}

.inline-photo{margin:0 0 28px;position:relative}
.inline-photo img{width:100%;aspect-ratio:3/2;object-fit:cover}
.inline-photo::after{content:"";position:absolute;left:0;bottom:0;width:72px;height:3px;background:var(--orange)}
.careers-head{align-items:center}

.shot{margin:0 0 24px;background:#fff;border:1px solid var(--line);padding:10px;box-shadow:0 18px 36px rgba(36,36,46,.08)}
.shot img{width:100%;height:auto}

.avatar--photo{object-fit:cover;padding:0;border:3px solid #fff;box-shadow:0 0 0 1px var(--line-strong)}
.person:nth-child(n) .avatar--photo{border-color:#fff}
.avatar{width:112px;height:112px;font-size:34px}
.shot img{max-height:400px;object-fit:contain}

/* products page: alternating rows with dashboard illustrations */
.prod-row{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;padding-block:clamp(48px,6vw,80px);border-top:1px solid var(--line);scroll-margin-top:110px}
.prod-row:first-of-type{border-top:0;padding-top:0}
@media (min-width:980px){
  .prod-row{grid-template-columns:1fr 1.05fr;gap:72px}
  .prod-row:nth-of-type(even) .prod-row__text{order:2}
}
.prod-row__text .product__badge{width:56px;height:56px;font-size:21px;float:left;margin:4px 18px 0 0}
.prod-row__text h2{font-size:clamp(2.1rem,3.4vw,2.9rem);line-height:1.1;margin:0 0 18px;min-height:56px;display:flex;align-items:center}
.prod-row__text .lede{clear:both;font-size:1.15rem;margin-bottom:12px}
.prod-row__text > p:not(.lede){font-size:16px;color:var(--text)}
.prod-feats{list-style:none;display:grid;grid-template-columns:1fr;gap:0 28px;margin:22px 0 30px;border-top:1px solid var(--ink)}
@media (min-width:560px){.prod-feats{grid-template-columns:1fr 1fr}}
.prod-feats li{padding:11px 0 11px 22px;border-bottom:1px solid var(--line);position:relative;font-size:15px;line-height:1.45}
.prod-feats li::before{content:"";position:absolute;left:2px;top:18px;width:8px;height:8px;border-radius:50%;background:var(--orange)}
.prod-feats b{display:block;color:var(--ink);font-weight:700}
.prod-feats span{display:block;color:var(--muted);font-style:italic;font-size:14.5px}
.prod-row__visual{margin:0;background:var(--mist);padding:clamp(18px,3vw,36px);position:relative}
.prod-row__visual::after{content:"";position:absolute;left:0;bottom:0;width:72px;height:3px;background:var(--orange)}
.prod-row__visual img{width:100%;height:auto}

/* client work with screenshots */
.work-list{display:grid;gap:clamp(48px,6vw,80px);margin-bottom:clamp(48px,6vw,72px)}
.work-row{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
@media (min-width:980px){.work-row{grid-template-columns:1.25fr .75fr;gap:64px}.work-row:nth-child(even) .browser{order:2}}
.browser{margin:0;background:#fff;border:1px solid var(--line-strong);box-shadow:0 24px 50px -18px rgba(36,36,46,.28);overflow:hidden}
.browser__bar{display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;background:#EEEFF7;border-bottom:1px solid var(--line)}
.browser__bar span{width:9px;height:9px;border-radius:50%;background:var(--line-strong)}
.browser__bar span:first-child{background:var(--orange)}
.browser__bar em{margin-left:14px;font-size:12px;color:var(--muted);background:#fff;padding:2px 14px;border-radius:10px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser img{width:100%;height:auto;display:block}
.work-row__text h3{font:400 clamp(1.8rem,2.6vw,2.3rem)/1.12 var(--f-display);margin-bottom:14px}
.work-row__text p{font-size:16px}
.work-row__text .chips{margin:14px 0 22px}
.case-grid--small{border-top:1px solid var(--ink)}
@media (min-width:980px){.work-row:nth-child(even){grid-template-columns:.75fr 1.25fr}}
.work-sub{font:400 clamp(1.7rem,2.6vw,2.2rem)/1.15 var(--f-display);margin:0 0 28px;padding-top:40px;border-top:1px solid var(--ink)}
.site-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:760px){.site-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.site-grid{grid-template-columns:1fr 1fr 1fr}}
.site-card .browser{margin-bottom:22px}
.site-card h4{font:400 1.55rem/1.2 var(--f-display);margin:2px 0 10px}
.site-card p{font-size:15.5px}
.site-card--text{border-top:3px solid var(--orange);padding-top:22px;align-self:start}

/* ==========================================================
   Home: DPDP Act section
   ========================================================== */
.dpdp{padding-block:clamp(72px,9vw,120px);background:var(--paper);border-bottom:1px solid var(--line)}
.dpdp__intro{display:grid;grid-template-columns:1fr;gap:20px 72px;margin-bottom:clamp(40px,5vw,60px)}
@media (min-width:960px){.dpdp__intro{grid-template-columns:.95fr 1.05fr;align-items:start}}
.dpdp__intro h2{font-size:clamp(2.3rem,4.2vw,3.5rem)}
.dpdp__intro .lede{margin-bottom:14px}
.dpdp__intro strong{color:var(--ink)}

.dpdp-timeline{list-style:none;display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink);margin-bottom:clamp(48px,6vw,72px)}
@media (min-width:720px){.dpdp-timeline{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.dpdp-timeline{grid-template-columns:repeat(4,1fr)}}
.dpdp-timeline li{position:relative;padding:28px 24px 22px 0}
@media (min-width:1040px){.dpdp-timeline li+li{padding-left:24px;border-left:1px solid var(--line)}}
.dpdp-timeline li::before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--line-strong)}
@media (min-width:1040px){.dpdp-timeline li+li::before{left:24px}}
.dpdp-timeline li.is-done::before{background:var(--olive)}
.dpdp-timeline li.is-next::before{background:var(--indigo)}
.dpdp-timeline li.is-key::before{background:var(--orange);box-shadow:0 0 0 5px rgba(238,108,30,.18)}
.dt-date{display:block;font:400 1.75rem/1.1 var(--f-display);color:var(--ink);margin-bottom:6px}
.is-key .dt-date{color:var(--orange)}
.dpdp-timeline b{display:block;color:var(--ink);font-size:16px}
.dpdp-timeline li > span:last-child{display:block;font-size:14.5px;color:var(--muted);font-style:italic;line-height:1.5;margin-top:2px}

.dpdp-grid{display:grid;grid-template-columns:1fr;gap:56px;margin-bottom:clamp(56px,7vw,88px)}
@media (min-width:1040px){.dpdp-grid{grid-template-columns:1fr 1fr;gap:72px}}
.dpdp-grid h3{font:400 clamp(1.6rem,2.4vw,2rem)/1.15 var(--f-display);margin-bottom:22px}
.duties{list-style:none;display:grid;grid-template-columns:1fr;column-gap:32px;border-top:1px solid var(--ink)}
@media (min-width:640px){.duties{grid-template-columns:1fr 1fr}}
.duties li{padding:16px 0 16px 22px;border-bottom:1px solid var(--line);position:relative;font-size:15px;line-height:1.55;color:var(--text)}
.duties li::before{content:"";position:absolute;left:2px;top:24px;width:8px;height:8px;border-radius:50%;background:var(--orange)}
.duties b{display:block;color:var(--ink);font-size:16px;margin-bottom:2px}
.penalty{margin-top:24px;padding:16px 20px;border-left:3px solid var(--orange);background:var(--mist);font-size:15.5px}
.penalty strong{color:var(--ink)}

.dpdp-product{background:var(--mist);padding:clamp(22px,3vw,36px);position:relative;align-self:start}
.dpdp-product::after{content:"";position:absolute;left:0;bottom:0;width:72px;height:3px;background:var(--orange)}
.dpdp-product .browser{margin-bottom:26px}
.dpdp-product h3{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.dpdp-logo{display:inline-grid;place-items:center}
.dpdp-product > p{font-size:16px}
.dpdp-product .ticks{margin:16px 0 26px}

.dpdp-steps > h3{font:400 clamp(1.6rem,2.4vw,2rem)/1.15 var(--f-display);margin-bottom:26px}
.dpdp-steps .process--line li::before{background:var(--paper)}
.dpdp-cta{margin-top:clamp(40px,5vw,56px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding:28px 32px;border:1px solid var(--line-strong);border-left:3px solid var(--indigo)}
.dpdp-cta p{margin:0;font-size:1.12rem;max-width:56ch}
.dpdp-cta strong{color:var(--ink)}

/* DPDP section: own tinted background to separate it */
.dpdp{background:#EEF0F8;border-top:4px solid var(--indigo);border-bottom:0;position:relative}
.dpdp::before{content:"";position:absolute;top:-4px;left:0;width:min(220px,30%);height:4px;background:var(--orange)}
.dpdp .kicker{color:var(--indigo)}
.dpdp-timeline{border-top-color:var(--indigo)}
.dpdp-timeline li+li{border-left-color:#D5D9EC}
.duties{border-top-color:var(--indigo)}
.duties li{border-bottom-color:#D5D9EC}
.penalty{background:#fff}
.dpdp-product{background:#fff;box-shadow:0 18px 40px -22px rgba(54,63,130,.35)}
.dpdp-steps .process--line::before{background:#C9CEE6}
.dpdp-steps .process--line li::before{background:#EEF0F8}
.dpdp-cta{background:#fff;border-color:#D5D9EC;border-left-color:var(--indigo)}

/* services: DPDP group highlighted */
.svc-group--dpdp{background:#EEF0F8;border-top:4px solid var(--indigo);padding:clamp(24px,3.5vw,40px);border-bottom:0;position:relative}
.svc-group--dpdp::before{content:"";position:absolute;top:-4px;left:0;width:120px;height:4px;background:var(--orange)}
.svc-group--dpdp .kicker{color:var(--indigo);margin-bottom:10px}
.svc-group--dpdp > p strong{color:var(--ink)}
.svc-group--dpdp .svc-list{border-top-color:var(--indigo)}
.svc-group--dpdp .svc{border-bottom-color:#D5D9EC}

/* services: active section in "On this page" */
.svc-nav a{transition:color .15s,border-color .15s,padding-left .15s}
.svc-nav a.is-active{color:var(--indigo);font-weight:700;border-left:3px solid var(--orange);padding-left:12px;background:linear-gradient(90deg,#EEF0F8,transparent)}
@media (max-width:999px){.svc-nav a.is-active{border-left:0;padding-left:0;background:none;text-decoration-color:var(--orange)}}

/* careers: dark blue roles band */
.roles-band .roles{border-top-color:rgba(255,255,255,.4)}
.roles-band .role{border-bottom-color:rgba(255,255,255,.16)}
.roles-band .role h3{color:#fff}
.roles-band .role p{color:#DCDEEE}
.roles-band .role .tag{color:#F6A46F}
.roles-band .head .lede{color:#DCDEEE}

/* ==========================================================
   Security page improvements
   ========================================================== */
@media (min-width:960px){.path-aside{position:sticky;top:120px;align-self:start}}
.path-facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);margin-bottom:28px}
.path-facts div{padding:18px 14px 16px 0}
.path-facts div+div{padding-left:14px;border-left:1px solid var(--line)}
.path-facts b{display:block;font:400 2.4rem/1 var(--f-display);color:var(--indigo)}
.path-facts span{display:block;font-size:14px;color:var(--muted);font-style:italic;line-height:1.4;margin-top:6px}
.deliverables{background:#fff;padding:24px 26px 8px;border-left:3px solid var(--orange);margin-bottom:28px}
.deliverables h3{font:400 1.45rem/1.2 var(--f-display);margin-bottom:6px}
.deliverables .ticks{margin:8px 0 16px}
.timeline{background:#fff;padding:8px 28px;border-top:3px solid var(--indigo);box-shadow:0 18px 40px -26px rgba(36,36,46,.3)}
.timeline li:last-child{border-bottom:0}
.timeline li.is-final::before{color:#fff;background:var(--orange);border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font-size:1rem;margin-top:-4px}
.timeline li.is-final h3{color:var(--indigo)}

.soc-head{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;margin-bottom:clamp(40px,5vw,60px)}
@media (min-width:960px){.soc-head{grid-template-columns:1.25fr .75fr;gap:72px}}
.soc-cycle{width:100%;max-width:320px;justify-self:center}
.soc-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:700px){.soc-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.soc-grid{grid-template-columns:repeat(3,1fr)}}
.soc-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);padding:26px 24px;transition:background-color .2s}
.soc-card:hover{background:rgba(255,255,255,.12)}
.soc-icon{width:34px;height:34px;fill:none;stroke:#F6A46F;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:16px}
.soc-card h3{font:400 1.5rem/1.15 var(--f-display);color:#fff;margin-bottom:8px}
.soc-card p{font-size:15.5px;color:#DCDEEE;margin:0}
.soc-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 40px;margin-top:32px;padding:22px 26px;border-left:3px solid var(--orange);background:rgba(0,0,0,.18)}
.soc-note p{margin:0;max-width:70ch;font-size:15.5px;color:#DCDEEE}
.soc-note strong{color:#fff}
.band .kicker{color:#D4D4A6}

/* ISO 9001 section */
.qms-grid{align-items:start}
.pdca{display:grid;grid-template-columns:1fr;gap:12px;margin-top:30px}
@media (min-width:560px){.pdca{grid-template-columns:1fr 1fr}}
.pdca-step{display:flex;gap:14px;align-items:flex-start;background:var(--mist);border:1px solid var(--line);padding:18px 18px 16px}
.pdca-l{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--indigo);color:#fff;font:400 1.3rem/1 var(--f-display)}
.pdca-step:nth-child(4) .pdca-l{background:var(--orange)}
.pdca-step h3{font:400 1.3rem/1.15 var(--f-display);margin:2px 0 4px}
.pdca-step p{font-size:15px;color:var(--text);margin:0;line-height:1.5}
.qms-list{border-top:3px solid var(--indigo);padding-top:18px}
.qms-list h3{font:400 1.45rem/1.2 var(--f-display);margin-bottom:6px}
.qms-list .ticks{margin-top:6px}

/* About page */
.ab-values{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:700px){.ab-values{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.ab-values{grid-template-columns:repeat(3,1fr)}}
.ab-value{background:#fff;border:1px solid var(--line);border-top:3px solid var(--indigo);padding:26px 24px}
.ab-value svg{width:32px;height:32px;fill:none;stroke:var(--orange);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px}
.ab-value h3{font:400 1.45rem/1.2 var(--f-display);margin-bottom:8px}
.ab-value p{margin:0;font-size:15.5px}
.ab-practices{display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink)}
@media (min-width:900px){.ab-practices{grid-template-columns:repeat(3,1fr)}}
.ab-practice{display:block;padding:28px 28px 30px 0;color:inherit;text-decoration:none;border-bottom:1px solid var(--line);transition:background-color .2s}
@media (min-width:900px){.ab-practice{border-bottom:0;padding:30px 28px}.ab-practice:first-child{padding-left:0}.ab-practice+.ab-practice{border-left:1px solid var(--line)}}
.ab-practice:hover h3{color:var(--indigo)}
.ab-num{display:block;font:italic 400 1rem/1 var(--f-text,inherit);color:var(--orange);margin-bottom:12px}
.ab-practice h3{font:400 2rem/1.1 var(--f-display);margin-bottom:10px;transition:color .2s}
.ab-practice p{margin:0 0 16px}
.ab-clients{border-top:1px solid var(--line)}
.ab-office{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}
@media (min-width:960px){.ab-office{grid-template-columns:1.15fr .85fr;gap:72px}}
.ab-facts{margin:0;display:grid;gap:0;border-top:1px solid rgba(255,255,255,.3)}
.ab-facts div{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:140px 1fr;gap:16px}
.ab-facts dt{font-style:italic;color:#D4D4A6}
.ab-facts dd{margin:0;color:#fff}
.ab-facts a{color:#fff}
@media (max-width:480px){.ab-facts div{grid-template-columns:1fr;gap:4px}}

/* Contact page */
.cq-strip{border-bottom:1px solid var(--line);background:#fff}
.cq-grid{display:grid;grid-template-columns:1fr;gap:0}
@media (min-width:640px){.cq-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.cq-grid{grid-template-columns:repeat(4,1fr)}}
.cq{display:flex;gap:14px;align-items:flex-start;padding:26px 20px 24px 0}
@media (min-width:1040px){.cq+.cq{border-left:1px solid var(--line);padding-left:24px}}
.cq svg{flex:none;width:28px;height:28px;fill:none;stroke:var(--orange);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.cq h3{font:italic 400 15px/1.3 var(--f-text,inherit);color:var(--olive-deep);margin:0 0 4px}
.cq p{margin:0;color:var(--ink);font-size:16px}
.cq a{color:var(--indigo)}
.form-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--indigo);padding:clamp(24px,4vw,40px);box-shadow:0 22px 50px -32px rgba(36,36,46,.35)}
.form-card h2{font:400 clamp(1.9rem,3vw,2.4rem)/1.1 var(--f-display);margin:6px 0 10px}
.form-intro{color:var(--muted);margin:0 0 20px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chip{display:inline-block;padding:7px 14px;border:1px solid var(--line-strong);color:var(--text);text-decoration:none;font-size:14.5px;background:#fff;transition:all .15s}
.chip:hover{border-color:var(--indigo);color:var(--indigo)}
.chip.is-on{background:var(--indigo);border-color:var(--indigo);color:#fff}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.form-foot .hint{font-size:14px;color:var(--muted);font-style:italic}
.contact-aside{display:flex;flex-direction:column}
.next-steps{background:var(--indigo-deep);color:#fff;padding:28px 28px 10px;margin-bottom:36px}
.next-steps h2{font:400 1.7rem/1.15 var(--f-display);color:#fff;margin:0 0 14px}
.next-steps ol{list-style:none;margin:0;padding:0;counter-reset:ns}
.next-steps li{counter-increment:ns;position:relative;padding:14px 0 16px 46px;border-top:1px solid rgba(255,255,255,.16)}
.next-steps li::before{content:counter(ns);position:absolute;left:0;top:14px;width:30px;height:30px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font:400 1rem/1 var(--f-display)}
.next-steps b{display:block;font-weight:600;color:#fff}
.next-steps span{display:block;color:#DCDEEE;font-size:15px}
.map-link{margin-top:12px;align-self:flex-start}
.chip{font-style:normal}
.contact-grid{align-items:start}
@media (max-width:639px){.cq{padding:16px 0}.cq-strip .wrap{padding-top:10px;padding-bottom:10px}}
/* contact: columns end on the same line */
@media (min-width:960px){
  .contact-grid{align-items:stretch}
  .contact-aside .map{flex:1 1 auto;aspect-ratio:auto;min-height:240px}
  .contact-aside .info-card .info-list{margin-bottom:0}
}

/* Home: why section refresh */
.h-why__text{background:var(--mist)}
.h-why__media::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--orange)}
.why-badge{position:absolute;left:clamp(16px,4vw,48px);bottom:clamp(24px,4vw,48px);background:var(--indigo-deep);color:#fff;padding:18px 24px 16px;max-width:calc(100% - 32px);box-shadow:0 18px 40px -20px rgba(0,0,0,.5);z-index:1}
.why-badge .kicker{color:#D4D4A6}
.why-badge p{margin:4px 0 0;font:400 1.35rem/1.25 var(--f-display);color:#fff}
.why-num{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 28px;margin-top:10px}
.why-num .bignum{line-height:.85}
.h-why .why-num h2{margin-top:0;flex:1 1 260px;padding-bottom:6px}
.why-feats{list-style:none;margin:28px 0 34px;padding:0;display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:600px){.why-feats{grid-template-columns:1fr 1fr}}
.why-feats li{display:flex;gap:14px;background:#fff;border:1px solid var(--line);padding:18px 18px 16px}
.why-feats svg{flex:none;width:28px;height:28px;fill:none;stroke:var(--orange);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.why-feats h3{font:400 1.2rem/1.2 var(--f-display);margin:0 0 4px}
.why-feats p{margin:0;font-size:14.5px;line-height:1.5;color:var(--text)}

/* Smart agriculture (USA) */
.agri{background:#F2F4E8;border-top:1px solid #DDE2C6;border-bottom:1px solid #DDE2C6}
.agri .kicker{color:var(--olive-deep)}
.agri-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
@media (min-width:1000px){.agri-grid{grid-template-columns:1.1fr .9fr;gap:56px}.agri-visual{position:sticky;top:110px}}
.agri-visual{margin:0}
.agri-visual img{display:block;width:100%;height:auto;box-shadow:0 26px 56px -30px rgba(36,36,46,.45);border-radius:10px}
.agri-visual figcaption{margin-top:14px;font-size:14px;font-style:italic;color:var(--muted)}
.agri-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.agri-list li{display:flex;gap:18px;padding:20px 0 18px;border-bottom:1px solid #D7DCBE}
.agri-n{flex:none;width:44px;height:44px;border-radius:50%;background:#fff;border:1.5px solid var(--olive);color:var(--olive-deep);display:grid;place-items:center;font:400 1.05rem/1 var(--f-display)}
.agri-list li:first-child .agri-n{background:var(--olive);color:#fff}
.agri-list h3{font:400 1.4rem/1.2 var(--f-display);margin:2px 0 6px}
.agri-list p{margin:0;font-size:15.5px}
.agri-tags{list-style:none;margin:36px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.agri-tags li{padding:7px 14px;background:#fff;border:1px solid #D7DCBE;font-size:14.5px;color:var(--text)}
.agri-tags li::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-right:9px;vertical-align:1px}
.svc-group--agri{background:#F2F4E8;border-top:4px solid var(--olive);padding:clamp(24px,3.5vw,40px);border-bottom:0;position:relative}
.svc-group--agri::before{content:"";position:absolute;top:-4px;left:0;width:120px;height:4px;background:var(--orange)}
.svc-group--agri .kicker{color:var(--olive-deep);margin-bottom:10px}
.svc-group--agri .svc-list{border-top-color:var(--olive)}
.svc-group--agri .svc{border-bottom-color:#D7DCBE}
@media (min-width:900px){.sectors{grid-template-columns:repeat(3,1fr)}}
@media (min-width:900px){.sector:nth-child(3n+1){border-left:0;padding-left:0}.sector:nth-child(n+4){border-top:1px solid var(--line)}}
.agri-clients{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;margin-top:44px;background:#fff;border:1px solid #D7DCBE;border-left:4px solid var(--olive);padding:24px clamp(20px,3vw,32px)}
@media (min-width:800px){.agri-clients{grid-template-columns:auto 1fr;gap:40px}}
.agri-clients__logos{display:flex;gap:28px;align-items:center}
.agri-clients__logos img{height:46px;width:auto;object-fit:contain}
.agri-clients__text p{margin:6px 0 0;font-size:16px}
.agri-clients__text strong{color:var(--ink);font-weight:600}
.agri-clients__logos img{height:56px;width:130px;object-fit:contain}
.agri-clients__logos img[alt="Wilbur-Ellis"]{transform:scale(1.5)}
.prod-clients{display:flex;align-items:center;gap:22px;margin:4px 0 26px;padding-top:16px;border-top:1px solid var(--line)}
.prod-clients::before{content:"In use at";font-style:italic;color:var(--muted);font-size:14px}
.prod-clients img{height:40px;width:110px;object-fit:contain}
.prod-clients img[alt="Wilbur-Ellis"]{transform:scale(1.4)}

/* Products: websites we build and host */
.work-sub2{margin-top:clamp(64px,8vw,96px);margin-bottom:32px}
.h2-like{font:400 clamp(2rem,3.4vw,2.8rem)/1.1 var(--f-display);margin:0}
.site-grid2{display:grid;grid-template-columns:1fr;gap:20px}
@media (min-width:760px){.site-grid2{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.site-grid2{grid-template-columns:repeat(3,1fr)}}
.site-card2{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-top:3px solid var(--orange);padding:26px 28px 0;transition:box-shadow .2s,transform .2s}
.site-card2:hover{box-shadow:0 20px 44px -28px rgba(36,36,46,.4);transform:translateY(-2px)}
.site-card2__top{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.site-card2__top svg{width:20px;height:20px;fill:none;stroke:var(--indigo);stroke-width:1.5}
.site-card2 .case__client{min-height:0}
.site-card2 h4{font:400 1.55rem/1.2 var(--f-display);margin:4px 0 10px}
.site-card2 p{font-size:15.5px;margin:0 0 20px}
.site-tags{list-style:none;margin:auto 0 0;padding:0 0 22px;display:flex;flex-wrap:wrap;gap:6px}
.site-tags li{font-size:13px;padding:4px 10px;background:var(--mist);border:1px solid var(--line);color:var(--text)}
.site-card2__link{display:block;margin:0 -28px;padding:15px 28px;border-top:1px solid var(--line);color:var(--indigo);text-decoration:none;font-weight:600;font-size:15px}
.site-card2__link:hover{background:#EEF0F8}
/* products: tighter gap between product list and client work */
.prod-row:last-of-type{padding-bottom:0}
section[aria-label="Our products"]{padding-bottom:clamp(56px,6vw,80px)}
section[aria-labelledby="work-h"]{padding-top:clamp(56px,6vw,88px)}
