/* Additive component styles. Native large-pack selectors remain untouched. */
.dstv-starter-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.dstv-starter-card {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  min-width:0;
  padding:20px;
  background:var(--theme-palette-color-7);
  border:1px solid var(--dstv-line);
  border-radius:12px;
}
.dstv-starter-copy { min-width:0; }
.dstv-starter-copy h2 { margin:0 0 5px; font-size:18px; line-height:1.3; letter-spacing:-.025em; }
.dstv-starter-copy p { margin:0; color:var(--dstv-muted); font-size:13px; line-height:1.5; }
.dstv-starter-purchase { display:flex; align-items:center; gap:16px; }
.dstv-starter-price { font-size:24px; line-height:1.3; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
.dstv-starter-purchase .dstv-button { min-height:44px; padding:11px 16px; font-size:14px; gap:12px; }
.dstv-starter-note { margin:12px 0 32px; color:var(--dstv-muted); font-size:13px; line-height:1.6; }
.dstv-return-to-greeting { margin:0 0 22px; font-size:15px; }
.dstv-credit-usage .dstv-usage-icon,.dstv-credit-usage .dstv-usage-mobile-notes { display:none; }
@media(max-width:760px) {
  .dstv-credit-usage .dstv-rates-table thead { display:none; }
  .dstv-credit-usage .dstv-rates-table tbody,.dstv-credit-usage .dstv-rates-table tr { display:block; }
  .dstv-credit-usage .dstv-rates-table tr { position:relative; padding:18px 20px; border-bottom:1px solid var(--dstv-line); }
  .dstv-credit-usage .dstv-rates-table tr:last-child { border-bottom:0; }
  .dstv-credit-usage .dstv-rates-table th,.dstv-credit-usage .dstv-rates-table td { display:block; width:auto; border:0; text-align:left; }
  .dstv-credit-usage .dstv-rates-table th:first-child { margin:0 0 4px; padding:0 0 0 54px; font-size:16px; line-height:1.45; }
  .dstv-credit-usage .dstv-rates-table td { margin:0; padding:0 0 0 54px; color:var(--dstv-muted); font-size:14px; line-height:1.5; }
  .dstv-credit-usage .dstv-rates-table td::before { display:none; content:none; }
  .dstv-credit-usage .dstv-usage-icon { display:inline-flex; position:absolute; top:18px; left:20px; }
  .dstv-credit-usage .dstv-packs-usage { display:none; }
  .dstv-credit-usage .dstv-usage-mobile-notes { display:block; margin-top:18px; color:var(--dstv-muted); font-size:14px; line-height:1.6; }
  .dstv-usage-mobile-notes>p { margin:0 0 6px; }
}
@media(min-width:761px) and (max-width:1167px) {
  .dstv-starter-card { gap:12px; padding:18px; }
  .dstv-starter-purchase { flex-direction:column; gap:7px; }
}
@media(max-width:760px) {
  .dstv-starter-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
}
@media(max-width:480px) {
  .dstv-starter-card { padding:16px; gap:12px; }
  .dstv-starter-copy h2 { font-size:17px; }
  .dstv-starter-purchase { flex-direction:column; align-items:flex-end; gap:7px; }
  .dstv-starter-purchase .dstv-button { min-height:44px; padding:10px 13px; }
  .dstv-starter-price { font-size:23px; }
}

/* Text checkout layout; existing native controls keep their own behavior. */
.woocommerce form.checkout.dstv-text-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:32px; align-items:start; }
.dstv-text-intro { margin:-12px 0 32px; color:var(--dstv-muted); font-size:18px; }
.dstv-text-layout .dstv-text-entry .form-row { padding:0; margin:0; }
.dstv-text-layout #customer_details { margin:24px 0 0; padding:0; }
.dstv-text-layout .dstv-text-guest:has(.woocommerce-billing-fields__field-wrapper>input[type=hidden]:only-child) { margin:0; }
.dstv-text-layout .dstv-text-payment #order_review { padding:0; border:0; background:none; }
/* Blocksy wraps native checkout dynamically; the approved panel supplies its frame. */
.dstv-text-layout .ct-order-review { padding:0; border:0; border-radius:0; position:static; }
body.dstv-ui .woocommerce .dstv-text-layout .dstv-text-payment #order_review { padding:0; border:0; background:none; }
body.dstv-ui .woocommerce .dstv-text-layout .dstv-text-payment .shop_table { margin:0 0 24px; border:0; }
.dstv-starter-card,.dstv-text-layout .dstv-text-payment,.dstv-text-layout .dstv-text-writing textarea { background:#fff; }
.dstv-text-payment .shop_table { width:100%; margin:0 0 24px; border:0; font-size:14px; }
.dstv-text-payment .shop_table thead,.dstv-text-payment .shop_table .cart-subtotal { display:none; }
.dstv-text-payment .shop_table th,.dstv-text-payment .shop_table td { padding:10px 0; border-width:0 0 1px; }
.dstv-text-payment .shop_table .product-name { max-width:250px; }
.dstv-text-payment #payment { background:none; border:0; padding:0; }
.dstv-text-layout .dstv-text-payment #payment { margin:0; }
.dstv-text-payment #payment>h2 { margin:0 0 18px; font-size:22px; }
.dstv-text-payment #payment .wc_payment_methods { padding:0; border:0; }
.dstv-text-payment #payment li.wc_payment_method { position:relative; padding:0; }
.dstv-text-payment #payment li.wc_payment_method>label { display:flex; align-items:center; min-height:88px; padding:16px 16px 16px 52px; border:1px solid var(--dstv-line); border-radius:10px; cursor:pointer; }
.dstv-text-payment #payment li.wc_payment_method:has(>input:checked)>label { border-color:var(--dstv-accent); box-shadow:inset 0 0 0 1px var(--dstv-accent); }
.dstv-text-payment #payment li.wc_payment_method:has(>input:disabled)>label { background:var(--theme-palette-color-6); cursor:default; }
.dstv-text-payment #payment li.wc_payment_method>input.input-radio { display:block!important; position:absolute; left:16px; top:33px; width:22px; height:22px; margin:0; accent-color:var(--dstv-accent); z-index:1; }
.dstv-text-payment #payment li.wc_payment_method>label strong { display:block; font-size:19px; font-weight:650; }
.dstv-text-payment #payment li.wc_payment_method>label small { display:block; color:var(--dstv-muted); font-size:14px; line-height:1.5; }
.dstv-text-layout .dstv-text-payment #payment ul.payment_methods>li.wc_payment_method { border:0; }
.dstv-text-layout .dstv-text-payment #payment ul.payment_methods>li.wc_payment_method>label { padding:16px 16px 16px 52px; }
.dstv-text-layout .dstv-text-payment #payment ul.payment_methods>li.wc_payment_method>label::before { display:none; }
.dstv-text-layout .dstv-text-payment #payment ul.payment_methods>li.wc_payment_method>input.input-radio { clip:auto; clip-path:none; appearance:auto; }
.dstv-text-layout .dstv-text-payment #payment ul.payment_methods>li.wc_payment_method>input.input-radio::before { display:none; }
.dstv-text-layout { --theme-form-selection-field-active-color:var(--dstv-accent); }
.dstv-text-payment #payment .payment_box { margin:12px 0 0; padding:12px 0; background:none; }
.dstv-text-payment #payment .payment_box::before { display:none; }
.dstv-text-payment #payment .payment_box.payment_method_dstv_credits { display:none!important; }
/* Stripe's express wallets sit outside its payment box and toggle inline.
   Follow the actual radio through AJAX/reload without exposing card actions. */
.dstv-text-layout:has(#payment_method_dstv_credits:checked) #wc-stripe-express-checkout-element,
.dstv-text-layout:has(#payment_method_dstv_credits:checked) #wc-stripe-express-checkout-button-separator,
.dstv-text-layout:has(#payment_method_dstv_credits:checked) .payment_box.payment_method_stripe {
  display:none!important;
}
.dstv-text-payment #payment .place-order { margin:0; padding:0; }
.dstv-text-payment #payment #dstv_early_service_field { margin:20px 0; padding:0; font-size:14px; line-height:1.6; }
.dstv-text-payment #payment #dstv_early_service_field input { width:21px; height:21px; margin-right:8px; accent-color:var(--dstv-accent); }
.dstv-text-payment #payment .woocommerce-privacy-policy-text,.dstv-text-payment #payment .place-order>p:not([id]):not([class]) { font-size:13px; line-height:1.5; }
.dstv-text-layout [hidden] { display:none!important; }
.dstv-text-layout .dstv-text-promise { border-left:1px solid #e0e5d9; }
.dstv-draft-status { margin:12px 0; font-size:14px; }
.dstv-text-heading { margin-bottom:32px; }
.dstv-text-heading h1 { margin:0 0 12px; }
.dstv-text-heading p { margin:0; color:var(--dstv-muted); font-size:18px; }
.dstv-text-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:32px; align-items:start; }
.dstv-text-writing,.dstv-text-payment { min-width:0; }
.dstv-text-writing .dstv-text-entry { margin:0; }
.dstv-text-writing label { display:block; margin-bottom:10px; font-size:17px; font-weight:650; }
.dstv-text-writing textarea { display:block; width:100%; min-height:190px; padding:18px; resize:vertical; border:1px solid #bcc4b9; border-radius:10px; background:var(--theme-palette-color-7); color:var(--dstv-ink); font-family:inherit; font-size:17px; line-height:1.65; }
.dstv-text-writing textarea:focus-visible { outline:3px solid #2460b7; outline-offset:3px; }
.dstv-text-writing #dstv-text-count { margin:8px 0 0; color:var(--dstv-muted); }
.dstv-text-error { margin:8px 0 0; color:#9b2e16; font-size:14px; }
.dstv-text-promise { display:flex; gap:16px; align-items:center; margin-top:24px; padding:22px 24px; border:1px solid #e0e5d9; border-radius:12px; background:#e9ede3; }
.dstv-text-promise>div { min-width:0; }
.dstv-text-promise-label { display:block; color:var(--dstv-muted); font-size:14px; margin-bottom:4px; }
.dstv-text-promise strong { display:block; font-size:20px; line-height:1.45; font-weight:650; }
.dstv-text-promise p { margin:5px 0 0; color:var(--dstv-muted); font-size:14px; }
.dstv-text-promise .dstv-icon-badge { background:#f4ede5; }
.dstv-text-payment { padding:26px; border:1px solid var(--dstv-line); border-radius:12px; background:var(--theme-palette-color-7); }
.dstv-text-payment fieldset { min-width:0; margin:0; padding:0; border:0; }
.dstv-text-payment legend { width:100%; margin:0 0 18px; padding:0; font-size:22px; line-height:1.4; font-weight:650; letter-spacing:-.025em; }
.dstv-text-payment .wc_payment_methods { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.dstv-text-payment .wc_payment_method { margin:0; }
.dstv-text-payment-option { display:flex; align-items:center; gap:14px; min-height:88px; padding:16px; border:1px solid var(--dstv-line); border-radius:10px; background:var(--theme-palette-color-7); }
.dstv-text-payment-option:has(input:checked) { border-color:var(--dstv-accent); box-shadow:inset 0 0 0 1px var(--dstv-accent); }
.dstv-text-payment-option:has(input:disabled) { background:var(--theme-palette-color-6); }
.dstv-text-payment-option input[type=radio] { flex:none; width:22px; height:22px; margin:0; accent-color:var(--dstv-accent); }
.dstv-text-payment-option>span { min-width:0; }
.dstv-text-payment-option strong { display:block; font-size:19px; line-height:1.4; font-weight:650; }
.dstv-text-payment-option small { display:block; margin-top:3px; color:var(--dstv-muted); font-size:14px; line-height:1.5; }
.dstv-text-balance-after { margin:18px 0; color:var(--dstv-muted); font-size:15px; }
.dstv-text-login { margin:14px 0 0; font-size:14px; }
.dstv-text-topup { margin:0 0 2px; font-size:14px; }
.dstv-text-topup a { display:inline-flex; align-items:center; min-height:44px; margin-top:3px; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.dstv-text-consent { display:flex; align-items:flex-start; gap:12px; margin:20px 0; font-size:14px; line-height:1.6; }
.dstv-text-consent input[type=checkbox] { flex:none; margin:4px 0 0; width:21px; height:21px; accent-color:var(--dstv-accent); }
.dstv-text-consent .required { color:var(--dstv-accent); }
.dstv-text-payment .dstv-button { width:100%; font-family:inherit; border:0; }
.dstv-text-guest { margin-top:24px; }
.dstv-text-guest h2 { margin:0 0 16px; font-size:20px; }
.dstv-text-guest .form-row { margin:0 0 16px; padding:0; }
.dstv-text-guest label { margin-bottom:7px; font-size:15px; }
.dstv-text-guest input { width:100%; min-height:48px; padding:11px 14px; border:1px solid #bcc4b9; border-radius:8px; font-family:inherit; background:var(--theme-palette-color-7); }
@media(max-width:1000px) {
  .woocommerce form.checkout.dstv-text-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
  .dstv-text-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
  .dstv-text-payment { max-width:none; }
}
@media(max-width:480px) {
  .dstv-text-heading { margin-bottom:26px; }
  .dstv-text-heading p { font-size:17px; }
  .dstv-text-payment { padding:20px; }
  .dstv-text-promise { padding:18px; gap:12px; }
  .dstv-text-promise strong { font-size:18px; }
  .dstv-text-payment-option { padding:14px; }
  .dstv-text-writing textarea { min-height:180px; padding:16px; }
}

