:root { --ink:#11213c; --navy:#001c44; --blue:#0752b3; --orange:#ff5a0a; --paper:#fff; --warm:#f6f7f7; --line:#cdd8e4; --muted:#53647d; --display:"Manrope",sans-serif; --body:"Manrope",sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.55 var(--body); } a { color:inherit; text-decoration:none; } button,input,textarea { font:inherit; } button { cursor:pointer; } .container { width:min(1200px,calc(100% - 80px)); margin:0 auto; }
.skip-link,.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; } .skip-link:focus { top:15px; left:15px; z-index:99; width:auto; height:auto; padding:12px; clip:auto; background:white; }
.site-entry { position:relative; display:grid; min-height:100vh; min-height:100svh; overflow:hidden; padding:clamp(28px,5vw,74px); background:#020d20; color:#f7f6f3; cursor:pointer; text-decoration:none; } .site-entry:focus-visible { outline:2px solid var(--orange); outline-offset:-12px; } .entry-composition { display:grid; width:min(100%,900px); margin:auto; place-content:center; justify-items:center; text-align:center; } .entry-mark { position:relative; display:flex; margin:0 0 clamp(66px,10vw,150px); color:var(--orange); font:400 clamp(78px,10.4vw,150px)/.76 Georgia,serif; letter-spacing:.035em; text-shadow:0 0 0 rgba(255,90,10,0); transition:transform .72s cubic-bezier(.16,1,.3,1),color .72s ease,text-shadow .72s ease; } .entry-mark::after { position:absolute; bottom:clamp(-26px,-1.75vw,-17px); left:50%; width:0; height:1px; background:linear-gradient(90deg,transparent,var(--orange),transparent); content:""; opacity:0; transform:translateX(-50%); transition:width .78s cubic-bezier(.16,1,.3,1),opacity .42s ease; } .entry-mark > span { display:inline-block; animation:entry-mark-in .95s cubic-bezier(.22,1,.36,1) both; } .entry-mark > span:nth-child(1) { animation-delay:.17s; } .entry-mark > span:nth-child(2) { animation-delay:.24s; } .entry-mark > span:nth-child(3) { animation-delay:.31s; } @media (hover:hover) and (pointer:fine) { .entry-mark:hover { color:#ff6b22; text-shadow:0 0 36px rgba(255,90,10,.27); transform:scale(1.055); } .entry-mark:hover::after { width:88%; opacity:1; } } .entry-message { max-width:760px; color:#f7f6f3; font:600 clamp(42px,5.15vw,74px)/1.01 var(--display); letter-spacing:-.07em; opacity:0; transform:translateY(18px); animation:entry-message-in .9s cubic-bezier(.22,1,.36,1) .62s forwards; } .entry-message .entry-emphasis { color:#91a3be; font:italic 400 1em/1.01 Georgia,serif; letter-spacing:-.052em; } .entry-english { display:block; margin-top:clamp(22px,3vw,36px); color:#bfcbda; font:600 clamp(9px,.85vw,12px)/1.25 var(--display); letter-spacing:.16em; text-transform:uppercase; } .entry-action { position:absolute; right:clamp(28px,5vw,74px); bottom:clamp(28px,5vw,62px); display:inline-flex; align-items:center; gap:16px; color:#f7f6f3; font-size:11px; font-weight:600; letter-spacing:.15em; opacity:0; text-transform:uppercase; animation:entry-action-in .7s ease .98s forwards; } .entry-action::after { width:37px; height:1px; background:var(--orange); content:""; transition:width .25s ease; } .site-entry:hover .entry-action::after { width:62px; } @keyframes entry-mark-in { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:translateY(0); } } @keyframes entry-message-in { to { opacity:1; transform:translateY(0); } } @keyframes entry-action-in { to { opacity:1; } }
.site-header { position:sticky; top:0; z-index:20; border-top:6px solid var(--navy); border-bottom:1px solid #dfe5eb; background:rgba(255,255,255,.98); } .header-inner { display:flex; min-height:76px; align-items:center; gap:34px; } .brand { display:inline-flex; width:166px; min-width:140px; } .brand img { width:100%; height:47px; object-fit:contain; object-position:left center; } .main-nav { display:flex; align-items:center; gap:27px; margin-left:auto; } .main-nav a { color:#3e4c63; font-size:12px; font-weight:700; letter-spacing:.03em; } .main-nav a:hover,.main-nav a.active { color:var(--orange); } .main-nav .language { padding:7px 9px; border:1px solid #b8c8d9; color:var(--navy); font-size:10px; letter-spacing:.11em; } .menu-toggle { display:none; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:var(--display); } h1 { max-width:850px; margin-bottom:25px; font-size:clamp(49px,6.2vw,82px); font-weight:700; letter-spacing:-.075em; line-height:.98; } h2 { margin-bottom:22px; font-size:clamp(34px,4vw,55px); letter-spacing:-.07em; line-height:1.04; } h3 { margin-bottom:9px; font-size:21px; letter-spacing:-.045em; } h1 em,h2 em { color:var(--orange); font-family:Georgia,serif; font-weight:400; letter-spacing:-.075em; } .eyebrow,.section-label { margin-bottom:17px; color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; } .eyebrow::before,.section-label::before { display:inline-block; width:25px; height:2px; margin:0 10px 3px 0; background:currentColor; content:""; } .lead { max-width:580px; color:var(--muted); font-size:18px; line-height:1.7; }
.button { display:inline-flex; min-height:52px; align-items:center; justify-content:center; gap:18px; padding:0 23px; border:1px solid currentColor; font-size:13px; font-weight:700; letter-spacing:.01em; transition:background .2s,color .2s,transform .2s; } .button:hover { transform:translateY(-2px); } .button-primary { border-color:var(--orange); background:var(--orange); color:white; } .button-primary:hover { border-color:#df4500; background:#df4500; } .button-outline { border-color:var(--navy); color:var(--navy); } .button-outline:hover { background:var(--navy); color:white; } .button span { font-size:20px; font-weight:400; } .actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:37px; } .text-link { display:inline-flex; align-items:center; gap:8px; padding-bottom:5px; border-bottom:1px solid currentColor; font-size:13px; font-weight:700; } .text-link span { font-size:18px; }
.hero { position:relative; overflow:hidden; padding:clamp(76px,10vw,145px) 0 0; background:var(--navy); color:white; } .hero::after { position:absolute; right:max(0px,calc((100% - 1200px)/2)); bottom:0; width:min(31vw,420px); height:6px; background:var(--orange); content:""; } .hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr); gap:clamp(50px,9vw,130px); align-items:end; } .hero-copy { padding-bottom:clamp(68px,9vw,118px); } .hero .eyebrow { color:#91bae9; } .hero h1 { color:white; } .hero h1 em { color:#ff9b6d; } .hero .lead { color:#d7e5f2; } .hero .text-link { color:white; } .hero-statement { position:relative; min-height:480px; padding:35px 0 39px 34px; border-left:1px solid rgba(255,255,255,.35); } .hero-statement::before { position:absolute; top:-26px; left:34px; color:rgba(255,255,255,.16); content:"01"; font:800 125px/.7 var(--display); letter-spacing:-.12em; } .hero-statement p { position:relative; max-width:330px; margin-bottom:95px; color:#d7e5f2; font-size:15px; } .hero-statement strong { position:relative; display:block; max-width:370px; margin-bottom:36px; color:white; font:700 clamp(28px,3vw,42px)/1.05 var(--display); letter-spacing:-.065em; } .hero-statement ul { position:relative; display:grid; gap:0; margin:0; padding:0; border-top:1px solid rgba(255,255,255,.24); list-style:none; } .hero-statement li { display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.24); color:#edf5fb; font-size:12px; } .hero-statement li span { color:#ff9b6d; font-weight:700; }
.trust-bar { border-bottom:1px solid #dfe5eb; background:white; } .trust-bar-grid { display:grid; grid-template-columns:repeat(3,1fr); } .trust-bar p { min-height:125px; margin:0; padding:28px 32px 25px 0; border-right:1px solid #dfe5eb; color:var(--muted); font-size:13px; } .trust-bar p + p { padding-left:32px; } .trust-bar p:last-child { border:0; } .trust-bar strong { display:block; margin-bottom:7px; color:var(--navy); font:700 18px var(--display); letter-spacing:-.05em; }
.section { padding:clamp(88px,11vw,150px) 0; } .intro-layout { display:grid; grid-template-columns:.65fr 1.35fr; gap:60px; } .intro-layout > div { max-width:740px; } .intro-layout h2 { max-width:700px; } .intro-layout p:not(.section-label) { max-width:610px; color:var(--muted); font-size:18px; line-height:1.75; }
.solutions-section { background:var(--warm); } .solutions-heading { display:grid; grid-template-columns:1.12fr .88fr; gap:80px; align-items:end; margin-bottom:57px; } .solutions-heading > p { max-width:410px; margin:0; color:var(--muted); line-height:1.7; } .solution-list { border-top:2px solid var(--navy); } .solution-list article { display:grid; grid-template-columns:11% 35% 1fr; gap:25px; align-items:baseline; padding:27px 0 28px; border-bottom:1px solid #bccada; } .solution-list .number { color:var(--orange); font-size:12px; font-weight:700; } .solution-list h3 { margin:0; color:var(--navy); font-size:23px; } .solution-list p { max-width:470px; margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
.method-section { border-top:1px solid #dfe5eb; background:white; } .method-layout { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(60px,10vw,160px); align-items:start; } .method-layout > div > p:not(.section-label) { max-width:420px; color:var(--muted); line-height:1.7; } .method-list { margin:0; padding:0; border-top:2px solid var(--navy); list-style:none; } .method-list li { display:grid; grid-template-columns:88px 1fr; gap:15px; padding:26px 0; border-bottom:1px solid #bccada; } .method-list > li > span { color:var(--orange); font:700 28px/1 var(--display); letter-spacing:-.08em; } .method-list h3 { margin:0 0 5px; color:var(--navy); } .method-list p { max-width:480px; margin:0; color:var(--muted); font-size:14px; }
.commitment { padding:clamp(75px,9vw,125px) 0; background:var(--navy); color:white; } .commitment .section-label { color:#91bae9; } .commitment h2 { color:white; } .commitment-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:end; } .commitment-grid > div:last-child > p { max-width:540px; margin:0 0 39px; color:#d7e5f2; font-size:17px; line-height:1.7; } .commitment-points { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(255,255,255,.28); border-left:1px solid rgba(255,255,255,.28); } .commitment-points div { min-height:112px; padding:19px; border-right:1px solid rgba(255,255,255,.28); border-bottom:1px solid rgba(255,255,255,.28); } .commitment-points span { display:block; margin-bottom:13px; color:#ff9b6d; font-size:11px; font-weight:700; } .commitment-points strong { color:white; font:700 16px var(--display); letter-spacing:-.04em; }
.contact-banner { padding:clamp(76px,10vw,125px) 0; background:var(--warm); } .contact-banner-grid { display:flex; align-items:end; justify-content:space-between; gap:65px; } .contact-banner h2 { max-width:650px; margin-bottom:12px; } .contact-banner p:not(.section-label) { max-width:520px; margin:0; color:var(--muted); font-size:17px; line-height:1.7; }
.page-hero { padding:clamp(83px,11vw,145px) 0 clamp(70px,8vw,110px); background:var(--navy); color:white; } .page-hero-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:80px; align-items:end; } .page-hero .eyebrow { color:#91bae9; } .page-hero h1 { color:white; } .page-hero h1 em { color:#ff9b6d; } .page-hero-grid > p { max-width:400px; margin:0; color:#d7e5f2; font-size:17px; line-height:1.7; } .framework { display:grid; grid-template-columns:.55fr 1.45fr; gap:64px; } .framework-list { border-top:2px solid var(--navy); } .framework-list article { display:grid; grid-template-columns:86px 1fr; gap:22px; padding:31px 0; border-bottom:1px solid #bccada; } .framework-list .number { color:var(--orange); font:700 27px/1 var(--display); letter-spacing:-.08em; } .framework-list h2 { margin:0 0 10px; color:var(--navy); font-size:clamp(27px,3vw,40px); } .framework-list p { max-width:620px; margin:0; color:var(--muted); line-height:1.7; } .note-panel { padding:clamp(70px,8vw,110px) 0; background:var(--warm); border-top:1px solid #dfe5eb; } .note-panel-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:80px; } .note-panel p:not(.section-label) { max-width:560px; margin:0; color:var(--muted); font-size:17px; line-height:1.75; } .scope-page { background:white; } .scope-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:2px solid var(--navy); } .scope-grid article { min-height:275px; padding:34px 46px 36px 0; border-bottom:1px solid #bccada; } .scope-grid article:nth-child(odd) { margin-right:46px; border-right:1px solid #bccada; } .scope-grid span { color:var(--orange); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; } .scope-grid h2 { margin:26px 0 12px; color:var(--navy); font-size:31px; } .scope-grid p { max-width:410px; margin:0; color:var(--muted); line-height:1.7; } .scope-clarification { max-width:760px; margin:49px 0 0 auto; padding-left:24px; border-left:3px solid var(--orange); color:var(--muted); line-height:1.7; }
.contact-page { padding:clamp(82px,10vw,135px) 0; background:var(--warm); } .contact-page-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(60px,10vw,155px); align-items:start; } .contact-page h1 { color:var(--navy); } .contact-promises { margin-top:43px; border-top:2px solid var(--navy); } .contact-promises p { display:grid; gap:4px; margin:0; padding:16px 0; border-bottom:1px solid #bccada; } .contact-promises strong { color:var(--navy); font-size:14px; } .contact-promises span { color:var(--muted); font-size:13px; } .contact-direct { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 20px; margin-top:29px; } .contact-direct > div { display:grid; gap:3px; } .contact-direct span { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; } .contact-direct a { color:var(--blue); font-size:14px; font-weight:700; } .contact-direct .contact-whatsapp { font-size:11px; font-weight:500; } .contact-form { padding:clamp(31px,4vw,54px); background:white; border-top:5px solid var(--orange); box-shadow:0 20px 48px rgba(0,28,68,.10); } .form-heading { padding-bottom:21px; border-bottom:1px solid var(--line); } .form-heading h2 { margin-bottom:4px; color:var(--navy); font-size:27px; } .form-heading p { margin:0; color:var(--muted); font-size:11px; } .contact-form label { display:grid; gap:7px; margin-top:18px; color:var(--navy); font-size:12px; font-weight:700; } .contact-form label small { color:var(--muted); font-weight:500; } .two-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; } .contact-form input:not([type="checkbox"]),.contact-form textarea { width:100%; padding:12px 0; border:0; border-bottom:1px solid #bdccdc; border-radius:0; outline:0; background:transparent; color:var(--ink); font-size:14px; } .contact-form textarea { resize:vertical; } .contact-form input:focus,.contact-form textarea:focus { border-color:var(--orange); } .contact-form .check { display:flex; align-items:flex-start; gap:9px; margin:24px 0; color:var(--muted); font-weight:500; } .contact-form .check input { margin-top:3px; accent-color:var(--navy); } .contact-form .check a { color:var(--navy); text-decoration:underline; } .contact-form .button { width:100%; } .form-status { min-height:20px; margin:13px 0 0; color:var(--blue); font-size:12px; font-weight:700; }
.site-footer { padding:31px 0; border-top:1px solid #dfe5eb; background:white; } .footer-inner { display:grid; grid-template-columns:190px 1fr 1fr; align-items:center; gap:28px; } .footer-inner img { width:150px; height:46px; object-fit:contain; object-position:left center; } .footer-inner p { margin:0; color:var(--muted); font-size:11px; } .site-footer a:hover { color:var(--orange); } .footer-text-button { padding:0; border:0; color:inherit; background:transparent; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.cookie-banner { position:fixed; z-index:50; right:24px; bottom:24px; left:24px; display:flex; max-width:900px; margin:0 auto; padding:21px 24px; border:1px solid #cdd9e5; box-shadow:0 18px 55px rgba(4,30,53,.22); background:#fff; color:var(--navy); gap:24px; align-items:center; } .cookie-banner[hidden] { display:none; } .cookie-banner-copy { flex:1; } .cookie-banner-copy strong { display:block; margin-bottom:5px; font:700 16px var(--display); } .cookie-banner-copy p { max-width:610px; margin:0; color:var(--muted); font-size:12px; line-height:1.5; } .cookie-banner-copy a { color:var(--blue); text-decoration:underline; } .cookie-banner-actions { display:flex; flex-shrink:0; gap:9px; } .cookie-button { min-width:91px; padding:10px 14px; border:1px solid var(--navy); background:var(--navy); color:#fff; font:700 12px var(--body); cursor:pointer; } .cookie-button:hover { border-color:var(--orange); background:var(--orange); } .cookie-button-secondary { background:#fff; color:var(--navy); }
.legal-page { background:var(--paper); } .legal-header { justify-content:space-between; } .legal-header .header-cta { margin-left:auto; color:var(--blue); font-size:13px; font-weight:700; } .legal-hero { padding:93px 0 76px; border-bottom:1px solid var(--line); background:#f4f7fa; } .legal-hero h1 { margin-bottom:15px; } .legal-hero > .container > p:not(.eyebrow):not(.legal-updated) { max-width:545px; margin-bottom:25px; color:var(--muted); font-size:18px; } .legal-updated { color:var(--muted); font-size:12px; } .legal-content { padding-top:84px; } .legal-grid { display:grid; grid-template-columns:220px minmax(0,710px); gap:clamp(45px,9vw,140px); align-items:start; } .legal-index { position:sticky; top:105px; display:grid; gap:6px; padding-left:14px; border-left:2px solid var(--orange); } .legal-index strong { margin-bottom:7px; color:var(--navy); font-size:13px; } .legal-index a { color:var(--muted); font-size:13px; } .legal-index a:hover { color:var(--blue); } .legal-copy { color:#43536a; font-size:15px; line-height:1.75; } .legal-copy a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; } .legal-copy h2 { margin:68px 0 17px; color:var(--navy); font-size:26px; letter-spacing:-.045em; } .legal-copy section:first-of-type h2 { margin-top:0; } .legal-copy p { margin-bottom:18px; } .legal-copy ul { margin:0 0 20px; padding-left:21px; } .legal-copy li { margin:7px 0; } .legal-lead { margin-bottom:61px!important; padding:24px 27px; border-left:4px solid var(--orange); background:#f3f7fb; color:var(--navy); font-size:18px; font-weight:500; line-height:1.6; }
@media (max-width:900px) { .container { width:min(100% - 48px,720px); } .hero-grid,.intro-layout,.solutions-heading,.method-layout,.commitment-grid,.page-hero-grid,.framework,.note-panel-grid,.contact-page-grid { grid-template-columns:1fr; } .hero-statement { min-height:auto; margin-left:0; } .solutions-heading { gap:16px; } .scope-grid article:nth-child(odd) { margin-right:25px; } .legal-grid { grid-template-columns:1fr; gap:38px; } .legal-index { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 0 20px; border-left:0; border-bottom:2px solid var(--orange); } .legal-index strong { grid-column:1 / -1; } }
@media (max-width:620px) { .container { width:min(100% - 32px,520px); } .site-entry { padding:24px; } .entry-mark { margin-bottom:74px; font-size:clamp(74px,23vw,112px); } .entry-message { max-width:350px; font-size:clamp(40px,11vw,52px); } .entry-action { right:24px; bottom:27px; } .site-header { border-top-width:4px; } .header-inner { min-height:65px; justify-content:space-between; } .brand { width:145px; min-width:0; } .brand img { height:42px; } .menu-toggle { display:grid; width:42px; height:38px; padding:9px; border:1px solid #c5d1dd; background:transparent; place-content:center; gap:5px; } .menu-toggle span:not(.sr-only) { display:block; width:18px; height:1px; background:var(--navy); } .main-nav { position:absolute; top:65px; right:0; left:0; display:none; padding:14px 16px 18px; border-bottom:1px solid var(--line); background:white; } .main-nav.open { display:grid; } .main-nav a { display:block; padding:10px 3px; } h1 { font-size:clamp(42px,13vw,59px); } h2 { font-size:35px; } .hero { padding-top:65px; } .hero-copy { padding-bottom:58px; } .hero-statement { padding:28px 0 30px 23px; } .hero-statement::before { left:23px; font-size:97px; } .hero-statement p { margin-bottom:75px; } .actions { align-items:flex-start; flex-direction:column; gap:20px; } .trust-bar-grid,.scope-grid { grid-template-columns:1fr; } .trust-bar p,.trust-bar p + p { min-height:0; padding:21px 0; border-right:0; border-bottom:1px solid #dfe5eb; } .trust-bar p:last-child { border-bottom:0; } .section { padding:76px 0; } .solution-list article { grid-template-columns:36px 1fr; gap:12px; } .solution-list p { grid-column:2; } .method-list li,.framework-list article { grid-template-columns:51px 1fr; gap:13px; } .method-list > li > span,.framework-list .number { font-size:20px; } .commitment-points { grid-template-columns:1fr; } .contact-banner-grid { align-items:flex-start; flex-direction:column; } .scope-grid article,.scope-grid article:nth-child(odd) { min-height:0; margin:0; padding:29px 0; border-right:0; } .two-fields,.contact-direct { grid-template-columns:1fr; } .footer-inner { grid-template-columns:1fr; gap:13px; } .cookie-banner { right:16px; bottom:16px; left:16px; display:grid; padding:18px; gap:15px; } .cookie-banner-actions { width:100%; } .cookie-button { flex:1; } .legal-hero { padding:65px 0 57px; } .legal-content { padding-top:60px; } .legal-index { grid-template-columns:1fr; } .legal-copy { font-size:14px; } .legal-copy h2 { margin-top:49px; font-size:24px; } .legal-lead { margin-bottom:45px!important; padding:20px; font-size:16px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .entry-mark > span,.entry-message,.entry-action { animation:none; opacity:1; transform:none; } * { transition-duration:.01ms!important; } }
#conteudo,#content,#inicio,#solucoes,#processo,#contactos,#home,#solutions,#process,#contact { scroll-margin-top:82px; }
@media (max-width:620px) { #conteudo,#content { scroll-margin-top:69px; } }
.contact-page > .container h2 { color:var(--navy); }
.contact-page-grid > div > h2 { max-width:610px; }
.contact-page-grid > div > .lead { max-width:560px; color:var(--muted); font-size:18px; line-height:1.75; }
