:root{
  --navy:#123a60;
  --navy-950:#061626;
  --navy-900:#08213a;
  --navy-850:#0a2947;
  --navy-800:#0d2f50;
  --blue:#1d71b8;
  --blue-2:#2f8bd6;
  --white:#fff;
  --ice:#f3f7fb;
  --ice-2:#eaf2f8;
  --text:#10263a;
  --muted:#687d8d;
  --line:rgba(18,58,96,.14);
  --line-light:rgba(255,255,255,.14);
  --shadow:0 30px 80px rgba(3,21,38,.18);
  --shadow-soft:0 18px 50px rgba(18,58,96,.11);
  --ease:cubic-bezier(.2,.75,.25,1);
  --container:min(1440px,calc(100% - 96px));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--navy-950)}
body{margin:0;font-family:"Manrope",sans-serif;color:var(--text);background:var(--white);overflow-x:hidden}
body.menu-open{overflow:hidden}
::selection{background:var(--blue);color:#fff}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
img{max-width:100%;display:block}
svg{display:block}
main{overflow:hidden}
.container{width:var(--container);margin-inline:auto}

/* page entrance */
.page-transition{position:fixed;z-index:5000;inset:0;pointer-events:none;display:flex;justify-content:flex-end;overflow:hidden}
.page-transition::before{content:"";position:absolute;inset:0;background:var(--navy-950);transform:translateX(0);animation:pageOut .85s .08s var(--ease) forwards}
.page-transition span{position:absolute;right:11%;top:-10%;width:110px;height:125%;background:var(--blue);transform:skew(-18deg) translateX(0);animation:slashOut .8s .02s var(--ease) forwards}
body.leaving .page-transition{pointer-events:all}
body.leaving .page-transition::before{animation:pageIn .55s var(--ease) forwards}
body.leaving .page-transition span{animation:slashIn .55s var(--ease) forwards}
@keyframes pageOut{to{transform:translateX(102%)}}
@keyframes slashOut{to{transform:skew(-18deg) translateX(130vw)}}
@keyframes pageIn{from{transform:translateX(-102%)}to{transform:translateX(0)}}
@keyframes slashIn{from{transform:skew(-18deg) translateX(-130vw)}to{transform:skew(-18deg) translateX(0)}}

.progress{position:fixed;z-index:2000;left:0;top:0;width:100%;height:3px;background:transparent;pointer-events:none}
.progress span{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left center;will-change:transform}
.cursor-glow{position:fixed;z-index:0;width:460px;height:460px;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(29,113,184,.09),transparent 64%);opacity:0;transition:opacity .4s ease}

/* header */
.site-header{position:fixed;z-index:1000;inset:0 0 auto 0;height:108px;border-bottom:1px solid rgba(255,255,255,.13);transition:height .35s var(--ease),background .35s ease,backdrop-filter .35s ease,box-shadow .35s ease}
.site-header.scrolled{height:78px;background:rgba(6,22,38,.88);backdrop-filter:blur(18px);box-shadow:0 16px 40px rgba(2,14,26,.16)}
.nav-shell{height:100%;display:grid;grid-template-columns:minmax(250px,1fr) auto minmax(250px,1fr);align-items:center;width:min(1600px,calc(100% - 72px));margin:auto}
.brand{display:inline-flex;align-items:center;justify-self:start;position:relative;z-index:2}
.brand img{width:292px;height:auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,.14));transition:width .35s var(--ease)}
.site-header.scrolled .brand img{width:238px}
.nav-links{display:flex;align-items:center;gap:42px;color:white;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.nav-links a{position:relative;padding:12px 0;opacity:.9;transition:opacity .25s}
.nav-links a:hover{opacity:1}
.nav-links a::after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);transform-origin:left}
.header-cta{height:108px;min-width:320px;margin-right:-36px;display:flex;justify-content:center;align-items:center;gap:28px;color:#fff;background:var(--blue);font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;clip-path:polygon(11% 0,100% 0,100% 100%,0 100%);transition:height .35s var(--ease),background .3s ease}
.site-header.scrolled .header-cta{height:78px}.header-cta:hover{background:var(--blue-2)}
.arrow{width:26px;height:12px;position:relative;display:inline-block;transition:transform .3s var(--ease)}
.arrow::before{content:"";position:absolute;left:0;right:1px;top:5px;border-top:1px solid currentColor}
.arrow::after{content:"";position:absolute;right:0;top:2px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
a:hover .arrow,button:hover .arrow{transform:translateX(6px)}
.menu-toggle{display:none;background:transparent;border:0;color:#fff;width:48px;height:48px;position:relative;justify-self:end;cursor:pointer}
.menu-toggle span,.menu-toggle::before,.menu-toggle::after{content:"";position:absolute;left:10px;right:10px;height:2px;background:currentColor;transition:.3s ease}
.menu-toggle::before{top:15px}.menu-toggle span{top:23px}.menu-toggle::after{top:31px}
.menu-open .menu-toggle span{opacity:0}.menu-open .menu-toggle::before{transform:translateY(8px) rotate(45deg)}.menu-open .menu-toggle::after{transform:translateY(-8px) rotate(-45deg)}
.mobile-panel{display:none;position:fixed;z-index:990;inset:0;background:rgba(6,22,38,.985);padding:130px 34px 50px;flex-direction:column;justify-content:center;align-items:center;gap:26px;color:#fff}
.mobile-panel>a:not(.btn){font-family:"Barlow Condensed",sans-serif;font-size:42px;line-height:1;text-transform:uppercase;font-weight:700;opacity:.72}
.mobile-panel>a.active{color:var(--blue-2);opacity:1}.mobile-panel .btn{margin-top:15px}.menu-open .mobile-panel{display:flex}

/* buttons / labels */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:54px;padding:0 24px;border:1px solid transparent;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;overflow:hidden;transition:transform .3s var(--ease),background .3s ease,color .3s ease,border .3s ease}
.btn::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.12);transform:translateX(-102%) skewX(-15deg);transition:transform .55s var(--ease)}
.btn:hover::before{transform:translateX(102%) skewX(-15deg)}
.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-2);transform:translateY(-2px)}
.btn-ghost{color:#fff;border-color:rgba(255,255,255,.28);background:rgba(6,22,38,.25);backdrop-filter:blur(8px)}.btn-ghost:hover{border-color:rgba(255,255,255,.58);transform:translateY(-2px)}
.btn-outline{color:var(--navy);border-color:rgba(18,58,96,.24);background:#fff}.btn-outline:hover{color:#fff;background:var(--navy)}
.section-label{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:15px}
.display{margin:0;font-family:"Barlow Condensed",sans-serif;font-size:clamp(58px,5.7vw,92px);font-weight:700;line-height:.9;letter-spacing:-.02em;text-transform:uppercase;color:var(--navy-950)}
.section-intro{align-self:end;max-width:620px;margin:0;color:var(--muted);font-size:16px;line-height:1.9}
.section{position:relative;padding:135px 0}
.section-head{display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:end;margin-bottom:68px}

/* home hero */
.hero{position:relative;min-height:920px;height:100svh;background:var(--navy-950);overflow:hidden;color:#fff;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#061626 0%,#08213a 30%,rgba(8,33,58,.9) 43%,rgba(8,33,58,.22) 70%,rgba(6,22,38,.54) 100%)}
.hero::after{content:"";position:absolute;z-index:1;left:0;right:0;bottom:0;height:27%;background:linear-gradient(to top,#061626 0%,rgba(6,22,38,.95) 15%,transparent 100%);pointer-events:none}
.hero-media{position:absolute;z-index:-2;right:0;top:0;width:64%;height:100%;overflow:hidden;background:#0d2f50}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.14) translate3d(0,var(--hero-y,0),0);filter:saturate(.88) contrast(1.05);will-change:transform}
.hero-media::before{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,var(--navy-950) 0%,rgba(6,22,38,.58) 18%,transparent 47%),linear-gradient(180deg,rgba(6,22,38,.12),rgba(6,22,38,.2));pointer-events:none}
.hero-grain{position:absolute;inset:0;opacity:.055;mix-blend-mode:soft-light;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
.hero-slash{position:absolute;z-index:0;right:10%;bottom:-14%;width:115px;height:72%;background:linear-gradient(180deg,var(--blue-2),var(--blue));transform:skew(-18deg);box-shadow:0 0 45px rgba(29,113,184,.13)}
.hero-slash::after{content:"";position:absolute;left:185px;top:-80px;width:72px;height:120%;background:rgba(29,113,184,.18)}
.hero-content{position:relative;z-index:4;width:var(--container);margin:auto;height:100%;display:flex;align-items:center;padding-top:80px}
.hero-copy{width:min(760px,50vw);padding-bottom:105px}
.eyebrow{display:flex;align-items:center;gap:12px;color:var(--blue-2);font-size:15px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px}.eyebrow::before{content:"";width:32px;border-top:2px solid currentColor}
.hero h1{margin:0;font-family:"Barlow Condensed",sans-serif;font-size:clamp(76px,7.2vw,138px);line-height:.83;letter-spacing:-.025em;text-transform:uppercase;font-weight:800;max-width:760px}.hero h1 .accent{display:block;color:var(--blue-2)}
.hero-lead{max-width:600px;margin:26px 0 0;color:rgba(255,255,255,.82);font-size:17px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:14px;margin-top:32px}
.hero-rail{position:absolute;z-index:6;right:0;top:50%;transform:translateY(-40%);width:158px;background:rgba(6,22,38,.83);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}
.rail-link{height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;border-bottom:1px solid rgba(255,255,255,.1);font-family:"Barlow Condensed",sans-serif;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.9);transition:background .3s,color .3s}.rail-link:last-child{border-bottom:0}.rail-link:hover{background:var(--blue);color:#fff}.rail-link svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:1.5}
.scroll-cue{position:absolute;z-index:6;left:42px;bottom:72px;color:#fff;display:flex;flex-direction:column;align-items:center;gap:18px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg);opacity:.8}.scroll-cue i{width:1px;height:56px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}.scroll-cue i::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:#fff;animation:scrollCue 1.8s infinite ease-in-out}@keyframes scrollCue{0%{top:-50%}60%,100%{top:110%}}
.service-dock{position:absolute;z-index:7;left:50%;bottom:0;transform:translateX(-50%);width:min(1280px,calc(100% - 240px));display:grid;grid-template-columns:repeat(4,1fr);background:rgba(7,30,52,.92);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(16px);box-shadow:0 25px 70px rgba(0,0,0,.24)}
.service-dock a{min-height:120px;padding:24px 24px;display:grid;grid-template-columns:52px 1fr 18px;gap:16px;align-items:center;border-right:1px solid rgba(255,255,255,.11);transition:background .3s var(--ease)}.service-dock a:last-child{border-right:0}.service-dock a:hover{background:rgba(29,113,184,.24)}.service-dock svg{width:46px;height:46px;stroke:var(--blue-2);fill:none;stroke-width:1.5}.dock-copy strong{display:block;color:#fff;font-family:"Barlow Condensed",sans-serif;font-size:23px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:7px}.dock-copy span{display:block;color:rgba(255,255,255,.59);font-size:11px;line-height:1.5}.dock-arrow{color:var(--blue-2);font-size:22px;transition:transform .3s}.service-dock a:hover .dock-arrow{transform:translateX(4px)}

/* ticker */
.ticker{height:88px;background:var(--navy-950);border-top:1px solid rgba(255,255,255,.08);overflow:hidden;display:flex;align-items:center;color:#fff}.ticker-track{width:max-content;display:flex;align-items:center;gap:50px;animation:ticker 26s linear infinite;font-family:"Barlow Condensed",sans-serif;font-size:28px;text-transform:uppercase;letter-spacing:.08em;opacity:.84}.ticker-track span{display:flex;align-items:center;gap:50px}.ticker-track span::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue)}@keyframes ticker{to{transform:translateX(-50%)}}

/* services teaser */
.services{background:linear-gradient(180deg,#fff,#f7fafc)}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-card{position:relative;min-height:420px;padding:40px 34px 34px;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .45s}.service-card:hover{z-index:2;transform:translateY(-8px);box-shadow:0 28px 70px rgba(18,58,96,.13);background:#fbfdff}.service-no{position:absolute;right:20px;top:12px;font-family:"Barlow Condensed",sans-serif;font-size:86px;font-weight:800;color:rgba(18,58,96,.045);line-height:1}.service-icon{width:60px;height:60px;margin-bottom:58px;color:var(--blue)}.service-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.3}.service-card h3{font-family:"Barlow Condensed",sans-serif;font-size:36px;text-transform:uppercase;color:var(--navy-950);margin:0 0 13px}.service-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.8}.service-card .more{position:absolute;left:34px;right:34px;bottom:30px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--navy);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}

/* project preview / cards */
.projects{background:var(--ice)}
.project-grid{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:16px;min-height:760px}.project-card{position:relative;overflow:hidden;color:#fff;background:var(--navy);isolation:isolate}.project-card:first-child{grid-row:1/3}.project-card::after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(to top,rgba(3,18,31,.9),transparent 62%)}.project-card img{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;transition:transform .7s var(--ease),filter .7s var(--ease);filter:saturate(.72) contrast(1.03);will-change:transform}.project-card:hover img{transform:scale(1.07)!important;filter:saturate(.98)}.project-content{position:absolute;z-index:2;left:34px;right:34px;bottom:32px;display:flex;justify-content:space-between;align-items:end;gap:30px}.project-kicker{color:#8cc5f4;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;margin-bottom:8px}.project-title{font-family:"Barlow Condensed",sans-serif;font-size:37px;font-weight:700;line-height:.98;text-transform:uppercase;max-width:520px}.project-card:first-child .project-title{font-size:58px}.project-action{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.38);flex:0 0 auto;transition:background .3s}.project-card:hover .project-action{background:var(--blue);border-color:var(--blue)}

/* company / promise */
.promise{background:#fff}.promise-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.promise-visual{position:relative;min-height:680px}.promise-photo{position:absolute;left:0;top:0;width:82%;height:82%;overflow:hidden;box-shadow:var(--shadow)}.promise-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.75)}.promise-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,transparent 45%,rgba(18,58,96,.28))}.promise-block{position:absolute;right:0;bottom:0;width:62%;padding:42px;background:var(--navy);color:#fff;box-shadow:0 24px 50px rgba(18,58,96,.24)}.promise-block strong{display:block;font-family:"Barlow Condensed",sans-serif;font-size:54px;line-height:.9;text-transform:uppercase;margin-bottom:12px}.promise-block span{color:rgba(255,255,255,.7);line-height:1.7;font-size:14px}.promise-copy .display{margin-bottom:28px}.promise-copy>p{font-size:17px;line-height:1.9;color:#5d7181;margin:0 0 36px}.values{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.value{padding:28px 28px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.value strong{display:block;font-family:"Barlow Condensed",sans-serif;font-size:26px;text-transform:uppercase;color:var(--navy);margin-bottom:8px}.value span{font-size:13px;line-height:1.6;color:var(--muted)}

/* process */
.process{background:#fff}.process-wrap{margin-top:76px;position:relative;padding-top:35px}.process-line{position:absolute;left:5%;right:5%;top:59px;height:2px;background:rgba(18,58,96,.12);overflow:hidden}.process-line span{display:block;height:100%;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:left center;transition:transform 1.6s var(--ease)}.process-wrap.in-view .process-line span{transform:scaleX(1)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;position:relative}.step{padding:0 20px;text-align:center}.step-dot{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;margin:0 auto 24px;background:#fff;border:2px solid var(--blue);color:var(--blue);font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:18px;box-shadow:0 0 0 8px #fff;transition:transform .45s var(--ease),background .3s,color .3s}.step:hover .step-dot{transform:scale(1.12);background:var(--blue);color:#fff}.step h3{font-family:"Barlow Condensed",sans-serif;font-size:29px;text-transform:uppercase;margin:0 0 10px;color:var(--navy-950)}.step p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}

/* career strip on home */
.career-strip{position:relative;min-height:600px;background:var(--navy-950);color:#fff;overflow:hidden;display:flex;align-items:center}.career-strip::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,22,38,.97) 0%,rgba(6,22,38,.87) 38%,rgba(6,22,38,.18) 76%),linear-gradient(to top,rgba(6,22,38,.6),transparent 55%)}.career-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.72)}.career-strip .container{position:relative;z-index:2}.career-copy{max-width:760px}.career-copy .display{color:#fff}.career-copy p{max-width:650px;color:rgba(255,255,255,.72);line-height:1.85;margin:24px 0 30px}

/* inner page hero */
.inner-hero{position:relative;min-height:650px;padding-top:108px;background:var(--navy-950);color:#fff;overflow:hidden;isolation:isolate}.inner-hero::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#061626 0%,rgba(6,22,38,.92) 38%,rgba(6,22,38,.45) 68%,rgba(6,22,38,.24) 100%),linear-gradient(to top,rgba(6,22,38,.9),transparent 55%)}.inner-hero-media{position:absolute;z-index:-2;inset:0}.inner-hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.05);transform:scale(1.05) translate3d(0,var(--inner-y,0),0);will-change:transform}.inner-hero-slash{position:absolute;right:11%;bottom:-28%;width:105px;height:90%;background:var(--blue);transform:skew(-18deg);opacity:.95}.inner-hero-slash::after{content:"";position:absolute;left:150px;top:-12%;width:54px;height:110%;background:rgba(29,113,184,.2)}.inner-hero .container{position:relative;z-index:2;min-height:542px;display:flex;align-items:flex-end;padding-bottom:85px}.inner-hero-copy{max-width:900px}.breadcrumbs{display:flex;align-items:center;gap:10px;margin-bottom:20px;color:rgba(255,255,255,.55);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.breadcrumbs a:hover{color:#fff}.inner-hero h1{margin:0;font-family:"Barlow Condensed",sans-serif;font-size:clamp(78px,8.2vw,132px);line-height:.82;text-transform:uppercase;letter-spacing:-.025em}.inner-hero h1 span{color:var(--blue-2)}.inner-hero p{max-width:680px;margin:25px 0 0;color:rgba(255,255,255,.78);font-size:17px;line-height:1.8}
.inner-hero-number{position:absolute;right:4%;bottom:30px;font-family:"Barlow Condensed",sans-serif;font-size:240px;font-weight:800;line-height:.7;color:rgba(255,255,255,.035);pointer-events:none}

/* multipage content */
.page-intro{background:#fff}.page-intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:start}.page-intro .lead-big{font-family:"Barlow Condensed",sans-serif;font-size:48px;line-height:1.02;text-transform:uppercase;color:var(--navy);margin:0}.page-intro-copy p{font-size:17px;line-height:1.9;color:var(--muted);margin:0 0 22px}.accent-line{width:80px;height:3px;background:var(--blue);margin-top:28px}

.service-detail{position:relative;padding:110px 0;border-top:1px solid var(--line);background:#fff}.service-detail:nth-child(even){background:var(--ice)}.service-detail-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:80px;align-items:center}.service-detail:nth-child(even) .service-detail-media{order:2}.service-detail:nth-child(even) .service-detail-copy{order:1}.service-detail-media{position:relative;height:520px;overflow:hidden;background:var(--navy);box-shadow:var(--shadow-soft)}.service-detail-media img{width:100%;height:112%;object-fit:cover;transform:translateY(var(--media-y,0));filter:saturate(.72);will-change:transform}.service-detail-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,22,38,.42),transparent 60%)}.service-detail-index{position:absolute;z-index:2;left:24px;bottom:18px;font-family:"Barlow Condensed",sans-serif;font-size:100px;line-height:.8;font-weight:800;color:rgba(255,255,255,.2)}.service-detail h2{font-family:"Barlow Condensed",sans-serif;font-size:clamp(52px,5vw,78px);line-height:.9;text-transform:uppercase;margin:0 0 24px;color:var(--navy-950)}.service-detail p{font-size:16px;line-height:1.85;color:var(--muted);margin:0 0 25px}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin:28px 0 34px;padding:0;list-style:none}.check-list li{position:relative;padding-left:26px;font-size:13px;line-height:1.6;color:var(--text)}.check-list li::before{content:"";position:absolute;left:0;top:.48em;width:10px;height:6px;border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg)}

/* project page */
.project-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:44px}.filter-btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--navy);padding:13px 18px;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;transition:.25s}.filter-btn:hover,.filter-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.project-showcase{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.showcase-card{position:relative;min-height:560px;overflow:hidden;background:var(--navy);color:#fff}.showcase-card.wide{grid-column:1/-1;min-height:650px}.showcase-card.is-hidden{display:none}.showcase-card img{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;filter:saturate(.72);transition:transform .8s var(--ease),filter .6s}.showcase-card:hover img{transform:scale(1.05);filter:saturate(1)}.showcase-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,21,36,.94) 0%,rgba(5,21,36,.12) 68%)}.showcase-content{position:absolute;z-index:2;left:38px;right:38px;bottom:34px;display:flex;justify-content:space-between;align-items:end;gap:24px}.showcase-tag{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9bd0fa;margin-bottom:8px}.showcase-title{font-family:"Barlow Condensed",sans-serif;font-size:48px;line-height:.95;text-transform:uppercase;max-width:720px}.showcase-card.wide .showcase-title{font-size:64px}.showcase-meta{font-size:12px;color:rgba(255,255,255,.66);margin-top:9px}.showcase-circle{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.4);flex:0 0 auto}

/* company page */
.story-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.story-image{height:650px;overflow:hidden;position:relative}.story-image img{width:100%;height:112%;object-fit:cover;filter:saturate(.72);transform:translateY(var(--media-y,0))}.story-image::after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,transparent 48%,rgba(18,58,96,.36))}.story-copy .display{margin-bottom:30px}.story-copy p{font-size:16px;line-height:1.9;color:var(--muted);margin:0 0 20px}.principles{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border-left:1px solid var(--line);border-top:1px solid var(--line)}.principle{min-height:250px;padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.principle b{display:block;font-family:"Barlow Condensed";font-size:32px;line-height:1;text-transform:uppercase;color:var(--navy);margin-bottom:18px}.principle p{margin:0;font-size:13px;line-height:1.7;color:var(--muted)}

/* careers */
.career-intro{background:var(--ice)}.career-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.career-image{height:620px;position:relative;overflow:hidden}.career-image img{width:100%;height:110%;object-fit:cover;filter:saturate(.72);transform:translateY(var(--media-y,0))}.career-image::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,22,38,.45),transparent 55%)}.career-copy .display{margin-bottom:28px}.career-copy>p{font-size:16px;line-height:1.9;color:var(--muted)}.benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:55px}.benefit{padding:34px 30px;min-height:225px;background:#fff;border:1px solid var(--line);transition:transform .35s var(--ease),box-shadow .35s}.benefit:hover{transform:translateY(-6px);box-shadow:var(--shadow-soft)}.benefit-no{font-family:"Barlow Condensed";font-size:48px;font-weight:800;color:rgba(29,113,184,.18)}.benefit h3{font-family:"Barlow Condensed";font-size:30px;text-transform:uppercase;margin:14px 0 10px;color:var(--navy)}.benefit p{margin:0;font-size:13px;line-height:1.7;color:var(--muted)}
.application-panel{display:grid;grid-template-columns:1fr .75fr;gap:80px;align-items:center;background:var(--navy);color:#fff;padding:70px}.application-panel .display{color:#fff}.application-panel p{color:rgba(255,255,255,.7);line-height:1.8}.application-actions{display:flex;flex-direction:column;gap:12px}

/* contact */
.contact-section{background:var(--ice)}.contact-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;align-items:start}.contact-info{position:sticky;top:118px;background:var(--navy);color:#fff;padding:48px}.contact-info h2{font-family:"Barlow Condensed";font-size:54px;line-height:.92;text-transform:uppercase;margin:0 0 30px}.contact-item{padding:22px 0;border-top:1px solid rgba(255,255,255,.14)}.contact-item span{display:block;color:#8cc5f4;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.contact-item a,.contact-item p{margin:0;font-size:15px;line-height:1.7;color:rgba(255,255,255,.82)}
.contact-form{background:#fff;padding:54px;box-shadow:var(--shadow-soft)}.form-head{margin-bottom:36px}.form-head h2{font-family:"Barlow Condensed";font-size:54px;line-height:.92;text-transform:uppercase;margin:0 0 14px;color:var(--navy-950)}.form-head p{margin:0;color:var(--muted);line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--navy)}.field input,.field textarea,.field select{width:100%;border:0;border-bottom:1px solid rgba(18,58,96,.22);padding:14px 2px;background:transparent;color:var(--text);outline:none;transition:border .25s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue)}.field textarea{min-height:140px;resize:vertical}.form-actions{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.privacy-note{font-size:11px;line-height:1.6;color:var(--muted);max-width:480px}.form-message{padding:14px 18px;margin-bottom:24px;border-left:3px solid var(--blue);background:var(--ice);font-size:13px;line-height:1.6}.honeypot{position:absolute!important;left:-9999px!important}

/* generic content / legal */
.content-page{padding:170px 0 110px;background:#fff}.content-page h1{font-family:"Barlow Condensed";font-size:72px;text-transform:uppercase;color:var(--navy);margin:0 0 35px}.content-page h2{font-family:"Barlow Condensed";font-size:34px;text-transform:uppercase;color:var(--navy);margin:42px 0 15px}.content-page p,.content-page li{max-width:900px;color:var(--muted);line-height:1.8}.legal-note{padding:18px 20px;background:var(--ice);border-left:3px solid var(--blue);margin:25px 0}

/* universal cta / footer */
.cta{position:relative;background:var(--navy);color:#fff;overflow:hidden;padding:120px 0}.cta::before{content:"";position:absolute;right:-10%;top:-60%;width:720px;height:720px;border-radius:50%;border:1px solid rgba(255,255,255,.06);box-shadow:0 0 0 120px rgba(255,255,255,.025),0 0 0 240px rgba(255,255,255,.018)}.cta::after{content:"";position:absolute;right:14%;top:-8%;width:92px;height:125%;background:var(--blue);transform:skew(-18deg);opacity:.94}.cta-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;align-items:end;gap:70px}.cta .section-label{color:#8cc5f4}.cta .display{color:#fff;max-width:900px}.cta-text{max-width:720px;color:rgba(255,255,255,.72);font-size:17px;line-height:1.8;margin:25px 0 0}.cta-actions{display:flex;flex-direction:column;gap:12px;min-width:280px}.cta-actions .btn{width:100%}
.site-footer{background:#061626;color:#fff;padding:70px 0 28px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr 1fr;gap:55px;padding-bottom:58px;border-bottom:1px solid rgba(255,255,255,.1)}.footer-logo{width:300px;margin-bottom:20px}.footer-note{color:rgba(255,255,255,.58);max-width:340px;font-size:13px;line-height:1.8}.footer-col h4{font-family:"Barlow Condensed",sans-serif;font-size:18px;letter-spacing:.06em;text-transform:uppercase;margin:6px 0 22px}.footer-col a,.footer-col p{display:block;color:rgba(255,255,255,.66);font-size:13px;line-height:1.8;margin:0 0 9px;transition:color .2s}.footer-col a:hover{color:#fff}.footer-bottom{padding-top:26px;display:flex;justify-content:space-between;gap:30px;color:rgba(255,255,255,.42);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.footer-links{display:flex;gap:22px}

/* animation helpers */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.from-left{transform:translateX(-44px)}.reveal.from-right{transform:translateX(44px)}.reveal.in-view{opacity:1;transform:translate(0,0)}
.stagger>*{opacity:0;transform:translateY(28px);transition:opacity .72s var(--ease),transform .72s var(--ease)}.stagger.in-view>*{opacity:1;transform:none}.stagger.in-view>*:nth-child(2){transition-delay:.08s}.stagger.in-view>*:nth-child(3){transition-delay:.16s}.stagger.in-view>*:nth-child(4){transition-delay:.24s}.stagger.in-view>*:nth-child(5){transition-delay:.32s}.stagger.in-view>*:nth-child(6){transition-delay:.4s}
[data-tilt]{transform-style:preserve-3d;transition:transform .25s var(--ease)}

@media(max-width:1180px){
  :root{--container:min(1100px,calc(100% - 56px))}
  .nav-shell{grid-template-columns:1fr auto;width:calc(100% - 42px)}.nav-links,.header-cta{display:none}.menu-toggle{display:block}.brand img,.site-header.scrolled .brand img{width:260px}
  .hero-media{width:72%}.hero-copy{width:55vw}.hero h1{font-size:clamp(70px,8vw,100px)}.hero-rail{display:none}.service-dock{width:calc(100% - 120px)}.service-dock a{grid-template-columns:40px 1fr;padding:24px 18px}.dock-copy span{display:none}.service-dock svg{width:38px;height:38px}
  .section-head,.promise-grid{gap:58px}.promise-grid{grid-template-columns:.9fr 1.1fr}.promise-visual{min-height:590px}.principles{grid-template-columns:1fr 1fr}.service-detail-grid,.story-grid,.career-grid,.contact-grid{gap:55px}
}

@media(max-width:820px){
  :root{--container:calc(100% - 36px)}
  .site-header,.site-header.scrolled{height:78px}.brand img,.site-header.scrolled .brand img{width:225px}
  .hero{min-height:860px;height:100svh}.hero-media{width:100%;opacity:.72}.hero-media::before{background:linear-gradient(90deg,#061626 0%,rgba(6,22,38,.83) 55%,rgba(6,22,38,.44) 100%),linear-gradient(to top,#061626,transparent 45%)}.hero-content{align-items:flex-start;padding-top:150px}.hero-copy{width:100%;padding-bottom:190px}.hero h1{font-size:clamp(62px,17vw,98px);max-width:600px}.hero-lead{font-size:15px;max-width:520px}.hero-actions{gap:10px;flex-wrap:wrap}.btn{min-height:50px;padding:0 18px}.hero-slash{right:-8%;width:70px;opacity:.75}.scroll-cue{display:none}.service-dock{left:18px;right:18px;bottom:18px;transform:none;width:auto;grid-template-columns:1fr 1fr;min-height:0}.service-dock a{min-height:82px;padding:14px 15px;grid-template-columns:32px 1fr}.service-dock svg{width:30px;height:30px}.dock-copy strong{font-size:17px;margin:0}.dock-arrow{display:none}
  .ticker{height:68px}.ticker-track{font-size:21px}.section{padding:90px 0}.section-head{grid-template-columns:1fr;gap:26px;margin-bottom:46px}.display{font-size:clamp(46px,13vw,68px)}.section-intro{font-size:15px}
  .services-grid{grid-template-columns:1fr}.service-card{min-height:300px;padding:32px}.service-icon{margin-bottom:38px}.project-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:12px}.project-card,.project-card:first-child{grid-row:auto;min-height:430px}.project-card:first-child .project-title{font-size:40px}.project-title{font-size:34px}.promise-grid{grid-template-columns:1fr;gap:60px}.promise-visual{min-height:520px}.promise-photo{width:88%;height:78%}.promise-block{width:70%;padding:30px}.promise-block strong{font-size:40px}.values{grid-template-columns:1fr}.process-line{display:none}.steps{grid-template-columns:1fr 1fr;gap:42px 12px}.step-dot{margin-bottom:16px}.career-strip{min-height:520px}.cta{padding:90px 0}.cta::after{opacity:.2;right:-5%}.cta-grid{grid-template-columns:1fr;gap:40px}.cta-actions{min-width:0;max-width:360px}.footer-grid{grid-template-columns:1fr 1fr;gap:42px}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column}.footer-links{flex-wrap:wrap}
  .inner-hero{min-height:580px;padding-top:78px}.inner-hero .container{min-height:502px;padding-bottom:55px}.inner-hero h1{font-size:clamp(65px,16vw,102px)}.inner-hero-number{font-size:150px}.page-intro-grid{grid-template-columns:1fr;gap:35px}.service-detail{padding:80px 0}.service-detail-grid,.story-grid,.career-grid,.contact-grid{grid-template-columns:1fr;gap:44px}.service-detail:nth-child(even) .service-detail-media,.service-detail:nth-child(even) .service-detail-copy{order:initial}.service-detail-media,.story-image,.career-image{height:480px}.check-list{grid-template-columns:1fr}.project-showcase{grid-template-columns:1fr}.showcase-card.wide{grid-column:auto}.showcase-card,.showcase-card.wide{min-height:480px}.showcase-title,.showcase-card.wide .showcase-title{font-size:42px}.principles{grid-template-columns:1fr 1fr}.benefits-grid{grid-template-columns:1fr 1fr}.application-panel{grid-template-columns:1fr;padding:45px}.contact-info{position:relative;top:auto}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.contact-form{padding:38px}
}

@media(max-width:520px){
  :root{--container:calc(100% - 28px)}
  .nav-shell{width:calc(100% - 24px)}.brand img,.site-header.scrolled .brand img{width:188px}.hero-content{padding-top:130px}.hero h1{font-size:58px}.eyebrow{font-size:11px}.hero-lead{line-height:1.65;margin-top:18px}.hero-actions{margin-top:24px}.hero-actions .btn{width:100%}.service-dock{grid-template-columns:1fr 1fr}.service-dock a{grid-template-columns:1fr;text-align:center;gap:4px;padding:11px 8px}.service-dock svg{display:none}.dock-copy strong{font-size:15px}.service-card{padding:28px;min-height:270px}.service-no{font-size:66px}.service-card h3{font-size:32px}.project-card,.project-card:first-child{min-height:360px}.project-content{left:22px;right:22px;bottom:22px}.project-action{display:none}.promise-visual{min-height:460px}.promise-photo{height:72%;width:92%}.promise-block{width:82%;padding:24px}.values{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.step{display:grid;grid-template-columns:50px 1fr;text-align:left;column-gap:18px}.step-dot{grid-row:1/3;margin:0}.step h3{margin-top:4px}.footer-grid{grid-template-columns:1fr}.footer-logo{width:250px}.inner-hero h1{font-size:58px}.inner-hero p{font-size:14px}.inner-hero-number{display:none}.page-intro .lead-big{font-size:38px}.service-detail-media,.story-image,.career-image{height:380px}.principles,.benefits-grid{grid-template-columns:1fr}.showcase-card,.showcase-card.wide{min-height:390px}.showcase-content{left:24px;right:24px;bottom:24px}.showcase-title,.showcase-card.wide .showcase-title{font-size:35px}.showcase-circle{display:none}.application-panel{padding:30px 24px}.contact-form,.contact-info{padding:30px 24px}.form-actions{align-items:flex-start;flex-direction:column}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.ticker-track{animation:none}.scroll-cue i::after{animation:none}.reveal,.stagger>*{opacity:1!important;transform:none!important;transition:none!important}.hero-media img,.inner-hero-media img,.service-detail-media img,.story-image img,.career-image img{transform:none!important}.process-line span{transform:scaleX(1)!important}.page-transition{display:none}[data-tilt]{transform:none!important}
}

/* ============================================================
   Joomla / Helix Ultimate Adapter  —  ab hier nicht im Prototyp
   ============================================================ */

/* Helix rahmt den Inhalt; der Prototyp erwartet volle Breite */
#sp-main-body{padding:0}
.sp-page-title,#sp-page-title{display:none}
body .body-innerwrapper{overflow-x:clip}

/* SPPB-Wrapper neutralisieren: unsere Sektionen bringen ihr eigenes Layout mit */
.aw-raw .sppb-row-container{width:100%;max-width:none;padding:0}
.aw-raw .sppb-addon-wrapper{margin:0}
.aw-raw .sppb-section,
.aw-raw .sppb-column>.sppb-column-addons{padding:0}

/* Der Prototyp nutzt main{overflow:hidden} – Helix hat kein <main> an dieser Stelle */
.aw-main{overflow:hidden}

/* ==========================================================
   Helix-Adapter v1.0.1 — Prototyp-Optik auf Helix-Ultimate-DOM
   ========================================================== */

/* --- Inhaltsbereich: SPPB-Wrapper neutralisieren --- */
#sp-main-body{padding:0}
.sp-page-builder .page-content .sppb-row-container{width:100%;max-width:none;padding:0}
.sp-page-builder .page-content .sppb-addon-wrapper{margin:0}
.sp-page-builder .page-content .sppb-column>.sppb-column-addons{padding:0}
.sp-page-builder .page-content .sppb-section{padding:0}
.body-innerwrapper{overflow-x:clip}

/* --- Header --- */
#sp-header{position:fixed;z-index:1000;inset:0 0 auto 0;height:108px;background:transparent;
  border-bottom:1px solid rgba(255,255,255,.13);box-shadow:none;
  transition:height .35s var(--ease),background .35s ease,backdrop-filter .35s ease,box-shadow .35s ease}
#sp-header.scrolled{height:78px;background:rgba(6,22,38,.88);backdrop-filter:blur(18px);
  box-shadow:0 16px 40px rgba(2,14,26,.16)}
#sp-header .container,#sp-header .container-inner{height:100%;max-width:none;width:100%;padding:0}
#sp-header .container-inner>.row{height:100%;width:min(1600px,calc(100% - 72px));margin-inline:auto;flex-wrap:nowrap}
#sp-header .sp-column{height:100%;display:flex;align-items:center}
#sp-logo .logo img{width:292px;max-width:none;height:auto;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.14));transition:width .35s var(--ease)}
#sp-header.scrolled #sp-logo .logo img{width:238px}

/* Menü */
.sp-megamenu-parent{display:flex;align-items:center;gap:42px;margin:0;padding:0;list-style:none;
  font-family:"Manrope",sans-serif;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sp-megamenu-parent>li{margin:0}
.sp-megamenu-parent>li>a{position:relative;padding:12px 0;opacity:.9;color:#fff;transition:opacity .25s}
.sp-megamenu-parent>li>a:hover,.sp-megamenu-parent>li.active>a{opacity:1;color:#fff}
.sp-megamenu-parent>li>a::after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:2px;
  background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.sp-megamenu-parent>li>a:hover::after,
.sp-megamenu-parent>li.active>a::after,
.sp-megamenu-parent>li.current-item>a::after{transform:scaleX(1);transform-origin:left}

/* CTA-Modul in der Menü-Position */
#sp-header .header-modules .aw-header-cta{height:108px;min-width:320px;margin-right:-36px;
  display:flex;justify-content:center;align-items:center;gap:28px;color:#fff;background:var(--blue);
  font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  clip-path:polygon(11% 0,100% 0,100% 100%,0 100%);transition:height .35s var(--ease),background .3s ease}
#sp-header.scrolled .header-modules .aw-header-cta{height:78px}
#sp-header .header-modules .aw-header-cta:hover{background:var(--blue-2)}

/* Offcanvas-Toggler */
#offcanvas-toggler{color:#fff}
#sp-header.scrolled #offcanvas-toggler{color:#fff}

/* --- Footer --- */
#sp-footer{background:var(--navy-950);color:#fff;padding:0;border:0}
#sp-footer .container,#sp-footer .container-inner{max-width:none;width:100%;padding:0}
#sp-footer .sp-column{width:100%}

/* ==========================================================
   Helix-Adapter v1.0.2 — Korrekturen nach Frontend-Abgleich
   ========================================================== */

/* Bootstraps .container aus Helix kollidiert mit dem Prototyp-Container */
.sp-page-builder .page-content .container,
.universal-cta .container,
.site-footer .container{width:var(--container);max-width:none;margin-inline:auto;padding-left:0;padding-right:0}

/* Abstand oberhalb des Heros entfernen */
.sp-page-builder .page-content .sppb-section{margin:0}
#sp-main-body>.container,#sp-main-body>.container>.container-inner{padding:0;max-width:none;width:100%}

/* Hero: Inhalt unter den fixierten Header schieben */
.hero-content{padding-top:150px}

/* Header-CTA liegt in Helix direkt in der Menue-Spalte, nicht in .header-modules */
#sp-header .aw-header-cta{height:108px;min-width:320px;margin-right:-36px;
  display:flex;justify-content:center;align-items:center;gap:28px;color:#fff;background:var(--blue);
  font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  clip-path:polygon(11% 0,100% 0,100% 100%,0 100%);transition:height .35s var(--ease),background .3s ease}
#sp-header.scrolled .aw-header-cta{height:78px}
#sp-header .aw-header-cta:hover{background:var(--blue-2)}
#sp-header .sp-module,#sp-header .sp-module-content{margin:0;padding:0;height:100%;display:flex;align-items:center}

/* Modul-Wrapper in Bottom/Footer neutralisieren */
#sp-bottom{padding:0;background:transparent}
#sp-bottom .container,#sp-bottom .container-inner,#sp-footer .container,#sp-footer .container-inner{max-width:none;width:100%;padding:0}
#sp-bottom .sp-module,#sp-footer .sp-module{margin:0}
#sp-bottom .row,#sp-footer .row{margin:0}
#sp-bottom [class*="col-"],#sp-footer [class*="col-"]{padding:0}

/* ==========================================================
   Helix-Adapter v1.0.3
   ========================================================== */
/* Spezifitaet: die Helix-Wrapper-Regeln duerfen die Prototyp-Container nicht ueberschreiben */
#sp-bottom .universal-cta .container,
#sp-footer .site-footer .container,
.sp-page-builder .page-content .container{width:var(--container);max-width:none;margin-inline:auto;padding-left:0;padding-right:0}

/* Hero-Inhalt etwas weiter unter den Header */
.hero-content{padding-top:175px}

/* ==========================================================
   Helix-Adapter v1.0.4 — Menue-Abstaende
   ========================================================== */
#sp-header .sp-megamenu-parent{display:flex;align-items:center;gap:42px;margin:0;padding:0;list-style:none;
  font-family:"Manrope",sans-serif;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
#sp-header .sp-megamenu-parent>li{margin:0;padding:0;float:none;display:block}
#sp-header .sp-megamenu-parent>li>a{position:relative;padding:12px 0;margin:0;opacity:.9;color:#fff;
  display:inline-block;transition:opacity .25s}
#sp-header .sp-megamenu-parent>li>a:hover,
#sp-header .sp-megamenu-parent>li.active>a,
#sp-header .sp-megamenu-parent>li.current-item>a{opacity:1;color:#fff;background:transparent}
#sp-header .sp-megamenu-parent>li>a::after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:2px;
  background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
#sp-header .sp-megamenu-parent>li>a:hover::after,
#sp-header .sp-megamenu-parent>li.active>a::after,
#sp-header .sp-megamenu-parent>li.current-item>a::after{transform:scaleX(1);transform-origin:left}
#sp-header .sp-megamenu-parent>li.sp-has-child>a::before{display:none}

/* ==========================================================
   Helix-Adapter v1.0.5 — Menue: Helix-Layout hart ueberschreiben
   Begruendung: Helix setzt das Mega-Menue ueber hoeher gewichtete
   Selektoren (float/inline-block). Die wenigen Layout-Eigenschaften
   werden daher bewusst mit !important gesetzt.
   ========================================================== */
#sp-header nav.sp-megamenu-wrapper{display:flex!important;align-items:center}
#sp-header ul.sp-megamenu-parent{display:flex!important;flex-direction:row!important;align-items:center!important;
  gap:42px!important;margin:0!important;padding:0!important;list-style:none!important;position:static!important;
  float:none!important;width:auto!important}
#sp-header ul.sp-megamenu-parent>li{float:none!important;display:block!important;margin:0!important;padding:0!important;
  position:relative!important;white-space:nowrap}
#sp-header ul.sp-megamenu-parent>li>a{display:inline-block!important;padding:12px 0!important;margin:0!important;
  line-height:1.2!important;color:#fff;opacity:.9}

/* ==========================================================
   Helix-Adapter v1.0.6 — Seiten ohne Hero (Rechtstexte)
   Der transparente Header waere auf hellem Grund unsichtbar.
   body.aw-no-hero wird von aw.js gesetzt.
   ========================================================== */
body.aw-no-hero #sp-header{height:78px;background:rgba(6,22,38,.96);backdrop-filter:blur(18px);
  box-shadow:0 16px 40px rgba(2,14,26,.16)}
body.aw-no-hero #sp-header .aw-header-cta{height:78px}
body.aw-no-hero #sp-logo .logo img{width:238px}
body.aw-no-hero .content-page{padding-top:150px}

/* ==========================================================
   Helix-Adapter v1.0.7 — Mobile
   Der Prototyp blendet Menue und Header-CTA unter 1180px aus
   und zeigt stattdessen den Panel-Toggler. Die !important-Regeln
   aus v1.0.5 haben das ausgehebelt — hier korrigiert.
   ========================================================== */
@media (max-width:1180px){
  #sp-header nav.sp-megamenu-wrapper,
  #sp-header ul.sp-megamenu-parent,
  #sp-header .header-modules,
  #sp-header .aw-header-cta{display:none!important}
  #sp-header,#sp-header.scrolled{height:78px;background:rgba(6,22,38,.96);
    backdrop-filter:blur(18px);box-shadow:0 16px 40px rgba(2,14,26,.16)}
  #sp-header .container-inner>.row{width:calc(100% - 42px)}
  #sp-logo .logo img,#sp-header.scrolled #sp-logo .logo img{width:260px}
  #sp-menu .sp-column{justify-content:flex-end}
  #offcanvas-toggler{display:flex!important;color:#fff;margin-left:auto}
}
@media (max-width:820px){
  #sp-header,#sp-header.scrolled{height:78px}
  #sp-header .container-inner>.row{width:calc(100% - 36px)}
  #sp-logo .logo img,#sp-header.scrolled #sp-logo .logo img{width:225px}
}
@media (max-width:520px){
  #sp-header .container-inner>.row{width:calc(100% - 24px)}
  #sp-logo .logo img,#sp-header.scrolled #sp-logo .logo img{width:188px}
}

/* Offcanvas im Look der Prototyp-.mobile-panel */
.offcanvas-menu{background:rgba(6,22,38,.985);color:#fff}
.offcanvas-menu .offcanvas-inner{padding:104px 30px 48px}
.offcanvas-menu ul.mod-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px}
.offcanvas-menu ul.mod-menu>li{margin:0;padding:0;border:0}
.offcanvas-menu ul.mod-menu>li>a{display:block;padding:0;font-family:"Barlow Condensed",sans-serif;
  font-size:36px;line-height:1.05;text-transform:uppercase;font-weight:700;color:#fff;opacity:.72}
.offcanvas-menu ul.mod-menu>li.current>a,
.offcanvas-menu ul.mod-menu>li.active>a,
.offcanvas-menu ul.mod-menu>li>a:hover{color:var(--blue-2);opacity:1}
.offcanvas-menu .close-offcanvas{color:#fff;opacity:.8}
.offcanvas-menu .header-modules{margin-bottom:34px!important}
.offcanvas-menu .aw-header-cta{display:inline-flex;align-items:center;justify-content:center;gap:16px;
  height:52px;padding:0 26px;background:var(--blue);color:#fff;font-size:13px;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;clip-path:none;min-width:0;margin:0}
.offcanvas-overlay{background:rgba(6,22,38,.6)}

/* ==========================================================
   Helix-Adapter v1.0.8 — Offcanvas-Typografie
   Helix gewichtet die Panel-Links hoeher; daher hier !important.
   ========================================================== */
.offcanvas-menu .offcanvas-inner ul.mod-menu>li>a,
.offcanvas-menu ul.mod-menu>li>a{
  font-family:"Barlow Condensed",sans-serif!important;
  font-size:34px!important;line-height:1.05!important;font-weight:700!important;
  text-transform:uppercase!important;color:#fff!important;opacity:.72;padding:0!important;
  border:0!important;background:transparent!important}
.offcanvas-menu .offcanvas-inner ul.mod-menu>li.current>a,
.offcanvas-menu .offcanvas-inner ul.mod-menu>li.active>a,
.offcanvas-menu .offcanvas-inner ul.mod-menu>li>a:hover{color:var(--blue-2)!important;opacity:1}
.offcanvas-menu .offcanvas-inner ul.mod-menu>li{border:0!important;margin:0 0 18px 0!important;padding:0!important}
@media (max-width:520px){
  .offcanvas-menu .offcanvas-inner ul.mod-menu>li>a{font-size:29px!important}
}

/* ==========================================================
   Helix-Adapter v1.0.9 — Rueckfallflaechen fuer blockierte Bilder
   Ohne Einwilligung blockiert CCM19 die Unsplash-Bilder. Ohne
   Hintergrund entstehen weisse Loecher. Die Container bekommen
   daher die Flaechenfarbe des Entwurfs.
   ========================================================== */
.project-card,
.showcase-card,
.service-detail-media,
.story-image,
.career-image,
.promise-photo,
.career-strip,
.inner-hero-media,
.hero-media{background-color:var(--navy-800)}
.career-strip>img,
.inner-hero-media img,
.hero-media img{background-color:var(--navy-800)}

/* ==========================================================
   Adapter v1.1.0 — Kontaktsektion mit RSForm-Modul
   Linke Spalte: Raw-HTML (.contact-info), rechte Spalte:
   Joomla-Modul-Addon mit dem RSForm-Formular.
   ========================================================== */
.aw-contact{background:var(--ice);padding:110px 0}
.aw-contact .sppb-column-addons{width:var(--container);margin-inline:auto;
  display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;align-items:start}
.aw-contact .sppb-addon-wrapper{margin:0}

/* Formularkasten = .contact-form des Prototyps */
.aw-contact .sppb-addon-module{background:#fff;padding:54px;box-shadow:var(--shadow-soft)}
.aw-contact .sppb-addon-module .sppb-addon-title{font-family:"Barlow Condensed",sans-serif;
  font-size:54px;line-height:.92;text-transform:uppercase;margin:0 0 34px;color:var(--navy-950)}

/* --- RSForm auf die Prototyp-Feldoptik --- */
.aw-form .rsform-block{display:flex!important;flex-direction:column;gap:8px;margin:0 0 22px!important}
.aw-form .rsform-block>label.formControlLabel{width:auto!important;max-width:none!important;flex:none!important;
  padding:0!important;text-align:left!important;font-size:10px;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:var(--navy)}
.aw-form .formControls{width:auto!important;max-width:none!important;flex:none!important;padding:0!important}
.aw-form input[type=text],.aw-form input[type=email],.aw-form input[type=tel],
.aw-form select,.aw-form textarea,
.aw-form .rsform-input-box,.aw-form .rsform-select-box,.aw-form .rsform-text-box{
  width:100%;border:0;border-bottom:1px solid rgba(18,58,96,.22);border-radius:0;
  padding:14px 2px;background:transparent;color:var(--text);box-shadow:none;outline:none;
  font:inherit;transition:border-color .25s}
.aw-form input:focus,.aw-form select:focus,.aw-form textarea:focus{
  border-color:var(--blue);box-shadow:none;outline:none}
.aw-form textarea{min-height:150px;resize:vertical}
.aw-form .formRequired{color:var(--blue);margin-left:2px}
.aw-form .formNoError{display:none}
.aw-form .formError{display:block;margin-top:7px;color:#c0392b;font-size:12px;line-height:1.5}

/* Einwilligung */
.aw-form .rsform-block-einwilligung .formControls{display:flex;gap:12px;align-items:flex-start}
.aw-form .rsform-block-einwilligung .rsform-checkbox{width:18px;height:18px;min-width:18px;margin-top:3px;
  accent-color:var(--blue)}
.aw-form .rsform-block-einwilligung label{font-size:12px;line-height:1.6;color:var(--muted);
  text-transform:none;letter-spacing:0;font-weight:400}
.aw-form .rsform-block-einwilligung>label.formControlLabel{display:none}

/* Spam-Schutz (HashCash, ohne Google) */
.aw-form .rsform-block-spamschutz{margin-bottom:26px!important}
.aw-form .rsform-block-spamschutz>label.formControlLabel{display:none}
.aw-form .rsform-block-spamschutz button{border:1px solid rgba(18,58,96,.22);background:transparent;
  padding:11px 18px;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--navy);cursor:pointer;transition:border-color .25s,color .25s}
.aw-form .rsform-block-spamschutz button:hover{border-color:var(--blue);color:var(--blue)}

/* Absenden */
.aw-form .rsform-block-absenden{margin-top:30px!important}
.aw-form .rsform-block-absenden .formControls{display:block}
.aw-form .rsform-block-absenden .btn{min-height:56px;padding:0 30px}

/* Erfolgs- und Systemmeldungen */
.aw-contact .sppb-addon-module .alert,.aw-form .rsform-thankyou{padding:16px 20px;background:var(--ice);
  border-left:3px solid var(--blue);font-size:14px;line-height:1.6;color:var(--text)}

@media (max-width:1180px){
  .aw-contact .sppb-column-addons{grid-template-columns:1fr;gap:44px}
  .aw-contact .contact-info{position:relative;top:auto}
}
@media (max-width:820px){
  .aw-contact{padding:90px 0}
  .aw-contact .sppb-addon-module{padding:34px}
  .aw-contact .sppb-addon-module .sppb-addon-title{font-size:40px}
}

/* ==========================================================
   Adapter v1.1.1 — RSForm-Feinschliff
   ========================================================== */
/* Feldbeschriftungen einheitlich, unabhaengig vom Elementtyp */
.aw-form .formControlLabel{display:block!important;width:auto!important;max-width:none!important;
  flex:none!important;padding:0!important;text-align:left!important;
  font-family:"Manrope",sans-serif;font-size:10px;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:var(--navy);margin:0 0 8px}

/* Einwilligung: Checkbox links, Fliesstext rechts */
.aw-form .rsform-block-einwilligung .formControls{display:block}
.aw-form .rsform-block-einwilligung .form-check{display:flex;gap:12px;align-items:flex-start;padding:0;margin:0}
.aw-form .rsform-block-einwilligung input[type=checkbox]{width:18px;height:18px;min-width:18px;
  margin:3px 0 0;float:none;accent-color:var(--blue)}
.aw-form .rsform-block-einwilligung label.form-check-label{font-size:12px;line-height:1.65;
  color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400;margin:0}

/* Spam-Schutz */
.aw-form .rsform-block-spamschutz .form-check,
.aw-form .rsform-block-spamschutz .formControls{display:block}

/* Bootstrap-Reste, die den Prototyp-Rhythmus stoeren */
.aw-form .row{margin-left:0;margin-right:0}
.aw-form [class*="col-"]{padding-left:0;padding-right:0}
.aw-form .mb-3{margin-bottom:22px!important}

/* ==========================================================
   Adapter v1.1.2 — Select-Feld korrigieren
   Das Auswahlfeld wurde durch die geerbte Bootstrap-Hoehe
   abgeschnitten; ausserdem fehlte ein sichtbarer Pfeil.
   ========================================================== */
.aw-form select{-webkit-appearance:none;appearance:none;height:auto;min-height:50px;
  line-height:1.5;padding:13px 28px 13px 2px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),
                   linear-gradient(135deg,var(--navy) 50%,transparent 50%);
  background-position:calc(100% - 13px) calc(50% + 1px),calc(100% - 8px) calc(50% + 1px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.aw-form select:focus{background-image:linear-gradient(45deg,transparent 50%,var(--blue) 50%),
                   linear-gradient(135deg,var(--blue) 50%,transparent 50%)}
.aw-form select option{color:var(--text);background:#fff}

/* ==========================================================
   Adapter v1.1.3 — Burger-Icon und Karten-Ueberlappung
   ========================================================== */
/* Helix faerbt die drei Balken ueber background-color der <span>.
   Auf dem dunklen Header waren sie praktisch unsichtbar. */
#offcanvas-toggler .burger-icon>span{background-color:#c9d3de!important;height:2px;border-radius:1px;
  transition:background-color .25s}
#offcanvas-toggler:hover .burger-icon>span,
#offcanvas-toggler:focus-visible .burger-icon>span{background-color:#fff!important}
#offcanvas-toggler{padding:10px 4px}
#offcanvas-toggler .burger-icon{width:26px}
@media (max-width:820px){
  #offcanvas-toggler{padding:12px 6px}
  #offcanvas-toggler .burger-icon{width:28px}
}

/* Leistungskarten: "Mehr erfahren" lag absolut positioniert ueber dem Text,
   sobald der Absatz laenger wurde. Jetzt per Flex am Kartenende verankert. */
.service-card{display:flex;flex-direction:column}
.service-card .more{position:static;left:auto;right:auto;bottom:auto;
  margin-top:auto;padding-top:18px}
.service-card p{margin-bottom:22px}
@media (max-width:820px){
  .service-card{min-height:0;padding-bottom:30px}
  .service-icon{margin-bottom:34px}
}

/* ==========================================================
   Adapter v1.1.4 — Hero: Platz fuer Header und Service-Dock
   Das padding-top:175px aus v1.0.3 hat den Textblock nach unten
   gedrueckt; die Buttons lagen dadurch nur noch wenige Pixel
   ueber dem Dock und verschwanden je nach Zoom/Fontmetrik darunter.
   Jetzt wird der Platz oben (Header) und unten (Dock) explizit
   reserviert, der Textblock zentriert sich im Band dazwischen.
   ========================================================== */
@media (min-width:821px){
  .hero-content{padding-top:120px;padding-bottom:170px;align-items:center}
  .hero-copy{padding-bottom:0}
}
@media (min-width:821px) and (max-width:1180px){
  /* Dock ist hier schmaler und dadurch hoeher */
  .hero-content{padding-bottom:190px}
}

/* ==========================================================
   Adapter v1.1.5 — Hero waechst mit seinem Inhalt
   Bei breiten Viewports wird die Headline ueber clamp() bis 138px
   gross; Header + Text + Dock passten dann nicht mehr in die feste
   Hoehe (100svh bzw. 920px). Ergebnis: Buttons unter dem Dock.
   Der Hero bekommt jetzt height:auto und waechst notfalls mit.
   ========================================================== */
@media (min-width:821px){
  .hero{height:auto;min-height:max(920px,100svh)}
  .hero-content{padding-top:160px;padding-bottom:180px;align-items:center}
  .hero-copy{padding-bottom:0}
}
@media (min-width:821px) and (max-width:1180px){
  .hero-content{padding-bottom:200px}
}

/* ==========================================================
   Adapter v1.1.6 — Service-Dock aus der absoluten Positionierung
   Statt den Platz fuer das Dock ueber eine geschaetzte Zahl zu
   reservieren, liegt das Dock ab 821px jetzt im normalen Fluss am
   Ende des Heros. Eine Ueberlappung mit den Buttons ist damit
   konstruktiv ausgeschlossen, unabhaengig von Textlaenge,
   Schriftgroesse und Viewport.
   ========================================================== */
@media (min-width:821px){
  .hero{display:flex;flex-direction:column;height:auto;min-height:max(920px,100svh)}
  .hero-content{flex:1 1 auto;padding-top:160px;padding-bottom:56px}
  .hero-copy{padding-bottom:0}
  .service-dock{position:static;left:auto;bottom:auto;transform:none;
    margin:0 auto;width:min(1280px,calc(100% - 240px))}
}
@media (min-width:821px) and (max-width:1180px){
  .service-dock{width:calc(100% - 120px)}
  .hero-content{padding-bottom:44px}
}

/* ── Helix-Adapter v1.1.7 — Footer-Credit ───────────────────────────── */
.footer-bottom{align-items:center}
.footer-bottom .footer-links{margin-left:auto}
.footer-credit{color:rgba(255,255,255,.42)}
.footer-credit a{color:rgba(255,255,255,.62);transition:color .3s var(--ease)}
.footer-credit a:hover,.footer-credit a:focus-visible{color:var(--blue-2)}
@media (max-width:820px){
  .footer-bottom{align-items:flex-start;gap:14px}
  .footer-bottom .footer-links{margin-left:0}
}
