/* CoreStruct Hero */
@keyframes cswHeroUp{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes cswHeroImg{from{opacity:0;scale:1.08}to{opacity:1;scale:1}}
@keyframes cswPxPop{from{opacity:0;scale:.2}to{opacity:1;scale:1}}
.csw-hero{padding:0;background:var(--forest);display:grid;grid-template-columns:var(--hero-cols,1.05fr 1fr);min-height:640px;position:relative;overflow:hidden}
.csw-hero .hero-txt{display:flex;flex-direction:column;justify-content:center;gap:28px;position:relative;padding:var(--pad-section) var(--gutter);padding-left:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)))}
.csw-hero .hero-txt > *{animation:cswHeroUp .8s cubic-bezier(.2,.7,.2,1) both}
.csw-hero .hero-txt > :nth-child(2){animation-delay:.12s}
.csw-hero .hero-txt > :nth-child(3){animation-delay:.24s}
.csw-hero .hero-title{display:block;margin:0;font:700 var(--fs-h1)/1.12 var(--f-head);color:var(--white);max-width:16ch}
.csw-hero .badge{align-self:flex-start;font:700 13px/1 var(--f-accent);letter-spacing:.12em;text-transform:uppercase;color:var(--white);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:10px 16px;border-radius:999px}
.csw-hero .hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px}
.csw-hero .px{position:absolute;width:36px;height:36px;z-index:2;animation:cswPxPop .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(.4s + var(--i,0)*.06s)}
.csw-hero .hp1{top:0;left:0;background:var(--white)}
.csw-hero .hp2{top:0;left:72px;background:var(--white)}
.csw-hero .hp3{top:36px;left:36px;background:var(--mint)}
.csw-hero .hp4{top:0;left:52.5%;background:var(--white)}
.csw-hero .hp5{top:36px;left:calc(52.5% + 36px);background:var(--sage)}
.csw-hero .hp6{top:0;left:calc(52.5% + 72px);background:var(--mint)}
.csw-hero .hp7{bottom:0;left:calc(52.5% - 72px);background:var(--white)}
.csw-hero .hp8{bottom:36px;left:calc(52.5% - 36px);background:var(--white)}
.csw-hero .hp9{bottom:0;left:calc(52.5% - 36px);background:var(--sage)}
.csw-hero .hero-img{position:relative;min-height:320px}
.csw-hero .hero-img img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;animation:cswHeroImg 1.4s cubic-bezier(.2,.7,.2,1) both}
@media (max-width:860px){
  .csw-hero{grid-template-columns:1fr}
  .csw-hero .hero-txt{padding:56px var(--gutter)}
  .csw-hero .px{display:none}
  .csw-hero .hp1,.csw-hero .hp2,.csw-hero .hp3{display:block;width:20px;height:20px}
  .csw-hero .hp2{left:40px}
  .csw-hero .hp3{top:20px;left:20px}
  .csw-hero .hero-txt{padding-top:72px}
}
/* floating badges */
.csw-hero .hf{position:absolute;z-index:2;font-family:var(--f-head);color:var(--ink);box-shadow:0 18px 40px -16px rgba(0,0,0,.55);animation:cswHfIn .8s cubic-bezier(.2,.7,.2,1) both,cswHfFloat 6s ease-in-out infinite;animation-delay:var(--d,.6s),calc(var(--d,.6s) + .8s)}
.csw-hero .hf-checks{top:16%;right:6%;display:flex;flex-direction:column;align-items:flex-end;gap:10px;box-shadow:none;--d:.7s}
.csw-hero .hf-checks > span{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.95);padding:8px 16px 8px 8px;border-radius:999px;font-size:14px;box-shadow:0 12px 28px -12px rgba(0,0,0,.55)}
.csw-hero .hf-checks i{width:22px;height:22px;border-radius:50%;background:var(--sage);color:var(--white);display:grid;place-items:center}
.csw-hero .hf-checks svg{width:13px;height:13px}
.csw-hero .hf-card{left:6%;top:50%;background:rgba(255,255,255,.96);border-radius:var(--radius);padding:18px 20px;max-width:300px;--d:.9s}
.csw-hero .hf-card strong{display:block;font-weight:400;font-size:18px;margin-bottom:12px}
.csw-hero .hf-card div{display:flex;flex-wrap:wrap;gap:6px}
.csw-hero .hf-card div span{font-size:13px;color:var(--forest);border:1px solid var(--sage);border-radius:999px;padding:5px 11px}
.csw-hero .hf-stat{right:6%;bottom:12%;background:var(--gold);border-radius:var(--radius);padding:18px 22px;max-width:190px;--d:1.1s}
.csw-hero .hf-stat b{display:block;font-weight:400;font-size:38px;line-height:1}
.csw-hero .hf-stat span{display:block;font-size:13px;line-height:1.35;margin-top:6px}
@keyframes cswHfIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes cswHfFloat{0%,100%{translate:0 0}50%{translate:0 -8px}}
@media (max-width:860px){
  .csw-hero .hero-img{min-height:420px}
  .csw-hero .hf-checks{top:20px;right:16px}
  .csw-hero .hf-card{left:16px;top:auto;bottom:20px;max-width:240px;padding:14px 16px}
  .csw-hero .hf-stat{right:16px;bottom:20px;padding:14px 16px;max-width:140px}
  .csw-hero .hf-stat b{font-size:28px}
}
@media (max-width:480px){.csw-hero .hf-card{display:none}}
@media (prefers-reduced-motion:reduce){.csw-hero .hero-txt > *,.csw-hero .hero-img img,.csw-hero .px,.csw-hero .hf{animation:none}}
/* subpage variant */
.csw-hero.hero-sub{min-height:460px}
.csw-hero.hero-sub .hero-title{font-size:clamp(41.6px,6vw,76px)}
.csw-hero .crumbs{display:flex;align-items:center;gap:10px;font:400 15px/1 var(--f-accent);color:var(--mint)}
.csw-hero .crumbs a{color:var(--mint);padding:0;background:none;text-decoration:none;border-bottom:1px solid transparent}
.csw-hero .crumbs a:hover,.csw-hero .crumbs a:focus{color:var(--mint);border-color:var(--gold)}
.csw-hero .crumbs span[aria-hidden]{color:var(--gold)}
.csw-hero .crumbs [aria-current]{color:var(--white);font-weight:700}
.csw-hero .hero-sub-p{display:block;color:var(--mint);font-size:20px}
