html,body{margin:0;padding:0;background:#071a33;}
body{font-family:'Archivo',system-ui,sans-serif;color:#0e1622;-webkit-font-smoothing:antialiased;}
*{box-sizing:border-box;}
a{color:#0d3f80;text-decoration:none;}
a:hover{color:#1f6fd1;}
button{font-family:inherit;}
input,textarea,select,button{font-family:inherit;}
h1,h2,h3,p{font-family:inherit;}
img{max-width:100%;}
::selection{background:#1f6fd1;color:#fff;}
@keyframes fhPulse{0%{box-shadow:0 0 0 0 rgba(77,163,255,.75),0 0 22px 4px rgba(77,163,255,.45);}70%{box-shadow:0 0 0 18px rgba(77,163,255,0),0 0 36px 10px rgba(77,163,255,.2);}100%{box-shadow:0 0 0 0 rgba(77,163,255,0),0 0 22px 4px rgba(77,163,255,.45);}}
@property --fhAng{syntax:'<angle>';inherits:false;initial-value:0deg;}
@keyframes fhSpin{to{--fhAng:360deg;}}
@keyframes fhWaRing{0%{transform:scale(1);opacity:.55;}100%{transform:scale(1.9);opacity:0;}}
@keyframes fhWaWiggle{0%,78%,100%{transform:rotate(0deg) scale(1);}82%{transform:rotate(-14deg) scale(1.08);}86%{transform:rotate(12deg) scale(1.08);}90%{transform:rotate(-8deg) scale(1.04);}94%{transform:rotate(5deg);}}
@keyframes fhWaTip{0%,8%{opacity:0;transform:translateX(10px) scale(.92);}14%,62%{opacity:1;transform:translateX(0) scale(1);}70%,100%{opacity:0;transform:translateX(10px) scale(.92);}}
@keyframes fhWaDot{0%,100%{transform:scale(1);}50%{transform:scale(1.25);}}
/* header default (top of page, desktop) — JS overrides these as you scroll */
[data-site-header]{--hd-pillPadL:10px;--hd-pillBg:linear-gradient(135deg, rgba(255,255,255,0.16), rgba(255,255,255,0.05) 45%, rgba(127,208,255,0.07));--hd-blur:blur(20px) saturate(180%);--hd-pillShadow:0 14px 44px rgba(3,12,26,0.35), inset 0 1px 0 rgba(255,255,255,0.32), inset 0 -1px 0 rgba(255,255,255,0.06);--hd-glowO:1;--hd-leftGap:0px;--hd-brandGap:12px;--hd-logoML:15px;--hd-logoFullW:calc(148px * var(--logo-s,1));--hd-wordO:1;--hd-logoS:1;--hd-logoLightO:1;--hd-logoDarkO:0;--hd-navPe:auto;--hd-burgerW:0px;--hd-burgerO:0;--hd-burgerS:.6;--hd-lineSoft:rgba(255,255,255,0.35);--hd-chipBg:rgba(255,255,255,0.08);--hd-leftFg:#ffffff;--hd-l1:none;--hd-l2o:1;--hd-l3:none;--hd-navDisp:flex;--hd-navO:1;--hd-navY:0px;--hd-phoneGap:10px;--hd-phonePad:17px;--hd-phoneBg:#ffffff;--hd-phoneFg:#0b2f5e;--hd-phoneTxtW:140px;--hd-phoneTxtO:1;}
[data-site-menu]{--mn-o:0;--mn-vis:hidden;--mn-clip:circle(0% at 60px 38px);--mn-logoY:20px;}
.fh-noscript [data-reveal]{opacity:1 !important;transform:none !important;}
/* configurator generated markup */
.fh-opt{cursor:pointer;transition:all .3s cubic-bezier(.2,.7,.2,1);}
.fh-opt:hover{border-color:#1f6fd1 !important;}
.fh-field{border:0;border-bottom:1px solid rgba(156,200,255,0.35);background:transparent;color:#fff;padding:12px 0;font-size:16px;outline:none;width:100%;}
.fh-field:focus{border-bottom-color:#7fd0ff;}
.fh-field-l{border:0;border-bottom:1px solid #cfd6de;padding:12px 0;font-size:17px;outline:none;background:transparent;width:100%;}
.fh-field-l:focus{border-bottom-color:#1f6fd1;}
.fh-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;}
/* responsive layout switches (mobile < 760px, as in the design) */
.fh-hero-wrap{justify-content:center;}
.fh-hero-text{max-width:min(560px, 40vw);margin-top:0;}
.fh-hero-stats{display:block;}
.fh-proc-scene{top:0;left:42%;}
.fh-proc-wrap{justify-content:center;}
.fh-hp-grid{grid-auto-rows:300px;}
.fh-hp-wide{grid-column:span 2;}
@media (max-width:759px){
  .fh-hero-wrap{justify-content:flex-start;}
  .fh-hero-text{max-width:100%;margin-top:110px;}
  .fh-hero-stats{display:none;}
  .fh-proc-scene{top:64%;left:0;}
  .fh-proc-wrap{justify-content:center;}
  .fh-hp-grid{grid-auto-rows:260px;}
  .fh-hp-wide{grid-column:span 1;}
}
.fh-zoom:hover img{transform:scale(1.05) !important;}
.fh-zoom-a:hover img{transform:scale(1.06) !important;}
/* mobile header: burger left, logo centered, phone right */
@media (max-width:759px){
  .fh-hd-left{display:contents !important;}
  .fh-hd-burger{order:0;pointer-events:auto;}
  .fh-hd-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
  .fh-hd-logoimg{margin-left:0 !important;transform-origin:center center !important;}
  [data-site-header] a[href^="tel:"]{order:2;}
}
@media (max-width:759px){.fh-hero-p{font-size:14px !important;margin-top:18px !important;}}
@media (max-width:759px){.fh-hero-btn{font-size:15px !important;padding:15px 20px !important;white-space:nowrap;}}
@media (max-width:759px){.fh-hero-kicker{display:none !important;}.fh-hero-h1{margin-top:0 !important;}}
/* photos: 20px radius + soft, very diffuse shadow */
.fh-img{border-radius:20px !important;box-shadow:0 30px 80px -24px rgba(7,26,51,.18), 0 10px 40px -16px rgba(7,26,51,.08);overflow:hidden;}
/* mobile: WhatsApp bubble only after scrolling past the hero; smaller logo + contact block in the open menu */
@media (max-width:759px){
  .fh-wa-tip{display:none !important;}
  html.fh-past-hero .fh-wa-tip{display:block !important;}
  .fh-mn-logolink{position:fixed !important;left:50%;top:56px;translate:-50% -50%;margin:0;z-index:1;} /* centered on the same line as the close and phone buttons */
  .fh-mn-logo{height:calc(44px * var(--logo-s)) !important;}
  .fh-mn-contact{gap:12px !important;}
  .fh-mn-phone{font-size:20px !important;}
  .fh-mn-mail{font-size:15px !important;}
  .fh-mn-addr{font-size:14px !important;line-height:1.5 !important;}
}
/* open menu: page behind stays fixed on every device */
html.fh-menu-open,html.fh-menu-open body{overflow:hidden !important;}
[data-site-menu]{overscroll-behavior:contain;overflow-y:auto;}
@media (max-width:759px){
  /* list a bit lower; contact block pinned to the bottom, level with the WhatsApp button */
  .fh-mn-inner{display:flex !important;flex-direction:column;align-items:stretch !important;flex:1;padding-top:185px !important;padding-bottom:calc(clamp(16px, 2.4vw, 28px) + env(safe-area-inset-bottom, 0px)) !important;gap:24px !important;}
  .fh-mn-contact{margin-top:auto;}
}

/* "Sobre nosotros" animated icon */
.ai-panel{position:relative;margin:0 0 40px;max-width:460px;display:flex;align-items:center;justify-content:center;}
.ai-glow{position:absolute;inset:-10% -5%;background:radial-gradient(ellipse 40% 55% at 50% 50%,rgba(31,111,209,.2),transparent 70%);opacity:0;transition:opacity 1.6s ease .6s;pointer-events:none;}
.ai-svg{position:relative;width:46%;height:auto;overflow:visible;filter:drop-shadow(0 22px 28px rgba(7,26,51,.28));}
.ai-svg *{transform-box:fill-box;}
.ai-p,.ai-shadow{opacity:0;}
.ai-draw polygon{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;}
.ai-p1{transform:translate(70px,-40px);}
.ai-p2{transform:translate(0,70px);}
.ai-p3{transform:translate(-70px,-30px);}
.ai-on .ai-glow{opacity:1;}
.ai-on .ai-draw polygon{animation:aiDraw 1.7s cubic-bezier(.5,0,.2,1) forwards;}
.ai-on .ai-l2{animation-delay:.25s !important;}.ai-on .ai-l3{animation-delay:.5s !important;}
.ai-on .ai-p{animation:aiIn 1.1s cubic-bezier(.2,.8,.2,1) forwards;}
.ai-on .ai-p3{animation-delay:1.35s;}.ai-on .ai-p2{animation-delay:1.55s;}.ai-on .ai-p1{animation-delay:1.75s;}
.ai-on .ai-shadow{animation:aiFade 1.2s ease 2.3s forwards;}
.ai-on .ai-float{animation:aiFloat 6s ease-in-out 3.2s infinite;}
.ai-on .ai-shine{animation:aiShine 5.5s ease-in-out 3.6s infinite;}
@keyframes aiDraw{0%{opacity:1;stroke-dashoffset:1;}70%{opacity:1;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:0;}}
@keyframes aiIn{to{opacity:1;transform:none;}}
@keyframes aiFade{to{opacity:1;}}
@keyframes aiFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes aiShine{0%,55%{transform:translateX(0) skewX(-18deg);}100%{transform:translateX(1500px) skewX(-18deg);}}
@media (prefers-reduced-motion:reduce){.ai-p,.ai-shadow{opacity:1;transform:none;animation:none !important;}.ai-glow{opacity:1;}.ai-draw,.ai-shine{display:none;}.ai-float{animation:none !important;}}

/* Apple-style thin overlay scrollbars, site-wide */
*::-webkit-scrollbar{width:14px;height:14px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-corner{background:transparent;}
*::-webkit-scrollbar-thumb{background:rgba(110,120,135,.5);border-radius:99px;border:4px solid transparent;background-clip:padding-box;min-height:48px;min-width:48px;transition:background .2s;}
*::-webkit-scrollbar-thumb:hover{background:rgba(110,120,135,.8);border:4px solid transparent;background-clip:padding-box;}
.fh-scroll::-webkit-scrollbar-track{margin:22px 0;}
@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:rgba(110,120,135,.55) transparent;}}
