/* VNPT-SBH-COMMERCIAL-V2 — VNPT Sổ Bán Hàng region block styles.
 * Mobile-first (owner §28): package cards & combo cards 1/row ≤430; core features & ecommerce
 * max 2 columns (→1 if small); pricing full width; large tap targets; NO page horizontal scroll
 * (comparison table scrolls only inside its own container). Self-contained tokens with fallbacks. */
.sbh{--sbh-blue:#0a57c2;--sbh-blue-d:#0742a0;--sbh-ink:#16202e;--sbh-muted:#5a6b80;--sbh-line:#e3e9f2;--sbh-bg:#f6f9ff;--sbh-card:#fff;--sbh-ok:#0a8a4a;--sbh-warn:#b5771a;--sbh-radius:14px;color:var(--sbh-ink);padding-bottom:80px}
.sbh *{box-sizing:border-box}
.sbh-region{max-width:1120px;margin:0 auto;padding:30px 16px}
.sbh-r-head{display:flex;align-items:center;gap:12px;margin:0 0 6px}
.sbh-r-num{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--sbh-blue);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:15px}
.sbh-r-head h2{font-size:clamp(19px,4.6vw,27px);line-height:1.25;margin:0;font-weight:800}
.sbh-r-sub{color:var(--sbh-muted);font-size:15px;line-height:1.55;margin:4px 0 16px;max-width:760px}
.sbh-r-sub b{color:var(--sbh-ink)}
.sbh-note-muted{color:var(--sbh-muted);font-size:13px;line-height:1.5;margin:12px 0 0}

/* cards base */
.sbh-grid{display:grid;gap:14px;grid-template-columns:1fr}
.sbh-card{background:var(--sbh-card);border:1px solid var(--sbh-line);border-radius:var(--sbh-radius);padding:18px 16px;box-shadow:0 1px 2px rgba(16,32,46,.04)}

/* 02 selector */
.sbh-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sbh-mode{display:flex;align-items:center;gap:10px;padding:14px 14px;border:1.5px solid var(--sbh-line);background:#fff;border-radius:var(--sbh-radius);font-size:15px;font-weight:600;color:var(--sbh-ink);cursor:pointer;transition:.15s;min-height:52px}
.sbh-mode:hover{border-color:var(--sbh-blue)}
.sbh-mode.is-on{border-color:var(--sbh-blue);background:var(--sbh-bg);box-shadow:inset 0 0 0 1px var(--sbh-blue)}
.sbh-mode-ic{font-size:22px;line-height:1}
.sbh-modes-hint{margin:14px 0 0;padding:12px 14px;background:var(--sbh-bg);border:1px dashed var(--sbh-blue);border-radius:10px;color:var(--sbh-blue-d);font-size:14px;font-weight:600;line-height:1.5}
.sbh-modes-hint a{color:var(--sbh-blue-d);text-decoration:underline;white-space:nowrap}
.sbh-modes-cta{margin-top:12px}

/* 03 package cards */
.sbh-pkg-grid{display:grid;gap:16px;grid-template-columns:1fr;align-items:start}
.sbh-pkg{position:relative;background:var(--sbh-card);border:1.5px solid var(--sbh-line);border-radius:16px;padding:22px 18px 18px;box-shadow:0 1px 3px rgba(16,32,46,.05);display:flex;flex-direction:column;transition:.18s}
.sbh-pkg-hl{border-color:var(--sbh-blue);box-shadow:0 8px 28px rgba(10,87,194,.14)}
.sbh-pkg.is-reco{border-color:var(--sbh-ok);box-shadow:0 0 0 2px rgba(10,138,74,.25),0 8px 28px rgba(10,138,74,.14)}
.sbh-pkg.is-reco:before{content:"Gói nên tham khảo";position:absolute;top:-11px;left:16px;background:var(--sbh-ok);color:#fff;font-size:11.5px;font-weight:800;padding:3px 10px;border-radius:999px}
.sbh-pkg-flash{animation:sbhFlash 1.4s ease}
@keyframes sbhFlash{0%,100%{box-shadow:0 0 0 2px rgba(10,138,74,.25),0 8px 28px rgba(10,138,74,.14)}40%{box-shadow:0 0 0 4px rgba(10,138,74,.5),0 10px 34px rgba(10,138,74,.28)}}
.sbh-pkg-badge{align-self:flex-start;background:var(--sbh-bg);color:var(--sbh-blue-d);border:1px solid var(--sbh-blue);font-size:11.5px;font-weight:800;padding:3px 10px;border-radius:999px;margin-bottom:8px}
.sbh-pkg-hl .sbh-pkg-badge{background:var(--sbh-blue);color:#fff}
.sbh-pkg-name{font-weight:800;font-size:19px;color:var(--sbh-blue-d)}
.sbh-pkg-price{margin:8px 0 0;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.sbh-pkg-price b{font-size:clamp(24px,6vw,30px);font-weight:800;color:var(--sbh-ink)}
.sbh-pkg-period{color:var(--sbh-muted);font-size:14px;font-weight:600}
.sbh-pkg-monthly{color:var(--sbh-muted);font-size:12.5px;margin-top:2px}
.sbh-pkg-vat{color:var(--sbh-warn);font-size:12px;font-weight:700;margin-top:6px}
.sbh-pkg-tag{font-size:13.5px;color:var(--sbh-ink);line-height:1.5;margin:12px 0 0}
.sbh-pkg-list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.sbh-pkg-list li{position:relative;padding-left:23px;font-size:13.5px;line-height:1.45;color:var(--sbh-ink)}
.sbh-pkg-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--sbh-ok);font-weight:800}
.sbh-pkg-target{font-size:12.5px;color:var(--sbh-muted);line-height:1.5;margin:12px 0 0}
.sbh-pkg-target span{font-weight:700;color:var(--sbh-ink)}
.sbh-pkg-cta{margin-top:auto;padding-top:16px}
.sbh-pkg-cta .sbh-btn{width:100%}

/* 04 comparison — contained horizontal scroll (page never scrolls horizontally) */
.sbh-comp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--sbh-line);border-radius:12px}
.sbh-comp{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.sbh-comp th,.sbh-comp td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--sbh-line);vertical-align:top}
.sbh-comp thead th{background:var(--sbh-bg);color:var(--sbh-blue-d);font-weight:800;font-size:13.5px;position:sticky;top:0}
.sbh-comp thead th:first-child{border-top-left-radius:12px}
.sbh-comp thead th:last-child{border-top-right-radius:12px}
.sbh-comp tbody th{font-weight:600;color:var(--sbh-ink);font-size:13.5px}
.sbh-comp td{text-align:center;font-weight:600}
.sbh-comp tbody tr:nth-child(even){background:#fafcff}
.sbh-c-yes{color:var(--sbh-ok)}
.sbh-c-no{color:#b9c2cf}
.sbh-c-consult{color:var(--sbh-warn);font-size:12.5px}

/* 05 features */
.sbh-feat{display:flex;flex-direction:column;gap:6px;transition:.18s}
.sbh-feat-ic{font-size:26px;line-height:1}
.sbh-feat-t{font-size:16.5px;font-weight:750;margin:4px 0 0}
.sbh-feat-b{font-size:14px;color:var(--sbh-muted);line-height:1.5;margin:0}
.sbh-feats-filtering .sbh-feat{opacity:.42}
.sbh-feats-filtering .sbh-feat.is-hl{opacity:1;border-color:var(--sbh-blue);box-shadow:0 0 0 2px rgba(10,87,194,.18)}

/* 06 ecommerce */
.sbh-eco{display:flex;flex-direction:column;gap:4px}
.sbh-eco-ic{font-size:24px}
.sbh-eco-t{font-weight:700;font-size:15.5px}
.sbh-eco-b{font-size:13.5px;color:var(--sbh-muted);line-height:1.5;margin:0}

/* 07 walkthrough */
.sbh-walk{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sbh-walk-step{display:flex;gap:14px;align-items:flex-start;background:var(--sbh-card);border:1px solid var(--sbh-line);border-radius:var(--sbh-radius);padding:14px 16px}
.sbh-walk-n{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--sbh-bg);color:var(--sbh-blue-d);border:1.5px solid var(--sbh-blue);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
.sbh-walk-c{display:flex;flex-direction:column;gap:2px}
.sbh-walk-c b{font-size:15.5px}
.sbh-walk-c span{font-size:13.8px;color:var(--sbh-muted);line-height:1.5}

/* 08 devices */
.sbh-devs{display:flex;flex-wrap:wrap;gap:10px}
.sbh-dev{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--sbh-line);border-radius:999px;background:#fff;font-weight:600;font-size:14px}
.sbh-dev-ic{font-size:18px}

/* 09 combos */
.sbh-combo-grid{display:grid;gap:16px;grid-template-columns:1fr;align-items:start}
.sbh-combo-card{background:var(--sbh-card);border:1.5px solid var(--sbh-line);border-radius:16px;padding:20px 18px;display:flex;flex-direction:column;box-shadow:0 1px 3px rgba(16,32,46,.05)}
.sbh-combo-name{font-weight:800;font-size:16.5px;color:var(--sbh-blue-d)}
.sbh-combo-parts{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.sbh-combo-parts li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.4}
.sbh-combo-parts li:before{content:"+";position:absolute;left:0;top:0;color:var(--sbh-blue);font-weight:800}
.sbh-combo-price{margin:14px 0 0;display:flex;align-items:baseline;gap:6px}
.sbh-combo-price b{font-size:clamp(21px,5.4vw,26px);font-weight:800;color:var(--sbh-ink)}
.sbh-combo-price span{color:var(--sbh-muted);font-size:13.5px;font-weight:600}
.sbh-combo-target{font-size:12.5px;color:var(--sbh-muted);line-height:1.5;margin:10px 0 0}
.sbh-combo-target span{font-weight:700;color:var(--sbh-ink)}
.sbh-combo-card .sbh-pkg-cta{margin-top:auto}
.sbh-combo-card .sbh-btn{width:100%}

/* 10 promo */
.sbh-r-promo .sbh-promo-card{background:linear-gradient(180deg,#fff,var(--sbh-bg));border:1.5px solid var(--sbh-blue);border-radius:16px;padding:20px 18px;box-shadow:0 4px 18px rgba(10,87,194,.1)}
.sbh-promo-body{margin:0;font-size:15px;line-height:1.55;color:var(--sbh-ink)}
.sbh-promo-rules{margin:12px 0 0;padding-left:20px;display:grid;gap:6px}
.sbh-promo-rules li{font-size:14px;line-height:1.5}

/* 11 tax */
.sbh-tax-list{margin:0;padding-left:20px;display:grid;gap:8px}
.sbh-tax-list li{font-size:14.5px;line-height:1.55}

/* 12 related */
.sbh-rel-grid{display:grid;grid-template-columns:1fr;gap:12px}
.sbh-rel-card{display:flex;flex-direction:column;gap:4px;text-decoration:none;background:var(--sbh-card);border:1px solid var(--sbh-line);border-radius:var(--sbh-radius);padding:16px;transition:.15s}
.sbh-rel-card:hover{border-color:var(--sbh-blue);box-shadow:0 2px 10px rgba(10,87,194,.1)}
.sbh-rel-name{font-weight:750;font-size:15.5px;color:var(--sbh-blue-d)}
.sbh-rel-note{font-size:13px;color:var(--sbh-muted);line-height:1.45}

/* buttons */
.sbh-cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.sbh-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 18px;border-radius:10px;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;border:1.5px solid transparent;transition:.15s;min-height:48px}
.sbh-btn-sm{min-height:44px;padding:10px 16px;font-size:14px}
.sbh-btn-primary{background:var(--sbh-blue);color:#fff}
.sbh-btn-primary:hover{background:var(--sbh-blue-d)}
.sbh-btn-ghost{background:#fff;color:var(--sbh-blue-d);border-color:var(--sbh-blue)}
.sbh-btn-ghost:hover{background:var(--sbh-bg)}

/* modal */
.sbh-modal[hidden]{display:none}
.sbh-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
.sbh-modal-back{position:absolute;inset:0;background:rgba(16,32,46,.55)}
.sbh-modal-box{position:relative;background:#fff;border-radius:16px;max-width:460px;width:100%;max-height:92vh;overflow:auto;padding:22px 20px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.sbh-modal-x{position:absolute;top:10px;right:12px;background:none;border:none;font-size:26px;line-height:1;color:var(--sbh-muted);cursor:pointer}
.sbh-modal-box h3{margin:0 0 4px;font-size:19px;padding-right:26px}
.sbh-modal-sub{margin:0 0 14px;font-size:13.5px;color:var(--sbh-muted);line-height:1.5}
.sbh-field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.sbh-field>span{font-size:13px;font-weight:600}
.sbh-field b{color:#c0452a}
.sbh-field input,.sbh-field select,.sbh-field textarea{width:100%;padding:11px 12px;border:1.5px solid var(--sbh-line);border-radius:9px;font-size:15px;font-family:inherit}
.sbh-field input:focus,.sbh-field select:focus,.sbh-field textarea:focus{outline:none;border-color:var(--sbh-blue)}
.sbh-modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.sbh-modal-msg{font-size:13.5px;margin:4px 0;min-height:1px}
.sbh-modal-msg.sbh-err,.sbh-err{color:#c0452a}
.sbh-lead-result{max-width:1120px;margin:0 auto;padding:0 16px}
.sbh-lead-result.sbh-ok{padding:16px;color:var(--sbh-ok);font-weight:600}
body.sbh-modal-open{overflow:hidden}

/* ≥481px: core features & ecommerce → 2 columns (owner §28 max 2) */
@media(min-width:481px){
  .sbh-grid-feat,.sbh-grid-eco{grid-template-columns:1fr 1fr}
}
/* ≥601px: selector 4-up; related 2-up */
@media(min-width:601px){
  .sbh-modes{grid-template-columns:repeat(4,1fr)}
  .sbh-rel-grid{grid-template-columns:1fr 1fr}
}
/* ≥768px: package cards & combo cards → 3 columns; related 3-up */
@media(min-width:768px){
  .sbh-pkg-grid{grid-template-columns:repeat(3,1fr)}
  .sbh-combo-grid{grid-template-columns:repeat(3,1fr)}
  .sbh-rel-grid{grid-template-columns:repeat(3,1fr)}
}
