
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Montserrat:wght@600;700;800&display=swap');
:root{--navy:#06224d;--navy2:#031a3a;--blue:#0c58a8;--green:#67b82e;--green2:#4c9e22;--lime:#9bd84e;--white:#fff;--soft:#f5f8fb;--ink:#10213c;--muted:#607087;--line:#dce5ee;--shadow:0 18px 55px rgba(4,30,65,.12)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"DM Sans",sans-serif;color:var(--ink);line-height:1.65;background:#fff}
a{text-decoration:none;color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}
.container{width:min(1160px,92%);margin:auto}
.topbar{background:var(--navy2);color:#fff;font-size:.8rem;padding:9px 0}
.topbar .container{display:flex;justify-content:space-between;gap:20px}
.header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 4px 20px rgba(0,0,0,.06)}
.header-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.logo{display:flex;align-items:center;gap:10px;min-width:200px}.logo img{width:155px;height:60px;object-fit:contain}.logo-text{display:none}
.nav{display:flex;align-items:center;gap:28px;font-size:.86rem;font-weight:700;color:var(--navy)}
.nav a{position:relative;padding:30px 0}.nav a:after{content:"";position:absolute;left:0;bottom:19px;width:0;height:3px;background:var(--green);transition:.25s}.nav a:hover:after,.nav a.active:after{width:100%}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:14px 22px;font-weight:700;font-size:.86rem;transition:.25s;border:2px solid transparent}.btn.green{background:var(--green);color:#fff}.btn.green:hover{background:var(--green2);transform:translateY(-2px)}.btn.outline{border-color:var(--navy);color:var(--navy)}.btn.outline:hover{background:var(--navy);color:#fff}
.menu{display:none;border:0;background:none;font-size:1.8rem;color:var(--navy)}
.hero{position:relative;min-height:690px;overflow:hidden;background:linear-gradient(90deg,#fff 0%,#f8fbff 53%,#dfe9ee 100%)}
.hero:before{content:"";position:absolute;right:-170px;top:-110px;width:690px;height:900px;border-left:42px solid var(--green);border-radius:50%;transform:rotate(15deg);opacity:.9}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;min-height:690px;gap:30px}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--green2);font-size:.72rem;font-weight:800;margin-bottom:15px}
h1,h2,h3{font-family:Montserrat,sans-serif;line-height:1.1;color:var(--navy)}
h1{font-size:clamp(3rem,6vw,5.7rem);letter-spacing:-.04em}h1 span{color:var(--green)}
h2{font-size:clamp(2.2rem,4vw,3.6rem)}h3{font-size:1.15rem}
.hero-copy p{font-size:1.05rem;max-width:600px;color:var(--muted);margin:23px 0 28px}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.trust-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:34px}.trust{display:flex;align-items:center;gap:9px;font-weight:700;font-size:.8rem;color:var(--navy)}.trust i{width:30px;height:30px;border:2px solid var(--green);border-radius:50%;display:grid;place-items:center;color:var(--green2);font-style:normal}
.hero-visual{height:540px;position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);background:var(--navy)}
.hero-visual img{object-fit:cover;object-position:center top;filter:saturate(.95)}
.badge{position:absolute;right:24px;top:24px;width:125px;height:125px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;padding:15px;box-shadow:0 15px 35px rgba(0,0,0,.16);font-size:.78rem;font-weight:800;color:var(--navy)}.badge strong{display:block;color:var(--green);font-size:1.4rem}
.section{padding:95px 0}.section.soft{background:var(--soft)}.section.navy{background:var(--navy);color:#fff}.section.navy h2,.section.navy h3{color:#fff}.center{text-align:center}.lead{max-width:700px;margin:18px auto 0;color:var(--muted)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.service-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px;box-shadow:0 8px 30px rgba(4,30,65,.05);transition:.25s}.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#b9d99e}
.icon{width:58px;height:58px;border:2px solid var(--navy);border-radius:50%;display:grid;place-items:center;font-size:1.45rem;margin-bottom:22px;background:#fff}
.service-card p{color:var(--muted);font-size:.9rem;margin:12px 0 18px}.more{color:var(--green2);font-weight:800;font-size:.82rem}
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:20px;background:linear-gradient(90deg,var(--green2),var(--green));border-radius:12px;overflow:hidden;color:#fff}.stat{padding:27px;border-right:1px solid rgba(255,255,255,.35);text-align:center}.stat:last-child{border:0}.stat strong{font:800 2rem Montserrat;display:block}.stat span{font-size:.78rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.split-img{height:550px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.copy p{color:var(--muted);margin:18px 0}.checklist{display:grid;gap:12px;margin:25px 0}.check{display:flex;gap:12px;font-weight:700}.check b{color:var(--green)}
.cta{background:linear-gradient(120deg,var(--navy),#0b356f);color:#fff;text-align:center;padding:80px 0}.cta h2{color:#fff}.cta p{color:#d9e3f1;max-width:650px;margin:18px auto 28px}
.page-hero{padding:120px 0 85px;background:linear-gradient(120deg,#f4f8fb,#fff);position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;right:-130px;top:-220px;width:480px;height:480px;border:28px solid var(--green);border-radius:50%}.page-hero p{max-width:650px;color:var(--muted);margin-top:18px}
.pricing{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:45px}.price-card{border:1px solid var(--line);padding:30px;border-radius:14px;background:#fff}.price-card .price{font:800 1.7rem Montserrat;color:var(--green2);margin:14px 0}.price-card ul{list-style:none;display:grid;gap:8px;color:var(--muted);font-size:.9rem}.price-card li:before{content:"✓";color:var(--green);font-weight:800;margin-right:9px}
.gallery{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-auto-rows:230px;gap:15px}.gallery figure{border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.gallery figure:first-child{grid-row:span 2}
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:45px}.quote{background:#fff;padding:30px;border-radius:14px;border:1px solid var(--line)}.quote p{color:var(--muted);font-size:.92rem}.quote strong{display:block;margin-top:20px;color:var(--navy)}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px}.details{display:grid;gap:24px;margin-top:28px}.detail strong{display:block;font-family:Montserrat;color:var(--navy);margin-bottom:4px}.detail p{color:var(--muted)}
form{display:grid;gap:16px;background:#fff;border:1px solid var(--line);padding:32px;border-radius:15px;box-shadow:var(--shadow)}.row{display:grid;grid-template-columns:1fr 1fr;gap:15px}input,select,textarea{width:100%;padding:14px;border:1px solid var(--line);border-radius:6px;background:#fbfcfd;font:inherit;color:var(--ink);outline:none}textarea{min-height:145px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green)}
.footer{background:var(--navy2);color:#dce7f5;padding:65px 0 0}.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px}.footer h3{color:#fff;margin-bottom:18px}.footer p,.footer a{font-size:.87rem;color:#aebfd4}.footer-links{display:grid;gap:9px}.footer a:hover{color:var(--lime)}.footer-logo{width:180px;height:70px;object-fit:contain;object-position:left center;margin-bottom:15px}.bottom{border-top:1px solid #17345c;padding:18px 0;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:.78rem;color:#8fa4bd}.bottom a{color:var(--lime);font-weight:700}
.whatsapp{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;font-size:1.7rem;box-shadow:0 10px 30px rgba(0,0,0,.22);z-index:70}
.toast{position:fixed;right:20px;bottom:92px;background:var(--navy);color:#fff;padding:14px 18px;border-radius:7px;transform:translateY(130px);opacity:0;transition:.3s;z-index:80}.toast.show{transform:none;opacity:1}
@media(max-width:900px){.nav{display:none;position:absolute;left:4%;right:4%;top:82px;background:#fff;padding:20px;box-shadow:var(--shadow);flex-direction:column;align-items:flex-start}.nav.open{display:flex}.nav a{padding:8px 0}.nav a:after{bottom:0}.menu{display:block}.header .btn{display:none}.hero-grid,.split,.contact-grid{grid-template-columns:1fr}.hero{min-height:auto}.hero-grid{padding:75px 0}.hero-visual{height:440px}.services-grid,.testimonials{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr}.gallery figure:first-child{grid-row:span 1}.pricing{grid-template-columns:1fr}}
@media(max-width:600px){.topbar .container{justify-content:center}.topbar .social{display:none}.header-inner{height:72px}.logo img{width:135px}.hero-grid{padding:60px 0}.hero-visual{height:330px}.services-grid,.testimonials,.footer-grid,.row,.stats,.gallery{grid-template-columns:1fr}.section{padding:70px 0}.page-hero{padding:90px 0 65px}.split-img{height:380px}.gallery{grid-auto-rows:240px}.gallery figure:first-child{grid-row:span 1}}

/* =========================
   Dynamic motion layer
   Keeps the original layout + palette intact.
   ========================= */
body{overflow-x:hidden}
body:before{content:"";position:fixed;top:0;left:0;width:var(--progress-width,0%);height:3px;background:var(--green);z-index:9999;transition:width .08s linear;box-shadow:0 0 12px rgba(103,184,46,.35)}
body.page-ready .header{animation:headerDrop .8s cubic-bezier(.2,.75,.2,1) both}
.hero:after{content:"";position:absolute;left:-180px;bottom:-230px;width:500px;height:500px;border:1px solid rgba(6,34,77,.08);border-radius:50%;box-shadow:0 0 0 45px rgba(103,184,46,.025),0 0 0 90px rgba(6,34,77,.018);animation:slowOrbit 18s linear infinite}
.hero:before{animation:greenArc 9s ease-in-out infinite alternate}
.hero-grid{animation:heroLift 1s .12s cubic-bezier(.2,.75,.2,1) both}
.hero-copy .eyebrow{animation:fadeUp .8s .25s both}.hero-copy h1{animation:fadeUp .85s .36s both}.hero-copy>p{animation:fadeUp .85s .48s both}.hero-copy .actions{animation:fadeUp .85s .6s both}.hero-copy .trust-row{animation:fadeUp .85s .72s both}
.hero-visual{animation:visualIn 1.05s .3s cubic-bezier(.16,.8,.2,1) both;transform-style:preserve-3d}
.hero-visual img{transform:scale(1.03);animation:heroKenBurns 13s ease-in-out infinite alternate}
.badge{animation:badgeFloat 4.2s ease-in-out infinite, badgeIn 1s .9s both}
.btn{position:relative;overflow:hidden}.btn:before{content:"";position:absolute;top:-80%;left:-120%;width:60%;height:260%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:rotate(20deg);transition:left .7s ease}.btn:hover:before{left:150%}
.trust i{animation:trustPulse 2.8s ease-in-out infinite}.trust:nth-child(2) i{animation-delay:.4s}.trust:nth-child(3) i{animation-delay:.8s}.trust:nth-child(4) i{animation-delay:1.2s}
.service-card,.price-card,.quote{will-change:transform;transition:transform .35s cubic-bezier(.2,.75,.2,1),box-shadow .35s,border-color .35s}.service-card:hover,.price-card:hover,.quote:hover{transform:translateY(-9px)}
.icon{transition:transform .35s ease,background .35s ease,color .35s ease}.service-card:hover .icon{transform:rotate(-6deg) scale(1.08);background:var(--green);color:#fff;border-color:var(--green)}
.stats{position:relative;overflow:hidden}.stats:after{content:"";position:absolute;top:0;bottom:0;width:90px;left:-120px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-18deg);animation:statsSweep 5s ease-in-out infinite}.stat strong{transition:transform .25s ease}.stat:hover strong{transform:scale(1.08)}
.split-img{position:relative}.split-img:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.14) 50%,transparent 70%);transform:translateX(-130%);animation:imageSheen 7s ease-in-out infinite}.split-img img{transition:transform .8s ease}.split-img:hover img{transform:scale(1.035)}
.page-hero:after{animation:pageRing 10s ease-in-out infinite alternate}
.page-hero h1,.page-hero .eyebrow,.page-hero p{animation:fadeUp .8s cubic-bezier(.2,.75,.2,1) both}.page-hero h1{animation-delay:.16s}.page-hero p{animation-delay:.28s}
.gallery figure{position:relative;transition:transform .45s cubic-bezier(.2,.75,.2,1),box-shadow .45s}.gallery figure:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-130%);transition:transform .9s}.gallery figure:hover{transform:translateY(-7px) scale(1.012);box-shadow:0 22px 55px rgba(4,30,65,.18)}.gallery figure:hover:after{transform:translateX(130%)}
form{transition:transform .35s ease,box-shadow .35s ease}.contact-grid form:hover{transform:translateY(-4px);box-shadow:0 25px 65px rgba(4,30,65,.16)}
.whatsapp{animation:whatsFloat 3.2s ease-in-out infinite}.whatsapp:after{content:"";position:absolute;inset:-5px;border:2px solid rgba(37,211,102,.28);border-radius:50%;animation:whatsRing 2.5s ease-out infinite}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}.reveal.is-visible{opacity:1;transform:none}.reveal-left{opacity:0;transform:translateX(-35px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}.reveal-left.is-visible{opacity:1;transform:none}.reveal-right{opacity:0;transform:translateX(35px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}.reveal-right.is-visible{opacity:1;transform:none}
.stagger>*{opacity:0;transform:translateY(25px)}.stagger.is-visible>*{animation:staggerIn .7s cubic-bezier(.2,.75,.2,1) forwards}.stagger.is-visible>*:nth-child(2){animation-delay:.08s}.stagger.is-visible>*:nth-child(3){animation-delay:.16s}.stagger.is-visible>*:nth-child(4){animation-delay:.24s}.stagger.is-visible>*:nth-child(5){animation-delay:.32s}.stagger.is-visible>*:nth-child(6){animation-delay:.40s}
.footer{position:relative}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--green),transparent);background-size:220% 100%;animation:footerFlow 5s linear infinite}
@keyframes headerDrop{from{transform:translateY(-100%);opacity:0}to{transform:none;opacity:1}}
@keyframes heroLift{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes visualIn{from{opacity:0;transform:translateX(35px) scale(.96)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes greenArc{from{transform:rotate(12deg) translateY(-8px)}to{transform:rotate(18deg) translateY(8px)}}
@keyframes slowOrbit{from{transform:translate(0,0) rotate(0)}to{transform:translate(50px,-20px) rotate(360deg)}}
@keyframes heroKenBurns{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.09) translate3d(-1.5%, -1%, 0)}}
@keyframes badgeFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-9px) rotate(2deg)}}
@keyframes badgeIn{from{opacity:0;transform:scale(.65)}to{opacity:1}}
@keyframes trustPulse{0%,100%{box-shadow:0 0 0 0 rgba(103,184,46,0)}50%{box-shadow:0 0 0 7px rgba(103,184,46,.08)}}
@keyframes statsSweep{0%{left:-120px}55%,100%{left:115%}}
@keyframes imageSheen{0%,55%{transform:translateX(-130%)}75%,100%{transform:translateX(130%)}}
@keyframes pageRing{from{transform:translate(0,0) rotate(0)}to{transform:translate(-35px,30px) rotate(18deg)}}
@keyframes whatsFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes whatsRing{0%{transform:scale(.9);opacity:.8}80%,100%{transform:scale(1.35);opacity:0}}
@keyframes staggerIn{to{opacity:1;transform:none}}
@keyframes footerFlow{to{background-position:-220% 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,.reveal-left,.reveal-right,.stagger>*{opacity:1;transform:none}}
@media(max-width:900px){.hero:after{left:-300px}.hero-visual img{animation-duration:18s}}
