/*
Theme Name: IPTV Brampton 4K (Hello Elementor child)
Theme URI: https://iptvbrampton4k.ca/
Description: Lean child theme: design tokens, header, footer and component styles. Functionality (checkout, shortcodes, WhatsApp button) lives in WPCode snippets, not here.
Template: hello-elementor
Version: 1.0.0
Text Domain: ipb-hello-child
*/

/* ---------- Design tokens (from the verified Elementor kit and component CSS) ---------- */
:root {
  --ipb-brand: #FFBC23;      /* kit primary/accent: nav active item, kickers */
  --ipb-gold: #D4AF37;       /* buttons, cards, borders in the component CSS */
  --ipb-gold-2: #FDBB23;
  --ipb-bg: #000;
  --ipb-surface: #0C0C0C;
  --ipb-card: #141414;
  --ipb-card-border: #262626;
  --ipb-text: #fff;
  --ipb-muted: #b6bac4;
  --ipb-radius: 14px;
  --ipb-radius-btn: 10px;
  --ipb-font-head: 'Fira Sans Condensed', 'Arial Narrow', system-ui, sans-serif;
  --ipb-font-body: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --ipb-wrap: 1140px;
  --ipb-gutter: clamp(16px, 4vw, 32px);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--ipb-bg); color: var(--ipb-text); font-family: var(--ipb-font-body); font-size: 16px; line-height: 1.65; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--ipb-brand); text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: #fff; }
:focus-visible { outline: 3px solid var(--ipb-brand); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--ipb-font-head); font-weight: 700; color: #fff; line-height: 1.15; margin: 0 0 .5em; }
h1 { font-size: clamp(2rem, 5.2vw, 3.75rem); text-transform: uppercase; line-height: 1.1; }
h2 { font-size: clamp(1.6rem, 3.4vw, 3rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h4 { font-size: 1.375rem; } h5 { font-size: 1.25rem; font-weight: 600; } h6 { font-size: 1.125rem; text-transform: uppercase; }
p { margin: 0 0 1em; }
.screen-reader-text, .skip-link { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed; left: 8px; top: 8px; width: auto; height: auto; clip: auto; background: var(--ipb-brand); color: #000; padding: 10px 14px; z-index: 100000; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* ---------- Layout wrappers produced by the content converter ---------- */
.ipb-sec { position: relative; padding: clamp(16px, 2.5vw, 32px) var(--ipb-gutter); }
.ipb-sec > .ipb-col > *:not(section):not(div[class]):not(.ipb-btns),
.ipb-sec > .ipb-col > .ipb-heading, .ipb-sec > .ipb-col > .ipb-text, .ipb-sec > .ipb-col > .ipb-kicker, .ipb-sec > .ipb-col > .ipb-heading-block,
.ipb-sec > .ipb-heading, .ipb-sec > .ipb-text { max-width: var(--ipb-wrap); margin-left: auto; margin-right: auto; }
.ipb-sec > .ipb-col { width: 100%; }
.ipb-row { display: flex; flex-wrap: wrap; gap: 16px; max-width: 1400px; margin: 0 auto; }
.ipb-row > .ipb-col { flex: 1 1 220px; min-width: 0; text-align: center; }
.ipb-sec--bg { background: #000 var(--ipb-bg) center/cover no-repeat; min-height: min(78vh, 760px); display: flex; align-items: center; isolation: isolate; }
.ipb-sec--bg::before { content: ""; position: absolute; inset: 0; background: #000; opacity: var(--ipb-overlay, .45); z-index: -1; }
.ipb-sec--bg > .ipb-col { max-width: var(--ipb-wrap); margin: 0 auto; }
.ipb-sec--bg .ipb-heading { text-wrap: balance; }
.ipb-kicker { font-family: var(--ipb-font-body); color: var(--ipb-brand); text-transform: uppercase; letter-spacing: .12em; font-size: .8125rem; font-weight: 600; margin: 0 0 .75rem; }
.ipb-kicker--line { display: flex; align-items: center; gap: 16px; text-transform: none; letter-spacing: 0; font-size: clamp(1.05rem, 2vw, 1.5rem); font-weight: 400; color: var(--ipb-gold); }
.ipb-kicker--line::after { content: ""; flex: 0 1 40%; height: 1px; background: var(--ipb-gold); }
.ipb-lead { color: var(--ipb-muted); font-size: 1.125rem; }
.ipb-text { color: #fff; }
.ipb-text p { color: inherit; }
.ipb-icon { display: inline-flex; width: 72px; height: 72px; color: #F0C64E; }
.ipb-icon svg { width: 100%; height: 100%; }
.ipb-btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 1.25rem; }
.ipb-btn, .button, .wp-element-button, button.single_add_to_cart_button, #place_order {
  display: inline-block; font-family: var(--ipb-font-body); font-weight: 600; font-size: .9375rem; text-transform: uppercase; letter-spacing: .03em; text-align: center; text-decoration: none;
  background: var(--ipb-gold); color: #000 !important; border: 1px solid var(--ipb-gold); border-radius: var(--ipb-radius-btn); padding: 16px 32px; cursor: pointer; transition: background .2s, color .2s, transform .2s;
}
.ipb-btn:hover, .button:hover, button.single_add_to_cart_button:hover, #place_order:hover { background: #fff; border-color: #fff; color: #000 !important; }
.ipb-btn--ghost { background: #0c0c0c; color: var(--ipb-gold) !important; border-color: var(--ipb-card-border); }
.ipb-btn--ghost:hover { background: var(--ipb-gold); color: #000 !important; }

/* ---------- Header ---------- */
.ipb-header { background: #000; border-bottom: 1px solid var(--ipb-card-border); position: sticky; top: 0; z-index: 1000; }
.ipb-header__inner { max-width: 1400px; margin: 0 auto; padding: 10px var(--ipb-gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ipb-logo img { display: block; width: 150px; height: auto; }
.ipb-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.ipb-nav a { display: block; padding: 10px 16px; font-weight: 700; font-size: .8125rem; text-transform: uppercase; letter-spacing: .02em; color: #fff; text-decoration: none; }
.ipb-nav a:hover { color: var(--ipb-brand); }
.ipb-nav .current-menu-item > a, .ipb-nav .current_page_item > a { background: var(--ipb-brand); color: #000; }
.ipb-nav-toggle { display: none; background: none; border: 1px solid var(--ipb-card-border); color: var(--ipb-brand); border-radius: 8px; padding: 10px 12px; cursor: pointer; }
.ipb-nav-toggle span { display: block; width: 22px; height: 2px; background: currentColor; margin: 4px 0; }
@media (max-width: 860px) {
  .ipb-nav-toggle { display: block; }
  .ipb-nav { position: fixed; inset: 0 0 0 auto; width: min(82vw, 320px); background: #0c0c0c; border-left: 1px solid var(--ipb-card-border); transform: translateX(100%); transition: transform .25s; padding: 72px 12px 24px; }
  .ipb-nav.is-open { transform: none; }
  .ipb-nav ul { flex-direction: column; }
  .ipb-nav a { padding: 14px 16px; font-size: 1rem; }
}

/* ---------- Footer ---------- */
.ipb-footer { background: #000; border-top: 1px solid var(--ipb-card-border); padding: 56px var(--ipb-gutter) 24px; }
.ipb-footer__grid { max-width: 1140px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.ipb-footer h2 { font-size: 1.25rem; margin-bottom: .75rem; }
.ipb-footer ul { list-style: none; margin: 0; padding: 0; }
.ipb-footer li { margin: 0 0 .4rem; }
.ipb-footer__about { font-weight: 600; max-width: 34ch; }
.ipb-footer__bar { max-width: 1140px; margin: 40px auto 0; padding-top: 20px; border-top: 1px solid var(--ipb-card-border); text-align: center; color: var(--ipb-muted); font-size: .875rem; }
@media (max-width: 860px) { .ipb-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .ipb-footer__grid { grid-template-columns: 1fr; } }

/* ---------- Generic content pages ---------- */
.ipb-main { min-height: 50vh; }
.ipb-container { max-width: var(--ipb-wrap); margin: 0 auto; padding: 40px var(--ipb-gutter) 64px; }
.ipb-main table { width: 100%; border-collapse: collapse; }
.ipb-main th, .ipb-main td { border: 1px solid var(--ipb-card-border); padding: 10px 12px; text-align: left; }

/* ---------- WooCommerce (dark, branded; replaces the unbranded defaults) ---------- */
.woocommerce { color: #fff; }
.woocommerce .price, .woocommerce div.product p.price { color: var(--ipb-brand); font-family: var(--ipb-font-head); font-size: 1.75rem; }
.woocommerce div.product div.images img { border-radius: var(--ipb-radius); }
.woocommerce-breadcrumb { color: var(--ipb-muted); font-size: .875rem; margin-bottom: 1rem; }
.woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 1rem; list-style: none; display: flex; gap: 8px; border-bottom: 1px solid var(--ipb-card-border); }
.woocommerce-tabs ul.tabs li a { display: block; padding: 10px 16px; color: #fff; text-decoration: none; }
.woocommerce-tabs ul.tabs li.active a { background: var(--ipb-card); border-radius: 8px 8px 0 0; color: var(--ipb-brand); }
.woocommerce ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 24px; }
.woocommerce ul.products li.product { background: var(--ipb-card); border: 1px solid var(--ipb-card-border); border-radius: var(--ipb-radius); padding: 16px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { background: var(--ipb-card); border: 1px solid var(--ipb-card-border); border-left: 4px solid var(--ipb-gold); padding: 14px 18px; list-style: none; border-radius: 8px; color: #fff; }
.woocommerce-message .button { float: right; }
.woocommerce table.shop_table { border: 1px solid var(--ipb-card-border); border-radius: 10px; border-collapse: separate; border-spacing: 0; width: 100%; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px 14px; border-top: 1px solid var(--ipb-card-border); }
input[type=text], input[type=email], input[type=tel], input[type=number], select, textarea { background: var(--ipb-surface); color: #fff; border: 1px solid #4f4f4f; border-radius: 8px; padding: 12px 14px; font: inherit; width: 100%; }
label { display: block; margin-bottom: 4px; }
input[type=checkbox], input[type=radio] { width: auto; }
@media (min-width: 900px) { .woocommerce-checkout #customer_details { max-width: 720px; } }

@media (max-width: 600px) { .ipb-row > .ipb-col { flex: 1 1 42% !important; } }

/* WooCommerce default "alt" buttons are purple (store e-mail/brand colour); force the brand gold on every WooCommerce button */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #respond input#submit.alt,
.woocommerce .added_to_cart { background: var(--ipb-gold) !important; color: #000 !important; border: 1px solid var(--ipb-gold) !important; border-radius: var(--ipb-radius-btn) !important; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: #fff !important; color: #000 !important; border-color: #fff !important; }
