/* Africube 2.0 — one shared design system for static and WordPress output. */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/instrument-serif-latin.woff2') format('woff2')}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/inter-latin.woff2') format('woff2')}
:root{--navy:#1a1614;--text:#3d3733;--muted:#6b635a;--teal:#1e5f70;--teal-dark:#134555;--teal-light:rgba(30,95,112,.08);--cyan:#8d4a28;--cyan-deep:#7f4222;--cyan-soft:rgba(141,74,40,.14);--glow:rgba(30,95,112,.18);--cream:#f5f1eb;--surface:#ece6dc;--line:rgba(26,22,20,.10);--line-strong:rgba(26,22,20,.18);--white:#fff;--radius:16px;--radius-sm:6px;--radius-card:12px;--container:1240px;--font:Inter,Arial,sans-serif;--font-serif:'Instrument Serif',Georgia,'Times New Roman',serif;--header:84px;--ease:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 28px)}body{margin:0;font-family:var(--font);font-size:16px;line-height:1.7;color:var(--text);background:var(--cream);-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}img,svg{max-width:100%}img{height:auto}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:none}p{margin:0 0 20px}p:last-child{margin-bottom:0}ul,ol{margin-top:0}h1,h2,h3,h4{color:var(--navy);margin:0;line-height:1.18}h1,h2,h3{font-family:var(--font-serif);font-weight:400;letter-spacing:-.015em}h4{font-family:var(--font);font-weight:600;letter-spacing:-.02em}h1{font-size:clamp(38px,4.6vw,62px);line-height:1.08;max-width:940px}h2{font-size:clamp(29px,3vw,40px)}h3{font-size:20px;line-height:1.35;letter-spacing:-.02em}h4{font-size:17px}h1 span,h2 span{color:var(--teal)}::selection{background:#c7e9ec;color:var(--navy)}:focus-visible{outline:3px solid #128ca2;outline-offset:5px;border-radius:3px}[hidden]{display:none!important}.container{width:min(var(--container),calc(100% - 80px));margin-inline:auto}.icon{width:23px;height:23px;flex-shrink:0;vertical-align:middle}.section{padding:96px 0}.section-soft{background:var(--surface)}.eyebrow{color:var(--teal);font-size:11px;font-weight:700;line-height:1.6;letter-spacing:.13em;text-transform:uppercase;margin:0 0 20px;display:flex;align-items:center;gap:10px}.status-dot,.visual-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2c847f;box-shadow:0 0 0 4px #e8f3f1;flex-shrink:0}.lead{font-size:18px;line-height:1.75;max-width:690px}.caption{font-size:12px;line-height:1.6;color:var(--muted)}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:14px;min-height:50px;padding:12px 21px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;line-height:1.45;border:1px solid transparent;transition:background-color 160ms ease,box-shadow 160ms ease,transform 160ms var(--ease);text-decoration:none}.btn .icon{width:18px;height:18px}.btn-primary{background:var(--teal);color:#fff}.btn-secondary{background:#fff;border-color:#ded5cb;color:var(--navy)}.btn-on-dark{background:#fff;color:var(--navy)}.btn:active{transform:scale(.98)}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:14px;line-height:1.5;font-weight:600;min-height:44px}.text-link .icon{width:18px;height:18px;transition:transform 180ms var(--ease)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:64px;margin-bottom:42px}.section-heading>div{max-width:680px}.section-heading>p{max-width:355px;font-size:15px;margin-bottom:2px;flex-shrink:0}.section-heading .eyebrow{margin-bottom:12px}.section-tail{margin-top:30px;text-align:center}.card-icon{width:46px;height:46px;border-radius:var(--radius-card);color:var(--teal);background:var(--teal-light);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-200%);padding:12px 20px;background:var(--navy);color:#fff;z-index:1000}.skip-link:focus{transform:none}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Navigation */
.navbar{position:sticky;top:0;background:rgba(255,255,255,.97);z-index:80;border-bottom:1px solid var(--line)}.nav-container{height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:inline-flex;align-items:center;flex-shrink:0}.brand img{width:211px;height:auto;display:block}.nav-links{display:flex;align-items:center;gap:32px}.top-link{font-size:13px;color:var(--navy);font-weight:500;display:inline-flex;align-items:center;min-height:44px}.top-link.active,.top-link[aria-current=page]{color:var(--teal)}.nav-cta{margin-left:10px;font-size:12px;min-height:44px;padding:11px 16px}.solutions-trigger{display:flex;align-items:center;gap:0}.solutions-toggle{width:28px;height:44px;background:transparent;border:0;padding:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--navy)}.solutions-toggle .icon{width:14px;height:14px;transition:transform 160ms var(--ease)}.solutions-nav.open .solutions-toggle .icon{transform:rotate(180deg)}.solutions-menu{display:none;position:absolute;top:calc(var(--header) - 1px);left:50%;transform:translateX(-50%);width:min(1080px,calc(100vw - 64px));background:#fff;border:1px solid var(--line);border-radius:0 0 var(--radius-card) var(--radius-card);box-shadow:0 20px 35px -15px #102a4330;padding:25px 32px 32px}.solutions-nav.open .solutions-menu{display:block}.menu-intro{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:25px;font-size:14px;color:var(--navy)}.menu-grid{display:grid;grid-template-columns:1.12fr 1.08fr 1fr;gap:30px}.menu-group{display:flex;flex-direction:column;align-items:flex-start}.menu-group>a{font-size:12px;padding:7px 0;color:var(--text);line-height:1.5}.menu-group .menu-heading{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--teal);padding:0 0 12px}.menu-toggle,.mobile-overlay{display:none}.extra-menu-links{display:contents}
/* Homepage */
.home-hero{background:linear-gradient(125deg,#fff 48%,#f7f5f2 100%);padding-top:44px}.hero-grid{display:grid;grid-template-columns:1.09fr 1fr;align-items:start;gap:64px}.hero-copy h1{font-size:clamp(40px,4.35vw,60px);letter-spacing:-.052em;line-height:1.085;max-width:630px}.hero-copy .lead{font-size:17px;line-height:1.8;margin-top:25px;max-width:535px}.hero-copy .eyebrow{font-size:10px;letter-spacing:.11em}.hero-note{font-size:12px;color:var(--muted);margin-top:23px}.hero-foundation{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:74px;padding-block:25px;border-top:1px solid var(--line);font-size:12px;font-weight:500;color:var(--muted)}.hero-foundation span{display:flex;align-items:center;gap:12px}.hero-foundation span:before{content:'';display:block;width:5px;height:5px;border:1px solid #a08c73;border-radius:50%}.area-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;grid-auto-rows:1fr}.area-card{--card-pad:30px;padding:var(--card-pad);display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.area-card:nth-child(3n){border-right:0}.area-card:nth-last-child(-n+3){border-bottom:0}.area-card .card-icon{margin-bottom:23px}.area-card h3{font-size:19px;margin-bottom:11px}.area-card>p{font-size:14px;line-height:1.7;max-width:300px;margin-bottom:22px}.area-links{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start}.area-links a{font-size:12px;min-height:40px;justify-content:space-between;width:100%;gap:10px}.area-links a .icon{width:16px;height:16px}.connect-grid{display:grid;grid-template-columns:1fr 1.06fr;gap:90px;align-items:center}.connect-grid h2{max-width:475px}.connect-grid .lead{font-size:16px;margin-top:23px}.service-rows{border-top:1px solid #e1d8cc}.service-row{display:flex;gap:20px;align-items:center;padding:29px 0;border-bottom:1px solid #e1d8cc;color:var(--text)}.service-row>div{flex:1}.service-row h3{font-size:17px;margin-bottom:7px}.service-row p{font-size:13px;line-height:1.7;margin:0}.service-row>.icon{width:18px;height:18px;color:var(--teal)}.service-row .card-icon{background:#fff;border:1px solid #ebe4dc}.route-feature{background:var(--navy);color:#e5dcd2}.route-feature-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:center;margin-bottom:50px}.route-feature h2{color:#fff;font-size:clamp(34px,3.8vw,48px)}.route-feature h2 span{color:#a1d6d7}.route-feature .eyebrow{color:#a1d6d7}.route-feature .lead{font-size:16px}.route-feature .caption{color:#dbcebf;margin-top:23px}.route-feature .workflow-grid{grid-template-columns:repeat(4,1fr)}.route-feature .workflow-grid li{background:#3d342e;border:1px solid #5a4d44}.route-feature .workflow-grid h3{color:#fff}.route-feature .workflow-grid p{color:#e2d8cc}.route-feature .step-number{color:#b0dfe1;background:#4f433b}.route-feature .workflow-grid>li>.icon{color:#bfa88d}.final-cta{padding-top:0}.cta-panel{background:#f5f1ec;padding:51px 55px;border:1px solid #ebe4dc;border-radius:var(--radius);display:flex;justify-content:space-between;gap:60px;align-items:center}.cta-panel h2{font-size:34px;margin-bottom:14px;max-width:570px}.cta-panel p:not(.eyebrow){max-width:570px;font-size:15px}.cta-panel .eyebrow{font-size:10px;margin-bottom:12px}.cta-panel>div:last-child{flex-shrink:0}.cta-panel .actions{margin-top:0;flex-direction:column;align-items:stretch}.cta-contact{display:block;text-align:center;font-size:11px;margin-top:13px;color:var(--text)}
/* Discovery & detail pages */
.breadcrumbs{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding-top:16px;font-size:11px;line-height:1.6;color:var(--muted)}.breadcrumbs a{color:var(--muted);min-height:24px;display:inline-flex;align-items:center}.breadcrumbs>span[aria-current]{color:var(--navy)}.page-hero{padding:44px 0 64px}.page-hero .lead{margin-top:25px;max-width:740px}.page-hero .text-link{margin-top:10px}.hub-jump{display:flex;gap:10px;margin-top:35px;flex-wrap:wrap}.hub-jump a{font-size:12px;font-weight:500;border:1px solid #e1d7ca;border-radius:var(--radius-sm);padding:10px 16px;min-height:44px;display:flex;align-items:center}.offering-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;grid-auto-rows:1fr}.offering-grid>div{height:100%}.offering-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;--card-pad:28px;padding:var(--card-pad);background:#fff;border:1px solid var(--line);border-radius:var(--radius-card);height:100%;transition:border-color 180ms ease,box-shadow 180ms ease}.offering-card .card-icon{margin-bottom:23px}.card-category{font-size:10px;letter-spacing:.04em;color:var(--muted);margin-bottom:9px;line-height:1.5}.offering-card h3{font-size:21px;margin-bottom:14px}.offering-card h3 a{color:var(--navy)}.offering-card>p:not(.card-category){font-size:13px;line-height:1.8;margin-bottom:22px}.offering-card>.text-link{margin-top:auto;font-size:12px}.two-columns{grid-template-columns:repeat(2,1fr)}.detail-hero{padding:55px 0 65px}.detail-hero-grid{display:grid;grid-template-columns:1.35fr .8fr;gap:92px;align-items:center}.detail-hero h1{font-size:clamp(38px,4.5vw,58px);max-width:760px}.detail-hero .eyebrow{font-size:10px}.detail-tagline{font-size:22px;line-height:1.5;letter-spacing:-.025em;color:var(--navy);font-weight:500;margin-top:23px;margin-bottom:18px}.detail-hero .lead{font-size:16px;max-width:675px}.focus-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.focus-heading{display:flex;align-items:center;gap:13px;padding:20px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:var(--navy);background:#fff}.focus-heading .card-icon{width:36px;height:36px;border-radius:var(--radius-card)}.focus-heading .icon{width:20px;height:20px}.focus-panel ol{list-style:none;padding:15px 24px;margin:0}.focus-panel li{display:flex;align-items:center;gap:17px;position:relative;min-height:58px}.focus-panel li>span:first-child{width:27px;height:27px;border:1px solid #dacdbe;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:var(--teal);font-size:9px;z-index:1;flex-shrink:0}.focus-panel li strong{font-size:12px;font-weight:500;line-height:1.5;color:var(--navy)}.focus-line{position:absolute;top:31px;left:13px;width:1px;height:50px;background:#dacdbe}.focus-panel>p{font-size:11px;line-height:1.7;margin:0 24px 24px;color:var(--muted)}.page-jump{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:sticky;top:var(--header);z-index:40}.page-jump>.container{display:flex;gap:32px;overflow-x:auto;scrollbar-width:thin}.page-jump a{white-space:nowrap;min-height:56px;display:flex;align-items:center;font-size:12px;font-weight:500;color:var(--text)}.split-content{display:grid;grid-template-columns:.85fr 1.35fr;gap:95px;align-items:start}.split-content>div:first-child h2{max-width:430px}.split-content>.faq-list{min-width:0}.split-content .lead{font-size:17px}.small-heading{font-size:14px;margin:30px 0 15px;letter-spacing:0}.audience-list,.check-list{padding:0;list-style:none;margin-bottom:25px}.audience-list li,.check-list li{display:flex;align-items:flex-start;gap:13px;font-size:14px;line-height:1.7;padding:9px 0}.audience-list .icon,.check-list .icon{width:18px;height:18px;color:var(--teal);margin-top:3px}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;grid-auto-rows:1fr}.capability-grid article{padding:26px 0;border-top:1px solid #dfd4c6}.capability-number{display:block;font-size:11px;color:var(--teal);font-weight:600;margin-bottom:20px}.capability-grid article>.icon{margin-bottom:20px;color:var(--teal)}.capability-grid h3{font-size:18px;margin-bottom:13px}.capability-grid p{font-size:14px;line-height:1.8}.workflow-grid{padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:0}.workflow-grid li{padding:25px 23px;border:1px solid var(--line);border-radius:var(--radius-card);background:#fff;position:relative}.step-number{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;background:var(--teal-light);color:var(--teal);border-radius:var(--radius-sm);margin-bottom:25px}.workflow-grid h3{font-size:15px;line-height:1.45;margin-bottom:10px}.workflow-grid p{font-size:12px;line-height:1.8}.workflow-grid>li>.icon{position:absolute;top:33px;right:23px;width:17px;height:17px;color:#978166}.workflow-grid li:last-child>.icon{display:none}.workflow-section{background:#f5f2ee}.workflow-section .workflow-grid{grid-template-columns:repeat(3,1fr)}.report-list{border-top:1px solid var(--line)}.report-list article{display:flex;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.report-list article>span{width:35px;flex-shrink:0;color:var(--teal);padding-top:3px}.report-list h3{font-size:17px;margin-bottom:10px}.report-list p{font-size:14px;line-height:1.8}.related-note{font-size:13px;margin-top:24px}.related-note a{text-decoration:underline}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;font-size:15px;line-height:1.6;font-weight:500;color:var(--navy)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span{font-size:23px;font-weight:400;line-height:1;color:var(--teal);flex-shrink:0;width:20px;text-align:center;transition:transform 160ms var(--ease)}.faq-list details[open] summary>span{transform:rotate(45deg)}.faq-list details>div{padding:0 35px 24px 0;font-size:14px;line-height:1.9}
/* Contact and article content */
.contact-hero{padding-bottom:50px}.contact-section{padding-top:0}.contact-grid{display:grid;grid-template-columns:.85fr 1.2fr;gap:95px;align-items:start}.contact-aside{padding-top:28px}.contact-aside h2{font-size:28px;margin-bottom:18px}.contact-aside>p{font-size:15px;max-width:370px}.contact-method{border-bottom:1px solid var(--line);padding:23px 0}.contact-method>span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;color:var(--muted);font-weight:600}.contact-method>a{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:14px;min-height:32px;overflow-wrap:anywhere}.contact-method .icon{width:18px;height:18px}.contact-location{display:flex;align-items:center;gap:16px;margin:28px 0}.contact-location>.icon{color:var(--teal)}.contact-location strong,.contact-location span{display:block;font-size:13px}.contact-location span{font-size:11px;margin-top:3px;color:var(--muted)}.contact-aside .caption{font-size:11px;max-width:360px}.contact-form-wrapper{border:1px solid var(--line);border-radius:var(--radius);padding:35px;background:var(--surface)}.contact-form-wrapper>h2{font-size:25px;margin-bottom:11px}.form-intro{font-size:12px;color:var(--muted);margin-bottom:27px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.form-field{margin-bottom:19px;min-width:0}.form-field label{font-size:12px;font-weight:500;color:var(--navy);display:block;margin-bottom:7px}.form-field label span{font-weight:400;color:var(--muted);font-size:10px}input,select,textarea{display:block;width:100%;min-height:46px;border:1px solid #d8cdbf;background:#fff;border-radius:var(--radius-sm);color:var(--navy);padding:10px 12px;font-size:14px;line-height:1.6}textarea{resize:vertical;min-height:135px}select{padding-right:30px;text-overflow:ellipsis}input::placeholder,textarea::placeholder{color:#7d6a52;font-size:12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:2px}input[type=checkbox],input[type=radio]{display:inline;width:auto;min-height:0}.form-note{font-size:11px;line-height:1.8;color:var(--muted);margin-bottom:20px}.form-note a{text-decoration:underline}.context-banner{padding:12px 15px;background:#ede7e0;border-left:3px solid var(--teal);font-size:12px;color:var(--navy);border-radius:var(--radius-sm);margin-bottom:24px}.form-status,.wpcf7 form .wpcf7-response-output{padding:15px;border-radius:var(--radius-sm);font-size:13px;margin:20px 0 0;border:1px solid #d9ccbd;background:#e9f3f2;color:var(--navy)}.wpcf7-form .form-row p,.wpcf7-form .form-field p{margin:0}.wpcf7-form br{display:none}.wpcf7-form label{display:block}.wpcf7-not-valid-tip{color:#ac2734;font-size:12px;margin-top:5px}.wpcf7-form .btn{width:auto}.wpcf7-spinner{margin:10px;vertical-align:middle}.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{background:#fff2ee;border-color:#ca887d}.article-hero .lead{font-size:17px}.article-layout{display:grid;grid-template-columns:240px minmax(0,760px);gap:90px}.article-toc{position:sticky;top:110px;font-size:12px}.article-toc>strong{display:block;color:var(--navy);margin-bottom:16px}.article-toc nav{display:flex;flex-direction:column;gap:6px}.article-toc a{padding:5px 0;display:block;font-size:12px;color:var(--muted)}.article-content h2{font-size:26px;margin:45px 0 19px;scroll-margin-top:120px}.article-content h2:first-child{margin-top:0}.article-content h3{font-size:18px;margin:26px 0 13px}.article-content p,.article-content li{font-size:15px;line-height:1.9}.article-content a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.article-content ul,.article-content ol{padding-left:22px}.article-content li{padding-left:5px;margin-bottom:8px}.article-content table{border-collapse:collapse;max-width:100%;font-size:13px}.article-content th,.article-content td{text-align:left;border-bottom:1px solid var(--line);padding:12px}.article-content .callout{padding:23px;background:var(--surface);border-left:3px solid var(--teal);margin:30px 0}.notice-panel{padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);max-width:720px}.utility-page{min-height:55vh}.utility-page .actions{margin-bottom:20px}
/* Footer */
.footer{background:#f9f7f4;border-top:1px solid var(--line);padding:64px 0 0}.footer-top{display:grid;grid-template-columns:1.35fr 1fr 1fr .6fr;gap:43px;padding-bottom:50px}.footer-brand .brand{margin-bottom:22px}.footer-brand .brand img{width:190px}.footer-brand p{font-size:12px;line-height:1.9;max-width:280px;margin-bottom:22px}.footer-brand>a:not(.brand),.footer-brand>span{display:block;font-size:11px;color:var(--text);padding:4px 0;overflow-wrap:anywhere}.footer-col h2{font-size:11px;letter-spacing:.03em;font-weight:600;margin-bottom:17px}.footer-col>a{display:block;color:var(--muted);font-size:10px;line-height:1.65;padding:6px 0}.footer-bottom{border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.footer-bottom>div{display:flex;gap:22px}.footer-bottom a{color:var(--muted)}
@media(hover:hover) and (pointer:fine){.btn-primary:hover{background:var(--teal-dark);box-shadow:0 4px 12px #102a4315}.btn-secondary:hover,.btn-on-dark:hover{background:#f7f4f1}.text-link:hover .icon{transform:translateX(3px)}.top-link:hover,.menu-group a:hover,.footer a:hover{color:#137184}.offering-card:hover{border-color:#cfbfab;box-shadow:0 9px 25px -20px #102a4370}.area-links a:hover,.hub-jump a:hover{color:#0e5262}.service-row:hover h3{color:var(--teal)}}
@media(min-width:1500px){.home-hero{padding-top:52px}.hero-foundation{margin-top:90px}}
@media(max-width:1100px){.container{width:calc(100% - 56px)}.hero-grid{gap:36px;grid-template-columns:1.06fr 1fr}.hero-copy h1{font-size:46px}.nav-links{gap:22px}.brand img{width:185px}.section-heading{gap:40px}.section-heading>p{max-width:295px}.connect-grid,.route-feature-heading{gap:55px}.split-content{gap:55px}.detail-hero-grid{gap:50px}.area-card{--card-pad:25px}.footer-top{gap:28px}.contact-grid{gap:60px}.article-layout{gap:55px}.workflow-grid li{padding:22px 19px}.workflow-grid>li>.icon{right:20px}}
@media(max-width:900px){:root{--header:72px}.section{padding:72px 0}.navbar{background:#fff}.nav-links{display:none;position:absolute;top:var(--header);right:0;left:0;max-height:calc(100dvh - var(--header));overflow-y:auto;padding:24px 28px 30px;align-items:stretch;flex-direction:column;gap:12px;background:#fff;border-bottom:1px solid var(--line);z-index:82}.nav-links.open{display:flex}.nav-links>.top-link{min-height:44px}.nav-cta{margin:8px 0 0;align-self:flex-start}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:10px}.menu-toggle span{display:block;width:22px;height:1.5px;background:var(--navy);transition:transform 160ms var(--ease),opacity 160ms ease}.menu-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.solutions-trigger{justify-content:space-between}.solutions-trigger .top-link{flex:1}.solutions-toggle{width:44px;border:1px solid var(--line);border-radius:var(--radius-sm)}.solutions-menu{position:static;transform:none;width:100%;box-shadow:none;margin-top:10px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.menu-intro{display:none}.menu-grid{grid-template-columns:1fr 1fr;gap:25px}.menu-group>a{font-size:12px;padding:9px 0}.menu-group .menu-heading{font-size:10px}.mobile-overlay.active{display:block;position:fixed;inset:var(--header) 0 0;background:#102a4375;z-index:70}.hero-grid{grid-template-columns:1fr 1fr;gap:28px}.home-hero{padding-top:40px}.hero-copy h1{font-size:40px}.hero-copy .lead{font-size:15px}.hero-copy .eyebrow{font-size:8px}.hero-copy .actions{gap:10px}.hero-copy .btn{font-size:11px;padding:12px 13px}.hero-copy .hero-note{font-size:10px}.hero-foundation{margin-top:48px;font-size:10px;gap:20px}.area-grid{grid-template-columns:repeat(2,1fr)}.area-card:nth-child(3n){border-right:1px solid var(--line)}.area-card:nth-child(2n){border-right:0}.area-card:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.area-card:nth-last-child(-n+2){border-bottom:0}.section-heading{display:block}.section-heading>p{max-width:580px;margin-top:20px}.connect-grid{gap:40px}.connect-grid h2{font-size:31px}.connect-grid .lead{font-size:14px}.service-row{gap:14px;padding:25px 0}.service-row h3{font-size:15px}.service-row p{font-size:12px}.service-row .card-icon{width:38px;height:38px}.route-feature-heading{gap:50px}.route-feature .lead{font-size:14px}.workflow-grid,.route-feature .workflow-grid{grid-template-columns:repeat(2,1fr)}.offering-grid{grid-template-columns:repeat(2,1fr)}.detail-hero-grid{grid-template-columns:1.15fr .85fr;gap:35px}.detail-hero h1{font-size:41px}.detail-tagline{font-size:20px}.detail-hero .lead{font-size:14px}.detail-hero .btn{font-size:11px;padding:12px 15px}.focus-heading{padding:17px 15px;gap:9px;font-size:10px}.focus-panel ol{padding:10px 16px}.focus-panel li{gap:12px}.focus-panel li strong{font-size:10px}.focus-panel>p{margin:0 16px 20px;font-size:10px}.split-content{gap:40px;grid-template-columns:.9fr 1.2fr}.split-content h2{font-size:30px}.split-content .lead{font-size:15px}.capability-grid{grid-template-columns:repeat(2,1fr)}.workflow-section .workflow-grid{grid-template-columns:repeat(2,1fr)}.cta-panel{padding:37px;gap:35px}.cta-panel h2{font-size:28px}.cta-panel p:not(.eyebrow){font-size:13px}.final-cta{padding-top:0}.footer-top{grid-template-columns:1.15fr 1fr 1fr;gap:35px}.footer-top>.footer-col:last-child{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0 25px;align-items:center}.footer-top>.footer-col:last-child h2{margin:0 15px 0 0}.contact-grid{grid-template-columns:.8fr 1.2fr;gap:35px}.contact-form-wrapper{padding:27px}.form-row{grid-template-columns:1fr;gap:0}.contact-method>a{font-size:12px}.article-layout{grid-template-columns:180px minmax(0,1fr);gap:40px}}
@media(max-width:650px){.container{width:calc(100% - 40px)}:root{--header:68px}body{font-size:15px}.brand img{width:177px}.section{padding:58px 0}h1{font-size:39px}h2{font-size:30px}.lead{font-size:16px}.eyebrow{font-size:9px;margin-bottom:15px}.home-hero{padding-top:28px}.hero-grid{grid-template-columns:1fr;gap:35px}.hero-copy h1{font-size:clamp(37px,9.3vw,52px);line-height:1.095;max-width:520px}.hero-copy .eyebrow{font-size:8px;letter-spacing:.09em}.hero-copy .lead{font-size:15px;line-height:1.8;margin-top:21px;max-width:470px}.hero-copy .actions{margin-top:24px}.hero-copy .btn{min-height:47px;padding:12px 15px;font-size:11px;gap:9px}.hero-note{margin-top:19px}.hero-copy .hero-note{font-size:10px}.hero-foundation{margin-top:35px;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:11px 24px;font-size:9px;padding-block:20px}.hero-foundation span{gap:8px}.section-heading{margin-bottom:28px}.section-heading .eyebrow{margin-bottom:13px}.section-heading>p{font-size:14px;margin-top:18px}.area-grid{grid-template-columns:1fr}.area-card{--card-pad:26px}.area-card:nth-child(n){border-right:0;border-bottom:1px solid var(--line)}.area-card:last-child{border-bottom:0}.area-card .card-icon{width:41px;height:41px;margin-bottom:18px}.area-card h3{font-size:20px}.area-card>p{font-size:14px;max-width:none;margin-bottom:14px}.area-links a{font-size:12px;min-height:44px}.section-tail{margin-top:23px}.connect-grid,.route-feature-heading{grid-template-columns:1fr;gap:34px}.connect-grid h2{font-size:31px}.connect-grid .lead{font-size:15px;margin-top:21px}.service-row{padding:23px 0;gap:15px}.service-row h3{font-size:16px}.service-row p{font-size:12px}.route-feature-heading{margin-bottom:32px;gap:26px}.route-feature h2{font-size:34px}.route-feature .lead{font-size:15px}.route-feature .workflow-grid{grid-template-columns:1fr 1fr;gap:12px}.workflow-grid li{padding:20px 17px}.workflow-grid h3{font-size:14px}.workflow-grid p{font-size:11px}.workflow-grid>li>.icon{width:15px;height:15px;top:29px;right:17px}.step-number{width:30px;height:30px;margin-bottom:18px}.route-feature .caption{font-size:10px}.final-cta{padding-top:0}.cta-panel{padding:30px 25px;flex-direction:column;align-items:flex-start;gap:26px}.cta-panel h2{font-size:29px}.cta-panel p:not(.eyebrow){font-size:14px}.cta-panel>div:last-child{width:100%}.cta-panel .actions{align-items:stretch}.cta-contact{font-size:11px;margin-top:15px}.breadcrumbs{font-size:10px;padding-top:20px;gap:6px}.page-hero{padding:28px 0 40px}.page-hero .lead{font-size:15px;margin-top:21px}.hub-jump{gap:8px;margin-top:28px}.hub-jump a{font-size:10px;padding:8px 12px}.offering-grid,.two-columns{grid-template-columns:1fr;gap:16px}.offering-card{--card-pad:26px}.offering-card .card-icon{margin-bottom:19px}.offering-card h3{font-size:22px}.offering-card>p:not(.card-category){font-size:14px}.offering-card .text-link{font-size:12px}.detail-hero{padding:37px 0 42px}.detail-hero-grid{grid-template-columns:1fr;gap:30px}.detail-hero h1{font-size:40px}.detail-hero .eyebrow{font-size:9px}.detail-tagline{font-size:21px;margin-top:20px}.detail-hero .lead{font-size:15px}.detail-hero .btn{font-size:12px;padding:12px 15px}.focus-panel{max-width:500px}.focus-heading{font-size:12px;padding:18px}.focus-panel ol{padding:10px 20px;display:grid;grid-template-columns:1fr 1fr;column-gap:14px}.focus-panel li{gap:9px;align-items:center;padding-block:12px;min-height:60px}.focus-panel li strong{font-size:11px}.focus-panel li>span:first-child{width:25px;height:25px}.focus-line{display:none}.focus-panel>p{font-size:11px;margin:0 20px 20px}.page-jump>.container{width:100%;padding-inline:20px;gap:25px}.page-jump a{font-size:11px;min-height:49px}.split-content{grid-template-columns:1fr;gap:27px}.split-content h2{font-size:30px}.split-content .lead{font-size:16px}.capability-grid{grid-template-columns:1fr;gap:5px}.capability-grid article{padding:25px 0}.capability-number{margin-bottom:14px}.capability-grid h3{font-size:20px}.capability-grid p{font-size:14px}.workflow-section .workflow-grid{grid-template-columns:1fr;gap:12px}.workflow-section .workflow-grid li{display:flex;gap:17px;padding:22px}.workflow-section .step-number{flex-shrink:0;margin:0}.workflow-section .workflow-grid h3{font-size:16px;padding-right:25px;margin-top:3px}.workflow-section .workflow-grid p{font-size:13px}.workflow-section .workflow-grid>li>.icon{top:30px;right:21px}.report-list article{gap:13px;padding:23px 0}.report-list article>span{width:25px}.report-list h3{font-size:17px}.faq-list summary{font-size:14px;padding:21px 0}.faq-list details>div{padding-right:10px;font-size:14px}.contact-hero{padding-bottom:38px}.contact-section{padding-top:0}.contact-grid{grid-template-columns:1fr;gap:32px}.contact-aside{padding-top:0}.contact-aside>p{max-width:none}.contact-method{padding:18px 0}.contact-method>a{font-size:14px}.contact-form-wrapper{padding:26px 21px}.form-field label{font-size:12px}input,select,textarea{font-size:16px}.form-note{font-size:11px}.contact-form-wrapper .btn{width:100%}.contact-location{margin:24px 0}.article-layout{grid-template-columns:1fr;gap:32px}.article-toc{position:static;padding-bottom:22px;border-bottom:1px solid var(--line)}.article-toc nav{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.article-toc a{font-size:11px}.article-content h2{font-size:25px}.article-content p,.article-content li{font-size:14px}.article-content{overflow-wrap:anywhere}.footer{padding-top:44px}.footer-top{grid-template-columns:1fr 1fr;gap:35px 25px;padding-bottom:32px}.footer-brand{grid-column:1/-1}.footer-brand p{max-width:400px;font-size:13px}.footer-brand>a:not(.brand),.footer-brand>span{font-size:12px;min-height:30px}.footer-col h2{font-size:12px}.footer-col>a{font-size:11px;padding:8px 0}.footer-top>.footer-col:last-child{gap:0 24px}.footer-top>.footer-col:last-child h2{width:100%;margin-bottom:10px}.footer-bottom{flex-direction:column;gap:12px;font-size:9px;padding-block:22px}.footer-bottom>div{flex-wrap:wrap;gap:24px}.menu-grid{grid-template-columns:1fr}.solutions-menu{padding:20px}.menu-group>a{font-size:12px;min-height:40px}.menu-group .menu-heading{font-size:10px}.nav-links{padding-inline:20px}.top-link{font-size:14px}.nav-cta{min-height:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.btn:active{transform:none}}
@media print{.navbar,.footer,.page-jump,.actions,.final-cta,.skip-link,.article-toc{display:none}.section-heading,.capability-grid article,.offering-grid article,.report-list article,.split-content>div,.area-card,.service-row,.workflow-grid>li,.flow-compact>li,.faq-list>details{opacity:1!important;transform:none!important;transition:none!important}.container{width:100%}.section{padding:25px 0}.hero-grid,.detail-hero-grid,.split-content,.article-layout{display:block}a{color:inherit}.offering-card,.area-card,.workflow-grid li{break-inside:avoid}}
/* --- enhancement layer --- */
.detail-product-name{display:inline-flex;align-items:center;gap:9px;margin:0 0 16px;font-size:13px;font-weight:600;letter-spacing:.045em;color:var(--muted)}
.detail-product-name::before{content:"";width:20px;height:1px;background:var(--teal);opacity:.7}
/* Blueprint grid behind hero areas — engineering precision, masked so it fades out. */
.home-hero,.page-hero,.detail-hero{position:relative;isolation:isolate}
/* Hairline accent under section headings, where the top margin separates it from the h2. */
.section-heading>div>h2::after{content:"";display:block;width:54px;height:2px;margin-top:20px;border-radius:2px;background:linear-gradient(90deg,var(--teal),rgba(30,95,112,0))}
/* The same accent at the TOP of a hero needs no top margin - it was adding 20px of dead space. */
.home-hero::before,.page-hero::before{content:"";display:block;width:54px;height:2px;margin-top:0;border-radius:2px;background:linear-gradient(90deg,var(--teal),rgba(30,95,112,0))}
/* Depth and motion on interactive cards. */
.capability-grid article,.report-list article,.offering-grid article{transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease)}
.capability-grid article:hover,.report-list article:hover,.offering-grid article:hover{transform:translateY(-3px);box-shadow:0 20px 44px -30px rgba(16,42,67,.5)}
/* Technical numerals. */
.capability-number{font-variant-numeric:tabular-nums;letter-spacing:.07em}
/* Hero entrance — CSS-only, so content never depends on JS, and motion-safe. */
@keyframes africube-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.home-hero .container>*,.page-hero .container>*,.detail-hero-grid>*{animation:africube-rise .65s var(--ease) both}
.home-hero .container>*:nth-child(2),.page-hero .container>*:nth-child(2),.detail-hero-grid>*:nth-child(2){animation-delay:.07s}
.home-hero .container>*:nth-child(3),.page-hero .container>*:nth-child(3){animation-delay:.14s}
@media (prefers-reduced-motion:reduce){.home-hero .container>*,.page-hero .container>*,.detail-hero-grid>*{animation:none}.capability-grid article:hover,.report-list article:hover,.offering-grid article:hover{transform:none}}
/* ============ COLOUR & LIFE ============ */
/* Headline accent: the logo's own cyan, not a flat muted teal. */
/* Brighter hairline. */
.section-heading>div>h2::after{background:linear-gradient(90deg,var(--teal),rgba(30,95,112,0))}
/* Eyebrow marker gets the live colour. */
.eyebrow{color:var(--teal)}
.status-dot,.visual-dot{background:var(--teal);box-shadow:0 0 0 4px var(--cyan-soft)}
/* Cards: colour and lift on hover, not just a grey shadow. */
.capability-grid article:hover,.report-list article:hover,.offering-grid article:hover{border-color:#ded2c3}
.capability-number{color:var(--cyan);font-variant-numeric:tabular-nums;letter-spacing:.07em}
/* Primary button: subtle depth plus a live hover. */
.btn-primary{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px -18px rgba(16,42,67,.55)}
.btn .icon,.btn-primary .icon{transition:transform .3s var(--ease)}
.btn:hover .icon{transform:translateX(4px)}
/* Blueprint grid picks up a faint cyan cast. */

/* Menu + text links: animated underline. */
.top-link{position:relative}
.top-link::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;border-radius:2px;background:var(--teal);transition:right .32s var(--ease)}
.top-link:hover::after{right:0}
/* ============ MOTION ============ */
html.reveal-armed:not(.reveal-off) .section-heading,
html.reveal-armed:not(.reveal-off) .capability-grid article,
html.reveal-armed:not(.reveal-off) .offering-grid article,
html.reveal-armed:not(.reveal-off) .report-list article,
html.reveal-armed:not(.reveal-off) .split-content>div,
html.reveal-armed:not(.reveal-off) .area-card,
html.reveal-armed:not(.reveal-off) .service-row,
html.reveal-armed:not(.reveal-off) .workflow-grid>li,
html.reveal-armed:not(.reveal-off) .flow-compact>li,
html.reveal-armed:not(.reveal-off) .faq-list>details{opacity:0;transform:translateY(24px);transition:opacity .72s var(--ease),transform .72s var(--ease)}
html.reveal-armed .rv-in{opacity:1!important;transform:none!important}
html.reveal-armed:not(.reveal-off) .capability-grid article:nth-child(2),html.reveal-armed:not(.reveal-off) .offering-grid article:nth-child(2),html.reveal-armed:not(.reveal-off) .area-card:nth-child(2),html.reveal-armed:not(.reveal-off) .workflow-grid>li:nth-child(2){transition-delay:.08s}
html.reveal-armed:not(.reveal-off) .capability-grid article:nth-child(3),html.reveal-armed:not(.reveal-off) .offering-grid article:nth-child(3),html.reveal-armed:not(.reveal-off) .area-card:nth-child(3),html.reveal-armed:not(.reveal-off) .workflow-grid>li:nth-child(3){transition-delay:.16s}
html.reveal-armed:not(.reveal-off) .capability-grid article:nth-child(4),html.reveal-armed:not(.reveal-off) .offering-grid article:nth-child(4),html.reveal-armed:not(.reveal-off) .area-card:nth-child(4),html.reveal-armed:not(.reveal-off) .workflow-grid>li:nth-child(4){transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
 html.reveal-armed .section-heading,html.reveal-armed .capability-grid article,html.reveal-armed .offering-grid article,html.reveal-armed .report-list article,html.reveal-armed .split-content>div,html.reveal-armed .area-card,html.reveal-armed .service-row,html.reveal-armed .workflow-grid>li,html.reveal-armed .flow-compact>li,html.reveal-armed .faq-list>details{opacity:1!important;transform:none!important;transition:none}
 .status-dot,.visual-dot{animation:none}
 .btn-primary:hover{transform:none}
}
.step-number{color:var(--cyan);font-variant-numeric:tabular-nums}
.card-icon{transition:transform .4s var(--ease),color .4s var(--ease)}
.area-card:hover .card-icon,.service-row:hover .card-icon{transform:scale(1.04)}
/* ===== "Built with" marquee — restored, with real movement and colour ===== */
.tech-marquee{padding:92px 0;background:var(--surface);overflow:hidden;position:relative}
.tech-marquee .section-heading{text-align:center;justify-items:center;margin-bottom:46px}
.tech-marquee .section-heading>div>h2::after{margin-inline:auto}
.tech-marquee-rows{display:flex;flex-direction:column;gap:15px;width:100%}
.tech-row{display:flex;width:max-content;gap:12px;animation:africube-marquee var(--row-speed,60s) linear infinite;will-change:transform}
.tech-row.reverse{animation-direction:reverse}
.tech-marquee:hover .tech-row{animation-play-state:paused}
@keyframes africube-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tech-chip{display:inline-flex;align-items:center;gap:10px;padding:12px 21px;background:var(--white);border:1px solid var(--line);border-radius:50px;font-size:15px;font-weight:600;color:var(--navy);white-space:nowrap;flex-shrink:0;box-shadow:0 1px 2px rgba(16,42,67,.04)}
.tech-chip .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.tech-chip .dot.ai{background:var(--teal)}
.tech-chip .dot.web{background:#3a5f8a}
.tech-chip .dot.backend{background:#6b4a86}
.tech-chip .dot.data{background:#7d5a16}
.tech-chip .dot.cloud{background:#55606b}
.tech-chip .dot.local{background:#2f6b4f}



.tech-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 28px;margin-top:46px;font-size:13px;color:var(--muted)}
.tech-legend-item{display:inline-flex;align-items:center;gap:8px}
.tech-legend-item .dot{width:7px;height:7px;border-radius:50%}
@media (max-width:760px){.tech-marquee{padding:70px 0}.tech-chip{padding:10px 17px;font-size:14px}}
@media (prefers-reduced-motion:reduce){.tech-row{animation:none;width:auto;flex-wrap:wrap;justify-content:center}.tech-chip[aria-hidden="true"]{display:none}}

/* ---- Photography -------------------------------------------------------- */
/* Warm paper frame, square-ish corners: editorial rather than app-like. */
.photo{margin:0;position:relative}
.photo img{display:block;width:100%;height:auto;border-radius:var(--radius-sm);background:var(--surface)}
.photo figcaption{margin-top:12px;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.hero-visual{position:relative}
.hero-photo img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);box-shadow:0 24px 60px -32px rgba(26,22,20,.38)}



.section-photo{margin-top:40px}
.section-photo img{aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-sm)}
@media(max-width:900px){}
@media(max-width:600px){}

/* Cards that lead with a photograph rather than an icon. */
.offering-card.has-photo{padding-top:0;overflow:hidden}
.offering-card .card-photo{align-self:stretch;margin:0 calc(-1 * var(--card-pad)) 22px}
.offering-card .card-photo img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:0}
@media(max-width:600px){.offering-card .card-photo{margin-bottom:18px}}

.page-hero-photo{margin-top:40px}
.page-hero-photo img{aspect-ratio:2/1;object-fit:cover;border-radius:var(--radius-sm);box-shadow:0 22px 56px -34px rgba(26,22,20,.36)}

/* Business-area cards and homepage service rows that lead with photography. */
.area-card.has-photo{padding-top:0;overflow:hidden}
.area-card .card-photo{align-self:stretch;margin:0 calc(-1 * var(--card-pad)) 20px}
.area-card .card-photo img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:0}
.service-row .row-photo{flex:0 0 96px;display:block;align-self:flex-start}
.service-row .row-photo img{display:block;width:96px;height:64px;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface)}
@media(max-width:600px){.service-row .row-photo{flex-basis:72px}.service-row .row-photo img{width:72px;height:48px}}

/* WhatsApp call to action on the contact page: on-brand, not a green sticker. */
.btn-whatsapp{margin:22px 0 28px;width:100%}
.btn-whatsapp .icon{width:19px;height:19px}
@media(max-width:600px){.btn-whatsapp{margin:18px 0 24px}}

/* Legend dots share the chip dot colours so the key cannot drift from what it labels. */
.tech-legend-item .dot.ai{background:var(--teal)}
.tech-legend-item .dot.web{background:#3a5f8a}
.tech-legend-item .dot.backend{background:#6b4a86}
.tech-legend-item .dot.data{background:#7d5a16}
.tech-legend-item .dot.cloud{background:#55606b}
.tech-legend-item .dot.local{background:#2f6b4f}
/* WCAG 2.2.2 Pause, Stop, Hide: a keyboard-reachable control, not just hover. */
.marquee-toggle{margin-left:auto;padding:7px 14px;background:transparent;border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);font-size:12px;font-weight:600;color:var(--muted);line-height:1.5}
.marquee-toggle:hover{color:var(--navy);border-color:var(--navy)}
.tech-marquee.paused .tech-row{animation-play-state:paused}
@media(max-width:600px){.marquee-toggle{margin:12px 0 0;width:100%}}

/* /solutions/ routing cards: three ways in, no catalogue repetition. */
.route-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;grid-auto-rows:1fr}
.route-card{--card-pad:30px;display:flex;flex-direction:column;align-items:flex-start;padding:var(--card-pad);
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);height:100%;
  transition:border-color .45s var(--ease),transform .45s var(--ease)}
.route-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.route-card h2{font-size:24px;margin:0 0 12px}
.route-card>p{line-height:1.75;margin-bottom:20px}
.route-card .text-link{margin-top:auto}
@media(max-width:900px){.route-cards{grid-template-columns:1fr;gap:16px}.route-card{--card-pad:26px}}

/* Insights index cards. */
.insight-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;grid-auto-rows:1fr}
.insight-card{--card-pad:30px;display:flex;flex-direction:column;align-items:flex-start;padding:var(--card-pad);
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);height:100%;
  transition:border-color .45s var(--ease),transform .45s var(--ease)}
.insight-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.insight-card h2{font-size:23px;margin:0 0 12px}
.insight-card>p{line-height:1.75;margin-bottom:20px}
.insight-card .text-link{margin-top:auto}
@media(max-width:900px){.insight-cards{grid-template-columns:1fr;gap:16px}.insight-card{--card-pad:26px}}

/* Hardware supply (2.4.0). Product images only: manufacturers' cut-outs on a cream box with
   object-fit contain, so nothing is cropped. One card design serves the static list (.stock-card)
   and the owner's live WordPress list (.stock-grid--live > .wp-block-group). Every card rule uses
   the same :is() prefix, so both have equal specificity and block-library or layout styles
   (margins, block gap) cannot shift either; spacing comes from the card's own gap. */
.stock-list{display:flex;flex-direction:column;align-items:stretch}
.stock-group-heading{margin:0 0 18px;font-family:var(--font);font-size:12px;line-height:1.5;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--teal)}
.stock-grid+.stock-group-heading{margin-top:48px}
.stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0;padding:0}
.stock-card,.stock-grid--live>.wp-block-group{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0;margin:0;padding:0 24px 24px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}
/* A classic theme gets each group's blocks wrapped in .wp-block-group__inner-container: it is
   see-through, so the owner's blocks sit in the card exactly like the static card's children. */
.stock-grid--live>.wp-block-group>.wp-block-group__inner-container{display:contents}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>*{margin:0;max-width:none;font-size:13px;line-height:1.6;color:var(--text)}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>figure{margin:0 -24px 10px;padding:20px 24px 12px;background:var(--cream);border-bottom:1px solid var(--line);border-radius:0}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>figure img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:transparent;border-radius:0;box-shadow:none}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>figure figcaption{margin:10px 0 0;font-size:10px;line-height:1.5;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);text-align:left}
/* Product names in the sans face: in the display serif, model numbers blur ("G11" reads "Gll"). */
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>:is(h3,h4){font-family:var(--font);font-size:17px;line-height:1.4;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>.stock-availability{margin:-2px 0 2px;font-size:10px;line-height:1.5;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--teal)}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>:is(.stock-type,.stock-number,.stock-note){font-size:12px;color:var(--muted)}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>ul{list-style:none;margin:6px 0 4px;padding:0}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>ul>li{margin:0;padding:7px 0;border-top:1px solid var(--line)}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>ul>li:last-child{border-bottom:1px solid var(--line)}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>.stock-os{font-weight:600;color:var(--teal-dark)}
/* The price slot and the quote link sit at the foot of every card, level across a row. */
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>.stock-price{margin-top:auto;padding-top:14px;font-size:15px;font-weight:600;color:var(--navy)}
:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>.text-link{min-height:40px;font-size:12px;font-weight:600;color:var(--teal)}
/* Without a price slot (a card the owner built from scratch), the quote link takes the foot. In the
   live list the theme adds the link after the inner container, so this keys on the card, not a sibling. */
:is(.stock-card,.stock-grid--live>.wp-block-group):not(:has(.stock-price))>.text-link{margin-top:auto}
/* Small print after the list: the on-request sentence, the "List updated" line and the notice.
   In the live list, anything that is not a card (the seed's closing paragraph, a heading the
   owner adds) spans the grid. */
.stock-grid--live>:not(.wp-block-group){grid-column:1/-1;margin:6px 0 0;max-width:820px;font-size:12px;line-height:1.7;color:var(--muted)}
.stock-grid--live>:is(h2,h3,h4){margin:26px 0 0;font-family:var(--font);font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--teal)}
.stock-on-request,.stock-updated,.stock-notice{max-width:820px;margin:0;font-size:12px;line-height:1.7;color:var(--muted)}
.stock-on-request{margin-top:28px;font-size:14px;color:var(--text)}
.stock-updated{margin-top:14px}
.stock-notice{margin-top:6px}
.stock-grid--live+.stock-updated{margin-top:18px}
@media(max-width:900px){.stock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.stock-grid{grid-template-columns:1fr;gap:16px}.stock-card,.stock-grid--live>.wp-block-group{padding:0 20px 20px}:is(.stock-card,.stock-grid--live>.wp-block-group,.stock-grid--live>.wp-block-group>.wp-block-group__inner-container)>figure{margin:0 -20px 8px;padding:16px 20px 10px}.stock-grid+.stock-group-heading{margin-top:36px}}
/* Category cards on the hub and the homepage: a product image, or the icon in a box of the same shape. */
.offering-card .card-photo--product,.offering-card .card-visual{background:var(--cream);border-bottom:1px solid var(--line)}
.offering-card .card-photo--product img{object-fit:contain;padding:18px 28px;background:transparent}
.offering-card .card-visual{align-self:stretch;margin:0 calc(-1 * var(--card-pad)) 22px;aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;color:var(--teal)}
.offering-card .card-visual .icon{width:72px;height:72px;stroke-width:1.1}
@media(max-width:600px){.offering-card .card-visual{margin-bottom:18px}}
/* Category hero: the product on a cream card, captioned as representative. */
.hardware-visual .photo{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-card);padding:28px 28px 16px}
.hardware-visual .photo img{aspect-ratio:4/3;object-fit:contain;background:transparent;border-radius:0}
.hardware-visual .photo figcaption{margin-top:10px;font-size:10px}
/* Small-print notices: trademarks and product images. */
.hardware-notice{margin-top:56px;padding-top:20px;border-top:1px solid var(--line)}
.hardware-notice p,.hardware-notice-inline{max-width:820px;font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.hardware-notice-inline{margin-top:20px}
/* Homepage band after #sell-online; the rule keeps it apart from the plain section below. */
.hardware-home{border-bottom:1px solid var(--line)}
/* /solutions/ chooser with the hardware card: two by two, one column on tablets and phones. */
.route-cards.route-cards--four{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.route-cards.route-cards--four{grid-template-columns:1fr}}
/* Three-step quote workflows. */
.workflow-grid.workflow-grid--three{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.workflow-grid.workflow-grid--three{grid-template-columns:1fr}}
/* Footer: the hardware links share the services column under their own heading. */
.footer-col>a+h2{margin-top:26px}
