/* =========================================================
   AP Gaming — WHMCS theme (child of Twenty-One)
   Shared tokens with the Pelican panel theme.
   ========================================================= */
:root {
  --ap-bg: #0A0C11;
  --ap-bg-2: #0F1218;
  --ap-surface: #12151D;
  --ap-surface-2: #181C27;
  --ap-border: #252B3A;
  --ap-border-2: #2C3344;
  --ap-text: #F2F4F8;
  --ap-text-2: #A3ABBD;
  --ap-muted: #8A93A6;
  --ap-red: #DC2626;
  --ap-red-hover: #B91C1C;
  --ap-red-text: #FF5252;
  --ap-green: #34D399;
  --ap-amber: #FBBF24;
  --ap-radius: 10px;
  --ap-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ap-display: "Chakra Petch", "Inter", sans-serif;
  --ap-mono: "JetBrains Mono", ui-monospace, monospace;
}

/* ---------- Base ---------- */
html, body, body.primary-bg-color { background: var(--ap-bg) !important; color: var(--ap-text); font-family: var(--ap-font); }
body { -webkit-font-smoothing: antialiased; }
a { color: var(--ap-red-text); }
a:hover, a:focus { color: #FF7A7A; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--ap-text); font-family: var(--ap-display); font-weight: 700; letter-spacing: -0.005em; }
p, li, td, th, label, .text-dark { color: inherit; }
.text-muted, small.text-muted, .help-block, .form-text { color: var(--ap-muted) !important; }
hr { border-top-color: var(--ap-border); }
::selection { background: rgba(220, 38, 38, .45); color: #fff; }
:focus-visible { outline: 2px solid var(--ap-red-text); outline-offset: 2px; }
code, pre, kbd { font-family: var(--ap-mono); }
code { color: #FF8A8A; }
pre { background: #07080C; color: var(--ap-text-2); border: 1px solid var(--ap-border); border-radius: 8px; }

/* ---------- Header ---------- */
.ap-header, #header.header { background: var(--ap-bg) !important; border-bottom: 1px solid #1E2330; box-shadow: none; }
#header .topbar { background: #07080C !important; border-bottom: 1px solid #1E2330; color: var(--ap-text-2); }
#header .topbar .btn, #header .topbar .input-group-text { color: var(--ap-text-2) !important; background: transparent !important; border-color: transparent !important; }
#header .topbar .btn-active-client span { color: var(--ap-text); border-bottom: 0; }
.ap-navbar { padding-top: 12px; padding-bottom: 12px; background: var(--ap-bg); }
.ap-navbar .logo-img { height: 44px; width: auto; max-height: none; }
.ap-navbar .navbar-nav > li > a, .ap-navbar .navbar-nav .nav-link { color: var(--ap-text-2) !important; font-weight: 500; font-size: 15px; padding: 10px 14px !important; }
.ap-navbar .navbar-nav > li > a:hover, .ap-navbar .navbar-nav > li.active > a, .ap-navbar .navbar-nav > li > a[aria-expanded="true"] { color: var(--ap-text) !important; }
.ap-navbar .toolbar .nav-link, .ap-navbar .cart-btn { color: var(--ap-text) !important; background: var(--ap-surface) !important; border: 1px solid var(--ap-border-2) !important; border-radius: 8px; padding: 9px 12px !important; }
.ap-navbar .badge-info { background: var(--ap-red); color: #fff; }
.ap-navbar .ap-cta { padding: 11px 18px; font-size: 15px; }
@media (max-width: 1199.98px) {
  .ap-navbar .navbar-collapse { background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 12px; padding: 12px; margin-top: 12px; }
  .ap-navbar .navbar-nav .dropdown-menu { background: var(--ap-surface-2); }
}

/* Dropdowns / popovers */
.dropdown-menu { background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 10px; box-shadow: 0 20px 50px rgba(0,0,0,.5); padding: 6px; }
.dropdown-menu li.dropdown-item { background: transparent; padding: 0; }
.dropdown-item, .dropdown-menu a.dropdown-item { color: var(--ap-text-2) !important; border-radius: 6px; padding: 8px 12px !important; }
.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active, .dropdown-item:active { background: var(--ap-surface-2) !important; color: var(--ap-text) !important; }
.dropdown-divider { border-top-color: var(--ap-border); }
.popover { background: var(--ap-surface); border-color: var(--ap-border); }
.popover-body, .popover .client-alerts li a { color: var(--ap-text-2); }
.popover .arrow::after { border-bottom-color: var(--ap-surface) !important; }
.tooltip-inner { background: #000; }

/* Breadcrumb */
.master-breadcrumb { background: var(--ap-bg-2) !important; border-bottom: 1px solid #1E2330; }
.master-breadcrumb .breadcrumb { background: transparent; margin: 0; padding: 12px 0; font-size: 14px; }
.master-breadcrumb .breadcrumb-item, .master-breadcrumb .breadcrumb-item a { color: var(--ap-muted); }
.master-breadcrumb .breadcrumb-item.active { color: var(--ap-text); }
.breadcrumb-item + .breadcrumb-item::before { color: #3A4256; }

/* Main body */
#main-body { background: var(--ap-bg); padding-top: 32px; padding-bottom: 64px; }
.ap-page-homepage #main-body { padding: 0; }

/* ---------- Buttons ---------- */
.btn { border-radius: 8px; font-weight: 600; transition: background .15s, border-color .15s, color .15s; }
.btn-primary, .btn-success, .btn-info.btn-checkout, .btn-checkout, #btnCompleteOrder, .btn-order-now {
  background: var(--ap-red) !important; border-color: var(--ap-red) !important; color: #fff !important; font-weight: 700;
}
.btn-primary:hover, .btn-primary:focus, .btn-success:hover, .btn-checkout:hover, #btnCompleteOrder:hover { background: var(--ap-red-hover) !important; border-color: var(--ap-red-hover) !important; }
.btn-default, .btn-secondary, .btn-light, .btn-outline-primary, .btn-outline-secondary, .btn-outline-light {
  background: var(--ap-surface) !important; border: 1px solid var(--ap-border-2) !important; color: var(--ap-text) !important;
}
.btn-default:hover, .btn-secondary:hover, .btn-light:hover, .btn-outline-primary:hover, .btn-outline-light:hover { background: var(--ap-surface-2) !important; border-color: #3A4256 !important; }
.btn-danger { background: transparent !important; border: 1px solid #7F1D1D !important; color: #FF7A7A !important; }
.btn-link { color: var(--ap-red-text); }
.btn-lg { padding: 14px 24px; font-size: 16px; }

/* ---------- Cards / panels / sidebar ---------- */
.card, .panel, .well, .list-group-item, .sidebar .card, .client-home-cards .card, .tile, .product-details, .modal-content {
  background: var(--ap-surface) !important; border: 1px solid var(--ap-border) !important; color: var(--ap-text);
}
.card { border-radius: var(--ap-radius) !important; }
.card-header, .card-footer, .panel-heading, .panel-footer { background: var(--ap-surface-2) !important; border-color: var(--ap-border) !important; color: var(--ap-text); }
.card-title, .card-header h3, .card-header .card-title { color: var(--ap-text); font-family: var(--ap-display); }
.sidebar .card-header { font-weight: 700; }
.sidebar .list-group-item, .card .list-group-item { background: transparent !important; border-color: var(--ap-border) !important; color: var(--ap-text-2) !important; }
.sidebar .list-group-item:hover, .list-group-item-action:hover { background: var(--ap-surface-2) !important; color: var(--ap-text) !important; }
.sidebar .list-group-item.active, .list-group-item.active { background: #1A1214 !important; color: #fff !important; border-left: 3px solid var(--ap-red) !important; }
.list-group-item .badge { background: var(--ap-surface-2); color: var(--ap-text-2); }

/* Client area home tiles */
.tiles .tile, div.tile { background: var(--ap-surface) !important; border-color: var(--ap-border) !important; }
.tile .stat { color: var(--ap-text) !important; font-family: var(--ap-display); }
.tile .title { color: var(--ap-muted) !important; }
.tile i { color: #2C3344 !important; }
.tile .highlight { background: var(--ap-red) !important; }
.tile:hover { background: var(--ap-surface-2) !important; }

/* ---------- Forms ---------- */
.form-control, .custom-select, select.form-control, .input-group-text, .field, textarea {
  background: #0D1017 !important; border: 1px solid var(--ap-border-2) !important; color: var(--ap-text) !important; border-radius: 8px;
}
.form-control::placeholder { color: #6B7487; }
.form-control:focus, .custom-select:focus { border-color: var(--ap-red-text) !important; box-shadow: 0 0 0 3px rgba(220, 38, 38, .25) !important; }
.form-control:disabled, .form-control[readonly] { background: var(--ap-surface-2) !important; color: var(--ap-muted) !important; }
.input-group-text { color: var(--ap-text-2) !important; }
label, .control-label, .col-form-label { color: #C9CFDB; font-weight: 600; }
.custom-control-label::before { background: #0D1017; border-color: var(--ap-border-2); }
.custom-control-input:checked ~ .custom-control-label::before { background: var(--ap-red); border-color: var(--ap-red); }
.iti__country-list { background: var(--ap-surface); border-color: var(--ap-border); }

/* ---------- Tables ---------- */
.table, .table td, .table th, table.dataTable { color: var(--ap-text-2); border-color: var(--ap-border) !important; }
.table thead th, .table-list thead th { background: var(--ap-surface-2) !important; color: var(--ap-muted) !important; border-bottom: 1px solid var(--ap-border) !important; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; }
.table-striped tbody tr:nth-of-type(odd), .table-list > tbody > tr:nth-child(odd) > td { background: rgba(255,255,255,.015) !important; }
.table-hover tbody tr:hover, .table-list > tbody > tr:hover > td { background: var(--ap-surface-2) !important; color: var(--ap-text) !important; }
.table-container, .dataTables_wrapper { background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: var(--ap-radius); }
.dataTables_wrapper .dataTables_info, .dataTables_wrapper label { color: var(--ap-muted); }
.page-link { background: var(--ap-surface); border-color: var(--ap-border); color: var(--ap-text-2); }
.page-item.active .page-link { background: var(--ap-red); border-color: var(--ap-red); }

/* ---------- Status labels ---------- */
.label, .badge { border-radius: 999px; font-weight: 600; }
.label-success, .badge-success, .status-active, .status-paid, .status-open, .status-completed { background: #0D1F18 !important; color: var(--ap-green) !important; border: 1px solid #1F5D45; }
.label-danger, .badge-danger, .status-unpaid, .status-overdue, .status-cancelled, .status-terminated, .status-suspended, .status-fraud { background: #2A1113 !important; color: #FF7A7A !important; border: 1px solid #5B1F24; }
.label-warning, .badge-warning, .status-pending, .status-customer-reply, .status-answered { background: #2A2210 !important; color: var(--ap-amber) !important; border: 1px solid #5C4716; }
.label-info, .badge-info, .label-default, .badge-secondary, .status-closed, .status-refunded { background: var(--ap-surface-2) !important; color: var(--ap-text-2) !important; border: 1px solid var(--ap-border-2); }

/* ---------- Alerts ---------- */
.alert { border-radius: var(--ap-radius); border-width: 1px; }
.alert-info { background: #0E1726; border-color: #1E3A5F; color: #BFD6F6; }
.alert-success { background: #0D1F18; border-color: #1F5D45; color: #A7F3D0; }
.alert-warning { background: #241D0D; border-color: #5C4716; color: #FDE68A; }
.alert-danger, .alert-error { background: #220F11; border-color: #5B1F24; color: #FECACA; }
.alert a { color: inherit; text-decoration: underline; }

/* ---------- Modals ---------- */
.modal-content { border-radius: 14px; }
.modal-header, .modal-footer { border-color: var(--ap-border) !important; }
.modal-header .close, .close { color: var(--ap-text-2); text-shadow: none; opacity: .8; }
.modal-localisation .modal-content { background: var(--ap-surface) !important; }
.modal-localisation .item-selector .item { color: var(--ap-text-2); border-color: var(--ap-border); }
.modal-localisation .item-selector .item.active, .modal-localisation .item-selector .item:hover { background: var(--ap-red); color: #fff; }
#fullpage-overlay { background: rgba(10,12,17,.85); }

/* ---------- Order form: standard_cart ---------- */
#order-standard_cart, #order-standard_cart .header-lined h1, #order-standard_cart .cart-sidebar { color: var(--ap-text); }
#order-standard_cart .header-lined h1 { font-family: var(--ap-display); }
#order-standard_cart .header-lined, #order-standard_cart .sub-heading { border-color: var(--ap-border) !important; }
#order-standard_cart .sub-heading span, #order-standard_cart .sub-heading-borderless span { background: var(--ap-bg) !important; color: var(--ap-text-2) !important; }
#order-standard_cart .products .product {
  background: var(--ap-surface) !important; border: 1px solid var(--ap-border) !important; border-radius: 12px; overflow: hidden;
}
#order-standard_cart .products .product header { background: var(--ap-surface-2) !important; border-bottom: 1px solid var(--ap-border); padding: 16px 20px; }
#order-standard_cart .products .product header span { color: var(--ap-text) !important; font-family: var(--ap-display); font-weight: 700; font-size: 18px; }
#order-standard_cart .products .product header .qty { color: var(--ap-amber) !important; font-family: var(--ap-font); font-size: 13px; }
#order-standard_cart .products .product div.product-desc { color: var(--ap-text-2); padding: 18px 20px; }
#order-standard_cart .products .product div.product-desc ul li { color: var(--ap-text-2); }
#order-standard_cart .products .product div.product-pricing { color: var(--ap-text-2); }
#order-standard_cart .products .product div.product-pricing span.price { color: var(--ap-text); font-family: var(--ap-display); font-weight: 700; font-size: 26px; }
#order-standard_cart .products .product footer { background: transparent; padding: 0 20px 20px; }
#order-standard_cart .cart-sidebar .card, #order-standard_cart .sidebar .card { background: var(--ap-surface) !important; }
#order-standard_cart .summary-container, #order-standard_cart .order-summary {
  background: var(--ap-surface) !important; border: 1px solid var(--ap-border) !important; border-radius: 12px; color: var(--ap-text);
}
#order-standard_cart .order-summary h2 { background: var(--ap-surface-2) !important; color: var(--ap-text) !important; font-family: var(--ap-display); border-radius: 12px 12px 0 0; }
#order-standard_cart .order-summary .summary-container { border: 0 !important; }
#order-standard_cart .order-summary .total-due-today .amt, #order-standard_cart .order-summary .total-due-today span { color: var(--ap-text) !important; font-family: var(--ap-display); }
#order-standard_cart .order-summary .subtotal, #order-standard_cart .order-summary .bordered-totals { border-color: var(--ap-border) !important; }
#order-standard_cart .view-cart-items-header { background: var(--ap-surface-2) !important; color: var(--ap-muted) !important; border-radius: 10px 10px 0 0; }
#order-standard_cart .view-cart-items { border-color: var(--ap-border) !important; }
#order-standard_cart .view-cart-items .item { background: var(--ap-surface) !important; border-color: var(--ap-border) !important; }
#order-standard_cart .view-cart-items .item-title, #order-standard_cart .view-cart-items .item-price span { color: var(--ap-text) !important; }
#order-standard_cart .view-cart-items .item-group { color: var(--ap-muted) !important; }
#order-standard_cart .product-info, #order-standard_cart .field-container, #order-standard_cart .panel-addon,
#order-standard_cart .domain-checker-container, #order-standard_cart .account-select-container div.account,
#order-standard_cart .cc-input-container, #order-standard_cart .promo-code, #order-standard_cart .view-cart-tabs .tab-content {
  background: var(--ap-surface) !important; border: 1px solid var(--ap-border) !important; color: var(--ap-text) !important; border-radius: 10px;
}
#order-standard_cart .product-info .product-title { color: var(--ap-text); font-family: var(--ap-display); }
#order-standard_cart .panel-addon .panel-add { background: var(--ap-surface-2) !important; color: var(--ap-text) !important; }
#order-standard_cart .panel-addon-selected { border-color: var(--ap-red) !important; }
#order-standard_cart .panel-addon-selected .panel-add { background: var(--ap-red) !important; color: #fff !important; }
#order-standard_cart .account-select-container div.account.active { border-color: var(--ap-red) !important; background: #1A1214 !important; }
#order-standard_cart .nav-tabs .nav-link { color: var(--ap-text-2); border-color: transparent; }
#order-standard_cart .nav-tabs .nav-link.active { background: var(--ap-surface) !important; color: var(--ap-text) !important; border-color: var(--ap-border) var(--ap-border) var(--ap-surface) !important; }
#order-standard_cart .empty-cart .btn { color: var(--ap-text-2) !important; }
#order-standard_cart .secure-warning, #order-standard_cart .order-status { color: var(--ap-muted); }

/* Dynamic store (MarketConnect) */
.landing-page .hero, .landing-page .content-block { background: var(--ap-bg) !important; color: var(--ap-text); }

/* ---------- Footer ---------- */
.ap-footer, #footer.footer { background: var(--ap-bg) !important; border-top: 1px solid #1E2330; color: var(--ap-muted); padding: 56px 0 32px; }
.ap-footer-top { display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; padding-bottom: 40px; }
.ap-footer-brand { max-width: 340px; }
.ap-footer-logo { height: 40px; width: auto; margin-bottom: 14px; }
.ap-footer-brand p { color: var(--ap-muted); font-size: 14px; line-height: 1.6; margin: 0; }
.ap-footer-cols { display: flex; flex-wrap: wrap; gap: 64px; }
.ap-footer-col { display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.ap-footer-head { color: var(--ap-text); font-weight: 700; }
.ap-footer-col a { color: var(--ap-text-2); }
.ap-footer-col a:hover { color: var(--ap-text); }
.ap-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid #1E2330; padding-top: 24px; font-size: 13px; }
.ap-footer-bottom .btn { color: var(--ap-text-2) !important; background: transparent !important; border: 1px solid var(--ap-border-2) !important; font-size: 13px; }
.ap-footer .copyright { color: var(--ap-muted); }

/* =========================================================
   Homepage
   ========================================================= */
.ap-eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--ap-display); font-weight: 600; font-size: 14px; letter-spacing: .18em; text-transform: uppercase; color: var(--ap-red-text); margin-bottom: 12px; }
.ap-streaks { display: inline-flex; gap: 4px; }
.ap-streaks i { display: block; width: 6px; height: 18px; background: var(--ap-red); transform: skewX(-20deg); }
.ap-streaks i:nth-child(2) { opacity: .6; }
.ap-streaks i:nth-child(3) { opacity: .3; }
.ap-display { font-family: var(--ap-display); font-weight: 700; font-size: clamp(44px, 6vw, 72px); line-height: 1; margin: 0 0 24px; }
.ap-display-sm { font-family: var(--ap-display); font-weight: 700; font-size: clamp(32px, 4vw, 44px); line-height: 1.05; margin: 0 0 8px; color: #fff; }
.ap-h2 { font-family: var(--ap-display); font-weight: 700; font-size: clamp(30px, 3.6vw, 44px); line-height: 1.1; margin: 0; }
.ap-lead { font-size: 19px; line-height: 1.6; color: var(--ap-text-2); max-width: 560px; margin: 0 0 28px; }
.ap-sub { font-size: 17px; line-height: 1.6; color: var(--ap-text-2); margin: 12px 0 0; }
.ap-link { font-weight: 600; color: var(--ap-red-text); }
.ap-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.ap-ghost { background: transparent !important; }
.ap-ticks { list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 28px; font-size: 14px; color: var(--ap-text-2); }
.ap-ticks i { color: var(--ap-red-text); margin-right: 8px; }

.ap-hero { position: relative; overflow: hidden; border-bottom: 1px solid #1E2330; }
.ap-grid-bg { position: absolute; inset: 0; opacity: .6; background-image: linear-gradient(#141824 1px, transparent 1px), linear-gradient(90deg, #141824 1px, transparent 1px); background-size: 48px 48px; }
.ap-hero-inner { position: relative; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; padding-top: 88px; padding-bottom: 96px; }
.ap-hero-copy { flex: 999 1 520px; min-width: 0; }
.ap-hero-preview { flex: 1 1 420px; min-width: 0; }
.ap-preview-card { background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 12px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.ap-preview-media { position: relative; height: 150px; }
.ap-preview-media img { width: 100%; height: 150px; object-fit: cover; display: block; }
.ap-preview-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,21,29,0) 30%, var(--ap-surface) 100%); }
.ap-preview-title { position: absolute; left: 20px; bottom: 14px; z-index: 1; display: flex; flex-direction: column; gap: 2px; }
.ap-preview-title strong { font-family: var(--ap-display); font-size: 22px; }
.ap-preview-title span { font-size: 13px; color: var(--ap-text-2); }
.ap-status { position: absolute; right: 16px; top: 16px; z-index: 1; display: inline-flex; align-items: center; gap: 8px; background: rgba(10,12,17,.85); border: 1px solid #1F5D45; color: var(--ap-green); font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 999px; }
.ap-status i { width: 8px; height: 8px; border-radius: 50%; background: var(--ap-green); }
.ap-preview-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 20px; }
.ap-preview-stats div { background: var(--ap-surface-2); border-radius: 8px; padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.ap-preview-stats span { font-size: 12px; color: var(--ap-muted); }
.ap-preview-stats strong { font-family: var(--ap-display); font-size: 22px; }
.ap-console { margin: 0 20px 20px; background: #07080C; border: 1px solid #1E2330; border-radius: 8px; padding: 14px 16px; font-family: var(--ap-mono); font-size: 12.5px; line-height: 1.8; color: var(--ap-text-2); }
.ap-console em { color: var(--ap-muted); font-style: normal; }
.ap-console .ok { color: var(--ap-green); font-weight: 400; }
.ap-console .prompt { color: var(--ap-red-text); }
.ap-caption { margin: 12px 4px 0; font-size: 12px; color: var(--ap-muted); }

.ap-section { padding-top: 96px; padding-bottom: 40px; }
.ap-section-head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px; margin-bottom: 36px; }
.ap-narrow { max-width: 720px; }

.ap-game-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.ap-game-card { display: flex; flex-direction: column; background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 12px; overflow: hidden; color: var(--ap-text) !important; text-decoration: none !important; transition: transform .15s, border-color .15s; }
.ap-game-card:hover { transform: translateY(-3px); border-color: var(--ap-red); }
.ap-game-media { position: relative; height: 170px; background: var(--ap-surface-2); }
.ap-game-media img { width: 100%; height: 170px; object-fit: cover; display: block; }
.ap-game-fallback { height: 170px; display: flex; align-items: center; justify-content: center; font-family: var(--ap-display); font-size: 72px; font-weight: 700; color: #2C3344; }
.ap-tag { position: absolute; left: 14px; top: 14px; background: var(--ap-red); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: 4px; }
.ap-tag-muted { left: auto; right: 14px; background: #2C3344; }
.ap-game-body { padding: 20px 20px 22px; display: flex; flex-direction: column; gap: 8px; flex-grow: 1; }
.ap-game-body h3 { font-size: 22px; margin: 0; }
.ap-game-body p { font-size: 14px; color: var(--ap-text-2); margin: 0; line-height: 1.5; }
.ap-game-foot { display: flex; justify-content: space-between; align-items: baseline; margin-top: auto; padding-top: 10px; }
.ap-price small { font-size: 13px; color: var(--ap-muted); }
.ap-price strong { font-family: var(--ap-display); font-size: 26px; }
.ap-price-lg strong { font-size: 40px; }
.ap-game-card.is-soldout .ap-game-media img { filter: grayscale(.8) brightness(.6); }
.ap-game-request { border-style: dashed; border-color: #3A4256; justify-content: space-between; }
.ap-game-request .ap-game-body { justify-content: space-between; padding: 28px; }

.ap-steps-wrap { padding-top: 56px; padding-bottom: 96px; }
.ap-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.ap-step { display: flex; gap: 18px; align-items: flex-start; padding: 24px; border-top: 2px solid var(--ap-border-2); background: var(--ap-bg-2); }
.ap-step.is-active { border-top-color: var(--ap-red); }
.ap-step span { font-family: var(--ap-display); font-weight: 700; font-size: 34px; line-height: 1; color: var(--ap-red-text); }
.ap-step strong { display: block; font-size: 17px; margin-bottom: 6px; }
.ap-step p { font-size: 14px; line-height: 1.6; color: var(--ap-text-2); margin: 0; }

.ap-band { background: var(--ap-bg-2); border-top: 1px solid #1E2330; border-bottom: 1px solid #1E2330; }
.ap-band .ap-section { padding-bottom: 96px; }
.ap-feature-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.ap-feature { background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 12px; padding: 26px; }
.ap-feature i { font-size: 24px; color: var(--ap-red-text); margin-bottom: 14px; }
.ap-feature h3 { font-size: 18px; margin: 0 0 8px; font-family: var(--ap-font); }
.ap-feature p { font-size: 14px; line-height: 1.6; color: var(--ap-text-2); margin: 0; }

.ap-split { display: flex; flex-wrap: wrap; gap: 40px; padding-bottom: 96px; }
.ap-locations { flex: 1 1 460px; min-width: 0; }
.ap-locations ul { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-direction: column; gap: 12px; }
.ap-locations li { display: flex; align-items: center; gap: 14px; padding: 18px 20px; background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 10px; }
.ap-locations .ap-code { font-family: var(--ap-display); font-weight: 700; font-size: 18px; color: var(--ap-red-text); width: 48px; }
.ap-locations small { margin-left: auto; color: var(--ap-muted); font-size: 13px; }
.ap-dedicated { flex: 1 1 460px; min-width: 0; position: relative; overflow: hidden; background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 14px; padding: 40px; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; }
.ap-dedicated > div { position: relative; }
.ap-dedicated-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }
.ap-slashes { position: absolute !important; right: -40px; top: -20px; display: flex; gap: 14px; opacity: .18; pointer-events: none; }
.ap-slashes i { display: block; width: 40px; height: 260px; background: var(--ap-red); transform: skewX(-20deg); }
.ap-cta-wrap { padding-top: 0; padding-bottom: 96px; }
.ap-cta-band { position: relative; overflow: hidden; background: var(--ap-red); border-radius: 16px; padding: 56px 48px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 32px; }
.ap-cta-band > div:not(.ap-slashes) { position: relative; }
.ap-cta-band p { color: #fff; font-size: 17px; margin: 0; }
.ap-slashes-light { left: -30px; right: auto; top: -40px; }
.ap-slashes-light i { background: #fff; width: 26px; height: 300px; }
.ap-cta-dark { position: relative; background: var(--ap-bg) !important; border: 0 !important; color: #fff !important; font-weight: 700; padding: 18px 30px; }
.ap-cta-dark:hover { background: #000 !important; }

@media (max-width: 767.98px) {
  .ap-hero-inner { padding-top: 56px; padding-bottom: 64px; gap: 40px; }
  .ap-section { padding-top: 64px; }
  .ap-cta-band { padding: 40px 24px; }
  .ap-dedicated { padding: 28px; }
  .ap-footer-cols { gap: 32px; }
}

/* --- polish pass --- */
.ap-navbar .navbar-collapse { align-items: center; }
.ap-navbar .navbar-nav { align-items: center; }
.ap-navbar .ap-nav-right > li > a { padding-top: 10px !important; padding-bottom: 10px !important; }
.ap-navbar .logo-img, .ap-footer-logo { height: 46px; }
#order-standard_cart .order-summary .btn-continue-shopping, #order-standard_cart #continueShopping, #order-standard_cart .order-summary a.btn-link { color: var(--ap-text-2) !important; }
#order-standard_cart .order-summary .btn-checkout.disabled, #order-standard_cart .btn-checkout:disabled { opacity: .55; }
#order-standard_cart .products .product div.product-desc:empty { display: none; }
.ap-preview-stats strong { white-space: nowrap; font-size: clamp(18px, 4.6vw, 22px); }
