/* ===== reveal system ===== */
@media (prefers-reduced-motion: no-preference){
  html.js .rv{opacity:0;transform:translateY(16px)}
  html.js .rv.in{opacity:1;transform:none;transition:opacity 320ms cubic-bezier(0,0,.2,1),transform 320ms cubic-bezier(0,0,.2,1)}
  html.js .cards .card{opacity:0;transform:translateY(16px)}
  html.js .cards.in .card{opacity:1;transform:none;transition:opacity 320ms cubic-bezier(0,0,.2,1),transform 320ms cubic-bezier(0,0,.2,1)}
  html.js .cards.in .card:nth-child(4n+2){transition-delay:70ms}
  html.js .cards.in .card:nth-child(4n+3){transition-delay:140ms}
  html.js .cards.in .card:nth-child(4n+4){transition-delay:210ms}
  html.js .hero-ctas,html.js .hero-note{animation:fxup 320ms cubic-bezier(0,0,.2,1) both}
  html.js .hero-note{animation-delay:160ms}
  html.js .hero-ctas{animation-delay:80ms}
  html.js .hero img.bg{animation:fxkb 14s linear forwards}
  .steps-3{position:relative}
  .steps-3::before{content:"";position:absolute;left:2%;right:2%;top:44px;height:2px;background:#4FBF2E;transform-origin:left;transform:scaleX(0);z-index:0}
  html.js .steps-3.in::before{transform:scaleX(1);transition:transform 800ms cubic-bezier(0,0,.2,1)}
  html.js .steps-3 .step i{transform:scale(.5);opacity:0}
  html.js .steps-3.in .step i{transform:scale(1);opacity:1;transition:transform 240ms cubic-bezier(.34,1.4,.64,1),opacity 200ms}
  html.js .steps-3.in .step:nth-child(2) i{transition-delay:120ms}
  html.js .steps-3.in .step:nth-child(3) i{transition-delay:240ms}
}
@keyframes fxup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fxkb{from{transform:scale(1)}to{transform:scale(1.05)}}
.trust b{font-variant-numeric:tabular-nums}
@supports (interpolate-size: allow-keywords){
  :root{interpolate-size:allow-keywords}
  details::details-content{block-size:0;overflow:hidden;transition:block-size 260ms cubic-bezier(0,0,.2,1),content-visibility 260ms allow-discrete}
  details[open]::details-content{block-size:auto}
}
/* ===== offer teaser ===== */
.of-teaser{background:linear-gradient(100deg,#0C3140,#0E3B4D);border-radius:18px;padding:16px 22px;margin-top:34px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;cursor:pointer}
.of-teaser .of-pill{background:#9BE06F;color:#082B3A;font:700 11px/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:16px;padding:7px 12px;white-space:nowrap}
.of-teaser .of-line{color:#DCEADE;font-size:15px;flex:1;min-width:220px}
.of-teaser .btn{padding:10px 18px;font-size:14px}
/* ===== offer popup ===== */
.of-scrim{position:fixed;inset:0;z-index:199;background:rgba(19,43,46,.72);backdrop-filter:blur(4px);display:none}
.of-modal{position:fixed;z-index:200;display:none;left:50%;top:50%;transform:translate(-50%,-50%);width:min(460px,calc(100vw - 28px))}
body.of-open .of-scrim,body.of-open .of-modal{display:block}
body.of-open{overflow:hidden;scrollbar-gutter:stable}
body.of-open .mbar{display:none!important}
.of-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35);max-height:92svh;overflow-y:auto}
.of-x{position:absolute;top:-14px;right:-14px;width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid #E4E6E0;font-size:22px;color:#132B2E;cursor:pointer;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.of-img{width:100%;height:170px;object-fit:cover;display:block}
.of-body{padding:22px 24px 26px}
.of-pill2{display:inline-block;background:#9BE06F;color:#082B3A;font:700 11px/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:16px;padding:6px 11px;margin-bottom:12px}
.of-h{font-family:Sora,Inter,sans-serif;font-weight:800;font-size:26px;line-height:1.15;color:#132B2E;margin:0 0 16px}
.of-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.of-tile{background:#F6F5F0;border-radius:12px;padding:12px 10px;text-align:center}
.of-tile b{display:block;font-family:Sora;font-size:15.5px;color:#132B2E;margin:4px 0 3px}
.of-tile span{font-size:11.5px;color:#5C6B60;line-height:1.35;display:block}
.of-tile i{font-style:normal;font-size:17px}
.of-math{font-size:14.5px;color:#132B2E;margin:0 0 16px}
.of-form input{width:100%;box-sizing:border-box;height:48px;padding:0 14px;border:1.5px solid #E4E6E0;border-radius:11px;font-size:15px;margin-bottom:10px;background:#FBFBF9}
.of-form input:focus{outline:none;border-color:#4FBF2E}
.of-btn{width:100%;height:52px;border:0;border-radius:12px;background:#4FBF2E;color:#fff;font:700 16px Inter,sans-serif;cursor:pointer}
.of-btn:hover{background:#3FA51F}
.of-foot{display:flex;justify-content:center;gap:10px;margin-top:12px;font-size:13px}
.of-no{color:#5C6B60;text-decoration:underline;background:none;border:0;cursor:pointer;font-size:13px}
.of-note{font-size:12px;color:#5C6B60;text-align:center;margin:10px 0 0;line-height:1.5}
.of-terms{margin-top:12px}
.of-terms summary{font-size:12.5px;color:#5C6B60;cursor:pointer}
.of-terms p{font-size:12.5px;color:#5C6B60;margin-top:8px}
.of-ok{text-align:center;padding:10px 0}
.of-ok .ok{width:56px;height:56px;border-radius:50%;background:#4FBF2E;color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.of-err{color:#B4543F;font-size:13px;margin:0 0 8px;display:none}
@media(max-width:600px){
  .of-modal{left:0;right:0;top:auto;bottom:0;transform:none;width:auto}
  .of-card{border-radius:20px 20px 0 0;max-height:78svh}
  .of-x{top:10px;right:10px;box-shadow:none}
  .of-img{height:110px}
  @media (prefers-reduced-motion: no-preference){
    body.of-open .of-card{animation:ofup 300ms cubic-bezier(0,0,.2,1)}
  }
}
@keyframes ofup{from{transform:translateY(100%)}to{transform:none}}
.of-h:focus{outline:none}
