/*
Theme Name: FastTVHub
Theme URI: https://fasttvhub.com/
Description: The FastTVHub landing page: seven locales with their own currency and prices, device-count pricing and an IP-based country pick. Built from the static preview; rebuild it with scripts/build-wp-theme.mjs.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fasttvhub
*/

@font-face{font-family:Lexend;src:url('assets/lexend.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:#080c14;color:#f8fafc;font-family:Lexend,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid white;outline-offset:5px}img{max-width:100%;display:block}.sr-only,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{clip-path:none;width:auto;height:auto;padding:14px;background:#1db954;z-index:99;color:black}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.2;letter-spacing:-.035em}h2{font-size:clamp(28px,3.2vw,44px);text-align:center;margin-bottom:38px}h3{font-size:21px}p{color:#c3cbd8}.hero-wrap{background:linear-gradient(180deg,rgba(3,9,19,.65),rgba(3,9,19,.24) 55%,#080c14),url('assets/hero-bernabeu.webp') center center/cover no-repeat}header{max-width:1440px;margin:auto;padding:22px 4%;display:flex;align-items:center;gap:30px;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:bold;line-height:1.1;letter-spacing:-1px;flex-shrink:0}.brand-mark{display:grid;place-items:center;background:#1db954;color:#080c14;width:45px;height:45px;border-radius:12px;font-size:22px;box-shadow:0 0 22px #1db95420}.brand-yellow{color:#1db954}.brand small{display:block;font-size:10px;letter-spacing:6px;margin-top:5px}nav{display:flex;gap:28px;font-size:14px}nav a:hover{color:#1db954}.header-tools{display:flex;align-items:center;gap:14px}select{max-width:210px;padding:12px 30px 12px 12px;border:1px solid #ffffff38;background:#101827;color:white;border-radius:8px;font-size:12px}option{background:#101827;color:white}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;border:0;border-radius:9px;background:#1db954;color:#05080d;padding:16px 24px;font-weight:700;line-height:1.3;transition:background .2s,transform .2s}.button:hover{background:#27d366;transform:translateY(-2px)}.trial{font-size:13px;white-space:nowrap}.hero{max-width:1100px;padding:82px 25px 45px;margin:auto;text-align:center}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:bold;color:#1db954}.hero h1{font-size:clamp(38px,5.6vw,72px);font-weight:800;max-width:1000px;margin:20px auto 30px}.hero-description{font-size:18px;max-width:950px;margin:0 auto 44px;color:#f2f5fb;line-height:1.6}.hero-button{font-size:20px;padding:19px 30px}.hero-devices{width:350px;height:auto;margin:30px auto 0}.section{max-width:1280px;padding:65px 35px;margin:auto}.stats{padding-top:55px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;border-top:1px solid #253043;border-bottom:1px solid #253043;padding:30px 0}.stats-grid>div+div{border-left:1px solid #253043}.stats strong{display:block;font-size:43px;color:#1db954;letter-spacing:-2px}.stats span{color:#c3cbd8}.showcases{max-width:1450px}.poster-row{display:flex;overflow-x:auto;gap:18px;padding:0 0 20px;scroll-snap-type:x mandatory;scrollbar-color:#1db954 #151e2d;scrollbar-width:thin}.poster-row img{flex:0 0 190px;width:190px;height:270px;object-fit:cover;border-radius:12px;scroll-snap-align:start;border:1px solid #ffffff1a}.showcases h2:not(:first-child){margin-top:70px}.devices{padding-top:25px}.devices img{max-width:950px;margin:auto;width:100%;height:auto}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.benefits article{text-align:center;padding:22px 16px}.benefits p,.guides p{font-size:14px;margin-bottom:0}.feature-icon{color:#1db954;font-size:36px;font-weight:700;margin:0 auto 20px;height:56px}.world{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}.world h2{text-align:left;margin-bottom:22px}.world p{max-width:540px}.world .button{margin-top:14px}.world img{width:100%;height:auto}.section-desc{max-width:700px;text-align:center;margin:-14px auto 40px}.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.plan{border:1px solid #344050;border-radius:15px;background:linear-gradient(160deg,#151e2b,#0d1420);padding:16px 22px 28px;position:relative}.plan.featured{border-color:#1db954;box-shadow:0 0 40px #1db95410}.badge{height:25px;text-transform:uppercase;font-size:10px;letter-spacing:.1em;color:#1db954;margin-bottom:15px}.plan h3{font-size:24px;text-transform:uppercase}.price{font-size:clamp(29px,3vw,42px);font-weight:800;color:#1db954;margin-bottom:0;letter-spacing:-1.5px;white-space:nowrap}.currency{font-size:11px;color:#a5afc0}.plan ul{padding:20px 0;list-style:none;border-top:1px solid #ffffff18;margin-top:23px;font-size:12px;min-height:290px}.plan li{display:flex;gap:9px;margin-bottom:13px;line-height:1.45}.plan li span{color:#1db954}.plan .button{font-size:12px;width:100%;padding:15px 8px}.rate{font-size:11px;text-align:center;margin:25px auto 0;max-width:900px;color:#9ca8ba}.guides{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.guides article{background:#121b29;border:1px solid #253043;border-radius:13px;padding:30px}.guide-number{display:block;color:#1db954;font-size:31px;margin-bottom:20px}.faq{max-width:900px}.faq details{border-bottom:1px solid #293244;padding:22px 0}.faq summary{font-size:17px}.faq details p{margin:20px 0 0;font-size:14px}.contact{text-align:center;background:radial-gradient(ellipse at bottom,#0d3a22,transparent 70%);padding-bottom:85px}.contact h2{margin-bottom:20px}.contact .button{margin-top:15px}footer{border-top:1px solid #293244;padding:45px 5% 25px}footer .brand{width:fit-content;margin-bottom:24px}footer p{font-size:13px}.muted{color:#8e9bad;font-size:12px}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:35px;font-size:11px;color:#8e9bad}.floating-contact{position:fixed;right:22px;bottom:22px;width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#21c268;color:white;box-shadow:0 4px 22px #0008;z-index:5}.floating-contact svg{width:28px;height:28px}dialog{border:1px solid #39445a;border-radius:18px;background:#101927;color:white;padding:34px;width:min(500px,calc(100% - 30px));box-shadow:0 30px 100px #0008}dialog::backdrop{background:#000b;backdrop-filter:blur(7px)}dialog h2{text-align:left;font-size:30px;margin-bottom:28px}.close{position:absolute;right:14px;top:9px;background:none;border:0;color:#ddd;font-size:30px}.order-line{padding:22px;background:#1b2637;border-radius:10px}.order-line strong,.order-line span{display:block}.order-line span{font-size:12px;color:#acb8ca;margin-top:8px}.order-total{display:flex;justify-content:space-between;align-items:center;margin:28px 0}.order-total strong{font-size:33px;color:#1db954}dialog .button{width:100%;font-size:14px}dialog .muted{margin:18px 0 0;text-align:center}
@media(min-width:1500px){.hero{padding-top:100px;padding-bottom:70px}}@media(max-width:1100px){header{flex-wrap:wrap;gap:20px}nav{order:3;width:100%;justify-content:center}.hero{padding-top:50px}.plans{grid-template-columns:repeat(2,1fr)}.plan ul{min-height:250px}}@media(max-width:650px){header{padding:18px 20px;gap:16px}.brand{font-size:17px}.brand-mark{width:35px;height:35px}.brand small{font-size:8px}.header-tools select{width:144px;max-width:144px;font-size:10px}.trial{display:none}nav{gap:22px;font-size:12px}.hero{padding:48px 20px 30px}.hero h1{font-size:39px}.hero-description{font-size:15px;margin-bottom:28px}.hero-button{font-size:17px}.hero-devices{width:290px}.section{padding:45px 20px}h2{font-size:29px}.stats strong{font-size:29px}.stats span{font-size:11px}.poster-row img{width:145px;flex-basis:145px;height:210px}.benefits{grid-template-columns:1fr 1fr;gap:24px 12px}.benefits article{padding:10px 0}.benefits h3{font-size:18px}.benefits p{font-size:12px}.world{grid-template-columns:1fr;gap:30px}.world h2{text-align:center}.world div{text-align:center}.plans{grid-template-columns:1fr;gap:22px}.plan{padding:20px 28px}.plan ul{min-height:0;font-size:14px}.price{font-size:45px}.plan .button{font-size:15px}.guides{grid-template-columns:1fr}.floating-contact{right:16px;bottom:16px;width:48px;height:48px}.footer-bottom{flex-direction:column}footer{padding-bottom:80px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

.hero-button{transition:transform .25s ease,background .25s ease;transform-origin:center}.hero-button:hover,.hero-button:focus-visible{transform:scale(1.05)}.hero-button .monitor-icon{width:30px;height:30px;flex:0 0 30px;display:block}@media(prefers-reduced-motion:reduce){.hero-button{transition:none}.hero-button:hover,.hero-button:focus-visible{transform:none}}
/* Reference-style animated catalogues and yellow counters. */
.stats-grid{border:0;padding:0;gap:24px}.stats-grid>div{background:#1db954;border-radius:24px;padding:24px 16px}.stats-grid>div+div{border:0}.stats strong{color:#050505;font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(58px,8vw,108px);line-height:1.15;letter-spacing:-2px}.stats span{color:#080808;font-size:clamp(17px,2.2vw,27px)}
.marquee{overflow:hidden;position:relative;width:100%}.marquee-track{display:flex;width:max-content;animation:catalogue 65s linear infinite}.marquee-group{display:flex;gap:24px;padding-right:24px}.marquee img{width:260px;height:375px;max-width:none;object-fit:cover;border:3px solid #1db954;border-radius:0}.marquee.sport img{width:170px;height:210px;object-fit:contain;background:#000}.marquee.feedback img{width:235px;height:420px;object-fit:cover;object-position:top}.marquee.movie .marquee-track{animation-direction:reverse;animation-duration:85s}.marquee.feedback .marquee-track{animation-duration:95s}.feedback{max-width:1450px}.showcases h2:not(:first-child){margin-top:65px}@keyframes catalogue{to{transform:translateX(-50%)}}
.inner-page{min-height:65vh;padding-top:70px;padding-bottom:100px}.inner-page h1{font-size:clamp(36px,5vw,64px);margin:16px 0 25px}.inner-page>p{max-width:820px}.inner-page label{display:block;margin:30px 0 8px}.inner-page input{width:100%;padding:17px 20px;background:#121b29;border:1px solid #647086;border-radius:10px;color:white;font:inherit}.channel-group{border:1px solid #293244;background:#0d1420;margin-bottom:12px;border-radius:10px}.channel-group summary{padding:18px 22px;color:#1db954}.channel-group summary span{float:right;color:#c3cbd8}.channel-group ul{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#293244;padding:0;margin:0}.channel-group li{background:#101827;padding:12px 16px;font-size:12px;overflow-wrap:anywhere}.channel-group[hidden]{display:none}.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:35px}.blog-grid article{background:#101827;border:1px solid #344050;border-radius:16px;overflow:hidden}.blog-grid img{width:100%;height:220px;object-fit:contain;background:#080c14}.blog-grid article:first-child img{object-fit:cover}.blog-grid article a>div{padding:26px}.blog-grid h2{font-size:26px;text-align:left;margin-bottom:16px}.blog-grid p{font-size:14px}.blog-grid strong,.back-link{color:#1db954}.reading{max-width:900px}.reading section{padding:25px 0;border-bottom:1px solid #293244}.reading section p{font-size:19px;line-height:1.9}.reading .eyebrow{margin-top:30px}
@media(max-width:650px){.stats-grid{gap:12px;grid-template-columns:1fr}.stats strong{font-size:76px}.stats span{font-size:22px}.stats-grid>div{padding:20px}.marquee img{width:195px;height:285px}.marquee.sport img{width:135px;height:165px}.marquee.feedback img{width:210px;height:375px}.marquee-group{gap:16px;padding-right:16px}.blog-grid{grid-template-columns:1fr}.channel-group ul{grid-template-columns:1fr}.blog-grid h2{font-size:23px}}


/* Edge-to-edge catalogue, preserving the original image proportions. */
.section.showcases{max-width:none;width:100%;padding:48px 0 64px;background:#000;overflow:hidden}
.showcases h2{padding:0 24px;margin-bottom:30px;font-size:clamp(28px,2.5vw,48px)}
.showcases h2:not(:first-child){margin-top:54px}
.showcases .marquee-group{gap:clamp(16px,1vw,26px);padding-right:clamp(16px,1vw,26px)}
.showcases .sport img{width:clamp(145px,11.5vw,300px);height:auto;aspect-ratio:1;object-fit:contain;border-width:2px}
.showcases .movie img{width:clamp(205px,19vw,550px);height:auto;aspect-ratio:550/815;object-fit:contain;border-width:2px}
@media(max-width:650px){.section.showcases{padding:36px 0 44px}.showcases h2{padding:0 20px}.showcases h2:not(:first-child){margin-top:40px}}

/* Full-width subscription cards matching the black and yellow reference. */
.section.pricing{max-width:none;padding:55px clamp(20px,2.2vw,64px);background:#000}
.pricing h2{margin-bottom:25px}.pricing .section-desc{margin:0 auto 36px}
.plans{gap:clamp(16px,1vw,28px);align-items:stretch}
.plan,.plan.featured{padding:0 0 42px;background:#090909;border:1px solid transparent;border-radius:0;box-shadow:none;display:flex;align-items:center;flex-direction:column;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.plan .badge{display:none}.plan h3{align-self:stretch;text-align:center;margin:0 0 32px;background:#1db954;color:#080808;padding:17px 10px;font-size:clamp(22px,1.8vw,36px);font-weight:600;letter-spacing:-.03em}
.plan .price{color:#fff;font-family:Arial,sans-serif;font-size:clamp(44px,3.6vw,78px);font-weight:400;line-height:1.15;letter-spacing:-.04em;margin:0 12px 5px}
.plan .currency{color:#a8a8a8;font-size:11px}
.plan ul{width:calc(100% - 48px);max-width:310px;padding:0;margin:34px auto 36px;border:0;min-height:0;flex:1;font-size:clamp(12px,.85vw,16px)}
.plan li{padding:8px 0;margin:0;border-bottom:1px solid #ffffff60;line-height:1.5;gap:9px}.plan li:last-child{border-bottom:0}.plan li span{color:#fff}
.plan .button{width:auto;max-width:calc(100% - 32px);min-width:160px;border-radius:999px;padding:16px 25px;font-size:14px;gap:9px;transition:transform .25s ease,background .25s ease}.plan-monitor{width:20px;height:20px;flex:0 0 20px}
.plan:focus-within{transform:translateY(-7px);border-color:#1db95470;box-shadow:0 12px 38px #1db95433}
@media(hover:hover){.plan:hover{transform:translateY(-9px) scale(1.015);border-color:#1db95470;box-shadow:0 14px 45px #1db9543d}.plan .button:hover{transform:scale(1.05)}}
@media(max-width:1100px){.plan .price{font-size:60px}.plan ul{max-width:330px;font-size:14px}}
@media(max-width:650px){.section.pricing{padding:45px 20px}.plan h3{font-size:27px}.plan .price{font-size:62px}.plan{padding-bottom:32px}.plan ul{width:calc(100% - 52px);margin:26px auto 30px}.plan .button{font-size:15px}}
@media(prefers-reduced-motion:reduce){.plan,.plan .button{transition:none}.plan:hover,.plan:focus-within,.plan .button:hover{transform:none}}

/* Spacious feature cards with a moving coloured frame on hover. */
.section.benefits-section{max-width:none;padding:60px clamp(24px,3vw,76px);background:#000}
.benefits{gap:28px;grid-template-columns:repeat(3,minmax(0,1fr))}
.benefits article{position:relative;isolation:isolate;border:5px solid transparent;border-radius:9px;padding:44px 30px;min-height:320px;background:linear-gradient(#090909,#090909) padding-box;transition:transform .3s ease,box-shadow .3s ease}
.benefits article:before{content:'';position:absolute;inset:-5px;z-index:-1;border-radius:9px;padding:5px;background:linear-gradient(110deg,#0b6b3a,#1db954,#7bffb0,#1db954,#0b6b3a);background-size:300% 100%;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease}
.benefits h3{font-size:clamp(23px,1.7vw,34px);margin-bottom:22px}.benefits p{font-size:clamp(14px,1vw,18px);line-height:1.75;color:#eee}.benefits .feature-icon{font-size:48px;height:62px;margin-bottom:24px}
@media(hover:hover){.benefits article:hover{transform:translateY(-7px);box-shadow:-14px 0 40px #0b6b3a40,14px 0 40px #7bffb033}.benefits article:hover:before{opacity:1;animation:feature-frame 3s linear infinite}}
@keyframes feature-frame{to{background-position:300% 0}}
.section.feedback{max-width:none;padding:60px clamp(20px,2.2vw,60px);background:#000}
.feedback-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;align-items:start}
.feedback-gallery img{display:block;width:100%;height:auto;border:3px solid #1db954;transition:none;transform:none}
@media(max-width:1100px){.benefits{grid-template-columns:repeat(2,minmax(0,1fr))}.benefits article{min-height:310px;padding:32px 24px}.feedback-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
@media(max-width:650px){.section.benefits-section{padding:45px 20px}.benefits{grid-template-columns:1fr;gap:22px}.benefits article{min-height:0;padding:32px 22px}.benefits h3{font-size:24px}.benefits p{font-size:15px}.feedback-gallery{grid-template-columns:1fr;max-width:390px;margin:auto;gap:26px}.section.feedback{padding:45px 20px}}
@media(prefers-reduced-motion:reduce){.benefits article,.benefits article:before{transition:none}.benefits article:hover{transform:none}.benefits article:hover:before{animation:none}}
.feedback-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(min-width:1800px){.feedback-gallery{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px){.feedback-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.feedback-gallery{grid-template-columns:1fr}}

/* Large customer screenshots in a single continuously scrolling row. */
.section.feedback{padding:60px 0;overflow:hidden}
.section.feedback h2{padding:0 24px}
.section.feedback .marquee-group{align-items:flex-start;gap:24px;padding-right:24px}
.section.feedback .marquee.feedback img{width:clamp(280px,19vw,430px);height:auto;aspect-ratio:auto;object-fit:contain;border:3px solid #1db954;transition:none;transform:none}
.section.feedback .marquee.feedback .marquee-track{animation:catalogue 100s linear infinite}

@media(max-width:650px){.section.feedback{padding:45px 0}.section.feedback .marquee-group{gap:18px;padding-right:18px}.section.feedback .marquee.feedback img{width:min(78vw,330px)}}


/* The inner feedback track must not inherit the old section width cap. */
#feedback .marquee.feedback{max-width:none;width:100%;margin:0}



/* photo credit in the footer row */
.credit{opacity:.75}
.credit:hover{opacity:1;color:#1db954}

/* Device badges: inline monochrome marks replacing the old baked-in image. */
.devices-grid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:0;margin:0 auto;max-width:950px}
.devices-grid li{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #243041;border-radius:10px;background:#0d1420;transition:border-color .28s ease,background .28s ease,transform .28s ease,box-shadow .28s ease}
/* A green bloom behind the glyph. Negative z-index inside an isolated box
   paints above the badge's own background but under its content. */
.devices-grid li:before{content:'';position:absolute;z-index:-1;left:-26px;top:50%;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,#1db95438,transparent 70%);transform:translateY(-50%) scale(.5);opacity:0;transition:opacity .35s ease,transform .35s ease}
/* A light sweeping across on hover. */
.devices-grid li:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(115deg,transparent 38%,#1db95426 50%,transparent 62%);transform:translateX(-130%);transition:transform .65s cubic-bezier(.22,.61,.36,1)}
.device-glyph{width:26px;height:26px;flex:0 0 26px;fill:#c3cbd8;transition:fill .28s ease,transform .28s ease}
.device-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.device-on{font-size:9px;letter-spacing:.14em;color:#8e9bad;transition:color .28s ease}
.device-name{font-size:15px;font-weight:700;color:#f8fafc;white-space:nowrap;transition:color .28s ease}
@media(hover:hover){
.devices-grid li:hover{border-color:#1db954;background:#101b27;transform:translateY(-4px);box-shadow:0 12px 30px #1db9542e}
.devices-grid li:hover:before{opacity:1;transform:translateY(-50%) scale(1)}
.devices-grid li:hover:after{transform:translateX(130%)}
.devices-grid li:hover .device-glyph{fill:#1db954;transform:scale(1.1)}
.devices-grid li:hover .device-on{color:#1db954}
}
@media(max-width:1100px){.devices-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.devices-grid{gap:10px}.devices-grid li{padding:12px}.device-name{font-size:13px}.device-glyph{width:22px;height:22px;flex:0 0 22px}}
@media(prefers-reduced-motion:reduce){
.devices-grid li,.devices-grid li:before,.devices-grid li:after,.device-glyph,.device-on{transition:none}
.devices-grid li:hover{transform:none}
.devices-grid li:hover .device-glyph{transform:none}
.devices-grid li:hover:after{transform:translateX(-130%)}
}

/* ---- Pricing: device picker + reworked cards -------------------------- */
.pricing h2{margin-bottom:16px}
.pricing .section-desc{margin:0 auto 24px}

.devices-pick{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 16px;margin:0 auto 40px}
.dev-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8e9bad}
.dev-opts{display:inline-flex;gap:4px;padding:4px;background:#0d1420;border:1px solid #243041;border-radius:999px}
.dev-opt{min-width:44px;padding:9px 14px;border:0;border-radius:999px;background:transparent;color:#c3cbd8;font-size:14px;font-weight:700;line-height:1;transition:background .25s ease,color .25s ease}
.dev-opt:hover{background:#172334;color:#fff}
.dev-opt.is-on{background:#1db954;color:#05140b;box-shadow:0 6px 18px #1db9543d}
.dev-note{font-size:12px;color:#1db954}

.plans{align-items:stretch;gap:clamp(16px,1.2vw,24px)}
.plan,.plan.featured{position:relative;isolation:isolate;overflow:hidden;padding:0 0 30px;border:1px solid #1e2a3a;border-radius:18px;background:linear-gradient(180deg,#101a26,#0a0f17);box-shadow:none;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
/* Bloom and sweep, the same pair the device badges use: negative z-index in
   an isolated box paints over the card background but under its content. */
.plan:before{content:'';position:absolute;z-index:-1;left:50%;top:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,#1db95433,transparent 70%);transform:translateX(-50%) scale(.5);opacity:0;transition:opacity .35s ease,transform .35s ease}
.plan:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(115deg,transparent 38%,#1db9541f 50%,transparent 62%);transform:translateX(-130%);transition:transform .7s cubic-bezier(.22,.61,.36,1)}
.plan.featured{border-color:#1db95480;background:linear-gradient(180deg,#13251c,#0a0f17);box-shadow:0 0 0 1px #1db95426,0 20px 50px #1db9541c}
.plan.featured:before{opacity:.5;transform:translateX(-50%) scale(.85)}

.plan h3{align-self:stretch;margin:0;padding:28px 18px 0;background:none;color:#f8fafc;font-size:clamp(15px,1vw,19px);font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.plan .badge{display:none}
.plans article:nth-child(3) .badge,.plans article:nth-child(4) .badge{display:inline-block;position:absolute;z-index:1;top:14px;right:14px;height:auto;margin:0;padding:5px 10px;border:1px solid #1db95459;border-radius:999px;background:#1db9541f;color:#1db954;font-size:9px;letter-spacing:.12em}
.plan .price{margin:16px 12px 2px;font-family:Lexend,Arial,sans-serif;font-size:clamp(36px,2.9vw,58px);font-weight:800;line-height:1.05;letter-spacing:-.035em;color:#fff}
.plan .currency{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8e9bad}
.plan ul{width:calc(100% - 44px);max-width:none;margin:22px auto 26px;padding:22px 0 0;border-top:1px solid #1e2a3a;font-size:clamp(12.5px,.85vw,15px)}
.plan li{align-items:flex-start;gap:10px;padding:7px 0;border-bottom:0;color:#c3cbd8;line-height:1.5}
.plan li span{color:#1db954;font-weight:700}
.plan .button{width:calc(100% - 44px);max-width:none;min-width:0;margin:0 auto;padding:15px 20px;border-radius:999px;font-size:14px;box-shadow:0 8px 22px #1db9542e}

.plan:focus-within{transform:translateY(-6px);border-color:#1db954;box-shadow:0 16px 40px #1db9542e}
@media(hover:hover){
.plan:hover{transform:translateY(-8px);border-color:#1db954;box-shadow:0 18px 44px #1db9542e}
.plan:hover:before{opacity:1;transform:translateX(-50%) scale(1)}
.plan:hover:after{transform:translateX(130%)}
.plan:hover .button{transform:scale(1.04)}
}
@media(max-width:650px){
.devices-pick{gap:8px 12px;margin-bottom:30px}
.dev-opt{min-width:40px;padding:8px 12px}
.plan h3{padding-top:24px}
.plan .price{font-size:48px}
}
@media(prefers-reduced-motion:reduce){
.plan,.plan:before,.plan:after,.dev-opt{transition:none}
.plan:hover,.plan:focus-within,.plan:hover .button{transform:none}
.plan:hover:after{transform:translateX(-130%)}
}

/* ---- Device picker, now inside the order dialog ---------------------- */
.order-devices{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 12px;margin:18px 0 0;padding:15px 16px;border:1px solid #243041;border-radius:12px;background:#0d1420}
.order-devices .dev-label{font-size:11px}
.order-devices .dev-opts{background:#060b12;border-color:#1e2a3a}
.order-devices .dev-note{width:100%;font-size:11px}
dialog .order-total{margin:22px 0 0}

/* ---- Boot overlay ----------------------------------------------------
   Covers the page until everything has loaded. It carries no text, so the
   locale swap, which addresses strings by position, is untouched. */
#boot{position:fixed;inset:0;z-index:999;display:grid;place-content:center;justify-items:center;gap:26px;background:#080c14;
  /* Failsafe: if the script never runs, this clears the overlay anyway. */
  animation:boot-failsafe 0s linear 6s forwards}
#boot.is-done{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s .45s}
.boot-mark{width:58px;height:58px;animation:boot-breathe 1.5s ease-in-out infinite}
.boot-mark svg{width:100%;height:100%;display:block;border-radius:16px;box-shadow:0 0 34px #1db95459}
.boot-bar{width:132px;height:2px;border-radius:2px;background:#1b2636;overflow:hidden}
.boot-bar i{display:block;width:42%;height:100%;border-radius:2px;background:linear-gradient(90deg,#1db95400,#1db954,#7bffb0,#1db95400);animation:boot-slide 1.15s cubic-bezier(.65,0,.35,1) infinite}
@keyframes boot-breathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.9);opacity:.72}}
@keyframes boot-slide{0%{transform:translateX(-110%)}100%{transform:translateX(240%)}}
@keyframes boot-failsafe{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){
.boot-mark,.boot-bar i{animation:none}
.boot-bar i{width:100%}
#boot.is-done{transition:none}
}
