:root{
  --navy:#172C87;
  --navy-deep:#0F1E63;
  --cream:#FFFCF6;
  --paper:#FFF8EE;
  --ink:#1B1D3A;
  --ink-soft:#5B5E80;
  --orange:#F5893A;
  --sky:#2BB2EC;
  --green:#2CCF42;
  --terracotta:#C85700;
  --white:#FFFFFF;
  --radius:28px;
  --radius-sm:18px;
  --maxw:1200px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden; width:100%;}
body{
  font-family:'Nunito', sans-serif; color:var(--ink); background:var(--cream);
  line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; width:100%;
}
h1,h2,h3,h4{font-family:'Baloo 2', sans-serif; color:var(--navy); line-height:1.12; font-weight:700;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
section{position:relative;}
:focus-visible{outline:3px solid var(--orange); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

/* ============ HEADER ============ */
header{position:sticky; top:0; z-index:200; background:rgba(255,252,246,0.88); backdrop-filter:blur(10px); border-bottom:2px solid rgba(23,44,135,0.06);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 32px; max-width:var(--maxw); margin:0 auto;}
.nav .logo-mark{height:44px;}
.nav-links{display:flex; align-items:center; gap:8px;}
.nav-links a.nl{font-family:'Baloo 2'; font-weight:600; font-size:15px; color:var(--navy); padding:10px 16px; border-radius:100px; transition:.2s;}
.nav-links a.nl:hover{background:rgba(23,44,135,0.06);}
.btn{display:inline-flex; align-items:center; gap:8px; font-family:'Baloo 2'; font-weight:700; font-size:15px; padding:13px 24px; border-radius:100px; border:none; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease;}
.btn-primary{background:var(--orange); color:var(--white); box-shadow:0 8px 0 0 #D66F1F;}
.btn-primary:hover{transform:translateY(-2px);}
.btn-primary:active{transform:translateY(3px); box-shadow:0 3px 0 0 #D66F1F;}
.btn-outline{background:var(--white); color:var(--navy); border:2.5px solid var(--navy);}
.btn-outline:hover{background:var(--navy); color:var(--white);}
.menu-toggle{display:none; background:none; border:none; cursor:pointer; position:relative; z-index:260; width:30px; height:24px;}
.menu-toggle span{display:block; width:24px; height:3px; background:var(--navy); margin:5px 0; border-radius:2px; transition:transform .3s cubic-bezier(.34,1.56,.64,1), opacity .2s ease;}
.menu-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.menu-toggle.open span:nth-child(2){opacity:0; transform:scaleX(0);}
.menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.nav-backdrop{position:fixed; inset:0; background:rgba(15,30,99,0.45); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity .35s ease; z-index:250;}
.nav-backdrop.open{opacity:1; pointer-events:auto;}
body.no-scroll{overflow:hidden;}

/* ============ SECTION HEAD ============ */
.section-head{max-width:640px; margin:0 auto 56px; text-align:center;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:'Baloo 2'; font-weight:700; font-size:13px; letter-spacing:.5px; text-transform:uppercase; color:var(--navy); background:var(--white); border:2.5px solid var(--navy); padding:8px 20px; border-radius:100px; margin-bottom:20px; box-shadow:3px 3px 0 0 var(--navy);}
.section-head h2{font-size:clamp(1.8rem, 3.4vw, 2.5rem); margin-bottom:14px;}
.section-head p{color:var(--ink-soft); font-size:17px; font-weight:600;}

/* ============ FOOTER ============ */
footer{background:var(--navy); padding:44px 0; margin-top:40px;}
.footer-inner{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px;}
.footer-inner img{height:26px; filter:brightness(0) invert(1);}
.footer-links{display:flex; gap:24px;}
.footer-links a{font-family:'Baloo 2'; font-weight:600; font-size:14px; color:rgba(255,255,255,0.75);}
.footer-links a:hover{color:var(--white);}
.legal{font-size:13px; color:rgba(255,255,255,0.5); font-weight:600;}

/* reveal */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ============ LOADER ============ */
body.is-loading{overflow:hidden;}
.loader{
  position:fixed; inset:0; z-index:9999; background:var(--cream);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
  transition:opacity .6s ease, visibility .6s ease;
}
.loader.hide{opacity:0; visibility:hidden; pointer-events:none;}
.loader-scale{display:flex; align-items:center; justify-content:center; transition:transform .2s ease;}
.loader-mark{position:relative; width:150px; height:150px; animation:markPulse 2.4s ease .1s 1;}
.loader-arrow{
  position:absolute; left:2px; top:50%; width:56px; height:76px; transform:translateY(-50%) translateX(-24px);
  opacity:0; animation:arrowIn .5s cubic-bezier(.22,1,.36,1) .1s forwards;
}
.loader-arrow svg{width:100%; height:100%;}
.loader-petal{
  position:absolute; width:28px; height:42px; border-radius:50% 50% 50% 6px;
  opacity:0; transform:scale(0) rotate(var(--r));
  animation:petalPop .55s cubic-bezier(.34,1.56,.64,1) forwards;
  animation-delay:var(--d);
}
.lp-sky{background:var(--sky); top:8px; left:44px; --r:-45deg; --d:.32s;}
.lp-orange{background:var(--orange); top:8px; right:20px; --r:45deg; --d:.46s;}
.lp-terra{background:var(--terracotta); bottom:8px; left:44px; --r:-135deg; --d:.6s;}
.lp-green{background:var(--green); bottom:8px; right:20px; --r:135deg; --d:.74s;}
.loader-bar{
  position:absolute; top:50%; right:14px; width:44px; height:16px; border-radius:100px; background:var(--navy);
  transform:translateY(-50%) scaleX(0); transform-origin:right center;
  animation:barGrow .4s cubic-bezier(.34,1.56,.64,1) .9s forwards;
}
.loader-word{display:flex; overflow:hidden;}
.loader-word span{
  font-family:'Baloo 2'; font-weight:800; font-size:clamp(20px,6vw,30px); color:var(--navy);
  opacity:0; transform:translateY(100%); display:inline-block;
  animation:letterUp .5s cubic-bezier(.22,1,.36,1) forwards;
}
.loader-word span:nth-child(1){animation-delay:1.15s;}
.loader-word span:nth-child(2){animation-delay:1.22s;}
.loader-word span:nth-child(3){animation-delay:1.29s;}
.loader-word span:nth-child(4){animation-delay:1.36s;}
.loader-word span:nth-child(5){animation-delay:1.43s;}

@keyframes arrowIn{to{opacity:1; transform:translateY(-50%) translateX(0);}}
@keyframes petalPop{to{opacity:1; transform:scale(1) rotate(var(--r));}}
@keyframes barGrow{to{transform:translateY(-50%) scaleX(1);}}
@keyframes letterUp{to{opacity:1; transform:translateY(0);}}
@keyframes markPulse{0%,55%{transform:scale(1);} 68%{transform:scale(1.07);} 82%,100%{transform:scale(1);}}

@media (prefers-reduced-motion: reduce){
  .loader{transition:opacity .01s linear;}
  .loader-arrow, .loader-petal, .loader-bar, .loader-word span, .loader-mark{animation:none !important; opacity:1 !important; transform:none !important;}
  .loader-scale{transform:none !important;}
}

@media (max-width:480px){
  .loader{gap:18px;}
  .loader-scale{transform:scale(.74);}
}
@media (max-width:360px){
  .loader-scale{transform:scale(.6);}
}
@media (max-height:480px){
  .loader{gap:12px;}
  .loader-scale{transform:scale(.6);}
}

/* ============ RESPONSIVE (nav) ============ */
@media (max-width:900px){
  .nav-links{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw,300px);
    background:var(--cream); flex-direction:column; align-items:stretch; justify-content:center;
    padding:32px 30px; gap:12px; box-shadow:-14px 0 40px -16px rgba(0,0,0,0.3);
    transform:translateX(100%); opacity:1; transition:transform .4s cubic-bezier(.22,1,.36,1); pointer-events:none; z-index:255;
  }
  .nav-links.open{transform:translateX(0); pointer-events:auto;}
  .nav-links .nl, .nav-links .btn{width:100%; justify-content:center;}
  .nav-links a{opacity:0; transform:translateX(24px); transition:opacity .35s ease, transform .35s ease;}
  .nav-links.open a{opacity:1; transform:translateX(0);}
  .nav-links.open a:nth-child(1){transition-delay:.08s;}
  .nav-links.open a:nth-child(2){transition-delay:.14s;}
  .nav-links.open a:nth-child(3){transition-delay:.2s;}
  .nav-links.open a:nth-child(4){transition-delay:.26s;}
  .nav-links.open a:nth-child(5){transition-delay:.32s;}
  .menu-toggle{display:block;}
}
