/* ==========================================================================
   IPTV Canada Officiel — page components (used by every builder page)
   ========================================================================== */

/* Elementor wrappers: let our sections control spacing */
.e-con.iptvco-wrap,
.e-con.iptvco-wrap > .e-con-inner { padding: 0; gap: 0; max-width: none; }
.iptvco-wrap .elementor-widget-html,
.iptvco-wrap .elementor-widget-shortcode,
.iptvco-wrap .elementor-widget-text-editor { width: 100%; margin: 0; }
.iptvco-wrap .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.iptvco-section { padding: clamp(56px, 8vw, 104px) 0; position: relative; }
.iptvco-section--alt { background: var(--iptvco-surface); }
.iptvco-section--tight { padding: clamp(40px, 5vw, 64px) 0; }

.iptvco-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--iptvco-font-heading); font-weight: 600; font-size: 15px;
	letter-spacing: .12em; text-transform: uppercase; color: var(--iptvco-primary);
	margin: 0 0 14px;
}
.iptvco-eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--iptvco-primary); }

.iptvco-section-head { max-width: 780px; margin: 0 auto 48px; text-align: center; }
.iptvco-section-head h2 { font-size: clamp(30px, 4.4vw, 48px); line-height: 1.12; margin: 0 0 16px; }
.iptvco-section-head p { font-size: 17px; line-height: 1.7; margin: 0; }
.iptvco-section-head--left { margin-left: 0; text-align: left; }

.iptvco-lead-text { font-size: clamp(17px, 2vw, 20px); line-height: 1.7; color: var(--iptvco-text); }
.iptvco-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin: 28px 0 0; }

/* ---- Breadcrumbs ---- */
.iptvco-crumbs { font-size: 14px; margin: 0 0 18px; }
.iptvco-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; }
.iptvco-crumbs li { color: var(--iptvco-text); }
.iptvco-crumbs li + li::before { content: "›"; margin-right: 6px; color: var(--iptvco-primary); }
.iptvco-crumbs a { color: var(--iptvco-text); text-decoration: none; }
.iptvco-crumbs a:hover { color: var(--iptvco-primary); }

/* ---- Heroes ---- */
.iptvco-hero {
	padding: clamp(56px, 8vw, 110px) 0 clamp(48px, 7vw, 90px);
	background:
		radial-gradient(circle at 85% 15%, rgba(247, 26, 44, .18), transparent 45%),
		radial-gradient(circle at 10% 90%, rgba(247, 26, 44, .08), transparent 40%),
		var(--iptvco-secondary);
	overflow: hidden;
}
.iptvco-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.iptvco-hero h1 { font-size: clamp(38px, 6vw, 68px); line-height: 1.05; margin: 0 0 20px; letter-spacing: -.01em; }
.iptvco-hero h1 em { font-style: normal; color: var(--iptvco-primary); }
.iptvco-hero__media img { width: 100%; height: auto; border-radius: 16px; border: 1px solid var(--iptvco-border); display: block; }
.iptvco-checks { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 10px; }
.iptvco-checks li { display: flex; gap: 10px; align-items: flex-start; color: var(--iptvco-white); }
.iptvco-checks svg { flex: 0 0 20px; margin-top: 3px; color: var(--iptvco-primary); }
.iptvco-checks--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Home hero illustrated TV */
.iptvco-tv { position: relative; max-width: 560px; margin-inline: auto; }
.iptvco-tv svg { width: 100%; height: auto; display: block; }
.iptvco-chip {
	position: absolute; display: flex; align-items: center; gap: 10px;
	background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 12px;
	padding: 10px 14px; box-shadow: var(--iptvco-shadow); color: var(--iptvco-white); font-weight: 700; font-size: 14px;
}
.iptvco-chip small { display: block; font-weight: 400; color: var(--iptvco-text); font-size: 12px; }
.iptvco-chip__icon { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; background: rgba(247, 26, 44, .15); color: var(--iptvco-primary); }
.iptvco-chip--1 { top: 6%; left: -4%; }
.iptvco-chip--2 { top: 42%; right: -6%; }
.iptvco-chip--3 { bottom: 4%; left: 8%; }

/* ---- Stats bar ---- */
.iptvco-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--iptvco-border); border: 1px solid var(--iptvco-border); border-radius: 14px; overflow: hidden; }
.iptvco-stat { background: var(--iptvco-surface); padding: 26px 20px; text-align: center; }
.iptvco-stat strong { display: block; font-family: var(--iptvco-font-heading); font-size: clamp(28px, 3.6vw, 40px); color: var(--iptvco-white); line-height: 1.1; }
.iptvco-stat span { font-size: 14px; color: var(--iptvco-text); }

/* ---- Grids & cards ---- */
.iptvco-grid { display: grid; gap: 20px; }
.iptvco-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.iptvco-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.iptvco-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.iptvco-icon-card { background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 14px; padding: 28px; transition: border-color .2s ease, transform .2s ease; }
.iptvco-section--alt .iptvco-icon-card { background: var(--iptvco-bg); }
.iptvco-icon-card:hover { border-color: rgba(247, 26, 44, .55); transform: translateY(-3px); }
.iptvco-icon-card__icon { width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; background: rgba(247, 26, 44, .12); color: var(--iptvco-primary); margin-bottom: 18px; }
.iptvco-icon-card__icon svg { width: 26px; height: 26px; }
.iptvco-icon-card h3 { font-size: 22px; margin: 0 0 10px; }
.iptvco-icon-card p { margin: 0; line-height: 1.65; }
.iptvco-icon-card a.iptvco-more { display: inline-flex; gap: 6px; margin-top: 14px; font-weight: 600; text-decoration: none; }

/* ---- Tier tabs ---- */
.iptvco-tabs { display: inline-flex; gap: 6px; padding: 6px; border: 1px solid var(--iptvco-border); border-radius: 999px; background: var(--iptvco-surface); margin: 0 auto 36px; }
.iptvco-tabs-wrap { text-align: center; }
.iptvco-tab {
	border: 0; background: transparent; color: var(--iptvco-text); font-weight: 700; font-size: 15px;
	padding: 12px 22px; border-radius: 999px; cursor: pointer; font-family: var(--iptvco-font-body);
}
.iptvco-tab[aria-selected="true"] { background: var(--iptvco-primary); color: var(--iptvco-white); }
.iptvco-tab:focus-visible { outline: 2px solid var(--iptvco-white); outline-offset: 2px; }
.iptvco-tabpanel[hidden] { display: none; }

/* ---- Plan / credit cards ---- */
.iptvco-plan-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.iptvco-plan {
	position: relative; display: flex; flex-direction: column;
	background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 16px; padding: 30px 24px 26px;
}
.iptvco-plan--popular { border-color: var(--iptvco-primary); box-shadow: 0 0 0 1px var(--iptvco-primary), var(--iptvco-shadow); }
.iptvco-plan .iptvco-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); white-space: nowrap; }
.iptvco-plan__term { font-family: var(--iptvco-font-heading); font-size: 26px; color: var(--iptvco-white); margin: 0; }
.iptvco-plan__server { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--iptvco-primary); margin: 4px 0 18px; font-weight: 700; }
.iptvco-plan__price { font-family: var(--iptvco-font-heading); font-size: 46px; color: var(--iptvco-white); line-height: 1; margin: 0; }
.iptvco-plan__price sup { font-size: 22px; vertical-align: top; position: relative; top: 6px; margin-right: 2px; }
.iptvco-plan__price small { font-size: 15px; font-family: var(--iptvco-font-body); color: var(--iptvco-text); margin-left: 4px; }
.iptvco-plan__was { font-size: 14px; margin: 8px 0 0; }
.iptvco-plan__was s { color: var(--iptvco-text); }
.iptvco-plan__was b { color: var(--iptvco-success); }
.iptvco-plan__per { font-size: 14px; margin: 8px 0 0; color: var(--iptvco-white); }
.iptvco-plan__features { list-style: none; padding: 0; margin: 22px 0 24px; display: grid; gap: 10px; flex: 1; }
.iptvco-plan__features li { display: flex; gap: 10px; font-size: 15px; line-height: 1.45; color: var(--iptvco-text); }
.iptvco-plan__features svg { flex: 0 0 18px; margin-top: 2px; color: var(--iptvco-primary); }
.iptvco-plan .iptvco-btn { width: 100%; }
.iptvco-plan__spacer { flex: 1; min-height: 22px; }
.iptvco-best-rate { color: var(--iptvco-success); }
.iptvco-plan__pay { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; font-size: 13px; color: var(--iptvco-text); }
.iptvco-credit-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ---- Tables ---- */
.iptvco-table-wrap { overflow-x: auto; border: 1px solid var(--iptvco-border); border-radius: 14px; -webkit-overflow-scrolling: touch; }
.iptvco-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.iptvco-table th, .iptvco-table td { padding: 16px 18px; border-bottom: 1px solid var(--iptvco-border); text-align: left; font-size: 15px; }
.iptvco-table thead th { background: var(--iptvco-surface-2); color: var(--iptvco-white); font-family: var(--iptvco-font-heading); font-size: 18px; }
.iptvco-table tbody th { color: var(--iptvco-white); font-weight: 600; }
.iptvco-table tbody tr:last-child th, .iptvco-table tbody tr:last-child td { border-bottom: 0; }
.iptvco-table tbody tr:nth-child(even) { background: rgba(255, 255, 255, .02); }
.iptvco-table .is-yes { color: var(--iptvco-success); font-weight: 700; }
.iptvco-table .is-no { color: var(--iptvco-text); }
.iptvco-table .is-hl { color: var(--iptvco-primary); font-weight: 700; }

/* ---- Numbered steps ---- */
.iptvco-steplist { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid; gap: 16px; }
.iptvco-steplist > li {
	counter-increment: step; position: relative; padding: 22px 22px 22px 80px;
	background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 14px;
}
.iptvco-section--alt .iptvco-steplist > li { background: var(--iptvco-bg); }
.iptvco-steplist > li::before {
	content: counter(step); position: absolute; left: 22px; top: 22px; width: 40px; height: 40px; border-radius: 50%;
	display: grid; place-items: center; background: var(--iptvco-primary); color: var(--iptvco-white);
	font-family: var(--iptvco-font-heading); font-weight: 700; font-size: 18px;
}
.iptvco-steplist h3 { font-size: 21px; margin: 0 0 6px; }
.iptvco-steplist p { margin: 0; line-height: 1.65; }
.iptvco-steplist--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ---- FAQ ---- */
.iptvco-faq { display: grid; gap: 12px; max-width: 900px; margin: 0 auto; }
.iptvco-faq details { background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 12px; }
.iptvco-section--alt .iptvco-faq details { background: var(--iptvco-bg); }
.iptvco-faq details[open] { border-color: rgba(247, 26, 44, .6); }
.iptvco-faq summary {
	list-style: none; cursor: pointer; padding: 20px 56px 20px 22px; position: relative;
	font-family: var(--iptvco-font-heading); font-weight: 600; font-size: 19px; color: var(--iptvco-white);
}
.iptvco-faq summary::-webkit-details-marker { display: none; }
.iptvco-faq summary::after {
	content: ""; position: absolute; right: 22px; top: 50%; width: 12px; height: 12px; margin-top: -8px;
	border-right: 2px solid var(--iptvco-primary); border-bottom: 2px solid var(--iptvco-primary); transform: rotate(45deg); transition: transform .2s ease;
}
.iptvco-faq details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.iptvco-faq summary:focus-visible { outline: 2px solid var(--iptvco-primary); outline-offset: 2px; border-radius: 12px; }
.iptvco-faq__a { padding: 0 22px 20px; line-height: 1.7; }
.iptvco-faq__a p { margin: 0 0 10px; }
.iptvco-faq__a p:last-child { margin: 0; }
.iptvco-faq-group + .iptvco-faq-group { margin-top: 48px; }
.iptvco-faq-group > h2 { text-align: center; font-size: clamp(26px, 3.4vw, 36px); margin: 0 0 24px; }

/* ---- CTA band ---- */
.iptvco-cta {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: center;
	padding: clamp(32px, 5vw, 56px); border-radius: 20px; border: 1px solid rgba(247, 26, 44, .5);
	background: radial-gradient(circle at 100% 0%, rgba(247, 26, 44, .28), transparent 55%), var(--iptvco-surface);
}
.iptvco-cta h2 { font-size: clamp(28px, 4vw, 42px); margin: 0 0 10px; }
.iptvco-cta p { margin: 0; font-size: 17px; }
.iptvco-cta .iptvco-btn-row { margin: 0; }

/* ---- Guide + blog cards ---- */
.iptvco-guide-card {
	display: flex; gap: 16px; align-items: flex-start; text-decoration: none; color: inherit;
	background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 14px; padding: 22px;
	transition: border-color .2s ease, transform .2s ease;
}
.iptvco-section--alt .iptvco-guide-card { background: var(--iptvco-bg); }
.iptvco-guide-card:hover, .iptvco-guide-card:focus-visible { border-color: var(--iptvco-primary); transform: translateY(-3px); color: inherit; }
.iptvco-guide-card h3 { font-size: 20px; margin: 0 0 6px; }
.iptvco-guide-card p { margin: 0; font-size: 15px; line-height: 1.55; }
.iptvco-guide-card .iptvco-icon-card__icon { margin: 0; flex: 0 0 52px; }

.iptvco-post-card { display: flex; flex-direction: column; background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 14px; overflow: hidden; transition: border-color .2s ease, transform .2s ease; }
.iptvco-post-card:hover { border-color: rgba(247, 26, 44, .6); transform: translateY(-3px); }
.iptvco-post-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.iptvco-post-card__body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.iptvco-post-card__cat { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: var(--iptvco-primary); font-weight: 700; margin: 0 0 8px; }
.iptvco-post-card h3 { font-size: 21px; margin: 0 0 10px; line-height: 1.25; }
.iptvco-post-card h3 a { color: var(--iptvco-white); text-decoration: none; }
.iptvco-post-card h3 a:hover { color: var(--iptvco-primary); }
.iptvco-post-card p { margin: 0 0 16px; font-size: 15px; line-height: 1.6; flex: 1; }

/* ---- Long-form prose ---- */
.iptvco-prose { max-width: 860px; margin: 0 auto; font-size: 17px; line-height: 1.8; }
.iptvco-prose h2 { font-size: clamp(28px, 3.6vw, 38px); margin: 48px 0 16px; line-height: 1.2; }
.iptvco-prose h3 { font-size: 23px; margin: 32px 0 10px; }
.iptvco-prose p { margin: 0 0 18px; }
.iptvco-prose ul, .iptvco-prose ol { margin: 0 0 18px; padding-left: 22px; }
.iptvco-prose li { margin: 0 0 8px; }
.iptvco-prose strong { color: var(--iptvco-white); }
.iptvco-prose a { text-decoration: underline; text-underline-offset: 3px; }
.iptvco-prose > :first-child { margin-top: 0; }
.iptvco-callout { border-left: 3px solid var(--iptvco-primary); background: var(--iptvco-surface); padding: 18px 22px; border-radius: 0 12px 12px 0; margin: 0 0 22px; }

.iptvco-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 64px); align-items: center; }
.iptvco-split img { width: 100%; height: auto; border-radius: 16px; border: 1px solid var(--iptvco-border); }

/* ---- Forms (contact / trial / reseller) ---- */
.iptvco-form { display: grid; gap: 16px; background: var(--iptvco-surface); border: 1px solid var(--iptvco-border); border-radius: 16px; padding: clamp(22px, 4vw, 36px); }
.iptvco-form .iptvco-field { display: grid; gap: 8px; }
.iptvco-form .iptvco-field label { color: var(--iptvco-white); font-weight: 700; }
.iptvco-form .iptvco-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.iptvco-form .iptvco-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.iptvco-form .iptvco-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--iptvco-primary); }
.iptvco-form .iptvco-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.iptvco-form-msg { border-radius: 12px; padding: 14px 18px; margin: 0 0 16px; }
.iptvco-form-msg--ok { border: 1px solid var(--iptvco-success); background: rgba(46, 204, 113, .08); color: var(--iptvco-white); }
.iptvco-form-msg--err { border: 1px solid var(--iptvco-primary); background: rgba(247, 26, 44, .08); color: var(--iptvco-white); }

/* ---- Contact cards ---- */
.iptvco-contact-card { text-align: center; }
.iptvco-contact-card .iptvco-icon-card__icon { margin-inline: auto; }

/* ---- Floating help ---- */
.iptvco-help-fab {
	position: fixed; left: 18px; bottom: 18px; z-index: 9990; display: inline-flex; align-items: center; gap: 8px;
	background: var(--iptvco-primary); color: var(--iptvco-white); border-radius: 999px; padding: 13px 18px;
	font-weight: 700; font-size: 15px; text-decoration: none; box-shadow: 0 10px 28px rgba(247, 26, 44, .35);
}
.iptvco-help-fab:hover, .iptvco-help-fab:focus-visible { color: var(--iptvco-white); background: var(--iptvco-primary-dark); }
.iptvco-help-fab svg { width: 20px; height: 20px; }

/* ---- Utilities ---- */
.iptvco-center { text-align: center; }
.iptvco-mt-0 { margin-top: 0 !important; }
.iptvco-note { font-size: 14px; color: var(--iptvco-text); }
.iptvco-sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- Responsive ---- */
@media (max-width: 1100px) {
	.iptvco-plan-grid, .iptvco-credit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
	.iptvco-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.iptvco-hero__grid, .iptvco-split { grid-template-columns: 1fr; }
	.iptvco-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iptvco-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.iptvco-cta { grid-template-columns: 1fr; }
	.iptvco-steplist--row { grid-template-columns: 1fr; }
	.iptvco-chip--1 { left: 0; }
	.iptvco-chip--2 { right: 0; }
}
@media (max-width: 600px) {
	.iptvco-grid--2, .iptvco-grid--3, .iptvco-grid--4, .iptvco-plan-grid, .iptvco-credit-grid { grid-template-columns: 1fr; }
	.iptvco-checks--cols { grid-template-columns: 1fr; }
	.iptvco-form .iptvco-row { grid-template-columns: 1fr; }
	.iptvco-tabs { width: 100%; max-width: 100%; box-sizing: border-box; }
	.iptvco-tab { flex: 1 1 0; min-width: 0; padding: 12px 6px; font-size: 13px; line-height: 1.2; }
	.iptvco-steplist > li { padding: 70px 18px 20px; }
	.iptvco-steplist > li::before { top: 18px; left: 18px; }
	.iptvco-chip { font-size: 12px; padding: 8px 10px; }
	.iptvco-chip__icon { width: 28px; height: 28px; }
	.iptvco-help-fab { left: 12px; bottom: 12px; padding: 11px 15px; font-size: 14px; }
	.iptvco-prose { font-size: 16px; }
}

/* iOS: no heavy filters/shadows on large layers */
@supports (-webkit-touch-callout: none) {
	.iptvco-plan--popular, .iptvco-chip, .iptvco-help-fab { box-shadow: none; }
}
@media (max-width: 768px) {
	.iptvco-hero { background: var(--iptvco-secondary); }
}

/* ==========================================================================
   Specificity fixes: the Elementor Kit sets `a { color: primary }` with a
   kit-scoped selector that out-ranks single-class rules. Re-assert colours.
   ========================================================================== */
body a.iptvco-btn,
body a.iptvco-btn:visited { color: var(--iptvco-white); background: var(--iptvco-primary); border-color: var(--iptvco-primary); text-decoration: none; }
body a.iptvco-btn:hover,
body a.iptvco-btn:focus-visible { color: var(--iptvco-primary); background: transparent; }
body a.iptvco-btn--ghost,
body a.iptvco-btn--ghost:visited { color: var(--iptvco-white); background: transparent; border-color: var(--iptvco-border); }
body a.iptvco-btn--ghost:hover,
body a.iptvco-btn--ghost:focus-visible { color: var(--iptvco-primary); border-color: var(--iptvco-primary); background: transparent; }

body a.iptvco-help-fab,
body a.iptvco-help-fab:visited { color: var(--iptvco-white); background: var(--iptvco-primary); text-decoration: none; }
body a.iptvco-help-fab:hover,
body a.iptvco-help-fab:focus-visible { color: var(--iptvco-white); background: var(--iptvco-primary-dark); }

body a.iptvco-guide-card,
body a.iptvco-guide-card:visited { color: var(--iptvco-text); text-decoration: none; }
body a.iptvco-guide-card:hover,
body a.iptvco-guide-card:focus-visible { color: var(--iptvco-text); }
body a.iptvco-guide-card h3 { color: var(--iptvco-white); }

body .iptvco-crumbs a { color: var(--iptvco-text); }
body .iptvco-crumbs a:hover { color: var(--iptvco-primary); }
body a.iptvco-more { color: var(--iptvco-primary); text-decoration: none; }
body a.iptvco-more:hover { color: var(--iptvco-white); }
body .iptvco-prose a { color: var(--iptvco-primary); }
body .iptvco-prose a:hover { color: var(--iptvco-white); }

/* In-page anchors clear the sticky header */
html { scroll-behavior: smooth; }
[id="plans"], [id="content"] { scroll-margin-top: 90px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.iptvco-container--narrow { max-width: 820px; }
.iptvco-schedule__league { margin: 0 0 28px; }
.iptvco-schedule .iptvco-table { min-width: 480px; }
.iptvco-schedule__day th { background: var(--iptvco-surface-2); color: var(--iptvco-white); font-family: var(--iptvco-font-heading); }

/* ---- City chips (home + local pages) ---- */
.iptvco-accent { color: #ff4d5e; }
.iptvco-spacer { height: 28px; }
.iptvco-chip-list { list-style: none; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 30px auto; padding: 0; max-width: 1000px; }
.iptvco-chip-list li { margin: 0; padding: 0; }
body a.iptvco-chip-link { display: inline-flex; align-items: center; gap: 10px; padding: 14px 24px; background: #151515; border: 1px solid var(--iptvco-border); border-radius: 999px; color: var(--iptvco-white); font-weight: 700; font-size: 16px; text-decoration: none; transition: border-color .2s, transform .2s; }
body a.iptvco-chip-link:hover, body a.iptvco-chip-link:focus-visible { border-color: var(--iptvco-primary); transform: translateY(-2px); color: var(--iptvco-white); }
.iptvco-chip-link__pin { display: inline-flex; color: #ff4d6d; }
.iptvco-cities .iptvco-section-head { margin-bottom: 8px; }
.iptvco-btn__ca { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .06em; padding: 3px 7px; border-radius: 6px; background: rgba(255, 255, 255, .22); margin-right: 10px; }
@media (max-width: 600px) {
	.iptvco-chip-list { gap: 10px; }
	body a.iptvco-chip-link { padding: 11px 16px; font-size: 14px; }
}

body a.iptvco-help-fab { background: #25d366; box-shadow: 0 10px 28px rgba(37, 211, 102, .35); color: #fff; }
body a.iptvco-help-fab:hover, body a.iptvco-help-fab:focus-visible { background: #1ebe5b; color: #fff; }
.iptvco-help-fab svg { width: 24px; height: 24px; flex: none; }
.iptvco-help-fab span { white-space: nowrap; }

/* WhatsApp button: icon only, always a round 58px target */
body a.iptvco-help-fab { width: 58px; height: 58px; padding: 0; justify-content: center; border-radius: 50%; }
body a.iptvco-help-fab svg { width: 30px; height: 30px; }
@media (max-width: 600px) {
	body a.iptvco-help-fab { left: 14px; bottom: 14px; width: 54px; height: 54px; padding: 0; }
	body a.iptvco-help-fab svg { width: 28px; height: 28px; }
}
