@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');:root{--red:#b70002;--reddeep:#6a0307;--navy:#091358;--ink:#17213d;--muted:#6883a1;--paper:#fcfff9;--line:#d8e0e8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Inter,'Segoe UI',Arial,sans-serif}a{color:inherit}.container{width:min(1180px,calc(100% - 48px));margin:auto}.top{height:76px;background:#fcfff9;display:flex;justify-content:space-between;align-items:center}.brand{font-weight:900;letter-spacing:.11em;font-size:22px;color:var(--navy);text-decoration:none}.brand span{color:var(--red)}.top nav{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:800}.top nav a{text-decoration:none}.top nav a:hover{color:var(--red)}.top nav .contact-link{background:var(--navy);padding:12px 18px;color:#fff;border-radius:5px}.hero{background:radial-gradient(circle at 75% 5%,#e74b47 0,transparent 33%),linear-gradient(125deg,#6a0307,#b70002 59%,#950006);color:#fff;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:640px;height:640px;border:1px solid #ffffff20;border-radius:50%;right:-240px;top:-340px;box-shadow:0 0 0 80px #ffffff08,0 0 0 160px #ffffff05}.hero-grid{min-height:630px;padding:74px 0 85px;display:grid;grid-template-columns:1.04fr .96fr;gap:65px;align-items:center;position:relative}.eyebrow{text-transform:uppercase;font-weight:800;letter-spacing:.16em;font-size:15px;color:var(--red)}.hero .eyebrow{color:#ffe3e2}.hero h1{font-size:clamp(48px,5.5vw,75px);letter-spacing:-.065em;line-height:1.03;margin:23px 0}.hero p{font-size:19px;max-width:570px;color:#fff0ef}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:32px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:16px;padding:15px 23px;background:var(--navy);color:#fff;border-radius:5px;text-decoration:none;font-size:13px;font-weight:800;transition:transform .25s,box-shadow .25s}.btn:hover{transform:translateY(-3px);box-shadow:0 12px 26px #3c031f44}.btn.light{background:#fff;color:var(--navy)}.btn.outline{background:transparent;border:1px solid #ffffffa0}.visual{position:relative;padding:18px}.video-card{position:relative;aspect-ratio:4/4.4;border-radius:16px;overflow:hidden;border:8px solid #ffffffd9;box-shadow:0 35px 65px #2a001e88;background:#1b263e}.video-card img,.video-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.video-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0d143ca8,transparent 60%)}.video-caption{position:absolute;z-index:2;bottom:23px;left:27px;right:27px;color:#fff;font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:800}.floating-note{position:absolute;z-index:3;left:-30px;bottom:50px;background:var(--paper);color:var(--navy);padding:17px 22px;border-radius:9px;box-shadow:0 18px 35px #38001d55;max-width:220px;font-weight:800;line-height:1.3;animation:float 5s ease-in-out infinite}.floating-note:before{content:"↗";display:block;color:var(--red);font-size:23px;margin-bottom:8px}@keyframes float{50%{transform:translateY(-8px)}}.trust{background:white;border-bottom:1px solid var(--line)}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr)}.trust-grid div{padding:22px 28px;border-right:1px solid var(--line);font-size:13px;font-weight:700;color:var(--navy);display:flex;gap:13px;align-items:center}.trust-grid div:first-child{padding-left:0}.trust-grid div:last-child{border:0}.trust-grid b{color:var(--red);font-size:20px}.intro{padding:105px 0;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.section-title{font-size:clamp(37px,4.3vw,58px);line-height:1.08;letter-spacing:-.05em;margin:16px 0 21px;color:var(--navy)}.intro p,.section-lead{font-size:18px;color:#536881}.intro-right{background:#f2f5f8;border:1px solid #dfe6ec;padding:36px;border-radius:14px}.intro-right p{margin:0 0 19px}.intro-right strong{color:var(--red);font-size:13px;text-transform:uppercase;letter-spacing:.1em}.services{background:#f3f6f8;padding:100px 0}.services-head{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:38px}.services-head p{max-width:400px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:white;border:1px solid #dce4eb;border-radius:12px;overflow:hidden;box-shadow:0 8px 26px #09135808;transition:transform .32s,box-shadow .32s,border-color .32s}.card:hover{transform:translateY(-9px);box-shadow:0 25px 50px #09135826;border-color:#f0b2b2}.card-image{height:205px;position:relative;overflow:hidden;background:#14263c}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .55s}.card:hover .card-image img{transform:scale(1.09)}.card-icon{position:absolute;right:17px;bottom:-1px;background:#fff;color:var(--red);padding:8px 14px 0;border-radius:8px 8px 0 0;font-size:23px}.card-body{padding:24px 25px 28px}.card-body small{color:var(--red);font-weight:800;letter-spacing:.13em}.card h3{font-size:22px;line-height:1.15;color:var(--navy);letter-spacing:-.035em;margin:11px 0}.card p{font-size:14px;color:#61738a;margin:0}.split{padding:110px 0;display:grid;grid-template-columns:.92fr 1.08fr;gap:80px;align-items:center}.illustration{height:470px;border-radius:16px;background:linear-gradient(140deg,#e8eef5,#fcfff9);border:1px solid #dce5ec;position:relative;overflow:hidden;display:grid;place-items:end center}.illustration:before{content:"";width:370px;height:370px;border:22px solid #d52828;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;position:absolute;top:34px;left:50%;transform:translateX(-50%) rotate(-45deg);opacity:.9}.illustration img{height:96%;max-width:100%;object-fit:contain;position:relative;filter:drop-shadow(0 16px 20px #0b183722);transition:transform .4s}.illustration:hover img{transform:scale(1.05) translateY(-6px)}.illustration small{position:absolute;z-index:2;bottom:12px;left:14px;background:#fff;padding:5px 9px;color:#536881;border-radius:4px}.steps{display:grid;gap:13px;margin-top:27px}.step{display:flex;gap:18px;padding:15px 0;border-top:1px solid var(--line)}.step b{color:var(--red);font-size:13px}.step strong{display:block;color:var(--navy);font-size:16px}.step span{font-size:14px;color:#61738a}.projects{background:#f3f6f8;padding:95px 0}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:35px}.project{position:relative;min-height:250px;border-radius:12px;overflow:hidden;background:#14243a;color:white;display:flex;align-items:end;padding:25px}.project img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.62);transition:transform .5s,filter .5s}.project:hover img{transform:scale(1.1);filter:brightness(.75)}.project strong{position:relative;z-index:1;font-size:20px}.project strong:after{content:" ↗";color:#ff9b9b}.cta{background:linear-gradient(105deg,#091358,#0d0729);color:white;padding:80px 0}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:40px}.cta .eyebrow{color:#ff8181}.cta .section-title{color:white;max-width:700px}.footer{padding:32px 0;color:#aab4c7;background:#0d0729;font-size:13px}.footer .container{display:flex;justify-content:space-between}.footer a{text-decoration:none}a:focus-visible{outline:3px solid #d52828;outline-offset:3px}@media(max-width:850px){.hero-grid,.intro,.split{grid-template-columns:1fr;gap:40px}.hero-grid{padding:65px 0}.visual{max-width:500px}.video-card{aspect-ratio:1.35}.cards,.project-grid{grid-template-columns:repeat(2,1fr)}.services-head{display:block}}@media(max-width:590px){.container{width:calc(100% - 32px)}.top{height:65px}.brand{font-size:17px}.top nav{gap:13px;font-size:11px}.top nav a:first-child{display:none}.top nav .contact-link{padding:8px}.hero h1{font-size:50px}.hero-grid{padding:55px 0 65px}.visual{padding:0 0 0 15px}.floating-note{left:0;bottom:20px;font-size:12px;padding:12px}.video-card{aspect-ratio:1.1}.trust-grid{grid-template-columns:1fr}.trust-grid div{padding:12px 0;border-right:0;border-bottom:1px solid var(--line)}.intro,.split{padding:75px 0}.services,.projects{padding:75px 0}.cards,.project-grid{grid-template-columns:1fr}.illustration{height:390px}.cta-inner{display:block}.footer .container{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.card-image img,.illustration img,.project img,.btn{transition:none}.floating-note{animation:none}}
/* Elementor page canvas integration */
.elementor-widget-rfx-cap-hero,.elementor-widget-rfx-cap-intro,.elementor-widget-rfx-cap-services,.elementor-widget-rfx-cap-approach,.elementor-widget-rfx-cap-sectors,.elementor-widget-rfx-cap-contact{width:100%;margin:0!important}
.rfx-cap{--red:#b70002;--reddeep:#6a0307;--navy:#091358;--ink:#17213d;--muted:#6883a1;--paper:#fcfff9;--line:#d8e0e8;font:15px/1.55 Inter,'Segoe UI',Arial,sans-serif;color:var(--ink)}
.rfx-cap .container{max-width:1180px}
.rfx-cap h1,.rfx-cap h2,.rfx-cap h3,.rfx-cap p{font-family:Inter,'Segoe UI',Arial,sans-serif}
.rfx-cap a{text-decoration:none}
@media(prefers-reduced-motion:reduce){.rfx-cap video{display:none}}
/* Cards become links only after a destination is set in Elementor. */
.rfx-cap a.card{display:block;text-decoration:none;color:inherit}
.rfx-cap a.project{text-decoration:none;color:#fff}
.rfx-cap .project:not(.has-link) strong:after{content:""}
.rfx-cap a.card:focus-visible,.rfx-cap a.project:focus-visible{outline:3px solid #d52828;outline-offset:3px}
/* Motion and arrow cues only on actionable cards. */
.rfx-cap .card:not(.has-link):hover{transform:none;box-shadow:0 8px 26px #09135808;border-color:#dce4eb}
.rfx-cap .card:not(.has-link):hover .card-image img{transform:none}
.rfx-cap .project:not(.has-link):hover img{transform:none;filter:brightness(.62)}
.rfx-cap .floating-note:before{content:"✦"}
.rfx-cap .contact-details{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:18px}
.rfx-cap .contact-details a{color:#e9edf8;text-decoration:underline;text-underline-offset:4px;font-size:16px}
.rfx-cap .contact-details a:hover{color:white}
.rfx-cap .contact-actions{flex-shrink:0}
/* Elementor site-wide button colours can differ from the Redfox page controls. */
.rfx-cap .hero-actions a.btn.primary{background-color:#091358;color:#fff;border:1px solid #091358;text-decoration:none}
.rfx-cap .hero-actions a.btn.secondary{background-color:transparent;color:#fff;border:1px solid #fff;text-decoration:none}
.rfx-cap .top nav a.contact-link{background-color:#091358;color:#fff;text-decoration:none}
.rfx-cap .hero-actions a.btn:hover,.rfx-cap .top nav a.contact-link:hover{opacity:.94}
/* Cards retain their movement and lead to Contact until given a detail URL. */
.rfx-cap .project strong:after{content:""}
.rfx-cap #contact{scroll-margin-top:24px}
/* The floating note is text only; no decorative icon. */
.rfx-cap .floating-note:before{content:none;display:none}
/* Pending: section buttons and optional floating-note icon. */
.rfx-cap a.btn{color:#fff;background-color:#091358}
.rfx-cap a.btn.light{color:#091358;background-color:#fff}
.rfx-cap .rfx-note-icon{display:block;margin-bottom:9px;color:#b70002;font-size:24px;line-height:1}
.rfx-cap .rfx-note-icon svg{width:24px;height:24px;fill:currentColor}
/* Pending: image logo supplied by Redfox. */
.rfx-cap .brand{display:flex;align-items:center;flex-shrink:0}
.rfx-cap .rfx-header-logo{display:block;width:auto;max-width:220px;height:48px;object-fit:contain}
@media(max-width:590px){.rfx-cap .rfx-header-logo{height:34px;max-width:140px}}
.rfx-cap .top nav{font-size:15px;gap:30px;line-height:1.3}
@media(max-width:590px){.rfx-cap .top nav{font-size:12px;gap:12px}}

/* Keep the floating note above the caption, including before Elementor regenerates CSS. */
.rfx-cap .floating-note{bottom:125px}
@media(max-width:850px){.rfx-cap .floating-note{bottom:110px;left:-15px}}
@media(max-width:590px){.rfx-cap .floating-note{bottom:100px;left:0}}

.rfx-cap .contact-introduction{max-width:650px;font-size:17px;line-height:1.65;color:#eef1f7;margin:18px 0 24px}

/* Stack contact and footer elements with explicit gaps on mobile. */
@media(max-width:590px){
 .rfx-cap .cta-inner{display:flex;flex-direction:column;align-items:stretch;gap:28px}
 .rfx-cap .cta-inner>div{min-width:0}
 .rfx-cap .contact-details{flex-direction:column;align-items:flex-start;gap:14px}
 .rfx-cap .contact-details a{overflow-wrap:anywhere}
 .rfx-cap .contact-actions{margin-top:0}
 .rfx-cap .contact-actions .btn{max-width:100%;white-space:normal;text-align:center}
 .rfx-cap .footer .container{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
 .rfx-cap .footer .container>span,.rfx-cap .footer .container>a{display:block;max-width:100%;overflow-wrap:anywhere}
}
