@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700;800;900&family=Roboto+Slab:wght@400;500;600;700;800;900&display=swap");

/* =========================================================
   V4 FLAGSHIP SYSTEM — production-facing corporate polish
   ========================================================= */
:root{--ease:cubic-bezier(.22,.61,.36,1)}
html{scroll-padding-top:90px}
body{font-kerning:normal;text-rendering:optimizeLegibility}
::selection{background:var(--ink);color:var(--bg)}
.mast{mix-blend-mode:normal}.mast.scrolled{background:color-mix(in srgb,var(--dark) 95%,transparent)!important}
.desktop-nav{gap:clamp(18px,2.1vw,34px)}
.brand-name{font-size:14px}.brand-sub{font-size:7.5px}
.v4-eyebrow{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.23em;display:flex;align-items:center;gap:14px}
.v4-eyebrow:before{content:'';width:36px;height:1px;background:currentColor;opacity:.8}
.v4-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.22em;font-weight:850}
.v4-rule{height:1px;background:currentColor;opacity:.2}
.v4-num{font-variant-numeric:tabular-nums lining-nums}
.v4-link{display:inline-flex;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid currentColor;text-transform:uppercase;font-size:10px;letter-spacing:.18em;font-weight:850}.v4-link:after{content:'↗';font-size:17px;transition:transform .25s var(--ease)}.v4-link:hover:after{transform:translate(4px,-4px)}
.v4-gridbg{background-image:linear-gradient(to right,color-mix(in srgb,currentColor 8%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,currentColor 8%,transparent) 1px,transparent 1px);background-size:64px 64px}
.v4-reveal{opacity:1;transform:none;transition:transform .8s var(--ease)}.js .v4-reveal.is-visible{transform:none}
.v4-crop{overflow:hidden}.v4-crop img,.v4-crop .v4-media{transition:transform 1.2s var(--ease)}.v4-crop:hover img,.v4-crop:hover .v4-media{transform:scale(1.025)}
.page-hero{min-height:88svh!important;padding:190px 0 84px!important}.page-hero h1{font-size:clamp(66px,9.6vw,158px)!important;line-height:.82!important;letter-spacing:-.065em!important}.page-hero p{max-width:760px!important}.page .section{padding:clamp(96px,10vw,160px) 0!important}.page .two-col{gap:clamp(58px,9vw,150px)!important}.page .three-col{background:transparent!important;gap:0!important;border-top:1px solid var(--line);border-left:1px solid var(--line)}.page .three-col>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:300px!important;padding:clamp(28px,3.3vw,54px)!important}.page .list-row{padding:46px 0!important}.page .content-image{min-height:76vh!important}.footer{padding-top:clamp(80px,9vw,145px)!important}.footer-top{grid-template-columns:1.55fr .7fr .75fr!important}.footer-top h2{font-size:clamp(52px,7vw,108px)!important;max-width:900px!important}.footer-bottom{margin-top:90px!important}
@media(max-width:900px){.wrap,.wrap.narrow{width:calc(100% - 40px)!important}.page-hero{min-height:76svh!important;padding:135px 0 54px!important}.page-hero h1{font-size:clamp(52px,15vw,88px)!important}.footer-top{grid-template-columns:1fr!important}.footer-bottom{margin-top:55px!important}}
@media(max-width:520px){.wrap,.wrap.narrow{width:calc(100% - 32px)!important}.page-hero h1{font-size:clamp(48px,14vw,72px)!important}}
@media(prefers-reduced-motion:reduce){.js .v4-reveal{opacity:1;transform:none;transition:none}.v4-crop img,.v4-crop .v4-media{transition:none}}


/* PRETORIUS — an engineering institution */
body.pretorius{--bronze:#bb6845;--paper:#f2f0e9;--deep:#061b24;--blueprint:#153642}
.pret4-hero{min-height:100svh;position:relative;background:#061821;color:white;display:flex;align-items:flex-end;overflow:hidden;padding:190px 0 74px}.pret4-photo{position:absolute;inset:-2%;background:url('https://static.wixstatic.com/media/c73833_298afdecb9ea4b748353bf021fb1fdba~mv2_d_3888_2592_s_4_2.jpg/v1/fill/w_1536,h_1024,al_c,q_90/c73833_298afdecb9ea4b748353bf021fb1fdba~mv2_d_3888_2592_s_4_2.jpg') 58% 45%/cover no-repeat;filter:saturate(.65) contrast(1.08)}.pret4-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,17,24,.98) 0%,rgba(3,17,24,.83) 43%,rgba(3,17,24,.18) 76%),linear-gradient(0deg,rgba(3,17,24,.8),transparent 55%)}.pret4-grid{position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:8vw 8vw;mask-image:linear-gradient(90deg,#000 0%,transparent 75%)}.pret4-hero .wrap{position:relative;z-index:2}.pret4-topline{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.26);padding-bottom:17px;margin-bottom:38px;font-size:9px;text-transform:uppercase;letter-spacing:.22em}.pret4-title{font-family:Georgia,serif;font-weight:400;font-size:clamp(76px,11.7vw,190px);line-height:.73;letter-spacing:-.075em;margin:0}.pret4-title em{font-weight:400;color:var(--bronze)}.pret4-deck{display:grid;grid-template-columns:minmax(300px,700px) 1fr;gap:8vw;align-items:end;margin-top:45px}.pret4-deck p{font-size:clamp(17px,1.5vw,22px);line-height:1.65;color:#d3dde0;margin:0}.pret4-deck .v4-link{justify-self:end;min-width:260px}.pret4-year{position:absolute;right:2.2vw;top:18%;z-index:2;font-family:Georgia,serif;font-size:clamp(120px,17vw,280px);line-height:.73;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.15);writing-mode:vertical-rl;transform:rotate(180deg)}
.pret4-proof{background:#0a2732;color:white}.pret4-proof .metric-row,.pret4-proof .metric-row>div{border-color:#34515b}.pret4-proof .metric-row strong{font-family:Georgia,serif;font-weight:400;color:#e7d5c8}
.pret4-origin{padding:150px 0;background:var(--paper);position:relative}.pret4-origin:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(16,32,42,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(16,32,42,.055) 1px,transparent 1px);background-size:54px 54px;pointer-events:none}.pret4-origin .wrap{position:relative}.pret4-origin-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:10vw}.pret4-origin h2{font-family:Georgia,serif;font-size:clamp(55px,7vw,112px);font-weight:400;line-height:.87;letter-spacing:-.06em;margin:24px 0}.pret4-origin h2 em{font-weight:400;color:var(--bronze)}.pret4-origin-copy{padding-top:18vh}.pret4-origin-copy p{font-size:20px;line-height:1.75;color:#606a6f}.pret4-sequence{display:flex;gap:0;margin-top:52px;border-top:1px solid #bfc4c2;border-bottom:1px solid #bfc4c2}.pret4-sequence span{flex:1;padding:20px 12px;border-right:1px solid #bfc4c2;font-size:9px;text-transform:uppercase;letter-spacing:.16em;font-weight:850}.pret4-sequence span:last-child{border:0}
.pret4-architecture{background:#09212b;color:white;padding:150px 0}.pret4-architecture-head{display:grid;grid-template-columns:.65fr 1.35fr;gap:10vw}.pret4-architecture h2{font-family:Georgia,serif;font-size:clamp(54px,6.7vw,108px);font-weight:400;line-height:.9;letter-spacing:-.055em;margin:0}.pret4-architecture h2 em{font-weight:400;color:#ca7957}.pret4-map{margin-top:95px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #35505a}.pret4-node{min-height:240px;padding:32px;border-right:1px solid #35505a;border-bottom:1px solid #35505a;position:relative;transition:background .25s}.pret4-node:nth-child(3n){border-right:0}.pret4-node:hover{background:#123541}.pret4-node .n{font-size:9px;letter-spacing:.2em;color:#7796a1}.pret4-node b{font-family:Georgia,serif;font-weight:400;font-size:clamp(25px,2.4vw,38px);line-height:1.05;display:block;margin-top:70px}.pret4-node small{display:block;margin-top:16px;color:#91a6ad;line-height:1.6}.pret4-node.core{background:var(--bronze);color:white}.pret4-node.core .n,.pret4-node.core small{color:#f6d8ca}.pret4-node:after{content:'+';position:absolute;right:22px;top:18px;color:#60818d}
.pret4-history{display:grid;grid-template-columns:1fr 1fr;min-height:88vh;background:#e8e5db}.pret4-history-photo{background:url('https://static.wixstatic.com/media/c73833_cb1bbace108a465790ffcdf8bcc72a1c~mv2.jpg/v1/fill/w_1200,h_900,al_c,q_88/WhatsApp%20Image%202025-05-01%20at%2008_26_49_81c4122e.jpg') center/cover no-repeat;position:relative}.pret4-history-photo:after{content:'ILIMA / OPERATING ASSET';position:absolute;left:28px;bottom:24px;background:#071b24;color:white;padding:10px 13px;font-size:8px;text-transform:uppercase;letter-spacing:.18em}.pret4-history-copy{padding:9vw 7vw;display:flex;flex-direction:column;justify-content:center}.pret4-history-copy h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(50px,5.8vw,92px);line-height:.92;letter-spacing:-.055em;margin:26px 0}.pret4-history-copy p{font-size:18px;line-height:1.75;color:#626965}.pret4-years{display:grid;grid-template-columns:1fr 1fr;margin-top:45px;border-top:1px solid #bbbdb6}.pret4-years div{padding:24px 20px 24px 0;border-bottom:1px solid #bbbdb6}.pret4-years strong{font-family:Georgia,serif;font-size:38px;font-weight:400;color:var(--bronze);display:block}.pret4-years span{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:#68706e}
.pret4-projects{padding:150px 0;background:#f5f3ed}.pret4-projects-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:10vw}.pret4-projects h2{font-family:Georgia,serif;font-size:clamp(52px,6.3vw,100px);font-weight:400;line-height:.9;letter-spacing:-.055em;margin:0}.pret4-projectrail{margin-top:80px;border-top:1px solid #c2c4be}.pret4-project{display:grid;grid-template-columns:80px 1.1fr .9fr 36px;gap:30px;align-items:center;padding:38px 0;border-bottom:1px solid #c2c4be;transition:padding-left .25s,background .25s}.pret4-project:hover{padding-left:16px}.pret4-project span{font-size:9px;letter-spacing:.2em}.pret4-project b{font-family:Georgia,serif;font-weight:400;font-size:clamp(30px,3.2vw,50px)}.pret4-project p{font-size:13px;line-height:1.6;color:#707671}.pret4-project i{font-style:normal;font-size:20px}.pret4-standard{padding:160px 0;background:var(--bronze);color:white}.pret4-standard h2{font-family:Georgia,serif;font-size:clamp(65px,9vw,145px);font-weight:400;line-height:.83;letter-spacing:-.065em;margin:26px 0 55px;max-width:1250px}.pret4-standard h2 em{font-weight:400;color:#071b24}
@media(max-width:900px){.pret4-hero{padding:140px 0 54px}.pret4-title{font-size:clamp(67px,21vw,110px)}.pret4-deck{grid-template-columns:1fr;gap:30px}.pret4-deck .v4-link{justify-self:start;min-width:0}.pret4-year{display:none}.pret4-origin-grid,.pret4-architecture-head,.pret4-projects-head{grid-template-columns:1fr}.pret4-origin-copy{padding-top:25px}.pret4-map{grid-template-columns:1fr 1fr}.pret4-node:nth-child(3n){border-right:1px solid #35505a}.pret4-node:nth-child(2n){border-right:0}.pret4-history{grid-template-columns:1fr}.pret4-history-photo{min-height:60vh}.pret4-history-copy{padding:78px 20px}.pret4-project{grid-template-columns:44px 1fr 28px}.pret4-project p{grid-column:2}.pret4-project i{grid-column:3;grid-row:1}.pret4-sequence{flex-wrap:wrap}.pret4-sequence span{flex:1 1 33.33%}}@media(max-width:560px){.pret4-map{grid-template-columns:1fr}.pret4-node,.pret4-node:nth-child(n){border-right:0}.pret4-node{min-height:200px}.pret4-node b{margin-top:48px}.pret4-years{grid-template-columns:1fr}.pret4-sequence span{flex-basis:50%}}
/* Industrial visual calibration */
:root{--sans:"Roboto",Arial,Helvetica,sans-serif;--display:"Roboto Slab","Roboto",Arial,Helvetica,sans-serif}
body.pretorius{--bronze:#c18b2c;--oxide:#c18b2c}
h1,h2,h3,h4,.section-title,.big-title,[class*="4-"] b,[class*="4-"] strong{font-family:var(--display)!important;font-style:normal!important;font-weight:800!important}
[class*="4-"] em,[class*="4-"] i{font-family:var(--display)!important;font-style:normal!important}
.page-hero h1{font-family:var(--display)!important;font-weight:800!important;line-height:.95!important;letter-spacing:-.025em!important;font-size:clamp(60px,8.4vw,138px)!important}
.pret4-title,.andru4-title,.math4-title,.coms4-title,.afr4-title,.mth4-title,.pf4-title{font-family:var(--display)!important;font-weight:800!important;font-style:normal!important;line-height:.86!important;letter-spacing:-.035em!important;margin:0!important}
.pret4-topline,.andru4-topline,.coms4-topline,.afr4-topline,.mth4-topline,.pf4-topline{margin-bottom:44px!important}
.pret4-deck,.andru4-bottom,.coms4-deck,.afr4-deck,.mth4-deck{margin-top:56px!important}
.pf4-copy p{margin-top:46px!important;margin-bottom:46px!important}
.pret4-architecture h2 em,.pret4-origin h2 em{color:var(--bronze)!important}
@media(max-width:900px){.page-hero h1{font-size:clamp(52px,14vw,92px)!important}.pret4-title,.andru4-title,.math4-title,.coms4-title,.afr4-title,.mth4-title,.pf4-title{line-height:.88!important;letter-spacing:-.03em!important}}
@media(max-width:560px){.page-hero h1{font-size:clamp(46px,13vw,72px)!important}}


/* Balanced section headers */
:is(.afr4-workshop-head,.afr4-throughput-head,.andru4-system-head,.andru4-work-head,.coms4-model-head,.coms4-cap-head,.math4-skills-head,.mth4-method-head,.pret4-architecture-head,.pret4-projects-head,.pf4-signal-head,.pf4-stack-head){
  display:grid!important;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)!important;
  gap:clamp(42px,6vw,92px)!important;
  align-items:start!important
}
:is(.afr4-workshop-head,.afr4-throughput-head,.andru4-system-head,.andru4-work-head,.coms4-model-head,.coms4-cap-head,.math4-skills-head,.mth4-method-head,.pret4-architecture-head,.pret4-projects-head,.pf4-signal-head,.pf4-stack-head)>:is(.v4-eyebrow,.v4-kicker){
  align-items:flex-start!important;
  font-size:clamp(13px,1.05vw,16px)!important;
  line-height:1.4!important;
  letter-spacing:.14em!important;
  font-weight:850!important;
  padding-top:10px!important;
  max-width:340px!important
}
:is(.afr4-workshop-head,.afr4-throughput-head,.andru4-system-head,.andru4-work-head,.coms4-model-head,.coms4-cap-head,.math4-skills-head,.mth4-method-head,.pret4-architecture-head,.pret4-projects-head,.pf4-signal-head,.pf4-stack-head)>.v4-eyebrow:before{
  width:52px!important;
  height:2px!important
}
:is(.afr4-workshop-head,.afr4-throughput-head,.andru4-system-head,.andru4-work-head,.coms4-model-head,.coms4-cap-head,.math4-skills-head,.mth4-method-head,.pret4-architecture-head,.pret4-projects-head,.pf4-signal-head,.pf4-stack-head)>h2{
  font-size:clamp(48px,5.4vw,94px)!important;
  line-height:.94!important;
  letter-spacing:-.035em!important;
  max-width:820px!important
}
@media(max-width:900px){
  :is(.afr4-workshop-head,.afr4-throughput-head,.andru4-system-head,.andru4-work-head,.coms4-model-head,.coms4-cap-head,.math4-skills-head,.mth4-method-head,.pret4-architecture-head,.pret4-projects-head,.pf4-signal-head,.pf4-stack-head){
    grid-template-columns:1fr!important;
    gap:28px!important
  }
  :is(.afr4-workshop-head,.afr4-throughput-head,.andru4-system-head,.andru4-work-head,.coms4-model-head,.coms4-cap-head,.math4-skills-head,.mth4-method-head,.pret4-architecture-head,.pret4-projects-head,.pf4-signal-head,.pf4-stack-head)>:is(.v4-eyebrow,.v4-kicker){
    font-size:12px!important;
    padding-top:0!important;
    max-width:none!important
  }
  :is(.afr4-workshop-head,.afr4-throughput-head,.andru4-system-head,.andru4-work-head,.coms4-model-head,.coms4-cap-head,.math4-skills-head,.mth4-method-head,.pret4-architecture-head,.pret4-projects-head,.pf4-signal-head,.pf4-stack-head)>h2{
    font-size:clamp(46px,12vw,74px)!important
  }
}
