/* ViewerFirst — base (design system ViewerFirst) */
:root{color-scheme:dark;--obsidian:#000000;--smoke:#050409;--hairline:#2a2730;--snow:#ffffff;--ash-mist:#b8b6bb;--iron-veil:#89868e;--faded-print:#999999;--eclipse-indigo:#0e0a17;--card-muted:#5f5c66;--signal-blue:#3d6a99;--glacier-beam:#71b8f2;--focus-ring:var(--glacier-beam);--focus-ring-on-card:var(--signal-blue);--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-28:28px;--spacing-32:32px;--spacing-48:48px;--spacing-56:56px;--spacing-96:96px;--page-max-width:1280px;--section-gap:64px;--card-padding:24px;--element-gap:16px;--radius-md:4.5px;--radius-lg:8px;--radius-full:100px;--font-sans:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;}
.vf-display{font-family:var(--font-sans);font-size:56px;line-height:0.8;font-weight:300;letter-spacing:0.083em;}
.vf-heading-lg{font-family:var(--font-sans);font-size:35px;line-height:1;font-weight:300;}
.vf-heading{font-family:var(--font-sans);font-size:28px;line-height:1.1;font-weight:400;}
.vf-heading-sm{font-family:var(--font-sans);font-size:24px;line-height:1.11;font-weight:300;}
.vf-plan-name{font-family:var(--font-sans);font-size:20px;line-height:1.2;font-weight:400;}
.vf-subheading{font-family:var(--font-sans);font-size:18px;line-height:1.23;font-weight:400;}
.vf-paragraph{font-family:var(--font-sans);font-size:16px;line-height:1.6;font-weight:400;}
.vf-body-lg{font-family:var(--font-sans);font-size:16px;line-height:1.2;font-weight:400;}
.vf-body{font-family:var(--font-sans);font-size:14px;line-height:1.25;font-weight:400;}
.vf-small{font-family:var(--font-sans);font-size:12px;line-height:1.35;font-weight:400;}
.vf-cta{font-family:var(--font-sans);font-size:14px;line-height:1.2;font-weight:600;letter-spacing:0.083em;}
.vf-price{font-family:var(--font-sans);font-size:28px;line-height:1.1;font-weight:700;}
.vf-eyebrow{font-family:var(--font-sans);font-size:12px;line-height:1.35;font-weight:400;letter-spacing:0.1em;}
.vf-caption{font-family:var(--font-sans);font-size:10px;line-height:1.6;font-weight:400;letter-spacing:0.83px;}
.vf-badge{font-family:var(--font-sans);font-size:10px;line-height:1.6;font-weight:600;letter-spacing:0.83px;}
.vf-eyebrow, .vf-caption, .vf-badge { text-transform: uppercase; }
.vf-stage {
  background: var(--obsidian);
  color: var(--snow);
  font-family: var(--font-sans);
  padding: var(--spacing-24) max(var(--spacing-16), env(safe-area-inset-right, 0px)) var(--spacing-24) max(var(--spacing-16), env(safe-area-inset-left, 0px));
}
.vf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-8);
  border: 1px solid transparent;
  border-radius: var(--radius-lg);
  font-family: var(--font-sans);
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, opacity .15s ease;
}
.vf-btn--primary { background: var(--signal-blue); color: var(--snow); padding: var(--spacing-12) var(--spacing-16); }
.vf-btn--primary:hover { opacity: .88; }
.vf-btn--ghost { background: transparent; color: var(--snow); border-color: var(--snow); padding: 10px var(--spacing-16); }
.vf-btn--ghost:hover { background: var(--snow); color: var(--obsidian); }
.vf-btn:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.vf-btn[disabled], .vf-btn[aria-disabled="true"] { opacity: .4; cursor: not-allowed; }
.vf-link { color: var(--snow); text-decoration: none; }
.vf-link:hover { color: var(--glacier-beam); }
.vf-link--accent { color: var(--glacier-beam); }
.vf-link:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; border-radius: 2px; }
.vf-header { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-16); padding-block: var(--spacing-20); }
.vf-wordmark { color: var(--snow); text-decoration: none; font-size: 22px; font-weight: 300; letter-spacing: .083em; white-space: nowrap; }
.vf-wordmark b { font-weight: 700; }
.vf-header__actions { display: flex; align-items: center; gap: var(--spacing-24); }
.vf-hero { position: relative; overflow: hidden; background: var(--obsidian); padding-block: var(--spacing-96); }
.vf-hero__wall {
  position: absolute; inset: -20% -10%;
  display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 6px;
  transform: perspective(1000px) rotateX(16deg) rotateZ(-4deg);
}
.vf-poster { aspect-ratio: 2 / 3; max-width: 100%; border-radius: var(--radius-lg); background: var(--hairline); object-fit: cover; width: 100%; }
.vf-hero__content { position: relative; display: grid; justify-items: center; gap: var(--spacing-16); text-align: center; }
.vf-hero__content p { margin: 0; }
.vf-section-heading { display: grid; gap: var(--spacing-12); text-align: center; padding-block: var(--section-gap); }
.vf-section-heading > * { margin: 0; text-wrap: balance; }
.vf-section-heading p { color: var(--ash-mist); }
.vf-toggle-wrap { display: inline-grid; justify-items: center; gap: var(--spacing-8); }
.vf-toggle { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: var(--spacing-4); padding: var(--spacing-4); border: 2px solid var(--hairline); border-radius: var(--radius-full); }
.vf-toggle__opt {
  border: 0; background: transparent; color: var(--snow); font-family: var(--font-sans);
  padding: var(--spacing-12) var(--spacing-24); border-radius: var(--radius-full); cursor: pointer;
}
.vf-toggle__opt[aria-pressed="true"] { background: var(--snow); color: var(--obsidian); }
.vf-toggle__opt:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
@media (max-width: 560px) { .vf-toggle__opt { padding: var(--spacing-8) var(--spacing-12); } }
.vf-tag { display: inline-block; background: var(--signal-blue); color: var(--snow); border-radius: var(--radius-md); padding: 2px var(--spacing-8); }
.vf-pricing { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--element-gap); }
@media (max-width: 960px) { .vf-pricing { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .vf-pricing { grid-template-columns: minmax(0, 1fr); } }
.vf-card {
  background: var(--snow); color: var(--eclipse-indigo); border-radius: var(--radius-md);
  padding: var(--card-padding); display: flex; flex-direction: column; gap: var(--spacing-16); min-width: 0;
}
.vf-card > * { margin: 0; }
.vf-card__top { display: flex; align-items: baseline; justify-content: space-between; gap: var(--spacing-8); }
.vf-card__flag { color: var(--signal-blue); font-weight: 600; }
.vf-card__price { display: grid; gap: var(--spacing-4); }
.vf-card__per { color: var(--card-muted); font-weight: 400; font-size: 14px; }
.vf-card__note { color: var(--card-muted); }
.vf-card__foot { margin-top: auto; display: flex; justify-content: flex-end; padding-top: var(--spacing-12); }
.vf-card .vf-btn:focus-visible, .vf-card .vf-savings:focus-visible { outline-color: var(--focus-ring-on-card); }
.vf-features { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--spacing-8); }
.vf-feature { display: flex; align-items: flex-start; gap: var(--spacing-8); }
.vf-feature svg { flex: none; width: 14px; height: 14px; margin-top: 1px; fill: none; stroke: var(--signal-blue); stroke-width: 2; }
.vf-feature--off { color: var(--card-muted); }
.vf-savings { display: inline-flex; align-items: center; gap: var(--spacing-4); color: var(--signal-blue); text-decoration: none; }
.vf-savings:hover { text-decoration: underline; text-underline-offset: 3px; }
.vf-savings svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; }
.vf-savings:focus-visible { outline: 2px solid var(--focus-ring-on-card); outline-offset: 2px; border-radius: 2px; }
.vf-tiles { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--element-gap); }
@media (max-width: 960px) { .vf-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .vf-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vf-tile {
  position: relative; height: 200px; overflow: hidden; border-radius: var(--radius-lg);
  background: var(--hairline); color: var(--snow); text-decoration: none;
  display: flex; flex-direction: column; justify-content: flex-end; gap: var(--spacing-4); padding: var(--spacing-16);
}
.vf-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vf-tile > span { position: relative; }
.vf-tile__name { font-size: 20px; font-weight: 600; line-height: 1.2; }
.vf-tile:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.vf-carousel-head { display: flex; align-items: center; justify-content: center; gap: var(--spacing-24); text-align: center; }
.vf-carousel-head__titles { display: grid; gap: var(--spacing-8); min-width: 0; }
.vf-carousel-head__titles > * { margin: 0; }
.vf-carousel-head__titles .vf-eyebrow { color: var(--ash-mist); }
.vf-arrow {
  border: 0; background: transparent; color: var(--iron-veil); cursor: pointer;
  width: 40px; height: 40px; display: grid; place-items: center; border-radius: var(--radius-full);
}
.vf-arrow:hover { color: var(--snow); }
.vf-arrow:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.vf-arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
@media (prefers-reduced-motion: reduce) { .vf-btn, .vf-hero__wall { transition: none; transform: none; } }
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--obsidian);color:var(--snow);font-family:var(--font-sans);}
h1,h2,h3,p,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
.wrap{--gutter:clamp(20px,5vw,72px);max-width:calc(var(--page-max-width) + 2 * var(--gutter));margin-inline:auto;box-sizing:border-box;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));}
.site-header{position:absolute;inset:0 0 auto;z-index:10}
.brand{display:inline-flex;align-items:center;gap:var(--spacing-12);text-decoration:none}
.brand__mark{width:32px;height:32px;border-radius:var(--radius-lg);background:var(--snow);display:grid;place-items:center;flex:none}
.brand__mark svg{width:14px;height:14px;fill:var(--obsidian)}
.menu{display:flex;align-items:center;gap:var(--spacing-24)}
.menu ul{display:flex;gap:var(--spacing-24)}
.menu .is-current{color:var(--glacier-beam)}
.menu-toggle{display:none;border:0;background:transparent;color:var(--snow);width:40px;height:40px;border-radius:var(--radius-lg);cursor:pointer;place-items:center}
.menu-toggle svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none}
.menu-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media (max-width:960px){
 .menu-toggle{display:grid}
 .menu{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:var(--spacing-16);
   background:var(--obsidian);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
   padding:var(--spacing-16) max(var(--spacing-16),env(safe-area-inset-right,0px)) var(--spacing-24) max(var(--spacing-16),env(safe-area-inset-left,0px))}
 .menu[hidden]{display:none}
 .menu ul{flex-direction:column;gap:0}
 .menu ul a{display:block;padding-block:var(--spacing-12);font-size:16px}
 .menu .vf-btn{align-self:flex-start}
 .vf-header{position:relative}
}
@media (min-width:961px){.menu[hidden]{display:flex !important}}
.vf-hero{padding-top:calc(var(--spacing-96) + 72px);padding-bottom:var(--spacing-96)}
.hero__content{position:relative;display:grid;justify-items:center;gap:var(--spacing-16);text-align:center}
.hero__content .vf-eyebrow{color:var(--ash-mist)}
.hero__title{font-size:clamp(28px,8vw,56px);line-height:.95;text-wrap:balance}
.hero__hook{font-weight:400;text-wrap:balance}
@media (max-width:760px){.vf-hero__wall{grid-template-columns:repeat(5,minmax(0,1fr));inset:-10% -15%}}
.hero__text{max-width:62ch;color:var(--ash-mist)}
.hero__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-12);margin-top:var(--spacing-8)}
.hero__note{color:var(--ash-mist)}
.how{padding-bottom:var(--section-gap)}
.how .vf-section-heading .vf-eyebrow{color:var(--ash-mist)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-48);counter-reset:step}
@media (max-width:760px){.steps{grid-template-columns:minmax(0,1fr);gap:var(--spacing-32)}}
.step{display:grid;gap:var(--spacing-12);align-content:start;padding-top:var(--spacing-24);border-top:1px solid var(--hairline);min-width:0}
.step__num{font-size:56px;line-height:.8;font-weight:100;color:var(--iron-veil)}
.step .vf-body-lg{color:var(--ash-mist);line-height:1.6}
.how__cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--spacing-24);margin-top:var(--spacing-48)}
.arrow-link{display:inline-flex;align-items:center;gap:var(--spacing-4)}
.arrow-link svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}
.how__trial{text-align:center;margin-top:var(--spacing-24);color:var(--ash-mist)}
.pricing{background:var(--smoke);padding-bottom:var(--section-gap)}
.pricing .vf-section-heading .vf-eyebrow{color:var(--ash-mist)}
.pricing__body{display:grid;justify-items:center;gap:var(--spacing-32)}
.vf-pricing{width:100%}
.vf-card__save{color:var(--signal-blue);font-weight:600}
.toggle-hint{color:var(--ash-mist)}
@media (max-width:560px){.opt-word{display:none}.vf-toggle__opt{min-width:56px;padding:var(--spacing-12) var(--spacing-16)}}
.pay{display:grid;justify-items:center;gap:var(--spacing-12);margin-top:var(--spacing-8)}
.pay__title{display:inline-flex;align-items:center;gap:var(--spacing-8);color:var(--ash-mist)}
.pay__title svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5}
.pay__list{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-8)}
.pay__badge{width:60px;height:38px;overflow:hidden;display:grid;place-items:center;background:var(--snow);border-radius:var(--radius-md)}
.pay__badge svg{display:block;width:34px;height:34px}
.pricing__fine{margin-top:calc(var(--spacing-16) * -1);color:var(--faded-print);text-align:center}
.pricing__trial{color:var(--ash-mist);text-align:center;margin-top:calc(var(--spacing-16) * -1)}
.sports{padding-bottom:var(--section-gap)}
.sports .vf-section-heading .vf-eyebrow{color:var(--ash-mist)}
.vf-tile .vf-caption{color:var(--ash-mist)}
.vf-tile--media{height:auto;padding:0;gap:0;justify-content:flex-start;background:var(--smoke);border:1px solid var(--hairline)}
.vf-tile--media img{position:static;display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.vf-tile--media .vf-caption{padding:var(--spacing-12) var(--spacing-12) 0}
.vf-tile--media .vf-tile__name{padding:var(--spacing-4) var(--spacing-12) var(--spacing-12);font-size:18px}
.leagues{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-8) var(--spacing-24);margin-top:var(--spacing-48);color:var(--ash-mist);font-size:14px;letter-spacing:.083em;text-transform:uppercase}
.leagues__more{color:var(--glacier-beam);text-transform:none;letter-spacing:0}
.cats{padding-bottom:var(--section-gap)}
.cats .vf-section-heading .vf-eyebrow{color:var(--ash-mist)}
.carousel{display:grid;gap:var(--spacing-24);margin-top:var(--section-gap)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 5 * var(--spacing-12)) / 6);gap:var(--spacing-12);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:var(--spacing-4)}
.rail::-webkit-scrollbar{display:none}
@media (max-width:760px){.rail{grid-auto-columns:calc((100% - 2 * var(--spacing-12)) / 2.6)}}
.rail li{scroll-snap-align:start;min-width:0}
.rail__item{display:block;border-radius:var(--radius-lg)}
.rail__item:focus-visible,.rail:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.rail .vf-poster{display:block}
@media (prefers-reduced-motion:reduce){.rail{scroll-behavior:auto}}
.devices{padding-bottom:var(--section-gap)}
.devices .vf-section-heading .vf-eyebrow{color:var(--ash-mist)}
.devices__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--hairline)}
@media (max-width:960px){.devices__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.devices__grid li{border-bottom:1px solid var(--hairline);min-width:0}
.device{display:flex;align-items:center;gap:var(--spacing-16);padding:var(--spacing-24) var(--spacing-16);color:var(--snow);text-decoration:none;height:100%}
.device:hover .device__name{color:var(--glacier-beam)}
.device:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;border-radius:var(--radius-lg)}
.device__icon{flex:none;width:32px;height:32px;fill:none;stroke:var(--snow);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.device__icon circle{fill:var(--snow);stroke:none}
.device__text{display:grid;gap:var(--spacing-4);min-width:0}
.device__meta{color:var(--ash-mist)}
@media (max-width:560px){.device{flex-direction:column;align-items:flex-start;gap:var(--spacing-12);padding:var(--spacing-20) var(--spacing-12)}}
.partner{background:var(--smoke);border-top:1px solid var(--hairline)}
.partner__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-32);padding-block:var(--spacing-48)}
.partner__text{display:grid;gap:var(--spacing-12);max-width:62ch;min-width:0}
.partner__text .vf-eyebrow,.partner__text .vf-body-lg{color:var(--ash-mist)}
.partner__text .vf-body-lg{line-height:1.6}
.partner .vf-btn{flex:none}
@media (max-width:760px){.partner__inner{flex-direction:column;align-items:flex-start}}
.faq{padding-bottom:var(--section-gap)}
.faq .vf-section-heading .vf-eyebrow{color:var(--ash-mist)}
.faq__list{max-width:800px;margin-inline:auto;border-top:1px solid var(--hairline)}
.faq__item{border-bottom:1px solid var(--hairline)}
.faq__item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-16);padding-block:var(--spacing-20);cursor:pointer;color:var(--snow)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover{color:var(--glacier-beam)}
.faq__item summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:2px}
.faq__icon{flex:none;width:20px;height:20px;fill:none;stroke:var(--iron-veil);stroke-width:2;transition:transform .2s ease}
.faq__item[open] .faq__icon{transform:rotate(180deg)}
.faq__item p{color:var(--ash-mist);max-width:65ch;padding-bottom:var(--spacing-24)}
.faq__more{text-align:center;color:var(--ash-mist);margin-top:var(--spacing-32)}
@media (prefers-reduced-motion:reduce){.faq__icon{transition:none}}
.foot{padding-block:var(--spacing-56) var(--spacing-32);border-top:1px solid var(--hairline)}
.foot__top{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:var(--spacing-32)}
@media (max-width:760px){.foot__top{grid-template-columns:repeat(2,minmax(0,1fr))}.foot__brand{grid-column:1/-1}}
.foot__brand{display:grid;gap:var(--spacing-16);align-content:start;max-width:36ch}
.foot__brand .vf-body{color:var(--ash-mist);line-height:1.6}
.foot__col{display:grid;gap:var(--spacing-16);align-content:start;min-width:0}
.foot__col .vf-eyebrow{color:var(--iron-veil)}
.foot__col ul{display:grid;gap:var(--spacing-12)}
.foot__col .vf-link{color:var(--ash-mist)}
.foot__col .vf-link:hover{color:var(--glacier-beam)}
.foot__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-16);margin-top:var(--spacing-48);padding-top:var(--spacing-24);border-top:1px solid var(--hairline);color:var(--faded-print)}
.pay__list--sm{gap:var(--spacing-4);justify-content:flex-start}
.pay__list--sm .pay__badge{width:44px;height:28px}
.pay__list--sm .pay__badge svg{width:26px;height:26px}
.brand__logo{display:block;color:var(--snow);height:50px;width:auto;margin-block:-7px}
.foot__brand .brand__logo{height:46px}
@media (max-width:560px){.brand__logo{height:42px}}
.foot__top{grid-template-columns:1.6fr repeat(4,minmax(0,1fr)) !important}
@media (max-width:960px){.foot__top{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
.foot__col .vf-link{word-break:break-word}
@media (max-width:560px){
 .pay__list{flex-wrap:nowrap;gap:4px;justify-content:center;width:100%}
 .pay__badge{width:auto;flex:1 1 0;max-width:52px;height:32px}
 .pay__badge svg{width:26px;height:26px}
}
.chooser{position:fixed;z-index:80;width:min(300px,calc(100vw - 32px));background:var(--smoke);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--spacing-12);display:grid;gap:var(--spacing-4)}
.chooser[hidden]{display:none}
.chooser__title{color:var(--ash-mist);padding:var(--spacing-4) var(--spacing-12) var(--spacing-8)}
.chooser__item{display:flex;align-items:center;gap:var(--spacing-12);padding:var(--spacing-12);border-radius:var(--radius-lg);color:var(--snow);text-decoration:none}
.chooser__item[hidden]{display:none}
.chooser__item:hover,.chooser__item:focus-visible{background:var(--hairline);outline:none}
.chooser__item:focus-visible{box-shadow:inset 0 0 0 2px var(--focus-ring)}
.chooser__item svg{width:22px;height:22px;flex:none;color:var(--glacier-beam)}
.chooser__item span{display:grid;gap:2px}
.chooser__item b{font-size:15px;font-weight:600}
.chooser__item small{font-size:13px;color:var(--ash-mist)}
.fab{position:fixed;z-index:70;right:max(20px,calc(env(safe-area-inset-right,0px) + 20px));bottom:max(20px,calc(env(safe-area-inset-bottom,0px) + 20px));display:inline-flex;align-items:center;gap:var(--spacing-8);height:52px;padding:0 var(--spacing-20) 0 var(--spacing-16);border:0;border-radius:var(--radius-full);background:var(--signal-blue);color:var(--snow);font:600 14px/1 var(--font-sans);letter-spacing:.083em;cursor:pointer}
.fab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.fab:hover{opacity:.9}
.fab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
@media (max-width:560px){.vf-footer,footer{padding-bottom:96px}.fab{width:56px;height:56px;padding:0;justify-content:center}.fab__label{display:none}}
/* En-tête sur petit ordinateur : liens du menu sur une ligne, toutes langues */
.menu ul a{white-space:nowrap}
@media (min-width:961px) and (max-width:1199px){.menu,.menu ul{gap:14px}.menu ul a{font-size:13px}.vf-header .vf-btn{padding-inline:14px}}
@media (min-width:961px) and (max-width:1060px){.menu,.menu ul{gap:10px}.menu ul a{font-size:12.5px}.vf-header .brand svg{max-width:150px}}
/* Avantages dans les cartes de prix ; sur téléphone, une seule liste sous les cartes */
.vf-card__feats{padding-top:var(--spacing-16);border-top:1px solid #e6e5e8;gap:10px}
.vf-card__feats .vf-feature{color:var(--eclipse-indigo);line-height:1.35}
.vf-features--shared{display:none}
@media (max-width:560px){
 .vf-card__feats{display:none}
 .vf-features--shared{display:grid;gap:10px;margin:var(--spacing-24) auto 0;max-width:420px}
 .vf-features--shared .vf-feature{color:var(--snow)}
 .vf-features--shared .vf-feature svg{stroke:var(--glacier-beam)}
}
.vf-toggle__opt .opt-word{margin-left:.3em}
/* Appareils : logos officiels en blanc */
.device__logos{display:flex;align-items:center;justify-content:center;gap:var(--spacing-16);height:48px;flex:none}
.device__logos img{display:block;width:auto;max-width:120px;opacity:.92;transition:opacity .15s}
.device:hover .device__logos img{opacity:1}
.devices .device{flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-16);padding:var(--spacing-32) var(--spacing-12)}
.devices .device__text{display:grid;gap:2px;justify-items:center}
.devices .device__meta{color:var(--ash-mist)}
.devices__grid li:not(:nth-child(4n+1)){border-left:1px solid var(--hairline)}
@media (max-width:960px){.devices__grid li:not(:nth-child(4n+1)){border-left:0}.devices__grid li:nth-child(2n){border-left:1px solid var(--hairline)}}
@media (max-width:560px){.devices .device{align-items:center;padding:var(--spacing-24) var(--spacing-8)}.device__logos{height:40px;gap:var(--spacing-12)}.device__logos img{max-width:96px}}
.pay__badge--img img{display:block;width:auto;height:20px;max-width:80%}.pay__list--sm .pay__badge--img img{height:15px;max-width:32px}
/* Appareils : logos seuls */
.devices__grid--logos .device{justify-content:center;align-items:center;min-height:132px;padding:var(--spacing-24) var(--spacing-12)}
.devices__grid--logos .device img{display:block;width:auto;max-width:150px;opacity:.85;transition:opacity .15s,transform .15s}
.devices__grid--logos .device:hover img,.devices__grid--logos .device:focus-visible img{opacity:1;transform:scale(1.04)}
@media (max-width:560px){.devices__grid--logos .device{min-height:104px}.devices__grid--logos .device img{max-width:120px;transform:scale(.85)}.devices__grid--logos .device:hover img{transform:scale(.88)}}
.vrail__note{color:var(--ash-mist);margin-top:var(--spacing-8);max-width:52ch;margin-inline:auto}
.vrail__upd{display:inline-flex;align-items:center;gap:6px;margin-left:6px;color:var(--snow);white-space:nowrap}
.vrail__upd .live__dot{width:7px;height:7px;border-radius:50%;background:var(--glacier-beam)}
.vrail__upd{display:flex;justify-content:center;margin:var(--spacing-8) 0 0}
/* Accueil plus court : appareils sur une seule rangée (glisser sur téléphone) */
.devices__row{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-block:1px solid var(--hairline)}
.devices__row::-webkit-scrollbar{display:none}
.devices__row li{flex:1 0 140px;scroll-snap-align:start;border-bottom:0;border-left:0!important}
.devices__row li+li{border-left:1px solid var(--hairline)!important}
.devices__row .device{min-height:104px}
.devices__row .device img{max-width:110px;transform:scale(.8)}
.devices__row .device:hover img{transform:scale(.84)}
@media (max-width:560px){.devices__row li{flex-basis:38%}.devices__row .device{min-height:88px}.devices__row .device img{transform:scale(.7)}}
/* Partenaires : bandeau visible (détails sur la page Partenaires) */
.aff--slim{padding-block:var(--spacing-48)!important;border-top:0}
.aff-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--spacing-24);padding:var(--spacing-24) var(--spacing-32);border:1px solid var(--hairline);border-radius:var(--radius-lg);background:linear-gradient(120deg,rgba(61,106,153,.22),rgba(61,106,153,.04) 60%)}
.aff-band__ic{width:44px;height:44px;fill:none;stroke:var(--glacier-beam);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.aff-band__txt{display:grid;gap:4px;margin:0}
.aff-band__txt>*{margin:0}
.aff-band__txt .vf-eyebrow{color:var(--glacier-beam)}
.aff-band__txt .vf-body{color:var(--ash-mist)}
@media (max-width:760px){.aff-band{grid-template-columns:minmax(0,1fr);justify-items:start;padding:var(--spacing-24)}.aff-band .vf-btn{width:100%;justify-content:center}}
/* Téléphone : sports en rangée à faire glisser, chiffres films/séries côte à côte */
@media (max-width:560px){
 .sports .vf-tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1 * var(--gutter,20px));padding-inline:var(--gutter,20px);scroll-padding-inline:var(--gutter,20px)}
 .sports .vf-tiles::-webkit-scrollbar{display:none}
 .sports .vf-tile{flex:0 0 42%;scroll-snap-align:start}
 .vod .stats{grid-auto-flow:column;grid-template-columns:none}
 .vod .stat+.stat{border-top:0;border-left:1px solid var(--hairline)}
 .vod .stat__num{font-size:32px}
}
/* v1.3.4 — audit de l'accueil */
/* En-tête : texte centré verticalement face à la télévision (ordinateur) */
@media (min-width:961px){
 .hero2--screens{display:flex;align-items:center;min-height:min(720px,100vh);padding-bottom:var(--spacing-64)}
 .hero2--screens .hero2__inner{width:100%}
}
/* Menu téléphone : panneau plein écran, grandes zones à toucher, bouton principal pleine largeur */
@media (max-width:960px){
 .menu{position:fixed;top:var(--vf-header-h,72px);bottom:0;overflow-y:auto;overscroll-behavior:contain;gap:var(--spacing-24);padding-top:var(--spacing-8);padding-bottom:calc(var(--spacing-32) + env(safe-area-inset-bottom,0px));z-index:60}
 .menu ul a{font-size:20px;padding-block:var(--spacing-16);border-bottom:1px solid var(--hairline)}
 .menu .menu__cta{align-self:stretch;justify-content:center;background:var(--signal-blue);border-color:var(--signal-blue);color:var(--snow)}
 html.menu-open,html.menu-open body{overflow:hidden}
}
/* Avis : résumé sur une ou deux lignes propres */
:root .rv-sum{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px}
:root .rv-sum-n{color:var(--ash-mist)}
/* Pied de page : contact lisible sur téléphone */
:root .foot__col a[href^="mailto:"]{overflow-wrap:anywhere}
:root .foot__col a span[translate="no"]{white-space:nowrap}
@media (max-width:760px){:root .foot__col[aria-label="Contact"]{grid-column:1/-1}:root .foot__bottom{gap:var(--spacing-16)}}
/* Pourquoi ViewerFirst : plus compact sur téléphone (les tarifs arrivent plus vite) */
@media (max-width:560px){
 :root .why__grid{gap:var(--spacing-16) var(--spacing-16)}
 :root .why__item{padding-top:var(--spacing-16)}
 :root .why__item .vf-subheading{font-size:17px;line-height:1.3}
 :root .why__item .vf-body{font-size:14px;line-height:1.5}
 :root .why__ic{width:24px;height:24px}
}
html.menu-open .fab{display:none}
/* ===================== Mode clair (bouton soleil / lune) ===================== */
.theme-toggle{display:inline-grid;grid-auto-flow:column;align-items:center;gap:var(--spacing-8);height:36px;min-width:36px;padding:0 8px;border:0;border-radius:var(--radius-full);background:transparent;color:var(--snow);cursor:pointer;font:400 14px/1 var(--font-sans)}
.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle:hover{color:var(--glacier-beam)}
.theme-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.theme-toggle__moon,.theme-toggle__txt{display:none}
html[data-theme="light"] .theme-toggle__sun{display:none}
html[data-theme="light"] .theme-toggle__moon{display:block}
@media (max-width:960px){.theme-toggle{justify-self:start;align-self:flex-start;padding:0;gap:var(--spacing-12)}.theme-toggle__txt{display:inline;font-size:16px}}
html[data-theme="light"]{color-scheme:light;--obsidian:#ffffff;--smoke:#f5f6f8;--hairline:#e2e5ea;--snow:#0b0c10;--ash-mist:#454952;--iron-veil:#5f636b;--faded-print:#6b6f77;--eclipse-indigo:#f1f4f8;--card-muted:#6b6f77;--glacier-beam:#2b5d92;--focus-ring:#2b5d92}
html[data-theme="light"] body{background:#ffffff;color:#0b0c10}
html[data-theme="light"] .vf-btn--primary,html[data-theme="light"] .vf-btn--primary:hover{color:#ffffff}
/* Cartes de prix blanches : contour et ombre douce pour qu'elles se détachent */
html[data-theme="light"] .vf-card{--eclipse-indigo:#0b0c10;color:#0b0c10;background:#ffffff;box-shadow:0 0 0 1px #e2e5ea,0 8px 24px rgba(16,24,40,.06)}
html[data-theme="light"] .vf-card__feats{border-top-color:#e2e5ea}
/* Logos blancs (appareils, paiement) : version sombre */
html[data-theme="light"] .devices__grid--logos img{filter:invert(1) brightness(.15)}
html[data-theme="light"] .pay__badge{background:#ffffff;box-shadow:inset 0 0 0 1px #e2e5ea}
/* Bouton de contact flottant et choix du canal */
html[data-theme="light"] .fab{box-shadow:0 6px 18px rgba(16,24,40,.18)}
/* Bandeau partenaires */
html[data-theme="light"] .aff-band{background:linear-gradient(120deg,rgba(43,93,146,.10),rgba(43,93,146,.02) 60%)}
/* Mode clair : composants « carte blanche » du mode sombre restent blancs, avec contour */
html[data-theme="light"] :is(.ch--main,.form-card,.art-cta,.pick){--snow:#ffffff;--eclipse-indigo:#0b0c10;--card-muted:#6b6f77;background:#ffffff;color:#0b0c10;box-shadow:0 0 0 1px #e2e5ea,0 8px 24px rgba(16,24,40,.06)}
html[data-theme="light"] :is(.ch--main,.form-card,.art-cta,.pick) .vf-btn--primary{color:#ffffff}
html[data-theme="light"] .mx__best>*,html[data-theme="light"] .mx__best th[scope="row"],html[data-theme="light"] .cmp tbody .cmp__vf{background:#eef4fb}
html[data-theme="light"] .prose{color:#2a2d33}
html[data-theme="light"] :is(.rv-err,.vf-notice--error){background:#fdf1f0;border-color:#f1c4c0;color:#7a1c15}
html[data-theme="light"] .ch-error{color:#b3261e}
html[data-theme="light"] .ch-flag{box-shadow:0 0 0 1px rgba(0,0,0,.08)}
html[data-theme="light"] .hwall .hposter{box-shadow:0 6px 18px rgba(16,24,40,.12)}
html[data-theme="light"] .menu .menu__cta{color:#ffffff}
/* v1.4.1 — défauts relevés sur le site en ligne */
.fab,.fab:hover{color:#ffffff}
@media (max-width:1023px){.fab{width:56px;height:56px;padding:0;justify-content:center}.fab__label{display:none}}
html[data-theme="light"] .hscreens::before{display:none}
html[data-theme="light"] .hs-tv>.hs-screen{box-shadow:0 18px 40px rgba(16,24,40,.18),0 0 0 1px rgba(0,0,0,.06)}
html[data-theme="light"] .hs-tv__stand{background:linear-gradient(#2a2c33,#15161a);box-shadow:0 10px 18px rgba(16,24,40,.15)}
html[data-theme="light"] .hs-phone>.hs-screen{box-shadow:0 14px 30px rgba(16,24,40,.22),0 0 0 1px rgba(0,0,0,.06)}
/* Appareils : tout visible sans glisser sur tablette et téléphone (2 rangées de 4) */
@media (max-width:1100px){
 .devices__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
 .devices__row li{border-left:0!important;border-bottom:1px solid var(--hairline)}
 .devices__row li:not(:nth-child(4n+1)){border-left:1px solid var(--hairline)!important}
 .devices__row li:nth-last-child(-n+4){border-bottom:0}
}
@media (max-width:560px){.devices__row .device{min-height:72px;padding:var(--spacing-16) 4px}.devices__row .device img{max-width:72px;transform:scale(.62)}}
/* Pied de page : Légal et Contact côte à côte dès 480 px */
@media (min-width:480px) and (max-width:760px){:root .foot__col[aria-label="Contact"]{grid-column:auto}}
/* v1.4.2 */
/* Boutons contour : remplissage au survol seulement avec une souris (pas d'état « collé » après un toucher) */
@media (hover:none){.vf-btn--ghost:hover{background:transparent;color:var(--snow)}}
/* Badge « Launch prices » détaché du sélecteur d'écrans */
.vf-toggle-wrap{gap:var(--spacing-12)}
/* Cartes de prix sur téléphone : prix sur une ligne, bouton pleine largeur dessous */
@media (max-width:560px){
 :root .vf-pricing .vf-card{display:flex;flex-direction:column;align-items:stretch;gap:var(--spacing-12)}
 :root .vf-pricing .vf-card__foot{padding-top:var(--spacing-4)}
 :root .vf-pricing .vf-card__foot .vf-btn{width:100%;justify-content:center}
 .vf-price{white-space:nowrap}
}
/* Titre de l'en-tête sur une seule ligne sur téléphone (taille ajustée par script) */
@media (max-width:960px){:root .hero2__title{white-space:nowrap;letter-spacing:.05em;line-height:1}}
/* v1.5.0 — typographie premium : titres plus épais, lettres serrées (même police Inter) */
:root .vf-display{font-weight:650;letter-spacing:-.025em;line-height:1.04}
:root .vf-heading-lg{font-weight:600;letter-spacing:-.02em;line-height:1.08}
:root .vf-heading{font-weight:600;letter-spacing:-.018em;line-height:1.12}
:root .vf-heading-sm{font-weight:400;letter-spacing:-.01em}
:root .vf-subheading{font-weight:500;letter-spacing:-.005em}
:root .vf-plan-name{font-weight:500;letter-spacing:-.01em}
:root .stat__num{font-weight:600;letter-spacing:-.03em}
:root .hero2__title{font-weight:650;letter-spacing:-.03em;line-height:1.02;white-space:nowrap;font-size:clamp(34px,4.2vw,66px);padding-block:0}
:root .hero2__hook{color:var(--ash-mist)}
@media (max-width:960px){:root .hero2__title{font-size:clamp(30px,8.6vw,52px);letter-spacing:-.03em}}
@media (max-width:560px){:root .hero2__hook{font-size:19px;line-height:1.3}}
/* v1.6.0 — rendu éditorial, moins « modèle » */
/* En-têtes de section alignés à gauche (titre à gauche, phrase à droite sur ordinateur) */
:root .vf-section-heading.sh-left{text-align:left;justify-items:start}
@media (min-width:961px){:root .vf-section-heading.sh-left{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end;column-gap:var(--spacing-48)}:root .vf-section-heading.sh-left>p{justify-self:end;max-width:44ch;text-align:left}}
:root .vf-section-heading.sh-left .vf-heading{font-size:clamp(26px,3vw,40px)}
:root .vf-section-heading .vf-heading{font-size:clamp(26px,3vw,40px)}
/* Pourquoi : sans icônes génériques, titres plus présents */
:root .why__ic{display:none}
:root .why__item .vf-subheading{font-size:20px;font-weight:600;letter-spacing:-.015em;margin-top:var(--spacing-8)}
@media (max-width:560px){:root .why__item .vf-subheading{font-size:17px}}
/* Étapes : numéros discrets « 01 » */
:root .step__num{font-size:13px!important;font-weight:600;letter-spacing:.08em;color:var(--glacier-beam);line-height:1.6}
/* « Launch prices » en texte simple */
.launch-note{color:var(--glacier-beam);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
/* Bulle de contact : ronde et compacte partout */
:root .fab{width:52px;height:52px;padding:0;justify-content:center}
:root .fab__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* FAQ de l'accueil : titre à gauche, questions à droite (ordinateur) */
@media (min-width:961px){
 .vf-home .faq>.wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);column-gap:var(--spacing-48);align-items:start}
 .vf-home .faq>.wrap>.vf-section-heading{grid-row:1 / span 3;position:sticky;top:96px}
 .vf-home .faq>.wrap>:not(.vf-section-heading){grid-column:2;max-width:none;margin-inline:0;width:100%}
 .vf-home .faq>.wrap>:nth-child(2){margin-top:var(--section-gap)}
}
.vf-home .faq .faq__more,.vf-home .faq .how__cta{text-align:left;justify-content:flex-start}
/* FAQ de toutes les pages : titre à gauche, questions à droite (ordinateur) */
@media (min-width:961px){
 section.faq>.wrap:has(>.sh-left),section.faq.psec:has(>.sh-left){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);column-gap:var(--spacing-48);align-items:start}
 section.faq>.wrap:has(>.sh-left)>.vf-section-heading,section.faq.psec:has(>.sh-left)>.vf-section-heading{grid-row:1 / span 3;position:sticky;top:96px}
 section.faq>.wrap:has(>.sh-left)>:not(.vf-section-heading),section.faq.psec:has(>.sh-left)>:not(.vf-section-heading){grid-column:2;max-width:none;margin-inline:0;width:100%}
 section.faq>.wrap:has(>.sh-left)>:nth-child(2),section.faq.psec:has(>.sh-left)>:nth-child(2){margin-top:var(--section-gap)}
}
/* Pied de page sur téléphone : logos de paiement compacts, langues sur une grille propre, place pour la bulle */
@media (max-width:560px){
 :root .foot .pay__list{flex-wrap:wrap;justify-content:flex-start;gap:6px;width:auto}
 :root .foot .pay__badge{flex:0 0 auto;width:42px;max-width:none;height:28px;border-radius:5px}
 :root .foot .pay__badge svg{width:22px;height:22px}
 :root .foot .pay__badge--img img{height:13px}
 :root .lang-foot{display:grid;grid-template-columns:repeat(3,max-content);gap:10px 20px}
 :root .foot{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
/* Bulle de contact : absente de l'en-tête, apparaît en descendant */
:root .fab{opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .25s ease,transform .25s ease}
:root.fab-on .fab{opacity:1;transform:none;pointer-events:auto}
@media (prefers-reduced-motion:reduce){:root .fab{transition:none}}
