/* GAINS Profile - standalone app */
.gains-app{
    --p:#294d6d;
    --pd:#1e3b55;
    --a:#f0a33a;
    --as:#fff2de;
    --t:#24323f;
    --m:#6c7a86;
    --soft:#f4f7fa;
    --b:#dce5ec;
    --err:#b94545;
    --shadow:0 18px 45px rgba(32,55,73,.10);
    min-height:100vh;
    background:#fff;
    color:var(--t);
    font:16px/1.6 Arial,Helvetica,sans-serif;
}

.gains-app *{box-sizing:border-box}
.gains-app h1,.gains-app h2,.gains-app h3,.gains-app p{margin-top:0}

.gains-shell{
    width:100%;
    max-width:1160px;
    margin:0 auto;
    padding:0 24px;
}

.gains-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:12px 22px;
    border:1px solid transparent;
    border-radius:10px;
    font:700 .92rem/1 Arial,Helvetica,sans-serif;
    cursor:pointer;
    transition:.2s;
}

.gains-btn:hover{transform:translateY(-2px)}
.gains-btn:disabled{opacity:.62;cursor:wait;transform:none}
.gains-btn-primary{background:var(--p);border-color:var(--p);color:#fff}
.gains-btn-primary:hover{background:var(--pd)}
.gains-btn-secondary{background:#fff;border-color:var(--b);color:var(--p)}
.gains-btn-test{margin-top:11px;background:#fff8ec;border-color:#efc275;color:#805512}
.gains-btn-large{min-height:55px;padding:14px 28px}
.gains-full-btn{width:100%}

.gains-hero{
    padding:84px 0;
    border-bottom:1px solid var(--b);
    background:
        radial-gradient(circle at 10% 10%,rgba(240,163,58,.18),transparent 30%),
        radial-gradient(circle at 90% 0%,rgba(41,77,109,.15),transparent 34%),
        linear-gradient(#f9fbfd,#fff);
}

.gains-hero-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:68px;
    align-items:center;
}

.gains-kicker,
.gains-heading>span,
.gains-page-heading>span,
.gains-panel-title>span{
    display:block;
    margin-bottom:10px;
    color:var(--p);
    font-size:.74rem;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.gains-hero h1{
    margin-bottom:22px;
    font-size:clamp(3rem,5vw,4.8rem);
    line-height:1.02;
    letter-spacing:-.05em;
}

.gains-lead{
    max-width:690px;
    margin-bottom:28px;
    color:var(--m);
    font-size:1.08rem;
}

.gains-actions{display:flex;gap:12px;flex-wrap:wrap}

.gains-hero-points{
    display:flex;
    flex-wrap:wrap;
    gap:17px;
    margin-top:25px;
    color:var(--m);
    font-size:.8rem;
    font-weight:600;
}

.gains-hero-points span:before{
    content:"✓";
    margin-right:6px;
    color:var(--a);
    font-weight:800;
}

.gains-source-visual{
    max-width:490px;
    margin:auto;
}

.gains-source-card{
    display:flex;
    align-items:center;
    gap:15px;
    padding:19px 21px;
    border:1px solid var(--b);
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 24px rgba(28,50,68,.06);
}

.gains-source-card.featured{
    border-color:#b9cbd9;
    box-shadow:var(--shadow);
}

.gains-source-card strong,
.gains-source-card small{
    display:block;
}

.gains-source-card small{
    margin-top:2px;
    color:var(--m);
}

.gains-source-badge{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    flex:0 0 42px;
    border-radius:12px;
    background:var(--as);
    color:var(--p);
    font-weight:800;
}

.gains-source-card.featured .gains-source-badge{
    background:var(--p);
    color:#fff;
}

.gains-source-line{
    width:2px;
    height:26px;
    margin:auto;
    background:var(--b);
}

.gains-source-or{
    width:44px;
    margin:11px auto;
    padding:4px 0;
    border-radius:999px;
    background:var(--soft);
    color:var(--m);
    font-size:.68rem;
    font-weight:800;
    text-align:center;
}

.gains-stat-strip{border-bottom:1px solid var(--b)}

.gains-stat-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
}

.gains-stat-grid>div{
    padding:22px;
    border-right:1px solid var(--b);
}

.gains-stat-grid>div:first-child{border-left:1px solid var(--b)}
.gains-stat-grid strong,.gains-stat-grid span{display:block}
.gains-stat-grid span{color:var(--m);font-size:.75rem}

.gains-section{padding:82px 0}

.gains-heading{
    max-width:720px;
    margin:0 auto 42px;
    text-align:center;
}

.gains-heading h2{
    margin-bottom:10px;
    font-size:2.65rem;
    letter-spacing:-.03em;
}

.gains-heading p{color:var(--m)}

.gains-card-grid{
    display:grid;
    gap:18px;
}

.gains-card-grid.four{
    grid-template-columns:repeat(4,1fr);
}

.gains-step-card{
    min-height:245px;
    padding:25px;
    border:1px solid var(--b);
    border-radius:18px;
    background:#fff;
}

.gains-step-card i{
    color:var(--a);
    font-size:.72rem;
    font-style:normal;
    font-weight:800;
}

.gains-step-card h3{
    margin:48px 0 10px;
    font-size:1.08rem;
}

.gains-step-card p{
    color:var(--m);
    font-size:.88rem;
}

.gains-progress-wrap{
    padding:20px 0;
    border-bottom:1px solid var(--b);
    background:#fff;
}

.gains-progress{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    overflow:hidden;
    border:1px solid var(--b);
    border-radius:12px;
}

.gains-progress-step{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:46px;
    padding:8px;
    border-right:1px solid var(--b);
    color:var(--m);
    font-size:.78rem;
}

.gains-progress-step:last-child{border-right:0}

.gains-progress-step span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:23px;
    height:23px;
    border:1px solid var(--b);
    border-radius:50%;
    background:#fff;
    font-size:.68rem;
}

.gains-progress-step.is-active{
    background:var(--p);
    color:#fff;
}

.gains-progress-step.is-complete{
    background:#edf4f8;
    color:var(--p);
}

.gains-stage-holder{
    padding:55px 0 80px;
    background:var(--soft);
}

.gains-page-heading{
    max-width:780px;
    margin:0 auto 34px;
    text-align:center;
}

.gains-page-heading.left{
    margin-left:0;
    text-align:left;
}

.gains-page-heading h1{
    margin-bottom:10px;
    font-size:2.5rem;
    line-height:1.1;
    letter-spacing:-.035em;
}

.gains-page-heading p{color:var(--m)}

.gains-path-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    max-width:920px;
    margin:0 auto 28px;
}

.gains-path-card{
    min-height:255px;
    padding:32px;
    border:1px solid var(--b);
    border-radius:20px;
    background:#fff;
    color:var(--t);
    text-align:left;
    cursor:pointer;
    box-shadow:0 8px 25px rgba(28,50,68,.05);
    transition:.2s;
}

.gains-path-card:hover{
    transform:translateY(-4px);
    border-color:#b7cad8;
    box-shadow:var(--shadow);
}

.gains-path-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    margin-bottom:26px;
    border-radius:14px;
    background:var(--as);
    color:var(--p);
    font-size:1rem;
    font-weight:800;
}

.gains-path-card strong,
.gains-path-card small,
.gains-path-card em{
    display:block;
}

.gains-path-card strong{
    margin-bottom:8px;
    font-size:1.25rem;
}

.gains-path-card small{
    color:var(--m);
    font-size:.9rem;
}

.gains-path-card em{
    margin-top:25px;
    color:var(--p);
    font-size:.72rem;
    font-style:normal;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.gains-panel,
.gains-side-card,
.gains-order-card{
    border:1px solid var(--b);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 25px rgba(28,50,68,.06);
}

.gains-panel{
    padding:30px;
    margin-bottom:20px;
}

.gains-start-form{
    max-width:850px;
    margin:0 auto;
}

.gains-selected-path{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    margin:-5px 0 25px;
    padding:14px 16px;
    border-radius:11px;
    background:var(--soft);
}

.gains-selected-kicker{
    display:block;
    color:var(--m);
    font-size:.67rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.gains-link-button{
    border:0;
    background:transparent;
    color:var(--p);
    font-weight:700;
    cursor:pointer;
}

.gains-source-intro{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:20px;
    padding-bottom:13px;
    border-bottom:1px solid var(--b);
}

.gains-source-intro.secondary{margin-top:28px}
.gains-source-intro strong,.gains-source-intro span{display:block}
.gains-source-intro span{font-size:.78rem;color:var(--m)}

.gains-source-number{
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border-radius:9px;
    background:var(--p);
    color:#fff;
    font-weight:800;
}

.gains-assist-note{
    padding:13px 15px;
    border-left:3px solid var(--a);
    border-radius:8px;
    background:#fff9ef;
    color:#705a38;
    font-size:.82rem;
}

.gains-form-grid.two{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:17px;
}

.gains-field{margin-bottom:18px}

.gains-field label{
    display:block;
    margin-bottom:6px;
    font-size:.82rem;
    font-weight:700;
}

.gains-field label em{
    float:right;
    color:var(--a);
    font-size:.68rem;
    font-style:normal;
    text-transform:uppercase;
}

.gains-field label small{
    color:var(--m);
    font-weight:400;
}

.gains-field input,
.gains-field textarea{
    width:100%;
    border:1px solid var(--b);
    border-radius:9px;
    background:#fff;
    color:var(--t);
    font:inherit;
    padding:11px 12px;
}

.gains-field input{min-height:46px}
.gains-field textarea{min-height:115px;resize:vertical}

.gains-field input:focus,
.gains-field textarea:focus{
    outline:none;
    border-color:var(--p);
    box-shadow:0 0 0 3px rgba(41,77,109,.08);
}

.gains-form-message{
    margin-top:15px;
    font-size:.82rem;
}

.gains-form-message.is-error{color:var(--err)}
.gains-form-message.is-loading{color:var(--p)}

.gains-review-tabs{
    display:flex;
    max-width:520px;
    margin:0 auto 25px;
    padding:5px;
    border:1px solid var(--b);
    border-radius:12px;
    background:#fff;
}

.gains-review-tabs button{
    flex:1;
    border:0;
    border-radius:8px;
    background:transparent;
    padding:10px;
    cursor:pointer;
    font-weight:700;
    color:var(--m);
}

.gains-review-tabs button.is-active{
    background:var(--p);
    color:#fff;
}

.gains-bottom-actions{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:25px;
}

.gains-bottom-actions.end{justify-content:flex-end}

.gains-template-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.gains-template-card{
    position:relative;
    display:block;
    overflow:hidden;
    border:1px solid var(--b);
    border-radius:16px;
    background:#fff;
    cursor:pointer;
}

.gains-template-card input{
    position:absolute;
    opacity:0;
}

.gains-template-card:has(input:checked){
    border:2px solid var(--p);
    box-shadow:var(--shadow);
}

.gains-template-preview{
    height:230px;
    padding:22px;
    background:#f8fafc;
}

.preview-header{
    height:25px;
    margin-bottom:20px;
    border-radius:6px;
    background:var(--p);
}

.preview-name{
    width:42%;
    height:13px;
    margin-bottom:14px;
    border-radius:5px;
    background:#9eacb8;
}

.preview-line{
    width:68%;
    height:8px;
    margin:9px 0;
    border-radius:4px;
    background:#dce4ea;
}

.preview-line.wide{width:90%}
.preview-line.short{width:45%}

.preview-boxes{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin:20px 0;
}

.preview-boxes span{
    height:55px;
    border:1px solid #dce4ea;
    border-radius:7px;
    background:#fff;
}

.gains-template-meta{padding:18px}
.gains-template-meta strong,.gains-template-meta small{display:block}
.gains-template-meta small{margin-top:4px;color:var(--m)}

.gains-payment-layout{
    display:grid;
    grid-template-columns:1fr 340px;
    gap:30px;
    align-items:start;
}

.gains-payment-placeholder{
    padding:45px 20px;
    margin-bottom:20px;
    border:2px dashed var(--b);
    border-radius:12px;
    text-align:center;
    background:var(--soft);
    color:var(--m);
}

.gains-order-card{
    position:sticky;
    top:20px;
    padding:27px;
}

.gains-order-card>span{
    color:var(--p);
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.1em;
}

.gains-order-card h3{
    margin:6px 0 16px;
    font-size:1.4rem;
}

.gains-order-card ul{
    padding-left:19px;
    color:var(--m);
    font-size:.84rem;
}

.gains-order-total{
    display:flex;
    align-items:end;
    justify-content:space-between;
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid var(--b);
}

.gains-order-total strong{font-size:1.4rem}

.gains-preview-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:20px;
    padding:18px 20px;
    border:1px solid var(--b);
    border-radius:14px;
    background:#fff;
}

.gains-preview-toolbar strong,
.gains-preview-toolbar span{
    display:block;
}

.gains-preview-toolbar span{
    font-size:.78rem;
    color:var(--m);
}

.gains-pdf-document{
    max-width:850px;
    margin:0 auto;
    padding:45px 52px;
    border:1px solid var(--b);
    background:#fff;
    box-shadow:var(--shadow);
    color:#24323f;
}

.gains-pdf-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    padding-bottom:25px;
    border-bottom:3px solid #294d6d;
}

.gains-pdf-header span{
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#6d7d8a;
}

.gains-pdf-header h1{
    margin:5px 0 2px;
    font-size:2.3rem;
}

.gains-pdf-header p{
    margin:0;
    color:#6d7d8a;
}

.gains-pdf-mark{
    display:flex;
    width:66px;
    height:66px;
    border-radius:16px;
    background:#294d6d;
    color:#fff;
    align-items:center;
    justify-content:center;
    font-weight:800;
}

.gains-pdf-section{
    padding:25px 0;
    border-bottom:1px solid #dbe4eb;
}

.gains-pdf-section:last-child{border-bottom:0}

.gains-pdf-section h2{
    margin-bottom:18px;
    color:#294d6d;
    font-size:1.35rem;
}

.gains-pdf-item{
    page-break-inside:avoid;
    margin-bottom:18px;
}

.gains-pdf-item h3{
    margin-bottom:5px;
    font-size:.9rem;
}

.gains-pdf-item p,
.gains-pdf-section>p{
    white-space:pre-wrap;
    color:#4e5d69;
}

.gains-pdf-contact{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:15px;
}

.gains-pdf-contact span{
    font-size:.75rem;
    color:#6d7d8a;
}

.gains-pdf-document[data-template="classic"] .gains-pdf-header{
    border-bottom-color:#7d633a;
}

.gains-pdf-document[data-template="classic"] .gains-pdf-mark{
    background:#7d633a;
}

.gains-pdf-document[data-template="classic"] .gains-pdf-section h2{
    color:#7d633a;
}

.gains-pdf-document[data-template="modern"]{
    border-radius:18px;
}

.gains-pdf-document[data-template="modern"] .gains-pdf-section{
    padding:22px;
    border:1px solid #dbe4eb;
    border-radius:12px;
    margin:15px 0;
}

@media(max-width:900px){

    .gains-hero-grid,
    .gains-payment-layout{
        grid-template-columns:1fr;
    }

    .gains-card-grid.four{
        grid-template-columns:1fr 1fr;
    }

    .gains-template-grid{
        grid-template-columns:1fr 1fr;
    }

    .gains-order-card{
        position:static;
    }

    .gains-stat-grid{
        grid-template-columns:1fr 1fr;
    }

}

@media(max-width:650px){

    .gains-shell{padding:0 17px}
    .gains-hero{padding:58px 0}

    .gains-card-grid.four,
    .gains-template-grid,
    .gains-form-grid.two,
    .gains-path-grid{
        grid-template-columns:1fr;
    }

    .gains-stat-grid{
        grid-template-columns:1fr;
    }

    .gains-progress-step strong{
        display:none;
    }

    .gains-bottom-actions,
    .gains-preview-toolbar{
        flex-direction:column;
        align-items:stretch;
    }

    .gains-pdf-document{
        padding:27px 22px;
    }

    .gains-pdf-header{
        flex-direction:column;
        gap:20px;
    }

}
