:root{
    --bg:#F7F8FA;
    --card:#FFFFFF;
    --text:#0B1F2A;
    --muted:#5B667A;
    --line:#E6EAF0;

    --primary:#0E5AA7;
    --success:#1BA672;
    --amber:#F39C12;
    --danger:#C0392B;

    --shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
    --radius: 18px;
}

*{box-sizing:border-box}

body{
    margin:0;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    background:var(--bg);
    color:var(--text);
}

.wrap{
    max-width:560px;
    margin:0 auto;
    padding:12px 12px 220px;
}

.topbar{
    position:sticky;
    top:0;
    z-index:60;
    background:rgba(247,248,250,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
}

.topbar-inner{
    max-width:560px;
    margin:0 auto;
    padding:8px 12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.brand-block{
    flex:1 1 auto;
    min-width:0;
}

.brand-row{
    display:flex;
    align-items:center;
    gap:12px;
}

.brand-logo{
    width:44px;
    height:44px;
    object-fit:contain;
    display:block;
    flex:0 0 auto;
}

.brand{
    font-weight:500;
    letter-spacing:.2px;
    font-size:20px;
    line-height:1;
    color:var(--muted);
}

.headline{
    flex:1 1 auto;
    min-width:0;
    text-align:right;
    font-weight:800;
    font-size:13px;
    line-height:1.15;
    letter-spacing:.15px;
    color:var(--text);
}

.trust-strip{
    margin-top:2px;
    margin-bottom:2px;
}

.subline{
    font-size:12.5px;
    color:var(--muted);
    font-weight:700;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border-radius:999px;
    border:1px solid var(--line);
    background:var(--card);
    box-shadow:0 6px 14px rgba(15,23,42,0.05);
    line-height:1;
    white-space:nowrap;
}

.section{
    margin-top:14px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:14px;
}

.section h2{
    margin:0 0 10px;
    font-size:15px;
    font-weight:1000;
    letter-spacing:.2px;
}

.steps{
    display:grid;
    gap:10px;
}

.step{
    display:flex;
    gap:10px;
    align-items:flex-start;
}

.num{
    width:28px;
    height:28px;
    border-radius:10px;
    background:rgba(14,90,167,.10);
    border:1px solid rgba(14,90,167,.22);
    color:var(--primary);
    font-weight:1000;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}

.step .t{
    font-weight:900;
    margin:0;
    font-size:14px;
}

.step .d{
    margin:2px 0 0;
    color:var(--muted);
    font-size:12.5px;
    font-weight:700;
    line-height:1.35;
}

.banner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:12px 14px;
    border-radius:16px;
    background:linear-gradient(180deg, rgba(27,166,114,.10), rgba(27,166,114,.06));
    border:1px solid rgba(27,166,114,.20);
}

.banner .big{
    font-weight:1000;
    letter-spacing:.2px;
}

.banner .small{
    margin-top:3px;
    font-size:12.5px;
    color:var(--muted);
    font-weight:800;
}

.cutoff{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 10px;
    border-radius:999px;
    background:rgba(243,156,18,.14);
    border:1px solid rgba(243,156,18,.26);
    color:#9A5E00;
    font-weight:1000;
    font-size:12px;
    white-space:nowrap;
    line-height:1;
}

.products{
    display:grid;
    gap:12px;
}

.product{
    border:1px solid #D6DEE8;
    border-radius:18px;
    overflow:hidden;
    background:var(--card);
    box-shadow:0 8px 22px rgba(15, 23, 42, 0.07);
}

.product-media{
    height:120px;
    background:#EEF2F7;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    overflow:hidden;
    border-bottom:1px solid var(--line);
}

.product-media img,
.trust-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.product-media .emoji{
    font-size:38px;
    opacity:.92;
}

.product-body{
    padding:12px 12px 14px;
}

.p-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
}

.p-name{
    margin:0;
    font-weight:1000;
    font-size:15px;
    letter-spacing:.2px;
}

.p-desc{
    margin:4px 0 0;
    color:var(--muted);
    font-weight:700;
    font-size:12.5px;
    line-height:1.35;
}

.price{
    font-weight:1000;
    color:var(--text);
    white-space:nowrap;
    font-size:14px;
    text-align:right;
}

.price span{
    color:var(--muted);
    font-weight:800;
    font-size:12px;
}

.controls{
    margin-top:10px;
    display:grid;
    gap:10px;
}

.row{
    display:flex;
    gap:10px;
    align-items:center;
    justify-content:space-between;
}

.qty-meta{
    display:grid;
    gap:2px;
}

.qty-rule{
    font-size:12px;
    color:var(--muted);
    font-weight:900;
}

.qty{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1px solid var(--line);
    border-radius:14px;
    padding:8px 10px;
    background:var(--card);
}

.qty button{
    width:34px;
    height:34px;
    border:none;
    border-radius:12px;
    background:#F2F5FA;
    font-weight:1000;
    font-size:16px;
    cursor:pointer;
}

.qty button:active{
    transform:translateY(1px);
}

.qty .val{
    min-width:52px;
    text-align:center;
    font-weight:1000;
}

.qty .unit{
    color:var(--muted);
    font-weight:900;
    font-size:12px;
    margin-left:2px;
}

.field-grid{
    display:grid;
    gap:10px;
}

.input,
.textarea,
.select{
    width:100%;
    padding:12px 13px;
    border-radius:12px;
    border:1px solid var(--line);
    background:var(--card);
    color:var(--text);
    font:inherit;
    font-size:14px;
}

.textarea{
    min-height:92px;
    resize:vertical;
}

.rules{
    display:grid;
    gap:8px;
    color:var(--muted);
    font-weight:800;
    font-size:12.8px;
}

.rules b{ color:var(--text); }

.trust-media{
    height:140px;
    border-radius:16px;
    overflow:hidden;
    border:1px solid var(--line);
    background:#EEF2F7;
}

.alert{
    margin-top:14px;
    background:#FFF5F5;
    border:1px solid #F5C2C0;
    color:#8A1F17;
    border-radius:16px;
    padding:12px 14px;
    font-size:13px;
    font-weight:800;
    box-shadow:var(--shadow);
}

.checkout{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    background:rgba(247,248,250,0.96);
    border-top:1px solid var(--line);
    padding:6px 10px 8px;
    z-index:70;
}

.checkout-inner{
    max-width:560px;
    margin:0 auto;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 6px 16px rgba(15,23,42,0.06);
    padding:8px 10px;
    display:grid;
    gap:8px;
}

.mini-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.field{
    display:grid;
    gap:4px;
}

label{
    font-size:11px;
    color:var(--muted);
    font-weight:800;
}

.totals{
    display:grid;
    gap:6px;
    font-size:12px;
    font-weight:900;
}

.line{
    display:flex;
    justify-content:space-between;
    gap:10px;
}

.cta{
    border:none;
    width:100%;
    padding:11px;
    border-radius:12px;
    background:var(--primary);
    color:#fff;
    font-weight:1000;
    font-size:14px;
    cursor:pointer;
    min-height:44px;
    box-shadow:0 6px 14px rgba(14,90,167,0.18);
}

.cta:disabled{
    background:#B7C7DB;
    box-shadow:none;
    cursor:not-allowed;
}

.muted-note{
    color:var(--muted);
    font-size:11.5px;
    font-weight:800;
    text-align:center;
}

.prep-block{
    display:grid;
    gap:8px;
    padding-top:2px;
}

.prep-label{
    font-size:12px;
    font-weight:900;
    color:var(--muted);
}

.prep-options{
    display:grid;
    gap:8px;
}

.prep-option{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#FAFBFD;
    cursor:pointer;
    font-size:13px;
    font-weight:800;
}

.prep-option input{
    margin:0;
    flex:0 0 auto;
}

.prep-option-main{
    color:var(--text);
}

.prep-option-fee{
    margin-left:auto;
    color:var(--muted);
    font-weight:900;
    white-space:nowrap;
}

.hidden {
    display: none;
}

.success-wrap {
    padding-top: 32px;
    padding-bottom: 40px;
    min-height: calc(100vh - 80px);
}

.success-card {
    text-align: center;
    padding: 28px 20px;
}

.success-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(27, 166, 114, .10);
    border: 1px solid rgba(27, 166, 114, .22);
    color: var(--success);
    font-size: 30px;
    font-weight: 1000;
}

.success-title {
    margin: 0 0 10px;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 1000;
    letter-spacing: .2px;
}

.success-text {
    margin: 0 auto;
    max-width: 420px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.5;
    font-weight: 700;
}

.success-actions {
    display: grid;
    gap: 10px;
    margin-top: 22px;
}

.success-note {
    margin-top: 14px;
}

.success-summary {
    margin-top: 22px;
    text-align: left;
    display: grid;
    gap: 12px;
}

.summary-block {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px;
    background: #FAFBFD;
}

.summary-heading {
    font-size: 12px;
    font-weight: 1000;
    color: var(--muted);
    margin-bottom: 10px;
    letter-spacing: .2px;
}

.summary-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    font-size: 13px;
    font-weight: 800;
    padding: 4px 0;
}

.summary-line span {
    color: var(--muted);
}

.summary-line strong {
    color: var(--text);
    text-align: right;
}

.summary-total {
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
    font-size: 14px;
}

.summary-total span,
.summary-total strong {
    color: var(--text);
    font-weight: 1000;
}

.summary-items {
    display: grid;
    gap: 10px;
}

.summary-item {
    display: grid;
    gap: 4px;
    padding: 10px 0;
    border-bottom: 1px solid var(--line);
}

.summary-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.summary-item-top {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
}

.summary-item-name {
    font-size: 14px;
    font-weight: 1000;
    color: var(--text);
}

.summary-item-price {
    font-size: 13px;
    font-weight: 1000;
    color: var(--text);
    white-space: nowrap;
}

.summary-item-meta {
    font-size: 12.5px;
    color: var(--muted);
    font-weight: 800;
}

.success-fallback {
    margin-top: 18px;
}

.secondary-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    background: #F2F5FA;
    color: var(--text);
    box-shadow: none;
    border: 1px solid var(--line);
}