/* Skyworks package helper 0.1.2. Same look as the fibre sign-up helper 0.9.14. Mobile first. */
.swph{--p:var(--sw-primary,#0B3A6E);--pd:var(--sw-primary-dark,#082A50);--pl:var(--sw-primary-light,#E8F1FB);--a:#15803D;--t:var(--sw-text,#111827);--m:var(--sw-text-muted,#4B5563);--b:var(--sw-border,#E5E7EB);--r:var(--sw-radius,10px);
  max-width:760px;margin:0 auto 1.5rem;color:var(--t);font-size:1rem;line-height:1.5;text-align:left;box-sizing:border-box}
.swph *{box-sizing:border-box;min-width:0}
.swph [hidden]{display:none!important}
.swph p,.swph legend,.swph button,.swph a,.swph li{text-transform:none!important;letter-spacing:normal}
.swph p{margin:.25rem 0;padding-left:0;padding-right:0}
.swph-box{border:1px solid var(--b);border-radius:var(--r);background:var(--pl);padding:1rem}
.swph-title{font-weight:700;font-size:1.1rem;color:var(--p)}
.swph-small{font-size:.875rem;color:var(--m)}
.swph-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.5rem}
.swph-q{border:0;margin:0 0 1rem;padding:0;min-width:0}
.swph-q legend{font-weight:600;padding:0;margin-bottom:.4rem;color:var(--t)}
.swph-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.swph-chip{border:2px solid var(--p);background:#fff;color:var(--p);border-radius:999px;padding:.5rem .9rem;font:inherit;font-weight:600;min-height:44px;cursor:pointer;text-align:left;max-width:100%;white-space:normal;line-height:1.3}
.swph-chip[aria-pressed=true]{background:var(--p);color:#fff}
.swph-chip:focus-visible,.swph-btn:focus-visible,.swph-link:focus-visible{outline:3px solid var(--a);outline-offset:2px}
.swph-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--p);color:#fff!important;border:0;border-radius:999px;padding:.75rem 1.4rem;font:inherit;font-weight:700;cursor:pointer;min-height:44px;text-decoration:none}
.swph-btn:hover{background:var(--pd)}.swph-btn[disabled]{opacity:.6;cursor:default}
.swph-btn--ghost{background:#fff;color:var(--p)!important;border:2px solid var(--p)}.swph-btn--ghost:hover{background:var(--pl)}
.swph-link{background:none;border:0;color:var(--p);text-decoration:underline;font:inherit;padding:.5rem 0;cursor:pointer;min-height:44px}
.swph-coverage{background:#fff;border-left:4px solid var(--p);border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem}
.swph-reopen{gap:.4rem;margin:.5rem 0 .25rem;padding:.5rem 1rem;font-size:.95rem}
.swph-reopen::before{content:"?";display:inline-grid;place-items:center;width:1.4em;height:1.4em;border-radius:50%;background:var(--p);color:#fff;font-size:.8rem}
/* result card */
.swph .swph-rescard{background:linear-gradient(160deg,var(--p),var(--pd));color:#fff;border-radius:calc(var(--r) + 4px);padding:1.25rem 1.1rem 1rem;box-shadow:0 10px 28px rgba(8,42,80,.28);scroll-margin-top:90px;outline:none}
.swph .swph-rescard p{color:#fff;margin:.35rem 0}
.swph .swph-kicker{display:inline-block;background:var(--a);color:#111!important;font-weight:700;font-size:.8rem;border-radius:999px;padding:.15rem .7rem}
.swph .swph-head{display:flex;align-items:flex-start;gap:.45rem;font-size:1.8rem;font-weight:800;line-height:1.15;letter-spacing:-.01em}
.swph-tick{flex:0 0 auto;width:1em;height:1em;margin-top:.075em;display:block}
.swph-htxt{flex:1 1 auto}.swph-head .swph-name{color:var(--a)}
.swph-nw{white-space:nowrap}
.swph .swph-amt{display:inline-block;color:var(--a);font-size:2.4rem;font-weight:800;line-height:1.05;letter-spacing:-.01em;margin-right:.15rem}
.swph .swph-rest{font-size:1.05rem;font-weight:600}
.swph .swph-after{display:block;font-size:.92rem;color:rgba(255,255,255,.85);margin-top:.15rem}
.swph .swph-why{opacity:.95}
.swph .swph-note{background:rgba(255,255,255,.12);border-left:4px solid var(--a);padding:.5rem .75rem;border-radius:6px;font-size:.92rem}
.swph .swph-rescard a{color:#fff;text-decoration:underline;font-weight:700}
.swph .swph-free{font-size:.92rem}
.swph .swph-cta{display:block;text-align:center;width:100%;margin:.9rem 0 .25rem;background:var(--a);color:#111!important;font-size:1.15rem;font-weight:800;padding:.95rem 1rem;min-height:52px;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.swph .swph-cta:hover{background:#E8F1FB}
.swph .swph-cta:focus-visible{outline:3px solid #fff}
.swph .swph-rescard .swph-link{color:#fff;font-size:.9rem;min-height:0;padding:.25rem 0}
.swph .swph-signal-line{font-size:.92rem}
.swph-links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 1.25rem}
.swph .swph-links .swph-link{min-height:44px}
.swph .swph-rescard.is-in{animation:swph-pop .45s ease-out both}
@keyframes swph-pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.swph .swph-rescard.is-in{animation:none}}
@media (max-width:360px){.swph .swph-head{font-size:1.6rem}.swph .swph-amt{font-size:2.1rem}}
@media (min-width:700px){.swph .swph-head{font-size:2.4rem}}
/* suggested plan card on the page */
.sw-card.swph-rec{outline:3px solid #15803D;outline-offset:2px;box-shadow:0 6px 18px rgba(21,128,61,.25)}
/* mobile side padding 16px, robust against themes that zero it */
@media (max-width:820px){html body .swph{padding-left:max(16px,env(safe-area-inset-left))!important;padding-right:max(16px,env(safe-area-inset-right))!important;max-width:100%!important}}
/* compact chips on desktop; mobile tap sizes unchanged */
@media (min-width:821px){
  .swph .swph-chips{gap:8px}
  .swph .swph-chip{font-size:.875rem;padding:6px 14px;min-height:34px;border-width:1.5px;line-height:1.3}
  .swph .swph-q{margin-bottom:.85rem}
}
.swph .swph-price{margin:.5rem 0 .6rem}
.swph .swph-rest .swph-nw{color:var(--a)}
.swph .swph-term{display:inline-block;margin-top:.35rem;font-size:.8rem;font-weight:700;letter-spacing:.02em;background:rgba(255,255,255,.14);color:#fff;border-radius:999px;padding:.15rem .6rem}
@media (max-width:600px){.swph .swph-price{text-align:center}.swph .swph-price .swph-after,.swph .swph-price .swph-term{margin-left:auto;margin-right:auto}.swph .swph-price .swph-term{display:table}}
@media (max-width:600px){.swph .swph-price .swph-qual{display:block}.swph .swph-rest .swph-qual{margin-top:.1rem}}
/* Heading is the largest text: heading about 1.25x price. Tick is 1em so it scales. */
.swph .swph-head{font-size:2.25rem;line-height:1.1}.swph .swph-amt{font-size:1.8rem}
@media (max-width:360px){.swph .swph-head{font-size:2rem}.swph .swph-amt{font-size:1.6rem}}
@media (min-width:700px){.swph .swph-head{font-size:2.75rem}.swph .swph-amt{font-size:2.2rem}}

/* Result card colours: option B (chosen by Francois 14 Oct). Navy card, white price, green first-3-months pill, no amber. */
.swph .swph-rescard,.swfs .swfs-rescard{background:linear-gradient(160deg,#0B3A6E,#082A50);color:#FFFFFF;border:0;box-shadow:0 10px 28px rgba(8,42,80,.28)}
.swph .swph-rescard p,.swfs .swfs-rescard p,.swph .swph-head,.swfs .swfs-rescard__head{color:#FFFFFF}
.swph .swph-kicker,.swfs .swfs-rescard__kicker{background:#FFFFFF;color:#0B3A6E!important}
.swph .swph-head .swph-name,.swfs .swfs-rescard__head #swfs-sh-mbps{color:#FFFFFF}
.swph .swph-amt,.swfs .swfs-rescard__amt{color:#FFFFFF}
.swph .swph-rest,.swfs .swfs-rescard__promo{color:#FFFFFF}
.swph .swph-after,.swfs .swfs-rescard__after{color:rgba(255,255,255,.85)}
.swph .swph-term{background:rgba(255,255,255,.14);color:#FFFFFF}
.swph .swph-note,.swfs .swfs-rescard__note{background:rgba(255,255,255,.12);border-left-color:#15803D}
.swph .swph-rescard a,.swph .swph-rescard .swph-link,.swfs .swfs-rescard a,.swfs .swfs-rescard__links button,.swfs .swfs-rescard__links a{color:#FFFFFF}
.swph .swph-cta,.swfs .swfs-rescard__cta{background:#FFFFFF;color:#0B3A6E!important}
.swph .swph-cta:hover,.swfs .swfs-rescard__cta:hover{background:#E8F1FB}
.swph .swph-cta:focus-visible,.swfs .swfs-rescard__cta:focus-visible{outline:3px solid #15803D;outline-offset:2px}
.swph .swph-rest .swph-qual,.swfs .swfs-rescard__promo .swfs-rescard__qual{display:inline-block;background:#15803D;color:#fff;font-size:.85rem;font-weight:700;border-radius:999px;padding:.15rem .65rem;margin:.25rem 0 0}
.swph .swph-rest .swph-qual .swph-nw,.swfs .swfs-rescard__qual .swfs-nw{color:#fff}
.swph .swph-rescard .swph-link:focus-visible,.swph .swph-rescard a:focus-visible{outline-color:#fff}
/* Mobile heading: "We suggest" on one line; heading still larger than price */
@media (max-width:699px){.swph .swph-head{font-size:2rem}.swph .swph-amt{font-size:1.6rem}}
@media (max-width:360px){.swph .swph-head{font-size:1.8rem}.swph .swph-amt{font-size:1.45rem}}
@media (max-width:360px){.swph .swph-cta{font-size:1.02rem;padding-left:.6rem;padding-right:.6rem}}

/* v-next: package name in bright green (#4ADE80 on navy: 6.53:1 at #0B3A6E, 8.27:1 at #082A50). 'We suggest' stays white. */
.swph .swph-head .swph-name{color:#4ADE80}
/* Selling points with green ticks (same tick as the heading). Left-aligned list; centred as a block on mobile. */
.swph .swph-rescard .swph-points{list-style:none;margin:.5rem 0;padding:0;font-size:.95rem;color:#fff}
.swph .swph-rescard .swph-points li{position:relative;padding-left:1.6em;margin:.3rem 0;line-height:1.4;text-align:left}
.swph .swph-rescard .swph-points li::before{content:"";position:absolute;left:0;top:.2em;width:1.1em;height:1.1em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='15' fill='%2315803D' stroke='%23fff' stroke-width='2'/%3E%3Cpath d='M9.5 16.5l4.3 4.3L22.5 11.8' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain}
@media (max-width:600px){.swph .swph-rescard .swph-points{display:table;margin-left:auto;margin-right:auto}}
.swph .swph-rescard .swph-points[hidden]{display:none}
.swph .swph-rescard ul.swph-points{list-style:none!important;padding-left:0!important}.swph .swph-rescard ul.swph-points li{list-style:none!important}
@media (max-width:600px){.swph .swph-rescard ul.swph-points{display:table!important;margin-left:auto!important;margin-right:auto!important}}
.swph .swph-rescard ul.swph-points[hidden]{display:none!important}
/* 0.1.4: 'Next-Gen Wireless' line under the speed on Next-Gen results */
.swph .swph-head .swph-sub{display:block;color:#4ADE80;font-size:.72em;line-height:1.2;margin-top:.1em}
.swph .swph-head .swph-sub[hidden]{display:none}
@media (max-width:600px){.swph .swph-head .swph-sub{font-size:.6em;white-space:nowrap}}
/* 0.1.4: contract label on its own line under the price (not cramped against /mo) */
.swph .swph-rescard .swph-price .swph-term{display:table!important;margin:.4rem 0 0!important}
@media (max-width:600px){.swph .swph-rescard .swph-price .swph-term{margin:.4rem auto 0!important}}

/* 0.1.5 / 0.9.17: option B intro. Diagonal green #14532D > #166534 > #15803D with #16A34A corner glow; white text measured min 4.7:1 (AA). Navy CTA with pulse and arrow nudge; motion off for prefers-reduced-motion. */
.swph .swph-intro{display:block;margin:-1rem;padding:1.5rem 1.25rem;border-radius:inherit;text-align:center;color:#FFFFFF;background:radial-gradient(farthest-corner at 100% 100%,#16A34A 0%,rgba(22,163,74,0) 24%),linear-gradient(135deg,#14532D 0%,#166534 40%,#15803D 100%);text-shadow:0 1px 2px rgba(0,0,0,.35);box-shadow:0 10px 28px rgba(20,83,45,.3)}
.swph .swph-intro[hidden]{display:none}
.swph .swph-intro p{color:#FFFFFF;margin:.25rem 0 .75rem}
.swph .swph-intro .swph-title{color:#FFFFFF;font-size:1.6rem;font-weight:800;line-height:1.2;margin:.5rem 0 .35rem}
.swph .swph-badge{display:inline-block;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.6);color:#FFFFFF;border-radius:999px;padding:.15rem .8rem;font-size:.85rem;font-weight:700}
.swph .swph-intro .swph-acts{flex-direction:column;justify-content:center;gap:.4rem}
.swph .swph-intro .swph-btn{background:#0B3A6E;color:#FFFFFF!important;font-size:1.2rem;font-weight:800;padding:1rem 2.2rem;min-height:52px;box-shadow:0 6px 16px rgba(8,42,80,.35);animation:swxPulse 2.4s ease-in-out infinite}
.swph .swph-intro .swph-btn:hover{background:#082A50}
.swph .swph-arrow{display:inline-block;margin-left:.4rem;animation:swxNudge 1.2s ease-in-out infinite}
.swph .swph-intro .swph-link{color:#FFFFFF}
.swph .swph-intro .swph-btn:focus-visible,.swph .swph-intro .swph-link:focus-visible{outline:3px solid #FFFFFF;outline-offset:3px}
@keyframes swxPulse{0%,100%{box-shadow:0 0 0 0 rgba(11,58,110,.5)}50%{box-shadow:0 0 0 12px rgba(11,58,110,0)}}
@keyframes swxNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.swph .swph-intro .swph-btn,.swph .swph-arrow{animation:none}}
@media (max-width:480px){.swph .swph-intro .swph-btn{width:100%}}

/* 0.1.6 (14 Oct 2026, Clara review): no amber or orange anywhere; --a is now green #15803D. */
/* Intro box: no light glow, gradient ends at #15803D so white text is at least 5:1 everywhere. White CTA with navy text. */
.swph .swph-intro{background:linear-gradient(135deg,#14532D 0%,#166534 45%,#15803D 100%)}
.swph .swph-intro .swph-btn{background:#FFFFFF;color:#0B3A6E!important;text-shadow:none;box-shadow:0 6px 16px rgba(0,0,0,.25);animation-name:swxPulseW}
.swph .swph-intro .swph-btn:hover{background:#E8F1FB}
@keyframes swxPulseW{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}50%{box-shadow:0 0 0 12px rgba(255,255,255,0)}}
/* Skip and other text links: 44px tap area */
.swph .swph-link,.swph .swph-intro .swph-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:.5rem .75rem}
/* Not-covered notice (area "other"): navy info style. */
.swph .swph-coverage{background:#E8F1FB;border-left:4px solid #0B3A6E;color:#0B3A6E}
.swph .swph-kicker{color:#0B3A6E!important}
/* Focus: 3px navy ring, 2px offset; white ring on navy or green surfaces */
.swph .swph-chip:focus-visible,.swph .swph-btn:focus-visible,.swph .swph-link:focus-visible,.swph a:focus-visible{outline:3px solid #0B3A6E!important;outline-offset:2px!important}
.swph .swph-rescard a:focus-visible,.swph .swph-rescard .swph-link:focus-visible,.swph .swph-rescard .swph-cta:focus-visible,.swph .swph-intro .swph-btn:focus-visible,.swph .swph-intro .swph-link:focus-visible{outline:3px solid #FFFFFF!important;outline-offset:2px!important}
.swph .swph-rescard .swph-rest .swph-nw{color:#4ADE80}.swph .swph-rescard .swph-rest .swph-qual .swph-nw{color:#FFFFFF}
