/* Shared foundation for newhome pages (index baseline). */
:root{
  --navy:#071b31;
  --navy2:#0b2948;
  --blue:#0877c9;
  --cyan:#25b9ed;
  --sky:#70d9fa;
  --ink:#10263b;
  --muted:#607487;
  --pale:#edf5fa;
  --white:#fff;
  --line:#dce7ef;
  --green:#38d6a1;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Poppins,Arial,sans-serif;color:var(--ink);background:#fff}
a{text-decoration:none;color:inherit}
.wrap{width:min(1180px,calc(100% - 48px));margin:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:4px;background:var(--blue);color:#fff;font-size:13px;font-weight:600;letter-spacing:.1px;transition:.2s}
.btn:hover{background:#0565ad;transform:translateY(-1px)}
.btn.outline{background:transparent;border:1px solid rgba(255,255,255,.55);color:#fff}
.btn.outline:hover{background:#fff;color:var(--navy)}
.kicker{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--blue);font-weight:700;margin-bottom:14px}
.section{padding:108px 0}
.section-head{max-width:720px;margin-bottom:48px}
.section h2{font-size:clamp(32px,4vw,48px);line-height:1.2;letter-spacing:-1.6px;margin:0 0 18px;color:var(--navy);font-weight:600}
.section-head p,.lead{font-size:15px;line-height:1.85;color:var(--muted);margin:0}
.contact{background:linear-gradient(110deg,#071b31,#0a3c67);padding:78px 0;color:#fff}
.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:32px}
.contact h2{color:#fff;font-size:clamp(30px,4vw,44px);margin:0 0 10px;letter-spacing:-1.3px}
.contact p{margin:0;color:#c0d2df;font-size:14px}
.mobile-cta{display:none}
a.btn,
a.btn:hover,
a.btn:focus,
a.btn:visited,
a.mobile-cta{text-decoration:none}
a.btn::after,
a.btn::before,
a.mobile-cta::after,
a.mobile-cta::before{content:none!important;display:none!important}
a:focus-visible,button:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}

/* Scroll reveal (js-reveal baseline) */
.js-reveal [data-reveal]{
  opacity:0;
  transform:translate3d(0,28px,0);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform;
}
.js-reveal [data-reveal="left"]{transform:translate3d(-34px,0,0)}
.js-reveal [data-reveal="right"]{transform:translate3d(34px,0,0)}
.js-reveal [data-reveal="scale"]{transform:translate3d(0,18px,0) scale(.965)}
.js-reveal [data-reveal].is-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
.js-reveal .reveal-group>*{
  opacity:0;
  transform:translate3d(0,22px,0);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--reveal-delay,0ms);
}
.js-reveal .reveal-group.is-visible>*{
  opacity:1;
  transform:translate3d(0,0,0);
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js-reveal [data-reveal],.js-reveal .reveal-group>*{
    opacity:1!important;transform:none!important;transition:none!important;will-change:auto
  }
}
@media(max-width:650px){
  html,body{overflow-x:clip;max-width:100%}
  .wrap{width:min(100% - 36px,1180px)}
  .section{padding:74px 0}
  .section h2{font-size:34px}
  .contact-inner{align-items:flex-start;flex-direction:column}
  /* Pin to the visual viewport — left+right alone can size against a wider
     layout viewport when something else has already caused horizontal overflow. */
  .mobile-cta{
    display:flex;
    position:fixed;
    bottom:14px;
    left:14px;
    right:auto;
    z-index:10;
    width:calc(100vw - 28px);
    max-width:calc(100% - 28px);
    box-sizing:border-box;
    text-align:center;
    box-shadow:0 8px 25px rgba(0,0,0,.22);
  }
  .mobile-cta:hover{transform:none}
  body{padding-bottom:72px}
}
