/* Fix pass 12. Loaded last. */

/* 1. Narrow phones (Galaxy Fold folded is 280px): grid children default to min-width:auto,
   so a long number or label forces the column, and the page, wider than the screen. */
.t8-stats > li, .city8-prices > li, .city8-prices a { min-width: 0; }
.t8-stats > li, .city8-prices a { grid-template-columns: minmax(0, 1fr); }
.t8-stats span, .city8-prices small, .city8-prices strong { overflow-wrap: anywhere; }
main h1, main h2, main h3, main p, main li { overflow-wrap: break-word; }
@media (max-width: 319px) {
	.t8-stats, .city8-prices { grid-template-columns: minmax(0, 1fr); }
}

/* 2-3. Moving strips. fix12.js drives them with transform on every frame, so the CSS keyframe
   loops (which jumped at the seam because track padding and gap did not match) are switched off. */
.is-js-marquee .value-ticker-track, .is-js-marquee .sports-track { animation: none !important; will-change: transform; }
.is-js-marquee { touch-action: pan-y; }

/* Benefits strip */
.vt12-wrap { position: relative; }
.vt12 { background: linear-gradient(180deg, #121217, #0c0c10); border-block: 1px solid rgba(255, 255, 255, 0.07); }
.vt12 .value-ticker-track { gap: 0.75rem !important; padding: 1rem 0.75rem 1rem 0 !important; }
.vt12 .value-ticker-track li { display: inline-flex !important; align-items: center !important; gap: 0.7rem !important; padding: 0.55rem 1.1rem 0.55rem 0.55rem !important; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 999px; background: rgba(255, 255, 255, 0.03); white-space: nowrap; font-size: 0.95rem; color: #d4d4d8; }
.vt12 .value-ticker-track li::after { display: none !important; }
.vt12-ico { display: inline-grid; place-items: center; width: 2.1rem; height: 2.1rem; flex: none; border-radius: 999px; background: radial-gradient(circle at 30% 25%, rgba(248, 113, 113, 0.28), rgba(220, 38, 38, 0.12)); color: #fca5a5; box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.25); }
.vt12-ico svg { width: 1.15rem; height: 1.15rem; stroke: currentColor; fill: none; }
.vt12 li:hover .vt12-ico { color: #fff; background: linear-gradient(135deg, #ef4444, #b91c1c); }
.vt12-txt strong { color: #fff; font-weight: 750; }
.vt12-wrap > .marquee-pause { top: 50%; bottom: auto; right: 0.75rem; transform: translateY(-50%); padding: 0.3rem 0.75rem !important; height: auto; min-height: 2rem; border-radius: 999px; font-size: 0.78rem; }
@media (max-width: 767px) {
	.vt12 .value-ticker-track li { font-size: 0.82rem; gap: 0.55rem !important; padding: 0.4rem 0.9rem 0.4rem 0.4rem !important; }
	.vt12-ico { width: 1.85rem; height: 1.85rem; }
	.vt12-wrap > .marquee-pause { position: static; display: flex; margin: 0.5rem 1rem 0 auto; transform: none; }
}

/* Live sports rail: every tile is a link that keeps working while it moves */
.sp12-link { display: block; color: inherit; text-decoration: none; border-radius: 1.4rem; }
.sp12-link:focus-visible { outline: 2px solid #f87171; outline-offset: 3px; }
.sp8-tile figcaption > span:not(.sp8-badge) { color: #e4e4e7; font-size: 0.92rem; line-height: 1.45; }
.sp12-cta { font-style: normal; font-weight: 700; font-size: 0.85rem; color: #fca5a5; margin-top: 0.25rem; }
.sp12-cta::after { content: " \2192"; }
.sp12-link:hover .sp12-cta { color: #fff; }
.sp8 .marquee-pause, .sports-rail + .marquee-pause { padding: 0.3rem 0.75rem !important; height: auto; }

/* Pause control sits right under the strip it controls */
.is-js-marquee + .marquee-pause { position: static !important; display: flex; margin: 0.6rem clamp(1rem, 4vw, 2rem) 0 auto; transform: none !important; padding: 0.3rem 0.85rem !important; min-height: 2.25rem; height: auto; border-radius: 999px; font-size: 0.8rem; }

/* 1b. Same min-width:auto trap on content pages (sitemap sweep at 280 to 430). */
.blog-hub-hero > *, .dpage-grid > *, .dpage-section ul > li, .dpage-section ol > li { min-width: 0; }
a[href^="mailto:"], a[href^="tel:"], a[href*="wa.me"] { overflow-wrap: anywhere; }
@media (max-width: 599px) {
	.dpage-section table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.cookie-consent { max-width: calc(100vw - 1rem) !important; min-width: 0 !important; box-sizing: border-box; }
}

/* 4. WhatsApp buttons inside blog posts and news articles. Prose link rules (pink, underlined)
   were winning over the button inside .prose-content; one shared rule restores the button on every
   post at once. WhatsApp CTAs get the glyph so they read as WhatsApp at a glance. */
.prose-content a.button-primary, .prose-content a.button-secondary,
article a.button-primary[href*="wa.me"], article a.button-secondary[href*="wa.me"], main aside a.button-primary[href*="wa.me"] {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
	min-height: 3rem; padding: 0.8rem 1.35rem !important; border-radius: 0.9rem;
	font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none !important; text-align: center;
}
.prose-content a.button-primary, article a.button-primary[href*="wa.me"], main aside a.button-primary[href*="wa.me"] {
	color: #fff !important; background: linear-gradient(135deg, #dc2626 0%, #b91c1c 55%, #991b1b 100%) !important;
	border: 1px solid rgba(255, 255, 255, 0.14); box-shadow: 0 10px 24px -12px rgba(220, 38, 38, 0.8);
}
.prose-content a.button-primary:hover, article a.button-primary[href*="wa.me"]:hover, main aside a.button-primary[href*="wa.me"]:hover { background: linear-gradient(135deg, #b91c1c, #7f1d1d) !important; color: #fff !important; }
.prose-content a.button-secondary, article a.button-secondary[href*="wa.me"] { color: #fff !important; background: rgba(255, 255, 255, 0.06) !important; border: 1px solid rgba(255, 255, 255, 0.22); }
.prose-content a.button-secondary:hover, article a.button-secondary[href*="wa.me"]:hover { background: rgba(255, 255, 255, 0.12) !important; }
.prose-content a.button-primary:focus-visible, .prose-content a.button-secondary:focus-visible, article a[href*="wa.me"]:focus-visible { outline: 2px solid #fca5a5; outline-offset: 3px; }
.prose-content p:has(> a.button-primary:only-child), .prose-content > a.button-primary { margin-block: 1.25rem 1.5rem; }
.prose-content > a.button-primary { display: flex; width: fit-content; }
.prose-content a.button-primary[href*="wa.me"]::before, article a.button-primary[href*="wa.me"]:not(:has(svg))::before, article a.button-secondary[href*="wa.me"]:not(:has(svg))::before, main aside a.button-primary[href*="wa.me"]:not(:has(svg))::before {
	content: ""; width: 1.15rem; height: 1.15rem; flex: none; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.47-2.39-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.61.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.21-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.7.63.71.23 1.36.2 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.17-1.41-.07-.12-.27-.2-.57-.35M12.05 21.78h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.83 9.83 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88m8.41-18.3A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.69 1.45h.01c6.55 0 11.89-5.34 11.89-11.89a11.82 11.82 0 0 0-3.48-8.41Z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.47-2.39-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.61.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.21-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.7.63.71.23 1.36.2 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.17-1.41-.07-.12-.27-.2-.57-.35M12.05 21.78h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.83 9.83 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88m8.41-18.3A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.69 1.45h.01c6.55 0 11.89-5.34 11.89-11.89a11.82 11.82 0 0 0-3.48-8.41Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.share-wa { color: #fff !important; background: rgba(37, 211, 102, 0.12) !important; border: 1px solid rgba(37, 211, 102, 0.45) !important; min-height: 2.75rem; padding: 0 1.1rem !important; }
.share-wa:hover { background: rgba(37, 211, 102, 0.22) !important; }
@media (max-width: 599px) {
	.prose-content a.button-primary, article .mt-6.flex > a[href*="wa.me"] { width: 100%; }
}
.post-cta > * { min-width: 0; }

/* Serious fault 3: French prices read "79 $ CA / 12 mois" (currency right after the number). */
.price-card-v3-price.is-fr > strong, .selected-plan-price.is-fr > strong { order: 1; }
.price-card-v3-price.is-fr > span, .selected-plan-price.is-fr > span { order: 2; }
.price-card-v3-price.is-fr > small, .selected-plan-price.is-fr > small { order: 3; }
.prose-content a.button-primary, .prose-content a.button-secondary, .post-cta a { white-space: normal; max-width: 100%; box-sizing: border-box; }

/* Medium: cookie notice on small phones stays under a quarter of the screen. */
@media (max-width: 374px) {
	.cookie-consent-v3 { padding: 0.7rem 0.8rem !important; gap: 0.5rem !important; }
	.cookie-consent-v3 .cookie-copy h2 { display: none; }
	.cookie-consent-v3 .cookie-copy p { font-size: 0.78rem !important; line-height: 1.4 !important; margin: 0 !important; }
	.cookie-consent-v3 .cookie-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0.4rem !important; }
	.cookie-consent-v3 .cookie-actions .cookie-button-link { grid-column: 1 / -1; min-height: 2rem; padding: 0 !important; }
	.cookie-consent-v3 .cookie-actions button { min-height: 2.6rem; font-size: 0.8rem !important; padding: 0.4rem 0.5rem !important; }
}

/* Medium: long-form "dpage" pages (French pricing, guarantee, legal) read as plain text.
   Give the sections the same card rhythm, heading weight, list markers and FAQ rows as the rest of the site. */
.dpage-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1rem, 2.5vw, 1.5rem); }
.dpage-body > * { min-width: 0; }
.dpage-section + .dpage-section { margin-top: 0 !important; }
.dpage-section { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 1.25rem; background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.01)); }
.dpage-section h2 { font-size: clamp(1.3rem, 1.1rem + 0.9vw, 1.7rem) !important; font-weight: 750; color: #fff; line-height: 1.25; margin: 0 0 0.9rem !important; text-wrap: balance; }
.dpage-section p { margin: 0 0 0.9rem; }
.dpage-section p:last-child { margin-bottom: 0; }
.dpage-section ul, .dpage-section ol { margin: 0.25rem 0 1rem !important; gap: 0.55rem !important; }
.dpage-section ul { list-style: none !important; padding-left: 0 !important; }
.dpage-section ul > li { position: relative; padding-left: 1.5rem; }
.dpage-section ul > li::before { content: ""; position: absolute; left: 0.2rem; top: 0.68em; width: 0.45rem; height: 0.45rem; border-radius: 999px; background: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.18); }
.dpage-section ol > li::marker { color: #f87171; font-weight: 700; }
.dpage-section li strong { color: #fff; }
.dpage-faq details { border: 1px solid rgba(255, 255, 255, 0.08) !important; border-radius: 0.9rem; padding: 0 !important; margin-top: 0.6rem; background: rgba(0, 0, 0, 0.18); }
.dpage-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.1rem; color: #fff; }
.dpage-faq summary::-webkit-details-marker { display: none; }
.dpage-faq summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 999px; background: rgba(239, 68, 68, 0.15); color: #fca5a5; font-weight: 700; }
.dpage-faq details[open] summary::after { content: "\2212"; }
.dpage-faq details p { margin: 0 !important; padding: 0 1.1rem 1.1rem; }
.dpage-body > p { color: var(--b-soft, #a1a1aa); padding: 0 0.25rem; }

/* Medium: one main-heading scale for every inner page (was 7 styles: 59 to 86px on desktop). */
body:not(.home) main h1:not(.hero-v3-title) { font-size: clamp(2.25rem, 1.45rem + 3.4vw, 4.2rem) !important; font-weight: 780 !important; letter-spacing: -0.045em !important; line-height: 1.03 !important; text-wrap: balance; }
body.single-post:not(.home) main h1:not(.hero-v3-title), body.single-news:not(.home) main h1:not(.hero-v3-title) { font-size: clamp(2.05rem, 1.5rem + 2.3vw, 3.5rem) !important; letter-spacing: -0.035em !important; line-height: 1.08 !important; }

/* Medium: checkout. Bigger terms checkbox, fewer exits (no promo banner or sticky offer bar), shorter path to the button. */
body.woocommerce-checkout .woocommerce-form__input-checkbox, body.woocommerce-checkout input[type="checkbox"] { width: 1.35rem; height: 1.35rem; accent-color: #dc2626; vertical-align: middle; margin-right: 0.5rem; flex: none; }
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label { display: flex; align-items: center; gap: 0.25rem; font-size: 1rem; line-height: 1.4; }
body.woocommerce-checkout [data-announce], body.woocommerce-checkout .top-banner, body.woocommerce-checkout .conversion-bar, body.woocommerce-checkout .support-widget { display: none !important; }
body.woocommerce-checkout .myiptv-commerce { padding-top: 1.5rem !important; }
body.woocommerce-checkout .myiptv-commerce header.mb-10 { margin-bottom: 1.25rem !important; }
@media (max-width: 767px) { body.woocommerce-checkout #order_comments { min-height: 4.5rem; } }

/* Strips move under reduced motion too (owner decision, see fix12.js): undo the older reduced-motion
   rules that turned the rails into a swipe row, hid the second copy and hid the Pause button. */
@media (prefers-reduced-motion: reduce) {
	.is-js-marquee { overflow: hidden !important; }
	.is-js-marquee .value-ticker-track[aria-hidden="true"] { display: flex !important; }
	.is-js-marquee .sports-track > [aria-hidden="true"] { display: block !important; }
	.is-js-marquee + .marquee-pause { display: flex !important; }
}

/* Owner, 2026-10-23: page content must not show through the header while scrolling. Solid background, no blur. */
.site-header, .site-header.is-scrolled, header.site-header { background: #0a0a0f !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
.top-banner { background-color: #1b1b21; }
.mobile-nav, .nav-mobile-panel, [data-mobile-nav] { background-color: #0a0a0f; }

/* Final review fixes (2026-10-23) */
/* Stat numbers never break mid-number; they scale down instead. */
.t8-stats strong, .t8-stats strong * { overflow-wrap: normal !important; word-break: normal; white-space: nowrap; }
@media (max-width: 419px) {
	.t8-stats li { padding: 1.2rem 0.5rem; }
	.t8-stats strong { font-size: clamp(1.25rem, 7.2vw, 1.9rem) !important; letter-spacing: -0.04em; }
}
/* Homepage plan picker on small phones: term on the left, price on the right, tag on its own line. */
@media (max-width: 419px) {
	.cta8-option { grid-template-columns: minmax(0, 1fr) auto !important; row-gap: 0.35rem; column-gap: 0.75rem; padding: 0.9rem 1rem !important; }
	.cta8-option-tag { grid-column: 1 / -1; justify-self: start; }
	.cta8-option > svg { display: none; }
	.cta8-option-term, .cta8-option-term * { min-width: 0; overflow-wrap: normal; }
	.cta8-option-price { font-size: 1.25rem; }
	.cta8-option-price small { display: block; font-size: 0.68rem; font-weight: 500; }
}
/* Comparison table labels: no mid-word breaks. */
.cmp9-feature, .cmp9 th { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual; }
@media (max-width: 359px) { .cmp9 table { font-size: 0.82rem; } }
/* Sticky offer bar, French label "Voir les forfaits" fits at 320 to 360. */
@media (max-width: 419px) {
	.conversion-bar-v3 .conversion-bar-actions { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 0.4rem !important; }
	.conversion-bar-v3 .conversion-bar-link, .conversion-bar-v3 .conversion-bar-whatsapp { min-width: 0; padding: 0 0.6rem !important; font-size: 0.86rem !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; justify-content: center; }
	.conversion-bar-v3 .conversion-bar-link svg { display: none; }
}
/* Two bottom bars: the help bubble sits above the plan bar, and page ends clear the offer bar on desktop. */
body:has(.selected-plan-bar.is-visible) .support-widget { bottom: 8rem !important; }
@media (min-width: 1024px) { body.has-conversion-bar { padding-bottom: 7rem !important; } }
/* FAQ category tiles at 320: label above the count, full width. */
@media (max-width: 359px) { [class*="faq"] a:has(> svg) { flex-wrap: wrap; } }
/* French price table on /fr/forfaits and other long-form pages. */
.dpage-section table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0.9rem; overflow: hidden; font-size: 0.95rem; }
.dpage-section table caption { caption-side: top; text-align: left; padding: 0 0 0.6rem; color: var(--b-soft, #a1a1aa); font-size: 0.85rem; }
.dpage-section th, .dpage-section td { padding: 0.7rem 0.9rem !important; border-bottom: 1px solid rgba(255, 255, 255, 0.07); text-align: left; vertical-align: top; }
.dpage-section thead th { background: rgba(239, 68, 68, 0.12); color: #fff; font-weight: 700; white-space: nowrap; }
.dpage-section tbody tr:last-child td { border-bottom: 0; }
.dpage-section tbody tr:nth-child(even) td { background: rgba(255, 255, 255, 0.025); }
.dpage-section td:not(:first-child) { white-space: nowrap; }
@media (max-width: 599px) { .dpage-section table { display: block; overflow-x: auto; } .dpage-section table::after { content: ""; } }
@media (max-width: 419px) {
	.cta8-option { grid-template-columns: minmax(0, 1fr) !important; }
	.cta8-option-price { text-align: left; display: flex; align-items: baseline; gap: 0.5rem; flex-wrap: wrap; }
	.cta8-option-price small { display: inline; }
}
@media (max-width: 419px) {
	.conversion-bar-v3 .conversion-bar-actions { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) auto !important; }
	.conversion-bar-v3 .conversion-bar-link, .conversion-bar-v3 .conversion-bar-whatsapp { font-size: 0.8rem !important; padding: 0 0.4rem !important; letter-spacing: -0.01em; }
}
