/* v7 — public site / customer dashboard polish. Loaded after nvision.css; only refines, never replaces. */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body.nv{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.nv img,body.nv video,body.nv svg{max-width:100%}
body.nv :focus-visible{outline:2px solid var(--nv-primary);outline-offset:3px;border-radius:8px}
.nv-wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}

/* cards & buttons: gentle motion, bigger touch targets */
.nv-card{transition:border-color .2s,transform .2s,box-shadow .2s}
.nv-card:hover{border-color:rgba(253,172,8,.55)}
.nv-btn{min-height:44px;transition:transform .15s,filter .15s,background .15s,box-shadow .15s}
.nv-btn:active{transform:scale(.97)}
.nv-btn.sm{min-height:38px}
.nv-input,.nv-select,.nv-textarea{min-height:46px;font-size:16px;transition:border-color .15s,box-shadow .15s} /* 16px stops iOS zoom-on-focus */
.nv-input:focus,.nv-select:focus,.nv-textarea:focus{box-shadow:0 0 0 3px rgba(253,172,8,.28)}

/* entrance animation for grids */
.nv-grid>*,.nv-stat-grid>*,.nv-stats>*{animation:nvUp .45s cubic-bezier(.2,.8,.2,1) both}
.nv-grid>*:nth-child(2),.nv-stat-grid>*:nth-child(2){animation-delay:.05s}
.nv-grid>*:nth-child(3),.nv-stat-grid>*:nth-child(3){animation-delay:.1s}
.nv-grid>*:nth-child(4),.nv-stat-grid>*:nth-child(4){animation-delay:.15s}
@keyframes nvUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* tables: scroll on tablets, stacked cards on phones */
.nv-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--nv-card-radius,16px)}
.nv-table{min-width:560px}
@media (max-width:640px){
    .nv-table-wrap{overflow:visible}
    .nv-table{min-width:0}
    .nv-table,.nv-table tbody,.nv-table tr,.nv-table td{display:block;width:100%}
    .nv-table thead{display:none}
    .nv-table tr{border:1px solid var(--nv-border);border-radius:14px;margin-bottom:10px;padding:6px 2px}
    .nv-table td{border:none!important;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:7px 12px!important;text-align:right}
    .nv-table td::before{content:attr(data-label);color:var(--nv-muted);font-size:12px;text-align:left;flex:0 0 38%}
    .nv-table td:empty{display:none}
    .nv-page-head{flex-direction:column;align-items:stretch;gap:12px}
    .nv-page-head .nv-btn{width:100%}
    .nv-cta-row{flex-direction:column}
    .nv-cta-row .nv-btn{width:100%}
    .nv-modal{width:100%!important;max-width:none!important;border-radius:20px 20px 0 0!important;position:fixed;left:0;right:0;bottom:0;max-height:92dvh;overflow:auto;padding-bottom:calc(20px + env(safe-area-inset-bottom))}
    .nv-pay-method{grid-template-columns:1fr 1fr}
}
@media (min-width:641px) and (max-width:1024px){.nv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* skeleton shimmer helper */
.nv-skel{background:linear-gradient(90deg,rgba(241,243,248,.06),rgba(241,243,248,.14),rgba(241,243,248,.06));background-size:200% 100%;animation:nvSkel 1.2s linear infinite;border-radius:10px;min-height:16px}
@keyframes nvSkel{to{background-position:-200% 0}}

/* checkout method cards */
.nv-pay-method label{transition:border-color .15s,background .15s,transform .15s}
.nv-pay-method label:hover{border-color:var(--nv-primary);transform:translateY(-1px)}
.nv-pay-method input:checked+*,.nv-pay-method label:has(input:checked){border-color:var(--nv-primary);background:rgba(253,172,8,.10)}
.nv-copy{min-width:40px;min-height:40px}
@media (prefers-reduced-motion:reduce){.nv-grid>*,.nv-stat-grid>*,.nv-stats>*,.nv-skel{animation:none!important}}

/* v8 footer */
.nv-footer2{--ft-bg:rgba(10,18,60,.55);--ft-text:var(--nv-muted);--ft-accent:var(--nv-primary);background:var(--ft-bg);color:var(--ft-text);padding:48px 0 22px;margin-top:40px;border-top:1px solid rgba(241,243,248,.12)}
.nv-footer2 .nv-wrap{display:block}
.nv-footer2 a{color:var(--nv-secondary);text-decoration:none;margin:0;transition:color .15s}
.nv-footer2 a:hover{color:var(--ft-accent)}
.ft-grid{display:grid;grid-template-columns:repeat(var(--ft-cols,3),minmax(0,1fr));gap:32px}
.ft-brand{grid-column:span 1}.ft-brand:first-child{min-width:0}
.ft-about{line-height:1.8;margin:12px 0;font-size:14px;max-width:360px}
.ft-contact{list-style:none;margin:10px 0;padding:0;font-size:14px;display:grid;gap:6px}
.ft-col h4{margin:0 0 14px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--nv-secondary)}
.ft-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:14px}
.ft-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ft-social a{padding:6px 14px;border:1px solid rgba(241,243,248,.2);border-radius:999px;font-size:12px}
.ft-social a:hover{border-color:var(--ft-accent)}
.ft-html{margin-top:26px;font-size:14px;line-height:1.8}
.ft-pay{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;padding-top:20px;border-top:1px solid rgba(241,243,248,.1)}
.ft-badge{background:#fff;color:#182968;border-radius:10px;padding:5px 12px;min-height:34px;display:inline-flex;align-items:center;font-size:12px;font-weight:700}
.ft-badge img{height:22px;max-width:70px;object-fit:contain}
.ft-bottom{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center;margin-top:26px;padding-top:18px;border-top:1px solid rgba(241,243,248,.1);font-size:13px}
.ft-bottom-r{display:flex;gap:14px;align-items:center}
.ft-top{padding:6px 14px;border:1px solid rgba(241,243,248,.2);border-radius:999px}
@media (max-width:900px){.ft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-brand{grid-column:1/-1}}
@media (max-width:520px){.ft-grid{grid-template-columns:1fr;gap:24px}.nv-footer2{padding-top:34px}.ft-bottom{flex-direction:column;align-items:flex-start}}
