/* Home, sections, reveal & parallax (loaded after style.css) */
.hero{position:relative;overflow:hidden;color:#fff;min-height:620px;display:flex;align-items:center;background:linear-gradient(120deg,var(--navy-d),var(--navy) 55%,var(--blue))}
.hero .layer{position:absolute;pointer-events:none;will-change:transform}
.sun{width:520px;height:520px;right:-120px;top:-60px;border-radius:50%;background:radial-gradient(circle,var(--gold),var(--orange) 45%,transparent 70%);opacity:.55;filter:blur(6px)}
.grid-lines{top:-20%;right:-10%;width:70%;height:140%;opacity:.18;background:repeating-linear-gradient(90deg,#fff 0 1px,transparent 1px 60px),repeating-linear-gradient(0deg,#fff 0 1px,transparent 1px 60px);transform:perspective(600px) rotateY(-28deg)}
.orb{width:220px;height:220px;left:-60px;bottom:-80px;border-radius:50%;background:rgba(255,255,255,.07)}
.hero .wrap{position:relative;padding-top:90px;padding-bottom:90px;width:100%}
.eyebrow{display:inline-block;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px}
.hero h1,.hero h2{font-size:clamp(34px,5vw,58px);line-height:1.12;max-width:760px;font-weight:700}
.hero h1 span,.hero h2 span{color:var(--gold)}
.hero p.lead{margin:22px 0 34px;max-width:620px;font-size:18px;opacity:.92}
.hero .btns{display:flex;gap:14px;flex-wrap:wrap}
.btn.ghost{background:transparent;border:2px solid rgba(255,255,255,.7);padding:10px 24px}
.btn.ghost:hover{background:#fff;color:var(--navy)}
.badges{display:flex;gap:28px;flex-wrap:wrap;margin-top:44px;font-size:14px;opacity:.95}
.badges span::before{content:"\2713";color:var(--gold);margin-right:8px;font-weight:700}
section.block{padding:96px 0}
section.block.soft{background:var(--soft)}
.sec-head{max-width:680px;margin-bottom:48px}
.sec-head .eyebrow{color:var(--orange)}
.sec-head h2{font-size:clamp(28px,3.4vw,40px);color:var(--navy);line-height:1.2}
.sec-head p{margin-top:12px;color:#55607a}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;transition:transform .3s,box-shadow .3s,border-color .3s,opacity .8s}
.card:hover{transform:translateY(-8px);box-shadow:0 18px 36px rgba(31,59,99,.14);border-color:var(--orange)}
.card .ico{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:24px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#fff;margin-bottom:18px}
.card h3{color:var(--navy);margin-bottom:8px;font-size:19px}
.card p{font-size:15px;color:#55607a}
.stats{background:linear-gradient(120deg,var(--navy-d),var(--blue));color:#fff;position:relative;overflow:hidden}
.stats .bg{position:absolute;inset:-30% 0;background:radial-gradient(circle at 80% 30%,rgba(247,183,51,.25),transparent 50%);will-change:transform}
.stats .wrap{position:relative}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;text-align:center}
.stat b{display:block;font-size:clamp(36px,4.4vw,54px);color:var(--gold);line-height:1.1}
.stat b i{font-style:normal}
.stat span{font-size:15px;opacity:.9}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;counter-reset:s}
.step{padding:28px 24px;background:#fff;border-radius:16px;border:1px solid var(--line);counter-increment:s}
.step::before{content:"0" counter(s);font-size:34px;font-weight:700;color:var(--orange);display:block;margin-bottom:6px}
.step h3{color:var(--navy);font-size:18px}
.step p{font-size:14px;color:#55607a;margin-top:6px}
.cta h2{color:#fff}

/* Reveal */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.reveal.zoom{transform:scale(.92)}
.reveal.in{opacity:1;transform:none}
.card.reveal.in:hover{transform:translateY(-8px);transition-delay:0s}
.hero-in>*{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.hero-in>*:nth-child(2){animation-delay:.12s}
.hero-in>*:nth-child(3){animation-delay:.24s}
.hero-in>*:nth-child(4){animation-delay:.36s}
.hero-in>*:nth-child(5){animation-delay:.48s}
@keyframes rise{from{opacity:0;transform:translateY(34px)}}
.sun{animation:pulse 6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.8}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Impact band with parallax */
.impact{position:relative;overflow:hidden;color:#fff;min-height:640px;display:flex;align-items:center;background:#0f2342}
.impact .layer{position:absolute;left:0;width:100%;will-change:transform;pointer-events:none;object-fit:cover}
.impact .photo{top:-45%;height:190%;object-position:center}
.impact .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,35,66,.93) 0%,rgba(15,35,66,.78) 40%,rgba(15,35,66,.3) 80%,rgba(15,35,66,.2) 100%)}
.impact-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;padding-top:90px;padding-bottom:90px;width:100%}
.impact-copy h2{font-size:clamp(30px,4vw,48px);line-height:1.15;margin:6px 0 18px;max-width:560px}
.impact-copy p{max-width:480px;opacity:.9;margin-bottom:28px}
.impact-stats{display:grid;gap:16px}
.istat{display:flex;align-items:center;gap:24px;padding:22px 28px;border-radius:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-left:4px solid var(--gold)}
.istat b{flex:none;min-width:150px;font-size:clamp(34px,3.6vw,46px);color:var(--gold);line-height:1}
.istat span{font-size:15px;opacity:.95}
@media(max-width:900px){.impact-grid{grid-template-columns:1fr;gap:36px}.impact .shade{background:linear-gradient(0deg,rgba(15,35,66,.9),rgba(15,35,66,.55))}.istat{flex-direction:column;align-items:flex-start;gap:6px}.istat b{min-width:0}}

/* About intro */
.about-intro .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:72px;align-items:center}
.ab-media{position:relative;padding:0 60px 70px 0}
.ab-media .main{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:32% center;border-radius:28px 110px 28px 28px;box-shadow:0 24px 50px rgba(31,59,99,.18)}
.ab-media .inset{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:1/1.05;object-fit:cover;border-radius:24px;border:8px solid #fff;box-shadow:0 18px 40px rgba(31,59,99,.25)}
.ab-media .dots{position:absolute;right:30px;top:24px;width:130px;height:210px;background-image:radial-gradient(var(--orange) 2.2px,transparent 2.5px);background-size:18px 18px;opacity:.55;z-index:-1}
.ab-media .badge{position:absolute;left:-14px;bottom:110px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#fff;border-radius:18px;padding:16px 22px;box-shadow:0 14px 30px rgba(240,138,28,.4);line-height:1.15}
.ab-media .badge b{display:block;font-size:30px}
.ab-media .badge span{font-size:13px;font-weight:500}
.ab-copy h2{font-size:clamp(30px,3.6vw,44px);color:var(--navy);line-height:1.15;margin:4px 0 18px}
.ab-copy p{color:#55607a;margin-bottom:14px}
.ab-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin:22px 0 30px}
.ab-list li{position:relative;padding-left:32px;font-weight:600;color:var(--navy);font-size:15px}
.ab-list li::before{content:"\2713";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--orange);color:#fff;font-size:12px;display:grid;place-items:center}
@media(max-width:900px){.about-intro .wrap{grid-template-columns:1fr;gap:40px}.ab-media{padding:0 24px 56px 0}.ab-list{grid-template-columns:1fr}}

/* Photo hero */
.hero{min-height:760px}
.hero .hero-photo{position:absolute;left:0;top:-18%;width:100%;height:136%;object-fit:cover;object-position:center 60%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,35,66,.92) 0%,rgba(15,35,66,.75) 38%,rgba(15,35,66,.2) 72%,rgba(15,35,66,.1) 100%),linear-gradient(0deg,rgba(15,35,66,.5),transparent 35%)}
.hero h1 span,.hero h2 span{color:var(--gold)}
@media(max-width:900px){.hero{min-height:680px}.hero-shade{background:linear-gradient(0deg,rgba(15,35,66,.92),rgba(15,35,66,.6))}}

/* Hero slider */
.hero.slider{display:block;min-height:0;height:min(88vh,780px);min-height:640px}
.slider .slide{position:absolute;inset:0;display:flex;align-items:center;opacity:0;visibility:hidden;transition:opacity 1.3s ease,visibility 1.3s;z-index:0}
.slider .slide.active{opacity:1;visibility:visible;z-index:1}
.slider .kb{position:absolute;inset:0;overflow:hidden}
.slider .slide.active .kb{animation:kb 9s ease-out forwards}
@keyframes kb{from{transform:scale(1.14)}to{transform:scale(1)}}
.slider .hero-in>*{animation:none}
.slider .slide.active .hero-in>*{animation:rise .9s cubic-bezier(.2,.7,.2,1) .35s both}
.slider .slide.active .hero-in>*:nth-child(2){animation-delay:.5s}
.slider .slide.active .hero-in>*:nth-child(3){animation-delay:.65s}
.slider .slide.active .hero-in>*:nth-child(4){animation-delay:.8s}
.slider .slide .wrap{width:100%}
.hero .slider-ui{padding-top:0;padding-bottom:0;position:absolute;left:50%;transform:translateX(-50%);bottom:34px;z-index:5;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.slider-ui>*{pointer-events:auto}
.slider .dots{display:flex;gap:10px}
.slider .dots button{width:12px;height:12px;border-radius:99px;border:0;background:rgba(255,255,255,.45);cursor:pointer;transition:width .4s,background .3s;padding:0}
.slider .dots button.on{width:38px;background:var(--gold)}
.slider .arrows{display:flex;gap:10px}
.slider .arrows button{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.6);background:rgba(15,35,66,.35);color:#fff;font-size:18px;cursor:pointer;backdrop-filter:blur(6px);transition:background .25s,transform .25s}
.slider .arrows button:hover{background:var(--orange);border-color:var(--orange);transform:scale(1.08)}
.slider .progress{position:absolute;left:0;bottom:0;height:4px;width:100%;background:rgba(255,255,255,.15);z-index:5}
.slider .progress i{display:block;height:100%;width:0;background:var(--orange)}
.slider .progress i.run{animation:prog var(--dur,6.5s) linear forwards}
@keyframes prog{to{width:100%}}
@media(max-width:900px){.hero.slider{height:auto;min-height:680px}.slider .arrows{display:none}}
@media(prefers-reduced-motion:reduce){.slider .slide{transition:none}.slider .slide .hero-in>*{animation:none!important}}
.slider .slide:nth-child(1) .hero-photo{object-position:center 88%}
