{"id":15,"date":"2026-08-24T19:45:20","date_gmt":"2026-08-24T19:45:20","guid":{"rendered":"https:\/\/iptv-italia.it\/?page_id=15"},"modified":"2026-09-11T21:12:34","modified_gmt":"2026-09-11T21:12:34","slug":"home","status":"publish","type":"page","link":"https:\/\/iptv-italia.it\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15\" class=\"elementor elementor-15\">\n\t\t\t\t<div class=\"elementor-element elementor-element-85d89d6 e-con-full e-flex e-con e-parent\" data-id=\"85d89d6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-32a3251 elementor-widget elementor-widget-html\" data-id=\"32a3251\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  IPTV Italia \u00b7 Hero home \u00b7 HTML Elementor \u00b7 v4\r\n  Conteneur Elementor pleine largeur, sans marge\/padding ni animation d'entr\u00e9e.\r\n  URL d'image conserv\u00e9e ; lien \/abbonamento-iptv\/ au singulier, corrig\u00e9.\r\n  Alt descriptif en italien, image accessible aux lecteurs d'\u00e9cran.\r\n  Motif tricolore anim\u00e9 4,8 s au maximum ; boutons r\u00e9actifs au survol\/clavier.\r\n  Animations d\u00e9sactiv\u00e9es avec prefers-reduced-motion ; titre\/image sans entr\u00e9e.\r\n  Coller une seule fois, \u00e0 la place de [iptvit_home_hero], jamais en compl\u00e9ment.\r\n  Aucun PHP, JavaScript, police externe ni m\u00e9tadonn\u00e9e de page dans ce fragment.\r\n-->\r\n<style>\r\n.iptvit-home-intro, .iptvit-home-intro * { box-sizing: border-box; }\r\n.iptvit-home-intro {\r\n  --ihi-bg: #edf3f0;\r\n  --ihi-ink: #10251e;\r\n  --ihi-copy: #344b43;\r\n  --ihi-muted: #4f665d;\r\n  --ihi-green: #1b7051;\r\n  --ihi-middle: #526a60;\r\n  --ihi-red: #a73243;\r\n  --ihi-line: #becdc4;\r\n  --ihi-surface: #f9fcfa;\r\n  --ihi-action: #1b7653;\r\n  --ihi-action-end: #125a40;\r\n  --ihi-action-hover: #9f2f40;\r\n  --ihi-action-hover-end: #7e2534;\r\n  --ihi-action-ink: #fff;\r\n  --ihi-secondary-hover: #fae9eb;\r\n  --ihi-overlay: linear-gradient(90deg, #edf3f0 0%, #edf3f0 24%, rgba(237,243,240,.98) 38%, rgba(237,243,240,.95) 48%, rgba(237,243,240,.65) 57%, rgba(237,243,240,.06) 73%);\r\n  --ihi-depth: linear-gradient(0deg, #edf3f0 0%, rgba(237,243,240,.5) 18%, transparent 45%);\r\n  --ihi-photo-opacity: 1;\r\n  background: var(--ihi-bg);\r\n  color: var(--ihi-copy);\r\n  color-scheme: light;\r\n  font-family: inherit;\r\n  isolation: isolate;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-home-intro,\r\n:root:not([data-iptvit-theme])[data-theme=\"dark\"] .iptvit-home-intro {\r\n  --ihi-bg: #07121a;\r\n  --ihi-ink: #f5f6ee;\r\n  --ihi-copy: #d5e0da;\r\n  --ihi-muted: #b6c9be;\r\n  --ihi-green: #80dcb2;\r\n  --ihi-middle: #f5f6ee;\r\n  --ihi-red: #f18c97;\r\n  --ihi-line: #354b4b;\r\n  --ihi-surface: #10232a;\r\n  --ihi-action: #98e2bf;\r\n  --ihi-action-end: #7fd3ac;\r\n  --ihi-action-hover: #f1a4ad;\r\n  --ihi-action-hover-end: #dc8995;\r\n  --ihi-action-ink: #102b23;\r\n  --ihi-secondary-hover: #38222b;\r\n  --ihi-overlay: linear-gradient(90deg, #07121a 0%, #07121a 24%, rgba(7,18,26,.98) 38%, rgba(7,18,26,.95) 48%, rgba(7,18,26,.65) 57%, rgba(7,18,26,.06) 73%);\r\n  --ihi-depth: linear-gradient(0deg, #07121a 0%, rgba(7,18,26,.5) 18%, transparent 45%);\r\n  --ihi-photo-opacity: .75;\r\n  color-scheme: dark;\r\n}\r\n@media (prefers-color-scheme: dark) {\r\n  :root:not([data-iptvit-theme]):not([data-theme]) .iptvit-home-intro {\r\n    --ihi-bg: #07121a;\r\n    --ihi-ink: #f5f6ee;\r\n    --ihi-copy: #d5e0da;\r\n    --ihi-muted: #b6c9be;\r\n    --ihi-green: #80dcb2;\r\n    --ihi-middle: #f5f6ee;\r\n    --ihi-red: #f18c97;\r\n    --ihi-line: #354b4b;\r\n    --ihi-surface: #10232a;\r\n    --ihi-action: #98e2bf;\r\n    --ihi-action-end: #7fd3ac;\r\n    --ihi-action-hover: #f1a4ad;\r\n    --ihi-action-hover-end: #dc8995;\r\n    --ihi-action-ink: #102b23;\r\n    --ihi-secondary-hover: #38222b;\r\n    --ihi-overlay: linear-gradient(90deg, #07121a 0%, #07121a 24%, rgba(7,18,26,.98) 38%, rgba(7,18,26,.95) 48%, rgba(7,18,26,.65) 57%, rgba(7,18,26,.06) 73%);\r\n    --ihi-depth: linear-gradient(0deg, #07121a 0%, rgba(7,18,26,.5) 18%, transparent 45%);\r\n    --ihi-photo-opacity: .75;\r\n    color-scheme: dark;\r\n  }\r\n}\r\n.iptvit-home-intro::before {\r\n  background: linear-gradient(90deg, #16805d 0 33.33%, #f8f5ec 33.33% 66.66%, #c43e4b 66.66%);\r\n  content: \"\";\r\n  height: 3px;\r\n  inset: 0 0 auto;\r\n  position: absolute;\r\n  z-index: 2;\r\n}\r\n.iptvit-home-intro__scene {\r\n  inset: 0;\r\n  margin: 0;\r\n  overflow: hidden;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  z-index: -1;\r\n}\r\n.iptvit-home-intro .iptvit-home-intro__image {\r\n  display: block;\r\n  height: 100%;\r\n  max-width: none;\r\n  object-fit: cover;\r\n  object-position: 68% center;\r\n  opacity: var(--ihi-photo-opacity);\r\n  width: 100%;\r\n}\r\n.iptvit-home-intro__image:not([src]), .iptvit-home-intro__image[src=\"\"] { visibility: hidden; }\r\n.iptvit-home-intro__scene::after {\r\n  background: var(--ihi-overlay), var(--ihi-depth);\r\n  content: \"\";\r\n  inset: 0;\r\n  position: absolute;\r\n}\r\n.iptvit-home-intro__inner {\r\n  margin-inline: auto;\r\n  max-width: 86rem;\r\n  padding: clamp(3.25rem, 5.5vw, 5.5rem) clamp(1.25rem, 4vw, 2.5rem) 4rem;\r\n}\r\n.iptvit-home-intro__content { max-width: 41rem; width: 53%; }\r\n.iptvit-home-intro .iptvit-home-intro__eyebrow {\r\n  align-items: center;\r\n  color: var(--ihi-green);\r\n  display: flex;\r\n  font-size: .75rem;\r\n  font-weight: 800;\r\n  gap: .75rem;\r\n  letter-spacing: .13em;\r\n  line-height: 1.6;\r\n  margin: 0 0 1.4rem;\r\n  text-transform: uppercase;\r\n}\r\n.iptvit-home-intro__mark {\r\n  background: linear-gradient(90deg, #16805d 0 33.33%, #f8f5ec 33.33% 66.66%, #c43e4b 66.66%);\r\n  border: 1px solid var(--ihi-line);\r\n  border-radius: 3px;\r\n  flex: 0 0 1.65rem;\r\n  height: 1.05rem;\r\n}\r\n.iptvit-home-intro .iptvit-home-intro__title {\r\n  color: var(--ihi-ink);\r\n  font-family: inherit;\r\n  font-size: clamp(2.75rem, 4.7vw, 4.5rem);\r\n  font-weight: 850;\r\n  letter-spacing: -.052em;\r\n  line-height: 1.055;\r\n  margin: 0;\r\n  overflow-wrap: break-word;\r\n}\r\n.iptvit-home-intro__title span {\r\n  background: linear-gradient(105deg, var(--ihi-green), var(--ihi-middle) 53%, var(--ihi-red));\r\n  background-clip: text;\r\n  color: var(--ihi-green);\r\n  display: block;\r\n  -webkit-background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n}\r\n.iptvit-home-intro .iptvit-home-intro__text {\r\n  color: var(--ihi-copy);\r\n  font-size: 1.0625rem;\r\n  line-height: 1.8;\r\n  margin: 1.65rem 0 0;\r\n  max-width: 36rem;\r\n}\r\n.iptvit-home-intro__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }\r\n.iptvit-home-intro .iptvit-home-intro__button {\r\n  align-items: center;\r\n  background: var(--ihi-surface);\r\n  border: 1px solid var(--ihi-line);\r\n  border-radius: .8rem;\r\n  color: var(--ihi-ink);\r\n  display: inline-flex;\r\n  font-size: .9375rem;\r\n  font-weight: 750;\r\n  gap: .8rem;\r\n  justify-content: center;\r\n  isolation: isolate;\r\n  line-height: 1.5;\r\n  min-height: 3.5rem;\r\n  padding: .85rem 1.2rem;\r\n  position: relative;\r\n  text-decoration: none;\r\n}\r\n.iptvit-home-intro .iptvit-home-intro__button--primary {\r\n  background: var(--ihi-action) linear-gradient(120deg, var(--ihi-action), var(--ihi-action-end));\r\n  border-color: var(--ihi-action);\r\n  box-shadow: 0 6px 18px rgba(6, 56, 38, .13);\r\n  color: var(--ihi-action-ink);\r\n}\r\n.iptvit-home-intro .iptvit-home-intro__button--secondary {\r\n  border-color: var(--ihi-green);\r\n  color: var(--ihi-green);\r\n}\r\n.iptvit-home-intro__button--primary::before {\r\n  background: linear-gradient(120deg, var(--ihi-action-hover), var(--ihi-action-hover-end));\r\n  border-radius: inherit;\r\n  content: \"\";\r\n  inset: 0;\r\n  opacity: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  z-index: -1;\r\n}\r\n.iptvit-home-intro__button--secondary::after {\r\n  background: currentColor;\r\n  bottom: .45rem;\r\n  content: \"\";\r\n  height: 2px;\r\n  inset-inline: 1.2rem;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  transform: scaleX(0);\r\n  transform-origin: left center;\r\n}\r\n.iptvit-home-intro__button svg { fill: none; flex: 0 0 1.2rem; height: 1.2rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 1.2rem; }\r\n.iptvit-home-intro .iptvit-home-intro__button--primary:is(:hover, :focus-visible) { border-color: var(--ihi-action-hover); color: var(--ihi-action-ink); }\r\n.iptvit-home-intro__button--primary:is(:hover, :focus-visible)::before { opacity: 1; }\r\n.iptvit-home-intro .iptvit-home-intro__button--secondary:is(:hover, :focus-visible) { background: var(--ihi-secondary-hover); border-color: var(--ihi-red); color: var(--ihi-red); }\r\n.iptvit-home-intro__button--secondary:is(:hover, :focus-visible)::after { transform: scaleX(1); }\r\n.iptvit-home-intro a:focus-visible { outline: 3px solid var(--ihi-red); outline-offset: 5px; }\r\n.iptvit-home-intro .iptvit-home-intro__trust {\r\n  border-top: 1px solid var(--ihi-line);\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 1rem 1.6rem;\r\n  list-style: none;\r\n  margin: 2rem 0 0;\r\n  padding: 1.1rem 0 0;\r\n}\r\n.iptvit-home-intro__trust li { display: grid; gap: .25rem; margin: 0; }\r\n.iptvit-home-intro__trust strong { color: var(--ihi-ink); font-size: .8125rem; font-weight: 750; line-height: 1.6; }\r\n.iptvit-home-intro__trust small { color: var(--ihi-muted); font-size: .75rem; line-height: 1.6; }\r\n.iptvit-home-intro .iptvit-home-intro__devices { color: var(--ihi-muted); font-size: .75rem; line-height: 1.8; margin: 1rem 0 0; }\r\n@media (max-width: 62rem) {\r\n  .iptvit-home-intro { display: flex; flex-direction: column; }\r\n  .iptvit-home-intro__inner { margin-inline: 0; padding-block: 3rem 1.5rem; }\r\n  .iptvit-home-intro__content { max-width: 42rem; width: 100%; }\r\n  .iptvit-home-intro .iptvit-home-intro__title { font-size: clamp(2.65rem, 6.2vw, 4.1rem); }\r\n  .iptvit-home-intro__scene { aspect-ratio: 2.1; inset: auto; order: 2; position: relative; width: 100%; z-index: 0; }\r\n  .iptvit-home-intro .iptvit-home-intro__image { object-position: 75% 58%; }\r\n  .iptvit-home-intro__scene::after { background: linear-gradient(180deg, var(--ihi-bg), transparent 25%); }\r\n}\r\n@media (max-width: 40rem) {\r\n  .iptvit-home-intro__inner { padding-block: 2.5rem 1rem; }\r\n  .iptvit-home-intro .iptvit-home-intro__title { font-size: clamp(2.15rem, 9.15vw, 3.55rem); }\r\n  .iptvit-home-intro .iptvit-home-intro__eyebrow { font-size: .66rem; gap: .6rem; letter-spacing: .08em; margin-bottom: 1.2rem; }\r\n  .iptvit-home-intro .iptvit-home-intro__text { font-size: 1rem; margin-top: 1.25rem; }\r\n  .iptvit-home-intro__actions { display: grid; grid-template-columns: 1fr; margin-top: 1.5rem; }\r\n  .iptvit-home-intro .iptvit-home-intro__trust { gap: 1rem 1.2rem; margin-top: 1.5rem; }\r\n  .iptvit-home-intro__scene { aspect-ratio: 1.65; }\r\n}\r\n\/* Deux oscillations, puis repos : pas de mouvement permanent ni de JS. *\/\r\n@media (prefers-reduced-motion: no-preference) {\r\n  .iptvit-home-intro__mark { animation: ihi-mark-float 2.4s ease-in-out 2; transform-origin: 35% 50%; }\r\n  .iptvit-home-intro::before { animation: ihi-line-glow 2.4s ease-in-out 2; }\r\n  .iptvit-home-intro .iptvit-home-intro__button { transition: transform 220ms ease, background-color 260ms ease, border-color 260ms ease, color 260ms ease; }\r\n  .iptvit-home-intro__button svg { transition: transform 220ms ease; }\r\n  .iptvit-home-intro__button--primary::before { transition: opacity 260ms ease; }\r\n  .iptvit-home-intro__button--secondary::after { transition: transform 260ms ease; }\r\n  .iptvit-home-intro__button--primary:focus-visible svg { transform: translateX(5px); }\r\n  .iptvit-home-intro .iptvit-home-intro__button:active { transform: translateY(0) scale(.99); }\r\n}\r\n@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {\r\n  .iptvit-home-intro .iptvit-home-intro__button:hover { transform: translateY(-3px); }\r\n  .iptvit-home-intro__button--primary:hover svg { transform: translateX(5px); }\r\n  .iptvit-home-intro__button--secondary:hover svg { transform: translateY(-2px) rotate(-5deg); }\r\n  .iptvit-home-intro .iptvit-home-intro__button:active { transform: translateY(0) scale(.99); }\r\n}\r\n@keyframes ihi-mark-float {\r\n  0%, 100% { transform: translateY(0) rotate(0); }\r\n  50% { transform: translateY(-3px) rotate(-3deg); }\r\n}\r\n@keyframes ihi-line-glow {\r\n  0%, 100% { opacity: 1; }\r\n  50% { opacity: .65; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n  .iptvit-home-intro, .iptvit-home-intro::before, .iptvit-home-intro::after,\r\n  .iptvit-home-intro *, .iptvit-home-intro *::before, .iptvit-home-intro *::after { animation: none !important; transition: none !important; }\r\n}\r\n@media (forced-colors: active) {\r\n  .iptvit-home-intro { background: Canvas; color: CanvasText; }\r\n  .iptvit-home-intro__scene { display: none; }\r\n  .iptvit-home-intro__title span { background: none; color: CanvasText; -webkit-text-fill-color: currentColor; }\r\n  .iptvit-home-intro .iptvit-home-intro__button { background: Canvas; border-color: ButtonText; box-shadow: none; color: LinkText; }\r\n  .iptvit-home-intro .iptvit-home-intro__button::before,\r\n  .iptvit-home-intro .iptvit-home-intro__button::after { display: none; }\r\n  .iptvit-home-intro a:focus-visible { outline-color: Highlight; }\r\n}\r\n<\/style>\r\n\r\n<section class=\"iptvit-home-intro\" id=\"home-iptv-hero\" aria-labelledby=\"home-iptv-title\">\r\n  <figure class=\"iptvit-home-intro__scene\">\r\n    <img fetchpriority=\"high\" class=\"iptvit-home-intro__image skip-lazy\" src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/09\/hero-home-iptv-italia-v2.webp\" width=\"1672\" height=\"941\" alt=\"Smart TV, tablet e smartphone con paesaggi italiani sullo schermo in un salotto luminoso.\"\r\n      loading=\"eager\" fetchpriority=\"high\" decoding=\"async\" data-no-lazy=\"1\">\r\n  <\/figure>\r\n  <div class=\"iptvit-home-intro__inner\">\r\n    <div class=\"iptvit-home-intro__content\">\r\n      <p class=\"iptvit-home-intro__eyebrow\"><span class=\"iptvit-home-intro__mark\" aria-hidden=\"true\"><\/span>Streaming pensato per l\u2019Italia<\/p>\r\n      <h1 class=\"iptvit-home-intro__title\" id=\"home-iptv-title\">IPTV Italia: <span>streaming fluido<\/span> sui tuoi dispositivi<\/h1>\r\n      <p class=\"iptvit-home-intro__text\">Scopri un servizio IPTV Italia semplice da scegliere e configurare, con contenuti in HD, FHD e 4K, compatibilit\u00e0 multi-dispositivo e assistenza disponibile 7 giorni su 7 via WhatsApp o e-mail.<\/p>\r\n      <div class=\"iptvit-home-intro__actions\">\r\n        <a class=\"iptvit-home-intro__button iptvit-home-intro__button--primary\" href=\"https:\/\/iptv-italia.it\/abbonamento-iptv\/\">Scopri gli abbonamenti <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 12h15m-6-6 6 6-6 6\"\/><\/svg><\/a>\r\n        <a class=\"iptvit-home-intro__button iptvit-home-intro__button--secondary\" href=\"\/compatibilita-iptv\/\">Dispositivi supportati <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"13\" rx=\"2\"\/><path d=\"M8 21h8m-4-4v4\"\/><\/svg><\/a>\r\n      <\/div>\r\n      <ul class=\"iptvit-home-intro__trust\" aria-label=\"I principali punti di forza del servizio\">\r\n        <li><strong>Assistenza 7\/7<\/strong><small>WhatsApp ed e-mail<\/small><\/li>\r\n        <li><strong>HD \u00b7 FHD \u00b7 4K<\/strong><small>Qualit\u00e0 adattabile<\/small><\/li>\r\n        <li><strong>Disponibilit\u00e0 99,9%<\/strong><small>Prestazioni verificate<\/small><\/li>\r\n      <\/ul>\r\n      <p class=\"iptvit-home-intro__devices\">Smart TV \u00b7 Mobile \u00b7 Tablet \u00b7 PC<\/p>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c01e355 e-con-full e-flex e-con e-parent\" data-id=\"c01e355\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc14004 elementor-widget elementor-widget-html\" data-id=\"dc14004\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- IPTV Italia \u2014 Vantaggi concreti v5 images sans panneaux\r\nRemplacer enti\u00e8rement l'ancien widget (ne pas ajouter \u00e0 la suite).\r\nTextes conserv\u00e9s ; deux expressions deviennent des liens internes.\r\nImages d\u00e9coratives : URL directement dans src, alt vide car d\u00e9crites par le texte voisin.\r\nDimensions : ratio de r\u00e9serve repris des formats indiqu\u00e9s dans la source, fichiers distants non inspect\u00e9s.\r\n-->\r\n<style>\r\n\/* Widget autonome : aucun script, aucun effet automatique. *\/\r\n.iptvit-benefits {\r\n  --itb-bg:#f2f5f1; --itb-surface:#fff; --itb-ink:#15251f;\r\n  --itb-muted:#4c6159; --itb-line:#cfdad4; --itb-green:#286c4d;\r\n  --itb-red:#a42f42; --itb-soft:#f8e9ec; --itb-on-green:#fff;\r\n  --itb-photo:var(--itb-ink); --itb-mint:var(--itb-green);\r\n  --itb-panel:rgba(255,255,255,.96); --itb-veil:linear-gradient(180deg,rgba(242,245,241,0) 5%,rgba(242,245,241,.78) 45%,rgba(242,245,241,.97) 72%,#f2f5f1); --itb-media-bg:#dfe8e1;\r\n  background:radial-gradient(ellipse at 0% 10%,rgba(67,151,109,.12),transparent 45%),radial-gradient(ellipse at 100% 65%,rgba(186,78,97,.10),transparent 42%),var(--itb-bg); color:var(--itb-ink); font-family:inherit;\r\n  padding:clamp(3rem,6vw,6rem) 0; width:100%; isolation:isolate;\r\n}\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-benefits {\r\n  --itb-bg:#0a131a; --itb-surface:#14232a; --itb-ink:#f6f5ec;\r\n  --itb-muted:#b8c9c2; --itb-line:#3b514a; --itb-green:#9bdcb8;\r\n  --itb-red:#f0adb7; --itb-soft:#30242d; --itb-on-green:#10291e;\r\n  --itb-panel:rgba(15,29,35,.96); --itb-veil:linear-gradient(180deg,rgba(10,19,26,0) 5%,rgba(10,19,26,.72) 45%,rgba(10,19,26,.96) 72%,#0a131a); --itb-media-bg:#152a30;\r\n}\r\n@media(prefers-color-scheme:dark) {\r\n  :root:not([data-iptvit-theme]) .iptvit-benefits {\r\n    --itb-bg:#0a131a; --itb-surface:#14232a; --itb-ink:#f6f5ec;\r\n    --itb-muted:#b8c9c2; --itb-line:#3b514a; --itb-green:#9bdcb8;\r\n    --itb-red:#f0adb7; --itb-soft:#30242d; --itb-on-green:#10291e;\r\n  --itb-panel:rgba(15,29,35,.96); --itb-veil:linear-gradient(180deg,rgba(10,19,26,0) 5%,rgba(10,19,26,.72) 45%,rgba(10,19,26,.96) 72%,#0a131a); --itb-media-bg:#152a30;\r\n  }\r\n}\r\n.iptvit-benefits,.iptvit-benefits *,.iptvit-benefits *::before,.iptvit-benefits *::after {box-sizing:border-box}\r\n.iptvit-benefits__inner {max-width:88rem;margin:auto;padding:0 clamp(1rem,4vw,2.75rem)}\r\n.iptvit-benefits__header {display:grid;grid-template-columns:1.1fr 1fr;align-items:end;gap:clamp(1.5rem,4vw,4rem);margin-bottom:2.5rem}\r\n.iptvit-benefits h2,.iptvit-benefits h3,.iptvit-benefits p {margin:0;color:inherit}\r\n.iptvit-benefits__eyebrow {display:flex;align-items:center;gap:.7rem;color:var(--itb-green)!important;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.1rem!important}\r\n\r\n.iptvit-benefits__header h2 {font-size:clamp(2rem,3.5vw,3.5rem);font-weight:850;line-height:1.07;letter-spacing:-.045em;max-width:21ch;text-wrap:balance}\r\n\r\n.iptvit-benefits .iptvit-benefits__intro {color:var(--itb-muted);font-size:1rem;line-height:1.75;max-width:62ch}\r\n.iptvit-benefits__grid {display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.1rem}\r\n.iptvit-benefits__card {position:relative;isolation:isolate;overflow:hidden;min-width:0;border:1px solid var(--itb-line);border-radius:1.25rem;padding:clamp(1.3rem,2.2vw,2rem);background:var(--itb-surface)}\r\n\r\n.iptvit-benefits__card--photo {color:var(--itb-photo);background:var(--itb-media-bg);border-color:var(--itb-line);display:flex;align-items:flex-end}\r\n.iptvit-benefits__card--catalogo {grid-column:span 7;grid-row:span 2;min-height:34rem}\r\n.iptvit-benefits__card--richieste,.iptvit-benefits__card--replay {grid-column:span 5;min-height:17rem}\r\n.iptvit-benefits__card--parental {grid-column:span 7;min-height:19rem}\r\n.iptvit-benefits__card--adulti {grid-column:span 5;min-height:19rem}\r\n.iptvit-benefits__media {position:absolute;inset:0;z-index:-1;background:var(--itb-media-bg);pointer-events:none}\r\n.iptvit-benefits__media img {display:block;width:100%;height:100%;object-fit:cover;color:transparent;font-size:0}\r\n.iptvit-benefits__media::after {content:\"\";position:absolute;inset:0;background:var(--itb-veil)}\r\n\r\n.iptvit-benefits__card-content {position:relative;width:100%}\r\n.iptvit-benefits__card--photo .iptvit-benefits__card-content {padding:0;background:transparent}\r\n.iptvit-benefits__card h3 {font-size:clamp(1.3rem,1.8vw,1.8rem);line-height:1.15;font-weight:800;letter-spacing:-.025em;text-wrap:balance}\r\n.iptvit-benefits__card--catalogo h3 {font-size:clamp(1.75rem,2.5vw,2.5rem);max-width:20ch}\r\n.iptvit-benefits__card p {font-size:.96rem;line-height:1.7;margin-top:.8rem;max-width:56ch}\r\n.iptvit-benefits__card--photo p {color:var(--itb-muted)}\r\n.iptvit-benefits__tag {display:inline-flex;align-items:center;gap:.5rem;color:var(--itb-mint);font-size:.69rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;margin-bottom:.75rem}\r\n.iptvit-benefits__tag::before {content:\"\";width:5px;height:5px;background:currentColor;border-radius:50%;flex-shrink:0}\r\n.iptvit-benefits__icon,.iptvit-benefits__adult-lock,.iptvit-benefits__guide-icon {display:inline-flex;align-items:center;justify-content:center;width:2.8rem;height:2.8rem;flex-shrink:0;border:1px solid var(--itb-line);border-radius:.8rem;color:var(--itb-mint);background:var(--itb-surface);margin-bottom:1rem}\r\n.iptvit-benefits__adult-lock {color:var(--itb-red);background:var(--itb-soft);border-color:var(--itb-line)}\r\n.iptvit-benefits__icon svg,.iptvit-benefits__adult-lock svg,.iptvit-benefits__guide-icon svg,.iptvit-benefits__contact svg,.iptvit-benefits__replay-mark svg {fill:none;width:1.3rem;height:1.3rem;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}\r\n.iptvit-benefits__workflow {display:flex;gap:.5rem;flex-wrap:wrap;list-style:none;margin:1.2rem 0 0;padding:0}\r\n.iptvit-benefits__workflow li {display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--itb-muted);padding:.4rem .55rem;border:1px solid var(--itb-line);border-radius:.5rem;background:var(--itb-surface)}\r\n.iptvit-benefits__workflow span {display:grid;place-items:center;background:#a3e0bd;color:#10291e;border-radius:50%;width:1.25rem;height:1.25rem;font-size:.7rem;font-weight:800}\r\n.iptvit-benefits__replay-mark {position:absolute;right:1.2rem;top:1rem;color:var(--itb-green);background:var(--itb-panel);padding:.4rem;border-radius:50%}\r\n.iptvit-benefits__card--parental .iptvit-benefits__card-content {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}\r\n.iptvit-benefits__shield {display:grid;place-items:center;width:4rem;height:4.5rem;color:var(--itb-mint)}\r\n.iptvit-benefits__shield svg {width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}\r\n.iptvit-benefits__adult-note {border-top:1px solid var(--itb-line);margin-top:1.15rem;padding-top:.8rem;font-size:.76rem;color:var(--itb-muted)}\r\n.iptvit-benefits__card--guida {grid-column:1\/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2rem;background:var(--itb-surface)}\r\n.iptvit-benefits__guide-copy {display:flex;gap:1rem;align-items:flex-start}\r\n.iptvit-benefits__guide-icon {margin:0;color:var(--itb-green);background:var(--itb-bg);border-color:var(--itb-line)}\r\n.iptvit-benefits__card--guida p {color:var(--itb-muted)}\r\n.iptvit-benefits__guide-actions {display:flex;gap:.65rem;flex-wrap:wrap}\r\n.iptvit-benefits .iptvit-benefits__contact {display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;padding:.75rem 1rem;border:1px solid var(--itb-line);border-radius:.75rem;color:var(--itb-ink);background:var(--itb-surface);font-size:.85rem;font-weight:800;text-decoration:none}\r\n.iptvit-benefits .iptvit-benefits__contact--primary {color:var(--itb-on-green);background:var(--itb-green);border-color:var(--itb-green)}\r\n.iptvit-benefits .iptvit-benefits__text-link {color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}\r\n.iptvit-benefits a:focus-visible {outline:3px solid var(--itb-green);outline-offset:4px}\r\n.iptvit-benefits__card--photo a:focus-visible {outline-color:var(--itb-mint)}\r\n\/* Seulement une souris : aucun mouvement automatique, pas d'effet collant au toucher. *\/\r\n@media(min-width:769px) and (hover:hover) and (pointer:fine) {\r\n  .iptvit-benefits__card {transition:border-color 180ms ease}\r\n  .iptvit-benefits__card:hover {border-color:var(--itb-green)}\r\n\r\n\r\n  .iptvit-benefits .iptvit-benefits__contact {transition:transform 180ms ease,background-color 180ms ease,color 180ms ease,border-color 180ms ease}\r\n  .iptvit-benefits .iptvit-benefits__contact:hover {transform:translateY(-2px);background:var(--itb-soft);border-color:var(--itb-red);color:var(--itb-red)}\r\n  .iptvit-benefits .iptvit-benefits__contact--primary:hover {background:var(--itb-red);color:var(--itb-on-green)}\r\n  .iptvit-benefits__text-link:hover {text-decoration-thickness:2px}\r\n}\r\n@media(max-width:1100px) {\r\n  .iptvit-benefits__header {grid-template-columns:1fr;gap:1.4rem}\r\n  .iptvit-benefits__header h2 {max-width:24ch}\r\n  .iptvit-benefits__grid {grid-template-columns:repeat(2,minmax(0,1fr))}\r\n  .iptvit-benefits__card--catalogo {grid-column:1\/-1;grid-row:auto;min-height:25rem}\r\n  .iptvit-benefits__card--richieste,.iptvit-benefits__card--replay {grid-column:span 1}\r\n  .iptvit-benefits__card--parental,.iptvit-benefits__card--adulti {grid-column:span 1}\r\n  .iptvit-benefits__card--parental .iptvit-benefits__card-content {grid-template-columns:1fr}\r\n  .iptvit-benefits__shield {width:2.6rem;height:3rem}\r\n  .iptvit-benefits__card--guida {grid-template-columns:1fr;gap:1.3rem}\r\n}\r\n@media(max-width:768px) {\r\n  .iptvit-benefits {padding:3rem 0}\r\n  .iptvit-benefits__header {margin-bottom:1.5rem}\r\n  .iptvit-benefits__grid {grid-template-columns:minmax(0,1fr);gap:.9rem}\r\n  .iptvit-benefits__card {grid-column:1;grid-row:auto;min-height:0;padding:1.4rem;border-radius:1rem}\r\n  .iptvit-benefits__card--photo {padding:1.4rem}\r\n  .iptvit-benefits__card--catalogo {min-height:22rem}\r\n  .iptvit-benefits__card--replay {min-height:18rem;padding-top:3rem}\r\n  .iptvit-benefits__card--parental .iptvit-benefits__card-content {grid-template-columns:minmax(0,1fr) auto}\r\n  .iptvit-benefits__guide-copy {display:block}\r\n  .iptvit-benefits__guide-icon {margin-bottom:1rem}\r\n  .iptvit-benefits__guide-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}\r\n}\r\n@media(prefers-reduced-motion:reduce) {\r\n  .iptvit-benefits *,.iptvit-benefits *::before,.iptvit-benefits *::after {animation:none!important;transition:none!important;transform:none!important}\r\n}\r\n@media(forced-colors:active) {\r\n  .iptvit-benefits__media {display:none}\r\n  .iptvit-benefits__card,.iptvit-benefits .iptvit-benefits__contact {border:1px solid CanvasText}\r\n  .iptvit-benefits__card,.iptvit-benefits__card p {background:Canvas;color:CanvasText}\r\n  .iptvit-benefits a:focus-visible {outline-color:Highlight}\r\n}\r\n<\/style>\r\n<section\r\n  id=\"vantaggi-iptv-italia\"\r\n  class=\"iptvit-benefits\"\r\n  aria-labelledby=\"iptvit-benefits-title\"\r\n>\r\n  <div class=\"iptvit-benefits__inner\">\r\n    <header class=\"iptvit-benefits__header\">\r\n      <div>\r\n        <p class=\"iptvit-benefits__eyebrow\">Vantaggi concreti<\/p>\r\n        <h2 id=\"iptvit-benefits-title\">Un servizio IPTV affidabile, costruito intorno a te<\/h2>\r\n\r\n      <\/div>\r\n\r\n      <p class=\"iptvit-benefits__intro\">\r\n        Un servizio IPTV in Italia utile ogni giorno non si limita a un lungo elenco di contenuti: deve restare semplice da usare, proporre un catalogo organizzato e offrire funzioni adatte alla casa. Dalla scelta dei contenuti alla configurazione quotidiana, ogni funzione \u00e8 pensata per offrirti pi\u00f9 controllo su tutti i tuoi schermi.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"iptvit-benefits__grid\">\r\n      <article\r\n        class=\"iptvit-benefits__card iptvit-benefits__card--photo iptvit-benefits__card--catalogo\"\r\n        >\r\n        <div class=\"iptvit-benefits__media\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Catalogue-premium-iptv-italia-e1788034430333.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1000\"><\/div>\r\n        <div class=\"iptvit-benefits__card-content\">\r\n          <span class=\"iptvit-benefits__tag\">Catalogo in evoluzione<\/span>\r\n          <h3>Catalogo aggiornato regolarmente<\/h3>\r\n          <p>\r\n            Nuovi film, stagioni e contenuti vengono integrati con continuit\u00e0, cos\u00ec trovi sempre qualcosa di attuale da guardare senza perdere tempo tra raccolte poco curate.\r\n          <\/p>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <article\r\n        class=\"iptvit-benefits__card iptvit-benefits__card--photo iptvit-benefits__card--richieste\"\r\n        >\r\n        <div class=\"iptvit-benefits__media\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/richieste-contenuti-iptv-italia-e1788036706799.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"900\"><\/div>\r\n        <div class=\"iptvit-benefits__card-content\">\r\n          <span class=\"iptvit-benefits__icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\">\r\n              <path d=\"M12 3v12M7 10l5 5 5-5\"><\/path>\r\n              <path d=\"M5 19h14\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n          <h3>Contenuti aggiunti su richiesta<\/h3>\r\n          <p>\r\n            Segnalaci il titolo che desideri: <a class=\"iptvit-benefits__text-link\" href=\"https:\/\/iptv-italia.it\/contatti\/\">il nostro team<\/a> verifica la disponibilit\u00e0 e gestisce l\u2019inserimento nel catalogo.\r\n          <\/p>\r\n\r\n          <ol class=\"iptvit-benefits__workflow\" aria-label=\"Fasi di una richiesta di contenuto\">\r\n            <li><span>1<\/span>Invia<\/li>\r\n            <li><span>2<\/span>Verifica<\/li>\r\n            <li><span>3<\/span>Aggiunta<\/li>\r\n          <\/ol>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <article\r\n        class=\"iptvit-benefits__card iptvit-benefits__card--photo iptvit-benefits__card--replay\"\r\n        >\r\n        <div class=\"iptvit-benefits__media\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Replay-e1788034445835.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"900\"><\/div>\r\n        <span class=\"iptvit-benefits__replay-mark\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\">\r\n            <path d=\"M5 8V4m0 0H1m4 0 3.1 3.1A8 8 0 1 1 4 14\"><\/path>\r\n            <path d=\"m10 9 5 3-5 3V9Z\"><\/path>\r\n          <\/svg>\r\n        <\/span>\r\n        <div class=\"iptvit-benefits__card-content\">\r\n          <span class=\"iptvit-benefits__tag\">Guarda quando vuoi<\/span>\r\n          <h3>Replay e catch-up<\/h3>\r\n          <p>\r\n            Recupera i programmi gi\u00e0 trasmessi e organizza la visione secondo i tuoi tempi, direttamente dal dispositivo che preferisci.\r\n          <\/p>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <article\r\n        class=\"iptvit-benefits__card iptvit-benefits__card--photo iptvit-benefits__card--parental\"\r\n        >\r\n        <div class=\"iptvit-benefits__media\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/control-parental-e1788034455149.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"900\"><\/div>\r\n        <div class=\"iptvit-benefits__card-content\">\r\n          <div>\r\n            <span class=\"iptvit-benefits__tag\">Visione responsabile<\/span>\r\n            <h3>Controllo parentale<\/h3>\r\n            <p>\r\n              Gestisci gli accessi e proteggi la visione dei pi\u00f9 piccoli con strumenti semplici, pensati per mantenere ogni profilo adatto alla tua famiglia.\r\n            <\/p>\r\n          <\/div>\r\n\r\n          <span class=\"iptvit-benefits__shield\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 48 48\">\r\n              <path d=\"M24 5 39 11v10c0 9-6 16-15 20-9-4-15-11-15-20V11l15-6Z\"><\/path>\r\n              <path d=\"m17 24 5 5 10-11\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <article\r\n        class=\"iptvit-benefits__card iptvit-benefits__card--photo iptvit-benefits__card--adulti\"\r\n        >\r\n        <div class=\"iptvit-benefits__media\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Adulti-e1788036336214.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"900\"><\/div>\r\n        <div class=\"iptvit-benefits__card-content\">\r\n          <span class=\"iptvit-benefits__adult-lock\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\">\r\n              <rect x=\"4\" y=\"10\" width=\"16\" height=\"11\" rx=\"2.5\"><\/rect>\r\n              <path d=\"M8 10V7a4 4 0 0 1 8 0v3M12 14v3\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n          <h3>Area adulti protetta<\/h3>\r\n          <p>\r\n            I contenuti sensibili restano separati e protetti da un accesso dedicato, per un\u2019esperienza adatta a ogni componente della famiglia.\r\n          <\/p>\r\n          <div class=\"iptvit-benefits__adult-note\">Accesso separato e controllato<\/div>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <article class=\"iptvit-benefits__card iptvit-benefits__card--guida\">\r\n        <div class=\"iptvit-benefits__guide-copy\">\r\n          <span class=\"iptvit-benefits__guide-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\">\r\n              <path d=\"M4 13v-2a8 8 0 0 1 16 0v2\"><\/path>\r\n              <path d=\"M4 12H2v5h4v-5H4Zm16 0h2v5h-4v-5h2ZM18 19c-1 1-2.5 1.5-4.5 1.5\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n          <div>\r\n            <h3>Configurazione guidata<\/h3>\r\n            <p>\r\n              Hai bisogno di aiuto? Ti accompagniamo nella <a class=\"iptvit-benefits__text-link\" href=\"https:\/\/iptv-italia.it\/compatibilita-iptv\/#configurazione-iptv\">configurazione<\/a> e nell\u2019utilizzo del servizio tramite WhatsApp o e-mail.\r\n            <\/p>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"iptvit-benefits__guide-actions\">\r\n          <a class=\"iptvit-benefits__contact iptvit-benefits__contact--primary\" href=\"https:\/\/wa.me\/447916697381\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M20 11.6a8 8 0 0 1-11.8 7L4 20l1.4-4A8 8 0 1 1 20 11.6Z\"><\/path>\r\n              <path d=\"M8.7 8.2c.5 2.7 2.2 4.4 4.9 5\"><\/path>\r\n            <\/svg>\r\n            WhatsApp\r\n          <\/a>\r\n          <a class=\"iptvit-benefits__contact\" href=\"mailto:contatto@iptv-italia.it\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"><\/rect>\r\n              <path d=\"m4 7 8 6 8-6\"><\/path>\r\n            <\/svg>\r\n            E-mail\r\n          <\/a>\r\n        <\/div>\r\n      <\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-da90595 e-con-full e-flex e-con e-parent\" data-id=\"da90595\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cbd825a elementor-widget elementor-widget-html\" data-id=\"cbd825a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- v5 mobile l\u00e9ger : remplacer tout le widget. PC conserv\u00e9 ; mobile initial = six cartes manuelles, images lazy natives, sans RAF. -->\r\n<!--\r\n  IPTV Italia \u2014 Elementor \/ Widget HTML \u2014 SPORT IN DIRETTA \u2014 v4\r\n\r\n  Les 7 URL restent sur la balise <section> :\r\n  data-image-serie-a \/ boxe \/ ufc \/ tennis \/ motogp \/ basket \/ formula1\r\n\r\n  NOUVEAU DANS LA v4\r\n  - Le carrousel d\u00e9file en continu, comme un tapis roulant, au lieu de sauter\r\n    de carte en carte. Les cartes sont dupliqu\u00e9es en JavaScript pour que la\r\n    boucle soit invisible.\r\n  - Le compteur \u00ab 01 \/ 06 \u00bb et la barre de progression disparaissent : ils\r\n    n'ont plus de sens dans une boucle sans fin. Un bouton pause les remplace.\r\n  - Le d\u00e9filement s'arr\u00eate au survol, au clavier, pendant un glissement, hors\r\n    \u00e9cran et onglet inactif.\r\n\r\n  DEUX R\u00c9GLAGES, EN HAUT DU SCRIPT\r\n  MARQUEE_SPEED  vitesse en pixels par seconde (30 par d\u00e9faut).\r\n                 Mettre une valeur n\u00e9gative inverse le sens de d\u00e9filement.\r\n  RESUME_DELAY   d\u00e9lai avant reprise apr\u00e8s une interaction (2000 ms).\r\n-->\r\n\r\n<style>\r\n.iptvit-sport {\r\n  \/* \u2014\u2014\u2014\u2014\u2014 Palette : inchang\u00e9e \u2014\u2014\u2014\u2014\u2014 *\/\r\n  --its-bg: #f1f5f1;\r\n  --its-surface: rgba(255, 255, 255, 0.82);\r\n  --its-surface-strong: #ffffff;\r\n  --its-ink: #101927;\r\n  --its-muted: #5a676d;\r\n  --its-line: rgba(16, 25, 39, 0.12);\r\n  --its-green: #1f7657;\r\n  --its-green-deep: #145b43;\r\n  --its-mint: #79dbb2;\r\n  --its-edge: #b9f0d8;\r\n  --its-red: #b93445;\r\n  --its-cream: #f8f4e9;\r\n  --its-night: #07111a;\r\n\r\n  \/* \u2014\u2014\u2014\u2014\u2014 Tokens ajout\u00e9s \u2014\u2014\u2014\u2014\u2014 *\/\r\n  --its-body: #414e56;\r\n  --its-on-photo: rgba(248, 244, 233, 0.9);\r\n  --its-on-green: #ffffff;\r\n  --its-line-strong: rgba(16, 25, 39, 0.2);\r\n  --its-radius: clamp(1.45rem, 2.4vw, 2.25rem);\r\n  --its-ease: cubic-bezier(0.22, 1, 0.36, 1);\r\n  --its-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);\r\n  --its-shadow: 0 1px 2px rgba(7, 17, 26, 0.05), 0 1.4rem 4rem -1.2rem rgba(7, 17, 26, 0.22);\r\n  --its-shadow-hi: 0 2px 4px rgba(7, 17, 26, 0.07), 0 2.4rem 5rem -1.4rem rgba(7, 17, 26, 0.36);\r\n  --its-gap: clamp(0.6rem, 0.9vw, 0.85rem);\r\n  --its-visible: 3;\r\n\r\n  background:\r\n    radial-gradient(circle at 7% 13%, rgba(31, 118, 87, 0.14), transparent 28rem),\r\n    radial-gradient(circle at 95% 84%, rgba(185, 52, 69, 0.11), transparent 30rem),\r\n    var(--its-bg);\r\n  color: var(--its-ink);\r\n  font-family: inherit;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  padding: clamp(4.8rem, 8vw, 8rem) 0;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-sport,\r\n:root[data-theme=\"dark\"] .iptvit-sport {\r\n  --its-bg: #07111a;\r\n  --its-surface: rgba(14, 28, 38, 0.84);\r\n  --its-surface-strong: #0d1a24;\r\n  --its-ink: #f8f4e9;\r\n  --its-muted: #aebbc0;\r\n  --its-body: #c6d1d5;\r\n  --its-line: rgba(235, 244, 239, 0.13);\r\n  --its-line-strong: rgba(235, 244, 239, 0.24);\r\n  --its-green: #75d8ae;\r\n  --its-green-deep: #75d8ae;\r\n  --its-mint: #8ae3bc;\r\n  --its-edge: #ffffff;\r\n  --its-red: #e47480;\r\n  --its-on-green: #07111a;\r\n  --its-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 1.4rem 4rem -1.2rem rgba(0, 0, 0, 0.62);\r\n  --its-shadow-hi: 0 2px 4px rgba(0, 0, 0, 0.4), 0 2.4rem 5rem -1.4rem rgba(0, 0, 0, 0.75);\r\n}\r\n\r\n@media (prefers-color-scheme: dark) {\r\n  :root:not([data-iptvit-theme]):not([data-theme]) .iptvit-sport {\r\n    --its-bg: #07111a;\r\n    --its-surface: rgba(14, 28, 38, 0.84);\r\n    --its-surface-strong: #0d1a24;\r\n    --its-ink: #f8f4e9;\r\n    --its-muted: #aebbc0;\r\n    --its-body: #c6d1d5;\r\n    --its-line: rgba(235, 244, 239, 0.13);\r\n    --its-line-strong: rgba(235, 244, 239, 0.24);\r\n    --its-green: #75d8ae;\r\n    --its-green-deep: #75d8ae;\r\n    --its-mint: #8ae3bc;\r\n    --its-edge: #ffffff;\r\n    --its-red: #e47480;\r\n    --its-on-green: #07111a;\r\n    --its-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 1.4rem 4rem -1.2rem rgba(0, 0, 0, 0.62);\r\n    --its-shadow-hi: 0 2px 4px rgba(0, 0, 0, 0.4), 0 2.4rem 5rem -1.4rem rgba(0, 0, 0, 0.75);\r\n  }\r\n}\r\n\r\n.iptvit-sport,\r\n.iptvit-sport *,\r\n.iptvit-sport *::before,\r\n.iptvit-sport *::after {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.iptvit-sport::before {\r\n  background-image:\r\n    linear-gradient(var(--its-line) 1px, transparent 1px),\r\n    linear-gradient(90deg, var(--its-line) 1px, transparent 1px);\r\n  background-size: 5.2rem 5.2rem;\r\n  content: \"\";\r\n  inset: 0;\r\n  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.32), transparent 58%);\r\n  opacity: 0.27;\r\n  pointer-events: none;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-sport::after {\r\n  border: 1px solid var(--its-line);\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  height: min(46rem, 62vw);\r\n  pointer-events: none;\r\n  position: absolute;\r\n  right: min(-18rem, -14vw);\r\n  top: -19rem;\r\n  width: min(46rem, 62vw);\r\n}\r\n\r\n.iptvit-sport h2,\r\n.iptvit-sport h3,\r\n.iptvit-sport h4,\r\n.iptvit-sport p {\r\n  margin: 0;\r\n}\r\n\r\n\/* IMPORTANT \u2014 ne pas retirer.\r\n   Les th\u00e8mes WordPress appliquent une couleur aux titres (h2\/h3\/h4) qui suit\r\n   leur propre mode clair\/sombre. Sans cette ligne, le titre pos\u00e9 sur une\r\n   photo prend cette couleur : il devient sombre en mode clair, donc\r\n   illisible. \u00ab inherit \u00bb le force \u00e0 suivre la couleur de sa carte. *\/\r\n.iptvit-sport h2,\r\n.iptvit-sport h3,\r\n.iptvit-sport h4,\r\n.iptvit-sport strong {\r\n  color: inherit;\r\n}\r\n\r\n.iptvit-sport button,\r\n.iptvit-sport a {\r\n  font: inherit;\r\n}\r\n\r\n.iptvit-sport__inner {\r\n  margin: 0 auto;\r\n  max-width: 92rem;\r\n  padding: 0 clamp(1.1rem, 3.2vw, 3rem);\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 En-t\u00eate \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-sport__header {\r\n  align-items: end;\r\n  display: grid;\r\n  gap: clamp(1.5rem, 5vw, 5.5rem);\r\n  grid-template-columns: minmax(0, 1.14fr) minmax(18rem, 0.72fr);\r\n  margin-bottom: clamp(2rem, 4vw, 3.5rem);\r\n}\r\n\r\n.iptvit-sport__eyebrow {\r\n  align-items: center;\r\n  color: var(--its-green-deep);\r\n  display: inline-flex;\r\n  font-size: 0.8rem;\r\n  font-weight: 900;\r\n  gap: 0.7rem;\r\n  letter-spacing: 0.15em;\r\n  margin-bottom: 1.05rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-sport__eyebrow::before {\r\n  background: linear-gradient(180deg, var(--its-green), var(--its-red));\r\n  border-radius: 999px;\r\n  content: \"\";\r\n  height: 2.15rem;\r\n  transform-origin: top center;\r\n  width: 0.27rem;\r\n}\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__header.is-visible .iptvit-sport__eyebrow::before {\r\n  animation: itsBar 620ms 140ms var(--its-ease) backwards;\r\n}\r\n\r\n@keyframes itsBar {\r\n  from { transform: scaleY(0); }\r\n  to   { transform: scaleY(1); }\r\n}\r\n\r\n.iptvit-sport__header h2 {\r\n  color: var(--its-ink);\r\n  font-size: clamp(2.55rem, 5.35vw, 5.25rem);\r\n  font-weight: 900;\r\n  letter-spacing: -0.06em;\r\n  line-height: 0.94;\r\n  \/* Assez large pour tenir sur deux lignes : \u00e0 14ch le titre se cassait en\r\n     trois alors que la colonne avait encore de la place. *\/\r\n  max-width: 22ch;\r\n  text-wrap: balance;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014 Remplissage du titre (variante B) \u2014\u2014\u2014\u2014\u2014\r\n   Le mot part dans l'encre du titre puis se colore de gauche \u00e0 droite.\r\n   Le liser\u00e9 clair est le DERNIER arr\u00eat du d\u00e9grad\u00e9 de remplissage : comme ce\r\n   d\u00e9grad\u00e9 s'\u00e9tire avec sa couche, le liser\u00e9 reste coll\u00e9 au front PAR\r\n   CONSTRUCTION \u2014 il n'y a pas deux animations \u00e0 synchroniser, donc aucune\r\n   d\u00e9rive possible. Le remplissage d\u00e9passe \u00e0 108 % pour que le liser\u00e9 sorte\r\n   du mot au lieu d'y rester coinc\u00e9.\r\n   L'\u00e9tat par d\u00e9faut est le mot D\u00c9J\u00c0 color\u00e9 : si l'animation ne tourne pas,\r\n   le titre reste correct. *\/\r\n.iptvit-sport__header h2 span {\r\n  background-image:\r\n    linear-gradient(96deg, var(--its-green-deep) 0%, var(--its-red) 88%, var(--its-edge) 98%, var(--its-edge) 100%),\r\n    linear-gradient(var(--its-ink), var(--its-ink));\r\n  background-repeat: no-repeat;\r\n  background-size: 108% 100%, 100% 100%;\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  color: transparent;\r\n  -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__header h2 span { background-size: 0 100%, 100% 100%; }\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__header.is-visible h2 span {\r\n  animation: itsTitleFill 1.15s .12s cubic-bezier(.16,.84,.28,1) forwards;\r\n}\r\n\r\n@keyframes itsTitleFill { to { background-size: 108% 100%, 100% 100%; } }\r\n\r\n.iptvit-sport__intro {\r\n  border-left: 2px solid var(--its-line-strong);\r\n  color: var(--its-body);\r\n  font-size: clamp(1.02rem, 1.25vw, 1.14rem);\r\n  font-weight: 500;\r\n  line-height: 1.68;\r\n  padding: 0.3rem 0 0.3rem clamp(1.1rem, 2.4vw, 2rem);\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Sc\u00e8ne \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-sport__stage {\r\n  align-items: stretch;\r\n  display: grid;\r\n  gap: clamp(1rem, 1.6vw, 1.35rem);\r\n  \/* Le visuel Serie A perd du terrain au profit du rail : c'est ce qui\r\n     lib\u00e8re la place pour une 3e carte portrait. *\/\r\n  grid-template-columns: minmax(0, 1.04fr) minmax(21rem, 0.96fr);\r\n}\r\n\r\n.iptvit-sport__feature,\r\n.iptvit-sport__rail {\r\n  border: 1px solid var(--its-line);\r\n  border-radius: var(--its-radius);\r\n  box-shadow: var(--its-shadow);\r\n  min-width: 0;\r\n  position: relative;\r\n}\r\n\r\n.iptvit-sport__feature {\r\n  background:\r\n    radial-gradient(circle at 25% 20%, rgba(121, 219, 178, 0.2), transparent 30%),\r\n    linear-gradient(145deg, #173040, var(--its-night) 72%);\r\n  border-color: rgba(255, 255, 255, 0.14);\r\n  color: var(--its-cream);\r\n  isolation: isolate;\r\n  min-height: clamp(22rem, 30vw, 26rem);\r\n  overflow: hidden;\r\n}\r\n\r\n.iptvit-sport__feature::before,\r\n.iptvit-sport__rail::before {\r\n  background: linear-gradient(90deg, var(--its-green), rgba(255, 255, 255, 0.12) 52%, var(--its-red));\r\n  content: \"\";\r\n  height: 0.15rem;\r\n  inset: 0 0 auto;\r\n  position: absolute;\r\n  transform: scaleX(0);\r\n  transform-origin: left center;\r\n  transition: transform 900ms var(--its-ease);\r\n  z-index: 6;\r\n}\r\n\r\n.iptvit-sport__feature.is-visible::before,\r\n.iptvit-sport__rail.is-visible::before,\r\n.iptvit-sport:not(.is-enhanced) .iptvit-sport__feature::before,\r\n.iptvit-sport:not(.is-enhanced) .iptvit-sport__rail::before {\r\n  transform: scaleX(1);\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 M\u00e9dia \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-sport__media {\r\n  inset: 0;\r\n  overflow: hidden;\r\n  position: absolute;\r\n  z-index: -2;\r\n}\r\n\r\n.iptvit-sport__img {\r\n  display: block;\r\n  height: 100%;\r\n  object-fit: cover;\r\n  opacity: 0;\r\n  \/* R\u00e9glage volontairement l\u00e9ger : un \u00e9talonnage trop marqu\u00e9 ternit les\r\n     visuels. On se contente d'un souffle de contraste. *\/\r\n  filter: saturate(0.96) contrast(1.04);\r\n  \/* --its-py : parallaxe au d\u00e9filement \u00b7 --its-px\/--its-ty : d\u00e9calage 3D\r\n     au survol \u00b7 --its-sc : sur-cadrage, qui laisse la marge n\u00e9cessaire\r\n     pour que ces d\u00e9calages ne d\u00e9couvrent jamais un bord. *\/\r\n  transform:\r\n    translate3d(var(--its-px, 0px), calc(var(--its-py, 0px) + var(--its-ty, 0px)), 0)\r\n    scale(var(--its-sc, 1.06));\r\n  transition:\r\n    opacity 620ms var(--its-ease-soft),\r\n    transform 620ms var(--its-ease-soft);\r\n  -webkit-user-drag: none;\r\n  user-select: none;\r\n  width: 100%;\r\n}\r\n\r\n.is-loaded .iptvit-sport__img { opacity: 1; }\r\n\r\n\/* Teinte d'harmonisation, tr\u00e8s l\u00e9g\u00e8re *\/\r\n.iptvit-sport__media::before {\r\n  background: linear-gradient(155deg, rgba(7, 17, 26, 0.8), rgba(20, 91, 67, 0.55));\r\n  content: \"\";\r\n  inset: 0;\r\n  mix-blend-mode: soft-light;\r\n  opacity: 0.34;\r\n  position: absolute;\r\n}\r\n\r\n\/* Voile de lisibilit\u00e9 + grain fin.\r\n   Le d\u00e9grad\u00e9 s'assombrit franchement d\u00e8s la moiti\u00e9 basse : c'est l\u00e0 que se\r\n   pose le texte, et une photo claire \u00e0 cet endroit le rendait illisible. *\/\r\n.iptvit-sport__media::after {\r\n  background-image:\r\n    linear-gradient(\r\n      180deg,\r\n      rgba(2, 8, 13, 0) 0%,\r\n      rgba(2, 8, 13, 0.14) 32%,\r\n      rgba(2, 8, 13, 0.58) 60%,\r\n      rgba(2, 8, 13, 0.88) 86%,\r\n      rgba(2, 8, 13, 0.94) 100%\r\n    ),\r\n    url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='150' height='150'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='150' height='150' filter='url(%23g)' opacity='0.34'\/%3E%3C\/svg%3E\");\r\n  background-size: auto, 150px 150px;\r\n  content: \"\";\r\n  inset: 0;\r\n  position: absolute;\r\n  transition: opacity 320ms var(--its-ease-soft);\r\n}\r\n\r\n\/* Le visuel large porte plus de texte, et plus haut : le voile doit donc\r\n   monter davantage, et un voile lat\u00e9ral prot\u00e8ge la colonne de gauche. *\/\r\n.iptvit-sport__feature .iptvit-sport__media::after {\r\n  background-image:\r\n    \/* Le titre d\u00e9marre \u00e0 39 % de la hauteur : le voile doit d\u00e9j\u00e0 y \u00eatre\r\n       dense, sinon un maillot clair passe derri\u00e8re les lettres. *\/\r\n    linear-gradient(\r\n      180deg,\r\n      rgba(2, 8, 13, 0) 0%,\r\n      rgba(2, 8, 13, 0.22) 20%,\r\n      rgba(2, 8, 13, 0.66) 36%,\r\n      rgba(2, 8, 13, 0.85) 55%,\r\n      rgba(2, 8, 13, 0.94) 78%,\r\n      rgba(2, 8, 13, 0.96) 100%\r\n    ),\r\n    linear-gradient(\r\n      90deg,\r\n      rgba(2, 8, 13, 0.6) 0%,\r\n      rgba(2, 8, 13, 0.22) 58%,\r\n      transparent 84%\r\n    ),\r\n    url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='150' height='150'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='150' height='150' filter='url(%23g)' opacity='0.34'\/%3E%3C\/svg%3E\");\r\n  background-size: auto, auto, 150px 150px;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Contenu du visuel principal \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-sport__live {\r\n  align-items: center;\r\n  backdrop-filter: blur(0.8rem);\r\n  background: rgba(7, 17, 26, 0.58);\r\n  border: 1px solid rgba(255, 255, 255, 0.2);\r\n  border-radius: 999px;\r\n  color: #ffffff;\r\n  display: inline-flex;\r\n  font-size: 0.72rem;\r\n  font-weight: 900;\r\n  gap: 0.5rem;\r\n  left: clamp(1.3rem, 2.6vw, 2rem);\r\n  letter-spacing: 0.12em;\r\n  padding: 0.6rem 0.85rem;\r\n  position: absolute;\r\n  text-transform: uppercase;\r\n  top: clamp(1.3rem, 2.6vw, 2rem);\r\n  z-index: 3;\r\n}\r\n\r\n.iptvit-sport__live::before {\r\n  background: #6de3ad;\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  flex: 0 0 auto;\r\n  height: 0.48rem;\r\n  width: 0.48rem;\r\n}\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__feature.is-visible .iptvit-sport__live::before {\r\n  animation: itsBeat 2.6s 900ms var(--its-ease-soft) infinite;\r\n}\r\n\r\n@keyframes itsBeat {\r\n  0%, 62%, 100% { box-shadow: 0 0 0 0 rgba(109, 227, 173, 0); }\r\n  70%           { box-shadow: 0 0 0 0 rgba(109, 227, 173, 0.55); }\r\n  86%           { box-shadow: 0 0 0 0.5rem rgba(109, 227, 173, 0); }\r\n}\r\n\r\n.iptvit-sport__feature-content {\r\n  bottom: 0;\r\n  left: 0;\r\n  padding: clamp(1.4rem, 2.8vw, 2.3rem);\r\n  position: absolute;\r\n  right: 0;\r\n  \/* Deux ombres : une courte qui d\u00e9tache la lettre, une large qui creuse\r\n     le fond. C'est ce doublon qui sauve le texte sur une photo claire. *\/\r\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55), 0 2px 16px rgba(0, 0, 0, 0.6);\r\n  transition: transform 520ms var(--its-ease);\r\n  z-index: 2;\r\n}\r\n\r\n.iptvit-sport__feature-kicker {\r\n  color: var(--its-mint);\r\n  font-size: 0.76rem;\r\n  font-weight: 900;\r\n  letter-spacing: 0.14em;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-sport__feature h3 {\r\n  \/* Explicite en plus de la r\u00e8gle \u00ab inherit \u00bb ci-dessus : ce titre est pos\u00e9\r\n     sur une photo, il doit rester clair quel que soit le th\u00e8me du site. *\/\r\n  color: var(--its-cream);\r\n  font-size: clamp(1.9rem, 3.1vw, 2.9rem);\r\n  font-weight: 900;\r\n  letter-spacing: -0.05em;\r\n  line-height: 1;\r\n  margin-top: 0.6rem;\r\n  max-width: 19ch;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-sport__feature-copy {\r\n  color: var(--its-on-photo);\r\n  font-size: clamp(0.96rem, 1.1vw, 1.05rem);\r\n  font-weight: 500;\r\n  line-height: 1.58;\r\n  margin-top: 0.8rem;\r\n  max-width: 44ch;\r\n}\r\n\r\n.iptvit-sport__proofs {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 0.5rem;\r\n  list-style: none;\r\n  margin: 1.15rem 0 0;\r\n  padding: 0;\r\n}\r\n\r\n.iptvit-sport__proofs li {\r\n  backdrop-filter: blur(0.75rem);\r\n  background: rgba(7, 17, 26, 0.54);\r\n  border: 1px solid rgba(255, 255, 255, 0.18);\r\n  border-radius: 999px;\r\n  color: rgba(255, 255, 255, 0.92);\r\n  font-size: 0.76rem;\r\n  font-weight: 800;\r\n  padding: 0.55rem 0.82rem;\r\n  transition: transform 380ms var(--its-ease), border-color 260ms ease;\r\n}\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__feature.is-visible .iptvit-sport__proofs li {\r\n  animation: itsProof 560ms var(--its-pd) var(--its-ease) backwards;\r\n}\r\n\r\n.iptvit-sport__proofs li:nth-child(1) { --its-pd: 520ms; }\r\n.iptvit-sport__proofs li:nth-child(2) { --its-pd: 620ms; }\r\n.iptvit-sport__proofs li:nth-child(3) { --its-pd: 720ms; }\r\n\r\n@keyframes itsProof {\r\n  from { opacity: 0; transform: translateY(0.6rem); }\r\n  to   { opacity: 1; transform: translateY(0); }\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Rail \/ carrousel \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-sport__rail {\r\n  background: var(--its-surface);\r\n  display: flex;\r\n  flex-direction: column;\r\n  padding: clamp(1.05rem, 1.9vw, 1.5rem);\r\n}\r\n\r\n.iptvit-sport__rail-head {\r\n  align-items: flex-start;\r\n  display: flex;\r\n  gap: 1rem;\r\n  justify-content: space-between;\r\n  margin-bottom: 0.9rem;\r\n}\r\n\r\n.iptvit-sport__rail-label {\r\n  color: var(--its-green-deep);\r\n  font-size: 0.74rem;\r\n  font-weight: 900;\r\n  letter-spacing: 0.14em;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-sport__rail h3 {\r\n  color: var(--its-ink);\r\n  font-size: clamp(1.3rem, 1.85vw, 1.7rem);\r\n  font-weight: 880;\r\n  letter-spacing: -0.038em;\r\n  line-height: 1.08;\r\n  margin-top: 0.34rem;\r\n  \/* Assez large pour tenir sur deux lignes \u00e0 c\u00f4t\u00e9 des trois boutons *\/\r\n  max-width: 22ch;\r\n}\r\n\r\n.iptvit-sport__controls {\r\n  align-items: center;\r\n  display: flex;\r\n  flex: 0 0 auto;\r\n  gap: 0.45rem;\r\n  opacity: 0;\r\n  visibility: hidden;\r\n}\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__controls {\r\n  opacity: 1;\r\n  transition: opacity 260ms ease;\r\n  visibility: visible;\r\n}\r\n\r\n.iptvit-sport__arrow {\r\n  align-items: center;\r\n  background: var(--its-surface-strong);\r\n  border: 1px solid var(--its-line-strong);\r\n  border-radius: 50%;\r\n  color: var(--its-ink);\r\n  cursor: pointer;\r\n  display: inline-flex;\r\n  height: 2.75rem;\r\n  justify-content: center;\r\n  padding: 0;\r\n  transition:\r\n    background-color 200ms var(--its-ease-soft),\r\n    border-color 200ms var(--its-ease-soft),\r\n    color 200ms var(--its-ease-soft),\r\n    transform 260ms var(--its-ease);\r\n  width: 2.75rem;\r\n}\r\n\r\n.iptvit-sport__arrow:hover,\r\n.iptvit-sport__arrow:focus-visible {\r\n  background: var(--its-green-deep);\r\n  border-color: var(--its-green-deep);\r\n  color: var(--its-on-green);\r\n  transform: translateY(-0.15rem);\r\n}\r\n\r\n.iptvit-sport__arrow:active { transform: translateY(0) scale(0.94); }\r\n\r\n.iptvit-sport__arrow:focus-visible,\r\n.iptvit-sport__cta:focus-visible,\r\n.iptvit-sport__viewport:focus-visible {\r\n  outline: 3px solid rgba(121, 219, 178, 0.55);\r\n  outline-offset: 3px;\r\n}\r\n\r\n.iptvit-sport__arrow svg {\r\n  fill: none;\r\n  height: 1.15rem;\r\n  stroke: currentcolor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.9;\r\n  transition: transform 300ms var(--its-ease);\r\n  width: 1.15rem;\r\n}\r\n\r\n.iptvit-sport__arrow--next:hover svg { transform: translateX(0.14rem); }\r\n.iptvit-sport__arrow--prev:hover svg { transform: translateX(-0.14rem); }\r\n\r\n\/* Bouton pause \/ lecture. Un contenu qui d\u00e9file en permanence doit pouvoir\r\n   \u00eatre arr\u00eat\u00e9 par le visiteur (WCAG 2.2.2). *\/\r\n.iptvit-sport__arrow--toggle {\r\n  margin-right: 0.2rem;\r\n}\r\n\r\n.iptvit-sport__arrow--toggle svg { fill: currentcolor; stroke: none; }\r\n.iptvit-sport__arrow--toggle .its-play { display: none; }\r\n.iptvit-sport__arrow--toggle[data-state=\"paused\"] .its-play { display: block; }\r\n.iptvit-sport__arrow--toggle[data-state=\"paused\"] .its-pause { display: none; }\r\n\r\n.iptvit-sport__viewport {\r\n  flex: 0 0 auto;\r\n  \/* Marge verticale : sans elle, une carte qui se soul\u00e8ve ou s'incline est\r\n     rogn\u00e9e par le d\u00e9bordement du conteneur de d\u00e9filement. *\/\r\n  margin: -0.7rem 0;\r\n  overflow-x: auto;\r\n  overscroll-behavior-inline: contain;\r\n  padding: 0.7rem 0;\r\n  \/* auto, et non smooth : le tapis roulant r\u00e9\u00e9crit scrollLeft \u00e0 chaque image.\r\n     Avec smooth, chaque \u00e9criture lancerait une animation et le d\u00e9filement\r\n     saccaderait. Les fl\u00e8ches demandent smooth explicitement. *\/\r\n  scroll-behavior: auto;\r\n  scroll-snap-type: x proximity;\r\n  scrollbar-width: none;\r\n}\r\n\r\n.iptvit-sport__viewport::-webkit-scrollbar { display: none; }\r\n\r\n\/* Pendant le d\u00e9filement continu, l'accrochage se battrait avec le mouvement *\/\r\n.iptvit-sport__viewport.is-marquee { scroll-snap-type: none; }\r\n\r\n.iptvit-sport__viewport.is-dragging {\r\n  cursor: grabbing;\r\n  scroll-snap-type: none;\r\n}\r\n\r\n.iptvit-sport__track {\r\n  display: flex;\r\n  gap: var(--its-gap);\r\n}\r\n\r\n.iptvit-sport__slide {\r\n  \/* La hauteur vient du ratio portrait : c'est la carte qui dicte la\r\n     hauteur du rail, et non l'inverse. Plus de vide en bas. *\/\r\n  aspect-ratio: 2 \/ 3;\r\n  flex: 0 0 calc((100% - (var(--its-visible) - 1) * var(--its-gap)) \/ var(--its-visible));\r\n  perspective: 1000px;\r\n  position: relative;\r\n  scroll-snap-align: start;\r\n}\r\n\r\n\/* Niveau 1 : le flottement continu *\/\r\n.iptvit-sport__slide-float {\r\n  height: 100%;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__carousel-live .iptvit-sport__slide-float {\r\n  animation: itsFloat var(--its-fd, 8s) var(--its-ease-soft) infinite;\r\n  animation-delay: var(--its-fdelay, 0s);\r\n}\r\n\r\n.iptvit-sport__slide:nth-child(3n + 1) { --its-fd: 7.4s; --its-fdelay: -0.6s; }\r\n.iptvit-sport__slide:nth-child(3n + 2) { --its-fd: 8.9s; --its-fdelay: -3.2s; }\r\n.iptvit-sport__slide:nth-child(3n + 3) { --its-fd: 9.8s; --its-fdelay: -1.7s; }\r\n\r\n@keyframes itsFloat {\r\n  0%, 100% { transform: translate3d(0, 0.3rem, 0); }\r\n  50%      { transform: translate3d(0, -0.3rem, 0); }\r\n}\r\n\r\n\/* Niveau 2 : la carte visible, qui s'incline sous le curseur *\/\r\n.iptvit-sport__slide-card {\r\n  background:\r\n    radial-gradient(circle at 50% 18%, rgba(121, 219, 178, 0.19), transparent 34%),\r\n    linear-gradient(145deg, #172b38, #08121b 74%);\r\n  border: 1px solid rgba(255, 255, 255, 0.13);\r\n  border-radius: 1.35rem;\r\n  color: var(--its-cream);\r\n  height: 100%;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  position: relative;\r\n  transform:\r\n    rotateX(var(--its-rx, 0deg))\r\n    rotateY(var(--its-ry, 0deg))\r\n    translateZ(0)\r\n    scale(var(--its-cardscale, 1));\r\n  transition:\r\n    border-color 280ms var(--its-ease-soft),\r\n    box-shadow 340ms var(--its-ease-soft),\r\n    transform 620ms var(--its-ease);\r\n  width: 100%;\r\n}\r\n\r\n\/* Pendant que le curseur bouge, la r\u00e9ponse doit \u00eatre imm\u00e9diate *\/\r\n.iptvit-sport__slide-card.is-tilting {\r\n  transition:\r\n    border-color 280ms var(--its-ease-soft),\r\n    box-shadow 340ms var(--its-ease-soft),\r\n    transform 110ms linear;\r\n}\r\n\r\n\/* Entr\u00e9e en cascade *\/\r\n.iptvit-sport.is-enhanced .iptvit-sport__slide { opacity: 0; }\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__rail.is-visible .iptvit-sport__slide {\r\n  animation: itsSlideIn 640ms var(--its-sd, 0ms) var(--its-ease) forwards;\r\n}\r\n\r\n.iptvit-sport__slide:nth-child(1) { --its-sd: 220ms; }\r\n.iptvit-sport__slide:nth-child(2) { --its-sd: 320ms; }\r\n.iptvit-sport__slide:nth-child(3) { --its-sd: 420ms; }\r\n.iptvit-sport__slide:nth-child(4) { --its-sd: 500ms; }\r\n.iptvit-sport__slide:nth-child(n + 5) { --its-sd: 560ms; }\r\n\r\n@keyframes itsSlideIn {\r\n  from { opacity: 0; }\r\n  to   { opacity: 1; }\r\n}\r\n\r\n.iptvit-sport__slide-number {\r\n  align-items: center;\r\n  backdrop-filter: blur(0.7rem);\r\n  background: rgba(7, 17, 26, 0.56);\r\n  border: 1px solid rgba(255, 255, 255, 0.18);\r\n  border-radius: 999px;\r\n  color: rgba(255, 255, 255, 0.88);\r\n  display: inline-flex;\r\n  font-size: 0.68rem;\r\n  font-weight: 880;\r\n  height: 2rem;\r\n  justify-content: center;\r\n  left: 0.9rem;\r\n  position: absolute;\r\n  top: 0.9rem;\r\n  width: 2rem;\r\n  z-index: 3;\r\n}\r\n\r\n.iptvit-sport__slide-copy {\r\n  bottom: 0;\r\n  left: 0;\r\n  padding: 1.15rem;\r\n  position: absolute;\r\n  right: 0;\r\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6), 0 2px 14px rgba(0, 0, 0, 0.55);\r\n  transform: translateZ(0.01px);\r\n  transition: transform 480ms var(--its-ease);\r\n  z-index: 2;\r\n}\r\n\r\n.iptvit-sport__slide-copy span {\r\n  color: var(--its-mint);\r\n  display: block;\r\n  font-size: 0.7rem;\r\n  font-weight: 900;\r\n  letter-spacing: 0.13em;\r\n  margin-bottom: 0.42rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-sport__slide h4 {\r\n  color: inherit;\r\n  font-size: clamp(1.05rem, 1.35vw, 1.32rem);\r\n  font-weight: 860;\r\n  letter-spacing: -0.035em;\r\n  line-height: 1.08;\r\n  text-wrap: balance;\r\n}\r\n\r\n\/* Les bords du rail s'estompent : le d\u00e9bordement devient une intention *\/\r\n.iptvit-sport__rail-fade {\r\n  bottom: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  top: 0;\r\n  width: clamp(1.2rem, 2.4vw, 2.2rem);\r\n  z-index: 4;\r\n}\r\n\r\n.iptvit-sport__rail-fade--left {\r\n  background: linear-gradient(90deg, var(--its-surface-strong), transparent);\r\n  left: 0;\r\n  opacity: 0.55;\r\n}\r\n\r\n.iptvit-sport__rail-fade--right {\r\n  background: linear-gradient(270deg, var(--its-surface-strong), transparent);\r\n  opacity: 0.55;\r\n  right: 0;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Pied de section \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-sport__footer {\r\n  align-items: center;\r\n  background:\r\n    linear-gradient(115deg, rgba(31, 118, 87, 0.1), transparent 46%),\r\n    var(--its-surface);\r\n  border: 1px solid var(--its-line);\r\n  border-radius: 1.4rem;\r\n  display: flex;\r\n  gap: 1.5rem;\r\n  justify-content: space-between;\r\n  margin-top: clamp(1rem, 1.8vw, 1.5rem);\r\n  padding: clamp(1.2rem, 2.2vw, 1.8rem);\r\n}\r\n\r\n.iptvit-sport__footer strong {\r\n  display: block;\r\n  font-size: clamp(1.12rem, 1.8vw, 1.45rem);\r\n  font-weight: 860;\r\n  letter-spacing: -0.032em;\r\n  line-height: 1.2;\r\n}\r\n\r\n.iptvit-sport__footer p {\r\n  color: var(--its-body);\r\n  font-size: 0.98rem;\r\n  font-weight: 500;\r\n  line-height: 1.62;\r\n  margin-top: 0.5rem;\r\n  max-width: 68ch;\r\n}\r\n\r\n.iptvit-sport__cta {\r\n  align-items: center;\r\n  background: linear-gradient(180deg, var(--its-green), var(--its-green-deep));\r\n  border: 1px solid transparent;\r\n  border-radius: 999px;\r\n  box-shadow: 0 0.9rem 2.3rem -0.4rem rgba(31, 118, 87, 0.34);\r\n  color: var(--its-on-green);\r\n  display: inline-flex;\r\n  flex: 0 0 auto;\r\n  font-size: 0.86rem;\r\n  font-weight: 860;\r\n  gap: 0.65rem;\r\n  min-height: 3.3rem;\r\n  overflow: hidden;\r\n  padding: 0.75rem 1.35rem;\r\n  position: relative;\r\n  text-decoration: none;\r\n  transition:\r\n    box-shadow 240ms var(--its-ease-soft),\r\n    transform 240ms var(--its-ease);\r\n}\r\n\r\n.iptvit-sport__cta::after {\r\n  background: linear-gradient(105deg, transparent 34%, rgba(255, 255, 255, 0.32) 50%, transparent 66%);\r\n  content: \"\";\r\n  inset: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  transform: translateX(-130%);\r\n}\r\n\r\n.iptvit-sport__cta:hover {\r\n  box-shadow: 0 1.2rem 2.9rem -0.5rem rgba(31, 118, 87, 0.46);\r\n  color: var(--its-on-green);\r\n  transform: translateY(-0.18rem);\r\n}\r\n\r\n.iptvit-sport__cta:hover::after { animation: itsSweep 800ms var(--its-ease-soft); }\r\n.iptvit-sport__cta:active { transform: translateY(0) scale(0.985); }\r\n\r\n@keyframes itsSweep {\r\n  from { transform: translateX(-130%); }\r\n  to   { transform: translateX(130%); }\r\n}\r\n\r\n.iptvit-sport__cta svg {\r\n  fill: none;\r\n  height: 1rem;\r\n  stroke: currentcolor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.9;\r\n  transition: transform 320ms var(--its-ease);\r\n  width: 1rem;\r\n}\r\n\r\n.iptvit-sport__cta:hover svg { transform: translateX(0.2rem); }\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 R\u00e9v\u00e9lation au scroll \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__reveal {\r\n  opacity: 0;\r\n  transform: translateY(1.6rem);\r\n  transition:\r\n    opacity 700ms var(--its-delay, 0ms) var(--its-ease-soft),\r\n    transform 820ms var(--its-delay, 0ms) var(--its-ease);\r\n}\r\n\r\n.iptvit-sport.is-enhanced .iptvit-sport__reveal.is-visible {\r\n  opacity: 1;\r\n  transform: translateY(0);\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Survol \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n@media (hover: hover) and (pointer: fine) {\r\n  .iptvit-sport__feature:hover .iptvit-sport__feature-content { transform: translateY(-0.3rem); }\r\n  .iptvit-sport__feature:hover .iptvit-sport__proofs li { border-color: rgba(121, 219, 178, 0.42); }\r\n\r\n  .iptvit-sport__slide-card:hover {\r\n    border-color: rgba(121, 219, 178, 0.5);\r\n    box-shadow: var(--its-shadow-hi);\r\n    --its-cardscale: 1.03;\r\n  }\r\n\r\n  .iptvit-sport__slide-card:hover .iptvit-sport__img { --its-sc: 1.12; }\r\n  .iptvit-sport__slide-card:hover .iptvit-sport__media::after { opacity: 0.92; }\r\n  .iptvit-sport__slide-card:hover .iptvit-sport__slide-copy { transform: translateY(-0.25rem); }\r\n\r\n  \/* Le flottement s'interrompt sous le curseur : les deux mouvements\r\n     ensemble donneraient une impression de flottement incontr\u00f4l\u00e9. *\/\r\n  .iptvit-sport__slide:hover .iptvit-sport__slide-float { animation-play-state: paused; }\r\n\r\n  .iptvit-sport__viewport { cursor: grab; }\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Responsive \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n@media (max-width: 74rem) {\r\n  .iptvit-sport__stage { grid-template-columns: minmax(0, 1fr); }\r\n  .iptvit-sport__feature { min-height: 26rem; }\r\n  .iptvit-sport__rail h3 { max-width: none; }\r\n}\r\n\r\n@media (max-width: 52rem) {\r\n  .iptvit-sport { --its-visible: 2.3; }\r\n\r\n  .iptvit-sport__header {\r\n    align-items: start;\r\n    grid-template-columns: minmax(0, 1fr);\r\n  }\r\n\r\n  .iptvit-sport__intro { max-width: 44rem; }\r\n  .iptvit-sport__feature { min-height: 28rem; }\r\n\r\n  .iptvit-sport__footer {\r\n    align-items: flex-start;\r\n    flex-direction: column;\r\n  }\r\n}\r\n\r\n@media (max-width: 36rem) {\r\n  .iptvit-sport {\r\n    --its-visible: 1.45;\r\n    padding: 4rem 0;\r\n  }\r\n\r\n  .iptvit-sport__inner { padding: 0 1rem; }\r\n  .iptvit-sport__header h2 { font-size: clamp(2.35rem, 12vw, 3.5rem); }\r\n\r\n  .iptvit-sport__feature { min-height: 25rem; }\r\n  .iptvit-sport__feature-content { padding: 1.25rem; }\r\n  .iptvit-sport__feature h3 { font-size: clamp(1.9rem, 8.5vw, 2.5rem); }\r\n  .iptvit-sport__proofs li { font-size: 0.7rem; }\r\n\r\n  .iptvit-sport__arrow { height: 2.6rem; width: 2.6rem; }\r\n\r\n  .iptvit-sport__cta {\r\n    justify-content: center;\r\n    width: 100%;\r\n  }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .iptvit-sport *,\r\n  .iptvit-sport *::before,\r\n  .iptvit-sport *::after {\r\n    animation: none !important;\r\n    scroll-behavior: auto !important;\r\n    transition-duration: 0.01ms !important;\r\n  }\r\n\r\n  .iptvit-sport.is-enhanced .iptvit-sport__reveal,\r\n  .iptvit-sport.is-enhanced .iptvit-sport__slide {\r\n    opacity: 1;\r\n    transform: none;\r\n  }\r\n\r\n  .iptvit-sport__feature::before,\r\n  .iptvit-sport__rail::before {\r\n    transform: scaleX(1) !important;\r\n  }\r\n\r\n  .iptvit-sport__img {\r\n    opacity: 1;\r\n    transform: scale(1.02);\r\n  }\r\n\r\n  .iptvit-sport__slide-card,\r\n  .iptvit-sport__arrow:hover,\r\n  .iptvit-sport__cta:hover {\r\n    transform: none;\r\n  }\r\n}\r\n\r\n@media (forced-colors: active) {\r\n  .iptvit-sport__feature,\r\n  .iptvit-sport__rail,\r\n  .iptvit-sport__slide-card,\r\n  .iptvit-sport__footer,\r\n  .iptvit-sport__arrow,\r\n  .iptvit-sport__cta {\r\n    border: 1px solid CanvasText;\r\n  }\r\n\r\n  .iptvit-sport__media::before,\r\n  .iptvit-sport__rail-fade { display: none; }\r\n}\r\n\r\n\/* v5 : mode l\u00e9ger mobile\/tablette\/tactile, pr\u00e9sentation PC conserv\u00e9e. *\/\r\n@media (max-width:1024px), (pointer:coarse), (prefers-reduced-motion:reduce) {\r\n  .iptvit-sport::before,.iptvit-sport::after,.iptvit-sport__media::before,.iptvit-sport__rail-fade {display:none}\r\n  .iptvit-sport *,.iptvit-sport *::before,.iptvit-sport *::after {animation:none!important;transition:none!important;backdrop-filter:none!important;filter:none!important;transform:none!important}\r\n  .iptvit-sport .iptvit-sport__reveal,.iptvit-sport .iptvit-sport__slide {opacity:1!important}\r\n  .iptvit-sport .iptvit-sport__header h2 span {background-size:108% 100%,100% 100%!important}\r\n  .iptvit-sport__feature,.iptvit-sport__rail,.iptvit-sport__slide-card {box-shadow:none!important}\r\n  .iptvit-sport .iptvit-sport__arrow--toggle,.iptvit-sport [data-clone] {display:none!important}\r\n  .iptvit-sport .iptvit-sport__viewport {scroll-snap-type:x mandatory;scroll-behavior:auto;touch-action:pan-x pan-y;overflow-x:auto}\r\n  .iptvit-sport__slide {scroll-snap-align:start}\r\n  .iptvit-sport .iptvit-sport__media::after {background-image:linear-gradient(180deg,rgba(2,8,13,0),rgba(2,8,13,.58) 60%,rgba(2,8,13,.94));background-size:auto}\r\n  .iptvit-sport .iptvit-sport__feature .iptvit-sport__media::after {background-image:linear-gradient(180deg,rgba(2,8,13,.08),rgba(2,8,13,.72) 36%,rgba(2,8,13,.96) 78%);background-size:auto}\r\n}\r\n.iptvit-sport.is-mobile-lite .iptvit-sport__controls {opacity:1;visibility:visible}\r\n.iptvit-sport.is-mobile-lite .iptvit-sport__arrow--toggle {display:none}\r\n.iptvit-sport.is-mobile-lite .iptvit-sport__img {opacity:1;transform:none}\r\n@media(max-width:600px) {\r\n  .iptvit-sport {padding:3rem 0}\r\n  .iptvit-sport__header {gap:1.2rem}\r\n  .iptvit-sport__header h2 {font-size:clamp(2rem,9vw,3rem);line-height:1.02}\r\n  .iptvit-sport__feature {min-height:0;padding-top:5rem}\r\n  .iptvit-sport__feature-content {position:relative}\r\n  .iptvit-sport__rail-head {gap:.6rem}\r\n}\r\n\r\n<\/style>\r\n\r\n<section\r\n  id=\"sport-iptv-italia\"\r\n  class=\"iptvit-sport\"\r\n  aria-labelledby=\"iptvit-sport-title\"\r\n  data-image-serie-a=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Serie-a-1.webp\"\r\n  data-image-boxe=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/HD-wallpaper-canelo-alvarez-boxing-saunders.webp\"\r\n  data-image-ufc=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/HD-wallpaper-ufc-mma-fight-cage.webp\"\r\n  data-image-tennis=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/HD-wallpaper-tennis-sports-women-tennis-player.webp\"\r\n  data-image-motogp=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/HD-wallpaper-bmw-s1000rr-bikes-love.webp\"\r\n  data-image-basket=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/HD-wallpaper-michael-jordan-jordan-goat-bulls.webp\"\r\n  data-image-formula1=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/HD-wallpaper-mclaren-f1-gulf-formula-1.webp\"\r\n>\r\n  <div class=\"iptvit-sport__inner\">\r\n    <header class=\"iptvit-sport__header iptvit-sport__reveal\">\r\n      <div>\r\n        <p class=\"iptvit-sport__eyebrow\">Sport in diretta<\/p>\r\n        <h2 id=\"iptvit-sport-title\">Sport in diretta su IPTV Italia: <span>ogni sfida, ogni sorpasso, ogni punto.<\/span><\/h2>\r\n      <\/div>\r\n\r\n      <p class=\"iptvit-sport__intro\">\r\n        Dal grande calcio italiano ai motori, dal tennis al basket e agli sport da combattimento: scopri lo sport in diretta con uno streaming stabile sui dispositivi compatibili, quando contenuto, applicazione e connessione lo permettono.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"iptvit-sport__stage\">\r\n      <article class=\"iptvit-sport__feature iptvit-sport__reveal\" style=\"--its-delay: 90ms;\" data-sport-card=\"serie-a\">\r\n        <div class=\"iptvit-sport__media\">\r\n          <img class=\"iptvit-sport__img\" alt=\"Partita di calcio italiano in diretta su IPTV Italia\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n        <\/div>\r\n\r\n        <span class=\"iptvit-sport__live\">Calcio italiano<\/span>\r\n\r\n        <div class=\"iptvit-sport__feature-content\">\r\n          <p class=\"iptvit-sport__feature-kicker\">Il campo \u00e8 pronto<\/p>\r\n          <h3>La Serie A al centro della scena<\/h3>\r\n          <p class=\"iptvit-sport__feature-copy\">\r\n            Segui il ritmo del campionato italiano, dalle grandi sfide agli incontri che cambiano la classifica, con accesso multi-dispositivo quando previsto dalla formula scelta.\r\n          <\/p>\r\n\r\n          <ul class=\"iptvit-sport__proofs\" aria-label=\"Punti di forza della visione sportiva\">\r\n            <li>Eventi in diretta<\/li>\r\n            <li>HD \u00b7 FHD \u00b7 4K dove disponibili<\/li>\r\n            <li>Smart TV \u00b7 Mobile \u00b7 PC<\/li>\r\n          <\/ul>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <div class=\"iptvit-sport__rail iptvit-sport__reveal\" style=\"--its-delay: 180ms;\">\r\n        <div class=\"iptvit-sport__rail-head\">\r\n          <div>\r\n            <p class=\"iptvit-sport__rail-label\">Selezione sportiva<\/p>\r\n            <h3>Passa da un\u2019arena all\u2019altra<\/h3>\r\n          <\/div>\r\n\r\n          <div class=\"iptvit-sport__controls\">\r\n            <button\r\n              class=\"iptvit-sport__arrow iptvit-sport__arrow--toggle\"\r\n              type=\"button\"\r\n              data-state=\"playing\"\r\n              aria-label=\"Metti in pausa lo scorrimento\"\r\n            >\r\n              <svg class=\"its-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <rect x=\"7\" y=\"5\" width=\"3.4\" height=\"14\" rx=\"1.2\"><\/rect>\r\n                <rect x=\"13.6\" y=\"5\" width=\"3.4\" height=\"14\" rx=\"1.2\"><\/rect>\r\n              <\/svg>\r\n              <svg class=\"its-play\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n                <path d=\"M8 5.2v13.6L19 12 8 5.2Z\"><\/path>\r\n              <\/svg>\r\n            <\/button>\r\n            <button class=\"iptvit-sport__arrow iptvit-sport__arrow--prev\" type=\"button\" aria-label=\"Sport precedente\">\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m15 18-6-6 6-6\"><\/path><\/svg>\r\n            <\/button>\r\n            <button class=\"iptvit-sport__arrow iptvit-sport__arrow--next\" type=\"button\" aria-label=\"Sport successivo\">\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m9 18 6-6-6-6\"><\/path><\/svg>\r\n            <\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"iptvit-sport__viewport\" role=\"region\" aria-label=\"Discipline sportive\" aria-roledescription=\"carosello\" tabindex=\"0\">\r\n          <div class=\"iptvit-sport__track\" role=\"list\">\r\n            <article class=\"iptvit-sport__slide\" role=\"listitem\" data-sport-card=\"boxe\">\r\n              <div class=\"iptvit-sport__slide-float\">\r\n                <div class=\"iptvit-sport__slide-card\">\r\n                  <div class=\"iptvit-sport__media\">\r\n                    <img class=\"iptvit-sport__img\" alt=\"Incontro di boxe in diretta\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n                  <\/div>\r\n                  <span class=\"iptvit-sport__slide-number\">01<\/span>\r\n                  <div class=\"iptvit-sport__slide-copy\">\r\n                    <span>Boxe<\/span>\r\n                    <h4>Potenza, tecnica, precisione<\/h4>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n            <\/article>\r\n\r\n            <article class=\"iptvit-sport__slide\" role=\"listitem\" data-sport-card=\"ufc\">\r\n              <div class=\"iptvit-sport__slide-float\">\r\n                <div class=\"iptvit-sport__slide-card\">\r\n                  <div class=\"iptvit-sport__media\">\r\n                    <img class=\"iptvit-sport__img\" alt=\"Combattimento MMA in gabbia\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n                  <\/div>\r\n                  <span class=\"iptvit-sport__slide-number\">02<\/span>\r\n                  <div class=\"iptvit-sport__slide-copy\">\r\n                    <span>MMA e UFC<\/span>\r\n                    <h4>Ogni round pu\u00f2 cambiare tutto<\/h4>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n            <\/article>\r\n\r\n            <article class=\"iptvit-sport__slide\" role=\"listitem\" data-sport-card=\"tennis\">\r\n              <div class=\"iptvit-sport__slide-float\">\r\n                <div class=\"iptvit-sport__slide-card\">\r\n                  <div class=\"iptvit-sport__media\">\r\n                    <img class=\"iptvit-sport__img\" alt=\"Match di tennis in diretta\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n                  <\/div>\r\n                  <span class=\"iptvit-sport__slide-number\">03<\/span>\r\n                  <div class=\"iptvit-sport__slide-copy\">\r\n                    <span>Tennis<\/span>\r\n                    <h4>Vivi il punto decisivo<\/h4>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n            <\/article>\r\n\r\n            <article class=\"iptvit-sport__slide\" role=\"listitem\" data-sport-card=\"motogp\">\r\n              <div class=\"iptvit-sport__slide-float\">\r\n                <div class=\"iptvit-sport__slide-card\">\r\n                  <div class=\"iptvit-sport__media\">\r\n                    <img class=\"iptvit-sport__img\" alt=\"Motociclista in gara su pista\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n                  <\/div>\r\n                  <span class=\"iptvit-sport__slide-number\">04<\/span>\r\n                  <div class=\"iptvit-sport__slide-copy\">\r\n                    <span>MotoGP<\/span>\r\n                    <h4>Velocit\u00e0 fino all\u2019ultima curva<\/h4>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n            <\/article>\r\n\r\n            <article class=\"iptvit-sport__slide\" role=\"listitem\" data-sport-card=\"basket\">\r\n              <div class=\"iptvit-sport__slide-float\">\r\n                <div class=\"iptvit-sport__slide-card\">\r\n                  <div class=\"iptvit-sport__media\">\r\n                    <img class=\"iptvit-sport__img\" alt=\"Partita di basket in diretta\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n                  <\/div>\r\n                  <span class=\"iptvit-sport__slide-number\">05<\/span>\r\n                  <div class=\"iptvit-sport__slide-copy\">\r\n                    <span>Basket<\/span>\r\n                    <h4>Azione fino alla sirena<\/h4>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n            <\/article>\r\n\r\n            <article class=\"iptvit-sport__slide\" role=\"listitem\" data-sport-card=\"formula1\">\r\n              <div class=\"iptvit-sport__slide-float\">\r\n                <div class=\"iptvit-sport__slide-card\">\r\n                  <div class=\"iptvit-sport__media\">\r\n                    <img class=\"iptvit-sport__img\" alt=\"Monoposto di Formula 1 in gara\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n                  <\/div>\r\n                  <span class=\"iptvit-sport__slide-number\">06<\/span>\r\n                  <div class=\"iptvit-sport__slide-copy\">\r\n                    <span>Formula 1<\/span>\r\n                    <h4>Strategia, motore, adrenalina<\/h4>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n            <\/article>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <span class=\"iptvit-sport__rail-fade iptvit-sport__rail-fade--left\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"iptvit-sport__rail-fade iptvit-sport__rail-fade--right\" aria-hidden=\"true\"><\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"iptvit-sport__footer iptvit-sport__reveal\" style=\"--its-delay: 260ms;\">\r\n      <div>\r\n        <strong>Dallo stadio al circuito, lo sport ti segue ovunque.<\/strong>\r\n        <p>\r\n          Calcio italiano, motori, tennis, basket e sport da combattimento riuniti in un\u2019unica\r\n          selezione per gli schermi compatibili di casa. La resa dipende dal formato disponibile,\r\n          dall\u2019applicazione, dal dispositivo e dalla connessione: scopri i canali disponibili e\r\n          scegli l\u2019offerta pi\u00f9 adatta al tuo modo di guardare.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <a class=\"iptvit-sport__cta\" href=\"https:\/\/iptv-italia.it\/lista-canali\/\">\r\n        Scopri i canali sportivi\r\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"><\/path><\/svg>\r\n      <\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n  \"use strict\";\r\n\r\n  \/* \u2014\u2014\u2014\u2014\u2014 R\u00e9glages du tapis roulant \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n  \/\/ Vitesse en pixels par seconde. Une valeur N\u00c9GATIVE inverse le sens.\r\n  var MARQUEE_SPEED = 30;\r\n  \/\/ D\u00e9lai de reprise apr\u00e8s une interaction (fl\u00e8che, glissement, clavier).\r\n  var RESUME_DELAY = 2000;\r\n\r\n  function initSport(section) {\r\n    if (!section || section.dataset.iptvitSportReady === \"true\") { return; }\r\n    section.dataset.iptvitSportReady = \"true\";\r\n\r\n\r\n    var liteQuery = window.matchMedia(\"(max-width:1024px), (pointer:coarse), (prefers-reduced-motion:reduce)\");\r\n    if (liteQuery.matches) {\r\n      section.classList.add(\"is-mobile-lite\");\r\n      section.querySelectorAll(\"[data-sport-card]\").forEach(function(card) {\r\n        var img = card.querySelector(\".iptvit-sport__img\");\r\n        var url = section.getAttribute(\"data-image-\" + card.getAttribute(\"data-sport-card\"));\r\n        if (img && url) { img.src = url; }\r\n      });\r\n      var liteViewport = section.querySelector(\".iptvit-sport__viewport\");\r\n      var liteSlides = section.querySelectorAll(\".iptvit-sport__slide\");\r\n      var prev = section.querySelector(\".iptvit-sport__arrow--prev\");\r\n      var next = section.querySelector(\".iptvit-sport__arrow--next\");\r\n      var toggle = section.querySelector(\".iptvit-sport__arrow--toggle\");\r\n      toggle.hidden = true;\r\n      function moveLite(direction) {\r\n        var step = liteSlides.length > 1 ? liteSlides[1].offsetLeft - liteSlides[0].offsetLeft : liteViewport.clientWidth;\r\n        liteViewport.scrollBy({left:direction * step,behavior:\"auto\"});\r\n      }\r\n      prev.addEventListener(\"click\",function(){moveLite(-1)});\r\n      next.addEventListener(\"click\",function(){moveLite(1)});\r\n      liteViewport.addEventListener(\"keydown\",function(event){\r\n        if(event.key===\"ArrowLeft\"||event.key===\"ArrowRight\"){\r\n          event.preventDefault();moveLite(event.key===\"ArrowRight\"?1:-1);\r\n        }\r\n      });\r\n      return; \/* Ni clones, ni RAF, ni \u00e9couteur scroll global sur mobile. *\/\r\n    }\r\n\r\n    var hasIO = \"IntersectionObserver\" in window;\r\n    var motionQuery = window.matchMedia\r\n      ? window.matchMedia(\"(prefers-reduced-motion: reduce)\")\r\n      : null;\r\n    var reducedMotion = motionQuery ? motionQuery.matches : false;\r\n\r\n    if (!reducedMotion) { section.classList.add(\"is-enhanced\"); }\r\n\r\n    \/* \u2014\u2014\u2014\u2014\u2014 1. Duplication des cartes pour la boucle \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n    var track = section.querySelector(\".iptvit-sport__track\");\r\n    var loopCount = 0;\r\n\r\n    \/\/ Le tapis roulant a besoin d'un second jeu de cartes : quand le premier\r\n    \/\/ est enti\u00e8rement sorti \u00e0 gauche, on revient au point de d\u00e9part sans que\r\n    \/\/ l'\u0153il puisse voir la coupure. La duplication a lieu AVANT la mise en\r\n    \/\/ place du chargement d'images, pour que les clones en profitent aussi.\r\n    if (track && !reducedMotion) {\r\n      var originalSlides = Array.prototype.slice.call(track.children);\r\n      loopCount = originalSlides.length;\r\n\r\n      originalSlides.forEach(function (slide) {\r\n        var clone = slide.cloneNode(true);\r\n        clone.setAttribute(\"aria-hidden\", \"true\");\r\n        clone.removeAttribute(\"role\");\r\n        clone.dataset.clone = \"true\";\r\n        track.appendChild(clone);\r\n      });\r\n    }\r\n\r\n    \/* \u2014\u2014\u2014\u2014\u2014 2. Images \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n    var imageUrls = {\r\n      \"serie-a\": section.getAttribute(\"data-image-serie-a\") || \"\",\r\n      boxe: section.getAttribute(\"data-image-boxe\") || \"\",\r\n      ufc: section.getAttribute(\"data-image-ufc\") || \"\",\r\n      tennis: section.getAttribute(\"data-image-tennis\") || \"\",\r\n      motogp: section.getAttribute(\"data-image-motogp\") || \"\",\r\n      basket: section.getAttribute(\"data-image-basket\") || \"\",\r\n      formula1: section.getAttribute(\"data-image-formula1\") || \"\"\r\n    };\r\n\r\n    function applyImage(card) {\r\n      if (card.dataset.imageLoaded === \"true\") { return; }\r\n\r\n      var url = (imageUrls[card.getAttribute(\"data-sport-card\")] || \"\").trim();\r\n      var img = card.querySelector(\".iptvit-sport__img\");\r\n      if (!url || !img) { return; }\r\n\r\n      card.dataset.imageLoaded = \"true\";\r\n\r\n      function done() { card.classList.add(\"is-loaded\"); }\r\n\r\n      img.addEventListener(\"load\", done, { once: true });\r\n      img.addEventListener(\"error\", function () {\r\n        if (img.parentNode) { img.parentNode.removeChild(img); }\r\n      }, { once: true });\r\n\r\n      img.src = url;\r\n      if (img.complete && img.naturalWidth) { done(); }\r\n    }\r\n\r\n    var imageCards = Array.prototype.slice.call(section.querySelectorAll(\"[data-sport-card]\"));\r\n\r\n    if (hasIO) {\r\n      var mediaObserver = new IntersectionObserver(function (entries) {\r\n        entries.forEach(function (entry) {\r\n          if (!entry.isIntersecting) { return; }\r\n          applyImage(entry.target);\r\n          mediaObserver.unobserve(entry.target);\r\n        });\r\n      }, { rootMargin: \"500px 0px\" });\r\n\r\n      imageCards.forEach(function (card) { mediaObserver.observe(card); });\r\n    } else {\r\n      imageCards.forEach(applyImage);\r\n    }\r\n\r\n    \/* \u2014\u2014\u2014\u2014\u2014 3. R\u00e9v\u00e9lation au scroll \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n    var revealItems = Array.prototype.slice.call(section.querySelectorAll(\".iptvit-sport__reveal\"));\r\n\r\n    if (reducedMotion || !hasIO) {\r\n      revealItems.forEach(function (item) { item.classList.add(\"is-visible\"); });\r\n    } else {\r\n      var revealObserver = new IntersectionObserver(function (entries) {\r\n        entries.forEach(function (entry) {\r\n          if (!entry.isIntersecting) { return; }\r\n          entry.target.classList.add(\"is-visible\");\r\n          revealObserver.unobserve(entry.target);\r\n        });\r\n      }, { threshold: 0.14, rootMargin: \"0px 0px -5% 0px\" });\r\n\r\n      revealItems.forEach(function (item) { revealObserver.observe(item); });\r\n    }\r\n\r\n    \/* \u2014\u2014\u2014\u2014\u2014 4. Parallaxe du visuel Serie A \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n    var feature = section.querySelector(\".iptvit-sport__feature\");\r\n    var featureImg = feature ? feature.querySelector(\".iptvit-sport__img\") : null;\r\n\r\n    if (featureImg && !reducedMotion) {\r\n      var parallaxTicking = false;\r\n      var featureInView = true;\r\n\r\n      function updateParallax() {\r\n        parallaxTicking = false;\r\n        if (liteQuery.matches || !featureInView) { return; }\r\n\r\n        var rect = feature.getBoundingClientRect();\r\n        var viewportHeight = window.innerHeight || document.documentElement.clientHeight;\r\n        \/\/ -1 quand le bloc arrive par le bas, +1 quand il sort par le haut.\r\n        var progress = (rect.top + rect.height \/ 2 - viewportHeight \/ 2) \/\r\n          (viewportHeight \/ 2 + rect.height \/ 2);\r\n\r\n        progress = Math.max(-1, Math.min(1, progress));\r\n        featureImg.style.setProperty(\"--its-py\", (progress * 22).toFixed(1) + \"px\");\r\n      }\r\n\r\n      function requestParallax() {\r\n        if (liteQuery.matches || parallaxTicking) { return; }\r\n        parallaxTicking = true;\r\n        window.requestAnimationFrame(updateParallax);\r\n      }\r\n\r\n      window.addEventListener(\"scroll\", requestParallax, { passive: true });\r\n      window.addEventListener(\"resize\", requestParallax, { passive: true });\r\n\r\n      if (hasIO) {\r\n        var parallaxObserver = new IntersectionObserver(function (entries) {\r\n          featureInView = entries[0].isIntersecting;\r\n          if (featureInView) { requestParallax(); }\r\n        }, { rootMargin: \"120px 0px\" });\r\n\r\n        parallaxObserver.observe(feature);\r\n      }\r\n\r\n      requestParallax();\r\n    }\r\n\r\n    \/* \u2014\u2014\u2014\u2014\u2014 5. Carrousel \u00e0 d\u00e9filement continu \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n    var rail = section.querySelector(\".iptvit-sport__rail\");\r\n    var viewport = section.querySelector(\".iptvit-sport__viewport\");\r\n    var previousButton = section.querySelector(\".iptvit-sport__arrow--prev\");\r\n    var nextButton = section.querySelector(\".iptvit-sport__arrow--next\");\r\n    var toggleButton = section.querySelector(\".iptvit-sport__arrow--toggle\");\r\n\r\n    if (!viewport || !track || !previousButton || !nextButton) { return; }\r\n\r\n    var slides = Array.prototype.slice.call(track.children);\r\n    var cycleWidth = 0;\r\n\r\n    function measure() {\r\n      \/\/ Distance entre la premi\u00e8re carte et son clone : c'est la longueur\r\n      \/\/ exacte d'un cycle, quels que soient les \u00e9carts entre les cartes.\r\n      cycleWidth = (loopCount && slides[loopCount])\r\n        ? slides[loopCount].offsetLeft - slides[0].offsetLeft\r\n        : 0;\r\n    }\r\n\r\n    function getStep() {\r\n      if (slides.length < 2) { return slides[0].getBoundingClientRect().width; }\r\n      return slides[1].offsetLeft - slides[0].offsetLeft;\r\n    }\r\n\r\n    function wrap() {\r\n      if (!cycleWidth) { return; }\r\n      if (viewport.scrollLeft >= cycleWidth) { viewport.scrollLeft -= cycleWidth; }\r\n      else if (viewport.scrollLeft < 0) { viewport.scrollLeft += cycleWidth; }\r\n    }\r\n\r\n    \/* \u2014 \u00c9tat \u2014 *\/\r\n\r\n    var running = false;\r\n    var rafId = 0;\r\n    var lastTime = 0;\r\n    var position = 0;         \/\/ position th\u00e9orique, en pixels flottants\r\n    var userPaused = false;   \/\/ le visiteur a appuy\u00e9 sur pause\r\n    var hovering = false;\r\n    var interacting = false;  \/\/ fl\u00e8che, glissement, clavier\r\n    var inView = true;\r\n    var resumeTimer = null;\r\n\r\n    function canRun() {\r\n      return !liteQuery.matches && !reducedMotion && !userPaused && !hovering &&\r\n        !interacting && inView && !document.hidden && cycleWidth > 0;\r\n    }\r\n\r\n    function frame(now) {\r\n      if (liteQuery.matches) { pause(); return; }\r\n      if (!running) { rafId = 0; return; }\r\n\r\n      \/\/ Le delta born\u00e9 \u00e9vite un saut apr\u00e8s un onglet rest\u00e9 en arri\u00e8re-plan.\r\n      var delta = lastTime ? Math.min(64, now - lastTime) : 16;\r\n      lastTime = now;\r\n\r\n      \/\/ La position est tenue \u00e0 part, en flottant. \u00c0 30 px\/s une image de\r\n      \/\/ rendu ne vaut qu'un demi-pixel : relire scrollLeft \u00e0 chaque tour\r\n      \/\/ arrondirait ce demi-pixel, et le tapis avancerait deux fois trop\r\n      \/\/ vite, par \u00e0-coups d'un pixel.\r\n      position += MARQUEE_SPEED * delta \/ 1000;\r\n\r\n      if (cycleWidth) {\r\n        if (position >= cycleWidth) { position -= cycleWidth; }\r\n        else if (position < 0) { position += cycleWidth; }\r\n      }\r\n\r\n      viewport.scrollLeft = position;\r\n\r\n      rafId = window.requestAnimationFrame(frame);\r\n    }\r\n\r\n    function play() {\r\n      if (running || !canRun()) { return; }\r\n      running = true;\r\n      lastTime = 0;\r\n      \/\/ Reprise du fil l\u00e0 o\u00f9 le visiteur l'a laiss\u00e9.\r\n      position = viewport.scrollLeft;\r\n      rafId = window.requestAnimationFrame(frame);\r\n    }\r\n\r\n    function pause() {\r\n      running = false;\r\n      if (rafId) {\r\n        window.cancelAnimationFrame(rafId);\r\n        rafId = 0;\r\n      }\r\n    }\r\n\r\n    function scheduleResume() {\r\n      if (resumeTimer) { window.clearTimeout(resumeTimer); }\r\n      resumeTimer = window.setTimeout(function () {\r\n        interacting = false;\r\n        play();\r\n      }, RESUME_DELAY);\r\n    }\r\n\r\n    function interrupt() {\r\n      interacting = true;\r\n      pause();\r\n      scheduleResume();\r\n    }\r\n\r\n    \/* \u2014 Bouton pause \/ lecture \u2014 *\/\r\n\r\n    function syncToggle() {\r\n      if (!toggleButton) { return; }\r\n      toggleButton.dataset.state = userPaused ? \"paused\" : \"playing\";\r\n      toggleButton.setAttribute(\r\n        \"aria-label\",\r\n        userPaused ? \"Riprendi lo scorrimento\" : \"Metti in pausa lo scorrimento\"\r\n      );\r\n    }\r\n\r\n    if (toggleButton) {\r\n      if (reducedMotion) {\r\n        toggleButton.hidden = true;\r\n      } else {\r\n        toggleButton.addEventListener(\"click\", function () {\r\n          userPaused = !userPaused;\r\n          if (userPaused) { pause(); } else { interacting = false; play(); }\r\n          syncToggle();\r\n        });\r\n      }\r\n    }\r\n\r\n    \/* \u2014 Fl\u00e8ches : un pas de carte, puis reprise \u2014 *\/\r\n\r\n    function nudge(direction) {\r\n      interrupt();\r\n\r\n      var step = getStep();\r\n      if (!step) { return; }\r\n\r\n      \/\/ Vers la gauche depuis le tout d\u00e9but : on saute d'abord un cycle en\r\n      \/\/ avant, sinon le d\u00e9filement viendrait buter sur le bord \u00e0 z\u00e9ro.\r\n      if (direction < 0 && cycleWidth && viewport.scrollLeft < step) {\r\n        viewport.scrollLeft += cycleWidth;\r\n      }\r\n\r\n      viewport.scrollTo({\r\n        left: viewport.scrollLeft + direction * step,\r\n        behavior: reducedMotion ? \"auto\" : \"smooth\"\r\n      });\r\n    }\r\n\r\n    previousButton.addEventListener(\"click\", function () { nudge(-1); });\r\n    nextButton.addEventListener(\"click\", function () { nudge(1); });\r\n\r\n    viewport.addEventListener(\"keydown\", function (event) {\r\n      if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\") { return; }\r\n      event.preventDefault();\r\n      nudge(event.key === \"ArrowRight\" ? 1 : -1);\r\n    });\r\n\r\n    \/* \u2014 Survol et focus \u2014 *\/\r\n\r\n    viewport.addEventListener(\"mouseenter\", function () {\r\n      hovering = true;\r\n      pause();\r\n    });\r\n\r\n    viewport.addEventListener(\"mouseleave\", function () {\r\n      hovering = false;\r\n      play();\r\n    });\r\n\r\n    viewport.addEventListener(\"focusin\", function () { interrupt(); });\r\n\r\n    \/* \u2014 Glisser-d\u00e9poser \u2014 *\/\r\n\r\n    var dragging = false;\r\n    var dragMoved = false;\r\n    var dragStartX = 0;\r\n    var dragStartScroll = 0;\r\n\r\n    viewport.addEventListener(\"pointerdown\", function (event) {\r\n      interacting = true;\r\n      pause();\r\n      if (resumeTimer) { window.clearTimeout(resumeTimer); }\r\n\r\n      if (event.pointerType !== \"mouse\") { return; }\r\n\r\n      dragging = true;\r\n      dragMoved = false;\r\n      dragStartX = event.clientX;\r\n      dragStartScroll = viewport.scrollLeft;\r\n      viewport.classList.add(\"is-dragging\");\r\n    });\r\n\r\n    viewport.addEventListener(\"pointermove\", function (event) {\r\n      if (!dragging) { return; }\r\n\r\n      var delta = event.clientX - dragStartX;\r\n      if (Math.abs(delta) > 4) { dragMoved = true; }\r\n\r\n      viewport.scrollLeft = dragStartScroll - delta;\r\n      wrap();\r\n    });\r\n\r\n    function endDrag() {\r\n      if (dragging) {\r\n        dragging = false;\r\n        viewport.classList.remove(\"is-dragging\");\r\n      }\r\n      scheduleResume();\r\n    }\r\n\r\n    viewport.addEventListener(\"pointerup\", endDrag);\r\n    viewport.addEventListener(\"pointercancel\", endDrag);\r\n    viewport.addEventListener(\"pointerleave\", endDrag);\r\n\r\n    \/\/ Emp\u00eache l'ouverture d'un lien juste apr\u00e8s un glissement.\r\n    viewport.addEventListener(\"click\", function (event) {\r\n      if (!dragMoved) { return; }\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      dragMoved = false;\r\n    }, true);\r\n\r\n    \/\/ Le d\u00e9filement au doigt ou \u00e0 la molette peut sortir du cycle.\r\n    viewport.addEventListener(\"scroll\", function () {\r\n      if (!running) { wrap(); }\r\n    }, { passive: true });\r\n\r\n    window.addEventListener(\"resize\", function () {\r\n      var ratio = cycleWidth ? viewport.scrollLeft \/ cycleWidth : 0;\r\n      measure();\r\n      viewport.scrollLeft = cycleWidth * ratio;\r\n    }, { passive: true });\r\n\r\n    document.addEventListener(\"visibilitychange\", function () {\r\n      if (document.hidden) { pause(); } else { play(); }\r\n    });\r\n\r\n    liteQuery.addEventListener(\"change\", function(){ if(liteQuery.matches){ pause(); } else { play(); } });\r\n\r\n    \/* \u2014 D\u00e9marrage \u2014 *\/\r\n\r\n    measure();\r\n    syncToggle();\r\n\r\n    \/\/ Une seconde mesure apr\u00e8s le premier rendu : les polices et les images\r\n    \/\/ peuvent d\u00e9caler la mise en page juste apr\u00e8s l'initialisation.\r\n    window.requestAnimationFrame(function () {\r\n      measure();\r\n      play();\r\n    });\r\n\r\n    \/* \u2014\u2014\u2014\u2014\u2014 6. Inclinaison 3D des cartes \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n    var finePointer = window.matchMedia &&\r\n      window.matchMedia(\"(hover: hover) and (pointer: fine)\").matches;\r\n\r\n    if (finePointer && !reducedMotion) {\r\n      var tiltFrame = 0;\r\n      var tiltPending = null;\r\n\r\n      function flushTilt() {\r\n        tiltFrame = 0;\r\n        if (!tiltPending) { return; }\r\n\r\n        var card = tiltPending.card;\r\n        var rect = card.getBoundingClientRect();\r\n\r\n        if (rect.width && rect.height) {\r\n          var x = (tiltPending.x - rect.left) \/ rect.width - 0.5;   \/\/ -0.5 \u2026 0.5\r\n          var y = (tiltPending.y - rect.top) \/ rect.height - 0.5;\r\n\r\n          card.style.setProperty(\"--its-ry\", (x * 11).toFixed(2) + \"deg\");\r\n          card.style.setProperty(\"--its-rx\", (-y * 8).toFixed(2) + \"deg\");\r\n\r\n          \/\/ L'image se d\u00e9cale \u00e0 contresens : c'est ce d\u00e9calage qui cr\u00e9e la\r\n          \/\/ profondeur, et donc la sensation de flottement.\r\n          var img = card.querySelector(\".iptvit-sport__img\");\r\n          if (img) {\r\n            img.style.setProperty(\"--its-px\", (-x * 16).toFixed(1) + \"px\");\r\n            img.style.setProperty(\"--its-ty\", (-y * 16).toFixed(1) + \"px\");\r\n          }\r\n        }\r\n\r\n        tiltPending = null;\r\n      }\r\n\r\n      slides.forEach(function (slide) {\r\n        var card = slide.querySelector(\".iptvit-sport__slide-card\");\r\n        if (!card) { return; }\r\n\r\n        card.addEventListener(\"pointermove\", function (event) {\r\n          if (liteQuery.matches || event.pointerType !== \"mouse\" || dragging) { return; }\r\n\r\n          card.classList.add(\"is-tilting\");\r\n          tiltPending = { card: card, x: event.clientX, y: event.clientY };\r\n          if (!tiltFrame) { tiltFrame = window.requestAnimationFrame(flushTilt); }\r\n        });\r\n\r\n        card.addEventListener(\"pointerleave\", function () {\r\n          card.classList.remove(\"is-tilting\");\r\n          card.style.removeProperty(\"--its-rx\");\r\n          card.style.removeProperty(\"--its-ry\");\r\n\r\n          var img = card.querySelector(\".iptvit-sport__img\");\r\n          if (img) {\r\n            img.style.removeProperty(\"--its-px\");\r\n            img.style.removeProperty(\"--its-ty\");\r\n          }\r\n        });\r\n      });\r\n    }\r\n\r\n    \/* \u2014\u2014\u2014\u2014\u2014 7. Flottement et tapis roulant : seulement \u00e0 l'\u00e9cran \u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n    if (!reducedMotion && hasIO && rail) {\r\n      viewport.classList.add(\"is-marquee\");\r\n\r\n      var liveObserver = new IntersectionObserver(function (entries) {\r\n        entries.forEach(function (entry) {\r\n          inView = entry.isIntersecting;\r\n\r\n          \/\/ Le flottement ne tourne que quand le rail est visible : inutile\r\n          \/\/ de faire travailler le compositeur hors \u00e9cran.\r\n          rail.classList.toggle(\"iptvit-sport__carousel-live\", inView);\r\n\r\n          if (inView) { play(); } else { pause(); }\r\n        });\r\n      }, { threshold: 0.2 });\r\n\r\n      liveObserver.observe(rail);\r\n    } else if (rail) {\r\n      rail.classList.add(\"iptvit-sport__carousel-live\");\r\n    }\r\n\r\n    if (motionQuery && motionQuery.addEventListener) {\r\n      motionQuery.addEventListener(\"change\", function (event) {\r\n        if (!event.matches) { return; }\r\n        reducedMotion = true;\r\n        pause();\r\n        viewport.classList.remove(\"is-marquee\");\r\n        section.classList.remove(\"is-enhanced\");\r\n      });\r\n    }\r\n  }\r\n\r\n  function bootSportSections() {\r\n    Array.prototype.forEach.call(\r\n      document.querySelectorAll(\".iptvit-sport\"),\r\n      initSport\r\n    );\r\n  }\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", bootSportSections, { once: true });\r\n  } else {\r\n    bootSportSections();\r\n  }\r\n\r\n  if (window.elementorFrontend && window.elementorFrontend.hooks) {\r\n    window.elementorFrontend.hooks.addAction(\"frontend\/element_ready\/html.default\", function () {\r\n      bootSportSections();\r\n    });\r\n  }\r\n}());\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-035e3dc e-con-full e-flex e-con e-parent\" data-id=\"035e3dc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-59304fe elementor-widget elementor-widget-html\" data-id=\"59304fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  IPTV Italia \u2014 Elementor \/ Widget HTML \u2014 ANTEPRIMA CATALOGO \u2014 v2\r\n\r\n  CORRECTIONS\r\n  1. Couleur des titres : le h3 du spotlight prenait la couleur h3 du th\u00e8me,\r\n     donc sombre sur fond sombre en mode clair (m\u00eame bug que la section Sport).\r\n  2. Le poster perdait sa rotation pendant un changement (transform \u00e9cras\u00e9).\r\n     Idem pour l'image de fond, qui sautait de scale(1.08) \u00e0 scale(0.985).\r\n  3. Liste des d\u00e9lais de cartes trou\u00e9e (14, 17, 19, 20, 23-26 manquants) :\r\n     remplac\u00e9e par un calcul en JavaScript sur les cartes r\u00e9ellement visibles.\r\n  4. scroll-snap mandatory contre d\u00e9filement centr\u00e9 : pass\u00e9 en proximity.\r\n  5. S\u00e9lection au scroll bas\u00e9e sur une valeur p\u00e9rim\u00e9e : recalcul\u00e9e au bon moment.\r\n\r\n  EFFETS AJOUT\u00c9S (l\u00e9gers)\r\n  - Le poster du spotlight flotte doucement.\r\n  - Un reflet balaie le poster \u00e0 chaque changement de titre.\r\n  - Le fond se fond au lieu de dispara\u00eetre.\r\n  - Pastille coulissante sous les filtres.\r\n  - Les cartes rejouent leur entr\u00e9e en cascade \u00e0 chaque changement de filtre.\r\n  - Le compteur se remet en place avec un l\u00e9ger glissement.\r\n-->\r\n\r\n<style>\r\n.iptvit-catalogue {\r\n  --itc-bg: #f5f4ef;\r\n  --itc-surface: rgba(255, 255, 255, 0.84);\r\n  --itc-surface-strong: #ffffff;\r\n  --itc-ink: #111a27;\r\n  --itc-muted: #5b6770;\r\n  --itc-line: rgba(17, 26, 39, 0.12);\r\n  --itc-green: #1f7657;\r\n  --itc-green-deep: #145a43;\r\n  --itc-mint: #79dbb2;\r\n  --itc-edge: #b9f0d8;\r\n  --itc-red: #bd384a;\r\n  --itc-night: #07111a;\r\n  --itc-cream: #fbf7ed;\r\n  --itc-ease: cubic-bezier(0.22, 1, 0.36, 1);\r\n  --itc-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);\r\n  background:\r\n    radial-gradient(circle at 9% 8%, rgba(31, 118, 87, 0.14), transparent 28rem),\r\n    radial-gradient(circle at 92% 89%, rgba(189, 56, 74, 0.11), transparent 30rem),\r\n    var(--itc-bg);\r\n  color: var(--itc-ink);\r\n  font-family: inherit;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  padding: clamp(4.8rem, 8vw, 8rem) 0;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-catalogue,\r\n:root[data-theme=\"dark\"] .iptvit-catalogue {\r\n  --itc-bg: #07111a;\r\n  --itc-surface: rgba(14, 28, 38, 0.86);\r\n  --itc-surface-strong: #0d1a24;\r\n  --itc-ink: #f8f4e9;\r\n  --itc-muted: #adbac0;\r\n  --itc-line: rgba(234, 244, 239, 0.13);\r\n  --itc-green: #76d8ae;\r\n  --itc-green-deep: #76d8ae;\r\n  --itc-mint: #8be3bc;\r\n  --itc-edge: #ffffff;\r\n  --itc-red: #e27480;\r\n}\r\n\r\n@media (prefers-color-scheme: dark) {\r\n  :root:not([data-iptvit-theme]):not([data-theme]) .iptvit-catalogue {\r\n    --itc-bg: #07111a;\r\n    --itc-surface: rgba(14, 28, 38, 0.86);\r\n    --itc-surface-strong: #0d1a24;\r\n    --itc-ink: #f8f4e9;\r\n    --itc-muted: #adbac0;\r\n    --itc-line: rgba(234, 244, 239, 0.13);\r\n    --itc-green: #76d8ae;\r\n    --itc-green-deep: #76d8ae;\r\n    --itc-mint: #8be3bc;\r\n    --itc-edge: #ffffff;\r\n    --itc-red: #e27480;\r\n  }\r\n}\r\n\r\n.iptvit-catalogue,\r\n.iptvit-catalogue *,\r\n.iptvit-catalogue *::before,\r\n.iptvit-catalogue *::after {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.iptvit-catalogue::before {\r\n  background-image:\r\n    linear-gradient(var(--itc-line) 1px, transparent 1px),\r\n    linear-gradient(90deg, var(--itc-line) 1px, transparent 1px);\r\n  background-size: 5rem 5rem;\r\n  content: \"\";\r\n  inset: 0;\r\n  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.42), transparent 72%);\r\n  opacity: 0.2;\r\n  pointer-events: none;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-catalogue::after {\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  height: clamp(25rem, 48vw, 47rem);\r\n  left: clamp(-24rem, -15vw, -9rem);\r\n  pointer-events: none;\r\n  position: absolute;\r\n  top: clamp(-22rem, -14vw, -8rem);\r\n  width: clamp(25rem, 48vw, 47rem);\r\n}\r\n\r\n.iptvit-catalogue h2,\r\n.iptvit-catalogue h3,\r\n.iptvit-catalogue h4,\r\n.iptvit-catalogue p {\r\n  margin: 0;\r\n}\r\n\r\n\/* IMPORTANT \u2014 ne pas retirer.\r\n   Les th\u00e8mes WordPress appliquent aux titres une couleur qui suit leur propre\r\n   mode clair\/sombre. Sans cette ligne, le titre du spotlight prend cette\r\n   couleur et devient sombre sur fond sombre en mode clair. *\/\r\n.iptvit-catalogue h2,\r\n.iptvit-catalogue h3,\r\n.iptvit-catalogue h4,\r\n.iptvit-catalogue strong {\r\n  color: inherit;\r\n}\r\n\r\n.iptvit-catalogue button,\r\n.iptvit-catalogue a {\r\n  font: inherit;\r\n}\r\n\r\n.iptvit-catalogue__inner {\r\n  margin: 0 auto;\r\n  max-width: 92rem;\r\n  min-width: 0;\r\n  padding: 0 clamp(1.05rem, 3.2vw, 3rem);\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-catalogue__header {\r\n  align-items: end;\r\n  display: grid;\r\n  gap: clamp(1.5rem, 5vw, 5.5rem);\r\n  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.72fr);\r\n  margin-bottom: clamp(2.1rem, 4vw, 3.6rem);\r\n}\r\n\r\n.iptvit-catalogue__eyebrow {\r\n  align-items: center;\r\n  color: var(--itc-green-deep);\r\n  display: inline-flex;\r\n  font-size: 0.74rem;\r\n  font-weight: 900;\r\n  gap: 0.72rem;\r\n  letter-spacing: 0.15em;\r\n  margin-bottom: 1.05rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-catalogue__eyebrow::before {\r\n  background: linear-gradient(180deg, var(--itc-green), var(--itc-red));\r\n  border-radius: 999px;\r\n  content: \"\";\r\n  height: 2.15rem;\r\n  transform-origin: top center;\r\n  width: 0.27rem;\r\n}\r\n\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__header.is-visible .iptvit-catalogue__eyebrow::before {\r\n  animation: itcBar 620ms 120ms var(--itc-ease) backwards;\r\n}\r\n\r\n@keyframes itcBar {\r\n  from { transform: scaleY(0); }\r\n  to   { transform: scaleY(1); }\r\n}\r\n\r\n\/* Deux lignes, pas quatre. \u00c0 13.5ch le titre se cassait en quatre alors que\r\n   la colonne avait la place, ce qui creusait un vide en face de l'intro. *\/\r\n.iptvit-catalogue__header h2 {\r\n  color: var(--itc-ink);\r\n  font-size: clamp(2.35rem, 4.3vw, 4.3rem);\r\n  font-weight: 900;\r\n  letter-spacing: -0.06em;\r\n  line-height: 1;\r\n  max-width: 28ch;\r\n  text-wrap: balance;\r\n}\r\n\r\n\/* En bloc : la coupure tombe entre les deux phrases, jamais au milieu de\r\n   l'une d'elles, quelle que soit la largeur. *\/\r\n\/* \u2014\u2014\u2014\u2014\u2014 Remplissage du titre (variante B) \u2014\u2014\u2014\u2014\u2014\r\n   Le mot part dans l'encre du titre puis se colore de gauche \u00e0 droite.\r\n   Le liser\u00e9 clair est le DERNIER arr\u00eat du d\u00e9grad\u00e9 de remplissage : comme ce\r\n   d\u00e9grad\u00e9 s'\u00e9tire avec sa couche, le liser\u00e9 reste coll\u00e9 au front PAR\r\n   CONSTRUCTION \u2014 il n'y a pas deux animations \u00e0 synchroniser, donc aucune\r\n   d\u00e9rive possible. Le remplissage d\u00e9passe \u00e0 108 % pour que le liser\u00e9 sorte\r\n   du mot au lieu d'y rester coinc\u00e9.\r\n   L'\u00e9tat par d\u00e9faut est le mot D\u00c9J\u00c0 color\u00e9 : si l'animation ne tourne pas,\r\n   le titre reste correct. *\/\r\n.iptvit-catalogue__header h2 span {\r\n  background-image:\r\n    linear-gradient(96deg, var(--itc-green-deep) 0%, var(--itc-red) 88%, var(--itc-edge) 98%, var(--itc-edge) 100%),\r\n    linear-gradient(var(--itc-ink), var(--itc-ink));\r\n  background-repeat: no-repeat;\r\n  background-size: 108% 100%, 100% 100%;\r\n  display: block;\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  color: transparent;\r\n  -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__header h2 span { background-size: 0 100%, 100% 100%; }\r\n\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__header.is-visible h2 span {\r\n  animation: itcTitleFill 1.15s .12s cubic-bezier(.16,.84,.28,1) forwards;\r\n}\r\n\r\n@keyframes itcTitleFill { to { background-size: 108% 100%, 100% 100%; } }\r\n\r\n.iptvit-catalogue__intro {\r\n  border-left: 1px solid var(--itc-line);\r\n  color: var(--itc-muted);\r\n  font-size: clamp(1rem, 1.24vw, 1.12rem);\r\n  line-height: 1.75;\r\n  overflow-wrap: anywhere;\r\n  padding: 0.3rem 0 0.3rem clamp(1.1rem, 2.4vw, 2rem);\r\n}\r\n\r\n.iptvit-catalogue__shell {\r\n  background: var(--itc-surface);\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: clamp(1.5rem, 2.8vw, 2.6rem);\r\n  box-shadow: 0 2rem 6rem rgba(7, 17, 26, 0.11);\r\n  max-width: 100%;\r\n  min-width: 0;\r\n  overflow: hidden;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-catalogue__shell::before {\r\n  background: linear-gradient(90deg, var(--itc-green), rgba(255, 255, 255, 0.14) 50%, var(--itc-red));\r\n  content: \"\";\r\n  height: 0.16rem;\r\n  inset: 0 0 auto;\r\n  position: absolute;\r\n  transform: scaleX(0);\r\n  transform-origin: left center;\r\n  transition: transform 950ms var(--itc-ease);\r\n  z-index: 8;\r\n}\r\n\r\n.iptvit-catalogue__shell.is-visible::before,\r\n.iptvit-catalogue:not(.is-enhanced) .iptvit-catalogue__shell::before {\r\n  transform: scaleX(1);\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Spotlight \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-catalogue__spotlight {\r\n  background: var(--itc-night);\r\n  color: var(--itc-cream);\r\n  isolation: isolate;\r\n  min-height: clamp(26rem, 42vw, 35rem);\r\n  overflow: hidden;\r\n  position: relative;\r\n}\r\n\r\n.iptvit-catalogue__backdrop,\r\n.iptvit-catalogue__backdrop::after,\r\n.iptvit-catalogue__backdrop-image {\r\n  inset: 0;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-catalogue__backdrop {\r\n  background:\r\n    radial-gradient(circle at 25% 35%, rgba(121, 219, 178, 0.24), transparent 26rem),\r\n    linear-gradient(135deg, #173243, #07111a 72%);\r\n  overflow: hidden;\r\n  z-index: -3;\r\n}\r\n\r\n.iptvit-catalogue__backdrop-image {\r\n  filter: blur(1.15rem) saturate(0.88);\r\n  height: 112%;\r\n  left: -3%;\r\n  object-fit: cover;\r\n  opacity: 0.56;\r\n  top: -6%;\r\n  transform: scale(1.08);\r\n  transition: opacity 320ms var(--itc-ease-soft);\r\n  width: 106%;\r\n}\r\n\r\n\/* D\u00e9rive tr\u00e8s lente du fond : le d\u00e9cor respire au lieu d'\u00eatre fig\u00e9 *\/\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__shell.is-visible .iptvit-catalogue__backdrop-image {\r\n  animation: itcDrift 30s var(--itc-ease-soft) infinite alternate;\r\n}\r\n\r\n@keyframes itcDrift {\r\n  from { transform: scale(1.08) translate3d(0, 0, 0); }\r\n  to   { transform: scale(1.15) translate3d(-1.8%, 1.2%, 0); }\r\n}\r\n\r\n.iptvit-catalogue__backdrop::after {\r\n  background:\r\n    linear-gradient(90deg, rgba(5, 13, 20, 0.98) 0%, rgba(5, 13, 20, 0.78) 45%, rgba(5, 13, 20, 0.22) 100%),\r\n    linear-gradient(0deg, rgba(5, 13, 20, 0.74), transparent 64%);\r\n  content: \"\";\r\n}\r\n\r\n.iptvit-catalogue__spotlight-grid {\r\n  align-items: center;\r\n  display: grid;\r\n  gap: clamp(1.6rem, 4.3vw, 4.4rem);\r\n  grid-template-columns: minmax(12rem, 0.55fr) minmax(0, 1.45fr);\r\n  min-height: inherit;\r\n  padding: clamp(2rem, 4.4vw, 4rem);\r\n  position: relative;\r\n  z-index: 2;\r\n}\r\n\r\n\/* Le cadre porte la mise en page et le flottement ; le poster porte sa\r\n   rotation. S\u00e9parer les deux \u00e9vite que l'un \u00e9crase le transform de l'autre. *\/\r\n.iptvit-catalogue__poster-frame {\r\n  align-self: center;\r\n  aspect-ratio: 2 \/ 3;\r\n  justify-self: center;\r\n  max-height: 28rem;\r\n  max-width: 18.7rem;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__shell.is-visible .iptvit-catalogue__poster-frame {\r\n  animation: itcFloat 9s var(--itc-ease-soft) infinite;\r\n}\r\n\r\n@keyframes itcFloat {\r\n  0%, 100% { transform: translate3d(0, 0.34rem, 0); }\r\n  50%      { transform: translate3d(0, -0.34rem, 0); }\r\n}\r\n\r\n.iptvit-catalogue__active-poster {\r\n  border: 1px solid rgba(255, 255, 255, 0.22);\r\n  border-radius: clamp(1.1rem, 2vw, 1.75rem);\r\n  box-shadow:\r\n    0 2rem 4rem rgba(0, 0, 0, 0.38),\r\n    1.2rem 1.3rem 0 -0.7rem rgba(121, 219, 178, 0.17),\r\n    2rem 2.1rem 0 -1rem rgba(189, 56, 74, 0.14);\r\n  height: 100%;\r\n  overflow: hidden;\r\n  position: relative;\r\n  transform:\r\n    rotate(-1.4deg)\r\n    translateY(var(--itc-poster-y, 0rem))\r\n    scale(var(--itc-poster-s, 1));\r\n  transition:\r\n    opacity 180ms ease,\r\n    transform 650ms var(--itc-ease);\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-catalogue__active-poster img {\r\n  display: block;\r\n  height: 100%;\r\n  object-fit: cover;\r\n  width: 100%;\r\n}\r\n\r\n\/* Reflet qui traverse le poster \u00e0 chaque changement de titre *\/\r\n.iptvit-catalogue__active-poster::after {\r\n  background: linear-gradient(104deg, transparent 36%, rgba(255, 255, 255, 0.3) 50%, transparent 64%);\r\n  content: \"\";\r\n  inset: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  transform: translateX(-160%);\r\n  z-index: 4;\r\n}\r\n\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-poster::after {\r\n  animation: itcSheen 950ms 140ms var(--itc-ease-soft);\r\n}\r\n\r\n@keyframes itcSheen {\r\n  to { transform: translateX(160%); }\r\n}\r\n\r\n.iptvit-catalogue__active-poster-placeholder {\r\n  align-items: center;\r\n  background:\r\n    radial-gradient(circle at 50% 23%, rgba(121, 219, 178, 0.24), transparent 34%),\r\n    linear-gradient(145deg, #1d3743, #08121c 67%);\r\n  color: rgba(248, 244, 233, 0.74);\r\n  display: none;\r\n  font-size: clamp(1.5rem, 3vw, 2.7rem);\r\n  font-weight: 900;\r\n  height: 100%;\r\n  justify-content: center;\r\n  letter-spacing: 0.18em;\r\n  padding: 0.6rem;\r\n  text-align: center;\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-catalogue__active-poster.is-missing img {\r\n  display: none;\r\n}\r\n\r\n.iptvit-catalogue__active-poster.is-missing .iptvit-catalogue__active-poster-placeholder {\r\n  display: flex;\r\n}\r\n\r\n.iptvit-catalogue__active-copy {\r\n  max-width: 44rem;\r\n  transition:\r\n    opacity 170ms ease,\r\n    transform 500ms var(--itc-ease);\r\n}\r\n\r\n\/* Chaque \u00e9l\u00e9ment a maintenant sa propre r\u00e8gle : celle d'origine appliquait le\r\n   m\u00eame transform aux trois, ce qui effa\u00e7ait la rotation du poster et faisait\r\n   sauter l'\u00e9chelle du fond. *\/\r\n.iptvit-catalogue__spotlight.is-changing .iptvit-catalogue__active-copy {\r\n  opacity: 0;\r\n  transform: translateY(0.65rem) scale(0.985);\r\n}\r\n\r\n.iptvit-catalogue__spotlight.is-changing .iptvit-catalogue__active-poster {\r\n  opacity: 0;\r\n  --itc-poster-y: 0.65rem;\r\n  --itc-poster-s: 0.985;\r\n}\r\n\r\n\/* Le fond se fond au lieu de s'\u00e9teindre : la transition reste continue *\/\r\n.iptvit-catalogue__spotlight.is-changing .iptvit-catalogue__backdrop-image {\r\n  opacity: 0.14;\r\n}\r\n\r\n\/* Les \u00e9l\u00e9ments du texte reviennent en cascade plut\u00f4t que d'un bloc *\/\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-meta,\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-copy h3,\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-description,\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-tags,\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-cta {\r\n  animation: itcRise 540ms var(--itc-rise-delay, 0ms) var(--itc-ease) backwards;\r\n}\r\n\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-copy h3 { --itc-rise-delay: 55ms; }\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-description { --itc-rise-delay: 115ms; }\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-tags { --itc-rise-delay: 175ms; }\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__active-cta { --itc-rise-delay: 235ms; }\r\n\r\n@keyframes itcRise {\r\n  from { opacity: 0; transform: translateY(0.55rem); }\r\n  to   { opacity: 1; transform: none; }\r\n}\r\n\r\n.iptvit-catalogue__active-meta {\r\n  align-items: center;\r\n  color: var(--itc-mint);\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  font-size: 0.73rem;\r\n  font-weight: 900;\r\n  gap: 0.72rem;\r\n  letter-spacing: 0.14em;\r\n  margin-bottom: 1rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-catalogue__active-type {\r\n  background: rgba(121, 219, 178, 0.12);\r\n  border: 1px solid rgba(121, 219, 178, 0.3);\r\n  border-radius: 999px;\r\n  padding: 0.55rem 0.78rem;\r\n}\r\n\r\n.iptvit-catalogue__active-meta::after {\r\n  background: linear-gradient(90deg, var(--itc-mint), var(--itc-red));\r\n  border-radius: 999px;\r\n  content: \"\";\r\n  height: 0.12rem;\r\n  width: 3rem;\r\n}\r\n\r\n\/* Hauteur r\u00e9serv\u00e9e, identique d'un titre \u00e0 l'autre.\r\n   Sans cela, \u00ab Dark \u00bb tient sur une ligne et \u00ab Il mondo segreto dei suoni con\r\n   David Attenborough \u00bb en prend quatre : le bloc grandit, la barre d'outils\r\n   descend, et les fl\u00e8ches se d\u00e9robent sous le curseur entre deux clics. *\/\r\n.iptvit-catalogue__active-copy h3 {\r\n  \/* Explicite : ce titre est pos\u00e9 sur un fond sombre quel que soit le th\u00e8me *\/\r\n  color: var(--itc-cream);\r\n  display: -webkit-box;\r\n  font-size: clamp(2.2rem, 4.4vw, 4rem);\r\n  font-weight: 900;\r\n  letter-spacing: -0.06em;\r\n  line-height: 0.94;\r\n  max-width: 17ch;\r\n  min-height: 2.82em;\r\n  overflow: hidden;\r\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45), 0 2px 18px rgba(0, 0, 0, 0.5);\r\n  text-wrap: balance;\r\n  -webkit-box-orient: vertical;\r\n  -webkit-line-clamp: 3;\r\n}\r\n\r\n.iptvit-catalogue__active-description {\r\n  color: rgba(248, 244, 233, 0.82);\r\n  display: -webkit-box;\r\n  font-size: clamp(1rem, 1.35vw, 1.16rem);\r\n  line-height: 1.7;\r\n  margin-top: 1.3rem !important;\r\n  max-width: 52ch;\r\n  min-height: 3.4em;\r\n  overflow: hidden;\r\n  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);\r\n  -webkit-box-orient: vertical;\r\n  -webkit-line-clamp: 2;\r\n}\r\n\r\n.iptvit-catalogue__active-tags {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 0.55rem;\r\n  list-style: none;\r\n  margin: 1.4rem 0 0;\r\n  padding: 0;\r\n}\r\n\r\n.iptvit-catalogue__active-tags li {\r\n  background: rgba(255, 255, 255, 0.07);\r\n  border: 1px solid rgba(255, 255, 255, 0.15);\r\n  border-radius: 999px;\r\n  color: rgba(248, 244, 233, 0.86);\r\n  font-size: 0.77rem;\r\n  font-weight: 750;\r\n  padding: 0.48rem 0.72rem;\r\n}\r\n\r\n.iptvit-catalogue__active-cta {\r\n  align-items: center;\r\n  background: linear-gradient(135deg, #2a8a66, #1d6d51);\r\n  border: 1px solid rgba(139, 227, 188, 0.46);\r\n  border-radius: 0.9rem;\r\n  color: #ffffff;\r\n  display: inline-flex;\r\n  font-size: 0.9rem;\r\n  font-weight: 850;\r\n  gap: 0.7rem;\r\n  margin-top: 1.65rem;\r\n  min-height: 3.2rem;\r\n  overflow: hidden;\r\n  padding: 0.75rem 1rem 0.75rem 1.15rem;\r\n  position: relative;\r\n  text-decoration: none;\r\n  transition:\r\n    background 220ms ease,\r\n    box-shadow 240ms ease,\r\n    transform 220ms var(--itc-ease);\r\n}\r\n\r\n.iptvit-catalogue__active-cta::after {\r\n  background: linear-gradient(105deg, transparent 34%, rgba(255, 255, 255, 0.3) 50%, transparent 66%);\r\n  content: \"\";\r\n  inset: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  transform: translateX(-135%);\r\n}\r\n\r\n.iptvit-catalogue__active-cta svg {\r\n  fill: none;\r\n  height: 1.05rem;\r\n  stroke: currentColor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.8;\r\n  transition: transform 300ms var(--itc-ease);\r\n  width: 1.05rem;\r\n}\r\n\r\n.iptvit-catalogue__active-cta:hover {\r\n  background: linear-gradient(135deg, #319a73, #217859);\r\n  box-shadow: 0 1rem 2.4rem -0.6rem rgba(31, 118, 87, 0.6);\r\n  color: #ffffff;\r\n  transform: translateY(-0.18rem);\r\n}\r\n\r\n.iptvit-catalogue__active-cta:hover::after { animation: itcSweep 780ms var(--itc-ease-soft); }\r\n.iptvit-catalogue__active-cta:hover svg { transform: translateX(0.2rem); }\r\n\r\n@keyframes itcSweep {\r\n  from { transform: translateX(-135%); }\r\n  to   { transform: translateX(135%); }\r\n}\r\n\r\n.iptvit-catalogue__active-cta:focus-visible,\r\n.iptvit-catalogue__filter:focus-visible,\r\n.iptvit-catalogue__arrow:focus-visible,\r\n.iptvit-catalogue__card-button:focus-visible {\r\n  outline: 0.18rem solid var(--itc-mint);\r\n  outline-offset: 0.2rem;\r\n}\r\n\r\n.iptvit-catalogue__number {\r\n  align-items: baseline;\r\n  bottom: clamp(1.4rem, 3vw, 2.6rem);\r\n  color: rgba(248, 244, 233, 0.48);\r\n  display: flex;\r\n  font-variant-numeric: tabular-nums;\r\n  gap: 0.38rem;\r\n  position: absolute;\r\n  right: clamp(1.4rem, 3vw, 2.6rem);\r\n  z-index: 3;\r\n}\r\n\r\n.iptvit-catalogue__number-current {\r\n  color: var(--itc-cream);\r\n  display: inline-block;\r\n  font-size: 1.5rem;\r\n  font-weight: 900;\r\n}\r\n\r\n.iptvit-catalogue__spotlight.is-entering .iptvit-catalogue__number-current {\r\n  animation: itcRoll 460ms var(--itc-ease);\r\n}\r\n\r\n@keyframes itcRoll {\r\n  from { opacity: 0; transform: translateY(0.45rem); }\r\n  to   { opacity: 1; transform: none; }\r\n}\r\n\r\n.iptvit-catalogue__number-total {\r\n  font-size: 0.78rem;\r\n  font-weight: 800;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Navigateur de cartes \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-catalogue__browser {\r\n  max-width: 100%;\r\n  min-width: 0;\r\n  padding: clamp(1.25rem, 2.6vw, 2.25rem);\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-catalogue__toolbar {\r\n  align-items: center;\r\n  display: flex;\r\n  gap: 1rem;\r\n  justify-content: space-between;\r\n  margin-bottom: 1.25rem;\r\n}\r\n\r\n.iptvit-catalogue__filters {\r\n  background: color-mix(in srgb, var(--itc-surface-strong) 76%, transparent);\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: 999px;\r\n  display: inline-flex;\r\n  gap: 0.25rem;\r\n  padding: 0.28rem;\r\n  position: relative;\r\n}\r\n\r\n\/* Pastille coulissante : elle glisse d'un filtre \u00e0 l'autre au lieu que le\r\n   fond saute d'un bouton \u00e0 un autre. *\/\r\n.iptvit-catalogue__filters::before {\r\n  background: var(--itc-ink);\r\n  border-radius: 999px;\r\n  bottom: 0.28rem;\r\n  content: \"\";\r\n  left: 0;\r\n  position: absolute;\r\n  top: 0.28rem;\r\n  transform: translateX(var(--itc-pill-x, 0px));\r\n  transition:\r\n    transform 460ms var(--itc-ease),\r\n    width 460ms var(--itc-ease);\r\n  width: var(--itc-pill-w, 0px);\r\n  z-index: 0;\r\n}\r\n\r\n.iptvit-catalogue__filters.is-instant::before {\r\n  transition: none;\r\n}\r\n\r\n.iptvit-catalogue__filter {\r\n  background: transparent;\r\n  border: 0;\r\n  border-radius: 999px;\r\n  color: var(--itc-muted);\r\n  cursor: pointer;\r\n  font-size: 0.79rem;\r\n  font-weight: 850;\r\n  min-height: 2.55rem;\r\n  padding: 0.55rem 0.9rem;\r\n  position: relative;\r\n  transition:\r\n    color 260ms var(--itc-ease-soft),\r\n    transform 220ms var(--itc-ease);\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-catalogue__filter[aria-pressed=\"true\"] {\r\n  color: var(--itc-bg);\r\n}\r\n\r\n.iptvit-catalogue__filter:hover {\r\n  transform: translateY(-0.08rem);\r\n}\r\n\r\n.iptvit-catalogue__controls {\r\n  align-items: center;\r\n  display: flex;\r\n  gap: 0.55rem;\r\n}\r\n\r\n.iptvit-catalogue__status {\r\n  color: var(--itc-muted);\r\n  font-size: 0.75rem;\r\n  font-variant-numeric: tabular-nums;\r\n  font-weight: 850;\r\n  min-width: 4.7rem;\r\n  text-align: center;\r\n}\r\n\r\n.iptvit-catalogue__arrow {\r\n  align-items: center;\r\n  background: var(--itc-surface-strong);\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: 50%;\r\n  color: var(--itc-ink);\r\n  cursor: pointer;\r\n  display: inline-flex;\r\n  height: 2.8rem;\r\n  justify-content: center;\r\n  transition:\r\n    border-color 220ms ease,\r\n    color 220ms ease,\r\n    transform 220ms var(--itc-ease);\r\n  width: 2.8rem;\r\n}\r\n\r\n.iptvit-catalogue__arrow svg {\r\n  fill: none;\r\n  height: 1rem;\r\n  stroke: currentColor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.8;\r\n  transition: transform 300ms var(--itc-ease);\r\n  width: 1rem;\r\n}\r\n\r\n.iptvit-catalogue__arrow:hover:not(:disabled) {\r\n  border-color: var(--itc-green);\r\n  color: var(--itc-green-deep);\r\n  transform: translateY(-0.12rem);\r\n}\r\n\r\n.iptvit-catalogue__arrow--next:hover:not(:disabled) svg { transform: translateX(0.12rem); }\r\n.iptvit-catalogue__arrow--prev:hover:not(:disabled) svg { transform: translateX(-0.12rem); }\r\n.iptvit-catalogue__arrow:active:not(:disabled) { transform: translateY(0) scale(0.94); }\r\n\r\n.iptvit-catalogue__arrow:disabled {\r\n  cursor: default;\r\n  opacity: 0.35;\r\n}\r\n\r\n.iptvit-catalogue__viewport {\r\n  margin: -0.35rem;\r\n  max-width: calc(100% + 0.7rem);\r\n  min-width: 0;\r\n  overflow-x: auto;\r\n  overflow-y: hidden;\r\n  padding: 0.35rem;\r\n  \/* proximity, et non mandatory : le d\u00e9filement centre la carte choisie, et\r\n     un accrochage obligatoire la ramenait aussit\u00f4t contre le bord gauche. *\/\r\n  scroll-snap-type: x proximity;\r\n  scrollbar-color: color-mix(in srgb, var(--itc-green) 58%, transparent) transparent;\r\n  scrollbar-width: thin;\r\n}\r\n\r\n.iptvit-catalogue__viewport::-webkit-scrollbar {\r\n  height: 0.38rem;\r\n}\r\n\r\n.iptvit-catalogue__viewport::-webkit-scrollbar-track {\r\n  background: transparent;\r\n}\r\n\r\n.iptvit-catalogue__viewport::-webkit-scrollbar-thumb {\r\n  background: color-mix(in srgb, var(--itc-green) 52%, transparent);\r\n  border-radius: 999px;\r\n}\r\n\r\n.iptvit-catalogue__track {\r\n  display: flex;\r\n  gap: clamp(0.75rem, 1.25vw, 1.05rem);\r\n  list-style: none;\r\n  margin: 0;\r\n  min-width: 100%;\r\n  padding: 0 0 0.7rem;\r\n  width: max-content;\r\n}\r\n\r\n.iptvit-catalogue__card {\r\n  flex: 0 0 clamp(10.6rem, 15.4vw, 13.4rem);\r\n  min-width: 0;\r\n  scroll-snap-align: start;\r\n}\r\n\r\n.iptvit-catalogue__card[hidden] {\r\n  display: none;\r\n}\r\n\r\n\/* Les d\u00e9lais sont pos\u00e9s en JavaScript sur les cartes r\u00e9ellement visibles :\r\n   la liste de nth-child d'origine sautait les rangs 14, 17, 19, 20 et 23 \u00e0 26,\r\n   qui apparaissaient donc sans d\u00e9calage. *\/\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__track:not(.is-entering) .iptvit-catalogue__card {\r\n  opacity: 0;\r\n}\r\n\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__track.is-entering .iptvit-catalogue__card:not([hidden]) {\r\n  animation: itcCardIn 520ms var(--itc-card-delay, 0ms) var(--itc-ease) backwards;\r\n}\r\n\r\n@keyframes itcCardIn {\r\n  from { opacity: 0; transform: translateY(0.9rem); }\r\n  to   { opacity: 1; transform: none; }\r\n}\r\n\r\n.iptvit-catalogue__card-button {\r\n  background: transparent;\r\n  border: 0;\r\n  color: inherit;\r\n  cursor: pointer;\r\n  display: block;\r\n  padding: 0;\r\n  text-align: left;\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-catalogue__poster {\r\n  aspect-ratio: 2 \/ 3;\r\n  background:\r\n    radial-gradient(circle at 50% 24%, rgba(121, 219, 178, 0.22), transparent 38%),\r\n    linear-gradient(145deg, #173241, #07111a 72%);\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: clamp(0.9rem, 1.5vw, 1.3rem);\r\n  box-shadow: 0 1rem 2.4rem rgba(7, 17, 26, 0.13);\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  position: relative;\r\n  transform-origin: center bottom;\r\n  transition:\r\n    border-color 260ms ease,\r\n    box-shadow 260ms ease,\r\n    transform 420ms var(--itc-ease);\r\n}\r\n\r\n.iptvit-catalogue__poster::before {\r\n  background: linear-gradient(180deg, transparent 52%, rgba(3, 9, 14, 0.92));\r\n  content: \"\";\r\n  inset: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  z-index: 2;\r\n}\r\n\r\n.iptvit-catalogue__poster::after {\r\n  background: linear-gradient(90deg, var(--itc-green), var(--itc-red));\r\n  bottom: 0;\r\n  content: \"\";\r\n  height: 0.2rem;\r\n  left: 0;\r\n  position: absolute;\r\n  transform: scaleX(0);\r\n  transform-origin: left center;\r\n  transition: transform 420ms var(--itc-ease);\r\n  width: 100%;\r\n  z-index: 4;\r\n}\r\n\r\n.iptvit-catalogue__poster img {\r\n  display: block;\r\n  height: 100%;\r\n  object-fit: cover;\r\n  transform: scale(1.001);\r\n  transition: transform 620ms var(--itc-ease);\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-catalogue__card[data-poster-missing=\"true\"] .iptvit-catalogue__poster img {\r\n  display: none;\r\n}\r\n\r\n.iptvit-catalogue__poster-placeholder {\r\n  align-items: center;\r\n  color: rgba(248, 244, 233, 0.8);\r\n  display: flex;\r\n  font-size: 1.35rem;\r\n  font-weight: 900;\r\n  inset: 0;\r\n  justify-content: center;\r\n  letter-spacing: 0.16em;\r\n  position: absolute;\r\n  text-align: center;\r\n}\r\n\r\n.iptvit-catalogue__poster-index,\r\n.iptvit-catalogue__poster-label {\r\n  color: #ffffff;\r\n  position: absolute;\r\n  z-index: 3;\r\n}\r\n\r\n.iptvit-catalogue__poster-index {\r\n  background: rgba(5, 13, 20, 0.55);\r\n  border: 1px solid rgba(255, 255, 255, 0.2);\r\n  border-radius: 999px;\r\n  font-size: 0.66rem;\r\n  font-variant-numeric: tabular-nums;\r\n  font-weight: 900;\r\n  left: 0.72rem;\r\n  padding: 0.35rem 0.48rem;\r\n  top: 0.72rem;\r\n}\r\n\r\n.iptvit-catalogue__poster-label {\r\n  bottom: 0.75rem;\r\n  font-size: 0.68rem;\r\n  font-weight: 850;\r\n  left: 0.78rem;\r\n  letter-spacing: 0.1em;\r\n  right: 0.78rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-catalogue__card-copy {\r\n  padding: 0.85rem 0.18rem 0;\r\n}\r\n\r\n.iptvit-catalogue__card-copy h4 {\r\n  color: var(--itc-ink);\r\n  display: -webkit-box;\r\n  font-size: 0.91rem;\r\n  font-weight: 860;\r\n  letter-spacing: -0.02em;\r\n  line-height: 1.25;\r\n  overflow: hidden;\r\n  -webkit-box-orient: vertical;\r\n  -webkit-line-clamp: 2;\r\n}\r\n\r\n.iptvit-catalogue__card-copy p {\r\n  color: var(--itc-muted);\r\n  font-size: 0.72rem;\r\n  font-weight: 700;\r\n  margin-top: 0.28rem;\r\n}\r\n\r\n.iptvit-catalogue__card-button:hover .iptvit-catalogue__poster {\r\n  border-color: color-mix(in srgb, var(--itc-green) 64%, var(--itc-line));\r\n  box-shadow: 0 1.35rem 3rem rgba(7, 17, 26, 0.2);\r\n  transform: translateY(-0.4rem) rotate(0.45deg);\r\n}\r\n\r\n.iptvit-catalogue__card-button:hover .iptvit-catalogue__poster img {\r\n  transform: scale(1.035);\r\n}\r\n\r\n.iptvit-catalogue__card-button[aria-pressed=\"true\"] .iptvit-catalogue__poster {\r\n  border-color: var(--itc-green);\r\n  box-shadow:\r\n    0 0 0 0.12rem color-mix(in srgb, var(--itc-green) 26%, transparent),\r\n    0 1.35rem 3rem rgba(7, 17, 26, 0.2);\r\n  transform: translateY(-0.25rem);\r\n}\r\n\r\n\/* La carte s\u00e9lectionn\u00e9e flotte : elle se distingue du reste de la bande\r\n   sans avoir besoin d'un cadre plus lourd. *\/\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__card-button[aria-pressed=\"true\"] .iptvit-catalogue__poster {\r\n  animation: itcCardFloat 5.4s var(--itc-ease-soft) infinite;\r\n}\r\n\r\n@keyframes itcCardFloat {\r\n  0%, 100% { transform: translateY(-0.22rem); }\r\n  50%      { transform: translateY(-0.62rem); }\r\n}\r\n\r\n\/* Au survol, le flottement s'efface pour laisser la main au relief de survol *\/\r\n.iptvit-catalogue__card-button:hover .iptvit-catalogue__poster {\r\n  animation: none;\r\n}\r\n\r\n.iptvit-catalogue__card-button[aria-pressed=\"true\"] .iptvit-catalogue__poster::after {\r\n  transform: scaleX(1);\r\n}\r\n\r\n.iptvit-catalogue__footer {\r\n  align-items: center;\r\n  border-top: 1px solid var(--itc-line);\r\n  display: flex;\r\n  gap: 1.5rem;\r\n  justify-content: space-between;\r\n  margin-top: 1.6rem;\r\n  padding-top: 1.45rem;\r\n}\r\n\r\n.iptvit-catalogue__footer-copy {\r\n  color: var(--itc-muted);\r\n  font-size: 0.88rem;\r\n  line-height: 1.55;\r\n}\r\n\r\n.iptvit-catalogue__footer-copy strong {\r\n  color: var(--itc-ink);\r\n  display: block;\r\n  font-size: 1rem;\r\n  margin-bottom: 0.16rem;\r\n}\r\n\r\n.iptvit-catalogue__footer-link {\r\n  align-items: center;\r\n  color: var(--itc-green-deep);\r\n  display: inline-flex;\r\n  flex: 0 0 auto;\r\n  font-size: 0.86rem;\r\n  font-weight: 900;\r\n  gap: 0.6rem;\r\n  text-decoration: none;\r\n}\r\n\r\n.iptvit-catalogue__footer-link svg {\r\n  fill: none;\r\n  height: 1rem;\r\n  stroke: currentColor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.8;\r\n  transition: transform 220ms ease;\r\n  width: 1rem;\r\n}\r\n\r\n.iptvit-catalogue__footer-link:hover svg {\r\n  transform: translateX(0.25rem);\r\n}\r\n\r\n.iptvit-catalogue__reveal {\r\n  opacity: 1;\r\n  transform: none;\r\n}\r\n\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__reveal {\r\n  opacity: 0;\r\n  transform: translateY(1rem);\r\n  transition:\r\n    opacity 650ms var(--itc-ease) var(--itc-delay, 0ms),\r\n    transform 650ms var(--itc-ease) var(--itc-delay, 0ms);\r\n}\r\n\r\n.iptvit-catalogue.is-enhanced .iptvit-catalogue__reveal.is-visible {\r\n  opacity: 1;\r\n  transform: none;\r\n}\r\n\r\n@media (max-width: 68rem) {\r\n  .iptvit-catalogue__header {\r\n    gap: 2rem;\r\n    grid-template-columns: minmax(0, 1.1fr) minmax(17rem, 0.8fr);\r\n  }\r\n\r\n  .iptvit-catalogue__spotlight-grid {\r\n    grid-template-columns: minmax(11rem, 0.48fr) minmax(0, 1.2fr);\r\n  }\r\n\r\n  .iptvit-catalogue__poster-frame {\r\n    max-height: 24rem;\r\n    max-width: 16rem;\r\n  }\r\n}\r\n\r\n@media (max-width: 50rem) {\r\n  .iptvit-catalogue__header {\r\n    align-items: start;\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .iptvit-catalogue__intro {\r\n    max-width: 42rem;\r\n  }\r\n\r\n  .iptvit-catalogue__spotlight-grid {\r\n    gap: 1.8rem;\r\n    grid-template-columns: minmax(8.6rem, 0.36fr) minmax(0, 1fr);\r\n    padding: 2rem;\r\n  }\r\n\r\n  .iptvit-catalogue__poster-frame {\r\n    max-height: 19rem;\r\n    max-width: 12.7rem;\r\n  }\r\n\r\n  .iptvit-catalogue__active-copy h3 {\r\n    font-size: clamp(2rem, 7vw, 3.6rem);\r\n  }\r\n\r\n  .iptvit-catalogue__number {\r\n    display: none;\r\n  }\r\n\r\n  .iptvit-catalogue__toolbar {\r\n    align-items: stretch;\r\n    flex-direction: column;\r\n  }\r\n\r\n  .iptvit-catalogue__filters {\r\n    max-width: 100%;\r\n    overflow-x: auto;\r\n    scrollbar-width: none;\r\n    width: 100%;\r\n  }\r\n\r\n  .iptvit-catalogue__filters::-webkit-scrollbar {\r\n    display: none;\r\n  }\r\n\r\n  .iptvit-catalogue__filter {\r\n    flex: 0 0 auto;\r\n  }\r\n\r\n  .iptvit-catalogue__controls {\r\n    justify-content: flex-end;\r\n  }\r\n\r\n  .iptvit-catalogue__status {\r\n    margin-right: auto;\r\n    text-align: left;\r\n  }\r\n\r\n  .iptvit-catalogue__card {\r\n    flex-basis: clamp(10.2rem, 27vw, 12.5rem);\r\n  }\r\n}\r\n\r\n@media (max-width: 39rem) {\r\n  .iptvit-catalogue {\r\n    padding: 4.2rem 0;\r\n  }\r\n\r\n  .iptvit-catalogue__header h2 {\r\n    font-size: clamp(2.35rem, 12vw, 3.5rem);\r\n  }\r\n\r\n  .iptvit-catalogue__spotlight {\r\n    min-height: auto;\r\n  }\r\n\r\n  .iptvit-catalogue__spotlight-grid {\r\n    align-items: start;\r\n    gap: 1.25rem;\r\n    grid-template-columns: 6.8rem minmax(0, 1fr);\r\n    min-height: 23rem;\r\n    padding: 1.35rem;\r\n  }\r\n\r\n  .iptvit-catalogue__poster-frame {\r\n    max-height: none;\r\n    max-width: none;\r\n  }\r\n\r\n  .iptvit-catalogue__active-poster {\r\n    border-radius: 0.85rem;\r\n    box-shadow: 0 1.1rem 2.2rem rgba(0, 0, 0, 0.34);\r\n  }\r\n\r\n  .iptvit-catalogue__active-meta {\r\n    align-items: flex-start;\r\n    flex-direction: column;\r\n    font-size: 0.63rem;\r\n    gap: 0.5rem;\r\n    letter-spacing: 0.1em;\r\n    margin-bottom: 0.7rem;\r\n  }\r\n\r\n  .iptvit-catalogue__active-meta::after {\r\n    display: none;\r\n  }\r\n\r\n  .iptvit-catalogue__active-genre {\r\n    line-height: 1.35;\r\n    min-width: 0;\r\n    overflow-wrap: anywhere;\r\n  }\r\n\r\n  .iptvit-catalogue__active-type {\r\n    padding: 0.42rem 0.58rem;\r\n  }\r\n\r\n  .iptvit-catalogue__active-copy h3 {\r\n    font-size: clamp(1.6rem, 8.2vw, 2.4rem);\r\n    line-height: 0.98;\r\n    max-width: none;\r\n    min-height: 2.94em;\r\n  }\r\n\r\n  .iptvit-catalogue__active-description {\r\n    font-size: 0.88rem;\r\n    line-height: 1.55;\r\n    margin-top: 0.8rem !important;\r\n    min-height: 3.1em;\r\n  }\r\n\r\n  .iptvit-catalogue__active-tags {\r\n    gap: 0.38rem;\r\n    margin-top: 0.85rem;\r\n  }\r\n\r\n  .iptvit-catalogue__active-tags li {\r\n    font-size: 0.65rem;\r\n    padding: 0.36rem 0.52rem;\r\n  }\r\n\r\n  .iptvit-catalogue__active-cta {\r\n    font-size: 0.77rem;\r\n    margin-top: 1rem;\r\n    min-height: 2.7rem;\r\n    padding: 0.6rem 0.8rem;\r\n  }\r\n\r\n  .iptvit-catalogue__browser {\r\n    padding: 1rem;\r\n  }\r\n\r\n  .iptvit-catalogue__filters {\r\n    display: flex;\r\n  }\r\n\r\n  .iptvit-catalogue__filter {\r\n    padding-left: 0.45rem;\r\n    padding-right: 0.45rem;\r\n  }\r\n\r\n  .iptvit-catalogue__card {\r\n    flex-basis: min(44vw, 10.5rem);\r\n  }\r\n\r\n  .iptvit-catalogue__footer {\r\n    align-items: flex-start;\r\n    flex-direction: column;\r\n  }\r\n}\r\n\r\n@media (max-width: 24rem) {\r\n  .iptvit-catalogue__spotlight-grid {\r\n    grid-template-columns: 5.8rem minmax(0, 1fr);\r\n    padding: 1rem;\r\n  }\r\n\r\n  .iptvit-catalogue__active-copy h3 {\r\n    font-size: 1.48rem;\r\n  }\r\n\r\n  .iptvit-catalogue__card {\r\n    flex-basis: 9.15rem;\r\n  }\r\n}\r\n\r\n@media (hover: none) {\r\n  .iptvit-catalogue__card-button:hover .iptvit-catalogue__poster,\r\n  .iptvit-catalogue__card-button:hover .iptvit-catalogue__poster img,\r\n  .iptvit-catalogue__active-cta:hover,\r\n  .iptvit-catalogue__filter:hover,\r\n  .iptvit-catalogue__arrow:hover:not(:disabled) {\r\n    transform: none;\r\n  }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .iptvit-catalogue *,\r\n  .iptvit-catalogue *::before,\r\n  .iptvit-catalogue *::after {\r\n    animation: none !important;\r\n    scroll-behavior: auto !important;\r\n    transition-duration: 0.001ms !important;\r\n  }\r\n\r\n  .iptvit-catalogue.is-enhanced .iptvit-catalogue__reveal,\r\n  .iptvit-catalogue.is-enhanced .iptvit-catalogue__track .iptvit-catalogue__card {\r\n    opacity: 1;\r\n    transform: none;\r\n  }\r\n\r\n  \/* Cette section pose is-enhanced sans condition : le titre doit donc \u00eatre\r\n     remis explicitement dans son \u00e9tat color\u00e9 final. *\/\r\n  .iptvit-catalogue.is-enhanced .iptvit-catalogue__header h2 span {\r\n    background-size: 108% 100%, 100% 100%;\r\n  }\r\n}\r\n\r\n@media (forced-colors: active) {\r\n  .iptvit-catalogue__shell,\r\n  .iptvit-catalogue__poster,\r\n  .iptvit-catalogue__filter,\r\n  .iptvit-catalogue__arrow,\r\n  .iptvit-catalogue__active-cta {\r\n    border: 1px solid CanvasText;\r\n  }\r\n\r\n  .iptvit-catalogue__header h2 span {\r\n    color: CanvasText;\r\n  }\r\n\r\n  .iptvit-catalogue__filters::before,\r\n  .iptvit-catalogue__active-poster::after {\r\n    display: none;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<section\r\n  class=\"iptvit-catalogue\"\r\n  aria-label=\"Anteprima del catalogo IPTV Italia\"\r\n>\r\n  <div class=\"iptvit-catalogue__inner\">\r\n    <header class=\"iptvit-catalogue__header iptvit-catalogue__reveal\" style=\"--itc-delay: 0ms;\">\r\n      <div>\r\n        <p class=\"iptvit-catalogue__eyebrow\">Un assaggio del catalogo<\/p>\r\n        <h2>Film, serie TV e intrattenimento: <span>un\u2019anteprima del catalogo IPTV.<\/span><\/h2>\r\n      <\/div>\r\n\r\n      <p class=\"iptvit-catalogue__intro\">\r\n        Queste locandine mostrano soltanto un esempio visivo della nostra selezione.\r\n        Il catalogo IPTV riunisce film, serie TV, contenuti Kids &amp; Family e documentari,\r\n        organizzati per trovare pi\u00f9 rapidamente qualcosa da guardare. La disponibilit\u00e0\r\n        pu\u00f2 variare in base alla formula scelta e agli aggiornamenti del servizio.\r\n        Usa i filtri qui sotto per esplorare le categorie disponibili.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"iptvit-catalogue__shell iptvit-catalogue__reveal\" style=\"--itc-delay: 90ms;\">\r\n      <div class=\"iptvit-catalogue__spotlight\">\r\n        <div class=\"iptvit-catalogue__backdrop\" aria-hidden=\"true\">\r\n          <img\r\n            class=\"iptvit-catalogue__backdrop-image\"\r\n            src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/project-hail-mary.webp\"\r\n            alt=\"\"\r\n            decoding=\"async\"\r\n          >\r\n        <\/div>\r\n\r\n        <div class=\"iptvit-catalogue__spotlight-grid\">\r\n          <div class=\"iptvit-catalogue__poster-frame\">\r\n            <div class=\"iptvit-catalogue__active-poster\">\r\n              <img loading=\"lazy\"\r\n                src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/project-hail-mary.webp\"\r\n                alt=\"Locandina del film L\u2019ultima missione: Project Hail Mary nel catalogo IPTV Italia\"\r\n                width=\"450\"\r\n                height=\"630\"\r\n                loading=\"lazy\"\r\n                decoding=\"async\"\r\n              >\r\n              <div class=\"iptvit-catalogue__active-poster-placeholder\" aria-hidden=\"true\">PROJECT HAIL MARY<\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"iptvit-catalogue__active-copy\">\r\n            <div class=\"iptvit-catalogue__active-meta\">\r\n              <span class=\"iptvit-catalogue__active-type\">Film<\/span>\r\n              <span class=\"iptvit-catalogue__active-genre\">Fantascienza \u00b7 Avventura<\/span>\r\n            <\/div>\r\n\r\n            <h3 class=\"iptvit-catalogue__active-title\">L\u2019ultima missione: Project Hail Mary<\/h3>\r\n            <p class=\"iptvit-catalogue__active-description\">\r\n              Un insegnante si risveglia nello spazio con una missione decisiva per l\u2019umanit\u00e0.\r\n            <\/p>\r\n\r\n            <ul class=\"iptvit-catalogue__active-tags\" aria-label=\"Caratteristiche del contenuto\">\r\n              <li>HD \u00b7 FHD \u00b7 4K<\/li>\r\n              <li>Multi-dispositivo<\/li>\r\n              <li>Catalogo aggiornato<\/li>\r\n            <\/ul>\r\n\r\n            <a class=\"iptvit-catalogue__active-cta\" href=\"https:\/\/iptv-italia.it\/abbonamento-iptv\/\">\r\n              Scopri gli abbonamenti\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"><\/path><\/svg>\r\n            <\/a>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"iptvit-catalogue__number\" aria-hidden=\"true\">\r\n          <span class=\"iptvit-catalogue__number-current\">01<\/span>\r\n          <span class=\"iptvit-catalogue__number-total\">\/ 12<\/span>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"iptvit-catalogue__browser\">\r\n        <div class=\"iptvit-catalogue__toolbar\">\r\n          <div class=\"iptvit-catalogue__filters\" role=\"group\" aria-label=\"Filtra il catalogo\">\r\n            <button class=\"iptvit-catalogue__filter\" type=\"button\" data-filter=\"featured\" aria-pressed=\"true\">In evidenza<\/button>\r\n            <button class=\"iptvit-catalogue__filter\" type=\"button\" data-filter=\"film\" aria-pressed=\"false\">Film<\/button>\r\n            <button class=\"iptvit-catalogue__filter\" type=\"button\" data-filter=\"serie\" aria-pressed=\"false\">Serie TV<\/button>\r\n            <button class=\"iptvit-catalogue__filter\" type=\"button\" data-filter=\"kids\" aria-pressed=\"false\">Kids &amp; Family<\/button>\r\n            <button class=\"iptvit-catalogue__filter\" type=\"button\" data-filter=\"documentari\" aria-pressed=\"false\">Documentari<\/button>\r\n          <\/div>\r\n\r\n          <div class=\"iptvit-catalogue__controls\">\r\n            <span class=\"iptvit-catalogue__status\" aria-live=\"polite\">01 di 12<\/span>\r\n            <button class=\"iptvit-catalogue__arrow iptvit-catalogue__arrow--prev\" type=\"button\" aria-label=\"Contenuto precedente\">\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m15 18-6-6 6-6\"><\/path><\/svg>\r\n            <\/button>\r\n            <button class=\"iptvit-catalogue__arrow iptvit-catalogue__arrow--next\" type=\"button\" aria-label=\"Contenuto successivo\">\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m9 18 6-6-6-6\"><\/path><\/svg>\r\n            <\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div\r\n          class=\"iptvit-catalogue__viewport\"\r\n          tabindex=\"0\"\r\n          role=\"region\"\r\n          aria-label=\"Anteprima del catalogo: film, serie TV, contenuti Kids &amp; Family e documentari\"\r\n        >\r\n          <div class=\"iptvit-catalogue__track\" role=\"list\">\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured film\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"L\u2019ultima missione: Project Hail Mary\"\r\n              data-genre=\"Fantascienza \u00b7 Avventura\"\r\n              data-description=\"Un insegnante si risveglia nello spazio con una missione decisiva per l\u2019umanit\u00e0.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"true\" aria-label=\"Mostra L\u2019ultima missione: Project Hail Mary\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/project-hail-mary.webp\"\r\n                    alt=\"Locandina del film L\u2019ultima missione: Project Hail Mary\"\r\n                    width=\"450\"\r\n                    height=\"630\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">01<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>L\u2019ultima missione: Project Hail Mary<\/h4>\r\n                  <p>Fantascienza \u00b7 Avventura<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured serie\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Mare Fuori\"\r\n              data-genre=\"Dramma \u00b7 Teen \u00b7 Crime\"\r\n              data-description=\"Nel carcere minorile di Napoli, giovani vite cercano una seconda possibilit\u00e0.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Mare Fuori\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Marefuori.webp\"\r\n                    alt=\"Locandina della serie TV Mare Fuori\"\r\n                    width=\"356\"\r\n                    height=\"536\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">02<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Serie TV<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Mare Fuori<\/h4>\r\n                  <p>Dramma \u00b7 Teen \u00b7 Crime<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured film\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"Spider-Man: Far From Home\"\r\n              data-genre=\"Azione \u00b7 Avventura \u00b7 Supereroi\"\r\n              data-description=\"Il viaggio europeo di Peter Parker diventa una nuova missione eroica.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Spider-Man: Far From Home\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/spider-man-far-from-home.webp\"\r\n                    alt=\"Locandina del film Spider-Man: Far From Home\"\r\n                    width=\"363\"\r\n                    height=\"525\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">03<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Spider-Man: Far From Home<\/h4>\r\n                  <p>Azione \u00b7 Avventura \u00b7 Supereroi<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured serie\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Avvocato Ligas\"\r\n              data-genre=\"Legal drama \u00b7 Crime\"\r\n              data-description=\"Un penalista brillante e irriverente ricostruisce la carriera affrontando casi impossibili.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Avvocato Ligas\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Avvocato-ligas.webp\"\r\n                    alt=\"Locandina della serie TV Avvocato Ligas\"\r\n                    width=\"357\"\r\n                    height=\"535\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">04<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Serie TV<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Avvocato Ligas<\/h4>\r\n                  <p>Legal drama \u00b7 Crime<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            \r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured serie\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Dark\"\r\n              data-genre=\"Fantascienza \u00b7 Thriller \u00b7 Mistero\"\r\n              data-description=\"Una scomparsa intreccia quattro famiglie in un mistero che attraversa generazioni.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Dark\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/dark.webp\"\r\n                    alt=\"Locandina della serie TV Dark\"\r\n                    width=\"358\"\r\n                    height=\"522\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">05<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Serie TV<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Dark<\/h4>\r\n                  <p>Fantascienza \u00b7 Thriller \u00b7 Mistero<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured film kids\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"Harry Potter e la Camera dei Segreti\"\r\n              data-genre=\"Fantasy \u00b7 Avventura\"\r\n              data-description=\"Un antico mistero minaccia Hogwarts durante il secondo anno di Harry.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Harry Potter e la Camera dei Segreti\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/harry-potter-camera-dei-segreti.webp\"\r\n                    alt=\"Locandina del film Harry Potter e la Camera dei Segreti\"\r\n                    width=\"360\"\r\n                    height=\"525\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">06<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Harry Potter e la Camera dei Segreti<\/h4>\r\n                  <p>Fantasy \u00b7 Avventura<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"serie\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Dutton Ranch\"\r\n              data-genre=\"Dramma \u00b7 Neo-western\"\r\n              data-description=\"Beth e Rip ricominciano in Texas tra rivalit\u00e0 e nuove sfide.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Dutton Ranch\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Dutton-ranch.webp\"\r\n                    alt=\"Locandina della serie TV Dutton Ranch\"\r\n                    width=\"357\"\r\n                    height=\"535\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">07<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Serie TV<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Dutton Ranch<\/h4>\r\n                  <p>Dramma \u00b7 Neo-western<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"Guardiani della Galassia\"\r\n              data-genre=\"Azione \u00b7 Avventura \u00b7 Fantascienza\"\r\n              data-description=\"Un gruppo di improbabili eroi protegge la galassia da una minaccia.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Guardiani della Galassia\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Guardiani-della-galassia.webp\"\r\n                    alt=\"Locandina del film Guardiani della Galassia\"\r\n                    width=\"356\"\r\n                    height=\"534\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">08<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Guardiani della Galassia<\/h4>\r\n                  <p>Azione \u00b7 Avventura \u00b7 Fantascienza<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"serie\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Dexter\"\r\n              data-genre=\"Crime \u00b7 Thriller \u00b7 Dramma\"\r\n              data-description=\"Un esperto forense conduce una doppia vita dominata da oscuri impulsi.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Dexter\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Dexter.webp\"\r\n                    alt=\"Locandina della serie TV Dexter\"\r\n                    width=\"357\"\r\n                    height=\"535\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">09<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Serie TV<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Dexter<\/h4>\r\n                  <p>Crime \u00b7 Thriller \u00b7 Dramma<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"Non abbiam bisogno di parole\"\r\n              data-genre=\"Dramma \u00b7 Commedia \u00b7 Musica\"\r\n              data-description=\"Una giovane cantante deve scegliere tra famiglia, responsabilit\u00e0 e futuro.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Non abbiam bisogno di parole\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Non-abbiam-bisogno-di-parole.webp\"\r\n                    alt=\"Locandina del film Non abbiam bisogno di parole\"\r\n                    width=\"357\"\r\n                    height=\"535\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">10<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Non abbiam bisogno di parole<\/h4>\r\n                  <p>Dramma \u00b7 Commedia \u00b7 Musica<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"La Bocca del Diavolo\"\r\n              data-genre=\"Thriller \u00b7 Azione\"\r\n              data-description=\"Cinque amici esplorano grotte sommerse, braccati da una minaccia letale.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra La Bocca del Diavolo\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Bocca-del-diavolo.webp\"\r\n                    alt=\"Locandina del film La Bocca del Diavolo\"\r\n                    width=\"357\"\r\n                    height=\"535\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">11<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>La Bocca del Diavolo<\/h4>\r\n                  <p>Thriller \u00b7 Azione<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"Elize: Le ombre di una donna\"\r\n              data-genre=\"Crime \u00b7 Dramma \u00b7 Thriller\"\r\n              data-description=\"Un matrimonio privilegiato precipita quando un tradimento riapre profonde fratture.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Elize: Le ombre di una donna\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/Elize-le-ombre-di-una-donna.webp\"\r\n                    alt=\"Locandina del film Elize: Le ombre di una donna\"\r\n                    width=\"356\"\r\n                    height=\"534\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">12<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Elize: Le ombre di una donna<\/h4>\r\n                  <p>Crime \u00b7 Dramma \u00b7 Thriller<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured serie documentari\"\r\n              data-type-label=\"Docu-serie\"\r\n              data-title=\"Il mondo segreto dei suoni con David Attenborough\"\r\n              data-genre=\"Natura \u00b7 Scienza\"\r\n              data-description=\"La natura rivela segnali, richiami e frequenze che spesso sfuggono all\u2019orecchio umano.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Il mondo segreto dei suoni con David Attenborough\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/secret-world-of-sound.webp\"\r\n                    alt=\"Immagine della docu-serie Il mondo segreto dei suoni con David Attenborough\"\r\n                    width=\"358\"\r\n                    height=\"534\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">13<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Docu-serie<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Il mondo segreto dei suoni con David Attenborough<\/h4>\r\n                  <p>Natura \u00b7 Scienza<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"serie kids\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Nuovo Santa Clause cercasi\"\r\n              data-genre=\"Commedia \u00b7 Fantasy \u00b7 Famiglia\"\r\n              data-description=\"Il Natale cambia regole quando Babbo Natale cerca il suo possibile successore.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Nuovo Santa Clause cercasi\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/the-santa-clauses.webp\"\r\n                    alt=\"Locandina della serie TV Nuovo Santa Clause cercasi\"\r\n                    width=\"356\"\r\n                    height=\"523\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">14<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Nuovo Santa Clause cercasi<\/h4>\r\n                  <p>Commedia \u00b7 Fantasy \u00b7 Famiglia<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured film kids\"\r\n              data-type-label=\"Film d\u2019animazione\"\r\n              data-title=\"Shrek\"\r\n              data-genre=\"Animazione \u00b7 Commedia \u00b7 Avventura\"\r\n              data-description=\"Un orco solitario parte per una missione che trasforma il suo mondo.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Shrek\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/shrek.webp\"\r\n                    alt=\"Locandina del film d\u2019animazione Shrek\"\r\n                    width=\"361\"\r\n                    height=\"526\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">15<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Shrek<\/h4>\r\n                  <p>Animazione \u00b7 Commedia \u00b7 Avventura<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured serie documentari\"\r\n              data-type-label=\"Docu-serie\"\r\n              data-title=\"Solar System\"\r\n              data-genre=\"Spazio \u00b7 Scienza\"\r\n              data-description=\"Un viaggio spettacolare tra pianeti, lune e fenomeni del nostro sistema solare.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Solar System\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/solar-system.webp\"\r\n                    alt=\"Immagine della docu-serie Solar System\"\r\n                    width=\"350\"\r\n                    height=\"519\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">16<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Docu-serie<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Solar System<\/h4>\r\n                  <p>Spazio \u00b7 Scienza<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film kids\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"Stessi Battiti\"\r\n              data-genre=\"Dramma sportivo \u00b7 Ragazzi\"\r\n              data-description=\"Passione, ciclismo e determinazione accompagnano due giovani verso una sfida decisiva.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Stessi Battiti\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/stessi-battiti.webp\"\r\n                    alt=\"Locandina del film Stessi Battiti\"\r\n                    width=\"352\"\r\n                    height=\"530\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">17<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Stessi Battiti<\/h4>\r\n                  <p>Dramma sportivo \u00b7 Ragazzi<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured serie\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Tierra Inc\u00f3gnita\"\r\n              data-genre=\"Mistero \u00b7 Horror \u00b7 Formazione\"\r\n              data-description=\"Un adolescente ritorna in un parco abbandonato per risolvere un mistero familiare.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Tierra Inc\u00f3gnita\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/tierra-incognita.webp\"\r\n                    alt=\"Locandina della serie TV Tierra Inc\u00f3gnita\"\r\n                    width=\"356\"\r\n                    height=\"529\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">18<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Serie TV<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Tierra Inc\u00f3gnita<\/h4>\r\n                  <p>Mistero \u00b7 Horror \u00b7 Formazione<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film kids\"\r\n              data-type-label=\"Film d\u2019animazione\"\r\n              data-title=\"Dragon Nest \u2014 Il trono degli elfi\"\r\n              data-genre=\"Animazione \u00b7 Fantasy \u00b7 Avventura\"\r\n              data-description=\"Due giovani eroi attraversano un regno fantastico minacciato da un antico potere.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Dragon Nest \u2014 Il trono degli elfi\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/throne-of-elves.webp\"\r\n                    alt=\"Locandina del film d\u2019animazione Dragon Nest \u2014 Il trono degli elfi\"\r\n                    width=\"360\"\r\n                    height=\"531\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">19<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Dragon Nest \u2014 Il trono degli elfi<\/h4>\r\n                  <p>Animazione \u00b7 Fantasy \u00b7 Avventura<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"serie kids\"\r\n              data-type-label=\"Serie animata\"\r\n              data-title=\"Vampirina\"\r\n              data-genre=\"Animazione \u00b7 Commedia \u00b7 Famiglia\"\r\n              data-description=\"Una giovane vampira scopre amicizia e avventure nella sua nuova citt\u00e0.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Vampirina\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/vampirina.webp\"\r\n                    alt=\"Locandina della serie animata Vampirina\"\r\n                    width=\"356\"\r\n                    height=\"522\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">20<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Vampirina<\/h4>\r\n                  <p>Animazione \u00b7 Commedia \u00b7 Famiglia<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured film kids\"\r\n              data-type-label=\"Film d\u2019animazione\"\r\n              data-title=\"I Mitchell contro le macchine\"\r\n              data-genre=\"Animazione \u00b7 Commedia \u00b7 Fantascienza\"\r\n              data-description=\"Una famiglia fuori dagli schemi affronta una rivolta tecnologica durante un viaggio.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra I Mitchell contro le macchine\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/the-mitchells-vs-the-machines.webp\"\r\n                    alt=\"Locandina del film d\u2019animazione I Mitchell contro le macchine\"\r\n                    width=\"360\"\r\n                    height=\"528\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">21<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>I Mitchell contro le macchine<\/h4>\r\n                  <p>Animazione \u00b7 Commedia \u00b7 Fantascienza<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"featured film\"\r\n              data-type-label=\"Film\"\r\n              data-title=\"KIMI\"\r\n              data-genre=\"Thriller \u00b7 Tecnologia\"\r\n              data-description=\"Una professionista scopre una prova digitale e si ritrova dentro una pericolosa indagine.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra KIMI\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/kimi.webp\"\r\n                    alt=\"Locandina del film KIMI\"\r\n                    width=\"356\"\r\n                    height=\"527\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">22<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Film<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>KIMI<\/h4>\r\n                  <p>Thriller \u00b7 Tecnologia<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film kids\"\r\n              data-type-label=\"Film d\u2019animazione\"\r\n              data-title=\"Kung Fu Panda\"\r\n              data-genre=\"Animazione \u00b7 Commedia \u00b7 Avventura\"\r\n              data-description=\"Un panda appassionato scopre che il coraggio pu\u00f2 nascere nei luoghi pi\u00f9 inattesi.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Kung Fu Panda\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/kung-fu-panda.webp\"\r\n                    alt=\"Locandina del film d\u2019animazione Kung Fu Panda\"\r\n                    width=\"351\"\r\n                    height=\"524\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">23<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Kung Fu Panda<\/h4>\r\n                  <p>Animazione \u00b7 Commedia \u00b7 Avventura<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"film kids\"\r\n              data-type-label=\"Film d\u2019animazione\"\r\n              data-title=\"La mia vita da Zucchina\"\r\n              data-genre=\"Stop-motion \u00b7 Dramma \u00b7 Famiglia\"\r\n              data-description=\"Un bambino trova nuovi legami e speranza dentro una comunit\u00e0 inattesa.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra La mia vita da Zucchina\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/la-mia-vita-da-zucchina.webp\"\r\n                    alt=\"Locandina del film d\u2019animazione La mia vita da Zucchina\"\r\n                    width=\"354\"\r\n                    height=\"525\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">24<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>La mia vita da Zucchina<\/h4>\r\n                  <p>Stop-motion \u00b7 Dramma \u00b7 Famiglia<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"serie kids\"\r\n              data-type-label=\"Serie TV\"\r\n              data-title=\"Piccoli brividi\"\r\n              data-genre=\"Mistero \u00b7 Fantasy \u00b7 Ragazzi\"\r\n              data-description=\"Storie sorprendenti trasformano paure quotidiane in avventure misteriose.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra Piccoli brividi\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/goosebumps.webp\"\r\n                    alt=\"Locandina della serie TV Piccoli brividi\"\r\n                    width=\"356\"\r\n                    height=\"527\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">25<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Kids &amp; Family<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>Piccoli brividi<\/h4>\r\n                  <p>Mistero \u00b7 Fantasy \u00b7 Ragazzi<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n\r\n            <article\r\n              class=\"iptvit-catalogue__card\"\r\n              role=\"listitem\"\r\n              data-categories=\"serie documentari\"\r\n              data-type-label=\"Docu-serie\"\r\n              data-title=\"David Blaine: Do Not Attempt\"\r\n              data-genre=\"Avventura \u00b7 Reality\"\r\n              data-description=\"Sfide estreme e incontri sorprendenti esplorano i limiti della resistenza umana.\"\r\n            >\r\n              <button class=\"iptvit-catalogue__card-button\" type=\"button\" aria-pressed=\"false\" aria-label=\"Mostra David Blaine: Do Not Attempt\">\r\n                <div class=\"iptvit-catalogue__poster\">\r\n                  <img loading=\"lazy\"\r\n                    src=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/david-blaine-do-not-attempt.webp\"\r\n                    alt=\"Immagine della docu-serie David Blaine: Do Not Attempt\"\r\n                    width=\"357\"\r\n                    height=\"520\"\r\n                    loading=\"lazy\"\r\n                    decoding=\"async\"\r\n                  >\r\n                  <span class=\"iptvit-catalogue__poster-index\">26<\/span>\r\n                  <span class=\"iptvit-catalogue__poster-label\">Docu-serie<\/span>\r\n                <\/div>\r\n                <div class=\"iptvit-catalogue__card-copy\">\r\n                  <h4>David Blaine: Do Not Attempt<\/h4>\r\n                  <p>Avventura \u00b7 Reality<\/p>\r\n                <\/div>\r\n              <\/button>\r\n            <\/article>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <footer class=\"iptvit-catalogue__footer\">\r\n          <div class=\"iptvit-catalogue__footer-copy\">\r\n            <strong>Questa \u00e8 soltanto una selezione visiva.<\/strong>\r\n            <span>Il catalogo completo comprende molti altri titoli, generi e categorie.<\/span>\r\n          <\/div>\r\n\r\n          <a class=\"iptvit-catalogue__footer-link\" href=\"https:\/\/iptv-italia.it\/lista-canali\/\">\r\n            Vedi la lista canali\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"><\/path><\/svg>\r\n          <\/a>\r\n        <\/footer>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n  \"use strict\";\r\n\r\n  function initCatalogue(section) {\r\n    if (!section || section.dataset.iptvitCatalogueReady === \"true\") {\r\n      return;\r\n    }\r\n\r\n    section.dataset.iptvitCatalogueReady = \"true\";\r\n    section.classList.add(\"is-enhanced\");\r\n\r\n    var shell = section.querySelector(\".iptvit-catalogue__shell\");\r\n    var spotlight = section.querySelector(\".iptvit-catalogue__spotlight\");\r\n    var activePoster = section.querySelector(\".iptvit-catalogue__active-poster\");\r\n    var activePosterImage = activePoster ? activePoster.querySelector(\"img\") : null;\r\n    var activePlaceholder = section.querySelector(\".iptvit-catalogue__active-poster-placeholder\");\r\n    var backdropImage = section.querySelector(\".iptvit-catalogue__backdrop-image\");\r\n    var activeType = section.querySelector(\".iptvit-catalogue__active-type\");\r\n    var activeGenre = section.querySelector(\".iptvit-catalogue__active-genre\");\r\n    var activeTitle = section.querySelector(\".iptvit-catalogue__active-title\");\r\n    var activeDescription = section.querySelector(\".iptvit-catalogue__active-description\");\r\n    var numberCurrent = section.querySelector(\".iptvit-catalogue__number-current\");\r\n    var numberTotal = section.querySelector(\".iptvit-catalogue__number-total\");\r\n    var viewport = section.querySelector(\".iptvit-catalogue__viewport\");\r\n    var track = section.querySelector(\".iptvit-catalogue__track\");\r\n    var filtersWrap = section.querySelector(\".iptvit-catalogue__filters\");\r\n    var cards = Array.prototype.slice.call(section.querySelectorAll(\".iptvit-catalogue__card\"));\r\n    var filters = Array.prototype.slice.call(section.querySelectorAll(\".iptvit-catalogue__filter\"));\r\n    var previousButton = section.querySelector(\".iptvit-catalogue__arrow--prev\");\r\n    var nextButton = section.querySelector(\".iptvit-catalogue__arrow--next\");\r\n    var status = section.querySelector(\".iptvit-catalogue__status\");\r\n    var reducedMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\r\n    var currentCard = cards[0] || null;\r\n    var currentFilter = \"featured\";\r\n    var changeTimer = null;\r\n    var scrollTicking = false;\r\n    var scrollSettleTimer = null;\r\n    var ignoreScrollSelectionUntil = 0;\r\n\r\n    function getVisibleCards() {\r\n      return cards.filter(function (card) {\r\n        return !card.hidden;\r\n      });\r\n    }\r\n\r\n    function getCardImage(card) {\r\n      if (!card || card.dataset.posterMissing === \"true\") {\r\n        return \"\";\r\n      }\r\n\r\n      var image = card.querySelector(\".iptvit-catalogue__poster img\");\r\n      return image ? image.currentSrc || image.getAttribute(\"src\") || \"\" : \"\";\r\n    }\r\n\r\n    \/* Une locandina absente laisse le d\u00e9grad\u00e9 de la carte : mieux qu'une\r\n       image cass\u00e9e. La version d'origine ne d\u00e9tectait jamais le cas, car\r\n       elle lisait l'attribut src, toujours pr\u00e9sent m\u00eame apr\u00e8s une erreur. *\/\r\n    cards.forEach(function (card) {\r\n      var image = card.querySelector(\".iptvit-catalogue__poster img\");\r\n      if (!image) {\r\n        return;\r\n      }\r\n\r\n      image.addEventListener(\"error\", function () {\r\n        card.dataset.posterMissing = \"true\";\r\n        if (card === currentCard) {\r\n          setActiveContent(card);\r\n        }\r\n      }, { once: true });\r\n    });\r\n\r\n    function setActiveContent(card) {\r\n      if (!card) {\r\n        return;\r\n      }\r\n\r\n      var visibleCards = getVisibleCards();\r\n      var visibleIndex = Math.max(0, visibleCards.indexOf(card));\r\n      var posterUrl = getCardImage(card);\r\n\r\n      currentCard = card;\r\n\r\n      cards.forEach(function (item) {\r\n        var button = item.querySelector(\".iptvit-catalogue__card-button\");\r\n        if (button) {\r\n          button.setAttribute(\"aria-pressed\", String(item === card));\r\n          if (item === card) {\r\n            button.setAttribute(\"aria-current\", \"true\");\r\n          } else {\r\n            button.removeAttribute(\"aria-current\");\r\n          }\r\n        }\r\n      });\r\n\r\n      if (activeType) {\r\n        activeType.textContent = card.dataset.typeLabel || \"\";\r\n      }\r\n\r\n      if (activeGenre) {\r\n        activeGenre.textContent = card.dataset.genre || \"\";\r\n      }\r\n\r\n      if (activeTitle) {\r\n        activeTitle.textContent = card.dataset.title || \"\";\r\n      }\r\n\r\n      if (activeDescription) {\r\n        activeDescription.textContent = card.dataset.description || \"\";\r\n      }\r\n\r\n      if (numberCurrent) {\r\n        numberCurrent.textContent = String(visibleIndex + 1).padStart(2, \"0\");\r\n      }\r\n\r\n      if (numberTotal) {\r\n        numberTotal.textContent = \"\/ \" + String(visibleCards.length).padStart(2, \"0\");\r\n      }\r\n\r\n      if (status) {\r\n        status.textContent = String(visibleIndex + 1).padStart(2, \"0\") + \" di \" +\r\n          String(visibleCards.length).padStart(2, \"0\") + \" \u2014 \" + (card.dataset.title || \"\");\r\n      }\r\n\r\n      if (activePlaceholder) {\r\n        activePlaceholder.textContent = (card.dataset.title || \"\").split(\" \")[0].toUpperCase();\r\n      }\r\n\r\n      if (activePoster) {\r\n        activePoster.classList.toggle(\"is-missing\", !posterUrl);\r\n      }\r\n\r\n      if (posterUrl && activePosterImage) {\r\n        activePosterImage.src = posterUrl;\r\n        activePosterImage.alt = \"Locandina di \" + (card.dataset.title || \"\");\r\n      }\r\n\r\n      if (posterUrl && backdropImage) {\r\n        backdropImage.src = posterUrl;\r\n      }\r\n\r\n      \/\/ Pr\u00e9charge les locandine qui suivent. En d\u00e9filement rapide au doigt,\r\n      \/\/ le chargement paresseux ne suit pas et l'on traverse des cartes\r\n      \/\/ encore vides.\r\n      visibleCards.slice(visibleIndex, visibleIndex + 5).forEach(function (item) {\r\n        var upcoming = item.querySelector(\".iptvit-catalogue__poster img\");\r\n        if (upcoming && upcoming.getAttribute(\"loading\") === \"lazy\") {\r\n          upcoming.setAttribute(\"loading\", \"eager\");\r\n        }\r\n      });\r\n\r\n      updateControls();\r\n    }\r\n\r\n    \/* Relance le reflet et le compteur apr\u00e8s un changement de titre *\/\r\n    function replaySpotlight() {\r\n      if (!spotlight || reducedMotion) {\r\n        return;\r\n      }\r\n\r\n      spotlight.classList.remove(\"is-entering\");\r\n      void spotlight.offsetWidth;\r\n      spotlight.classList.add(\"is-entering\");\r\n    }\r\n\r\n    function selectCard(card, shouldScroll) {\r\n      if (!card || card.hidden) {\r\n        return;\r\n      }\r\n\r\n      window.clearTimeout(changeTimer);\r\n      currentCard = card;\r\n      updateControls();\r\n\r\n      if (!reducedMotion && spotlight) {\r\n        spotlight.classList.add(\"is-changing\");\r\n        changeTimer = window.setTimeout(function () {\r\n          setActiveContent(card);\r\n          window.requestAnimationFrame(function () {\r\n            spotlight.classList.remove(\"is-changing\");\r\n            replaySpotlight();\r\n          });\r\n        }, 145);\r\n      } else {\r\n        setActiveContent(card);\r\n      }\r\n\r\n      if (shouldScroll && viewport) {\r\n        ignoreScrollSelectionUntil = Date.now() + 700;\r\n\r\n        \/\/ Alignement sur le bord gauche, coh\u00e9rent avec scroll-snap-align:\r\n        \/\/ start. Centrer la carte entrait en conflit avec l'accrochage et\r\n        \/\/ d\u00e9calait la s\u00e9lection d'une carte ou deux.\r\n        viewport.scrollTo({\r\n          left: cardScrollLeft(card),\r\n          behavior: reducedMotion ? \"auto\" : \"smooth\"\r\n        });\r\n      }\r\n    }\r\n\r\n    \/* Position de la carte DANS le conteneur de d\u00e9filement.\r\n       offsetLeft ne convient pas : il se mesure depuis le premier anc\u00eatre\r\n       positionn\u00e9, ici .shell, et non depuis le cadre qui d\u00e9file. Les deux\r\n       rep\u00e8res \u00e9taient donc compar\u00e9s entre eux, ce qui d\u00e9calait aussi bien\r\n       le d\u00e9filement au clic que la s\u00e9lection au doigt. *\/\r\n    function cardScrollLeft(card) {\r\n      if (!viewport) {\r\n        return 0;\r\n      }\r\n\r\n      \/\/ Le rectangle du cadre part de sa bordure : on retire son remplissage\r\n      \/\/ pour que la premi\u00e8re carte corresponde exactement \u00e0 z\u00e9ro.\r\n      var padding = parseFloat(window.getComputedStyle(viewport).paddingLeft) || 0;\r\n      var delta = card.getBoundingClientRect().left - viewport.getBoundingClientRect().left - padding;\r\n\r\n      return Math.max(0, Math.round(viewport.scrollLeft + delta));\r\n    }\r\n\r\n    function getNearestVisibleCard() {\r\n      var visibleCards = getVisibleCards();\r\n      var nearestCard = null;\r\n      var nearestDistance = Infinity;\r\n\r\n      if (!viewport || !visibleCards.length) {\r\n        return null;\r\n      }\r\n\r\n      \/\/ R\u00e9f\u00e9rence : le bord gauche du cadre, et non son centre. Avec le\r\n      \/\/ centre, une bande revenue \u00e0 z\u00e9ro s\u00e9lectionnait la 3e carte au lieu\r\n      \/\/ de la premi\u00e8re \u2014 le spotlight sautait tout seul au chargement.\r\n      visibleCards.forEach(function (card) {\r\n        var distance = Math.abs(cardScrollLeft(card) - viewport.scrollLeft);\r\n\r\n        if (distance < nearestDistance) {\r\n          nearestDistance = distance;\r\n          nearestCard = card;\r\n        }\r\n      });\r\n\r\n      return nearestCard;\r\n    }\r\n\r\n    function updateControls() {\r\n      var visibleCards = getVisibleCards();\r\n      var activeIndex = Math.max(0, visibleCards.indexOf(currentCard));\r\n\r\n      if (previousButton) {\r\n        previousButton.disabled = activeIndex <= 0;\r\n      }\r\n\r\n      if (nextButton) {\r\n        nextButton.disabled = !visibleCards.length || activeIndex >= visibleCards.length - 1;\r\n      }\r\n    }\r\n\r\n    function move(direction) {\r\n      var visibleCards = getVisibleCards();\r\n      var activeIndex = visibleCards.indexOf(currentCard);\r\n      var targetIndex = Math.max(0, Math.min(visibleCards.length - 1, activeIndex + direction));\r\n\r\n      if (visibleCards[targetIndex]) {\r\n        selectCard(visibleCards[targetIndex], true);\r\n      }\r\n    }\r\n\r\n    \/* Pastille coulissante : elle se cale sur le filtre actif *\/\r\n    function updatePill(instant) {\r\n      if (!filtersWrap) {\r\n        return;\r\n      }\r\n\r\n      var active = filtersWrap.querySelector('[aria-pressed=\"true\"]');\r\n      if (!active) {\r\n        return;\r\n      }\r\n\r\n      if (instant) {\r\n        filtersWrap.classList.add(\"is-instant\");\r\n      }\r\n\r\n      filtersWrap.style.setProperty(\"--itc-pill-x\", active.offsetLeft + \"px\");\r\n      filtersWrap.style.setProperty(\"--itc-pill-w\", active.offsetWidth + \"px\");\r\n\r\n      if (instant) {\r\n        window.requestAnimationFrame(function () {\r\n          filtersWrap.classList.remove(\"is-instant\");\r\n        });\r\n      }\r\n    }\r\n\r\n    \/* Cascade d'entr\u00e9e des cartes, calcul\u00e9e sur celles r\u00e9ellement visibles *\/\r\n    function replayCards() {\r\n      if (!track) {\r\n        return;\r\n      }\r\n\r\n      getVisibleCards().forEach(function (card, index) {\r\n        card.style.setProperty(\"--itc-card-delay\", Math.min(index * 45, 420) + \"ms\");\r\n      });\r\n\r\n      if (reducedMotion) {\r\n        track.classList.add(\"is-entering\");\r\n        return;\r\n      }\r\n\r\n      track.classList.remove(\"is-entering\");\r\n      void track.offsetWidth;\r\n      track.classList.add(\"is-entering\");\r\n    }\r\n\r\n    function applyFilter(filter, isInitial) {\r\n      currentFilter = filter;\r\n\r\n      filters.forEach(function (button) {\r\n        button.setAttribute(\"aria-pressed\", String(button.dataset.filter === filter));\r\n      });\r\n\r\n      cards.forEach(function (card) {\r\n        var categories = (card.dataset.categories || \"\").split(\/\\s+\/).filter(Boolean);\r\n        card.hidden = categories.indexOf(filter) === -1;\r\n      });\r\n\r\n      updatePill(isInitial === true);\r\n\r\n      if (viewport) {\r\n        ignoreScrollSelectionUntil = Date.now() + 350;\r\n        viewport.scrollTo({ left: 0, behavior: \"auto\" });\r\n      }\r\n\r\n      var visibleCards = getVisibleCards();\r\n      if (visibleCards.length) {\r\n        selectCard(visibleCards[0], false);\r\n      }\r\n\r\n      if (!isInitial) {\r\n        replayCards();\r\n      }\r\n    }\r\n\r\n    cards.forEach(function (card) {\r\n      var button = card.querySelector(\".iptvit-catalogue__card-button\");\r\n\r\n      if (!button) {\r\n        return;\r\n      }\r\n\r\n      button.addEventListener(\"click\", function () {\r\n        selectCard(card, true);\r\n      });\r\n    });\r\n\r\n    filters.forEach(function (button) {\r\n      button.addEventListener(\"click\", function () {\r\n        applyFilter(button.dataset.filter || \"featured\");\r\n      });\r\n    });\r\n\r\n    if (previousButton) {\r\n      previousButton.addEventListener(\"click\", function () {\r\n        move(-1);\r\n      });\r\n    }\r\n\r\n    if (nextButton) {\r\n      nextButton.addEventListener(\"click\", function () {\r\n        move(1);\r\n      });\r\n    }\r\n\r\n    if (viewport) {\r\n      viewport.addEventListener(\"keydown\", function (event) {\r\n        if (event.key === \"ArrowLeft\") {\r\n          event.preventDefault();\r\n          move(-1);\r\n        }\r\n\r\n        if (event.key === \"ArrowRight\") {\r\n          event.preventDefault();\r\n          move(1);\r\n        }\r\n\r\n        if (event.key === \"Home\") {\r\n          event.preventDefault();\r\n          var firstCard = getVisibleCards()[0];\r\n          if (firstCard) {\r\n            selectCard(firstCard, true);\r\n          }\r\n        }\r\n\r\n        if (event.key === \"End\") {\r\n          event.preventDefault();\r\n          var visibleCards = getVisibleCards();\r\n          var lastCard = visibleCards[visibleCards.length - 1];\r\n          if (lastCard) {\r\n            selectCard(lastCard, true);\r\n          }\r\n        }\r\n      });\r\n\r\n      viewport.addEventListener(\"scroll\", function () {\r\n        if (scrollTicking) {\r\n          return;\r\n        }\r\n\r\n        scrollTicking = true;\r\n\r\n        window.requestAnimationFrame(function () {\r\n          scrollTicking = false;\r\n\r\n          window.clearTimeout(scrollSettleTimer);\r\n          scrollSettleTimer = window.setTimeout(function () {\r\n            if (Date.now() < ignoreScrollSelectionUntil) {\r\n              return;\r\n            }\r\n\r\n            \/\/ Recalcul\u00e9 ici, une fois le d\u00e9filement stabilis\u00e9. La version\r\n            \/\/ d'origine calculait la carte la plus proche avant l'attente\r\n            \/\/ de 130 ms et utilisait donc une valeur d\u00e9j\u00e0 p\u00e9rim\u00e9e.\r\n            var nearest = getNearestVisibleCard();\r\n\r\n            if (nearest && nearest !== currentCard) {\r\n              selectCard(nearest, false);\r\n            }\r\n          }, 130);\r\n        });\r\n      }, { passive: true });\r\n    }\r\n\r\n    var revealItems = Array.prototype.slice.call(section.querySelectorAll(\".iptvit-catalogue__reveal\"));\r\n\r\n    function revealItem(item) {\r\n      if (item.classList.contains(\"is-visible\")) {\r\n        return;\r\n      }\r\n\r\n      item.classList.add(\"is-visible\");\r\n\r\n      if (item === shell) {\r\n        replayCards();\r\n      }\r\n    }\r\n\r\n    function revealEverything() {\r\n      revealItems.forEach(revealItem);\r\n    }\r\n\r\n    if (\"IntersectionObserver\" in window) {\r\n      \/\/ threshold 0 plut\u00f4t qu'une fraction : le bloc est plus haut que bien\r\n      \/\/ des \u00e9crans, et exiger un pourcentage de sa surface le rend fragile.\r\n      var revealObserver = new IntersectionObserver(function (entries) {\r\n        entries.forEach(function (entry) {\r\n          if (!entry.isIntersecting) {\r\n            return;\r\n          }\r\n\r\n          revealItem(entry.target);\r\n          revealObserver.unobserve(entry.target);\r\n        });\r\n      }, { threshold: 0, rootMargin: \"0px 0px -8% 0px\" });\r\n\r\n      revealItems.forEach(function (item) {\r\n        revealObserver.observe(item);\r\n      });\r\n\r\n      \/\/ Filet de s\u00e9curit\u00e9. Une animation d\u00e9corative ne doit jamais pouvoir\r\n      \/\/ laisser le contenu invisible : si l'observateur ne se d\u00e9clenche pas\r\n      \/\/ (page int\u00e9gr\u00e9e dans un conteneur de d\u00e9filement inhabituel, extension\r\n      \/\/ qui neutralise l'API, onglet restaur\u00e9), on affiche tout au bout de\r\n      \/\/ trois secondes.\r\n      window.setTimeout(revealEverything, 3000);\r\n    } else {\r\n      revealEverything();\r\n    }\r\n\r\n    if (typeof ResizeObserver !== \"undefined\") {\r\n      var resizeObserver = new ResizeObserver(function () {\r\n        updateControls();\r\n        updatePill(true);\r\n      });\r\n\r\n      if (viewport) {\r\n        resizeObserver.observe(viewport);\r\n      }\r\n\r\n      if (filtersWrap) {\r\n        resizeObserver.observe(filtersWrap);\r\n      }\r\n    }\r\n\r\n    applyFilter(currentFilter, true);\r\n\r\n    \/\/ La pastille ne peut se mesurer qu'une fois la mise en page faite.\r\n    window.requestAnimationFrame(function () {\r\n      updatePill(true);\r\n    });\r\n  }\r\n\r\n  function bootCatalogueSections() {\r\n    Array.prototype.forEach.call(\r\n      document.querySelectorAll(\".iptvit-catalogue\"),\r\n      initCatalogue\r\n    );\r\n  }\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", bootCatalogueSections, { once: true });\r\n  } else {\r\n    bootCatalogueSections();\r\n  }\r\n\r\n  if (window.elementorFrontend && window.elementorFrontend.hooks) {\r\n    window.elementorFrontend.hooks.addAction(\"frontend\/element_ready\/html.default\", function () {\r\n      bootCatalogueSections();\r\n    });\r\n  }\r\n}());\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b321fec e-con-full e-flex e-con e-parent\" data-id=\"b321fec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9dbc388 elementor-widget elementor-widget-html\" data-id=\"9dbc388\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n  IPTV Italia \u2014 Elementor \/ Widget HTML 05 \u2014 PREZZI \u2014\n  \n  1. La barre de choix de gamme se compacte d\u00e8s qu'elle s'\u00e9pingle sous\n     l'en-t\u00eate : chapeau repli\u00e9, descriptions des boutons repli\u00e9es, ic\u00f4nes et\n     typo r\u00e9duites. Mesur\u00e9 : 146 -> 66 px sur bureau, 300 -> 66 px sur mobile.\n  2. Sur mobile, la barre \u00e9pingl\u00e9e passe sur deux colonnes. C'est l\u00e0 que se\n     gagne l'essentiel de la hauteur, puisque le mobile empile les gammes.\n  3. La place occup\u00e9e dans le flux ne change PAS quand la barre r\u00e9tr\u00e9cit : la\n     marge basse absorbe la diff\u00e9rence. Sans cette compensation, tout le\n     contenu situ\u00e9 dessous remonterait d'un coup au moment de l'\u00e9pinglage, et\n     l'\u00e9pinglage pourrait se mettre \u00e0 osciller.\n  4. --ipp-header-offset pass\u00e9 de 5rem \u00e0 6rem : l'en-t\u00eate du site mesure 98 px,\n     5rem + .7rem ne faisaient que 91 px et la barre passait dessous.\n\n  GARDE-FOUS\n  - L'\u00e9tat par d\u00e9faut reste la barre pleine. La classe is-pinned est pos\u00e9e par\n    le script : si le JS ne tourne pas, rien ne r\u00e9tr\u00e9cit et rien n'est masqu\u00e9.\n  - Le texte repli\u00e9 reste dans le DOM. Il dispara\u00eet \u00e0 l'\u0153il, pas au lecteur\n    d'\u00e9cran, et il revient d\u00e8s qu'on remonte.\n  - Les boutons compact\u00e9s gardent 48 px de haut, au-dessus des 44 px\n    recommand\u00e9s pour une cible tactile.\n\n  NOMBRE D'AVANTAGES IDENTIQUE ENTRE LES DEUX GAMMES (6)\n  Volontaire : un nombre in\u00e9gal ferait changer la hauteur des cartes au\n  basculement Standard\/Premium, et la grille sauterait sous le curseur.\n-->\n\n<style>\n.iptvit-pricing {\n  \/* \u2014\u2014\u2014\u2014\u2014 D\u00e9calage de l'en-t\u00eate du site \u2014\u2014\u2014\u2014\u2014\n     La barre de gamme reste accroch\u00e9e SOUS l'en-t\u00eate. L'en-t\u00eate mesure 98 px\n     coll\u00e9 en haut : en dessous de 6rem la barre passerait dessous. C'est la\n     seule valeur \u00e0 corriger si l'en-t\u00eate change de hauteur. *\/\n  --ipp-header-offset: 6rem;\n\n  --ipp-bg: #f5f4ef;\n  --ipp-surface: rgba(255,255,255,.82);\n  --ipp-surface-2: #fff;\n  --ipp-ink: #111a27;\n  --ipp-muted: #5d6870;\n  --ipp-line: rgba(17,26,39,.13);\n  --ipp-line-strong: rgba(17,26,39,.22);\n  --ipp-green: #1f7657;\n  --ipp-green-deep: #145a43;\n  --ipp-mint: #79dbb2;\n  --ipp-red: #bd384a;\n  --ipp-red-soft: rgba(189,56,74,.1);\n  --ipp-gold: #b8862f;\n  --ipp-gold-soft: rgba(184,134,47,.12);\n  --ipp-on-green: #fff;\n  --ipp-on-red: #fff;\n  --ipp-shadow: 0 24px 70px rgba(15,31,37,.12);\n  --ipp-ease: cubic-bezier(.22,1,.36,1);\n  --ipp-ease-soft: cubic-bezier(.4,0,.2,1);\n  background:\n    radial-gradient(circle at 9% 8%, rgba(31,118,87,.14), transparent 31rem),\n    radial-gradient(circle at 92% 52%, rgba(189,56,74,.11), transparent 34rem),\n    var(--ipp-bg);\n  color: var(--ipp-ink);\n  font-family: inherit;\n  isolation: isolate;\n  \/* clip et non hidden : hidden cr\u00e9e un conteneur de d\u00e9filement et casserait\n     le maintien en haut de la barre de gamme. *\/\n  overflow: clip;\n  padding: clamp(4.8rem,8vw,8rem) 0;\n  position: relative;\n  width: 100%;\n}\n\n:root[data-iptvit-theme=\"dark\"] .iptvit-pricing,\n:root[data-theme=\"dark\"] .iptvit-pricing {\n  --ipp-bg: #07111a;\n  --ipp-surface: rgba(14,28,38,.86);\n  --ipp-surface-2: #0d1a24;\n  --ipp-ink: #f8f4e9;\n  --ipp-muted: #adbac0;\n  --ipp-line: rgba(234,244,239,.13);\n  --ipp-line-strong: rgba(234,244,239,.24);\n  --ipp-green: #76d8ae;\n  --ipp-green-deep: #58bf94;\n  --ipp-mint: #8be3bc;\n  --ipp-red: #e27480;\n  --ipp-red-soft: rgba(226,116,128,.11);\n  --ipp-gold: #e0b662;\n  --ipp-gold-soft: rgba(224,182,98,.13);\n  \/* Sur ces verts et rouges clairs, le texte blanc tombait \u00e0 2,2:1 *\/\n  --ipp-on-green: #07111a;\n  --ipp-on-red: #1a0a0e;\n  --ipp-shadow: 0 28px 80px rgba(0,0,0,.28);\n}\n\n@media (prefers-color-scheme: dark) {\n  :root:not([data-iptvit-theme]):not([data-theme]) .iptvit-pricing {\n    --ipp-bg: #07111a;\n    --ipp-surface: rgba(14,28,38,.86);\n    --ipp-surface-2: #0d1a24;\n    --ipp-ink: #f8f4e9;\n    --ipp-muted: #adbac0;\n    --ipp-line: rgba(234,244,239,.13);\n    --ipp-line-strong: rgba(234,244,239,.24);\n    --ipp-green: #76d8ae;\n    --ipp-green-deep: #58bf94;\n    --ipp-mint: #8be3bc;\n    --ipp-red: #e27480;\n    --ipp-red-soft: rgba(226,116,128,.11);\n    --ipp-gold: #e0b662;\n    --ipp-gold-soft: rgba(224,182,98,.13);\n    --ipp-on-green: #07111a;\n    --ipp-on-red: #1a0a0e;\n    --ipp-shadow: 0 28px 80px rgba(0,0,0,.28);\n  }\n}\n\n.iptvit-pricing,\n.iptvit-pricing *,\n.iptvit-pricing *::before,\n.iptvit-pricing *::after { box-sizing: border-box; }\n\n.iptvit-pricing::before {\n  background-image: linear-gradient(var(--ipp-line) 1px,transparent 1px),linear-gradient(90deg,var(--ipp-line) 1px,transparent 1px);\n  background-size: 5rem 5rem;\n  content: \"\";\n  inset: 0;\n  mask-image: linear-gradient(180deg,rgba(0,0,0,.42),transparent 72%);\n  opacity: .19;\n  pointer-events: none;\n  position: absolute;\n}\n\n.iptvit-pricing h2,\n.iptvit-pricing h3,\n.iptvit-pricing p { margin: 0; }\n\n\/* IMPORTANT \u2014 ne pas retirer. Les th\u00e8mes WordPress colorent les titres selon\n   leur propre mode clair\/sombre ; sans cette ligne les h2\/h3 de la section\n   ignorent sa palette. *\/\n.iptvit-pricing h2,\n.iptvit-pricing h3,\n.iptvit-pricing strong { color: inherit; }\n\n.iptvit-pricing button,\n.iptvit-pricing a { font: inherit; }\n\n.iptvit-pricing__inner {\n  margin-inline: auto;\n  max-width: 1380px;\n  padding-inline: clamp(1rem,4vw,3.5rem);\n  position: relative;\n  z-index: 1;\n}\n\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Chapeau \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\n\n.iptvit-pricing__intro {\n  margin: 0 auto clamp(1.6rem,3vw,2.6rem);\n  max-width: 860px;\n  text-align: center;\n}\n\n.iptvit-pricing__eyebrow,\n.iptvit-pricing__section-kicker {\n  align-items: center;\n  color: var(--ipp-green);\n  display: inline-flex;\n  font-size: .78rem;\n  font-weight: 850;\n  gap: .55rem;\n  letter-spacing: .13em;\n  text-transform: uppercase;\n}\n\n.iptvit-pricing__eyebrow::before,\n.iptvit-pricing__section-kicker::before {\n  background: var(--ipp-red);\n  border-radius: 999px;\n  content: \"\";\n  height: .48rem;\n  width: .48rem;\n}\n\n.iptvit-pricing__intro h2 {\n  color: var(--ipp-ink);\n  font-size: clamp(2.35rem,5vw,4.9rem);\n  font-weight: 900;\n  letter-spacing: -.055em;\n  line-height: .98;\n  margin-top: 1rem;\n  text-wrap: balance;\n}\n\n.iptvit-pricing__intro h2 span { color: var(--ipp-green); }\n\n.iptvit-pricing__intro > p {\n  color: var(--ipp-muted);\n  font-size: clamp(1rem,1.6vw,1.16rem);\n  line-height: 1.75;\n  margin: 1.35rem auto 0;\n  max-width: 720px;\n}\n\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Choix de la gamme \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\n\n\/* Coll\u00e9e aux tables et maintenue SOUS l'en-t\u00eate du site pendant le d\u00e9filement.\n   Une fois \u00e9pingl\u00e9e elle se compacte : voir le bloc \u00ab Barre compacte \u00bb. *\/\n.iptvit-pricing__tiers {\n  background: color-mix(in srgb,var(--ipp-surface-2) 90%,transparent);\n  backdrop-filter: blur(14px);\n  border: 1px solid var(--ipp-line);\n  border-radius: 1.5rem;\n  box-shadow: var(--ipp-shadow);\n  margin: 0 auto clamp(1.6rem,2.6vw,2.4rem);\n  max-width: 1040px;\n  padding: clamp(.9rem,1.6vw,1.15rem);\n  position: sticky;\n  top: calc(var(--ipp-header-offset) + .7rem);\n  \/* margin-bottom est volontairement ABSENT de cette liste : c'est la marge de\n     compensation, recalculee a chaque image par le ResizeObserver. L'animer\n     ferait relire une valeur intermediaire comme valeur de reference, et la\n     marge s'emballerait a chaque mesure. *\/\n  transition:\n    border-radius .34s var(--ipp-ease-soft),\n    padding .34s var(--ipp-ease-soft);\n  z-index: 6;\n}\n\n\/* Rep\u00e8re invisible pos\u00e9 juste AVANT la barre. Il sert \u00e0 savoir si la barre est\n   \u00e9pingl\u00e9e. Comme il ne bouge pas quand la barre change de taille, l'\u00e9pinglage\n   ne peut pas se mettre \u00e0 osciller. *\/\n.iptvit-pricing__tiers-sentinel {\n  height: 1px;\n  margin-top: -1px;\n  pointer-events: none;\n  visibility: hidden;\n}\n\n\/* Grille \u00e0 une seule rang\u00e9e : passer \u00e0 0fr replie proprement le chapeau,\n   en animant, sans avoir \u00e0 deviner sa hauteur. *\/\n.iptvit-pricing__tiers-head {\n  display: grid;\n  grid-template-rows: 1fr;\n  margin-bottom: .85rem;\n  transition:\n    grid-template-rows .34s var(--ipp-ease-soft),\n    margin-bottom .34s var(--ipp-ease-soft),\n    opacity .24s var(--ipp-ease-soft);\n}\n\n.iptvit-pricing__tiers-head-inner {\n  align-items: baseline;\n  display: flex;\n  flex-wrap: wrap;\n  gap: .3rem .8rem;\n  min-height: 0;\n  overflow: hidden;\n  padding-inline: .25rem;\n}\n\n.iptvit-pricing__tiers-head p {\n  color: var(--ipp-muted);\n  font-size: .86rem;\n  line-height: 1.5;\n}\n\n.iptvit-pricing__tier-options {\n  display: grid;\n  gap: .6rem;\n  grid-template-columns: repeat(2,minmax(0,1fr));\n  transition: gap .34s var(--ipp-ease-soft);\n}\n\n.iptvit-pricing__tier-option {\n  align-items: center;\n  background: transparent;\n  border: 1.5px solid var(--ipp-line);\n  border-radius: 1.1rem;\n  color: var(--ipp-ink);\n  cursor: pointer;\n  display: grid;\n  gap: .85rem;\n  grid-template-columns: auto minmax(0,1fr) auto;\n  padding: .85rem .95rem;\n  position: relative;\n  text-align: left;\n  transition:\n    background-color .3s var(--ipp-ease-soft),\n    border-color .3s var(--ipp-ease-soft),\n    box-shadow .3s var(--ipp-ease-soft),\n    gap .34s var(--ipp-ease-soft),\n    padding .34s var(--ipp-ease-soft),\n    transform .3s var(--ipp-ease);\n}\n\n.iptvit-pricing__tier-mark {\n  align-items: center;\n  border: 1px solid var(--ipp-line);\n  border-radius: .8rem;\n  color: var(--ipp-muted);\n  display: inline-flex;\n  flex: 0 0 auto;\n  height: 2.6rem;\n  justify-content: center;\n  transition:\n    background-color .3s ease,\n    border-color .3s ease,\n    border-radius .34s var(--ipp-ease-soft),\n    color .3s ease,\n    height .34s var(--ipp-ease-soft),\n    width .34s var(--ipp-ease-soft);\n  width: 2.6rem;\n}\n\n.iptvit-pricing__tier-mark svg {\n  fill: none;\n  height: 1.3rem;\n  stroke: currentColor;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  stroke-width: 1.7;\n  transition: height .34s var(--ipp-ease-soft),width .34s var(--ipp-ease-soft);\n  width: 1.3rem;\n}\n\n.iptvit-pricing__tier-text strong {\n  display: block;\n  font-size: 1.05rem;\n  font-weight: 900;\n  letter-spacing: -.02em;\n  transition: font-size .34s var(--ipp-ease-soft);\n}\n\n\/* Enfant direct uniquement : sans le combinateur, cette r\u00e8gle attrapait\n   aussi la pastille imbriqu\u00e9e dans le <strong> et l'\u00e9tirait sur toute la\n   largeur. *\/\n.iptvit-pricing__tier-text > span {\n  color: var(--ipp-muted);\n  display: block;\n  font-size: .8rem;\n  line-height: 1.45;\n  margin-top: .18rem;\n  max-height: 5rem;\n  overflow: hidden;\n  transition:\n    margin-top .34s var(--ipp-ease-soft),\n    max-height .34s var(--ipp-ease-soft),\n    opacity .22s var(--ipp-ease-soft);\n}\n\n.iptvit-pricing__tier-check {\n  align-items: center;\n  border: 1.5px solid var(--ipp-line-strong);\n  border-radius: 50%;\n  display: inline-flex;\n  flex: 0 0 auto;\n  height: 1.5rem;\n  justify-content: center;\n  transition:\n    background-color .3s ease,\n    border-color .3s ease,\n    height .34s var(--ipp-ease-soft),\n    width .34s var(--ipp-ease-soft);\n  width: 1.5rem;\n}\n\n.iptvit-pricing__tier-check svg {\n  fill: none;\n  height: .85rem;\n  stroke: var(--ipp-on-green);\n  stroke-dasharray: 16;\n  stroke-dashoffset: 16;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  stroke-width: 2.6;\n  transition: height .34s var(--ipp-ease-soft),width .34s var(--ipp-ease-soft);\n  width: .85rem;\n}\n\n\/* Option retenue *\/\n.iptvit-pricing__tier-option[aria-pressed=\"true\"] {\n  background: color-mix(in srgb,var(--ipp-green) 9%,transparent);\n  border-color: var(--ipp-green);\n}\n\n.iptvit-pricing__tier-option[aria-pressed=\"true\"] .iptvit-pricing__tier-mark {\n  background: var(--ipp-green-deep);\n  border-color: transparent;\n  color: var(--ipp-on-green);\n}\n\n.iptvit-pricing__tier-option[aria-pressed=\"true\"] .iptvit-pricing__tier-check {\n  background: var(--ipp-green-deep);\n  border-color: var(--ipp-green-deep);\n}\n\n\/* La coche se dessine au lieu d'appara\u00eetre *\/\n.iptvit-pricing__tier-option[aria-pressed=\"true\"] .iptvit-pricing__tier-check svg {\n  animation: ipp-draw .42s .06s var(--ipp-ease) forwards;\n}\n\n@keyframes ipp-draw { to { stroke-dashoffset: 0; } }\n\n\/* La gamme Premium se distingue par l'or de la marque *\/\n.iptvit-pricing__tier-option--premium[aria-pressed=\"true\"] {\n  background: color-mix(in srgb,var(--ipp-gold) 10%,transparent);\n  border-color: var(--ipp-gold);\n}\n\n.iptvit-pricing__tier-option--premium[aria-pressed=\"true\"] .iptvit-pricing__tier-mark,\n.iptvit-pricing__tier-option--premium[aria-pressed=\"true\"] .iptvit-pricing__tier-check {\n  background: var(--ipp-gold);\n  border-color: var(--ipp-gold);\n  color: #fff;\n}\n\n.iptvit-pricing__tier-option--premium[aria-pressed=\"true\"] .iptvit-pricing__tier-check svg { stroke: #fff; }\n\n.iptvit-pricing__tier-flag {\n  background: linear-gradient(135deg,var(--ipp-gold),var(--ipp-red));\n  border-radius: 999px;\n  color: #fff;\n  display: inline-block;\n  font-size: .58rem;\n  font-weight: 900;\n  letter-spacing: .1em;\n  margin-left: .4rem;\n  padding: .18rem .42rem;\n  text-transform: uppercase;\n  vertical-align: .12em;\n}\n\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Barre compacte une fois \u00e9pingl\u00e9e \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\n\n   L'\u00e9tat par d\u00e9faut est la barre pleine : la classe is-pinned est pos\u00e9e par le\n   script, jamais par le CSS seul. Si le JS ne tourne pas, rien ne r\u00e9tr\u00e9cit et\n   aucun texte n'est masqu\u00e9.\n\n   Le chapeau et les descriptions repli\u00e9s restent dans le DOM : ils sortent de\n   la vue, pas de l'arbre d'accessibilit\u00e9, et ils reviennent d\u00e8s qu'on remonte.\n   Le nom de chaque bouton reste donc complet pour un lecteur d'\u00e9cran. *\/\n\n\/* Le temps de relever la hauteur deployee, on fige les transitions : sinon on\n   lit une hauteur en cours d'animation et la compensation part de travers. *\/\n.iptvit-pricing__tiers.is-measuring,\n.iptvit-pricing__tiers.is-measuring *,\n.iptvit-pricing__tiers.is-measuring *::before,\n.iptvit-pricing__tiers.is-measuring *::after { transition: none !important; }\n\n.iptvit-pricing__tiers.is-pinned {\n  border-radius: 1.15rem;\n  padding: .55rem;\n}\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tiers-head {\n  grid-template-rows: 0fr;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-option {\n  gap: .6rem;\n  \/* Cible tactile : 48 px, au-dessus des 44 px recommand\u00e9s. *\/\n  min-height: 3rem;\n  padding: .5rem .7rem;\n}\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-mark {\n  border-radius: .6rem;\n  height: 2rem;\n  width: 2rem;\n}\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-mark svg { height: 1.05rem; width: 1.05rem; }\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-text strong { font-size: .94rem; }\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-text > span {\n  margin-top: 0;\n  max-height: 0;\n  opacity: 0;\n}\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-check { height: 1.25rem; width: 1.25rem; }\n\n.iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-check svg { height: .72rem; width: .72rem; }\n\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Sections de tarifs \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\n\n.iptvit-pricing__section + .iptvit-pricing__section { margin-top: clamp(3rem,5vw,5rem); }\n\n.iptvit-pricing__section-head {\n  align-items: end;\n  display: grid;\n  gap: 1.25rem 2rem;\n  grid-template-columns: 1fr auto;\n  margin-bottom: 1.5rem;\n}\n\n.iptvit-pricing__section-title h3 {\n  color: var(--ipp-ink);\n  font-size: clamp(1.9rem,3.5vw,3.15rem);\n  font-weight: 900;\n  letter-spacing: -.045em;\n  line-height: 1.04;\n  margin-top: .75rem;\n}\n\n.iptvit-pricing__section-title p {\n  color: var(--ipp-muted);\n  line-height: 1.65;\n  margin-top: .7rem;\n  max-width: 650px;\n}\n\n.iptvit-pricing__screen-switch {\n  background: color-mix(in srgb,var(--ipp-surface-2) 74%,transparent);\n  border: 1px solid var(--ipp-line);\n  border-radius: 999px;\n  display: inline-grid;\n  gap: .35rem;\n  grid-template-columns: repeat(3,minmax(4.2rem,1fr));\n  padding: .35rem;\n  position: relative;\n}\n\n\/* Pastille coulissante entre les choix d'\u00e9crans *\/\n.iptvit-pricing__screen-switch::before {\n  background: var(--ipp-green-deep);\n  border-radius: 999px;\n  bottom: .35rem;\n  box-shadow: 0 8px 20px color-mix(in srgb,var(--ipp-green-deep) 26%,transparent);\n  content: \"\";\n  left: 0;\n  position: absolute;\n  top: .35rem;\n  transform: translateX(var(--ipp-pill-x,0px));\n  transition: transform .42s var(--ipp-ease),width .42s var(--ipp-ease);\n  width: var(--ipp-pill-w,0px);\n  z-index: 0;\n}\n\n.iptvit-pricing__screen-switch.is-instant::before { transition: none; }\n\n.iptvit-pricing__screen-switch button {\n  background: transparent;\n  border: 0;\n  border-radius: 999px;\n  color: var(--ipp-muted);\n  cursor: pointer;\n  font-weight: 850;\n  min-height: 2.85rem;\n  padding: .6rem .8rem;\n  position: relative;\n  transition: color .25s var(--ipp-ease-soft),transform .25s var(--ipp-ease);\n  z-index: 1;\n}\n\n.iptvit-pricing__screen-switch button[aria-pressed=\"true\"] { color: var(--ipp-on-green); }\n\n.iptvit-pricing__rail-shell { position: relative; }\n\n.iptvit-pricing__rail {\n  display: grid;\n  gap: 1rem;\n  grid-template-columns: repeat(4,minmax(0,1fr));\n}\n\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Cartes \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\n\n.iptvit-pricing__card {\n  background: linear-gradient(160deg,color-mix(in srgb,var(--ipp-surface-2) 96%,transparent),color-mix(in srgb,var(--ipp-surface) 89%,transparent));\n  border: 1px solid var(--ipp-line);\n  border-radius: 1.55rem;\n  display: flex;\n  flex-direction: column;\n  min-height: 100%;\n  overflow: hidden;\n  padding: clamp(1.25rem,2vw,1.7rem);\n  position: relative;\n  transition: border-color .3s ease,box-shadow .3s ease,transform .3s var(--ipp-ease);\n}\n\n.iptvit-pricing__card::before {\n  background: linear-gradient(90deg,var(--ipp-green),var(--ipp-red));\n  content: \"\";\n  height: 3px;\n  inset: 0 0 auto;\n  opacity: .72;\n  position: absolute;\n  transition: background .45s var(--ipp-ease-soft);\n}\n\n\/* En Premium le filet vire \u00e0 l'or : la grille change visiblement de gamme *\/\n.iptvit-pricing[data-active-tier=\"premium\"] .iptvit-pricing__card::before {\n  background: linear-gradient(90deg,var(--ipp-gold),var(--ipp-red));\n  opacity: .95;\n}\n\n.iptvit-pricing__card.is-popular {\n  border-color: color-mix(in srgb,var(--ipp-green) 62%,var(--ipp-line));\n  box-shadow: 0 22px 55px color-mix(in srgb,var(--ipp-green) 15%,transparent);\n}\n\n.iptvit-pricing__card.is-value {\n  background: linear-gradient(160deg,color-mix(in srgb,var(--ipp-red-soft) 72%,var(--ipp-surface-2)),var(--ipp-surface-2));\n  border-color: color-mix(in srgb,var(--ipp-red) 55%,var(--ipp-line));\n}\n\n\/* \u2014\u2014\u2014\u2014\u2014 Traitement propre aux longues dur\u00e9es \u2014\u2014\u2014\u2014\u2014 *\/\n\n\/* Halo d'angle : les engagements longs se d\u00e9marquent au premier regard. *\/\n.iptvit-pricing__card.is-long::after {\n  background: radial-gradient(circle,color-mix(in srgb,var(--ipp-green) 22%,transparent),transparent 68%);\n  border-radius: 50%;\n  content: \"\";\n  height: 13rem;\n  pointer-events: none;\n  position: absolute;\n  right: -6rem;\n  top: -6rem;\n  transition: opacity .4s ease,transform .55s var(--ipp-ease);\n  width: 13rem;\n  z-index: 0;\n}\n\n.iptvit-pricing__card.is-value.is-long::after {\n  background: radial-gradient(circle,color-mix(in srgb,var(--ipp-red) 24%,transparent),transparent 68%);\n}\n\n.iptvit-pricing[data-active-tier=\"premium\"] .iptvit-pricing__card.is-long::after {\n  background: radial-gradient(circle,color-mix(in srgb,var(--ipp-gold) 26%,transparent),transparent 68%);\n}\n\n.iptvit-pricing__card > * { position: relative; z-index: 1; }\n\n.iptvit-pricing__badge {\n  align-self: flex-start;\n  background: color-mix(in srgb,var(--ipp-green) 14%,transparent);\n  border: 1px solid color-mix(in srgb,var(--ipp-green) 32%,transparent);\n  border-radius: 999px;\n  color: var(--ipp-green);\n  font-size: .67rem;\n  font-weight: 900;\n  letter-spacing: .07em;\n  margin-bottom: 1rem;\n  padding: .43rem .67rem;\n  text-transform: uppercase;\n}\n\n.iptvit-pricing__card.is-value .iptvit-pricing__badge {\n  background: var(--ipp-red-soft);\n  border-color: color-mix(in srgb,var(--ipp-red) 38%,transparent);\n  color: var(--ipp-red);\n}\n\n\/* Respiration discr\u00e8te sur l'offre la plus choisie *\/\n.iptvit-pricing.is-reveal-ready .iptvit-pricing__card.is-popular .iptvit-pricing__badge {\n  animation: ipp-badge 3.8s 1.4s var(--ipp-ease-soft) infinite;\n}\n\n@keyframes ipp-badge {\n  0%,72%,100% { box-shadow: 0 0 0 0 color-mix(in srgb,var(--ipp-green) 0%,transparent); }\n  78%         { box-shadow: 0 0 0 0 color-mix(in srgb,var(--ipp-green) 42%,transparent); }\n  90%         { box-shadow: 0 0 0 .5rem color-mix(in srgb,var(--ipp-green) 0%,transparent); }\n}\n\n.iptvit-pricing__placeholder { height: 2rem; margin-bottom: 1rem; }\n\n.iptvit-pricing__card h3 { font-size: 1.23rem; letter-spacing: -.025em; line-height: 1.2; }\n\n.iptvit-pricing__plan-note {\n  color: var(--ipp-muted);\n  font-size: .84rem;\n  line-height: 1.5;\n  margin-top: .55rem !important;\n  min-height: 2.55rem;\n}\n\n.iptvit-pricing__price { align-items: end; display: flex; gap: .4rem; margin: 1.3rem 0 .35rem; }\n\n.iptvit-pricing__price strong {\n  font-size: clamp(2.15rem,3.2vw,3rem);\n  font-variant-numeric: tabular-nums;\n  letter-spacing: -.06em;\n  line-height: .9;\n}\n\n.iptvit-pricing__price span { color: var(--ipp-muted); font-size: .76rem; padding-bottom: .18rem; }\n\n\/* \u00c9quivalent mensuel : rend l'int\u00e9r\u00eat du long terme \u00e9vident sans calcul. *\/\n.iptvit-pricing__permonth {\n  color: var(--ipp-muted);\n  font-size: .78rem;\n  font-variant-numeric: tabular-nums;\n  font-weight: 750;\n  margin-bottom: .75rem !important;\n}\n\n.iptvit-pricing__permonth b {\n  color: var(--ipp-ink);\n  font-weight: 900;\n}\n\n\/* La gamme retenue se lit sur chaque carte *\/\n.iptvit-pricing__config {\n  align-items: center;\n  background: color-mix(in srgb,var(--ipp-green) 12%,transparent);\n  border: 1px solid color-mix(in srgb,var(--ipp-green) 28%,transparent);\n  border-radius: 999px;\n  color: var(--ipp-green);\n  display: inline-flex;\n  font-size: .74rem;\n  font-weight: 850;\n  padding: .34rem .6rem;\n  transition: background-color .4s ease,border-color .4s ease,color .4s ease;\n}\n\n.iptvit-pricing[data-active-tier=\"premium\"] .iptvit-pricing__config {\n  background: var(--ipp-gold-soft);\n  border-color: color-mix(in srgb,var(--ipp-gold) 38%,transparent);\n  color: var(--ipp-gold);\n}\n\n.iptvit-pricing__features {\n  border-top: 1px solid var(--ipp-line);\n  list-style: none;\n  margin: 1.2rem 0 1.1rem;\n  padding: 1rem 0 0;\n}\n\n.iptvit-pricing__features li {\n  color: var(--ipp-muted);\n  font-size: .81rem;\n  line-height: 1.45;\n  padding: .42rem 0 .42rem 1.35rem;\n  position: relative;\n}\n\n.iptvit-pricing__features li::before {\n  color: var(--ipp-green);\n  content: \"\u2713\";\n  font-weight: 900;\n  left: 0;\n  position: absolute;\n}\n\n.iptvit-pricing[data-active-tier=\"premium\"] .iptvit-pricing__features li::before { color: var(--ipp-gold); }\n\n\/* \u2014\u2014\u2014\u2014\u2014 Encart des avantages longue dur\u00e9e \u2014\u2014\u2014\u2014\u2014 *\/\n\n.iptvit-pricing__bonus {\n  background: color-mix(in srgb,var(--ipp-green) 8%,transparent);\n  border: 1px dashed color-mix(in srgb,var(--ipp-green) 34%,transparent);\n  border-radius: .95rem;\n  margin-bottom: 1.25rem;\n  padding: .8rem .85rem;\n}\n\n.iptvit-pricing__card.is-value .iptvit-pricing__bonus {\n  background: var(--ipp-red-soft);\n  border-color: color-mix(in srgb,var(--ipp-red) 34%,transparent);\n}\n\n.iptvit-pricing[data-active-tier=\"premium\"] .iptvit-pricing__bonus {\n  background: var(--ipp-gold-soft);\n  border-color: color-mix(in srgb,var(--ipp-gold) 38%,transparent);\n}\n\n.iptvit-pricing__bonus:empty { display: none; }\n\n.iptvit-pricing__bonus-title {\n  align-items: center;\n  color: var(--ipp-green);\n  display: flex;\n  font-size: .68rem;\n  font-weight: 900;\n  gap: .4rem;\n  letter-spacing: .09em;\n  margin-bottom: .5rem;\n  text-transform: uppercase;\n}\n\n.iptvit-pricing__card.is-value .iptvit-pricing__bonus-title { color: var(--ipp-red); }\n.iptvit-pricing[data-active-tier=\"premium\"] .iptvit-pricing__bonus-title { color: var(--ipp-gold); }\n\n.iptvit-pricing__bonus-title svg {\n  fill: none;\n  height: .95rem;\n  stroke: currentColor;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  stroke-width: 1.9;\n  width: .95rem;\n}\n\n.iptvit-pricing__bonus ul {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.iptvit-pricing__bonus li {\n  color: var(--ipp-ink);\n  font-size: .79rem;\n  font-weight: 750;\n  line-height: 1.42;\n  padding: .22rem 0 .22rem 1.15rem;\n  position: relative;\n}\n\n.iptvit-pricing__bonus li::before {\n  content: \"+\";\n  font-weight: 900;\n  left: .1rem;\n  position: absolute;\n}\n\n\/* Les avantages se remettent en place quand la gamme change *\/\n.iptvit-pricing__card.is-refreshed .iptvit-pricing__features li {\n  animation: ipp-rise .46s var(--ipp-feat-delay,0ms) var(--ipp-ease) backwards;\n}\n\n.iptvit-pricing__features li:nth-child(1) { --ipp-feat-delay: 0ms; }\n.iptvit-pricing__features li:nth-child(2) { --ipp-feat-delay: 40ms; }\n.iptvit-pricing__features li:nth-child(3) { --ipp-feat-delay: 80ms; }\n.iptvit-pricing__features li:nth-child(4) { --ipp-feat-delay: 120ms; }\n.iptvit-pricing__features li:nth-child(5) { --ipp-feat-delay: 160ms; }\n.iptvit-pricing__features li:nth-child(6) { --ipp-feat-delay: 200ms; }\n\n.iptvit-pricing__card.is-refreshed .iptvit-pricing__bonus {\n  animation: ipp-rise .46s 240ms var(--ipp-ease) backwards;\n}\n\n@keyframes ipp-rise {\n  from { opacity: 0; transform: translateY(.4rem); }\n  to   { opacity: 1; transform: none; }\n}\n\n.iptvit-pricing__cta {\n  align-items: center;\n  background: transparent;\n  border: 1px solid color-mix(in srgb,var(--ipp-green) 55%,var(--ipp-line));\n  border-radius: .85rem;\n  color: var(--ipp-green);\n  display: flex;\n  font-size: .88rem;\n  font-weight: 900;\n  justify-content: space-between;\n  margin-top: auto;\n  min-height: 3.25rem;\n  overflow: hidden;\n  padding: .75rem 1rem;\n  position: relative;\n  text-decoration: none;\n  transition: background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s var(--ipp-ease);\n}\n\n.iptvit-pricing__cta::after {\n  content: \"\u2192\";\n  font-size: 1.2rem;\n  transition: transform .3s var(--ipp-ease);\n}\n\n.iptvit-pricing__card.is-popular .iptvit-pricing__cta {\n  background: var(--ipp-green-deep);\n  border-color: transparent;\n  color: var(--ipp-on-green);\n}\n\n.iptvit-pricing__card.is-value .iptvit-pricing__cta {\n  background: var(--ipp-red);\n  border-color: transparent;\n  color: var(--ipp-on-red);\n}\n\n.iptvit-pricing__nav { display: none; gap: .55rem; }\n\n.iptvit-pricing__nav button {\n  align-items: center;\n  background: var(--ipp-surface-2);\n  border: 1px solid var(--ipp-line-strong);\n  border-radius: 50%;\n  color: var(--ipp-ink);\n  cursor: pointer;\n  display: inline-flex;\n  font-size: 1.2rem;\n  height: 2.75rem;\n  justify-content: center;\n  transition: border-color .25s ease,color .25s ease,transform .25s var(--ipp-ease);\n  width: 2.75rem;\n}\n\n.iptvit-pricing__nav button:disabled { cursor: not-allowed; opacity: .38; }\n\n.iptvit-pricing__assurance {\n  align-items: center;\n  border-top: 1px solid var(--ipp-line);\n  color: var(--ipp-muted);\n  display: flex;\n  flex-wrap: wrap;\n  font-size: .84rem;\n  gap: .8rem 1.5rem;\n  justify-content: center;\n  margin-top: clamp(3rem,6vw,5rem);\n  padding-top: 1.5rem;\n}\n\n.iptvit-pricing__assurance span::before { color: var(--ipp-green); content: \"\u2713\"; font-weight: 900; margin-right: .45rem; }\n\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Apparition \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\n\n.iptvit-pricing__reveal { opacity: 1; transform: none; }\n.iptvit-pricing.is-reveal-ready .iptvit-pricing__reveal { opacity: 0; transform: translateY(1.5rem); }\n.iptvit-pricing.is-reveal-ready .iptvit-pricing__reveal.is-visible { animation: ipp-reveal .72s var(--ipp-ease) forwards; }\n\n@keyframes ipp-reveal { to { opacity: 1; transform: none; } }\n\n\/* Entr\u00e9e en cascade des cartes *\/\n.iptvit-pricing.is-reveal-ready .iptvit-pricing__section.is-visible .iptvit-pricing__card {\n  animation: ipp-card-in .6s var(--ipp-card-delay,0ms) var(--ipp-ease) backwards;\n}\n\n.iptvit-pricing__card:nth-child(1) { --ipp-card-delay: 90ms; }\n.iptvit-pricing__card:nth-child(2) { --ipp-card-delay: 165ms; }\n.iptvit-pricing__card:nth-child(3) { --ipp-card-delay: 240ms; }\n.iptvit-pricing__card:nth-child(4) { --ipp-card-delay: 315ms; }\n\n@keyframes ipp-card-in {\n  from { opacity: 0; transform: translateY(1.1rem); }\n  to   { opacity: 1; transform: none; }\n}\n\n.iptvit-pricing button:focus-visible,\n.iptvit-pricing a:focus-visible { outline: 3px solid color-mix(in srgb,var(--ipp-mint) 74%,transparent); outline-offset: 3px; }\n\n@media (hover:hover) {\n  .iptvit-pricing__card:hover { border-color: color-mix(in srgb,var(--ipp-green) 42%,var(--ipp-line)); box-shadow: var(--ipp-shadow); transform: translateY(-.38rem); }\n  .iptvit-pricing__card.is-long:hover::after { transform: scale(1.25); }\n  .iptvit-pricing__cta:hover { background: var(--ipp-green-deep); border-color: transparent; color: var(--ipp-on-green); transform: translateY(-2px); }\n  .iptvit-pricing__card.is-value .iptvit-pricing__cta:hover { background: var(--ipp-red); color: var(--ipp-on-red); }\n  .iptvit-pricing__cta:hover::after { transform: translateX(.22rem); }\n  .iptvit-pricing__tier-option:hover { border-color: var(--ipp-line-strong); transform: translateY(-.15rem); }\n  .iptvit-pricing__tier-option[aria-pressed=\"true\"]:hover { transform: none; }\n  .iptvit-pricing__screen-switch button:hover { color: var(--ipp-ink); }\n  .iptvit-pricing__screen-switch button[aria-pressed=\"true\"]:hover { color: var(--ipp-on-green); }\n  .iptvit-pricing__nav button:hover:not(:disabled) { border-color: var(--ipp-green); color: var(--ipp-green); transform: translateY(-.12rem); }\n}\n\n@media (max-width: 1050px) {\n  .iptvit-pricing__rail { grid-template-columns: repeat(2,minmax(0,1fr)); }\n}\n\n@media (max-width: 760px) {\n  .iptvit-pricing { padding-block: 4.5rem; }\n  \/* La barre reste visible pendant le d\u00e9filement mobile, sous le header. *\/\n  .iptvit-pricing__tiers {\n    position: sticky;\n    top: calc(var(--ipp-header-offset) + .45rem);\n    z-index: 20;\n  }\n  .iptvit-pricing__tier-options { grid-template-columns: 1fr; }\n\n  \/* \u00c9pingl\u00e9e, la barre repasse sur deux colonnes. C'est ici que se gagne\n     l'essentiel de la hauteur : d\u00e9ploy\u00e9e elle empile les deux gammes et\n     occupait la moiti\u00e9 d'un \u00e9cran de t\u00e9l\u00e9phone. *\/\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-options {\n    gap: .5rem;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n  }\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-option { padding: .5rem .55rem; }\n  \/* La pastille \u00ab Top \u00bb ne tient plus \u00e0 c\u00f4t\u00e9 du nom sur deux colonnes ;\n     l'or de la bordure et de l'ic\u00f4ne suffit \u00e0 distinguer Premium. *\/\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-flag { display: none; }\n\n  .iptvit-pricing__section-head { align-items: start; grid-template-columns: 1fr; }\n  .iptvit-pricing__section-controls { align-items: center; display: flex; gap: .75rem; justify-content: space-between; width: 100%; }\n  .iptvit-pricing__screen-switch { flex: 1; }\n  .iptvit-pricing__nav { display: flex; }\n  .iptvit-pricing__rail {\n    display: flex;\n    gap: .85rem;\n    margin-inline: calc(clamp(1rem,4vw,3.5rem) * -1);\n    overflow-x: auto;\n    padding: .25rem clamp(1rem,4vw,3.5rem) 1.1rem;\n    scroll-padding-inline: clamp(1rem,4vw,3.5rem);\n    scroll-snap-type: x mandatory;\n    scrollbar-width: none;\n  }\n  .iptvit-pricing__rail::-webkit-scrollbar { display: none; }\n  .iptvit-pricing__card { flex: 0 0 min(82vw,21rem); scroll-snap-align: start; }\n}\n\n@media (max-width: 420px) {\n  \/* Sous 420 px la coche ne tient plus \u00e0 c\u00f4t\u00e9 du nom. La gamme retenue reste\n     lisible par la bordure color\u00e9e, le fond teint\u00e9 et l'ic\u00f4ne pleine. *\/\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-check { display: none; }\n}\n\n@media (max-width: 360px) {\n  \/* Mesur\u00e9 \u00e0 320 px : \u00ab Standard \u00bb d\u00e9bordait de 6 px de sa colonne. On rend la\n     place sur l'ic\u00f4ne et les marges plut\u00f4t que de laisser le nom se faire\n     rogner. Le bouton garde ses 48 px de haut. *\/\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-option { gap: .45rem; padding: .5rem .45rem; }\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-mark { height: 1.75rem; width: 1.75rem; }\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-mark svg { height: .95rem; width: .95rem; }\n  .iptvit-pricing__tiers.is-pinned .iptvit-pricing__tier-text strong { font-size: .82rem; }\n}\n\n@media (max-width: 480px) {\n  .iptvit-pricing__intro { text-align: left; }\n  .iptvit-pricing__section-controls { align-items: stretch; flex-direction: column; }\n  .iptvit-pricing__nav { align-self: flex-end; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .iptvit-pricing *,\n  .iptvit-pricing *::before,\n  .iptvit-pricing *::after {\n    animation-duration: .01ms !important;\n    animation-iteration-count: 1 !important;\n    scroll-behavior: auto !important;\n    transition-duration: .01ms !important;\n  }\n  .iptvit-pricing__reveal,\n  .iptvit-pricing.is-reveal-ready .iptvit-pricing__reveal { opacity: 1; transform: none; }\n  .iptvit-pricing__tier-check svg { stroke-dashoffset: 0 !important; }\n}\n\n@media (forced-colors: active) {\n  .iptvit-pricing__card,\n  .iptvit-pricing__tier-option,\n  .iptvit-pricing__cta,\n  .iptvit-pricing__nav button { border: 1px solid CanvasText; }\n  .iptvit-pricing__screen-switch::before,\n  .iptvit-pricing__card.is-long::after { display: none; }\n}\n<\/style>\n\n<section id=\"offerte\" class=\"iptvit-pricing\" data-iptvit-pricing data-active-tier=\"standard\" aria-label=\"Abbonamenti IPTV Italia\">\n  <div class=\"iptvit-pricing__inner\">\n    <header class=\"iptvit-pricing__intro iptvit-pricing__reveal\">\n      <span class=\"iptvit-pricing__eyebrow\">Confronta Standard e Premium<\/span>\n      <h2>Abbonamenti IPTV Italia: <span>scegli il piano pi\u00f9 adatto.<\/span><\/h2>\n      <p>Confronta un abbonamento IPTV Italia scegliendo tra Standard e Premium, da 1 a 4 schermi e per 3, 6, 12 o 24 mesi. Il prezzo totale dipende dalla configurazione selezionata.<\/p>\n    <\/header>\n\n    <div class=\"iptvit-pricing__tiers iptvit-pricing__reveal\">\n      <div class=\"iptvit-pricing__tiers-head\">\n        <div class=\"iptvit-pricing__tiers-head-inner\">\n          <span class=\"iptvit-pricing__section-kicker\">Due gamme di server IPTV<\/span>\n          <p>Scegli la formula Standard per l\u2019uso quotidiano o Premium per un catalogo ampliato e prestazioni ottimizzate. I prezzi si aggiornano in base a schermi e durata.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"iptvit-pricing__tier-options\" role=\"group\" aria-label=\"Scegli la gamma di server\">\n        <button type=\"button\" class=\"iptvit-pricing__tier-option\" data-tier=\"standard\" aria-pressed=\"true\">\n          <span class=\"iptvit-pricing__tier-mark\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\">\n              <path d=\"M12 3.5 19 6.5v5.2c0 4.4-2.9 7.8-7 9.3-4.1-1.5-7-4.9-7-9.3V6.5l7-3Z\"><\/path>\n              <path d=\"m9 12 2.2 2.2L15.5 10\"><\/path>\n            <\/svg>\n          <\/span>\n          <span class=\"iptvit-pricing__tier-text\">\n            <strong>Standard<\/strong>\n            <span>Affidabile e completo, per l\u2019uso quotidiano.<\/span>\n          <\/span>\n          <span class=\"iptvit-pricing__tier-check\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"m5 12.5 4.5 4.5L19 7.5\"><\/path><\/svg>\n          <\/span>\n        <\/button>\n\n        <button type=\"button\" class=\"iptvit-pricing__tier-option iptvit-pricing__tier-option--premium\" data-tier=\"premium\" aria-pressed=\"false\">\n          <span class=\"iptvit-pricing__tier-mark\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\">\n              <path d=\"M4 17.5 3 7l5 3.5L12 4l4 6.5L21 7l-1 10.5H4Z\"><\/path>\n              <path d=\"M4 20.5h16\"><\/path>\n            <\/svg>\n          <\/span>\n          <span class=\"iptvit-pricing__tier-text\">\n            <strong>Premium <span class=\"iptvit-pricing__tier-flag\">Top<\/span><\/strong>\n            <span>Catalogo pi\u00f9 ricco e stabilit\u00e0 nelle ore di punta.<\/span>\n          <\/span>\n          <span class=\"iptvit-pricing__tier-check\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"m5 12.5 4.5 4.5L19 7.5\"><\/path><\/svg>\n          <\/span>\n        <\/button>\n      <\/div>\n    <\/div>\n\n    <p class=\"iptvit-pricing__sr-status\" data-live aria-live=\"polite\" style=\"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0\">Gamma Standard selezionata.<\/p>\n\n    <div class=\"iptvit-pricing__section iptvit-pricing__reveal\" data-pricing-section=\"single\">\n      <div class=\"iptvit-pricing__section-head\">\n        <div class=\"iptvit-pricing__section-title\">\n          <span class=\"iptvit-pricing__section-kicker\">Abbonamenti personali<\/span>\n          <h3>Abbonamento IPTV per un solo schermo<\/h3>\n          <p>Una soluzione per guardare canali live, film, serie e sport su un dispositivo alla volta.<\/p>\n        <\/div>\n        <div class=\"iptvit-pricing__nav\" aria-label=\"Navigazione offerte a uno schermo\">\n          <button type=\"button\" data-rail-prev aria-label=\"Offerta precedente\">\u2190<\/button>\n          <button type=\"button\" data-rail-next aria-label=\"Offerta successiva\">\u2192<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"iptvit-pricing__rail-shell\">\n        <div class=\"iptvit-pricing__rail\" data-plan-rail tabindex=\"0\" aria-label=\"Offerte a uno schermo\">\n          <article class=\"iptvit-pricing__card\" data-plan-card data-months=\"3\" data-screens=\"1\">\n            <div class=\"iptvit-pricing__placeholder\" aria-hidden=\"true\"><\/div><h3>3 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Per iniziare con la massima libert\u00e0.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>24,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 1 schermo<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 3 mesi<\/a>\n          <\/article>\n          <article class=\"iptvit-pricing__card\" data-plan-card data-months=\"6\" data-screens=\"1\">\n            <div class=\"iptvit-pricing__placeholder\" aria-hidden=\"true\"><\/div><h3>6 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Pi\u00f9 continuit\u00e0, meno rinnovi.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>34,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 1 schermo<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 6 mesi<\/a>\n          <\/article>\n          <article class=\"iptvit-pricing__card is-popular is-long\" data-plan-card data-months=\"12\" data-screens=\"1\">\n            <span class=\"iptvit-pricing__badge\">Pi\u00f9 scelto<\/span><h3>12 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Il miglior equilibrio tra prezzo e continuit\u00e0.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>54,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 1 schermo<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 12 mesi<\/a>\n          <\/article>\n          <article class=\"iptvit-pricing__card is-value is-long\" data-plan-card data-months=\"24\" data-screens=\"1\">\n            <span class=\"iptvit-pricing__badge\">Miglior valore<\/span><h3>24 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Il costo mensile pi\u00f9 basso, senza pensieri.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>84,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 1 schermo<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 24 mesi<\/a>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"iptvit-pricing__section iptvit-pricing__reveal\" data-pricing-section=\"multi\">\n      <div class=\"iptvit-pricing__section-head\">\n        <div class=\"iptvit-pricing__section-title\">\n          <span class=\"iptvit-pricing__section-kicker\">Offerte multi-schermo<\/span>\n          <h3>Abbonamento IPTV multi-schermo<\/h3>\n          <p>Guarda contenuti diversi contemporaneamente su 2, 3 o 4 schermi, in base alla formula selezionata.<\/p>\n        <\/div>\n        <div class=\"iptvit-pricing__section-controls\">\n          <div class=\"iptvit-pricing__screen-switch\" role=\"group\" aria-label=\"Scegli il numero di schermi\">\n            <button type=\"button\" data-screen-choice=\"2\" aria-pressed=\"true\">2 schermi<\/button>\n            <button type=\"button\" data-screen-choice=\"3\" aria-pressed=\"false\">3 schermi<\/button>\n            <button type=\"button\" data-screen-choice=\"4\" aria-pressed=\"false\">4 schermi<\/button>\n          <\/div>\n          <div class=\"iptvit-pricing__nav\" aria-label=\"Navigazione offerte multi-schermo\">\n            <button type=\"button\" data-rail-prev aria-label=\"Offerta precedente\">\u2190<\/button>\n            <button type=\"button\" data-rail-next aria-label=\"Offerta successiva\">\u2192<\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"iptvit-pricing__rail-shell\">\n        <div class=\"iptvit-pricing__rail\" data-plan-rail tabindex=\"0\" aria-label=\"Offerte multi-schermo\">\n          <article class=\"iptvit-pricing__card\" data-plan-card data-months=\"3\" data-screens=\"2\">\n            <div class=\"iptvit-pricing__placeholder\" aria-hidden=\"true\"><\/div><h3>3 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Una soluzione flessibile per iniziare.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>44,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 2 schermi<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 3 mesi<\/a>\n          <\/article>\n          <article class=\"iptvit-pricing__card\" data-plan-card data-months=\"6\" data-screens=\"2\">\n            <div class=\"iptvit-pricing__placeholder\" aria-hidden=\"true\"><\/div><h3>6 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Il giusto equilibrio per la famiglia.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>58,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 2 schermi<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 6 mesi<\/a>\n          <\/article>\n          <article class=\"iptvit-pricing__card is-popular is-long\" data-plan-card data-months=\"12\" data-screens=\"2\">\n            <span class=\"iptvit-pricing__badge\">Pi\u00f9 scelto<\/span><h3>12 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Il miglior equilibrio tra prezzo e continuit\u00e0.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>94,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 2 schermi<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 12 mesi<\/a>\n          <\/article>\n          <article class=\"iptvit-pricing__card is-value is-long\" data-plan-card data-months=\"24\" data-screens=\"2\">\n            <span class=\"iptvit-pricing__badge\">Miglior valore<\/span><h3>24 mesi<\/h3><p class=\"iptvit-pricing__plan-note\">Il costo mensile pi\u00f9 basso, senza pensieri.<\/p>\n            <div class=\"iptvit-pricing__price\"><strong data-price>144,99 \u20ac<\/strong><span>prezzo totale<\/span><\/div>\n            <p class=\"iptvit-pricing__permonth\" data-permonth><\/p>\n            <p class=\"iptvit-pricing__config\" data-config>Standard \u00b7 2 schermi<\/p>\n            <ul class=\"iptvit-pricing__features\" data-features><\/ul>\n            <div class=\"iptvit-pricing__bonus\" data-bonus><\/div>\n            <a class=\"iptvit-pricing__cta\" data-buy href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Scegli 24 mesi<\/a>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"iptvit-pricing__assurance iptvit-pricing__reveal\">\n      <span>Attivazione rapida<\/span><span>Soddisfatti o rimborsati<\/span><span>Assistenza 7 giorni su 7<\/span><span>Compatibilit\u00e0 con i dispositivi supportati<\/span><span>Prezzo totale indicato prima della conferma<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(() => {\n  \"use strict\";\n\n  \/* Six avantages par gamme, volontairement le m\u00eame nombre : un d\u00e9compte\n     in\u00e9gal ferait changer la hauteur des cartes au basculement de gamme. *\/\n  const DATA = {\n    standard: {\n      label: \"Standard\",\n      features: [\n        \"Canali live, sport, film e serie TV\",\n        \"Qualit\u00e0 HD, FHD e 4K\",\n        \"Compatibile Xtream Codes, M3U e MAG\",\n        \"Replay 3-4 giorni e guida TV (EPG)\",\n        \"Tecnologia anti-freeze\",\n        \"Assistenza per tutta la durata dell\u2019abbonamento\"\n      ],\n      prices: {\n        1: {3:24.99, 6:34.99, 12:54.99, 24:84.99},\n        2: {3:44.99, 6:58.99, 12:94.99, 24:144.99},\n        3: {3:59.99, 6:78.99, 12:124.99, 24:189.99},\n        4: {3:74.99, 6:98.99, 12:154.99, 24:234.99}\n      }\n    },\n    premium: {\n      label: \"Premium\",\n      features: [\n        \"Catalogo ampliato: pi\u00f9 canali e pi\u00f9 contenuti VOD\",\n        \"Stabilit\u00e0 prioritaria nelle ore di punta\",\n        \"Qualit\u00e0 HD, FHD e 4K ottimizzata\",\n        \"Compatibile Xtream Codes, M3U e MAG\",\n        \"Replay 3-4 giorni, guida TV (EPG) e anti-freeze\",\n        \"Assistenza per tutta la durata dell\u2019abbonamento\"\n      ],\n      prices: {\n        1: {3:30.99, 6:44.99, 12:70.99, 24:110.99},\n        2: {3:54.99, 6:84.99, 12:114.99, 24:194.99},\n        3: {3:72.99, 6:109.99, 12:152.99, 24:252.99},\n        4: {3:90.99, 6:134.99, 12:190.99, 24:310.99}\n      }\n    }\n  };\n\n  \/* Avantages r\u00e9serv\u00e9s aux engagements longs. *\/\n  const BONUS = {\n    12: [\"3 mesi offerti\", \"Licenza IBO Player inclusa\", \"Playlist personalizzata su richiesta\"],\n    24: [\"6 mesi offerti\", \"Licenza IBO Player inclusa\", \"Playlist personalizzata su richiesta\"]\n  };\n\n  const GIFT_ICON = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 11h16v9H4zM3 7h18v4H3zM12 7v13\"><\/path><path d=\"M12 7S10.5 3 8.5 3 6 6 8 7h4Zm0 0s1.5-4 3.5-4S18 6 16 7h-4Z\"><\/path><\/svg>';\n\n  const money = value => new Intl.NumberFormat(\"it-IT\", {style:\"currency\", currency:\"EUR\"}).format(value);\n\n  document.querySelectorAll(\"[data-iptvit-pricing]\").forEach(root => {\n    if (root.dataset.iptvitReady === \"true\") return;\n    root.dataset.iptvitReady = \"true\";\n\n    let tier = \"standard\";\n    let multiScreens = 2;\n\n    const motionQuery = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n    let reduceMotion = motionQuery.matches;\n\n    const tierButtons = [...root.querySelectorAll(\"[data-tier]\")];\n    const screenButtons = [...root.querySelectorAll(\"[data-screen-choice]\")];\n    const screenSwitch = root.querySelector(\".iptvit-pricing__screen-switch\");\n    const live = root.querySelector(\"[data-live]\");\n\n    \/* \u2014\u2014\u2014\u2014\u2014 Prix qui comptent au lieu d'un fondu de toute la grille \u2014\u2014\u2014\u2014\u2014 *\/\n\n    const animatePrice = (element, target) => {\n      const from = Number(element.dataset.value || target);\n      element.dataset.value = String(target);\n\n      \/* Le prix juste est \u00e9crit IMM\u00c9DIATEMENT. Si les images d'animation ne\n         tournent pas \u2014 onglet en arri\u00e8re-plan, moteur brid\u00e9, extension qui\n         neutralise requestAnimationFrame \u2014 le montant affich\u00e9 reste correct.\n         L'animation ne fait que l'habiller : elle ne doit jamais pouvoir\n         laisser un prix Standard sous une gamme Premium. *\/\n      element.textContent = money(target);\n\n      if (reduceMotion || from === target) return;\n\n      if (element._frame) cancelAnimationFrame(element._frame);\n\n      const started = performance.now();\n      const duration = 520;\n\n      const tick = now => {\n        const progress = Math.min(1, (now - started) \/ duration);\n        const eased = 1 - Math.pow(1 - progress, 3);\n        element.textContent = money(from + (target - from) * eased);\n        element._frame = progress < 1 ? requestAnimationFrame(tick) : 0;\n      };\n\n      element._frame = requestAnimationFrame(tick);\n    };\n\n    const updateSection = (section, screens) => {\n      section.querySelectorAll(\"[data-plan-card]\").forEach(card => {\n        const months = Number(card.dataset.months);\n        const price = DATA[tier].prices[screens][months];\n        const unit = screens === 1 ? \"schermo\" : \"schermi\";\n\n        card.dataset.screens = String(screens);\n        animatePrice(card.querySelector(\"[data-price]\"), price);\n\n        \/* \u00c9quivalent mensuel calcul\u00e9 sur la dur\u00e9e FACTUR\u00c9E, pas sur la dur\u00e9e\n           bonus incluse : annoncer un mensuel dilu\u00e9 sur les mois offerts\n           serait trompeur. Les mois offerts sont annonc\u00e9s \u00e0 part. *\/\n        const perMonth = card.querySelector(\"[data-permonth]\");\n        if (perMonth) {\n          perMonth.innerHTML = `equivale a <b>${money(price \/ months)}<\/b> al mese`;\n        }\n\n        card.querySelector(\"[data-config]\").textContent = `${DATA[tier].label} \u00b7 ${screens} ${unit}`;\n        card.querySelector(\"[data-features]\").innerHTML =\n          DATA[tier].features.map(feature => `<li>${feature}<\/li>`).join(\"\");\n\n        const bonusHost = card.querySelector(\"[data-bonus]\");\n        if (bonusHost) {\n          const extras = BONUS[months];\n          bonusHost.innerHTML = extras\n            ? `<p class=\"iptvit-pricing__bonus-title\">${GIFT_ICON}Vantaggi inclusi<\/p><ul>${extras.map(item => `<li>${item}<\/li>`).join(\"\")}<\/ul>`\n            : \"\";\n        }\n\n        const bonus = months === 12\n          ? \" con 3 mesi offerti e licenza IBO Player\"\n          : months === 24 ? \" con 6 mesi offerti e licenza IBO Player\" : \"\";\n        const message = `Ciao, vorrei ordinare il piano ${DATA[tier].label} di ${months} mesi${bonus}, per ${screens} ${unit}, al prezzo totale di ${money(price)}.`;\n        card.querySelector(\"[data-buy]\").href = `https:\/\/wa.me\/447916697381?text=${encodeURIComponent(message)}`;\n\n        \/\/ Relance la cascade des avantages\n        if (!reduceMotion) {\n          card.classList.remove(\"is-refreshed\");\n          void card.offsetWidth;\n          card.classList.add(\"is-refreshed\");\n        }\n      });\n    };\n\n    \/* \u2014\u2014\u2014\u2014\u2014 Pastille coulissante du choix d'\u00e9crans \u2014\u2014\u2014\u2014\u2014 *\/\n\n    const updatePill = instant => {\n      if (!screenSwitch) return;\n      const active = screenSwitch.querySelector('[aria-pressed=\"true\"]');\n      if (!active) return;\n\n      if (instant) screenSwitch.classList.add(\"is-instant\");\n      screenSwitch.style.setProperty(\"--ipp-pill-x\", `${active.offsetLeft}px`);\n      screenSwitch.style.setProperty(\"--ipp-pill-w\", `${active.offsetWidth}px`);\n      if (instant) requestAnimationFrame(() => screenSwitch.classList.remove(\"is-instant\"));\n    };\n\n    const render = (instantPill) => {\n      tierButtons.forEach(button => button.setAttribute(\"aria-pressed\", String(button.dataset.tier === tier)));\n      screenButtons.forEach(button => button.setAttribute(\"aria-pressed\", String(Number(button.dataset.screenChoice) === multiScreens)));\n\n      root.dataset.activeTier = tier;\n      updatePill(instantPill === true);\n      updateSection(root.querySelector('[data-pricing-section=\"single\"]'), 1);\n      updateSection(root.querySelector('[data-pricing-section=\"multi\"]'), multiScreens);\n\n      live.textContent = `Gamma ${DATA[tier].label} selezionata. Prezzi aggiornati per un accesso e per ${multiScreens} schermi.`;\n    };\n\n    tierButtons.forEach(button => button.addEventListener(\"click\", () => {\n      if (button.dataset.tier === tier) return;\n      tier = button.dataset.tier;\n      render();\n    }));\n\n    screenButtons.forEach(button => button.addEventListener(\"click\", () => {\n      const choice = Number(button.dataset.screenChoice);\n      if (choice === multiScreens) return;\n      multiScreens = choice;\n      render();\n    }));\n\n    \/* \u2014\u2014\u2014\u2014\u2014 Barre de gamme compacte une fois \u00e9pingl\u00e9e \u2014\u2014\u2014\u2014\u2014\n\n       On ne devine pas l'\u00e9pinglage \u00e0 partir du d\u00e9filement : on pose un rep\u00e8re\n       invisible juste AVANT la barre et on regarde s'il est sorti par le haut.\n       Le rep\u00e8re ne bougeant pas quand la barre change de taille, l'\u00e9pinglage ne\n       peut pas se mettre \u00e0 osciller. *\/\n\n    const tiers = root.querySelector(\".iptvit-pricing__tiers\");\n\n    if (tiers && tiers.parentNode) {\n      const sentinel = document.createElement(\"div\");\n      sentinel.className = \"iptvit-pricing__tiers-sentinel\";\n      sentinel.setAttribute(\"aria-hidden\", \"true\");\n      tiers.parentNode.insertBefore(sentinel, tiers);\n\n      let pinned = false;\n      let expandedHeight = 0;\n      let baseMargin = 0;\n\n      \/* La barre r\u00e9tr\u00e9cit, mais la place qu'elle occupe dans le flux ne bouge\n         pas : la marge basse absorbe exactement ce que la hauteur perd. Sans\n         cette compensation tout le contenu situ\u00e9 dessous remonterait d'un coup\n         au moment de l'\u00e9pinglage. Appel\u00e9 \u00e0 chaque changement de taille, donc\n         la compensation suit l'animation image par image. *\/\n      const holdSpace = () => {\n        if (!expandedHeight) return;\n        const height = tiers.offsetHeight;\n        \/\/ Garde-fou : une mesure aberrante ne doit jamais pouvoir creuser un\n        \/\/ trou sous la barre. La compensation ne depasse pas ce que la barre\n        \/\/ peut reellement perdre en hauteur.\n        const delta = Math.min(expandedHeight, Math.max(0, expandedHeight - height));\n        tiers.style.marginBottom = delta > .5 ? `${baseMargin + delta}px` : \"\";\n      };\n\n      \/* La hauteur de r\u00e9f\u00e9rence n'est relev\u00e9e qu'\u00e0 l'\u00e9tat d\u00e9ploy\u00e9 et stabilis\u00e9,\n         jamais pendant une transition. *\/\n      const measureExpanded = () => {\n        if (pinned) return;\n        tiers.classList.add(\"is-measuring\");\n        tiers.style.marginBottom = \"\";\n        \/\/ Les deux lectures ci-dessous forcent un recalcul de style : la classe\n        \/\/ de mesure est donc bien prise en compte avant qu'on releve la taille.\n        baseMargin = parseFloat(getComputedStyle(tiers).marginBottom) || 0;\n        expandedHeight = tiers.offsetHeight;\n        tiers.classList.remove(\"is-measuring\");\n      };\n\n      const setPinned = value => {\n        if (value === pinned) return;\n        pinned = value;\n        tiers.classList.toggle(\"is-pinned\", pinned);\n        if (!pinned) window.setTimeout(measureExpanded, 420);\n      };\n\n      let pinObserver = null;\n\n      const wirePin = () => {\n        if (pinObserver) { pinObserver.disconnect(); pinObserver = null; }\n        if (!(\"IntersectionObserver\" in window)) return;\n\n        \/* L\u00e0 o\u00f9 la barre n'est pas collante, il n'y a rien \u00e0 compacter. *\/\n        if (getComputedStyle(tiers).position !== \"sticky\") {\n          setPinned(false);\n          return;\n        }\n\n        const stickyTop = parseFloat(getComputedStyle(tiers).top) || 0;\n\n        pinObserver = new IntersectionObserver(entries => {\n          entries.forEach(entry => {\n            \/* On regarde DE QUEL COTE la sentinelle est sortie du cadre.\n               isIntersecting seul ne suffit pas : il est faux aussi bien quand\n               la sentinelle est passee au-dessus (la barre est bien epinglee)\n               que lorsqu'elle est encore sous l'ecran parce qu'on n'a pas\n               atteint la section \u2014 auquel cas il n'y a rien a compacter. *\/\n            setPinned(entry.boundingClientRect.top < stickyTop);\n          });\n        }, {threshold:0, rootMargin:`${-Math.ceil(stickyTop) - 1}px 0px 0px 0px`});\n\n        pinObserver.observe(sentinel);\n      };\n\n      measureExpanded();\n\n      if (typeof ResizeObserver !== \"undefined\") {\n        new ResizeObserver(holdSpace).observe(tiers);\n      }\n\n      let pinResizeTimer = 0;\n      window.addEventListener(\"resize\", () => {\n        window.clearTimeout(pinResizeTimer);\n        pinResizeTimer = window.setTimeout(() => { measureExpanded(); wirePin(); }, 180);\n      }, {passive:true});\n\n      wirePin();\n    }\n\n    \/* \u2014\u2014\u2014\u2014\u2014 Rails mobiles \u2014\u2014\u2014\u2014\u2014 *\/\n\n    root.querySelectorAll(\"[data-pricing-section]\").forEach(section => {\n      const rail = section.querySelector(\"[data-plan-rail]\");\n      const previous = section.querySelector(\"[data-rail-prev]\");\n      const next = section.querySelector(\"[data-rail-next]\");\n      if (!rail || !previous || !next) return;\n\n      \/\/ Un pas = une carte, plut\u00f4t qu'une fraction arbitraire de la largeur.\n      const step = () => {\n        const cards = rail.querySelectorAll(\"[data-plan-card]\");\n        if (cards.length < 2) return rail.clientWidth * .84;\n        return cards[1].getBoundingClientRect().left - cards[0].getBoundingClientRect().left;\n      };\n\n      const behavior = () => (reduceMotion ? \"auto\" : \"smooth\");\n      let scrollFrame = 0;\n\n      const updateNavigation = () => {\n        const maximum = Math.max(0, rail.scrollWidth - rail.clientWidth);\n        previous.disabled = rail.scrollLeft <= 2;\n        next.disabled = rail.scrollLeft >= maximum - 2;\n      };\n\n      previous.addEventListener(\"click\", () => rail.scrollBy({left:-step(), behavior:behavior()}));\n      next.addEventListener(\"click\", () => rail.scrollBy({left:step(), behavior:behavior()}));\n\n      rail.addEventListener(\"scroll\", () => {\n        if (scrollFrame) return;\n        scrollFrame = requestAnimationFrame(() => { scrollFrame = 0; updateNavigation(); });\n      }, {passive:true});\n\n      rail.addEventListener(\"keydown\", event => {\n        if (event.key === \"ArrowLeft\" || event.key === \"ArrowRight\") {\n          event.preventDefault();\n          rail.scrollBy({left: event.key === \"ArrowLeft\" ? -step() : step(), behavior:behavior()});\n        }\n        if (event.key === \"Home\") { event.preventDefault(); rail.scrollTo({left:0, behavior:behavior()}); }\n        if (event.key === \"End\") { event.preventDefault(); rail.scrollTo({left:rail.scrollWidth, behavior:behavior()}); }\n      });\n\n      if (typeof ResizeObserver !== \"undefined\") {\n        new ResizeObserver(updateNavigation).observe(rail);\n      } else {\n        window.addEventListener(\"resize\", updateNavigation, {passive:true});\n      }\n\n      updateNavigation();\n    });\n\n    window.addEventListener(\"resize\", () => updatePill(true), {passive:true});\n\n    \/* \u2014\u2014\u2014\u2014\u2014 Apparition \u2014\u2014\u2014\u2014\u2014 *\/\n\n    const reveals = [...root.querySelectorAll(\".iptvit-pricing__reveal\")];\n    const showAll = () => reveals.forEach(item => item.classList.add(\"is-visible\"));\n\n    if (!(\"IntersectionObserver\" in window) || reduceMotion) {\n      showAll();\n    } else {\n      root.classList.add(\"is-reveal-ready\");\n\n      const observer = new IntersectionObserver(entries => {\n        entries.forEach(entry => {\n          if (!entry.isIntersecting) return;\n          entry.target.classList.add(\"is-visible\");\n          observer.unobserve(entry.target);\n        });\n      }, {threshold:0, rootMargin:\"0px 0px -6% 0px\"});\n\n      reveals.forEach(item => observer.observe(item));\n\n      \/\/ Filet de s\u00e9curit\u00e9 : une animation d\u00e9corative ne doit jamais laisser\n      \/\/ les tarifs invisibles si l'observateur ne se d\u00e9clenche pas.\n      setTimeout(showAll, 3000);\n    }\n\n    if (motionQuery.addEventListener) {\n      motionQuery.addEventListener(\"change\", event => {\n        reduceMotion = event.matches;\n        if (reduceMotion) showAll();\n      });\n    }\n\n    render(true);\n    requestAnimationFrame(() => updatePill(true));\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fa345bf e-con-full e-flex e-con e-parent\" data-id=\"fa345bf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2b89638 elementor-widget elementor-widget-html\" data-id=\"2b89638\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  IPTV Italia \u2014 Elementor \/ Widget HTML 06 \u2014 COME FUNZIONA \u2014 v2\r\n\r\n  CORRECTIONS\r\n  - Contraste : le CTA for\u00e7ait color:#fff sur un d\u00e9grad\u00e9 qui devient vert clair\r\n    en mode sombre (~2:1). Un token --ips-on-green porte la bonne couleur.\r\n  - Les titres ne d\u00e9claraient aucune couleur et prenaient celle du th\u00e8me, qui\r\n    suit son propre mode clair\/sombre.\r\n  - Filet de s\u00e9curit\u00e9 : sans lui, un observateur qui ne se d\u00e9clenche pas\r\n    laissait les quatre cartes invisibles.\r\n  - Seuil d'apparition pass\u00e9 \u00e0 0 : un bloc plus haut que l'\u00e9cran ne devrait\r\n    jamais d\u00e9pendre d'un pourcentage de sa surface.\r\n\r\n  ANIMATIONS AJOUT\u00c9ES\r\n  - Les ic\u00f4nes flottent, d\u00e9synchronis\u00e9es (les cartes ne le peuvent pas : leur\r\n    transform sert d\u00e9j\u00e0 \u00e0 la r\u00e9v\u00e9lation et au survol).\r\n  - Un point lumineux parcourt la ligne de progression une fois.\r\n  - Les coches des pr\u00e9cisions se dessinent.\r\n  - Les num\u00e9ros entrent en d\u00e9cal\u00e9 avec leur carte.\r\n-->\r\n\r\n<style>\r\n.iptvit-steps {\r\n  --ips-bg: #f4f4ef;\r\n  --ips-surface: rgba(255,255,255,.78);\r\n  --ips-surface-solid: #fff;\r\n  --ips-ink: #111a20;\r\n  --ips-muted: #5d686c;\r\n  --ips-line: rgba(17,26,32,.13);\r\n  --ips-green: #23795a;\r\n  --ips-green-strong: #155d44;\r\n  --ips-mint: #77d9ad;\r\n  --ips-red: #c43d4e;\r\n  --ips-red-soft: rgba(196,61,78,.11);\r\n  --ips-track: rgba(35,121,90,.2);\r\n  --ips-on-green: #fff;\r\n  --ips-shadow: 0 25px 70px rgba(17,38,34,.11);\r\n  --ips-ease: cubic-bezier(.22,1,.36,1);\r\n  --ips-ease-soft: cubic-bezier(.4,0,.2,1);\r\n  background:\r\n    radial-gradient(circle at 8% 20%, rgba(35,121,90,.13), transparent 27rem),\r\n    radial-gradient(circle at 92% 76%, rgba(196,61,78,.10), transparent 28rem),\r\n    var(--ips-bg);\r\n  color: var(--ips-ink);\r\n  font-family: inherit;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  padding: clamp(4.7rem,8vw,8rem) 0;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-steps,\r\n:root[data-theme=\"dark\"] .iptvit-steps,\r\nhtml.dark .iptvit-steps,\r\nbody.dark-mode .iptvit-steps {\r\n  --ips-bg: #07111a;\r\n  --ips-surface: rgba(14,28,38,.84);\r\n  --ips-surface-solid: #0e1c26;\r\n  --ips-ink: #f8f5ec;\r\n  --ips-muted: #adb9bd;\r\n  --ips-line: rgba(233,244,239,.13);\r\n  --ips-green: #79d8b0;\r\n  --ips-green-strong: #58bd94;\r\n  --ips-mint: #91e6c0;\r\n  --ips-red: #e16d7b;\r\n  --ips-red-soft: rgba(225,109,123,.12);\r\n  --ips-track: rgba(121,216,176,.2);\r\n  \/* Le blanc sur ces verts clairs tombait \u00e0 ~2:1 *\/\r\n  --ips-on-green: #07111a;\r\n  --ips-shadow: 0 28px 80px rgba(0,0,0,.28);\r\n}\r\n\r\n@media (prefers-color-scheme: dark) {\r\n  :root:not([data-iptvit-theme]):not([data-theme]):not(.dark) .iptvit-steps {\r\n    --ips-bg: #07111a;\r\n    --ips-surface: rgba(14,28,38,.84);\r\n    --ips-surface-solid: #0e1c26;\r\n    --ips-ink: #f8f5ec;\r\n    --ips-muted: #adb9bd;\r\n    --ips-line: rgba(233,244,239,.13);\r\n    --ips-green: #79d8b0;\r\n    --ips-green-strong: #58bd94;\r\n    --ips-mint: #91e6c0;\r\n    --ips-red: #e16d7b;\r\n    --ips-red-soft: rgba(225,109,123,.12);\r\n    --ips-track: rgba(121,216,176,.2);\r\n    --ips-on-green: #07111a;\r\n    --ips-shadow: 0 28px 80px rgba(0,0,0,.28);\r\n  }\r\n}\r\n\r\n.iptvit-steps,\r\n.iptvit-steps *,\r\n.iptvit-steps *::before,\r\n.iptvit-steps *::after { box-sizing: border-box; }\r\n\r\n.iptvit-steps::before {\r\n  background-image:\r\n    linear-gradient(var(--ips-line) 1px,transparent 1px),\r\n    linear-gradient(90deg,var(--ips-line) 1px,transparent 1px);\r\n  background-size: 5rem 5rem;\r\n  content: \"\";\r\n  inset: 0;\r\n  mask-image: linear-gradient(180deg,transparent,rgba(0,0,0,.65) 28%,transparent 92%);\r\n  opacity: .2;\r\n  pointer-events: none;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-steps h2,\r\n.iptvit-steps h3,\r\n.iptvit-steps p { margin: 0; }\r\n\r\n\/* IMPORTANT \u2014 ne pas retirer. Les th\u00e8mes WordPress colorent les titres selon\r\n   leur propre mode clair\/sombre ; sans cette ligne les h2\/h3 de la section\r\n   ignorent sa palette et peuvent devenir illisibles. *\/\r\n.iptvit-steps h2,\r\n.iptvit-steps h3 { color: inherit; }\r\n\r\n.iptvit-steps a { color: inherit; font: inherit; }\r\n.iptvit-steps svg { display: block; }\r\n\r\n.iptvit-steps__inner {\r\n  margin-inline: auto;\r\n  max-width: 1380px;\r\n  padding-inline: clamp(1rem,4vw,3.5rem);\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Chapeau \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-steps__intro {\r\n  margin: 0 auto clamp(3.4rem,6vw,5.7rem);\r\n  max-width: 850px;\r\n  text-align: center;\r\n}\r\n\r\n.iptvit-steps__eyebrow {\r\n  align-items: center;\r\n  border: 1px solid color-mix(in srgb,var(--ips-green) 38%,transparent);\r\n  border-radius: 999px;\r\n  color: var(--ips-green);\r\n  display: inline-flex;\r\n  font-size: .76rem;\r\n  font-weight: 850;\r\n  gap: .55rem;\r\n  letter-spacing: .14em;\r\n  margin-bottom: 1.25rem;\r\n  padding: .62rem .9rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-steps__eyebrow::before {\r\n  background: var(--ips-green);\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 .28rem color-mix(in srgb,var(--ips-green) 13%,transparent);\r\n  content: \"\";\r\n  height: .42rem;\r\n  width: .42rem;\r\n}\r\n\r\n.iptvit-steps.is-visible .iptvit-steps__eyebrow::before {\r\n  animation: ips-pulse 3.4s 1.2s var(--ips-ease-soft) infinite;\r\n}\r\n\r\n@keyframes ips-pulse {\r\n  0%,74%,100% { box-shadow: 0 0 0 .28rem color-mix(in srgb,var(--ips-green) 13%,transparent); }\r\n  84%         { box-shadow: 0 0 0 .62rem color-mix(in srgb,var(--ips-green) 0%,transparent); }\r\n}\r\n\r\n.iptvit-steps__title {\r\n  color: var(--ips-ink);\r\n  font-size: clamp(2.2rem,5vw,4.3rem);\r\n  font-weight: 900;\r\n  letter-spacing: -.052em;\r\n  line-height: .99;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-steps__title span {\r\n  background: linear-gradient(100deg,var(--ips-green) 5%,var(--ips-mint) 52%,var(--ips-red) 105%);\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  color: transparent;\r\n}\r\n\r\n.iptvit-steps__lead {\r\n  color: var(--ips-muted);\r\n  font-size: clamp(1rem,1.6vw,1.16rem);\r\n  line-height: 1.75;\r\n  margin: 1.35rem auto 0;\r\n  max-width: 710px;\r\n  text-wrap: pretty;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Ligne de progression \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-steps__timeline { position: relative; }\r\n\r\n\/* Piste neutre + progression anim\u00e9e. overflow retir\u00e9 : le remplissage se\r\n   r\u00e9duit par scaleX et ne d\u00e9borde jamais, mais le point lumineux, lui,\r\n   doit pouvoir atteindre l'extr\u00e9mit\u00e9. *\/\r\n.iptvit-steps__rail {\r\n  background: var(--ips-track);\r\n  height: 2px;\r\n  left: 8%;\r\n  position: absolute;\r\n  right: 8%;\r\n  \/* Cal\u00e9e sur le centre des ic\u00f4nes : marge haute de la carte + demi-ic\u00f4ne.\r\n     La valeur fixe de 4.05rem la pla\u00e7ait 18 px trop bas \u2014 la ligne passait\r\n     sous les ic\u00f4nes au lieu de les relier. Exprim\u00e9e en calcul, elle suit\r\n     automatiquement le padding de la carte et la taille de l'ic\u00f4ne. *\/\r\n  top: calc(1.35rem + 3.45rem \/ 2 - 1px);\r\n  z-index: 0;\r\n}\r\n\r\n.iptvit-steps__rail::after {\r\n  background: linear-gradient(90deg,var(--ips-green),var(--ips-mint) 67%,var(--ips-red));\r\n  content: \"\";\r\n  inset: 0;\r\n  position: absolute;\r\n  transform: scaleX(1);\r\n  transform-origin: left;\r\n  transition: transform 1.15s var(--ips-ease-soft) .15s;\r\n}\r\n\r\n.iptvit-steps.is-reveal-ready .iptvit-steps__rail::after { transform: scaleX(0); }\r\n.iptvit-steps.is-reveal-ready.is-visible .iptvit-steps__rail::after { transform: scaleX(1); }\r\n\r\n\/* Point lumineux qui parcourt la ligne une fois, en t\u00eate du remplissage *\/\r\n.iptvit-steps__rail::before {\r\n  background: var(--ips-mint);\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 .3rem color-mix(in srgb,var(--ips-mint) 24%,transparent);\r\n  content: \"\";\r\n  height: .5rem;\r\n  left: 0;\r\n  opacity: 0;\r\n  position: absolute;\r\n  top: 50%;\r\n  transform: translate(-50%,-50%);\r\n  width: .5rem;\r\n  z-index: 2;\r\n}\r\n\r\n.iptvit-steps.is-reveal-ready.is-visible .iptvit-steps__rail::before {\r\n  animation: ips-travel 1.15s .15s var(--ips-ease-soft) forwards;\r\n}\r\n\r\n@keyframes ips-travel {\r\n  0%   { left: 0;    opacity: 1; }\r\n  82%  { opacity: 1; }\r\n  100% { left: 100%; opacity: 0; }\r\n}\r\n\r\n.iptvit-steps__grid {\r\n  display: grid;\r\n  gap: clamp(.75rem,1.35vw,1.3rem);\r\n  grid-template-columns: repeat(4,minmax(0,1fr));\r\n  list-style: none;\r\n  margin: 0;\r\n  padding: 0;\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Cartes \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-steps__card {\r\n  --ips-delay: 0ms;\r\n  background:\r\n    linear-gradient(145deg,color-mix(in srgb,var(--ips-surface-solid) 70%,transparent),transparent 70%),\r\n    var(--ips-surface);\r\n  border: 1px solid var(--ips-line);\r\n  border-radius: 1.55rem;\r\n  box-shadow: 0 1.2rem 3.2rem rgba(13,34,32,.06);\r\n  min-height: 25rem;\r\n  opacity: 1;\r\n  overflow: hidden;\r\n  padding: 1.35rem clamp(1.15rem,2vw,1.65rem) 1.7rem;\r\n  position: relative;\r\n  transform: none;\r\n  transition:\r\n    opacity .65s ease var(--ips-delay),\r\n    transform .75s var(--ips-ease) var(--ips-delay),\r\n    border-color .25s ease,\r\n    box-shadow .25s ease;\r\n}\r\n\r\n.iptvit-steps__card:nth-child(2),\r\n.iptvit-steps__card:nth-child(4) { margin-top: 3.1rem; }\r\n.iptvit-steps__card:nth-child(1) { --ips-delay: 180ms; --ips-float-d: 6.2s; }\r\n.iptvit-steps__card:nth-child(2) { --ips-delay: 300ms; --ips-float-d: 7.4s; }\r\n.iptvit-steps__card:nth-child(3) { --ips-delay: 420ms; --ips-float-d: 6.8s; }\r\n.iptvit-steps__card:nth-child(4) { --ips-delay: 540ms; --ips-float-d: 8.1s; }\r\n\r\n.iptvit-steps.is-reveal-ready .iptvit-steps__card {\r\n  opacity: 0;\r\n  transform: translateY(1.6rem);\r\n}\r\n\r\n.iptvit-steps.is-reveal-ready.is-visible .iptvit-steps__card {\r\n  opacity: 1;\r\n  transform: translateY(0);\r\n}\r\n\r\n.iptvit-steps__card::before {\r\n  background: linear-gradient(90deg,var(--ips-green),var(--ips-mint),var(--ips-red));\r\n  content: \"\";\r\n  height: 2px;\r\n  inset: 0 0 auto;\r\n  opacity: .76;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-steps__card::after {\r\n  background: radial-gradient(circle,var(--ips-red-soft),transparent 69%);\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  height: 10rem;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  right: -5rem;\r\n  top: -5rem;\r\n  transition: opacity .4s ease,transform .55s var(--ips-ease);\r\n  width: 10rem;\r\n}\r\n\r\n@media (hover:hover) and (pointer:fine) {\r\n  .iptvit-steps.is-visible .iptvit-steps__card:hover {\r\n    border-color: color-mix(in srgb,var(--ips-green) 42%,var(--ips-line));\r\n    box-shadow: var(--ips-shadow);\r\n    transform: translateY(-.35rem);\r\n  }\r\n\r\n  .iptvit-steps__card:hover::after { transform: scale(1.35); }\r\n\r\n  \/* Le flottement c\u00e8de la place au relief de survol : sans cela l'animation\r\n     garderait la main sur le transform de l'ic\u00f4ne. *\/\r\n  .iptvit-steps__card:hover .iptvit-steps__icon {\r\n    animation: none;\r\n    border-color: color-mix(in srgb,var(--ips-green) 52%,transparent);\r\n    transform: translateY(-.2rem) scale(1.06);\r\n  }\r\n}\r\n\r\n.iptvit-steps__topline {\r\n  align-items: center;\r\n  display: flex;\r\n  justify-content: space-between;\r\n  margin-bottom: 2.15rem;\r\n  position: relative;\r\n  z-index: 2;\r\n}\r\n\r\n.iptvit-steps__icon {\r\n  align-items: center;\r\n  background: color-mix(in srgb,var(--ips-green) 11%,var(--ips-surface-solid));\r\n  border: 1px solid color-mix(in srgb,var(--ips-green) 27%,transparent);\r\n  border-radius: 1rem;\r\n  color: var(--ips-green);\r\n  display: inline-flex;\r\n  height: 3.45rem;\r\n  justify-content: center;\r\n  transition: border-color .3s ease,transform .4s var(--ips-ease);\r\n  width: 3.45rem;\r\n}\r\n\r\n.iptvit-steps__icon svg { height: 1.55rem; width: 1.55rem; }\r\n\r\n\/* Flottement d\u00e9synchronis\u00e9. Il d\u00e9marre apr\u00e8s la r\u00e9v\u00e9lation de la carte, et\r\n   les dur\u00e9es in\u00e9gales suffisent \u00e0 les faire d\u00e9river les unes des autres. *\/\r\n.iptvit-steps.is-visible .iptvit-steps__icon {\r\n  animation: ips-float var(--ips-float-d,7s) var(--ips-ease-soft) infinite;\r\n  animation-delay: calc(var(--ips-delay) + 720ms);\r\n}\r\n\r\n@keyframes ips-float {\r\n  0%,100% { transform: translateY(-.2rem); }\r\n  50%     { transform: translateY(.2rem); }\r\n}\r\n\r\n.iptvit-steps__number {\r\n  color: color-mix(in srgb,var(--ips-ink) 19%,transparent);\r\n  font-size: clamp(2.4rem,4vw,3.7rem);\r\n  font-weight: 900;\r\n  letter-spacing: -.08em;\r\n  line-height: 1;\r\n}\r\n\r\n.iptvit-steps.is-reveal-ready.is-visible .iptvit-steps__number {\r\n  animation: ips-number .62s calc(var(--ips-delay) + 160ms) var(--ips-ease) backwards;\r\n}\r\n\r\n@keyframes ips-number {\r\n  from { opacity: 0; transform: translateX(.5rem); }\r\n  to   { opacity: 1; transform: none; }\r\n}\r\n\r\n.iptvit-steps__card h3 {\r\n  font-size: clamp(1.25rem,1.75vw,1.55rem);\r\n  font-weight: 850;\r\n  letter-spacing: -.027em;\r\n  line-height: 1.12;\r\n  margin-bottom: .9rem;\r\n  position: relative;\r\n  text-wrap: balance;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-steps__card > p {\r\n  color: var(--ips-muted);\r\n  font-size: .96rem;\r\n  line-height: 1.62;\r\n  position: relative;\r\n  text-wrap: pretty;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-steps__detail {\r\n  align-items: flex-start;\r\n  border-top: 1px solid var(--ips-line);\r\n  color: var(--ips-ink);\r\n  display: flex;\r\n  font-size: .81rem;\r\n  font-weight: 750;\r\n  gap: .55rem;\r\n  line-height: 1.45;\r\n  margin-top: 1.25rem;\r\n  padding-top: 1rem;\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-steps__detail svg {\r\n  color: var(--ips-green);\r\n  flex: 0 0 auto;\r\n  height: 1.05rem;\r\n  margin-top: .05rem;\r\n  width: 1.05rem;\r\n}\r\n\r\n\/* La coche se dessine avec sa carte *\/\r\n.iptvit-steps.is-reveal-ready .iptvit-steps__detail svg path {\r\n  stroke-dasharray: 24;\r\n  stroke-dashoffset: 24;\r\n}\r\n\r\n.iptvit-steps.is-reveal-ready.is-visible .iptvit-steps__detail svg path {\r\n  animation: ips-draw .5s calc(var(--ips-delay) + 420ms) var(--ips-ease) forwards;\r\n}\r\n\r\n@keyframes ips-draw { to { stroke-dashoffset: 0; } }\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Encart d'assistance \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-steps__support {\r\n  align-items: center;\r\n  background: color-mix(in srgb,var(--ips-surface-solid) 78%,transparent);\r\n  border: 1px solid var(--ips-line);\r\n  border-radius: 1.45rem;\r\n  box-shadow: 0 1rem 3rem rgba(16,37,34,.06);\r\n  display: grid;\r\n  gap: 1.25rem;\r\n  grid-template-columns: minmax(0,1fr) auto;\r\n  margin: clamp(2.5rem,5vw,4.5rem) auto 0;\r\n  max-width: 1040px;\r\n  padding: clamp(1.2rem,2.5vw,1.7rem);\r\n}\r\n\r\n.iptvit-steps__support h3 {\r\n  font-size: clamp(1.25rem,2vw,1.65rem);\r\n  font-weight: 850;\r\n  letter-spacing: -.025em;\r\n  margin-bottom: .38rem;\r\n}\r\n\r\n.iptvit-steps__support p {\r\n  color: var(--ips-muted);\r\n  font-size: .94rem;\r\n  line-height: 1.55;\r\n}\r\n\r\n.iptvit-steps__cta {\r\n  align-items: center;\r\n  background: linear-gradient(110deg,var(--ips-green-strong),var(--ips-green));\r\n  border: 1px solid color-mix(in srgb,var(--ips-mint) 30%,transparent);\r\n  border-radius: .95rem;\r\n  box-shadow: 0 .9rem 2rem color-mix(in srgb,var(--ips-green) 21%,transparent);\r\n  \/* Suit la palette : blanc en clair, encre en sombre *\/\r\n  color: var(--ips-on-green) !important;\r\n  display: inline-flex;\r\n  font-size: .91rem !important;\r\n  font-weight: 850 !important;\r\n  gap: .65rem;\r\n  justify-content: center;\r\n  min-height: 3.45rem;\r\n  overflow: hidden;\r\n  padding: .82rem 1.3rem;\r\n  position: relative;\r\n  text-decoration: none !important;\r\n  transition: transform .22s var(--ips-ease),box-shadow .22s ease,filter .22s ease;\r\n  white-space: nowrap;\r\n}\r\n\r\n.iptvit-steps__cta::after {\r\n  background: linear-gradient(105deg,transparent 34%,rgba(255,255,255,.3) 50%,transparent 66%);\r\n  content: \"\";\r\n  inset: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  transform: translateX(-135%);\r\n}\r\n\r\n.iptvit-steps__cta svg {\r\n  height: 1.18rem;\r\n  transition: transform .3s var(--ips-ease);\r\n  width: 1.18rem;\r\n}\r\n\r\n.iptvit-steps__cta:hover {\r\n  box-shadow: 0 1.1rem 2.5rem color-mix(in srgb,var(--ips-green) 29%,transparent);\r\n  filter: saturate(1.08);\r\n  transform: translateY(-2px);\r\n}\r\n\r\n.iptvit-steps__cta:hover svg { transform: translateX(.22rem); }\r\n.iptvit-steps__cta:hover::after { animation: ips-sweep .78s var(--ips-ease-soft); }\r\n\r\n@keyframes ips-sweep {\r\n  from { transform: translateX(-135%); }\r\n  to   { transform: translateX(135%); }\r\n}\r\n\r\n.iptvit-steps__cta:focus-visible {\r\n  outline: 3px solid color-mix(in srgb,var(--ips-red) 65%,#fff);\r\n  outline-offset: 4px;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Responsive \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n@media (max-width: 980px) {\r\n  .iptvit-steps__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }\r\n  .iptvit-steps__rail { display: none; }\r\n  .iptvit-steps__card:nth-child(2),\r\n  .iptvit-steps__card:nth-child(4) { margin-top: 0; }\r\n  .iptvit-steps__card { min-height: 22rem; }\r\n}\r\n\r\n@media (max-width: 650px) {\r\n  .iptvit-steps { padding-block: 4.4rem; }\r\n  .iptvit-steps__intro { margin-bottom: 2.65rem; text-align: left; }\r\n  .iptvit-steps__lead { margin-inline: 0; }\r\n  .iptvit-steps__grid {\r\n    gap: 1rem;\r\n    grid-template-columns: 1fr;\r\n    padding-left: 1.3rem;\r\n  }\r\n  \/* Sur mobile, la progression devient verticale pour conserver la lecture naturelle. *\/\r\n  .iptvit-steps__grid::before {\r\n    background: linear-gradient(180deg,var(--ips-green),var(--ips-mint) 65%,var(--ips-red));\r\n    border-radius: 999px;\r\n    content: \"\";\r\n    height: calc(100% - 2rem);\r\n    left: .15rem;\r\n    opacity: .6;\r\n    position: absolute;\r\n    top: 1rem;\r\n    transform: scaleY(1);\r\n    transform-origin: top;\r\n    transition: transform 1.15s var(--ips-ease-soft) .15s;\r\n    width: 2px;\r\n  }\r\n  .iptvit-steps.is-reveal-ready .iptvit-steps__grid::before { transform: scaleY(0); }\r\n  .iptvit-steps.is-reveal-ready.is-visible .iptvit-steps__grid::before { transform: scaleY(1); }\r\n  .iptvit-steps__card {\r\n    border-radius: 1.25rem;\r\n    min-height: 0;\r\n    padding: 1.1rem 1.15rem 1.35rem;\r\n  }\r\n  .iptvit-steps__card::before { height: 0; }\r\n  .iptvit-steps__topline { margin-bottom: 1.35rem; }\r\n  .iptvit-steps__support {\r\n    grid-template-columns: 1fr;\r\n    margin-top: 2.2rem;\r\n  }\r\n  .iptvit-steps__cta { white-space: normal; width: 100%; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .iptvit-steps *,\r\n  .iptvit-steps *::before,\r\n  .iptvit-steps *::after {\r\n    animation: none !important;\r\n    scroll-behavior: auto !important;\r\n    transition-duration: .001ms !important;\r\n    transition-delay: 0ms !important;\r\n  }\r\n  .iptvit-steps__card { opacity: 1; transform: none; }\r\n  .iptvit-steps__rail::after { transform: scaleX(1); }\r\n  .iptvit-steps__grid::before { transform: scaleY(1) !important; }\r\n  .iptvit-steps__detail svg path { stroke-dashoffset: 0 !important; }\r\n  .iptvit-steps__number { opacity: 1; }\r\n}\r\n\r\n@media (forced-colors: active) {\r\n  .iptvit-steps__card,\r\n  .iptvit-steps__icon,\r\n  .iptvit-steps__support,\r\n  .iptvit-steps__cta { border: 1px solid CanvasText; }\r\n  .iptvit-steps__card::after,\r\n  .iptvit-steps__rail::before { display: none; }\r\n}\r\n<\/style>\r\n\r\n<section class=\"iptvit-steps\" data-iptvit-steps data-iptvit-anchor=\"come-funziona\" aria-labelledby=\"iptvit-steps-title\">\r\n  <div class=\"iptvit-steps__inner\">\r\n    <header class=\"iptvit-steps__intro\">\r\n      <span class=\"iptvit-steps__eyebrow\">Attivazione semplice e guidata<\/span>\r\n      <h2 id=\"iptvit-steps-title\" class=\"iptvit-steps__title\">Come funziona l\u2019abbonamento IPTV Italia: <span>4 passi chiari<\/span><\/h2>\r\n      <p class=\"iptvit-steps__lead\">Attiva il tuo abbonamento IPTV Italia in pochi passaggi: scegli la formula, indica il dispositivo e ricevi le istruzioni necessarie per configurare l\u2019applicazione.<\/p>\r\n    <\/header>\r\n\r\n    <div class=\"iptvit-steps__timeline\">\r\n      <span class=\"iptvit-steps__rail\" aria-hidden=\"true\"><\/span>\r\n      <ol class=\"iptvit-steps__grid\">\r\n        <li class=\"iptvit-steps__card\">\r\n          <div class=\"iptvit-steps__topline\">\r\n            <span class=\"iptvit-steps__icon\" aria-hidden=\"true\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 5.5h16M6.5 3v5M17.5 3v5M5 10h14v10H5z\"\/><path d=\"m9 15 2 2 4-4\"\/><\/svg>\r\n            <\/span>\r\n            <span class=\"iptvit-steps__number\" aria-hidden=\"true\">01<\/span>\r\n          <\/div>\r\n          <h3>Scegli la tua formula<\/h3>\r\n          <p>Seleziona la gamma Standard o Premium, la durata e il numero di schermi compatibili con il tuo utilizzo.<\/p>\r\n          <div class=\"iptvit-steps__detail\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m5 12 4 4L19 6\"\/><\/svg>\r\n            Standard o Premium \u00b7 da 1 a 4 schermi\r\n          <\/div>\r\n        <\/li>\r\n\r\n        <li class=\"iptvit-steps__card\">\r\n          <div class=\"iptvit-steps__topline\">\r\n            <span class=\"iptvit-steps__icon\" aria-hidden=\"true\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 19h4m-2-5v5\"\/><rect x=\"17\" y=\"9\" width=\"4\" height=\"9\" rx=\"1\"\/><\/svg>\r\n            <\/span>\r\n            <span class=\"iptvit-steps__number\" aria-hidden=\"true\">02<\/span>\r\n          <\/div>\r\n          <h3>Indica dispositivo e app<\/h3>\r\n          <p>Comunicaci il dispositivo utilizzato e l\u2019applicazione IPTV che preferisci, per ricevere indicazioni adatte alla tua configurazione.<\/p>\r\n          <div class=\"iptvit-steps__detail\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m5 12 4 4L19 6\"\/><\/svg>\r\n            IPTV su Smart TV \u00b7 Android \u00b7 Box \u00b7 Mobile \u00b7 Tablet \u00b7 PC\r\n          <\/div>\r\n        <\/li>\r\n\r\n        <li class=\"iptvit-steps__card\">\r\n          <div class=\"iptvit-steps__topline\">\r\n            <span class=\"iptvit-steps__icon\" aria-hidden=\"true\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 11.5a8 8 0 0 1-11.8 7L4 20l1.5-4.1A8 8 0 1 1 20 11.5Z\"\/><path d=\"M8.8 8.7c.5 2.5 2 4 4.5 4.5l1.2-1.2 1.6.8v1.7c0 .5-.4.9-.9.9A7.2 7.2 0 0 1 8.6 8.8c0-.5.4-.9.9-.9h1.7l.8 1.6-1.2 1.2\"\/><\/svg>\r\n            <\/span>\r\n            <span class=\"iptvit-steps__number\" aria-hidden=\"true\">03<\/span>\r\n          <\/div>\r\n          <h3>Conferma su WhatsApp<\/h3>\r\n          <p>Invia la tua scelta, ricevi le indicazioni di pagamento e conferma l\u2019ordine direttamente con il nostro team.<\/p>\r\n          <div class=\"iptvit-steps__detail\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m5 12 4 4L19 6\"\/><\/svg>\r\n            Conferma rapida e riepilogo dell\u2019ordine\r\n          <\/div>\r\n        <\/li>\r\n\r\n        <li class=\"iptvit-steps__card\">\r\n          <div class=\"iptvit-steps__topline\">\r\n            <span class=\"iptvit-steps__icon\" aria-hidden=\"true\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 5h16v12H4z\"\/><path d=\"M8 21h8m-4-4v4M8 10l2.5 2.5L16 8\"\/><\/svg>\r\n            <\/span>\r\n            <span class=\"iptvit-steps__number\" aria-hidden=\"true\">04<\/span>\r\n          <\/div>\r\n          <h3>Ricevi gli accessi e la guida<\/h3>\r\n          <p>Dopo la conferma, ricevi i dati di accesso, la guida di installazione e l\u2019assistenza per iniziare.<\/p>\r\n          <div class=\"iptvit-steps__detail\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m5 12 4 4L19 6\"\/><\/svg>\r\n            Accessi \u00b7 guida \u00b7 assistenza 7 giorni su 7\r\n          <\/div>\r\n        <\/li>\r\n      <\/ol>\r\n    <\/div>\r\n\r\n    <aside class=\"iptvit-steps__support\" aria-label=\"Assistenza prima dell'acquisto\">\r\n      <div>\r\n        <h3>Hai bisogno di aiuto prima di scegliere?<\/h3>\r\n        <p>Ti aiutiamo a individuare gamma, durata, numero di schermi e configurazione pi\u00f9 adatti ai tuoi dispositivi.<\/p>\r\n      <\/div>\r\n      <a class=\"iptvit-steps__cta\" href=\"https:\/\/wa.me\/447916697381?text=Ciao%2C%20vorrei%20un%20consiglio%20per%20scegliere%20il%20mio%20abbonamento%20IPTV%20Italia.\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chiedi un consiglio su WhatsApp, si apre in una nuova scheda\">\r\n        Chiedi consiglio su WhatsApp\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14m-5-5 5 5-5 5\"\/><\/svg>\r\n      <\/a>\r\n    <\/aside>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(() => {\r\n  \"use strict\";\r\n\r\n  const initSteps = (section, index) => {\r\n    if (section.dataset.iptvitInitialized === \"true\") return;\r\n    section.dataset.iptvitInitialized = \"true\";\r\n\r\n    \/* Un identifiant n'est attribu\u00e9 que s'il est encore libre, pour \u00e9viter les doublons Elementor. *\/\r\n    const requestedAnchor = section.dataset.iptvitAnchor;\r\n    if (requestedAnchor && !document.getElementById(requestedAnchor)) {\r\n      section.id = requestedAnchor;\r\n    } else if (!section.id || document.getElementById(section.id) !== section) {\r\n      let suffix = index + 1;\r\n      let uniqueId = `come-funziona-${suffix}`;\r\n      while (document.getElementById(uniqueId)) {\r\n        suffix += 1;\r\n        uniqueId = `come-funziona-${suffix}`;\r\n      }\r\n      section.id = uniqueId;\r\n    }\r\n\r\n    const heading = section.querySelector(\".iptvit-steps__title\");\r\n    if (heading) {\r\n      const headingId = `${section.id}-titolo`;\r\n      heading.id = headingId;\r\n      section.setAttribute(\"aria-labelledby\", headingId);\r\n    }\r\n\r\n    const reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\r\n\r\n    if (reduceMotion || !(\"IntersectionObserver\" in window)) {\r\n      section.classList.add(\"is-visible\");\r\n      return;\r\n    }\r\n\r\n    section.classList.add(\"is-reveal-ready\");\r\n\r\n    \/* threshold 0 : ce bloc est plus haut que bien des \u00e9crans, et exiger un\r\n       pourcentage de sa surface rend le d\u00e9clenchement fragile. *\/\r\n    const observer = new IntersectionObserver((entries) => {\r\n      entries.forEach((entry) => {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add(\"is-visible\");\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, { threshold: 0, rootMargin: \"0px 0px -7% 0px\" });\r\n\r\n    observer.observe(section);\r\n\r\n    \/* Filet de s\u00e9curit\u00e9. Une animation d\u00e9corative ne doit jamais pouvoir\r\n       laisser les quatre \u00e9tapes invisibles : page int\u00e9gr\u00e9e dans un conteneur\r\n       de d\u00e9filement inhabituel, extension qui neutralise l'API, onglet\r\n       restaur\u00e9. Au bout de trois secondes, on affiche tout. *\/\r\n    window.setTimeout(() => section.classList.add(\"is-visible\"), 3000);\r\n  };\r\n\r\n  const boot = () => {\r\n    document.querySelectorAll(\"[data-iptvit-steps]\").forEach(initSteps);\r\n  };\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", boot, { once: true });\r\n  } else {\r\n    boot();\r\n  }\r\n\r\n  if (window.elementorFrontend && window.elementorFrontend.hooks) {\r\n    window.elementorFrontend.hooks.addAction(\"frontend\/element_ready\/html.default\", boot);\r\n  }\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a63bdc5 e-con-full e-flex e-con e-parent\" data-id=\"a63bdc5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-39b03d2 elementor-widget elementor-widget-html\" data-id=\"39b03d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  IPTV Italia \u2014 Elementor \/ Widget HTML 07\r\n  GUIDA ESSENZIALE: CHE COS'\u00c8 L'IPTV\r\n\r\n  POSIZIONE CONSIGLIATA:\r\n  Dopo la sezione \"Vantaggi\" e prima della sezione \"Sport in diretta\".\r\n\r\n  IMMAGINE DA AGGIUNGERE:\r\n  Incolla l'URL WebP tra le virgolette di data-image-editorial=\"\" nella\r\n  balise <section> qui sotto.\r\n\r\n  Idea visiva: salotto italiano contemporaneo con partita di calcio sulla\r\n  Smart TV, film sul tablet e catalogo sullo smartphone, senza loghi o titoli.\r\n  Formato consigliato: WebP verticale 1080 \u00d7 1920 px (9:16), con TV e\r\n  dispositivi mantenuti nella zona centrale, idealmente meno di 300 KB.\r\n\r\n  Se l'URL resta vuoto, il widget mostra un fondale astratto pulito e non\r\n  genera alcuna immagine rotta.\r\n-->\r\n\r\n<style>\r\n.iptvit-editorial {\r\n  --ite-bg: #f4f4ef;\r\n  --ite-surface: rgba(255,255,255,.82);\r\n  --ite-surface-solid: #ffffff;\r\n  --ite-ink: #111a20;\r\n  --ite-muted: #5d686c;\r\n  --ite-line: rgba(17,26,32,.13);\r\n  --ite-green: #23795a;\r\n  --ite-green-strong: #155d44;\r\n  --ite-mint: #77d9ad;\r\n  --ite-red: #c43d4e;\r\n  --ite-red-soft: rgba(196,61,78,.11);\r\n  --ite-cta-ink: #ffffff;\r\n  --ite-shadow: 0 25px 70px rgba(17,38,34,.11);\r\n  background:\r\n    radial-gradient(circle at 8% 18%,rgba(35,121,90,.14),transparent 27rem),\r\n    radial-gradient(circle at 94% 82%,rgba(196,61,78,.10),transparent 29rem),\r\n    var(--ite-bg);\r\n  color: var(--ite-ink);\r\n  font-family: inherit;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  padding: clamp(4.7rem,8vw,8rem) 0;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-editorial,\r\n:root[data-theme=\"dark\"] .iptvit-editorial,\r\nhtml.dark .iptvit-editorial,\r\nbody.dark-mode .iptvit-editorial {\r\n  --ite-bg: #07111a;\r\n  --ite-surface: rgba(14,28,38,.84);\r\n  --ite-surface-solid: #0e1c26;\r\n  --ite-ink: #f8f5ec;\r\n  --ite-muted: #adb9bd;\r\n  --ite-line: rgba(233,244,239,.13);\r\n  --ite-green: #79d8b0;\r\n  --ite-green-strong: #58bd94;\r\n  --ite-mint: #91e6c0;\r\n  --ite-red: #e16d7b;\r\n  --ite-red-soft: rgba(225,109,123,.12);\r\n  --ite-cta-ink: #07111a;\r\n  --ite-shadow: 0 28px 80px rgba(0,0,0,.28);\r\n}\r\n\r\n@media (prefers-color-scheme: dark) {\r\n  :root:not([data-iptvit-theme]):not([data-theme]) .iptvit-editorial {\r\n    --ite-bg: #07111a;\r\n    --ite-surface: rgba(14,28,38,.84);\r\n    --ite-surface-solid: #0e1c26;\r\n    --ite-ink: #f8f5ec;\r\n    --ite-muted: #adb9bd;\r\n    --ite-line: rgba(233,244,239,.13);\r\n    --ite-green: #79d8b0;\r\n    --ite-green-strong: #58bd94;\r\n    --ite-mint: #91e6c0;\r\n    --ite-red: #e16d7b;\r\n    --ite-red-soft: rgba(225,109,123,.12);\r\n    --ite-cta-ink: #07111a;\r\n    --ite-shadow: 0 28px 80px rgba(0,0,0,.28);\r\n  }\r\n}\r\n\r\n.iptvit-editorial,\r\n.iptvit-editorial *,\r\n.iptvit-editorial *::before,\r\n.iptvit-editorial *::after { box-sizing: border-box; }\r\n\r\n.iptvit-editorial::before {\r\n  background-image:\r\n    linear-gradient(var(--ite-line) 1px,transparent 1px),\r\n    linear-gradient(90deg,var(--ite-line) 1px,transparent 1px);\r\n  background-size: 4.5rem 4.5rem;\r\n  content: \"\";\r\n  inset: 0;\r\n  mask-image: linear-gradient(180deg,transparent,rgba(0,0,0,.72) 22%,transparent 92%);\r\n  opacity: .19;\r\n  pointer-events: none;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-editorial::after {\r\n  border: 1px solid var(--ite-line);\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  height: clamp(22rem,41vw,42rem);\r\n  left: clamp(-20rem,-12vw,-8rem);\r\n  pointer-events: none;\r\n  position: absolute;\r\n  top: clamp(12rem,24vw,22rem);\r\n  width: clamp(22rem,41vw,42rem);\r\n}\r\n\r\n.iptvit-editorial h2,\r\n.iptvit-editorial h3,\r\n.iptvit-editorial p,\r\n.iptvit-editorial ul { margin: 0; }\r\n\r\n.iptvit-editorial a { color: inherit; font: inherit; }\r\n.iptvit-editorial svg { display: block; }\r\n\r\n.iptvit-editorial__inner {\r\n  margin-inline: auto;\r\n  max-width: 1380px;\r\n  padding-inline: clamp(1rem,4vw,3.5rem);\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-editorial__header {\r\n  display: grid;\r\n  gap: clamp(1.4rem,3vw,3.5rem);\r\n  grid-template-columns: minmax(0,1.15fr) minmax(18rem,.85fr);\r\n  margin-bottom: clamp(2.3rem,5vw,4.4rem);\r\n}\r\n\r\n.iptvit-editorial__eyebrow {\r\n  align-items: center;\r\n  color: var(--ite-green);\r\n  display: inline-flex;\r\n  font-size: .74rem;\r\n  font-weight: 850;\r\n  gap: .72rem;\r\n  letter-spacing: .15em;\r\n  margin-bottom: 1.05rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-editorial__eyebrow::before {\r\n  background: linear-gradient(180deg,var(--ite-green),var(--ite-red));\r\n  border-radius: 999px;\r\n  content: \"\";\r\n  height: 2rem;\r\n  width: .25rem;\r\n}\r\n\r\n.iptvit-editorial__title {\r\n  font-size: clamp(2.3rem,5vw,4.65rem);\r\n  font-weight: 900;\r\n  letter-spacing: -.055em;\r\n  line-height: .99;\r\n  max-width: 17ch;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-editorial__title span {\r\n  background: linear-gradient(100deg,var(--ite-green) 4%,var(--ite-mint) 52%,var(--ite-red) 108%);\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  color: transparent;\r\n}\r\n\r\n.iptvit-editorial__lead {\r\n  align-self: end;\r\n  color: var(--ite-muted);\r\n  font-size: clamp(1rem,1.45vw,1.15rem);\r\n  line-height: 1.75;\r\n  max-width: 46rem;\r\n  text-wrap: pretty;\r\n}\r\n\r\n.iptvit-editorial__panel {\r\n  background: var(--ite-surface);\r\n  border: 1px solid var(--ite-line);\r\n  border-radius: clamp(1.45rem,3vw,2.25rem);\r\n  box-shadow: var(--ite-shadow);\r\n  display: grid;\r\n  grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr);\r\n  overflow: hidden;\r\n}\r\n\r\n.iptvit-editorial__media {\r\n  background:\r\n    radial-gradient(circle at 24% 22%,rgba(119,217,173,.42),transparent 24%),\r\n    radial-gradient(circle at 82% 72%,rgba(196,61,78,.3),transparent 27%),\r\n    linear-gradient(145deg,#102d28 0%,#0a1921 58%,#09121b 100%);\r\n  min-height: 42rem;\r\n  overflow: hidden;\r\n  position: relative;\r\n}\r\n\r\n.iptvit-editorial__media::before {\r\n  background:\r\n    linear-gradient(115deg,transparent 20%,rgba(255,255,255,.09) 20.4%,transparent 21%),\r\n    linear-gradient(28deg,transparent 55%,rgba(119,217,173,.15) 55.5%,transparent 56%);\r\n  content: \"\";\r\n  inset: 0;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-editorial__media::after {\r\n  background: linear-gradient(180deg,transparent 42%,rgba(4,12,17,.84) 100%);\r\n  content: \"\";\r\n  inset: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  z-index: 2;\r\n}\r\n\r\n.iptvit-editorial .iptvit-editorial__media > .iptvit-editorial__image {\r\n  display: block;\r\n  height: 100% !important;\r\n  inset: 0;\r\n  max-width: none;\r\n  object-fit: cover;\r\n  object-position: center center;\r\n  opacity: 0;\r\n  position: absolute;\r\n  transform: scale(1.018);\r\n  transition: opacity .45s ease,transform 1s cubic-bezier(.2,.72,.2,1);\r\n  width: 100%;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-editorial.has-image .iptvit-editorial__image { opacity: 1; }\r\n.iptvit-editorial.is-visible.has-image .iptvit-editorial__image { transform: scale(1); }\r\n\r\n.iptvit-editorial__placeholder {\r\n  align-items: center;\r\n  color: rgba(248,245,236,.92);\r\n  display: flex;\r\n  inset: 0;\r\n  justify-content: center;\r\n  padding: 2rem;\r\n  position: absolute;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-editorial.has-image .iptvit-editorial__placeholder { display: none; }\r\n\r\n.iptvit-editorial__placeholder-mark {\r\n  border: 1px solid rgba(255,255,255,.22);\r\n  border-radius: 1.5rem;\r\n  display: grid;\r\n  gap: .8rem;\r\n  max-width: 18rem;\r\n  padding: 1.4rem;\r\n  place-items: center;\r\n  text-align: center;\r\n}\r\n\r\n.iptvit-editorial__placeholder-mark svg {\r\n  fill: none;\r\n  height: 3.2rem;\r\n  stroke: currentcolor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.45;\r\n  width: 3.2rem;\r\n}\r\n\r\n.iptvit-editorial__placeholder-mark span {\r\n  font-size: .78rem;\r\n  font-weight: 800;\r\n  letter-spacing: .12em;\r\n  line-height: 1.45;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-editorial__media-copy {\r\n  bottom: 0;\r\n  color: #f8f5ec;\r\n  left: 0;\r\n  padding: clamp(1.3rem,3vw,2.2rem);\r\n  position: absolute;\r\n  right: 0;\r\n  z-index: 3;\r\n}\r\n\r\n.iptvit-editorial__media-kicker {\r\n  align-items: center;\r\n  display: flex;\r\n  font-size: .72rem;\r\n  font-weight: 850;\r\n  gap: .55rem;\r\n  letter-spacing: .13em;\r\n  margin-bottom: .65rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-editorial__media-kicker::before {\r\n  background: var(--ite-mint);\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 .32rem rgba(119,217,173,.16);\r\n  content: \"\";\r\n  height: .45rem;\r\n  width: .45rem;\r\n}\r\n\r\n.iptvit-editorial__media-copy strong {\r\n  display: block;\r\n  font-size: clamp(1.25rem,2vw,1.75rem);\r\n  line-height: 1.18;\r\n  max-width: 21ch;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-editorial__article {\r\n  padding: clamp(1.6rem,4vw,3.5rem);\r\n}\r\n\r\n.iptvit-editorial__block {\r\n  display: grid;\r\n  gap: .68rem;\r\n  padding: 1.35rem 0;\r\n}\r\n\r\n.iptvit-editorial__block:first-child { padding-top: 0; }\r\n.iptvit-editorial__block + .iptvit-editorial__block { border-top: 1px solid var(--ite-line); }\r\n\r\n.iptvit-editorial__block-head {\r\n  align-items: flex-start;\r\n  display: grid;\r\n  gap: .85rem;\r\n  grid-template-columns: 2rem minmax(0,1fr);\r\n}\r\n\r\n.iptvit-editorial__index {\r\n  align-items: center;\r\n  background: color-mix(in srgb,var(--ite-green) 12%,transparent);\r\n  border: 1px solid color-mix(in srgb,var(--ite-green) 30%,transparent);\r\n  border-radius: 50%;\r\n  color: var(--ite-green);\r\n  display: inline-flex;\r\n  font-size: .72rem;\r\n  font-weight: 900;\r\n  height: 2rem;\r\n  justify-content: center;\r\n  letter-spacing: .04em;\r\n  width: 2rem;\r\n}\r\n\r\n.iptvit-editorial__block h3 {\r\n  font-size: clamp(1.18rem,1.9vw,1.5rem);\r\n  font-weight: 850;\r\n  letter-spacing: -.025em;\r\n  line-height: 1.2;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-editorial__block p {\r\n  color: var(--ite-muted);\r\n  font-size: .98rem;\r\n  line-height: 1.72;\r\n  max-width: 70ch;\r\n}\r\n\r\n.iptvit-editorial__essentials {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: .55rem;\r\n  list-style: none;\r\n  padding: 1.25rem 0 0;\r\n}\r\n\r\n.iptvit-editorial__essentials li {\r\n  align-items: center;\r\n  background: var(--ite-surface-solid);\r\n  border: 1px solid var(--ite-line);\r\n  border-radius: 999px;\r\n  color: var(--ite-ink);\r\n  display: inline-flex;\r\n  font-size: .78rem;\r\n  font-weight: 780;\r\n  gap: .45rem;\r\n  padding: .58rem .72rem;\r\n}\r\n\r\n.iptvit-editorial__essentials li::before {\r\n  background: var(--ite-green);\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  height: .38rem;\r\n  width: .38rem;\r\n}\r\n\r\n.iptvit-editorial__links {\r\n  align-items: center;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: .85rem 1.15rem;\r\n  margin-top: 1.35rem;\r\n}\r\n\r\n.iptvit-editorial__cta,\r\n.iptvit-editorial__text-link {\r\n  align-items: center;\r\n  border-radius: 999px;\r\n  display: inline-flex;\r\n  font-size: .9rem;\r\n  font-weight: 850;\r\n  gap: .6rem;\r\n  justify-content: center;\r\n  text-decoration: none;\r\n}\r\n\r\n.iptvit-editorial__cta {\r\n  background: linear-gradient(105deg,var(--ite-green-strong),var(--ite-green));\r\n  box-shadow: 0 .8rem 1.8rem color-mix(in srgb,var(--ite-green) 22%,transparent);\r\n  color: var(--ite-cta-ink) !important;\r\n  min-height: 3.1rem;\r\n  padding: .82rem 1.15rem;\r\n  transition: transform .25s ease,box-shadow .25s ease;\r\n}\r\n\r\n.iptvit-editorial__cta svg,\r\n.iptvit-editorial__text-link svg {\r\n  fill: none;\r\n  height: 1rem;\r\n  stroke: currentcolor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 2;\r\n  width: 1rem;\r\n}\r\n\r\n.iptvit-editorial__text-link {\r\n  color: var(--ite-green);\r\n  padding: .72rem .25rem;\r\n}\r\n\r\n.iptvit-editorial__cta:hover { box-shadow: 0 1rem 2.2rem color-mix(in srgb,var(--ite-green) 30%,transparent); transform: translateY(-2px); }\r\n.iptvit-editorial__text-link:hover { color: var(--ite-red); }\r\n\r\n.iptvit-editorial a:focus-visible {\r\n  outline: 3px solid var(--ite-red);\r\n  outline-offset: 4px;\r\n}\r\n\r\n.iptvit-editorial.is-reveal-ready .iptvit-editorial__reveal {\r\n  opacity: 0;\r\n  transform: translateY(18px);\r\n  transition: opacity .62s ease,transform .62s cubic-bezier(.2,.72,.2,1);\r\n}\r\n\r\n.iptvit-editorial.is-reveal-ready .iptvit-editorial__panel { transition-delay: 90ms; }\r\n.iptvit-editorial.is-reveal-ready.is-visible .iptvit-editorial__reveal { opacity: 1; transform: none; }\r\n\r\n@media (max-width: 61.25rem) {\r\n  .iptvit-editorial__header { grid-template-columns: 1fr; }\r\n  .iptvit-editorial__lead { align-self: auto; max-width: 62rem; }\r\n  .iptvit-editorial__panel { grid-template-columns: 1fr; }\r\n  .iptvit-editorial__media { aspect-ratio: 16 \/ 9; min-height: 0; }\r\n}\r\n\r\n@media (max-width: 40.625rem) {\r\n  .iptvit-editorial { padding: 4.3rem 0; }\r\n  .iptvit-editorial__header { margin-bottom: 2rem; }\r\n  .iptvit-editorial__title { font-size: clamp(2.15rem,12vw,3.25rem); }\r\n  .iptvit-editorial__media { aspect-ratio: 4 \/ 3; }\r\n  .iptvit-editorial__article { padding: 1.25rem; }\r\n  .iptvit-editorial__block-head { grid-template-columns: 1.8rem minmax(0,1fr); gap: .68rem; }\r\n  .iptvit-editorial__index { height: 1.8rem; width: 1.8rem; }\r\n  .iptvit-editorial__essentials { display: grid; }\r\n  .iptvit-editorial__essentials li { border-radius: .85rem; }\r\n  .iptvit-editorial__links { align-items: stretch; flex-direction: column; }\r\n  .iptvit-editorial__cta { width: 100%; }\r\n  .iptvit-editorial__text-link { justify-content: center; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .iptvit-editorial *,\r\n  .iptvit-editorial *::before,\r\n  .iptvit-editorial *::after {\r\n    animation-duration: .01ms !important;\r\n    animation-iteration-count: 1 !important;\r\n    scroll-behavior: auto !important;\r\n    transition-duration: .01ms !important;\r\n  }\r\n  .iptvit-editorial .iptvit-editorial__reveal { opacity: 1 !important; transform: none !important; }\r\n  .iptvit-editorial .iptvit-editorial__image { transform: none !important; }\r\n}\r\n\r\n@media (forced-colors: active) {\r\n  .iptvit-editorial__title span {\r\n    -webkit-text-fill-color: CanvasText;\r\n    background: none;\r\n    color: CanvasText;\r\n  }\r\n  .iptvit-editorial__panel,\r\n  .iptvit-editorial__index,\r\n  .iptvit-editorial__essentials li,\r\n  .iptvit-editorial__cta { border: 1px solid CanvasText; }\r\n}\r\n<\/style>\r\n\r\n<section\r\n  id=\"cos-e-iptv\"\r\n  class=\"iptvit-editorial\"\r\n  data-iptvit-editorial\r\n  data-iptvit-anchor=\"cos-e-iptv\"\r\n  data-image-editorial=\"https:\/\/iptv-italia.it\/wp-content\/uploads\/2026\/08\/guida-iptv-italia-salotto-verticale-v2.webp\"\r\n  aria-labelledby=\"iptvit-editorial-title\"\r\n>\r\n  <div class=\"iptvit-editorial__inner\">\r\n    <header class=\"iptvit-editorial__header iptvit-editorial__reveal\">\r\n      <div>\r\n        <span class=\"iptvit-editorial__eyebrow\">Guida IPTV Italia<\/span>\r\n        <h2 id=\"iptvit-editorial-title\" class=\"iptvit-editorial__title\">\r\n          IPTV Italia: che cos\u2019\u00e8 e <span>come funziona?<\/span>\r\n        <\/h2>\r\n      <\/div>\r\n      <p class=\"iptvit-editorial__lead\">\r\n        L\u2019IPTV, acronimo di Internet Protocol Television, \u00e8 una tecnologia che permette di ricevere programmi televisivi e contenuti video attraverso una connessione Internet, utilizzando un dispositivo e un\u2019applicazione compatibili. Un servizio IPTV Italia riunisce cos\u00ec dirette, film e serie in un\u2019interfaccia adatta ai dispositivi supportati.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"iptvit-editorial__panel iptvit-editorial__reveal\">\r\n      <div class=\"iptvit-editorial__media\">\r\n        <img loading=\"lazy\"\r\n          class=\"iptvit-editorial__image\"\r\n          data-editorial-image\r\n          alt=\"IPTV Italia su Smart TV con partita di calcio, film sul tablet e catalogo sullo smartphone\"\r\n          width=\"1080\"\r\n          height=\"1920\"\r\n          loading=\"lazy\"\r\n          decoding=\"async\"\r\n        >\r\n\r\n        <div class=\"iptvit-editorial__placeholder\" aria-hidden=\"true\">\r\n          <div class=\"iptvit-editorial__placeholder-mark\">\r\n            <svg viewBox=\"0 0 64 64\" focusable=\"false\">\r\n              <rect x=\"7\" y=\"10\" width=\"50\" height=\"35\" rx=\"5\"><\/rect>\r\n              <path d=\"M23 54h18M32 45v9\"><\/path>\r\n              <path d=\"m26 23 14 7-14 7Z\"><\/path>\r\n            <\/svg>\r\n            <span>Esperienza TV connessa<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"iptvit-editorial__media-copy\">\r\n          <span class=\"iptvit-editorial__media-kicker\">Una tecnologia, pi\u00f9 dispositivi<\/span>\r\n          <strong>La televisione arriva attraverso la rete Internet.<\/strong>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <article class=\"iptvit-editorial__article\">\r\n        <section class=\"iptvit-editorial__block\">\r\n          <div class=\"iptvit-editorial__block-head\">\r\n            <span class=\"iptvit-editorial__index\" aria-hidden=\"true\">01<\/span>\r\n            <h3>La televisione attraverso Internet<\/h3>\r\n          <\/div>\r\n          <p>\r\n            A differenza della televisione tradizionale, il segnale non arriva direttamente tramite antenna o satellite: viene trasmesso online e visualizzato con un lettore compatibile. Per iniziare servono quindi una connessione adeguata, un dispositivo supportato e un\u2019applicazione in cui configurare le credenziali di accesso ricevute. L\u2019IPTV su Smart TV e sugli altri dispositivi pu\u00f2 essere configurata su Android TV, TV Box, Fire TV Stick, smartphone, tablet o computer, in base al modello e al sistema operativo utilizzato.\r\n          <\/p>\r\n        <\/section>\r\n\r\n        <section class=\"iptvit-editorial__block\">\r\n          <div class=\"iptvit-editorial__block-head\">\r\n            <span class=\"iptvit-editorial__index\" aria-hidden=\"true\">02<\/span>\r\n            <h3>Diretta, replay e contenuti on demand<\/h3>\r\n          <\/div>\r\n          <p>\r\n            Un servizio IPTV pu\u00f2 riunire canali in diretta, eventi sportivi, film, serie e contenuti disponibili su richiesta. Funzioni come guida TV, replay, catch-up o organizzazione dei preferiti variano in base alla formula scelta e all\u2019applicazione installata. Questo permette di passare dalla programmazione in diretta ai contenuti on demand attraverso un\u2019unica interfaccia e di trovare pi\u00f9 facilmente ci\u00f2 che si desidera guardare.\r\n          <\/p>\r\n        <\/section>\r\n\r\n        <section class=\"iptvit-editorial__block\">\r\n          <div class=\"iptvit-editorial__block-head\">\r\n            <span class=\"iptvit-editorial__index\" aria-hidden=\"true\">03<\/span>\r\n            <h3>Applicazione, accesso e qualit\u00e0: tre elementi distinti<\/h3>\r\n          <\/div>\r\n          <p>\r\n            L\u2019applicazione serve a riprodurre e organizzare i contenuti, mentre l\u2019abbonamento fornisce l\u2019accesso al servizio. La qualit\u00e0 effettiva dipende anche dalla stabilit\u00e0 della rete domestica, dal collegamento Wi-Fi o via cavo, dal dispositivo e dal formato disponibile. Verificare questi elementi prima della scelta aiuta a individuare una configurazione adatta alle proprie abitudini e a comprendere quando HD, FHD o 4K possono essere realmente valorizzati.\r\n          <\/p>\r\n        <\/section>\r\n\r\n        <ul class=\"iptvit-editorial__essentials\" aria-label=\"Elementi necessari\">\r\n          <li>Connessione stabile<\/li>\r\n          <li>Dispositivo compatibile<\/li>\r\n          <li>Applicazione configurata<\/li>\r\n        <\/ul>\r\n\r\n        <div class=\"iptvit-editorial__links\">\r\n          <a class=\"iptvit-editorial__cta\" href=\"https:\/\/iptv-italia.it\/compatibilita-iptv\/#dispositivi-compatibili\">\r\n            Verifica i dispositivi compatibili\r\n            <svg viewBox=\"0 0 20 20\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 10h12M11 5l5 5-5 5\"><\/path><\/svg>\r\n          <\/a>\r\n          <a class=\"iptvit-editorial__text-link\" href=\"\/guide-iptv\/\">\r\n            Leggi le guide di configurazione\r\n            <svg viewBox=\"0 0 20 20\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 10h12M11 5l5 5-5 5\"><\/path><\/svg>\r\n          <\/a>\r\n        <\/div>\r\n      <\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n\r\n<script>\r\n(() => {\r\n  \"use strict\";\r\n\r\n  const selector = \"[data-iptvit-editorial]\";\r\n\r\n  function init(root) {\r\n    const scope = root && root.querySelectorAll ? root : document;\r\n    scope.querySelectorAll(selector).forEach((section, index) => {\r\n      if (section.dataset.iptvitEditorialReady === \"1\") return;\r\n      section.dataset.iptvitEditorialReady = \"1\";\r\n\r\n      const baseAnchor = section.getAttribute(\"data-iptvit-anchor\") || \"cos-e-iptv\";\r\n      const existingAnchor = document.getElementById(baseAnchor);\r\n      if (!section.id || (existingAnchor && existingAnchor !== section)) {\r\n        section.id = `${baseAnchor}-${Date.now()}-${index}`;\r\n      }\r\n\r\n      const title = section.querySelector(\".iptvit-editorial__title\");\r\n      if (title) {\r\n        title.id = `${section.id}-title`;\r\n        section.setAttribute(\"aria-labelledby\", title.id);\r\n      }\r\n\r\n      const image = section.querySelector(\"[data-editorial-image]\");\r\n      const url = (section.getAttribute(\"data-image-editorial\") || \"\").trim();\r\n\r\n      if (image && url) {\r\n        const revealImage = () => {\r\n          image.hidden = false;\r\n          image.removeAttribute(\"aria-hidden\");\r\n          section.classList.add(\"has-image\");\r\n        };\r\n        const keepFallback = () => {\r\n          image.hidden = true;\r\n          image.setAttribute(\"aria-hidden\", \"true\");\r\n          section.classList.remove(\"has-image\");\r\n        };\r\n        image.addEventListener(\"load\", revealImage, { once: true });\r\n        image.addEventListener(\"error\", keepFallback, { once: true });\r\n        image.src = url;\r\n      }\r\n\r\n      const reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\r\n      if (reduceMotion || !(\"IntersectionObserver\" in window)) {\r\n        section.classList.add(\"is-visible\");\r\n        return;\r\n      }\r\n\r\n      section.classList.add(\"is-reveal-ready\");\r\n      const observer = new IntersectionObserver((entries) => {\r\n        entries.forEach((entry) => {\r\n          if (!entry.isIntersecting) return;\r\n          section.classList.add(\"is-visible\");\r\n          observer.disconnect();\r\n        });\r\n      }, { threshold: .12, rootMargin: \"0px 0px -5% 0px\" });\r\n      observer.observe(section);\r\n    });\r\n  }\r\n\r\n  init(document);\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", () => init(document), { once: true });\r\n  }\r\n  if (window.elementorFrontend && window.elementorFrontend.hooks) {\r\n    window.elementorFrontend.hooks.addAction(\"frontend\/element_ready\/html.default\", ($scope) => {\r\n      init($scope && $scope[0] ? $scope[0] : document);\r\n    });\r\n  }\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-71e4e11 e-con-full e-flex e-con e-parent\" data-id=\"71e4e11\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a31af8a elementor-widget elementor-widget-html\" data-id=\"a31af8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  IPTV Italia \u2014 Elementor \/ Widget HTML 08 \u2014 GUIDA ALLA SCELTA \u2014 v3 \u2014 contesto e percorsi\r\n\r\n  COH\u00c9RENCE AVEC LA SECTION TARIFS\r\n  - \u00ab Premium \u00bb est utilis\u00e9 de fa\u00e7on coh\u00e9rente : titre, texte et pastille. Sans cela le site\r\n    se contredisait d'une section \u00e0 l'autre.\r\n  - Premium reprend l'or utilis\u00e9 dans les tarifs, au lieu du rouge qui y\r\n    d\u00e9signe d\u00e9j\u00e0 l'offre \u00ab Miglior valore \u00bb.\r\n\r\n  CORRECTIONS\r\n  - Les titres ne d\u00e9claraient aucune couleur : ils prenaient celle du th\u00e8me,\r\n    qui suit son propre mode clair\/sombre.\r\n  - Filet de s\u00e9curit\u00e9 sur l'apparition : sans lui, un observateur qui ne se\r\n    d\u00e9clenche pas laissait toute la section invisible.\r\n  - Seuil d'apparition \u00e0 0 : ce bloc est plus haut que bien des \u00e9crans.\r\n\r\n  ANIMATIONS AJOUT\u00c9ES\r\n  - Ic\u00f4nes flottantes, d\u00e9synchronis\u00e9es.\r\n  - Num\u00e9ros et coches qui entrent avec leur carte.\r\n  - Reflet sur le bouton principal, fl\u00e8che qui avance.\r\n-->\r\n\r\n<style>\r\n.iptvit-choice {\r\n  --itc-bg: #f4f4ef;\r\n  --itc-surface: rgba(255,255,255,.80);\r\n  --itc-surface-solid: #ffffff;\r\n  --itc-ink: #111a20;\r\n  --itc-muted: #5d686c;\r\n  --itc-line: rgba(17,26,32,.13);\r\n  --itc-green: #23795a;\r\n  --itc-green-strong: #155d44;\r\n  --itc-mint: #77d9ad;\r\n  --itc-red: #c43d4e;\r\n  --itc-red-soft: rgba(196,61,78,.11);\r\n  \/* Or de la gamme Premium, repris de la section Tariffe *\/\r\n  --itc-gold: #b8862f;\r\n  --itc-gold-soft: rgba(184,134,47,.12);\r\n  --itc-cta-ink: #ffffff;\r\n  --itc-shadow: 0 25px 70px rgba(17,38,34,.11);\r\n  --itc-ease: cubic-bezier(.22,1,.36,1);\r\n  --itc-ease-soft: cubic-bezier(.4,0,.2,1);\r\n  background:\r\n    radial-gradient(circle at 2% 52%,rgba(196,61,78,.10),transparent 27rem),\r\n    radial-gradient(circle at 94% 12%,rgba(35,121,90,.14),transparent 29rem),\r\n    var(--itc-bg);\r\n  color: var(--itc-ink);\r\n  font-family: inherit;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n  padding: clamp(4.7rem,8vw,8rem) 0;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-choice,\r\n:root[data-theme=\"dark\"] .iptvit-choice,\r\nhtml.dark .iptvit-choice,\r\nbody.dark-mode .iptvit-choice {\r\n  --itc-bg: #07111a;\r\n  --itc-surface: rgba(14,28,38,.84);\r\n  --itc-surface-solid: #0e1c26;\r\n  --itc-ink: #f8f5ec;\r\n  --itc-muted: #adb9bd;\r\n  --itc-line: rgba(233,244,239,.13);\r\n  --itc-green: #79d8b0;\r\n  --itc-green-strong: #58bd94;\r\n  --itc-mint: #91e6c0;\r\n  --itc-red: #e16d7b;\r\n  --itc-red-soft: rgba(225,109,123,.12);\r\n  --itc-gold: #e0b662;\r\n  --itc-gold-soft: rgba(224,182,98,.13);\r\n  --itc-cta-ink: #07111a;\r\n  --itc-shadow: 0 28px 80px rgba(0,0,0,.28);\r\n}\r\n\r\n@media (prefers-color-scheme: dark) {\r\n  :root:not([data-iptvit-theme]):not([data-theme]) .iptvit-choice {\r\n    --itc-bg: #07111a;\r\n    --itc-surface: rgba(14,28,38,.84);\r\n    --itc-surface-solid: #0e1c26;\r\n    --itc-ink: #f8f5ec;\r\n    --itc-muted: #adb9bd;\r\n    --itc-line: rgba(233,244,239,.13);\r\n    --itc-green: #79d8b0;\r\n    --itc-green-strong: #58bd94;\r\n    --itc-mint: #91e6c0;\r\n    --itc-red: #e16d7b;\r\n    --itc-red-soft: rgba(225,109,123,.12);\r\n    --itc-gold: #e0b662;\r\n    --itc-gold-soft: rgba(224,182,98,.13);\r\n    --itc-cta-ink: #07111a;\r\n    --itc-shadow: 0 28px 80px rgba(0,0,0,.28);\r\n  }\r\n}\r\n\r\n.iptvit-choice,\r\n.iptvit-choice *,\r\n.iptvit-choice *::before,\r\n.iptvit-choice *::after { box-sizing: border-box; }\r\n\r\n.iptvit-choice::before {\r\n  background-image:\r\n    linear-gradient(var(--itc-line) 1px,transparent 1px),\r\n    linear-gradient(90deg,var(--itc-line) 1px,transparent 1px);\r\n  background-size: 4.5rem 4.5rem;\r\n  content: \"\";\r\n  inset: 0;\r\n  mask-image: linear-gradient(180deg,transparent,rgba(0,0,0,.65) 22%,transparent 94%);\r\n  opacity: .18;\r\n  pointer-events: none;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-choice::after {\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  height: clamp(22rem,40vw,40rem);\r\n  pointer-events: none;\r\n  position: absolute;\r\n  right: clamp(-19rem,-11vw,-7rem);\r\n  top: clamp(8rem,17vw,16rem);\r\n  width: clamp(22rem,40vw,40rem);\r\n}\r\n\r\n.iptvit-choice h2,\r\n.iptvit-choice h3,\r\n.iptvit-choice p,\r\n.iptvit-choice ul { margin: 0; }\r\n\r\n\/* IMPORTANT \u2014 ne pas retirer. Les th\u00e8mes WordPress colorent les titres selon\r\n   leur propre mode clair\/sombre ; sans cette ligne les h2\/h3 de la section\r\n   ignorent sa palette et peuvent devenir illisibles. *\/\r\n.iptvit-choice h2,\r\n.iptvit-choice h3,\r\n.iptvit-choice strong { color: inherit; }\r\n\r\n.iptvit-choice a { color: inherit; font: inherit; }\r\n.iptvit-choice svg { display: block; }\r\n\r\n.iptvit-choice__inner {\r\n  margin-inline: auto;\r\n  max-width: 1380px;\r\n  padding-inline: clamp(1rem,4vw,3.5rem);\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Chapeau \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-choice__header {\r\n  margin: 0 auto clamp(2.7rem,5vw,4.5rem);\r\n  max-width: 980px;\r\n  text-align: center;\r\n}\r\n\r\n.iptvit-choice__eyebrow {\r\n  align-items: center;\r\n  border: 1px solid color-mix(in srgb,var(--itc-green) 36%,transparent);\r\n  border-radius: 999px;\r\n  color: var(--itc-green);\r\n  display: inline-flex;\r\n  font-size: .76rem;\r\n  font-weight: 850;\r\n  gap: .55rem;\r\n  letter-spacing: .14em;\r\n  margin-bottom: 1.2rem;\r\n  padding: .62rem .9rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-choice__eyebrow::before {\r\n  background: var(--itc-green);\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 .28rem color-mix(in srgb,var(--itc-green) 13%,transparent);\r\n  content: \"\";\r\n  height: .42rem;\r\n  width: .42rem;\r\n}\r\n\r\n.iptvit-choice.is-visible .iptvit-choice__eyebrow::before {\r\n  animation: itc-pulse 3.6s 1.4s var(--itc-ease-soft) infinite;\r\n}\r\n\r\n@keyframes itc-pulse {\r\n  0%,74%,100% { box-shadow: 0 0 0 .28rem color-mix(in srgb,var(--itc-green) 13%,transparent); }\r\n  86%         { box-shadow: 0 0 0 .62rem color-mix(in srgb,var(--itc-green) 0%,transparent); }\r\n}\r\n\r\n.iptvit-choice__title {\r\n  color: var(--itc-ink);\r\n  font-size: clamp(2.3rem,5vw,4.65rem);\r\n  font-weight: 900;\r\n  letter-spacing: -.055em;\r\n  line-height: .99;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-choice__title span {\r\n  background: linear-gradient(100deg,var(--itc-green) 4%,var(--itc-mint) 53%,var(--itc-red) 108%);\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  color: transparent;\r\n}\r\n\r\n.iptvit-choice__lead {\r\n  color: var(--itc-muted);\r\n  font-size: clamp(1rem,1.5vw,1.16rem);\r\n  line-height: 1.75;\r\n  margin: 1.35rem auto 0 !important;\r\n  max-width: 760px;\r\n  text-wrap: pretty;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Cartes \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-choice__grid {\r\n  display: grid;\r\n  gap: clamp(.85rem,1.7vw,1.4rem);\r\n  grid-template-columns: repeat(3,minmax(0,1fr));\r\n}\r\n\r\n.iptvit-choice__card {\r\n  --itc-delay: 80ms;\r\n  --itc-float-d: 6.4s;\r\n  background:\r\n    linear-gradient(145deg,color-mix(in srgb,var(--itc-surface-solid) 72%,transparent),transparent 72%),\r\n    var(--itc-surface);\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: clamp(1.3rem,2.3vw,1.8rem);\r\n  box-shadow: 0 1.25rem 3rem rgba(17,38,34,.07);\r\n  display: flex;\r\n  flex-direction: column;\r\n  min-height: 31rem;\r\n  overflow: hidden;\r\n  padding: clamp(1.25rem,2.4vw,1.85rem);\r\n  position: relative;\r\n  transition: border-color .25s ease,box-shadow .25s ease,transform .25s var(--itc-ease);\r\n}\r\n\r\n.iptvit-choice__card:nth-child(2) { --itc-delay: 145ms; --itc-float-d: 7.6s; }\r\n.iptvit-choice__card:nth-child(3) { --itc-delay: 210ms; --itc-float-d: 8.5s; }\r\n\r\n.iptvit-choice__card::before {\r\n  background: linear-gradient(90deg,var(--itc-green),var(--itc-mint),var(--itc-red));\r\n  content: \"\";\r\n  height: 3px;\r\n  inset: 0 0 auto;\r\n  opacity: .82;\r\n  position: absolute;\r\n  transform: scaleX(.34);\r\n  transform-origin: left;\r\n  transition: transform .4s var(--itc-ease);\r\n}\r\n\r\n.iptvit-choice__topline {\r\n  align-items: center;\r\n  display: flex;\r\n  justify-content: space-between;\r\n  margin-bottom: 1.5rem;\r\n}\r\n\r\n.iptvit-choice__icon {\r\n  align-items: center;\r\n  background: color-mix(in srgb,var(--itc-green) 12%,transparent);\r\n  border: 1px solid color-mix(in srgb,var(--itc-green) 28%,transparent);\r\n  border-radius: 1.05rem;\r\n  color: var(--itc-green);\r\n  display: inline-flex;\r\n  height: 3.25rem;\r\n  justify-content: center;\r\n  transition: border-color .3s ease,transform .4s var(--itc-ease);\r\n  width: 3.25rem;\r\n}\r\n\r\n.iptvit-choice__icon svg {\r\n  fill: none;\r\n  height: 1.55rem;\r\n  stroke: currentcolor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.7;\r\n  width: 1.55rem;\r\n}\r\n\r\n\/* Flottement d\u00e9synchronis\u00e9 : il d\u00e9marre apr\u00e8s la r\u00e9v\u00e9lation de la carte, et\r\n   les dur\u00e9es in\u00e9gales suffisent \u00e0 les faire d\u00e9river l'une de l'autre. *\/\r\n.iptvit-choice.is-visible .iptvit-choice__icon {\r\n  animation: itc-float var(--itc-float-d) var(--itc-ease-soft) infinite;\r\n  animation-delay: calc(var(--itc-delay) + 720ms);\r\n}\r\n\r\n@keyframes itc-float {\r\n  0%,100% { transform: translateY(-.2rem); }\r\n  50%     { transform: translateY(.2rem); }\r\n}\r\n\r\n.iptvit-choice__number {\r\n  color: color-mix(in srgb,var(--itc-ink) 17%,transparent);\r\n  font-size: clamp(2.2rem,4vw,3.6rem);\r\n  font-weight: 900;\r\n  letter-spacing: -.08em;\r\n  line-height: .8;\r\n}\r\n\r\n.iptvit-choice.is-reveal-ready.is-visible .iptvit-choice__number {\r\n  animation: itc-number .62s calc(var(--itc-delay) + 150ms) var(--itc-ease) backwards;\r\n}\r\n\r\n@keyframes itc-number {\r\n  from { opacity: 0; transform: translateX(.5rem); }\r\n  to   { opacity: 1; transform: none; }\r\n}\r\n\r\n.iptvit-choice__card h3 {\r\n  font-size: clamp(1.35rem,2vw,1.72rem);\r\n  font-weight: 880;\r\n  letter-spacing: -.035em;\r\n  line-height: 1.12;\r\n  margin-bottom: .95rem;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-choice__card > p {\r\n  color: var(--itc-muted);\r\n  font-size: .96rem;\r\n  line-height: 1.72;\r\n}\r\n\r\n.iptvit-choice__detail {\r\n  border-top: 1px solid var(--itc-line);\r\n  display: grid;\r\n  gap: .72rem;\r\n  list-style: none;\r\n  margin-top: auto !important;\r\n  padding: 1.35rem 0 0;\r\n}\r\n\r\n.iptvit-choice__detail li {\r\n  align-items: flex-start;\r\n  color: var(--itc-ink);\r\n  display: grid;\r\n  font-size: .85rem;\r\n  font-weight: 720;\r\n  gap: .55rem;\r\n  grid-template-columns: 1rem minmax(0,1fr);\r\n  line-height: 1.45;\r\n}\r\n\r\n.iptvit-choice__detail svg {\r\n  fill: none;\r\n  height: 1rem;\r\n  margin-top: .11rem;\r\n  stroke: var(--itc-green);\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 2;\r\n  width: 1rem;\r\n}\r\n\r\n\/* Les coches se dessinent avec leur carte *\/\r\n.iptvit-choice.is-reveal-ready .iptvit-choice__detail svg path {\r\n  stroke-dasharray: 20;\r\n  stroke-dashoffset: 20;\r\n}\r\n\r\n.iptvit-choice.is-reveal-ready.is-visible .iptvit-choice__detail svg path {\r\n  animation: itc-draw .5s calc(var(--itc-delay) + 420ms) var(--itc-ease) forwards;\r\n}\r\n\r\n@keyframes itc-draw { to { stroke-dashoffset: 0; } }\r\n\r\n.iptvit-choice__tier-pills,\r\n.iptvit-choice__duration-pills {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: .45rem;\r\n  margin-top: 1.25rem;\r\n}\r\n\r\n.iptvit-choice__tier-pills span,\r\n.iptvit-choice__duration-pills span {\r\n  background: var(--itc-surface-solid);\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: 999px;\r\n  color: var(--itc-ink);\r\n  font-size: .75rem;\r\n  font-weight: 850;\r\n  padding: .48rem .68rem;\r\n}\r\n\r\n\/* Premium reprend l'or de la section Tariffe. Le rouge y d\u00e9signe d\u00e9j\u00e0\r\n   l'offre \u00ab Miglior valore \u00bb : le r\u00e9utiliser ici brouillait la lecture. *\/\r\n.iptvit-choice__tier-pills span:last-child {\r\n  background: var(--itc-gold-soft);\r\n  border-color: color-mix(in srgb,var(--itc-gold) 38%,transparent);\r\n  color: var(--itc-gold);\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Panneau d'appel \u00e0 l'action \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-choice__cta-panel {\r\n  align-items: center;\r\n  background:\r\n    linear-gradient(112deg,color-mix(in srgb,var(--itc-green) 11%,transparent),transparent 46%),\r\n    var(--itc-surface);\r\n  border: 1px solid var(--itc-line);\r\n  border-radius: 1.5rem;\r\n  box-shadow: var(--itc-shadow);\r\n  display: grid;\r\n  gap: 1.4rem 2rem;\r\n  grid-template-columns: minmax(0,1fr) auto;\r\n  margin-top: clamp(1.2rem,2.4vw,2rem);\r\n  overflow: hidden;\r\n  padding: clamp(1.25rem,2.8vw,2rem);\r\n  position: relative;\r\n}\r\n\r\n.iptvit-choice__cta-panel::after {\r\n  background: linear-gradient(180deg,var(--itc-green),var(--itc-red));\r\n  content: \"\";\r\n  inset: 0 auto 0 0;\r\n  position: absolute;\r\n  width: 4px;\r\n}\r\n\r\n.iptvit-choice__cta-copy strong {\r\n  display: block;\r\n  font-size: clamp(1.18rem,2vw,1.55rem);\r\n  font-weight: 880;\r\n  letter-spacing: -.025em;\r\n  line-height: 1.18;\r\n}\r\n\r\n.iptvit-choice__cta-copy p {\r\n  color: var(--itc-muted);\r\n  font-size: .94rem;\r\n  line-height: 1.62;\r\n  margin-top: .45rem;\r\n  max-width: 65ch;\r\n}\r\n\r\n.iptvit-choice__actions {\r\n  align-items: center;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: .7rem;\r\n  justify-content: flex-end;\r\n}\r\n\r\n.iptvit-choice__cta,\r\n.iptvit-choice__secondary {\r\n  align-items: center;\r\n  border-radius: 999px;\r\n  display: inline-flex;\r\n  font-size: .89rem;\r\n  font-weight: 850;\r\n  gap: .55rem;\r\n  justify-content: center;\r\n  min-height: 3.05rem;\r\n  padding: .78rem 1.05rem;\r\n  text-decoration: none;\r\n}\r\n\r\n.iptvit-choice__cta {\r\n  background: linear-gradient(105deg,var(--itc-green-strong),var(--itc-green));\r\n  box-shadow: 0 .8rem 1.8rem color-mix(in srgb,var(--itc-green) 22%,transparent);\r\n  color: var(--itc-cta-ink) !important;\r\n  overflow: hidden;\r\n  position: relative;\r\n  transition: box-shadow .25s ease,transform .25s var(--itc-ease);\r\n}\r\n\r\n\/* Reflet qui balaie le bouton principal au survol *\/\r\n.iptvit-choice__cta::before {\r\n  background: linear-gradient(105deg,transparent 34%,rgba(255,255,255,.3) 50%,transparent 66%);\r\n  content: \"\";\r\n  inset: 0;\r\n  pointer-events: none;\r\n  position: absolute;\r\n  transform: translateX(-135%);\r\n}\r\n\r\n@keyframes itc-sweep {\r\n  from { transform: translateX(-135%); }\r\n  to   { transform: translateX(135%); }\r\n}\r\n\r\n.iptvit-choice__secondary {\r\n  background: var(--itc-surface-solid);\r\n  border: 1px solid var(--itc-line);\r\n  color: var(--itc-ink);\r\n  transition: border-color .25s ease,color .25s ease,transform .25s var(--itc-ease);\r\n}\r\n\r\n.iptvit-choice__cta svg,\r\n.iptvit-choice__secondary svg {\r\n  fill: none;\r\n  height: 1rem;\r\n  position: relative;\r\n  stroke: currentcolor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 2;\r\n  transition: transform .3s var(--itc-ease);\r\n  width: 1rem;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-choice__cta span { position: relative; z-index: 1; }\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Survol \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-choice__card:hover {\r\n  border-color: color-mix(in srgb,var(--itc-green) 38%,var(--itc-line));\r\n  box-shadow: 0 1.8rem 4rem rgba(17,38,34,.12);\r\n  transform: translateY(-4px);\r\n}\r\n\r\n.iptvit-choice__card:hover::before { transform: scaleX(1); }\r\n\r\n\/* Le flottement c\u00e8de la place au relief de survol : sans cela l'animation\r\n   garderait la main sur le transform de l'ic\u00f4ne. *\/\r\n.iptvit-choice__card:hover .iptvit-choice__icon {\r\n  animation: none;\r\n  border-color: color-mix(in srgb,var(--itc-green) 52%,transparent);\r\n  transform: translateY(-.2rem) scale(1.06);\r\n}\r\n\r\n.iptvit-choice__cta:hover {\r\n  box-shadow: 0 1rem 2.2rem color-mix(in srgb,var(--itc-green) 30%,transparent);\r\n  transform: translateY(-2px);\r\n}\r\n\r\n.iptvit-choice__cta:hover::before { animation: itc-sweep .78s var(--itc-ease-soft); }\r\n.iptvit-choice__cta:hover svg { transform: translateX(.22rem); }\r\n.iptvit-choice__secondary:hover { border-color: var(--itc-green); color: var(--itc-green); transform: translateY(-2px); }\r\n\r\n.iptvit-choice a:focus-visible {\r\n  outline: 3px solid var(--itc-red);\r\n  outline-offset: 4px;\r\n}\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Apparition \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n.iptvit-choice.is-reveal-ready .iptvit-choice__reveal {\r\n  opacity: 0;\r\n  transform: translateY(18px);\r\n  transition: opacity .62s ease,transform .62s var(--itc-ease);\r\n  transition-delay: var(--itc-delay,0ms);\r\n}\r\n\r\n.iptvit-choice.is-reveal-ready.is-visible .iptvit-choice__reveal { opacity: 1; transform: none; }\r\n\r\n\/* \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 Responsive \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 *\/\r\n\r\n@media (max-width: 64rem) {\r\n  .iptvit-choice__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }\r\n  .iptvit-choice__card:nth-child(3) { grid-column: 1 \/ -1; min-height: 0; }\r\n}\r\n\r\n@media (max-width: 48rem) {\r\n  .iptvit-choice__cta-panel { grid-template-columns: 1fr; }\r\n  .iptvit-choice__actions { justify-content: flex-start; }\r\n}\r\n\r\n@media (max-width: 42rem) {\r\n  .iptvit-choice { padding: 4.3rem 0; }\r\n  .iptvit-choice__title { font-size: clamp(2.15rem,12vw,3.25rem); }\r\n  .iptvit-choice__grid { grid-template-columns: 1fr; }\r\n  .iptvit-choice__card,\r\n  .iptvit-choice__card:nth-child(3) { grid-column: auto; min-height: 0; }\r\n  .iptvit-choice__actions { align-items: stretch; flex-direction: column; }\r\n  .iptvit-choice__cta,\r\n  .iptvit-choice__secondary { width: 100%; }\r\n}\r\n\r\n@media (hover: none) {\r\n  .iptvit-choice__card:hover { box-shadow: 0 1.25rem 3rem rgba(17,38,34,.07); transform: none; }\r\n  .iptvit-choice__card:hover .iptvit-choice__icon { transform: none; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .iptvit-choice *,\r\n  .iptvit-choice *::before,\r\n  .iptvit-choice *::after {\r\n    animation: none !important;\r\n    scroll-behavior: auto !important;\r\n    transition-duration: .01ms !important;\r\n  }\r\n  .iptvit-choice .iptvit-choice__reveal { opacity: 1 !important; transform: none !important; }\r\n  .iptvit-choice__detail svg path { stroke-dashoffset: 0 !important; }\r\n}\r\n\r\n@media (forced-colors: active) {\r\n  .iptvit-choice__title span {\r\n    -webkit-text-fill-color: CanvasText;\r\n    background: none;\r\n    color: CanvasText;\r\n  }\r\n  .iptvit-choice__card,\r\n  .iptvit-choice__icon,\r\n  .iptvit-choice__cta-panel,\r\n  .iptvit-choice__cta,\r\n  .iptvit-choice__secondary { border: 1px solid CanvasText; }\r\n  .iptvit-choice__cta::before { display: none; }\r\n}\r\n\r\n\/* V3 : liens contextuels et parcours professionnel s\u00e9par\u00e9. *\/\r\n.iptvit-choice .iptvit-choice__text-link {text-decoration:underline;text-underline-offset:3px}\r\n.iptvit-choice__reseller {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;border-top:1px solid var(--itc-line);margin-top:2rem;padding-top:2rem}\r\n.iptvit-choice__reseller-label {display:block;color:var(--itc-muted);font-size:.74rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.65rem}\r\n.iptvit-choice__reseller h3 {font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.2;letter-spacing:-.025em}\r\n.iptvit-choice__reseller p {color:var(--itc-muted);font-size:.96rem;line-height:1.7;max-width:75ch;margin-top:.7rem}\r\n@media(max-width:768px) {.iptvit-choice__reseller {grid-template-columns:1fr}.iptvit-choice__reseller>a {justify-self:start}}\r\n<\/style>\r\n\r\n<section\r\n  id=\"scegliere-abbonamento\"\r\n  class=\"iptvit-choice\"\r\n  data-iptvit-choice\r\n  data-iptvit-anchor=\"scegliere-abbonamento\"\r\n  aria-labelledby=\"iptvit-choice-title\"\r\n>\r\n  <div class=\"iptvit-choice__inner\">\r\n    <header class=\"iptvit-choice__header iptvit-choice__reveal\">\r\n      <span class=\"iptvit-choice__eyebrow\">Prima di scegliere<\/span>\r\n      <h2 id=\"iptvit-choice-title\" class=\"iptvit-choice__title\">\r\n        Come scegliere l\u2019abbonamento IPTV Italia <span>pi\u00f9 adatto a te?<\/span>\r\n      <\/h2>\r\n      <p class=\"iptvit-choice__lead\">\r\n        Cerchi un abbonamento IPTV Italia per la tua casa? Parti dagli schermi che userai insieme, dalla formula e dalla durata. Qui trovi i criteri essenziali per orientarti; nelle pagine dedicate puoi verificare offerte, dispositivi e configurazione prima di scegliere.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"iptvit-choice__grid\">\r\n      <article class=\"iptvit-choice__card iptvit-choice__reveal\">\r\n        <div class=\"iptvit-choice__topline\">\r\n          <span class=\"iptvit-choice__icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 32 32\" focusable=\"false\">\r\n              <rect x=\"3.5\" y=\"5\" width=\"18\" height=\"13\" rx=\"2.4\"><\/rect>\r\n              <path d=\"M9 23h7M12.5 18v5\"><\/path>\r\n              <rect x=\"21\" y=\"11\" width=\"7.5\" height=\"13\" rx=\"1.8\"><\/rect>\r\n            <\/svg>\r\n          <\/span>\r\n          <span class=\"iptvit-choice__number\" aria-hidden=\"true\">01<\/span>\r\n        <\/div>\r\n        <h3>Uno schermo o pi\u00f9 schermi?<\/h3>\r\n        <p>\r\n          Un\u2019offerta per un solo schermo \u00e8 indicata per chi guarda i contenuti principalmente su un dispositivo alla volta. Se pi\u00f9 persone desiderano utilizzare il servizio nello stesso momento, occorre invece una formula multi-schermo con un numero adeguato di connessioni simultanee. Installare l\u2019applicazione su pi\u00f9 dispositivi non significa poterli usare tutti insieme: \u00e8 il numero di connessioni incluso nell\u2019offerta a determinare quanti schermi possono restare attivi contemporaneamente.\r\n        <\/p>\r\n        <ul class=\"iptvit-choice__detail\">\r\n          <li><svg viewBox=\"0 0 18 18\" aria-hidden=\"true\"><path d=\"m3.5 9 3.2 3.2L14.5 4.8\"><\/path><\/svg><span>1 schermo per una visione alla volta<\/span><\/li>\r\n          <li><svg viewBox=\"0 0 18 18\" aria-hidden=\"true\"><path d=\"m3.5 9 3.2 3.2L14.5 4.8\"><\/path><\/svg><span>2, 3 o 4 connessioni per visioni simultanee<\/span><\/li>\r\n        <\/ul>\r\n      <\/article>\r\n\r\n      <article class=\"iptvit-choice__card iptvit-choice__reveal\">\r\n        <div class=\"iptvit-choice__topline\">\r\n          <span class=\"iptvit-choice__icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 32 32\" focusable=\"false\">\r\n              <path d=\"M16 3.5 25 7v7.2c0 6-3.7 11.1-9 14.3-5.3-3.2-9-8.3-9-14.3V7Z\"><\/path>\r\n              <path d=\"m11.5 15.7 3 3 6.2-7\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n          <span class=\"iptvit-choice__number\" aria-hidden=\"true\">02<\/span>\r\n        <\/div>\r\n        <h3>Qual \u00e8 la differenza tra Standard e Premium?<\/h3>\r\n        <p>\r\n          La gamma Standard \u00e8 pensata per l\u2019utilizzo quotidiano e riunisce canali live, sport, film, serie, replay e compatibilit\u00e0 multi-dispositivo. La gamma Premium propone un catalogo ampliato, aggiornamenti prioritari e prestazioni ottimizzate, soprattutto durante gli eventi e negli orari pi\u00f9 richiesti. Non esiste una scelta identica per tutti: Standard privilegia equilibrio e semplicit\u00e0, mentre la formula Premium \u00e8 pensata per chi desidera il livello di servizio pi\u00f9 completo.\r\n        <\/p>\r\n        <div class=\"iptvit-choice__tier-pills\" aria-label=\"Gamme disponibili\">\r\n          <span>Standard<\/span>\r\n          <span>Premium<\/span>\r\n        <\/div>\r\n        <ul class=\"iptvit-choice__detail\">\r\n          <li><svg viewBox=\"0 0 18 18\" aria-hidden=\"true\"><path d=\"m3.5 9 3.2 3.2L14.5 4.8\"><\/path><\/svg><span><a class=\"iptvit-choice__text-link\" href=\"https:\/\/iptv-italia.it\/abbonamento-iptv\/#confronto-standard-premium\">Confronta Standard e Premium<\/a><\/span><\/li>\r\n          <li><svg viewBox=\"0 0 18 18\" aria-hidden=\"true\"><path d=\"m3.5 9 3.2 3.2L14.5 4.8\"><\/path><\/svg><span>La stessa scelta disponibile anche per il multi-schermo<\/span><\/li>\r\n        <\/ul>\r\n      <\/article>\r\n\r\n      <article class=\"iptvit-choice__card iptvit-choice__reveal\">\r\n        <div class=\"iptvit-choice__topline\">\r\n          <span class=\"iptvit-choice__icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 32 32\" focusable=\"false\">\r\n              <rect x=\"4\" y=\"6.5\" width=\"24\" height=\"21\" rx=\"3\"><\/rect>\r\n              <path d=\"M9 3.5v6M23 3.5v6M4 12h24\"><\/path>\r\n              <path d=\"M9 17h4M18 17h5M9 22h6\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n          <span class=\"iptvit-choice__number\" aria-hidden=\"true\">03<\/span>\r\n        <\/div>\r\n        <h3>Quale durata scegliere?<\/h3>\r\n        <p>\r\n          Le formule pi\u00f9 brevi permettono di iniziare con un impegno contenuto e di conoscere il servizio. Gli abbonamenti di maggiore durata sono pi\u00f9 adatti a chi prevede un utilizzo regolare e desidera ridurre la frequenza dei rinnovi. Prima di confermare, conviene controllare il dispositivo, soprattutto se userai IPTV su Smart TV, l\u2019applicazione prevista e il numero di schermi. Se rimane un dubbio, <a class=\"iptvit-choice__text-link\" href=\"https:\/\/iptv-italia.it\/contatti\/\">l\u2019assistenza<\/a> pu\u00f2 aiutare a individuare la configurazione coerente con le proprie esigenze.\r\n        <\/p>\r\n        <div class=\"iptvit-choice__duration-pills\" aria-label=\"Durate disponibili\">\r\n          <span>3 mesi<\/span>\r\n          <span>6 mesi<\/span>\r\n          <span>12 mesi<\/span>\r\n          <span>24 mesi<\/span>\r\n        <\/div>\r\n        <ul class=\"iptvit-choice__detail\">\r\n          <li><svg viewBox=\"0 0 18 18\" aria-hidden=\"true\"><path d=\"m3.5 9 3.2 3.2L14.5 4.8\"><\/path><\/svg><span>3 o 6 mesi per iniziare con maggiore flessibilit\u00e0<\/span><\/li>\r\n          <li><svg viewBox=\"0 0 18 18\" aria-hidden=\"true\"><path d=\"m3.5 9 3.2 3.2L14.5 4.8\"><\/path><\/svg><span>12 o 24 mesi per un utilizzo continuativo<\/span><\/li>\r\n        <\/ul>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"iptvit-choice__cta-panel iptvit-choice__reveal\" style=\"--itc-delay:260ms\">\r\n      <div class=\"iptvit-choice__cta-copy\">\r\n        <strong>Hai individuato le esigenze della tua casa?<\/strong>\r\n        <p>Verifica il tuo dispositivo e consulta la pagina abbonamenti per confrontare formule, schermi e durate disponibili.<\/p>\r\n      <\/div>\r\n      <div class=\"iptvit-choice__actions\">\r\n        <a class=\"iptvit-choice__secondary\" href=\"https:\/\/iptv-italia.it\/compatibilita-iptv\/#dispositivi-compatibili\">\r\n          Controlla la compatibilit\u00e0\r\n        <\/a>\r\n        <a class=\"iptvit-choice__cta\" href=\"https:\/\/iptv-italia.it\/abbonamento-iptv\/#offerte\">\r\n          <span>Confronta le offerte<\/span>\r\n          <svg viewBox=\"0 0 20 20\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 10h12M11 5l5 5-5 5\"><\/path><\/svg>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <aside class=\"iptvit-choice__reseller\" aria-labelledby=\"iptvit-choice-reseller-title\">\r\n      <div>\r\n        <span class=\"iptvit-choice__reseller-label\">Un percorso diverso<\/span>\r\n        <h3 id=\"iptvit-choice-reseller-title\">Vuoi diventare rivenditore IPTV?<\/h3>\r\n        <p>Se vuoi gestire abbonamenti per i tuoi clienti, il punto di partenza \u00e8 il percorso rivenditore, non la scelta di una formula per la casa. Nella pagina dedicata trovi informazioni sul pannello, sui pacchetti e sui passaggi per iniziare.<\/p>\r\n      <\/div>\r\n      <a class=\"iptvit-choice__secondary\" href=\"https:\/\/iptv-italia.it\/rivenditore-iptv\/\">Scopri il percorso rivenditore <span aria-hidden=\"true\">\u2192<\/span><\/a>\r\n    <\/aside>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(() => {\r\n  \"use strict\";\r\n\r\n  const selector = \"[data-iptvit-choice]\";\r\n\r\n  function init(root) {\r\n    const scope = root && root.querySelectorAll ? root : document;\r\n    scope.querySelectorAll(selector).forEach((section, index) => {\r\n      if (section.dataset.iptvitChoiceReady === \"1\") return;\r\n      section.dataset.iptvitChoiceReady = \"1\";\r\n\r\n      const baseAnchor = section.getAttribute(\"data-iptvit-anchor\") || \"scegliere-abbonamento\";\r\n      const existingAnchor = document.getElementById(baseAnchor);\r\n      if (!section.id || (existingAnchor && existingAnchor !== section)) {\r\n        section.id = `${baseAnchor}-${Date.now()}-${index}`;\r\n      }\r\n\r\n      const title = section.querySelector(\".iptvit-choice__title\");\r\n      if (title) {\r\n        title.id = `${section.id}-title`;\r\n        section.setAttribute(\"aria-labelledby\", title.id);\r\n      }\r\n\r\n      const reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\r\n      if (reduceMotion || !(\"IntersectionObserver\" in window)) {\r\n        section.classList.add(\"is-visible\");\r\n        return;\r\n      }\r\n\r\n      section.classList.add(\"is-reveal-ready\");\r\n\r\n      \/* threshold 0 : ce bloc est plus haut que bien des \u00e9crans, et exiger un\r\n         pourcentage de sa surface rend le d\u00e9clenchement fragile. *\/\r\n      const observer = new IntersectionObserver((entries) => {\r\n        entries.forEach((entry) => {\r\n          if (!entry.isIntersecting) return;\r\n          section.classList.add(\"is-visible\");\r\n          observer.disconnect();\r\n        });\r\n      }, { threshold: 0, rootMargin: \"0px 0px -7% 0px\" });\r\n\r\n      observer.observe(section);\r\n\r\n      \/* Filet de s\u00e9curit\u00e9. Une animation d\u00e9corative ne doit jamais pouvoir\r\n         laisser la section invisible : page int\u00e9gr\u00e9e dans un conteneur de\r\n         d\u00e9filement inhabituel, extension qui neutralise l'API, onglet\r\n         restaur\u00e9. Au bout de trois secondes, on affiche tout. *\/\r\n      window.setTimeout(() => section.classList.add(\"is-visible\"), 3000);\r\n    });\r\n  }\r\n\r\n  init(document);\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", () => init(document), { once: true });\r\n  }\r\n  if (window.elementorFrontend && window.elementorFrontend.hooks) {\r\n    window.elementorFrontend.hooks.addAction(\"frontend\/element_ready\/html.default\", ($scope) => {\r\n      init($scope && $scope[0] ? $scope[0] : document);\r\n    });\r\n  }\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5f70c3f e-con-full e-flex e-con e-parent\" data-id=\"5f70c3f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8fc6b21 elementor-widget elementor-widget-html\" data-id=\"8fc6b21\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  IPTV Italia \u2014 Elementor \/ Widget HTML 09\r\n  FAQ SEO \/ GEO \u2014 v1 (corretta)\r\n\r\n  POSIZIONE CONSIGLIATA:\r\n  Ultima sezione della home page, dopo \"Prima di scegliere\" e prima del footer.\r\n\r\n  CORREZIONI APPLICATE RISPETTO ALLA BOZZA:\r\n  1. Aggiunta la guardia `color: inherit` su h2\/h3\/h4\/strong. Senza di essa il\r\n     <strong> della card scura veniva colorato dal tema in inchiostro scuro su\r\n     fondo verde scuro.\r\n  2. IntersectionObserver: `threshold: 0` e rete di sicurezza a 3 s. La classe\r\n     `is-reveal-ready` porta a `opacity: 0` l'intero contenuto della sezione.\r\n  3. `overflow: hidden` -> `overflow: clip` sulla sezione: `hidden` annullava il\r\n     `position: sticky` dell'intro.\r\n  4. Offset sotto l'header portato a 6rem + 1.5rem (header reale: 98 px).\r\n  5. Focus visibile dedicato per i bottoni sulla card scura (era 1,6:1).\r\n  6. Bordo del bottone secondario portato a 3:1 (WCAG 1.4.11).\r\n  7. Oro allineato al token di sito `#e0b662` (era `#f2d26a`).\r\n\r\n  CLAIMS TO VERIFY PRIMA DELLA PUBBLICAZIONE:\r\n  - assistenza disponibile 7 giorni su 7 via WhatsApp o e-mail;\r\n  - gamme Standard e Premium e relative differenze;\r\n  - disponibilit\u00e0 da 1 a 4 connessioni simultanee;\r\n  - durate di 3, 6, 12 e 24 mesi;\r\n  - qualit\u00e0 HD, FHD e 4K, sempre subordinata a contenuto, app, dispositivo e rete;\r\n  - catalogo live e on demand, replay, catch-up ed EPG in base alla formula;\r\n  - attivazione dopo la conferma e modalit\u00e0 reali di consegna degli accessi;\r\n  - eventuali licenze player incluse soltanto nelle offerte che lo dichiarano.\r\n\r\n  NON SONO STATE INSERITE COME FATTI:\r\n  - \"zero buffering\", \"100% stabile\", disponibilit\u00e0 99,9%, quantit\u00e0 di canali\/VOD;\r\n  - tempi di attivazione precisi, prova gratuita, rimborso o rinnovo automatico;\r\n  - sicurezza del pagamento, status \"ufficiale\" o legalit\u00e0 del servizio specifico.\r\n\r\n  LINK INTERNI:\r\n  \/dispositivi-compatibili\/ \/lista-canali\/ \/termini-e-condizioni\/ sono gli slug\r\n  gi\u00e0 usati dal tema. \/guide-iptv\/ NON \u00e8 verificato: controllare che la pagina\r\n  esista prima della pubblicazione.\r\n\r\n  DATI STRUTTURATI:\r\n  Nessun JSON-LD FAQPage \u00e8 incluso. Il contenuto \u00e8 gi\u00e0 presente nell'HTML visibile\r\n  e Rank Math deve restare l'unica eventuale fonte di schema, per evitare duplicati.\r\n-->\r\n\r\n<style>\r\n.iptvit-faq {\r\n  --ifq-bg: #f4f4ef;\r\n  --ifq-surface: rgba(255,255,255,.82);\r\n  --ifq-surface-solid: #ffffff;\r\n  --ifq-ink: #111a20;\r\n  --ifq-muted: #5d686c;\r\n  --ifq-line: rgba(17,26,32,.13);\r\n  --ifq-green: #23795a;\r\n  --ifq-green-deep: #155d44;\r\n  --ifq-green-soft: rgba(35,121,90,.11);\r\n  --ifq-mint: #77d9ad;\r\n  --ifq-red: #c43d4e;\r\n  --ifq-red-soft: rgba(196,61,78,.11);\r\n  --ifq-white: #ffffff;\r\n  --ifq-gold: #e0b662;\r\n  --ifq-on-dark-focus: #96e0be;\r\n  --ifq-header-offset: 6rem;\r\n  --ifq-shadow: 0 28px 75px rgba(17,38,34,.11);\r\n  background:\r\n    radial-gradient(circle at 0 22%,rgba(35,121,90,.14),transparent 30rem),\r\n    radial-gradient(circle at 100% 78%,rgba(196,61,78,.11),transparent 29rem),\r\n    var(--ifq-bg);\r\n  color: var(--ifq-ink);\r\n  font-family: inherit;\r\n  isolation: isolate;\r\n  overflow: clip;\r\n  padding: clamp(4.8rem,8vw,8rem) 0;\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n:root[data-iptvit-theme=\"dark\"] .iptvit-faq,\r\n:root[data-theme=\"dark\"] .iptvit-faq,\r\nhtml.dark .iptvit-faq,\r\nbody.dark-mode .iptvit-faq {\r\n  --ifq-bg: #07111a;\r\n  --ifq-surface: rgba(14,28,38,.84);\r\n  --ifq-surface-solid: #0e1c26;\r\n  --ifq-ink: #f8f5ec;\r\n  --ifq-muted: #adb9bd;\r\n  --ifq-line: rgba(233,244,239,.13);\r\n  --ifq-green: #79d8b0;\r\n  --ifq-green-deep: #58bd94;\r\n  --ifq-green-soft: rgba(121,216,176,.11);\r\n  --ifq-mint: #91e6c0;\r\n  --ifq-red: #e16d7b;\r\n  --ifq-red-soft: rgba(225,109,123,.12);\r\n  --ifq-shadow: 0 30px 82px rgba(0,0,0,.28);\r\n}\r\n\r\n@media (prefers-color-scheme: dark) {\r\n  :root:not([data-iptvit-theme]):not([data-theme]) .iptvit-faq {\r\n    --ifq-bg: #07111a;\r\n    --ifq-surface: rgba(14,28,38,.84);\r\n    --ifq-surface-solid: #0e1c26;\r\n    --ifq-ink: #f8f5ec;\r\n    --ifq-muted: #adb9bd;\r\n    --ifq-line: rgba(233,244,239,.13);\r\n    --ifq-green: #79d8b0;\r\n    --ifq-green-deep: #58bd94;\r\n    --ifq-green-soft: rgba(121,216,176,.11);\r\n    --ifq-mint: #91e6c0;\r\n    --ifq-red: #e16d7b;\r\n    --ifq-red-soft: rgba(225,109,123,.12);\r\n    --ifq-shadow: 0 30px 82px rgba(0,0,0,.28);\r\n  }\r\n}\r\n\r\n.iptvit-faq,\r\n.iptvit-faq *,\r\n.iptvit-faq *::before,\r\n.iptvit-faq *::after { box-sizing: border-box; }\r\n\r\n.iptvit-faq::before {\r\n  background-image:\r\n    linear-gradient(var(--ifq-line) 1px,transparent 1px),\r\n    linear-gradient(90deg,var(--ifq-line) 1px,transparent 1px);\r\n  background-size: 4.5rem 4.5rem;\r\n  content: \"\";\r\n  inset: 0;\r\n  mask-image: linear-gradient(180deg,transparent,rgba(0,0,0,.68) 18%,transparent 96%);\r\n  opacity: .18;\r\n  pointer-events: none;\r\n  position: absolute;\r\n}\r\n\r\n.iptvit-faq::after {\r\n  border: 1px solid var(--ifq-line);\r\n  border-radius: 50%;\r\n  content: \"\";\r\n  height: clamp(23rem,42vw,43rem);\r\n  left: clamp(-21rem,-12vw,-8rem);\r\n  pointer-events: none;\r\n  position: absolute;\r\n  top: clamp(17rem,28vw,28rem);\r\n  width: clamp(23rem,42vw,43rem);\r\n}\r\n\r\n.iptvit-faq h2,\r\n.iptvit-faq h3,\r\n.iptvit-faq h4,\r\n.iptvit-faq p,\r\n.iptvit-faq ul { margin: 0; }\r\n\r\n\/* Il tema colora h2\/h3\/h4\/strong secondo il proprio modo chiaro\/scuro.\r\n   Senza questa guardia il titolo della card, il cui fondo verde scuro \u00e8 fisso\r\n   nei due modi, diventa inchiostro scuro su verde scuro. *\/\r\n.iptvit-faq h2,\r\n.iptvit-faq h3,\r\n.iptvit-faq h4,\r\n.iptvit-faq strong { color: inherit; }\r\n\r\n.iptvit-faq a { color: inherit; font: inherit; }\r\n.iptvit-faq svg { display: block; }\r\n\r\n.iptvit-faq__inner {\r\n  margin-inline: auto;\r\n  max-width: 1380px;\r\n  padding-inline: clamp(1rem,4vw,3.5rem);\r\n  position: relative;\r\n  z-index: 1;\r\n}\r\n\r\n.iptvit-faq__layout {\r\n  align-items: start;\r\n  display: grid;\r\n  gap: clamp(2rem,5vw,5.2rem);\r\n  grid-template-columns: minmax(17rem,.72fr) minmax(0,1.28fr);\r\n}\r\n\r\n\/* L'header del sito misura 98 px incollato in alto: sotto questo valore\r\n   l'intro scivolerebbe dietro l'header tra 1120 e 1225 px di larghezza. *\/\r\n.iptvit-faq__intro {\r\n  position: sticky;\r\n  top: calc(var(--ifq-header-offset) + 1.5rem);\r\n}\r\n\r\n.iptvit-faq__eyebrow {\r\n  align-items: center;\r\n  border: 1px solid color-mix(in srgb,var(--ifq-green) 36%,transparent);\r\n  border-radius: 999px;\r\n  color: var(--ifq-green);\r\n  display: inline-flex;\r\n  font-size: .74rem;\r\n  font-weight: 850;\r\n  gap: .55rem;\r\n  letter-spacing: .14em;\r\n  margin-bottom: 1.2rem;\r\n  padding: .62rem .9rem;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-faq__eyebrow::before {\r\n  background: var(--ifq-green);\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 .28rem color-mix(in srgb,var(--ifq-green) 13%,transparent);\r\n  content: \"\";\r\n  height: .42rem;\r\n  width: .42rem;\r\n}\r\n\r\n.iptvit-faq__title {\r\n  font-size: clamp(2.45rem,5vw,4.8rem);\r\n  font-weight: 920;\r\n  letter-spacing: -.058em;\r\n  line-height: .98;\r\n  max-width: 11ch;\r\n  text-wrap: balance;\r\n}\r\n\r\n.iptvit-faq__title span {\r\n  background: linear-gradient(100deg,var(--ifq-green) 4%,var(--ifq-mint) 54%,var(--ifq-red) 108%);\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  color: transparent;\r\n}\r\n\r\n.iptvit-faq__lead {\r\n  color: var(--ifq-muted);\r\n  font-size: clamp(1rem,1.35vw,1.12rem);\r\n  line-height: 1.72;\r\n  margin-top: 1.3rem !important;\r\n  max-width: 39rem;\r\n  text-wrap: pretty;\r\n}\r\n\r\n.iptvit-faq__snapshot {\r\n  background:\r\n    radial-gradient(circle at 88% 0,rgba(119,217,173,.20),transparent 13rem),\r\n    linear-gradient(145deg,#123d31,#0a211c 72%);\r\n  border: 1px solid rgba(255,255,255,.15);\r\n  border-radius: clamp(1.35rem,2.2vw,1.8rem);\r\n  box-shadow: var(--ifq-shadow);\r\n  color: var(--ifq-white);\r\n  margin-top: clamp(1.8rem,3.5vw,2.7rem);\r\n  overflow: hidden;\r\n  padding: clamp(1.25rem,2.4vw,1.8rem);\r\n  position: relative;\r\n}\r\n\r\n.iptvit-faq__snapshot::after {\r\n  background: linear-gradient(90deg,#42b883,#f1f0e8,#cf4555);\r\n  bottom: 0;\r\n  content: \"\";\r\n  height: 3px;\r\n  left: 0;\r\n  position: absolute;\r\n  width: 100%;\r\n}\r\n\r\n.iptvit-faq__snapshot-kicker {\r\n  color: #96e0be;\r\n  display: block;\r\n  font-size: .72rem;\r\n  font-weight: 850;\r\n  letter-spacing: .13em;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.iptvit-faq__snapshot strong {\r\n  display: block;\r\n  font-size: clamp(1.2rem,2vw,1.5rem);\r\n  letter-spacing: -.025em;\r\n  line-height: 1.15;\r\n  margin-top: .6rem;\r\n}\r\n\r\n.iptvit-faq__proofs {\r\n  display: grid;\r\n  gap: .72rem;\r\n  list-style: none;\r\n  margin-top: 1.25rem !important;\r\n  padding: 0;\r\n}\r\n\r\n.iptvit-faq__proofs li {\r\n  align-items: center;\r\n  border-top: 1px solid rgba(255,255,255,.12);\r\n  display: grid;\r\n  font-size: .91rem;\r\n  font-weight: 720;\r\n  gap: .7rem;\r\n  grid-template-columns: 1.45rem 1fr;\r\n  line-height: 1.35;\r\n  padding-top: .72rem;\r\n}\r\n\r\n.iptvit-faq__proofs svg {\r\n  fill: none;\r\n  height: 1.25rem;\r\n  stroke: #96e0be;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.8;\r\n  width: 1.25rem;\r\n}\r\n\r\n.iptvit-faq__snapshot-note {\r\n  color: rgba(255,255,255,.68);\r\n  font-size: .78rem;\r\n  line-height: 1.55;\r\n  margin-top: 1.1rem !important;\r\n}\r\n\r\n.iptvit-faq__actions {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: .7rem;\r\n  margin-top: 1.4rem;\r\n}\r\n\r\n.iptvit-faq__cta,\r\n.iptvit-faq__secondary {\r\n  align-items: center;\r\n  border-radius: 999px;\r\n  display: inline-flex;\r\n  font-size: .84rem;\r\n  font-weight: 850;\r\n  gap: .5rem;\r\n  justify-content: center;\r\n  line-height: 1;\r\n  min-height: 2.85rem;\r\n  padding: .78rem 1rem;\r\n  text-decoration: none !important;\r\n  transition: border-color .22s ease,background-color .22s ease,transform .22s ease;\r\n}\r\n\r\n.iptvit-faq__cta {\r\n  background: var(--ifq-gold);\r\n  border: 1px solid var(--ifq-gold);\r\n  color: #0a211c !important;\r\n}\r\n\r\n\/* Il bordo \u00e8 l'unica affordance del bottone: sotto .38 scende a 1,67:1,\r\n   mentre WCAG 1.4.11 richiede 3:1. *\/\r\n.iptvit-faq__secondary {\r\n  background: rgba(255,255,255,.07);\r\n  border: 1px solid rgba(255,255,255,.38);\r\n  color: var(--ifq-white) !important;\r\n}\r\n\r\n.iptvit-faq__cta svg,\r\n.iptvit-faq__secondary svg {\r\n  fill: none;\r\n  height: 1rem;\r\n  stroke: currentcolor;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n  stroke-width: 1.8;\r\n  width: 1rem;\r\n}\r\n\r\n.iptvit-faq__groups {\r\n  display: grid;\r\n  gap: clamp(2rem,4vw,3.2rem);\r\n  min-width: 0;\r\n}\r\n\r\n.iptvit-faq__group-head {\r\n  align-items: end;\r\n  border-bottom: 1px solid var(--ifq-line);\r\n  display: grid;\r\n  gap: 1rem;\r\n  grid-template-columns: auto 1fr;\r\n  margin-bottom: 1rem;\r\n  padding: 0 .2rem .95rem;\r\n}\r\n\r\n.iptvit-faq__group-number {\r\n  color: var(--ifq-green);\r\n  font-size: .75rem;\r\n  font-weight: 900;\r\n  letter-spacing: .14em;\r\n}\r\n\r\n.iptvit-faq__group-head h3 {\r\n  font-size: clamp(1.25rem,2vw,1.6rem);\r\n  font-weight: 880;\r\n  letter-spacing: -.03em;\r\n  line-height: 1.15;\r\n}\r\n\r\n.iptvit-faq__list {\r\n  display: grid;\r\n  gap: .8rem;\r\n}\r\n\r\n.iptvit-faq__item {\r\n  background:\r\n    linear-gradient(145deg,color-mix(in srgb,var(--ifq-surface-solid) 72%,transparent),transparent 76%),\r\n    var(--ifq-surface);\r\n  border: 1px solid var(--ifq-line);\r\n  border-radius: clamp(1.05rem,1.6vw,1.35rem);\r\n  box-shadow: 0 .8rem 2rem rgba(17,38,34,.045);\r\n  overflow: clip;\r\n  transition: border-color .24s ease,box-shadow .24s ease,transform .24s ease;\r\n}\r\n\r\n.iptvit-faq__item[open] {\r\n  border-color: color-mix(in srgb,var(--ifq-green) 44%,var(--ifq-line));\r\n  box-shadow: 0 1.15rem 2.8rem rgba(17,38,34,.09);\r\n}\r\n\r\n.iptvit-faq__question {\r\n  cursor: pointer;\r\n  list-style: none;\r\n  min-height: 5rem;\r\n  padding: 0;\r\n  user-select: none;\r\n}\r\n\r\n.iptvit-faq__question::-webkit-details-marker { display: none; }\r\n.iptvit-faq__question::marker { content: \"\"; }\r\n\r\n.iptvit-faq__question h4 {\r\n  align-items: center;\r\n  display: grid;\r\n  font-size: clamp(1rem,1.45vw,1.14rem);\r\n  font-weight: 820;\r\n  gap: clamp(.7rem,1.5vw,1rem);\r\n  grid-template-columns: 2.15rem minmax(0,1fr) 2.25rem;\r\n  letter-spacing: -.012em;\r\n  line-height: 1.35;\r\n  min-height: 5rem;\r\n  padding: .95rem clamp(.9rem,2vw,1.25rem);\r\n}\r\n\r\n.iptvit-faq__question-index {\r\n  align-items: center;\r\n  background: var(--ifq-green-soft);\r\n  border: 1px solid color-mix(in srgb,var(--ifq-green) 26%,transparent);\r\n  border-radius: .72rem;\r\n  color: var(--ifq-green);\r\n  display: inline-flex;\r\n  font-size: .7rem;\r\n  font-weight: 900;\r\n  height: 2.15rem;\r\n  justify-content: center;\r\n  letter-spacing: .05em;\r\n  width: 2.15rem;\r\n}\r\n\r\n.iptvit-faq__plus {\r\n  align-items: center;\r\n  border: 1px solid var(--ifq-line);\r\n  border-radius: 50%;\r\n  color: var(--ifq-green);\r\n  display: inline-flex;\r\n  height: 2.25rem;\r\n  justify-content: center;\r\n  position: relative;\r\n  transition: background-color .24s ease,border-color .24s ease,transform .3s ease;\r\n  width: 2.25rem;\r\n}\r\n\r\n.iptvit-faq__plus::before,\r\n.iptvit-faq__plus::after {\r\n  background: currentcolor;\r\n  border-radius: 999px;\r\n  content: \"\";\r\n  height: 1.5px;\r\n  position: absolute;\r\n  width: .8rem;\r\n}\r\n\r\n.iptvit-faq__plus::after { transform: rotate(90deg); }\r\n\r\n\/* --ifq-surface-solid fa da token \"on-green\": bianco in chiaro, inchiostro in\r\n   scuro. Il contrasto resta 5,4:1 e 10,2:1. *\/\r\n.iptvit-faq__item[open] .iptvit-faq__plus {\r\n  background: var(--ifq-green);\r\n  border-color: var(--ifq-green);\r\n  color: var(--ifq-surface-solid);\r\n  transform: rotate(45deg);\r\n}\r\n\r\n.iptvit-faq__answer {\r\n  border-top: 1px solid var(--ifq-line);\r\n  color: var(--ifq-muted);\r\n  font-size: .98rem;\r\n  line-height: 1.75;\r\n  padding: 1.05rem clamp(1rem,2.2vw,1.4rem) 1.3rem clamp(4.05rem,6vw,4.65rem);\r\n}\r\n\r\n.iptvit-faq__answer p + p { margin-top: .75rem; }\r\n\r\n.iptvit-faq__answer a {\r\n  color: var(--ifq-green);\r\n  font-weight: 800;\r\n  text-decoration: underline;\r\n  text-decoration-color: color-mix(in srgb,var(--ifq-green) 42%,transparent);\r\n  text-decoration-thickness: 1px;\r\n  text-underline-offset: .2em;\r\n}\r\n\r\n.iptvit-faq__item[open] .iptvit-faq__answer {\r\n  animation: iptvitFaqAnswerIn .34s cubic-bezier(.2,.72,.2,1) both;\r\n}\r\n\r\n.iptvit-faq__question:focus-visible,\r\n.iptvit-faq__answer a:focus-visible {\r\n  outline: 3px solid color-mix(in srgb,var(--ifq-green) 55%,transparent);\r\n  outline-offset: 3px;\r\n}\r\n\r\n\/* I due bottoni stanno sulla card verde scuro, dove l'anello verde usato nel\r\n   resto della sezione scenderebbe a 1,6:1. *\/\r\n.iptvit-faq__cta:focus-visible,\r\n.iptvit-faq__secondary:focus-visible {\r\n  outline: 3px solid var(--ifq-on-dark-focus);\r\n  outline-offset: 3px;\r\n}\r\n\r\n.iptvit-faq__reveal { opacity: 1; transform: none; }\r\n\r\n.iptvit-faq.is-reveal-ready .iptvit-faq__reveal {\r\n  opacity: 0;\r\n  transform: translateY(16px);\r\n  transition: opacity .62s ease,transform .62s cubic-bezier(.2,.72,.2,1);\r\n}\r\n\r\n.iptvit-faq.is-reveal-ready .iptvit-faq__group:nth-child(1) { transition-delay: 90ms; }\r\n.iptvit-faq.is-reveal-ready .iptvit-faq__group:nth-child(2) { transition-delay: 150ms; }\r\n.iptvit-faq.is-reveal-ready .iptvit-faq__group:nth-child(3) { transition-delay: 210ms; }\r\n.iptvit-faq.is-reveal-ready.is-visible .iptvit-faq__reveal { opacity: 1; transform: none; }\r\n\r\n@keyframes iptvitFaqAnswerIn {\r\n  from { opacity: 0; transform: translateY(-5px); }\r\n  to { opacity: 1; transform: none; }\r\n}\r\n\r\n@media (hover: hover) and (pointer: fine) {\r\n  .iptvit-faq__item:not([open]):hover {\r\n    border-color: color-mix(in srgb,var(--ifq-green) 32%,var(--ifq-line));\r\n    transform: translateY(-2px);\r\n  }\r\n\r\n  .iptvit-faq__cta:hover,\r\n  .iptvit-faq__secondary:hover { transform: translateY(-2px); }\r\n  .iptvit-faq__secondary:hover { border-color: rgba(255,255,255,.62); }\r\n}\r\n\r\n@media (max-width: 64rem) {\r\n  .iptvit-faq__layout { grid-template-columns: 1fr; }\r\n  .iptvit-faq__intro { position: static; }\r\n  .iptvit-faq__title { max-width: 15ch; }\r\n  .iptvit-faq__snapshot { max-width: 46rem; }\r\n}\r\n\r\n@media (max-width: 42rem) {\r\n  .iptvit-faq { padding: 4.3rem 0; }\r\n  .iptvit-faq__title { font-size: clamp(2.2rem,12vw,3.35rem); }\r\n  .iptvit-faq__question h4 {\r\n    gap: .7rem;\r\n    grid-template-columns: 1.9rem minmax(0,1fr) 2rem;\r\n    padding-inline: .78rem;\r\n  }\r\n  .iptvit-faq__question-index { border-radius: .62rem; height: 1.9rem; width: 1.9rem; }\r\n  .iptvit-faq__plus { height: 2rem; width: 2rem; }\r\n  .iptvit-faq__answer { padding: 1rem .9rem 1.15rem 3.38rem; }\r\n  .iptvit-faq__actions { align-items: stretch; flex-direction: column; }\r\n  .iptvit-faq__cta,\r\n  .iptvit-faq__secondary { width: 100%; }\r\n}\r\n\r\n@media (max-width: 24rem) {\r\n  .iptvit-faq__question h4 {\r\n    grid-template-columns: minmax(0,1fr) 2rem;\r\n    min-height: 4.6rem;\r\n  }\r\n  .iptvit-faq__question-index { display: none; }\r\n  .iptvit-faq__answer { padding-left: .9rem; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .iptvit-faq *,\r\n  .iptvit-faq *::before,\r\n  .iptvit-faq *::after {\r\n    animation-duration: .01ms !important;\r\n    animation-iteration-count: 1 !important;\r\n    scroll-behavior: auto !important;\r\n    transition-duration: .01ms !important;\r\n  }\r\n  .iptvit-faq .iptvit-faq__reveal { opacity: 1 !important; transform: none !important; }\r\n}\r\n\r\n@media (forced-colors: active) {\r\n  .iptvit-faq__title span {\r\n    -webkit-text-fill-color: CanvasText;\r\n    background: none;\r\n    color: CanvasText;\r\n  }\r\n  .iptvit-faq__snapshot,\r\n  .iptvit-faq__item,\r\n  .iptvit-faq__question-index,\r\n  .iptvit-faq__plus,\r\n  .iptvit-faq__cta,\r\n  .iptvit-faq__secondary { border: 1px solid CanvasText; }\r\n}\r\n<\/style>\r\n\r\n<section\r\n  id=\"domande-frequenti\"\r\n  class=\"iptvit-faq\"\r\n  data-iptvit-faq\r\n  data-iptvit-anchor=\"domande-frequenti\"\r\n  aria-labelledby=\"iptvit-faq-title\"\r\n>\r\n  <div class=\"iptvit-faq__inner\">\r\n    <div class=\"iptvit-faq__layout\">\r\n      <header class=\"iptvit-faq__intro iptvit-faq__reveal\">\r\n        <span class=\"iptvit-faq__eyebrow\">Domande frequenti<\/span>\r\n        <h2 id=\"iptvit-faq-title\" class=\"iptvit-faq__title\">\r\n          IPTV Italia: <span>come trovare un\u2019IPTV stabile<\/span>\r\n        <\/h2>\r\n        <p class=\"iptvit-faq__lead\">\r\n          Le risposte essenziali su funzionamento, dispositivi, qualit\u00e0, piani Standard e Premium, multi-schermo e assistenza. Ogni risposta distingue ci\u00f2 che dipende dal servizio da ci\u00f2 che dipende dalla rete, dall\u2019applicazione o dal dispositivo, per aiutarti a scegliere in modo consapevole.\r\n        <\/p>\r\n\r\n        <aside class=\"iptvit-faq__snapshot\" aria-label=\"Caratteristiche principali da verificare\">\r\n          <span class=\"iptvit-faq__snapshot-kicker\">Il servizio in breve<\/span>\r\n          <strong>Una formula configurabile intorno alle tue esigenze.<\/strong>\r\n          <ul class=\"iptvit-faq__proofs\">\r\n            <li>\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m5 12 4 4L19 6\"><\/path><\/svg>\r\n              <span>Gamme Standard e Premium<\/span>\r\n            <\/li>\r\n            <li>\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><rect x=\"3\" y=\"5\" width=\"13\" height=\"10\" rx=\"2\"><\/rect><path d=\"M7 19h5M9.5 15v4\"><\/path><rect x=\"17\" y=\"8\" width=\"4\" height=\"9\" rx=\"1\"><\/rect><\/svg>\r\n              <span>Da 1 a 4 schermi simultanei<\/span>\r\n            <\/li>\r\n            <li>\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"><\/rect><path d=\"M7 3v4M17 3v4M3 10h18\"><\/path><\/svg>\r\n              <span>Durate di 3, 6, 12 o 24 mesi<\/span>\r\n            <\/li>\r\n            <li>\r\n              <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 12a8 8 0 0 1 16 0v1\"><\/path><path d=\"M4 12h2a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-6ZM20 12h-2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1a1 1 0 0 0 1-1v-6Z\"><\/path><\/svg>\r\n              <span>Assistenza 7 giorni su 7<\/span>\r\n            <\/li>\r\n          <\/ul>\r\n          <p class=\"iptvit-faq__snapshot-note\">\r\n            Qualit\u00e0, funzioni e catalogo possono variare in base alla formula, all\u2019applicazione e al dispositivo utilizzato.\r\n          <\/p>\r\n          <div class=\"iptvit-faq__actions\">\r\n            <a class=\"iptvit-faq__cta\" href=\"#offerte\">\r\n              Confronta le offerte\r\n              <svg viewBox=\"0 0 20 20\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 10h12M11 5l5 5-5 5\"><\/path><\/svg>\r\n            <\/a>\r\n            <a class=\"iptvit-faq__secondary\" href=\"https:\/\/wa.me\/447916697381?text=Ciao%2C%20vorrei%20un%20consiglio%20sull%27abbonamento%20IPTV%20Italia.\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chiedi un consiglio su WhatsApp, si apre in una nuova scheda\">\r\n              Chiedi consiglio\r\n            <\/a>\r\n          <\/div>\r\n        <\/aside>\r\n      <\/header>\r\n\r\n      <div class=\"iptvit-faq__groups\">\r\n        <section class=\"iptvit-faq__group iptvit-faq__reveal\" aria-label=\"Servizio IPTV affidabile e trasparente\">\r\n          <header class=\"iptvit-faq__group-head\">\r\n            <span class=\"iptvit-faq__group-number\">01<\/span>\r\n            <h3>Servizio IPTV affidabile e trasparente<\/h3>\r\n          <\/header>\r\n          <div class=\"iptvit-faq__list\">\r\n            <details class=\"iptvit-faq__item\" data-faq-item open>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">01<\/span>\r\n                  <span>Che cos\u2019\u00e8 l\u2019IPTV e come funziona?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>L\u2019IPTV, o Internet Protocol Television, distribuisce canali televisivi e contenuti video attraverso una connessione Internet. Per utilizzarla servono una rete adeguata, un dispositivo compatibile e un\u2019applicazione in cui configurare le credenziali ricevute. A differenza dell\u2019antenna o del satellite, la riproduzione avviene online e la qualit\u00e0 dipende anche dalla rete domestica.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">02<\/span>\r\n                  <span>Cosa comprende un abbonamento IPTV Italia?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Un abbonamento IPTV Italia pu\u00f2 riunire canali live, sport, film, serie, contenuti Kids &amp; Family e documentari, oltre a funzioni come guida TV, replay o catch-up. La disponibilit\u00e0 effettiva dipende dalla gamma scelta, dagli aggiornamenti del catalogo e dall\u2019applicazione utilizzata. Prima dell\u2019ordine, consulta sempre la <a href=\"\/lista-canali\/\">selezione dei contenuti disponibile<\/a>.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">03<\/span>\r\n                  <span>L\u2019applicazione IPTV \u00e8 inclusa nell\u2019abbonamento?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>L\u2019applicazione e l\u2019abbonamento sono due elementi distinti: l\u2019app riproduce e organizza i contenuti, mentre l\u2019abbonamento fornisce le credenziali di accesso. Alcune offerte possono includere una licenza player o un vantaggio dedicato quando \u00e8 indicato espressamente nella relativa scheda. Negli altri casi, disponibilit\u00e0 e costo dell\u2019app dipendono dal lettore scelto.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">04<\/span>\r\n                  <span>L\u2019IPTV \u00e8 legale in Italia?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>L\u2019IPTV \u00e8 una tecnologia di distribuzione via Internet e non \u00e8 illegale in s\u00e9. La legalit\u00e0 del singolo servizio dipende dai diritti e dalle autorizzazioni relativi ai contenuti distribuiti. Prima dell\u2019acquisto verifica identit\u00e0 del fornitore, condizioni del servizio e titolarit\u00e0 dell\u2019offerta; consulta i <a href=\"\/termini-e-condizioni\/\">Termini e condizioni<\/a> e le informazioni ufficiali dell\u2019<a href=\"https:\/\/www.agcom.it\/competenze\/piattaforme-online\/antipirateria-e-piracy-shield\" target=\"_blank\" rel=\"noopener noreferrer\">AGCOM sulla tutela del diritto d\u2019autore<\/a>.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <section class=\"iptvit-faq__group iptvit-faq__reveal\" aria-label=\"Dispositivi e formule\">\r\n          <header class=\"iptvit-faq__group-head\">\r\n            <span class=\"iptvit-faq__group-number\">02<\/span>\r\n            <h3>Dispositivi e formule<\/h3>\r\n          <\/header>\r\n          <div class=\"iptvit-faq__list\">\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">05<\/span>\r\n                  <span>Su quali dispositivi posso utilizzare IPTV Italia?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Il servizio pu\u00f2 essere configurato su Smart TV, Android TV, TV Box, Fire TV Stick, smartphone, tablet e computer quando il modello, il sistema operativo e l\u2019applicazione sono compatibili. La compatibilit\u00e0 esatta non \u00e8 identica per tutti i dispositivi: prima dell\u2019attivazione, verifica il tuo modello nella pagina dedicata ai <a href=\"\/compatibilita-iptv\/#dispositivi-compatibili\">dispositivi compatibili<\/a>.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">06<\/span>\r\n                  <span>Come si configura IPTV su Smart TV?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Per configurare IPTV su Smart TV occorre installare un lettore compatibile, inserire le credenziali ricevute e verificare la riproduzione. Il procedimento cambia in base alla marca, al sistema operativo e all\u2019app scelta; non esiste quindi una procedura universale. Dopo la conferma puoi seguire le <a href=\"\/guide-iptv\/\">guide di configurazione<\/a> o chiedere assistenza.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">07<\/span>\r\n                  <span>Qual \u00e8 la differenza tra Standard e Premium?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Standard \u00e8 pensato per l\u2019utilizzo quotidiano e comprende il nucleo principale del servizio; Premium propone un catalogo ampliato, aggiornamenti prioritari e prestazioni ottimizzate negli orari pi\u00f9 richiesti. Entrambe le gamme sono disponibili per uno o pi\u00f9 schermi. La scelta migliore dipende dal livello di servizio desiderato, non soltanto dal prezzo.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">08<\/span>\r\n                  <span>Posso usare l\u2019abbonamento su pi\u00f9 schermi contemporaneamente?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>S\u00ec, scegliendo una formula multi-schermo puoi utilizzare da 2 a 4 connessioni nello stesso momento, anche per guardare contenuti differenti. Installare l\u2019app su pi\u00f9 dispositivi non aumenta per\u00f2 le visioni simultanee: un piano da 1 schermo consente una sola riproduzione alla volta. Scegli quindi il numero di connessioni in base all\u2019uso reale della tua casa.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <section class=\"iptvit-faq__group iptvit-faq__reveal\" aria-label=\"Prezzi, attivazione e qualit\u00e0\">\r\n          <header class=\"iptvit-faq__group-head\">\r\n            <span class=\"iptvit-faq__group-number\">03<\/span>\r\n            <h3>Prezzi, attivazione e qualit\u00e0<\/h3>\r\n          <\/header>\r\n          <div class=\"iptvit-faq__list\">\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">09<\/span>\r\n                  <span>Quanto costa un abbonamento IPTV e quali durate posso scegliere?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Il prezzo totale dipende dalla gamma Standard o Premium, dal numero di schermi e dalla durata scelta. Sono previste formule di 3, 6, 12 e 24 mesi, cos\u00ec puoi iniziare con maggiore flessibilit\u00e0 o ridurre la frequenza dei rinnovi. I prezzi aggiornati e gli eventuali vantaggi inclusi sono mostrati direttamente nella sezione <a href=\"#offerte\">Abbonamenti IPTV Italia<\/a>.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">10<\/span>\r\n                  <span>Come avvengono l\u2019attivazione e la configurazione?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Scegli prima gamma, durata e numero di schermi, poi indica il dispositivo e l\u2019applicazione che desideri utilizzare. Dopo la conferma su WhatsApp ricevi le credenziali e le indicazioni necessarie per configurare il lettore. L\u2019attivazione viene avviata dopo la validazione dell\u2019ordine; se hai una necessit\u00e0 precisa, chiedi il tempo stimato prima di confermare.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">11<\/span>\r\n                  <span>Come riconoscere un servizio IPTV affidabile e scegliere un\u2019IPTV stabile?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Un servizio IPTV affidabile si valuta attraverso condizioni trasparenti, assistenza accessibile, compatibilit\u00e0 verificabile e informazioni chiare sui limiti tecnici. Per ottenere un\u2019IPTV stabile, la qualit\u00e0 HD, FHD o 4K dipende dal formato disponibile, dall\u2019applicazione, dal dispositivo e dalla connessione. Nessun servizio serio dovrebbe promettere qualit\u00e0 massima o assenza totale di interruzioni in ogni situazione.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n\r\n            <details class=\"iptvit-faq__item\" data-faq-item>\r\n              <summary class=\"iptvit-faq__question\">\r\n                <h4>\r\n                  <span class=\"iptvit-faq__question-index\">12<\/span>\r\n                  <span>Cosa posso fare se lo streaming va in buffering?<\/span>\r\n                  <span class=\"iptvit-faq__plus\" aria-hidden=\"true\"><\/span>\r\n                <\/h4>\r\n              <\/summary>\r\n              <div class=\"iptvit-faq__answer\">\r\n                <p>Se lo streaming va in buffering, controlla prima la rete, riavvia router, dispositivo e applicazione e, quando possibile, preferisci un collegamento Ethernet o Wi-Fi stabile. Riduci le attivit\u00e0 Internet simultanee e prova temporaneamente una qualit\u00e0 inferiore. Se il problema continua, l\u2019assistenza 7\/7 pu\u00f2 verificare con te dispositivo, app, orario e contenuto interessato.<\/p>\r\n              <\/div>\r\n            <\/details>\r\n          <\/div>\r\n        <\/section>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n\r\n<script>\r\n(() => {\r\n  \"use strict\";\r\n\r\n  const selector = \"[data-iptvit-faq]\";\r\n\r\n  function init(root) {\r\n    const scope = root && root.querySelectorAll ? root : document;\r\n\r\n    scope.querySelectorAll(selector).forEach((section, index) => {\r\n      if (section.dataset.iptvitFaqReady === \"1\") return;\r\n      section.dataset.iptvitFaqReady = \"1\";\r\n\r\n      const baseAnchor = section.getAttribute(\"data-iptvit-anchor\") || \"domande-frequenti\";\r\n      const existingAnchor = document.getElementById(baseAnchor);\r\n      if (!section.id || (existingAnchor && existingAnchor !== section)) {\r\n        section.id = `${baseAnchor}-${Date.now()}-${index}`;\r\n      }\r\n\r\n      const title = section.querySelector(\".iptvit-faq__title\");\r\n      if (title) {\r\n        title.id = `${section.id}-title`;\r\n        section.setAttribute(\"aria-labelledby\", title.id);\r\n      }\r\n\r\n      const items = Array.from(section.querySelectorAll(\"[data-faq-item]\"));\r\n      items.forEach((item) => {\r\n        item.addEventListener(\"toggle\", () => {\r\n          if (!item.open) return;\r\n          items.forEach((other) => {\r\n            if (other !== item && other.open) other.open = false;\r\n          });\r\n        });\r\n      });\r\n\r\n      const reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\r\n      if (reduceMotion || !(\"IntersectionObserver\" in window)) {\r\n        section.classList.add(\"is-visible\");\r\n        return;\r\n      }\r\n\r\n      section.classList.add(\"is-reveal-ready\");\r\n\r\n      \/\/ Rete di sicurezza: `is-reveal-ready` porta a opacity 0 l'intro e i tre\r\n      \/\/ gruppi. Se l'observer non scatta, l'intera FAQ resta invisibile.\r\n      setTimeout(() => section.classList.add(\"is-visible\"), 3000);\r\n\r\n      \/\/ threshold 0 e non una percentuale: la sezione \u00e8 pi\u00f9 alta di molti\r\n      \/\/ schermi e il rapporto di intersezione pu\u00f2 non raggiungere la soglia.\r\n      const observer = new IntersectionObserver((entries) => {\r\n        entries.forEach((entry) => {\r\n          if (!entry.isIntersecting) return;\r\n          section.classList.add(\"is-visible\");\r\n          observer.disconnect();\r\n        });\r\n      }, { threshold: 0, rootMargin: \"0px 0px -4% 0px\" });\r\n      observer.observe(section);\r\n    });\r\n  }\r\n\r\n  init(document);\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", () => init(document), { once: true });\r\n  }\r\n  if (window.elementorFrontend && window.elementorFrontend.hooks) {\r\n    window.elementorFrontend.hooks.addAction(\"frontend\/element_ready\/html.default\", ($scope) => {\r\n      init($scope && $scope[0] ? $scope[0] : document);\r\n    });\r\n  }\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Streaming pensato per l\u2019Italia IPTV Italia: streaming fluido sui tuoi dispositivi Scopri un servizio IPTV Italia semplice da scegliere e configurare, con contenuti in HD, FHD e 4K, compatibilit\u00e0 multi-dispositivo e assistenza disponibile 7 giorni su 7 via WhatsApp o e-mail. Scopri gli abbonamenti Dispositivi supportati Assistenza 7\/7WhatsApp ed e-mail HD \u00b7 FHD \u00b7 4KQualit\u00e0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/elementor-full-width.php","meta":{"footnotes":""},"class_list":["post-15","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/pages\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":127,"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/pages\/15\/revisions"}],"predecessor-version":[{"id":406,"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/pages\/15\/revisions\/406"}],"wp:attachment":[{"href":"https:\/\/iptv-italia.it\/en\/wp-json\/wp\/v2\/media?parent=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}