/* pl-skin.css: the PlanesAndLanes WAYFINDING skin for the builder guide template (listing.php) and the presale review pages.
   v=20260909c (PL_SKIN_V3): RTL rank tile, 13 px caps floor, 68ch measure, presale rating pill wrap, phone table scroll, legacy vectors in ink.
   Loaded after the template CSS, exactly like oi-skin.css. Order: self-hosted @font-face (the faces and weights the
   site uses, upright only: the design uses no italics), the design tokens, the OI aliases the templates rely on, then
   per-template overrides. Every offset is logical so the he edition mirrors without a left/right rule. */

/* ---- 1. self-hosted faces (/fonts/pl/, variable files: one woff2 per script per family) ---- */
/* Sofia Sans Condensed latin */
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/pl/SofiaSansCondensed-latin-519c7baba6.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Sofia Sans Condensed latin-ext */
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/pl/SofiaSansCondensed-latin-ext-8032e90393.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Sofia Sans Condensed cyrillic */
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/pl/SofiaSansCondensed-cyrillic-8a679b2b41.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
/* Sofia Sans Condensed cyrillic-ext */
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/pl/SofiaSansCondensed-cyrillic-ext-26da5063d7.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
/* Sofia Sans Condensed greek */
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/pl/SofiaSansCondensed-greek-9d264b3881.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
/* Sofia Sans latin */
@font-face{font-family:'Sofia Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/pl/SofiaSans-latin-a26850fc84.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Sofia Sans latin-ext */
@font-face{font-family:'Sofia Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/pl/SofiaSans-latin-ext-7164ae77e9.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Sofia Sans cyrillic */
@font-face{font-family:'Sofia Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/pl/SofiaSans-cyrillic-96e59d8ddd.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
/* Sofia Sans cyrillic-ext */
@font-face{font-family:'Sofia Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/pl/SofiaSans-cyrillic-ext-cc6e6bbba0.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
/* Sofia Sans greek */
@font-face{font-family:'Sofia Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/pl/SofiaSans-greek-7e3a7b4b08.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
/* Heebo hebrew */
@font-face{font-family:'Heebo';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/pl/Heebo-hebrew-eab0599536.woff2) format('woff2');unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
/* Heebo latin */
@font-face{font-family:'Heebo';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/pl/Heebo-latin-14af0c7ba9.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Heebo latin-ext */
@font-face{font-family:'Heebo';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/pl/Heebo-latin-ext-0ef36073d1.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---- 2. design tokens (DESIGN-SPEC section 2) ---- */
:root{
  --pl-ink:#121417;--pl-ink-2:#2A2F36;--pl-ink-line:#3A414A;--pl-text:#1A1D21;--pl-mute:#5A626D;--pl-line:#C9CED6;
  --pl-ground:#F2F3F5;--pl-ground-2:#E3E6EA;--pl-panel:#FFFFFF;--pl-on-ink:#FFFFFF;--pl-on-ink-2:#C9CED6;
  --pl-signal:#FFD100;--pl-signal-ink:#121417;--pl-signal-tint:#FFF6C2;
  --pl-cta:var(--pl-signal);--pl-cta-ink:var(--pl-signal-ink);--pl-cta-hover:var(--pl-ink);
  --pl-ok:#1B6B3F;--pl-ok-tint:#E3F1E8;--pl-warn:#B4432F;--pl-warn-tint:#FBE9E5;--pl-focus:var(--pl-signal);
  --pl-display:"Sofia Sans Condensed","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --pl-text-face:"Sofia Sans","Helvetica Neue",Arial,sans-serif;
  --pl-fs-0:0.75rem;--pl-fs-1:0.875rem;--pl-fs-2:1rem;--pl-fs-3:1.0625rem;--pl-fs-4:1.375rem;--pl-fs-5:clamp(1.75rem,2.6vw,2.5rem);--pl-fs-6:clamp(2.25rem,4.6vw,4rem);
  --pl-r-1:2px;--pl-r-2:4px;--pl-r-3:999px;--pl-ring:0 0 0 2px var(--pl-ink);--pl-shadow:0 12px 32px rgba(18,20,23,.18);
  --pl-s-1:4px;--pl-s-2:8px;--pl-s-3:12px;--pl-s-4:16px;--pl-s-5:24px;--pl-s-6:32px;--pl-s-7:48px;--pl-s-8:64px;--pl-s-9:96px;
  --pl-wrap:1240px;--pl-gutter:clamp(16px,4vw,32px);--pl-strip:44px;
  --pl-lane:repeating-linear-gradient(to right,var(--pl-ink) 0 28px,transparent 28px 48px);
  --pl-lane-v:repeating-linear-gradient(to bottom,var(--pl-ink) 0 20px,transparent 20px 34px);
}
:lang(he){--pl-display:"Heebo","Arial Hebrew",Arial,sans-serif;--pl-text-face:"Heebo","Arial Hebrew",Arial,sans-serif}
/* the OI names the builder templates rely on (no template CSS has to change) */
:root{--paper:var(--pl-ground);--paper2:var(--pl-panel);--sand:var(--pl-ground-2);--card:var(--pl-panel);--line:var(--pl-line);
  --ink:var(--pl-text);--ink2:var(--pl-mute);--muted:var(--pl-mute);--navy:var(--pl-ink);--navy2:var(--pl-ink-2);
  --amber:var(--pl-signal);--amber-deep:var(--pl-ink);--amber-tint:var(--pl-signal-tint);--amber-lit:var(--pl-signal);--red:var(--pl-warn);
  --serif:var(--pl-display);--sans:var(--pl-text-face)}
[lang=he]{--serif:var(--pl-display);--sans:var(--pl-text-face)}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-variant-numeric:tabular-nums;font-kerning:normal;font-synthesis:none;-webkit-font-smoothing:antialiased}
b,strong{font-weight:700}
h1,h2,h3,h4{font-family:var(--serif);overflow-wrap:anywhere;hyphens:manual;text-wrap:balance}
/* house rule (leftover round 2026-09-09): headings are never hyphenated; overflow-wrap:anywhere above is the only fallback for a compound wider than the column */
:is([lang=de],[lang=fi],[lang=hu],[lang=nl],[lang=sv],[lang=da],[lang=et],[lang=el],[lang=bg]) :is(h1,h2,h3){hyphens:manual}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--pl-ink);outline-offset:2px;box-shadow:0 0 0 6px var(--pl-signal);border-radius:var(--pl-r-1)}
.hero a:focus-visible,.foot a:focus-visible,.winner-banner a:focus-visible{outline-color:var(--pl-signal);box-shadow:none}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---- 3. shared chrome: sitebar + footer (both templates) ---- */
.sitebar{background:var(--pl-panel);border-bottom:1px solid var(--pl-line);border-top:6px solid var(--pl-signal)}
.sitebar .wrap{padding-top:13px;padding-bottom:13px}
.sitebar .pl-logo,.sitebar .oi-logo{min-height:24px;padding:2px 0;display:inline-flex;align-items:center}
.sitebar .pl-logo img,.sitebar .oi-logo img{height:34px;width:auto}
@media(max-width:640px){.sitebar .pl-logo img,.sitebar .oi-logo img{height:26px}}
@media(max-width:380px){.sitebar .pl-logo img,.sitebar .oi-logo img{height:22px}}
.sitebar strong{color:var(--pl-text);font-weight:700;font-family:var(--pl-display)}
.sitebar .adv{font-family:var(--pl-display);font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--pl-mute)}
.foot{background:var(--pl-ink);color:var(--pl-on-ink-2);border-top:0;font-size:14px;line-height:1.6;padding-bottom:0}
.foot::after{content:"";display:block;height:6px;background:var(--pl-signal);margin-top:32px}
.foot p{color:var(--pl-on-ink-2)}
.foot strong,.foot b{color:var(--pl-on-ink)}
.foot-nav a{color:var(--pl-on-ink);font-weight:400;font-size:14px;text-decoration:none}
.foot-nav a:hover{text-decoration:underline;text-decoration-color:var(--pl-signal);text-decoration-thickness:2px;text-underline-offset:4px}
.foot .wrap > a{color:var(--pl-on-ink);font-weight:400}
.foot .wrap > a:hover{text-decoration-color:var(--pl-signal)}

/* ---- 4. guide template (listing.php): hero = the directions board ---- */
.hero{background:var(--pl-ink);color:var(--pl-on-ink);border-radius:0;background-image:none}
.hero .plate{display:inline-flex;align-items:center;gap:12px;background:var(--pl-ink-2);color:var(--pl-on-ink);font-family:var(--pl-display);font-weight:800;font-size:18px;letter-spacing:.08em;text-transform:uppercase;padding:6px;border-radius:var(--pl-r-1);line-height:1;margin-bottom:18px}
.hero .plate .l{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;background:var(--pl-signal);color:var(--pl-signal-ink);border-radius:var(--pl-r-1);font-size:18px}
.hero .plate svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hero .plate .seg{font-weight:600;font-size:14px;letter-spacing:.08em;color:var(--pl-on-ink-2);border-inline-start:1px solid var(--pl-ink-line);padding-inline:12px 8px;font-variant-numeric:tabular-nums}
.hero h1{font-family:var(--pl-display);font-weight:800;text-transform:uppercase;line-height:.98;letter-spacing:-.005em;font-size:clamp(2rem,4.2vw,3.5rem);max-width:20ch;margin-inline:auto;text-wrap:balance}
:is([lang=de],[lang=fi],[lang=hu],[lang=nl],[lang=el]) .hero h1{font-size:clamp(1.75rem,3.8vw,3.25rem)}
@media(min-width:1000px){.hero h1{max-width:20ch}}
[lang=he] .hero h1{line-height:1.08;letter-spacing:0}
.hero .verify{font-family:var(--pl-display);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-on-ink-2);opacity:1;margin-top:18px}
.hero .verify b,.hero .verify strong{color:var(--pl-on-ink)}
.hero .label,.hero .hero-kicker{font-family:var(--pl-display);font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-signal)}

/* article */
.article{background:var(--pl-ground)}
.opener p{color:var(--pl-text);font-size:17px;line-height:1.55}
/* PL_OPENER_CHECK_V2 (operator 2026-09-09: text climbed on the check marks). The pain-point lines are hanging-indent
   items: a 20 px signal tile with an ink tick sits in the start gutter, wrapped lines align under the first word.
   The template's ::before emits the emoji "\2705" with margin-right after this file, so content and margin are forced. */
.opener p.q{font-family:var(--pl-display);font-weight:700;font-size:22px;line-height:1.2;letter-spacing:-.005em;position:relative;padding-inline-start:32px;text-indent:0}
.opener p.q::before{content:"" !important;position:absolute;inset-inline-start:0;top:.15em;width:20px;height:20px;margin:0 !important;display:block;border-radius:2px;background:var(--pl-signal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.6 10.4l3.7 3.7 7.1-8.2' fill='none' stroke='%23121417' stroke-width='2.6' stroke-linecap='square'/%3E%3C/svg%3E") center/20px 20px no-repeat;vertical-align:baseline}
.flow-h,.long-review h2{font-family:var(--pl-display);font-weight:700;font-size:clamp(28px,2.6vw,40px);line-height:1.05;letter-spacing:-.01em;color:var(--pl-text);padding-inline-start:24px;position:relative;text-wrap:balance}
.flow-h::before,.long-review h2::before{content:"";position:absolute;inset-inline-start:0;top:.42em;width:12px;height:12px;background:var(--pl-signal);border-radius:1px}

/* listings = sign-plated cards */
.listing{background:var(--pl-panel);border:1px solid var(--pl-line);border-radius:var(--pl-r-2);box-shadow:none;overflow:visible}
.listing.featured{border:1px solid var(--pl-ink);box-shadow:0 0 0 1px var(--pl-ink)}
.listing-rank{background:var(--pl-ink);color:var(--pl-on-ink);font-family:var(--pl-display);font-weight:800;font-size:15px;letter-spacing:.04em;border-radius:var(--pl-r-1);font-variant-numeric:tabular-nums;min-width:40px;height:32px;display:inline-grid;place-items:center;padding:0 10px;left:auto;right:auto;inset-inline-start:-8px}
.listing.featured .listing-rank{background:var(--pl-signal);color:var(--pl-signal-ink)}
.winner-banner{background:var(--pl-ink);color:var(--pl-on-ink);font-family:var(--pl-display);font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:0}
.winner-banner b,.winner-banner strong{color:var(--pl-signal)}
.prod-img{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);background:var(--pl-panel)}
/* product images law: every box is a square, every image fully contained, never the builder's inline zoom */
.listing-media .prod-img,.review-break .prod-img,.final-offer .prod-img{aspect-ratio:1/1;min-height:0!important;height:auto;padding:8px;box-sizing:border-box}
.prod-img img{width:100%!important;height:100%!important;max-height:none!important;object-fit:contain;object-position:center;transform:none!important}
.prod-img.placeholder{aspect-ratio:1/1;background:var(--pl-ground-2)}
.prod-img.placeholder span{color:var(--pl-mute);font-family:var(--pl-display);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:12px}
.review-link{color:var(--pl-text);font-weight:600;text-decoration-color:var(--pl-ink);text-decoration-thickness:2px;text-underline-offset:4px}
.review-link:hover{text-decoration-color:var(--pl-signal)}
.badge{background:var(--pl-panel);color:var(--pl-text);border:2px solid var(--pl-ink);border-radius:var(--pl-r-1);font-family:var(--pl-display);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px}
.listing.featured .badge{background:var(--pl-ink);color:var(--pl-on-ink)}
.pos{color:var(--pl-mute);font-family:var(--pl-display);font-weight:600;letter-spacing:.06em}
.listing-main h3{font-family:var(--pl-display);font-weight:700;font-size:28px;line-height:1.1;letter-spacing:-.01em;color:var(--pl-text);text-transform:none}
.rating-row{color:var(--pl-mute);font-family:var(--pl-display);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.rating-row strong{color:var(--pl-text)}
.rating-row em{font-style:normal}
.stars .star{color:transparent;-webkit-text-stroke:1px var(--pl-ink)}
.stars .star.on{-webkit-text-stroke:0;color:var(--pl-ink)}
.score-box{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);background:var(--pl-panel)}
.score-num{font-family:var(--pl-display);font-weight:800;font-variant-numeric:tabular-nums;background:var(--pl-signal);color:var(--pl-signal-ink);border-radius:var(--pl-r-1);padding:0 10px;display:inline-block;line-height:1.3}
.score-word{font-family:var(--pl-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pl-mute)}
.price-label{color:var(--pl-mute);font-family:var(--pl-display);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:13px}
.price-now{color:var(--pl-text);font-family:var(--pl-display);font-weight:800;font-variant-numeric:tabular-nums}
.listing.featured .price-now{color:var(--pl-text)}
.price-was{color:var(--pl-mute);font-variant-numeric:tabular-nums;text-decoration:line-through}
.benefits li{color:var(--pl-text)}
.benefits .check{color:var(--pl-signal-ink);background:var(--pl-signal);border-radius:var(--pl-r-1);width:20px;height:20px;display:inline-grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.drawbacks li{color:var(--pl-mute)}
.drawbacks .cross{color:var(--pl-warn);background:var(--pl-ground-2);border-radius:var(--pl-r-1);width:20px;height:20px;display:inline-grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.deal-box{border:1px solid var(--pl-ink);background:var(--pl-signal-tint);border-radius:var(--pl-r-2)}
.deal-box strong{color:var(--pl-text);font-weight:700}
.deal-box span{color:var(--pl-text)}
.deal-box em{color:var(--pl-warn);font-style:normal;font-family:var(--pl-display);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
/* the one button family */
.cta,.btn{background:var(--pl-cta);color:var(--pl-cta-ink);border:2px solid var(--pl-ink);border-radius:var(--pl-r-1);font-family:var(--pl-display);font-weight:700;font-size:18px;letter-spacing:.04em;text-transform:uppercase;transition:background .15s,color .15s;box-shadow:none;text-decoration:none}
.cta:hover,.btn:hover{background:var(--pl-cta-hover);color:var(--pl-on-ink)}
.listing.featured .cta,.final-offer .cta{background:var(--pl-cta);color:var(--pl-cta-ink)}
.listing.featured .cta:hover,.final-offer .cta:hover{background:var(--pl-ink);color:var(--pl-on-ink)}
.side-note{color:var(--pl-mute);background:var(--pl-ground);border-radius:var(--pl-r-2);border-top:3px solid transparent;border-image:var(--pl-lane) 3 0 0 0;padding:10px 12px}
.tile{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);background:var(--pl-panel);box-shadow:none}
.tile .tile-ic{background:var(--pl-ink);color:var(--pl-signal);border-radius:var(--pl-r-1)}
.tile h3{font-family:var(--pl-display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-text)}
.tile p{color:var(--pl-mute)}
.long-review article h3{font-family:var(--pl-display);font-weight:700;font-size:22px;letter-spacing:-.01em;color:var(--pl-text)}
.long-review .intro p,.long-review article p{color:var(--pl-text)}
.review-break{background:var(--pl-panel);border:1px solid var(--pl-line);border-radius:var(--pl-r-2)}
.review-break p{color:var(--pl-mute)}
.review-hero,.review-figure{border-color:var(--pl-line);border-radius:var(--pl-r-2)}
.review-hero.is-cropped,.review-figure.is-cropped{background:var(--pl-ground-2)}
.important{background:var(--pl-ground);border:1px solid var(--pl-line);border-radius:var(--pl-r-2);position:relative}
.important::before{content:"";position:absolute;inset-inline:0;top:-1px;height:3px;background:var(--pl-lane)}
.important strong{font-family:var(--pl-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pl-text)}
.important p{color:var(--pl-mute)}
.final-offer{border:2px solid var(--pl-ink);border-radius:var(--pl-r-2);background:var(--pl-panel);box-shadow:none}
.final-offer h2{font-family:var(--pl-display);font-weight:700;letter-spacing:-.01em;color:var(--pl-text)}
.final-offer p{color:var(--pl-text)}
.trust{background:var(--pl-ground);border-radius:var(--pl-r-2);border:1px solid var(--pl-line)}
.trust .avatar{display:none}
.trust .meet{color:var(--pl-mute);font-family:var(--pl-display);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.trust h3{font-family:var(--pl-display);font-weight:700;color:var(--pl-text)}
.trust p{color:var(--pl-mute)}
.brandlink{color:var(--pl-text);text-decoration-color:var(--pl-ink);text-decoration-thickness:2px;text-underline-offset:3px}
.brandlink:hover{text-decoration-color:var(--pl-signal)}
/* comparison tables */
.article table{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.article th{background:var(--pl-ink);color:var(--pl-on-ink);font-family:var(--pl-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.article td{border-top:1px solid var(--pl-line);color:var(--pl-text)}
.article tr:nth-child(even) td{background:var(--pl-ground)}
.article .table-wrap{overflow-x:auto}
@media(max-width:640px){.article .table-wrap th:first-child,.article .table-wrap td:first-child{position:sticky;inset-inline-start:0;background:inherit}}
[lang=he] :is(.badge,.cta,.btn,.winner-banner,.sitebar .adv,.important strong,.rating-row,.price-label,.score-word,.pos,.hero .verify,.tile h3){letter-spacing:.02em}
/* PL_SKIN_V3 (2026-09-09, judge round 2): caps labels never below 13 px, 68ch measure for running text */
.pos,.side-note,.score-word{font-size:13px}
/* PL_FULL_MEASURE_V1 (operator 2026-09-09: "text is not taking full width on desktop"): running text fills the article column; no ch cap. */
.opener p,.long-review .intro p,.long-review article p{max-width:none}
@media(max-width:640px){.badge,.pos,.price-label,.sitebar .adv,.side-note,.score-word,.trust .meet,.prod-img.placeholder span{font-size:13px}.deal-box em,.rating-row{font-size:14px}}

/* ---- 4b. PL_SKIN_V4 guide (2026-09-09, visual QA round: 8 guides x 22 languages, 77 skin defects closed) ----
   Written against the builder template classes in data/msads-oi-builder-page.mjs (site mode) and the normaliser output
   agreed in /var/tmp/pl/guide-skin-QUESTIONS.md (bare numeral rank tiles, .cta .flip chevron bound with a no-break
   space, no star ornaments in .winner-banner, deal-box status chip as <b>). Every icon is a data-URI SVG: the Sofia and
   Heebo faces carry no tick, cross or star glyphs, so the template's text glyphs are hidden (font-size 0) and the tile
   draws the mark. Logical properties only (he is RTL). Same specificity as section 4 and later in the file, so it wins. */
:root{--pl-i-tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.6 10.4l3.7 3.7 7.1-8.2' fill='none' stroke='%23121417' stroke-width='2.6' stroke-linecap='square'/%3E%3C/svg%3E");
  --pl-i-cross:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.6 5.6l8.8 8.8M14.4 5.6l-8.8 8.8' fill='none' stroke='%23B4432F' stroke-width='2.4' stroke-linecap='square'/%3E%3C/svg%3E");
  --pl-i-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 1.5l2.1 5.6 6 .3-4.7 3.7 1.6 5.8-5-3.3-5 3.3 1.6-5.8-4.7-3.7 6-.3z' fill='%23121417'/%3E%3C/svg%3E");
  --pl-i-star-o:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2.2l1.9 4.9 5.2.3-4.1 3.2 1.4 5-4.4-2.9-4.4 2.9 1.4-5-4.1-3.2 5.2-.3z' fill='none' stroke='%23121417' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E")}
/* rank tile = the gate tile sitting on the card's top rule, inside the column (never in the gutter) */
.listing-rank{inset-inline-start:20px;top:-16px;height:32px;min-width:32px;padding:0 8px;font-size:16px;letter-spacing:0;line-height:1}
.listing{padding:24px 20px 20px;margin:0 0 20px}
/* desktop card: 224 px offer column so no button wraps in en, sticky media and offer columns beside long lists */
@media(min-width:1024px){.listing-side{flex:0 0 224px;position:sticky;top:16px}.listing-media{position:sticky;top:16px}
  .listing.featured:not(.repeat) .benefits:has(> li:nth-child(8)){columns:2;column-gap:28px}
  .listing.featured:not(.repeat) .benefits:has(> li:nth-child(8)) li{break-inside:avoid;page-break-inside:avoid}}
/* badge row: chip first, position label drops to its own line when the two do not fit; the winner's tile + chip already say #1 */
.badge-row{flex-wrap:wrap;gap:6px 10px;align-items:center;margin-bottom:8px}
.badge{flex:0 1 auto;max-width:100%;line-height:1.3;text-wrap:balance}
.pos{flex:1 1 auto;min-width:0;line-height:1.3}
.listing.featured .pos{display:none}
.listing-main h3{margin:2px 0 10px}
/* rating row: ink SVG stars once, "Our rating" as the only caps token, the scoring sentence in mute body type under it */
.rating-row{gap:8px 10px;align-items:center;margin-bottom:12px}
.rating-row em{flex:1 1 100%;font-family:var(--pl-text-face);font-weight:400;font-size:14px;line-height:1.45;letter-spacing:0;text-transform:none;color:var(--pl-mute);text-wrap:pretty}
.stars{display:inline-flex;gap:2px;align-items:center;font-family:var(--pl-text-face);letter-spacing:0;text-transform:none;line-height:1}
.stars .star{display:inline-block;width:15px;height:15px;font-size:0;line-height:0;color:transparent;-webkit-text-stroke:0;background:var(--pl-i-star-o) center/15px 15px no-repeat}
.stars .star.on{background-image:var(--pl-i-star)}
.score-box .stars{display:none}
/* price row in the display face, tabular */
.price-block{gap:10px;align-items:baseline;flex-wrap:wrap;margin:0 0 14px}
.price-now{font-size:24px;line-height:1}
.price-was{font-size:15px}
/* pros and cons: one list, one size, SVG tiles (yellow tick, grey tile with the warn cross) */
.benefits li,.drawbacks li{font-size:15px;line-height:1.5;margin:0 0 8px;gap:10px;text-wrap:pretty}
.benefits .check,.drawbacks .cross{display:block;flex:none;width:20px;height:20px;margin-top:1px;border-radius:var(--pl-r-1);font-size:0;line-height:0;color:transparent}
.benefits .check{background:var(--pl-signal) var(--pl-i-tick) center/20px 20px no-repeat}
.drawbacks .cross{background:var(--pl-ground-2) var(--pl-i-cross) center/20px 20px no-repeat}
/* deal box: ink price line, mute date and terms in body type; warn red only for a short status chip */
.deal-box{gap:6px;padding:12px 14px;margin:14px 0 4px}
.deal-box strong{font-size:15px;line-height:1.4;text-wrap:pretty}
.deal-box span{font-size:14px;font-weight:400;color:var(--pl-mute)}
.deal-box em{font-family:var(--pl-text-face);font-weight:400;font-size:14px;line-height:1.5;letter-spacing:0;text-transform:none;color:var(--pl-mute);text-wrap:pretty}
.deal-box em b,.deal-box .status{font-family:var(--pl-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-warn);margin-inline-end:6px}
.deal-box bdi{white-space:nowrap}
/* offer column: score tile, the one button (never wraps its arrow), a plain note on a 1 px rule (the road stays on .important only) */
.listing-side{gap:12px}
.score-box{padding:12px 10px 10px;gap:4px}
.score-num{font-size:36px;line-height:1.25;padding:0 12px}
.cta,.btn{line-height:1.2}
.listing-side .cta{font-size:16px;letter-spacing:.03em;padding:12px 10px;text-wrap:balance;hyphens:manual;overflow-wrap:normal}
.cta .flip,.btn .flip{display:inline-block;margin-inline-start:.3em}
[dir=rtl] .cta .flip,[dir=rtl] .btn .flip{transform:scaleX(-1)}
.side-note{background:transparent;border:0;border-top:1px solid var(--pl-line);border-image:none;border-radius:0;padding:10px 0 0;font-size:13px;line-height:1.45;text-wrap:pretty}
/* winner strip = the sign strip attached to the recap card: gate tile "1" at the inline start, text start-aligned;
   the recap is a compact strip (three ticks, price, score, button) until the module emits its own */
.winner-banner{display:flex;align-items:center;gap:12px;justify-content:flex-start;text-align:start;font-size:15px;line-height:1.2;padding:6px 8px;margin:36px 0 0;border-radius:var(--pl-r-2) var(--pl-r-2) 0 0}
.winner-banner::before{content:"1";flex:none;display:inline-grid;place-items:center;width:28px;height:28px;background:var(--pl-signal);color:var(--pl-signal-ink);border-radius:var(--pl-r-1);font-weight:800;font-size:15px;letter-spacing:0;font-variant-numeric:tabular-nums}
.listing.repeat{margin-top:0;border-start-start-radius:0;border-start-end-radius:0}
.listing.repeat .listing-rank,.listing.repeat .benefits li:nth-child(n+4),.listing.repeat .drawbacks,.listing.repeat .deal-box,.listing.repeat .review-link,.listing.repeat .rating-row em{display:none}
/* value tiles: start-aligned signage, icon tile and caps title on one row, 15 px copy */
.tiles{gap:16px;margin:32px 0 8px}
.tile{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:14px;align-items:center;text-align:start;padding:18px}
.tile .tile-ic{margin:0;width:46px;height:46px;grid-column:1;grid-row:1}
.tile h3{grid-column:2;grid-row:1;margin:0;font-size:15px;line-height:1.25;text-wrap:balance}
.tile p{grid-column:1/-1;margin:12px 0 0;font-size:15px;line-height:1.5;color:var(--pl-mute);text-wrap:pretty}
/* one body size on the page: 17/1.6 for the opener and the review; 15/1.6 for boxes */
.opener p{font-size:17px;line-height:1.6}
.long-review .intro p,.long-review article p{font-size:17px;line-height:1.6;margin:0 0 16px}
.long-review article h3{line-height:1.15;margin:28px 0 12px}
.review-hero,.review-figure{background:var(--pl-ground-2)}
.important p,.final-offer p{font-size:15px;line-height:1.6;text-wrap:pretty}
/* the one road on the page tiles from the centre so both ends show the same partial dash instead of a stub at one end */
.important::before{background:var(--pl-lane) center top/48px 3px repeat-x}
.final-offer h2{font-size:24px;line-height:1.1;margin-bottom:8px}
/* FAQ (details/summary rows on 1 px rules), ready for the module: <section class="faq"><details><summary>Q</summary><p>A</p></details>… */
.faq{margin:32px 0}
.faq details{border-top:1px solid var(--pl-line)}
.faq details:last-of-type{border-bottom:1px solid var(--pl-line)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;font-family:var(--pl-display);font-weight:700;font-size:20px;line-height:1.2;color:var(--pl-text)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:28px;height:28px;display:inline-grid;place-items:center;border:2px solid var(--pl-ink);border-radius:var(--pl-r-1);font-size:18px;line-height:1}
.faq details[open] summary::after{content:"\2212"}
.faq details > :not(summary){padding:0 0 16px;margin:0;font-size:17px;line-height:1.6;color:var(--pl-text)}
/* Hebrew: heading tracking 0, and no uppercase transform on labels (Latin brand tokens inside Hebrew must not shout) */
[lang=he] :is(.hero h1,.flow-h,.long-review h2,.listing-main h3,.long-review article h3,.final-offer h2,.faq summary){letter-spacing:0}
[lang=he] :is(.badge,.pos,.winner-banner,.rating-row,.deal-box em b,.deal-box .status,.price-label,.score-word,.tile h3,.important strong,.sitebar .adv,.hero .verify,.cta,.btn,.article th,.prod-img.placeholder span,.trust .meet){text-transform:none}
/* phones and tablets under 900 (the template's three columns leave a 260 px main column at 768): the spec phone card,
   a 104 px thumbnail at the inline start beside chip, name, rating and price; lists and boxes below at full width;
   score tile + button on one row */
@media(max-width:899px){
  .listing{padding:24px 16px 16px}
  .listing-rank{inset-inline-start:16px}
  .listing-cols{display:block}
  .listing-cols::after{content:"";display:block;clear:both}
  .listing-media{float:inline-start;width:104px;margin:0 0 8px;margin-inline-end:14px}
  .listing-media .prod-img{width:104px;padding:5px}
  .review-link{font-size:13px;line-height:1.3;margin-top:8px}
  .listing-main{display:block;min-width:0}
  .listing-main h3{font-size:22px;line-height:1.12;margin:2px 0 8px}
  .badge-row{gap:6px 8px}
  .rating-row{margin-bottom:10px}
  .listing-main > :not(.badge-row):not(h3):not(.rating-row):not(.price-block){clear:both}
  .listing-side{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:10px;align-items:stretch;width:100%;clear:both;margin-top:14px}
  .score-box{grid-column:1;grid-row:1;padding:6px 10px;gap:2px;justify-content:center;min-width:96px}
  .score-num{font-size:24px;line-height:1.3;padding:0 8px}
  .listing-side .cta{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center;padding:10px 12px}
  .side-note{grid-column:1/-1}
  .final-offer{display:block;text-align:start;padding:18px 16px}
  .final-offer::after{content:"";display:block;clear:both}
  .final-offer .prod-img{float:inline-start;width:112px;margin:0 0 8px;margin-inline-end:14px}
  .final-offer > div{display:block}
  .final-offer .cta{display:block;clear:both;margin-top:4px}
  .long-review article h3{text-wrap:pretty}
  .tile{padding:16px}
}
@media(max-width:640px){.foot-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}}

/* ---- 4c. PL_GUIDE_NORMALISE_V1 companion (2026-09-09, leftover round). The guide module now emits the site masthead
   language chip, the sticky signpost strip, the criteria block, the FAQ, the five-column ink footer, one claim per chip
   and every pain-point line ticked; the rules below style them with the homepage's own values (pl-sitegen.py CSS_CORE),
   turn the phone card into a two-column grid, unify the button sizes and paint the consent reserve like the homepage. */
.nb{white-space:nowrap}
.co{unicode-bidi:isolate;direction:ltr}
html{background:var(--pl-ground)}
body{background:linear-gradient(to top,var(--pl-ground-2) 0 calc(var(--ctr-pad,0px) - 6px),var(--pl-signal) calc(var(--ctr-pad,0px) - 6px) var(--ctr-pad,0px),var(--pl-ground) var(--ctr-pad,0px))}
/* masthead: logo at the start, advertorial label and language chip at the end */
.sitebar .wrap{gap:12px}
.sitebar .adv{margin-inline-start:auto}
.langsel{position:relative;flex:none}
.langsel summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;border:2px solid var(--pl-ink);border-radius:var(--pl-r-1);padding:8px 10px;font-family:var(--pl-display);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;line-height:1;background:var(--pl-panel);color:var(--pl-text);white-space:nowrap}
.langsel summary::-webkit-details-marker{display:none}
.langsel .ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.langsel .ico.chev{width:14px;height:14px;transition:transform .15s}
.langsel[open] summary{background:var(--pl-ink);color:var(--pl-on-ink)}
.langsel[open] summary .chev{transform:rotate(180deg)}
.langmenu{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:50;background:var(--pl-panel);border:2px solid var(--pl-ink);border-radius:var(--pl-r-2);padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;inline-size:min(540px,calc(100vw - 32px));box-shadow:var(--pl-shadow)}
.langmenu a{text-decoration:none;color:var(--pl-text);font-size:14px;font-weight:500;padding:10px;border-radius:var(--pl-r-1);display:flex;align-items:center;gap:8px;white-space:nowrap}
.langmenu a:hover{background:var(--pl-ground)}
.langmenu a.cur{background:var(--pl-ink);color:var(--pl-on-ink);font-weight:700}
.langmenu a .cc{font-family:var(--pl-display);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--pl-mute);min-width:1.8em}
.langmenu a.cur .cc{color:var(--pl-signal)}
/* the sticky signpost strip */
.strip{position:sticky;top:0;z-index:30;background:var(--pl-ink);color:var(--pl-on-ink);border-block-end:1px solid var(--pl-ink-line)}
.strip .wrap{display:flex;align-items:center;gap:24px;min-height:var(--pl-strip);overflow-x:auto;scrollbar-width:none;padding-top:0;padding-bottom:0}
.strip .wrap::-webkit-scrollbar{display:none}
.strip a{flex:none;display:inline-flex;align-items:center;gap:8px;color:var(--pl-on-ink);font-family:var(--pl-display);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;white-space:nowrap;padding-block:12px;border-block-end:2px solid transparent;margin-block-end:-1px}
.strip a:hover,.strip a.on{border-color:var(--pl-signal)}
.strip .l{flex:none;display:inline-grid;place-items:center;width:20px;height:20px;background:var(--pl-signal);color:var(--pl-signal-ink);border-radius:var(--pl-r-1);font-weight:800;font-size:13px}
.strip .upd{margin-inline-start:auto;font-family:var(--pl-display);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--pl-on-ink-2);white-space:nowrap;padding-inline-start:16px}
.hero .verify bdi{font-variant-numeric:tabular-nums}
/* every pain-point line is a ticked item: one list, one size, then the lead paragraph */
.opener p.q{font-size:18px;line-height:1.3;margin:0 0 10px}
.opener p.q::before{top:.1em}
.opener p.q + p:not(.q){margin-top:18px}
/* chips: one claim each, never breaking inside a chip */
.badge{white-space:nowrap;text-wrap:initial}
/* list rows are blocks with the tile in the start gutter (not flex rows): an inline .nb span or any inline element
   inside a flex row would become its own flex item and push the text out of the column (he overflow, 2026-09-09) */
.benefits li,.drawbacks li{display:block;position:relative;padding-inline-start:30px;min-width:0}
.benefits .check,.drawbacks .cross{position:absolute;inset-inline-start:0;top:2px;margin:0}
.benefits li .nb,.drawbacks li .nb,.rating-row em .nb,.deal-box .nb{display:inline}
/* criteria block: numbered gate tiles on white rows */
.criteria{margin:32px 0 8px}
.crit-list{list-style:none;margin:0;padding:0;counter-reset:pl-crit;display:grid;gap:10px}
.crit-list li{counter-increment:pl-crit;position:relative;padding:14px 16px 14px 56px;background:var(--pl-panel);border:1px solid var(--pl-line);border-radius:var(--pl-r-2);font-size:15px;line-height:1.5;color:var(--pl-text);text-wrap:pretty}
[dir=rtl] .crit-list li{padding:14px 56px 14px 16px}
.crit-list li::before{content:counter(pl-crit);position:absolute;inset-inline-start:14px;top:13px;width:28px;height:28px;display:inline-grid;place-items:center;background:var(--pl-signal);color:var(--pl-signal-ink);border-radius:var(--pl-r-1);font-family:var(--pl-display);font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
.crit-list li b{font-weight:700}
.faq{margin:32px 0 8px}
/* one button size on the page (side column and final offer alike) */
/* long side-column labels (sv 'Kontrollera tillgänglighet') fit the 224 px column on one line */
:is([lang=sv],[lang=fi],[lang=hu],[lang=el]) .listing-side .cta{font-size:15px;letter-spacing:.01em;padding-inline:6px}
.final-offer .cta{font-size:16px;letter-spacing:.03em;padding:12px 16px}
/* PL_FIGURE_TRIM_V1 (operator 2026-09-09: "you did some images very tall ... the original height was much better"): the template's
   fixed-ratio trim (--top5-article-media-aspect + trim-top) stays in force; portrait review photos (tyre inflators) are cropped to the
   landscape figure like the original, never shown at full height. */
/* footer: the homepage's five columns, brand lockup, publisher block and copyright row on the ink ground */
.foot{padding:48px 0 0}
.foot .foot-cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.15fr) minmax(0,.9fr) minmax(0,1.3fr);gap:40px 32px}
.foot .brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--pl-on-ink);font-family:var(--pl-display);font-weight:800;font-size:26px;letter-spacing:-.01em;line-height:1;white-space:nowrap;direction:ltr}
.foot .brand .mark{width:34px;height:34px;flex:none}
.foot .brand .and{font-weight:600;color:var(--pl-on-ink-2)}
.foot .note{margin:24px 0 0;max-width:48ch;text-wrap:pretty}
.foot .pub{margin:24px 0 0;line-height:1.6}
.foot .pub b{color:var(--pl-on-ink)}
.foot .pub a{color:var(--pl-on-ink);text-decoration:none}
.foot .h{font-family:var(--pl-display);font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-on-ink);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.foot .h .l{display:inline-grid;place-items:center;width:20px;height:20px;background:var(--pl-signal);color:var(--pl-signal-ink);border-radius:var(--pl-r-1);font-weight:800;font-size:13px}
.foot ul{list-style:none;margin:0;padding:0}
.foot ul li{padding-block:3px}
.foot ul a{color:var(--pl-on-ink);text-decoration:none}
.foot ul a:hover{text-decoration:underline;text-decoration-color:var(--pl-signal);text-decoration-thickness:2px;text-underline-offset:4px}
.foot ul a.cur{color:var(--pl-signal);font-weight:700}
.foot .langs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px}
.foot .copy{margin-top:48px;padding-top:24px;border-top:1px solid var(--pl-ink-line);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center}
.foot .copy .foot-nav{margin:0;gap:8px 24px}
.foot .copy .co{color:var(--pl-on-ink-2)}
[lang=he] :is(.strip a,.strip .upd,.langsel summary,.foot .h){letter-spacing:.02em;text-transform:none}
@media(max-width:899px){
  .foot .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
  .foot .foot-brand{grid-column:1/-1}
  /* the phone card as a grid: thumbnail column + text column, lists and boxes full width below; long names keep the
     star row and the rating line in the text column (no float) */
  .listing-cols{display:grid;grid-template-columns:104px minmax(0,1fr);column-gap:14px;row-gap:0;align-items:start}
  .listing-cols::after{display:none}
  .listing-media{float:none;width:auto;margin:0;grid-column:1;grid-row:1/span 4;align-self:start}
  .listing-main{display:contents}
  .listing-main > :is(.badge-row,h3,.rating-row,.price-block){grid-column:2;min-width:0}
  .listing-main > :is(.benefits,.drawbacks,.deal-box){grid-column:1/-1;clear:none}
  .listing-main > .benefits{margin-top:6px}
  .listing-side{grid-column:1/-1;clear:none}
}
@media(max-width:640px){
  .foot .foot-cols{grid-template-columns:1fr;gap:28px}
  .foot .copy .foot-nav{flex:1 1 100%}
  .sitebar .wrap{gap:8px}
  .sitebar .adv{font-size:12px}
  .langsel{position:static}
  .langsel summary{padding:7px 8px}
  .langsel summary .lbl{display:none}
  .langmenu{position:fixed;inset-inline:12px;top:70px;inline-size:auto;max-height:calc(100vh - 84px);overflow:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
  .strip .upd{display:none}
  .strip .wrap{gap:10px;padding-inline-end:40px}
  .strip a{letter-spacing:.06em}
  .crit-list li{padding:12px 12px 12px 50px}
  [dir=rtl] .crit-list li{padding:12px 50px 12px 12px}
  .crit-list li::before{inset-inline-start:10px;top:11px}
}

/* ---- 5. presale (review) pages ---- */
/* PL_SKIN_V4 presale (2026-09-09, visual QA round, 8 brands x 22 languages): written against the template classes in
   data/msads-top5-presale-page.mjs and the normaliser output classes agreed in /var/tmp/pl/presale-skin-QUESTIONS.md
   (.p-trust .p-code .p-lead .p-step .p-verified .p-tick .p-cross .p-feat .p-kicker). Cascade: the skin link follows the
   template <style> and the per-doc pack <style> (alc-* / cf-*), so equal-specificity rules here win. Logical properties
   only (he is RTL). Desktop measure stays the full 804 px column (operator 2026-09-09 on the guides: running text takes the full width on
   desktop, PL_FULL_MEASURE_V1); the 68ch candidate in rounds/r6-skin/measure-block.css is NOT installed (closure record under PL_SKIN_V4_10 below).
   PL_SKIN_V4_6 (round 6, 2026-09-09 evening): footer disclosure link on the ink ground, tick tiles on every feature grid (numbers only on
   .p-step reason/step tiles and the opt-in .p-features-numbered), spanned orphan card, RTL chevron by bidi mirroring, hanging step tiles,
   one attribution style, stretched review cards, phone rating pill as one wrapping line, 13 px masthead label on phones, 40 px tap targets.
   PL_SKIN_V4_7 (round 7, 2026-09-09 night): the r5 shared footer partial (PL_PRESALE_FOOTER_V1) on presale pages: 40 px targets for the guide, company and
   language list links, the mailto and the footer brand link (the note's Terms link stays an inline text link); the old .foot-nav offset dropped inside the .copy row. Measure unchanged (PL_FULL_MEASURE_V1).
   PL_SKIN_V4_8 (round 9, 2026-09-10): review-card titles wrap pretty (locknox TITLE-1), the phone hyphenation law reaches plain-section paragraphs and list items
   (aceshades HY; 12-letter floor so DashSentry and SightNight never split), the three footer nav links wrap as one flex row on phones (aceshades FOOT-nav).
   Measure unchanged: the operator's real turn (2026-09-09 11:57 UTC) reads "top 5 designs definitely regressed, as text is not taking full width on desktop
   in article and paragraphs", a stated preference for full-width running text; the 68ch block stays in /var/tmp/pl/r6-candidate-measure.css until the operator rules for presales.
   PL_SKIN_V4_9 (round 10, 2026-09-10): the offer was/now price pair always stacks under 640 px (sightnight N16): one phone layout for every language and
   currency instead of a row that fitted in 13 of 22 languages by 1 to 30 px and wrapped in the other 9. Measure unchanged (PL_FULL_MEASURE_V1).
   PL_SKIN_V4_10 (round 12, 2026-09-10): the measure items are CLOSED as by design, no rule change. Verifier items lingolink 26 and pumpwhiz 30/31 (and the
   alcogate 24, locknox 31, dashsentry 40, sightnight N8, carfixio C4 twins) asked for a 68ch cap on running text at 1440 (804 px column, about 100 characters
   a line). The only operator ruling on the subject is the real turn 2026-09-09T11:57:25Z, which calls running text that does not take the full desktop width
   a regression; no later operator turn reverses it, and the presales share the guides' body face, size and column, so the presale section keeps the full
   measure. Do not reopen these items and do not splice measure-block.css without a new operator turn that rules for a narrower measure on presales. */
.presale-article{background:var(--pl-ground)}
body[data-top5-presale-brand] .sitebar{position:static}
.presale-body{--pl-tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.6 10.4l3.7 3.7 7.1-8.2' fill='none' stroke='%23121417' stroke-width='2.6' stroke-linecap='square'/%3E%3C/svg%3E");--pl-cross:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.6 5.6l8.8 8.8M14.4 5.6l-8.8 8.8' fill='none' stroke='%23B4432F' stroke-width='2.4' stroke-linecap='square'/%3E%3C/svg%3E");color:var(--pl-text);font-family:var(--pl-text-face);font-size:17px;line-height:1.6;overflow-wrap:anywhere;counter-reset:pl-row}
/* 5.1 type scale: one body size (17/1.6) on every viewport, condensed display headings, 13 px caps floor */
.presale-body p,.presale-body li{color:var(--pl-text);font-size:17px;line-height:1.6}
.presale-body p{margin:0 0 16px}
.presale-body li{margin:0 0 8px}
.presale-body b,.presale-body strong{color:var(--pl-text);font-weight:700}
.presale-body s,.presale-body del{color:var(--pl-mute)}
.presale-body em,.presale-body i{font-style:normal}
.presale-body .p-hl{background:linear-gradient(180deg,transparent 62%,var(--pl-signal) 62%);padding:0;border-radius:0}
.presale-body h1,.presale-body h2,.presale-body h3,.presale-body h4,.presale-body h5{font-family:var(--pl-display);font-weight:700;color:var(--pl-text);letter-spacing:-.01em;text-wrap:balance}
.presale-body h1{font-weight:800;text-transform:uppercase;line-height:1.04;letter-spacing:-.005em;font-size:clamp(2rem,4.2vw,3.5rem);margin:8px 0 18px}
.presale-body h2{font-size:clamp(26px,2.4vw,32px);line-height:1.08;padding-inline-start:24px;position:relative;margin:40px 0 16px}
.presale-body h2::before{content:"";position:absolute;inset-inline-start:0;top:.42em;width:12px;height:12px;background:var(--pl-signal);border-radius:1px}
.presale-body h2:first-child,.presale-body div:first-child>h2{margin-top:40px}
.presale-body h1+h2,.presale-body .p-meta+h2{margin-top:24px}
.presale-body h3{font-size:22px;line-height:1.15;margin:28px 0 10px}
.presale-body h2+h3{margin-top:2px}
.presale-body h4{font-size:21px;line-height:1.2;margin:26px 0 10px}
.presale-body h5{font-size:19px;line-height:1.2;margin:22px 0 8px}
.presale-body h6,.presale-body .p-kicker{font-family:var(--pl-display);font-weight:700;font-size:13px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--pl-mute);margin:26px 0 6px}
.presale-body h6+div>div>p:only-child{display:inline;margin:0}
.presale-body h6+div>div{margin:0 0 8px}
[lang=he] .presale-body :is(h1,h2,h3,h4){letter-spacing:0}
[lang=he] .presale-body h1{line-height:1.08}
/* 5.2 the dek: only the true lead (after h1 / meta / hero figure), never "any paragraph after any first image" */
.presale-body img:first-of-type+p,.presale-body img:first-of-type+div{font-size:inherit;line-height:inherit;color:var(--pl-text);font-weight:400}
.presale-body .p-lead,.presale-body h1+p,.presale-body .p-meta+h4,.presale-body .p-meta+div>img:first-child+div>p,.presale-body .p-meta+div>div:first-child>img:first-child+div>p{font-family:var(--pl-text-face);font-size:20px;line-height:1.45;color:var(--pl-mute);font-weight:400;font-style:normal;letter-spacing:0;text-transform:none;text-wrap:pretty;margin:0 0 18px}
.presale-body :is(.p-lead,h1+p,.p-meta+h4,.p-meta+div>img:first-child+div>p,.p-meta+div>div:first-child>img:first-child+div>p) :is(b,strong,em,i,a){color:inherit;font-weight:600;font-style:normal}
.presale-body :is(.p-meta+div,.p-meta+script+div)>blockquote:first-child:not(.p-pull){border:0;background:transparent;border-radius:0;padding:0;margin:0 0 18px;font-family:var(--pl-text-face);font-size:20px;line-height:1.45;color:var(--pl-mute);font-weight:400;quotes:none}
.presale-body :is(.p-meta+div,.p-meta+script+div)>blockquote:first-child:not(.p-pull) :is(b,strong,a){color:inherit;font-weight:600}
/* 5.3 links: running-text links are a 2 px ink underline, no weight change; headings never underline */
.presale-body a{color:var(--pl-text);text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--pl-ink)}
.presale-body a:not([data-presale-cta]){font-weight:inherit}
.presale-body a:hover{color:var(--pl-text);text-decoration-color:var(--pl-signal)}
.presale-body :is(h1,h2,h3,h4,h5,h6) a{text-decoration:none;color:inherit}
.presale-body a[data-presale-cta],a[data-presale-cta]{background:var(--pl-cta);color:var(--pl-cta-ink);border:2px solid var(--pl-ink);border-radius:var(--pl-r-1);font-family:var(--pl-display);font-weight:700;font-size:18px;letter-spacing:.04em;text-transform:uppercase;box-shadow:none;text-decoration:none;text-wrap:balance;transition:background .15s,color .15s}
.presale-body a[data-presale-cta]:hover,a[data-presale-cta]:hover{background:var(--pl-ink);color:var(--pl-on-ink);transform:none}
/* 5.4 imagery: 4 px radius, 1 px line, no shadow; mid-size content images fill the column */
.presale-body img{border-radius:var(--pl-r-2);border-color:var(--pl-line);box-shadow:none;margin:8px auto 24px}
.presale-body img:first-of-type{max-height:none;object-fit:fill}
.presale-body img:is([width^="5"],[width^="6"],[width^="7"],[width^="8"],[width^="9"],[width="100%"]):not(.p-vector):not(.p-small):not(.p-icon):not(.p-avatar):not(.p-meta-ava):not(.p-c-ava){width:100%;height:auto}
.presale-body img.p-avatar{display:none}
.presale-body img.p-small{border-radius:var(--pl-r-2);margin:4px 0;margin-inline-end:10px}
.presale-body img.p-icon{margin:0;margin-inline-end:6px}
.presale-body :is(h1,h2,h3,h4,h5,h6) img{margin:0 !important;margin-inline-end:8px !important}
.presale-body .p-vector{color:var(--pl-ink)}
/* legacy presale-doc vectors: badges and clip art hidden, line-art and stars mapped to ink (saturated fills -> black, white -> white); flags keep their colours */
.presale-body img.p-vector[src*='/50off']{display:none}
.presale-body .p-iconrow:has(>img.p-vector[src*='/50off']:first-child){display:block}
.presale-body .p-iconrow:has(>img.p-vector[src*='/50off']:only-of-type):not(:has(p)){display:none}
.presale-body img.p-small[src*='guarantee']{display:none}
.presale-body img.p-small[src*='designimage']{display:none}
.presale-body .p-iconrow:has(>img.p-small[src*='designimage']){display:block}
.presale-body div>img.p-vector[src*='/icon']:first-child{display:none}
.presale-body img.p-vector:is([src*='/list'],[src*='/icon'],[src*='/ic'],[src*='/star']):not([src*='check']):not([src*='flag']){filter:grayscale(1) brightness(.6) contrast(5)}
.presale-body img.p-vector[src*='/stars']{max-height:16px;margin:0 auto 6px}
.presale-body p+img.p-vector[src*='/stars'],.presale-body [data-p-stack] img.p-vector[src*='/stars']{margin:0 0 6px}
/* 5.5 byline row: two hairlines, no card; name 15, sub 13, rating chip */
.presale-body ul.p-byline,.presale-body ul.p-byline li{color:var(--pl-mute);font-family:var(--pl-display);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.presale-body ul.p-byline li:not(:first-child)::before{margin:0;margin-inline-end:10px;color:var(--pl-line)}
.presale-body ul.p-byline .brand{display:inline-flex;align-items:center;gap:8px;color:var(--pl-text)}
.presale-body ul.p-byline .brand[data-initial]::before{content:attr(data-initial);display:inline-grid;place-items:center;width:20px;height:20px;background:var(--pl-ink);color:var(--pl-signal);border-radius:var(--pl-r-1);font-weight:800;font-size:12px}
.presale-body img.p-avatar:not(.p-meta-ava):not(.p-c-ava)+div,.presale-body img.p-avatar:not(.p-meta-ava):not(.p-c-ava)+span,.presale-body img.p-avatar:not(.p-meta-ava):not(.p-c-ava)+ul{color:var(--pl-mute)}
.presale-body img.p-avatar+div b,.presale-body img.p-avatar+div strong{color:var(--pl-text)}
.presale-body .p-meta{background:transparent;border:0;border-top:1px solid var(--pl-line);border-bottom:1px solid var(--pl-line);border-radius:0;box-shadow:none;padding:12px 0;margin:12px 0 22px;flex-wrap:wrap;gap:12px}
.presale-body .p-meta-col{color:var(--pl-mute)}
.presale-body .p-meta-name{color:var(--pl-text);font-weight:700;font-size:15px}
.presale-body .p-meta-sub{color:var(--pl-mute);font-size:13px;line-height:1.4}
.presale-body .p-meta-rate{background:var(--pl-panel);border:1px solid var(--pl-line);border-radius:var(--pl-r-2);max-width:100%;flex-wrap:wrap;min-width:0;box-sizing:border-box;padding:6px 12px;align-items:center;margin-left:0;margin-right:0;margin-inline-start:auto}
.presale-body .p-meta-rate .p-ustars,.presale-body .p-ustars{color:var(--pl-ink);letter-spacing:2px}
.presale-body .p-meta-ratetxt{white-space:normal;overflow-wrap:anywhere;font-size:13px;color:var(--pl-text);font-family:var(--pl-display);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
/* 5.6 lists: logical indent; icon bullets become 20 px tiles (yellow tick / grey cross) with a hanging indent */
.presale-body ul,.presale-body ol{margin:0 0 18px;padding:0;margin-inline-start:24px}
.presale-body li img.p-icon,.presale-body li img.p-vector,.presale-body li img.p-small{margin:0;margin-inline-end:8px}
.presale-body li:has(> img.p-icon,> img.p-vector,> img.p-small),.presale-body li.p-tick,.presale-body li.p-cross{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:start;list-style:none}
.presale-body li:has(> img.p-icon,> img.p-vector,> img.p-small)>img{grid-column:1;grid-row:1;margin:0;max-height:20px;width:auto;justify-self:center;align-self:center}
.presale-body li:has(> img:is([src*='/success.'],[src*='/lingolink/check.'],[src*='/icon-check.'],[src*='/no.'],[src*='/dashsentry/check.']))>img{display:none}
.presale-body li:has(> img:is([src*='/success.'],[src*='/lingolink/check.'],[src*='/icon-check.']))::before,.presale-body li.p-tick::before{content:"";grid-column:1;grid-row:1;width:20px;height:20px;margin-top:3px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/20px 20px no-repeat}
.presale-body li:has(> img:is([src*='/no.'],[src*='/dashsentry/check.']))::before,.presale-body li.p-cross::before{content:"";grid-column:1;grid-row:1;width:20px;height:20px;margin-top:3px;border-radius:var(--pl-r-1);background:var(--pl-ground-2) var(--pl-cross) center/20px 20px no-repeat}
/* 5.7 feature rows (.p-iconrow and the dashsentry div>div(img)+div(p+text) blocks): 20 px condensed label, 17 px body, yellow tick tile instead of clip art (numbers are reserved for .p-step) */
.presale-body .p-iconrow{grid-template-columns:32px minmax(0,1fr);column-gap:16px;align-items:start;text-align:start;margin:0 0 22px}
.presale-body .p-iconrow>img{grid-column:1;grid-row:1;margin:0;max-height:32px}
.presale-body .p-iconrow>div{grid-column:2;font-family:var(--pl-text-face);font-size:17px;line-height:1.6;color:var(--pl-text);font-weight:400}
.presale-body .p-iconrow>div>p:first-child,.presale-body .p-iconrow>div>div:first-child{color:var(--pl-text);font-weight:700;font-family:var(--pl-display);font-size:20px;line-height:1.2;letter-spacing:0;margin:3px 0 4px}
.presale-body .p-iconrow>div>p{margin:0 0 8px}
.presale-body .p-iconrow:has(> img.p-vector:is([src*='/ic'],[src*='/list'])){counter-increment:pl-row}
.presale-body .p-iconrow:has(> img.p-vector:is([src*='/ic'],[src*='/list']))>img{display:none}
.presale-body .p-iconrow:has(> img.p-vector:is([src*='/ic'],[src*='/list']))::before,.presale-body div:has(> div:first-child > img:only-child):has(> div:nth-child(2) > p:first-child):not([data-p-row]):not(.p-iconrow)::before{content:"";grid-column:1;grid-row:1;width:32px;height:32px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/24px 24px no-repeat}
.presale-body div:has(> div:first-child > img:only-child):has(> div:nth-child(2) > p:first-child):not([data-p-row]):not(.p-iconrow){display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:16px;align-items:start;text-align:start;margin:0 0 24px;counter-increment:pl-row}
.presale-body div:has(> div:first-child > img:only-child):has(> div:nth-child(2) > p:first-child):not([data-p-row]):not(.p-iconrow)>div:first-child:has(> img.p-vector){display:none}
.presale-body div:has(> div:first-child > img:only-child):has(> div:nth-child(2) > p:first-child):not([data-p-row]):not(.p-iconrow)>div:first-child:has(> img:not(.p-vector)){grid-column:2;grid-row:2;margin:0}
.presale-body div:has(> div:first-child > img:only-child):has(> div:nth-child(2) > p:first-child):not([data-p-row]):not(.p-iconrow)>div:first-child>img{width:100%;height:auto;margin:4px 0 8px}
.presale-body div:has(> div:first-child > img:only-child):has(> div:nth-child(2) > p:first-child):not([data-p-row]):not(.p-iconrow)>div:nth-child(2){grid-column:2;grid-row:1;font-size:17px;line-height:1.6;color:var(--pl-text)}
.presale-body div:has(> div:first-child > img:only-child):has(> div:nth-child(2) > p:first-child):not([data-p-row]):not(.p-iconrow)>div:nth-child(2)>p:first-child{color:var(--pl-text);font-weight:700;font-family:var(--pl-display);font-size:20px;line-height:1.2;letter-spacing:0;margin:3px 0 4px}
/* icon + heading rows (template PRESALE_V16 grid): the check rows become tick-tiled h3s, star rows stack */
.presale-body div:has(> img.p-vector[src*='/check']:first-child):has(> h6){display:block;margin:0 0 6px}
.presale-body div:has(> img.p-vector[src*='/check']:first-child):has(> h6)>img{display:none}
.presale-body div:has(> img.p-vector[src*='/check']:first-child):has(> h6)>h6,.presale-body h3.p-feat{position:relative;padding-inline-start:30px;font-family:var(--pl-display);font-size:22px;line-height:1.15;letter-spacing:-.01em;text-transform:none;color:var(--pl-text);font-weight:700;margin:24px 0 8px}
.presale-body div:has(> img.p-vector[src*='/check']:first-child):has(> h6)>h6::before,.presale-body h3.p-feat::before{content:"";position:absolute;inset-inline-start:0;top:.1em;width:20px;height:20px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/20px 20px no-repeat}
.presale-body div:has(> img.p-vector[src*='/stars']:first-child + :is(h2,h3,h4,h5,h6)){display:block}
.presale-body div:has(> img.p-vector[src*='/stars']:first-child + :is(h2,h3,h4,h5,h6))>img{max-height:16px;margin:0 0 6px}
.presale-body div:has(> img.p-vector[src*='/stars']:first-child + :is(h2,h3,h4,h5,h6))>h3{font-size:20px;margin:0 0 8px}
[dir=rtl] .presale-body .p-iconrow,[lang=he] .presale-body .p-iconrow{text-align:start}
[dir=rtl] .presale-body div:has(> :is(img.p-icon,img.p-small,img.p-vector):first-child + :is(h2,h3,h4,h5,h6)){text-align:start}
/* verified-customer label (locknox): tick tile + condensed caps */
.presale-body span:has(> img.p-vector[src*='icon-check']),.presale-body .p-verified{display:inline-flex;align-items:center;gap:6px;font-family:var(--pl-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-mute)}
.presale-body span:has(> img.p-vector[src*='icon-check'])>img{display:none}
.presale-body span:has(> img.p-vector[src*='icon-check'])::before,.presale-body .p-verified::before{content:"";flex:none;width:16px;height:16px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/16px 16px no-repeat}
/* star rows: one ink text row instead of five image requests (only when the row is a full five) */
.presale-body ul.p-stars{margin:0 0 10px}
.presale-body ul.p-stars:has(> li:nth-child(5)) li{display:none}
.presale-body ul.p-stars:has(> li:nth-child(5))::before{content:"\2605\2605\2605\2605\2605";color:var(--pl-ink);font-size:15px;letter-spacing:2px;line-height:1}
.presale-body ul.p-stars img{max-height:16px}
/* star-row testimonials (pumpwhiz): the star row + paragraph pair reads as a quote card */
.presale-body div:has(> ul.p-stars:first-child + p):not(.p-iconrow *){border:1px solid var(--pl-line);border-inline-start:4px solid var(--pl-signal);background:var(--pl-panel);border-radius:var(--pl-r-2);padding:16px 20px 10px;margin:0 0 16px}
.presale-body div:has(> ul.p-stars:first-child + p):not(.p-iconrow *)>p{margin:0 0 8px}
/* 5.8 the offer unit: a full-width sign plate (2 px ink, white), yellow kicker square hugging the eyebrow, ink price on a yellow tile, one button, urgency line, trust chips */
.p-offer,.presale-body .p-offer{border:2px solid var(--pl-ink);background:var(--pl-panel);border-radius:var(--pl-r-2);box-shadow:none;max-width:none;padding:24px 24px 20px;margin:32px 0;text-align:center}
.presale-body .p-offer-coupon,.presale-body .p-offer-card,.presale-body .p-offer-strip,.p-offer-card,.presale-body .p-offer.p-offer-coupon{background:var(--pl-panel);border:2px solid var(--pl-ink);border-radius:var(--pl-r-2);max-width:none}
.presale-body .p-offer:last-child{margin-bottom:0}
.presale-body .p-offer-code{display:inline-block;background:var(--pl-signal-tint);border:1px solid var(--pl-ink);border-radius:var(--pl-r-1);padding:4px 10px;font-family:var(--pl-display);font-weight:800;letter-spacing:.08em;margin:0 0 12px}
.presale-body .p-offer-head,.presale-body :is(h1,h2,h3,h4,h5,h6,p):has(+ .p-offer){text-align:inherit}
.p-offer-head,.presale-body .p-offer-head{border-bottom:0}
.presale-body h2.p-offer-head,.presale-body [data-p-row]:not([data-p-stack]) h2{padding-inline-start:0}
.presale-body h2.p-offer-head::before,.presale-body [data-p-row]:not([data-p-stack]) h2::before{display:none}
.p-offer-eyebrow,.presale-body .p-offer-eyebrow{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:0;position:static;color:var(--pl-mute);font-family:var(--pl-display);font-weight:700;font-size:13px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}
.presale-body .p-offer-eyebrow::before,.p-offer-eyebrow::before{content:"";position:static;flex:none;width:12px;height:12px;background:var(--pl-signal);border-radius:1px}
.presale-body .p-offer-stars{color:var(--pl-ink);letter-spacing:2px}
.presale-body .p-offer-price{gap:12px 18px;margin:0 0 14px}
.presale-body .p-offer-was{color:var(--pl-mute);font-size:15px;font-variant-numeric:tabular-nums}
.presale-body .p-offer-was s{color:var(--pl-mute)}
.presale-body .p-offer-now{color:var(--pl-text);font-family:var(--pl-display);font-weight:700;font-size:17px;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:8px}
.presale-body .p-offer-now b{color:var(--pl-signal-ink);background:var(--pl-signal);border-radius:var(--pl-r-1);padding:1px 8px;font-size:24px;font-weight:800;line-height:1.25}
.presale-body .p-offer a[data-presale-cta]{max-width:520px;margin:0 auto 12px}
.p-offer-urgency,.presale-body .p-offer-urgency{color:var(--pl-text);font-family:var(--pl-text-face);font-weight:600;font-size:14px;line-height:1.4;letter-spacing:0;text-transform:none;text-wrap:balance;margin:0 auto 12px;max-width:56ch}   /* PL_SKIN_V4_4: red stays with crosses (DESIGN-SPEC), the urgency line is ink */
.p-offer-trust,.presale-body .p-offer-trust{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;border:0;padding:0;background:transparent;color:var(--pl-text);font-family:var(--pl-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;line-height:1.3}
.presale-body .p-offer-trust>span,.p-offer-trust>span,.presale-body .p-offer-trust>p>span{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--pl-ink);border-radius:var(--pl-r-1);padding:4px 7px;background:var(--pl-panel);white-space:nowrap;max-width:100%}
.presale-body [data-p-row] :is(.p-offer-eyebrow,.p-offer-trust){font-size:13px;line-height:1.4}
.presale-body [data-p-row] .p-offer-trust{line-height:1.3}
.presale-body [data-p-row] .p-offer-urgency{font-size:14px;line-height:1.4}
.presale-body [data-p-row] :is(.p-offer-price,.p-offer){font-size:17px;line-height:1.6}
.presale-body .p-offer-trust>span.p-trust::before,.p-offer-trust>span.p-trust::before,.presale-body .p-offer-trust>p>span.p-trust::before{content:"";flex:none;width:16px;height:16px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/16px 16px no-repeat}
/* 5.9 quotes */
.presale-body .p-pquote{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);box-shadow:none;background:var(--pl-panel)}
.presale-body .p-pquote-img{border-radius:var(--pl-r-2)}
.presale-body .p-pquote-mark{font-family:var(--pl-display);color:var(--pl-signal);font-weight:800}
.presale-body .p-pquote-body{color:var(--pl-text)}
.presale-body .p-pquote-meta{color:var(--pl-text);font-weight:700;font-size:14px}
.presale-body .p-pquote-meta .p-ustars{margin:0;margin-inline-end:6px}
.presale-body blockquote{border:1px solid var(--pl-line);border-inline-start:4px solid var(--pl-signal);background:var(--pl-ground);border-radius:var(--pl-r-2);box-shadow:none;padding:16px 20px 12px}
.presale-body blockquote p{color:var(--pl-text);font-size:17px}
.presale-body blockquote .p-attrib{color:var(--pl-text);font-weight:700;font-size:14px}
.presale-body blockquote.p-pull{border:0;background:transparent;border-inline-start:4px solid var(--pl-ink);padding:6px 0;padding-inline-start:22px;margin:28px 0}
.presale-body blockquote.p-pull p{font-family:var(--pl-display);font-weight:700;font-size:24px;line-height:1.15;color:var(--pl-text);margin:0}
.presale-body blockquote.p-pull :is(a,b,strong){font-weight:inherit;color:inherit;text-decoration:none}
/* 5.10 tables: ink heads, centred mark columns, tiles for the tick/cross images, scroll inside on phones */
.presale-body table{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);font-variant-numeric:tabular-nums;border-collapse:separate;border-spacing:0;overflow:hidden}
.presale-body th{background:var(--pl-ink);color:var(--pl-on-ink);font-family:var(--pl-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px;white-space:normal}
.presale-body th:not(:first-child){text-align:center}
.presale-body td{border-top:1px solid var(--pl-line);color:var(--pl-text);vertical-align:middle;white-space:normal}
.presale-body td p{margin:0;font-size:inherit;line-height:1.4}
.presale-body tr:nth-child(even) td{background:var(--pl-ground)}
.presale-body td:has(> img.p-vector),.presale-body td.p-tick,.presale-body td.p-cross{text-align:center}
.presale-body td>img.p-vector{display:block;margin:0 auto;max-height:20px}
.presale-body td:has(> img:is([src*='/success.'],[src*='/no.']))>img{display:none}
.presale-body td:has(> img[src*='/success.'])::before,.presale-body td.p-tick::before{content:"";display:inline-block;width:20px;height:20px;border-radius:var(--pl-r-1);vertical-align:middle;background:var(--pl-signal) var(--pl-tick) center/20px 20px no-repeat}
.presale-body td:has(> img[src*='/no.'])::before,.presale-body td.p-cross::before{content:"";display:inline-block;width:20px;height:20px;border-radius:var(--pl-r-1);vertical-align:middle;background:var(--pl-ground-2) var(--pl-cross) center/20px 20px no-repeat}
.presale-body iframe,.presale-body video{border-radius:var(--pl-r-2);box-shadow:none}
.presale-body hr{border:0;height:3px;background:var(--pl-lane)}
/* 5.11 multi-column rows: flag grids, stacked reason rows with gate-tile numbers */
.presale-body [data-p-row]:has(> :nth-child(12)){grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 8px;align-items:start}   /* PL_SKIN_V4_4: 30 flags = 5 full rows of 6 (auto-fill left a ragged tail of 2) */
@media(max-width:700px){.presale-body [data-p-row]:has(> :nth-child(12)){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:560px){.presale-body [data-p-row]:has(> :nth-child(12)){grid-template-columns:repeat(3,minmax(0,1fr))}}
.presale-body [data-p-row]:has(> :nth-child(12)) img.p-vector{width:40px;max-height:30px;border:1px solid var(--pl-line);border-radius:2px;margin:0 auto 6px;box-shadow:none;filter:none}
.presale-body [data-p-row]:has(> :nth-child(12)) p{font-size:13px;line-height:1.3;margin:0}
.presale-body [data-p-stack]{text-align:start;align-items:center;gap:32px;margin:0 0 40px;counter-increment:pl-step}
.presale-body section:has([data-p-stack]),.presale-body div:has(> [data-p-stack]){counter-reset:pl-step}
.presale-body [data-p-stack] h2:first-child{margin-top:0}
.presale-body [data-p-stack] h2,.presale-body :is(h2,h3):has(> .p-step){padding-inline-start:0}
.presale-body [data-p-stack] h2::before,.presale-body :is(h2,h3):has(> .p-step)::before{display:none}
.presale-body [data-p-row]:has(.p-offer){grid-template-columns:1fr}
.presale-body [data-p-stack] img{margin:0}
.presale-body .p-step,.presale-body [data-p-stack]:not(:has(.p-step))>div>div:first-child>span:only-child,.presale-body [data-p-stack]:not(:has(.p-step))>div>div:first-child:not(:has(*))::before{display:inline-grid;place-items:center;width:32px;height:32px;background:var(--pl-signal);color:var(--pl-signal-ink);font-family:var(--pl-display);font-weight:800;font-size:18px;line-height:1;border-radius:var(--pl-r-1);font-variant-numeric:tabular-nums;margin:0 0 10px;vertical-align:middle}
.presale-body [data-p-stack]:not(:has(.p-step))>div>div:first-child:not(:has(*))::before{content:counter(pl-step)}
.presale-body [data-p-stack]:has(.p-step)>div>div:first-child:not(:has(*)){display:none}
.presale-body h2 .p-step,.presale-body h3 .p-step{margin:0;margin-inline-end:12px;vertical-align:middle}
.presale-body h3 .p-step{width:28px;height:28px;font-size:16px;margin-inline-end:10px}
.presale-body :is(h2,h3):has(> .p-step){display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start}
.presale-body :is(h2,h3):has(> .p-step)>.p-step{margin:0;margin-top:.08em}
.presale-body h3:has(> .p-step){column-gap:10px}
/* 5.12 per-doc design packs (alcogate alc-*, carfixio cf-*) brought onto the system: 1 px line, 4 px radius, no shadows, no amber, no navy, no green pills */
.presale-body .alc-feats{gap:12px;counter-reset:pl-feat}
.presale-body .alc-feat{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);box-shadow:none;background:var(--pl-panel);padding:16px 18px;gap:14px;counter-increment:pl-feat}
.presale-body .alc-feat-ic{background:var(--pl-ground-2);border-radius:var(--pl-r-2);flex:0 0 44px;width:44px;height:44px}
.presale-body .alc-feat-ic img{width:26px !important;height:26px !important;filter:grayscale(1) brightness(.6) contrast(5)}
.presale-body .alc-feat-ic:empty{flex-basis:32px;width:32px;height:32px;background:var(--pl-signal);border-radius:var(--pl-r-1);display:grid;place-items:center}
.presale-body .alc-feat-ic:empty{background:var(--pl-signal) var(--pl-tick) center/24px 24px no-repeat}
.presale-body .alc-feat-tx h4{color:var(--pl-text);font-size:20px;line-height:1.15;margin:0 0 6px;letter-spacing:-.01em}
.presale-body .alc-feat-tx p{font-size:16px;line-height:1.5;color:var(--pl-text);margin:0}
.presale-body figure.alc-quote,.presale-body figure.cf-quote{border:1px solid var(--pl-line);border-inline-start:4px solid var(--pl-signal);border-radius:var(--pl-r-2);box-shadow:none;background:var(--pl-panel);padding:18px 20px 14px;margin:0 0 14px}
.presale-body figure.alc-quote::before,.presale-body figure.cf-quote::before,.presale-body .alc-q-mark,.presale-body .cf-q-mark{display:none}
.presale-body .alc-q-body,.presale-body .cf-q-body{font-size:16px;line-height:1.55;color:var(--pl-text);text-align:start}
.presale-body .alc-q-body p,.presale-body .cf-q-body p,[dir=rtl] .presale-body .cf-q-body p,[dir=rtl] .presale-body .cf-q-body{font-size:inherit;line-height:inherit;margin:0;text-align:start}
.presale-body .alc-q-foot,.presale-body .cf-q-foot{border-top:1px solid var(--pl-line);gap:10px;margin-top:12px;padding-top:12px}
.presale-body .alc-q-ava,.presale-body .cf-q-ava{width:32px;height:32px;flex:0 0 32px;border-radius:var(--pl-r-1);background:var(--pl-ink);color:var(--pl-signal);font-family:var(--pl-display);font-weight:800;font-size:15px}
.presale-body .alc-q-who b,.presale-body .cf-q-who b{font-size:14px;color:var(--pl-text)}
.presale-body .alc-q-who i,.presale-body .cf-q-who i{color:var(--pl-ink);font-size:13px;letter-spacing:.1em}
.presale-body .cf-q-who em{font-size:13px;color:var(--pl-mute)}
.presale-body .alc-q-badge,.presale-body .cf-q-badge,[dir=rtl] .presale-body .alc-q-badge,[dir=rtl] .presale-body .cf-q-badge{background:var(--pl-panel);border:2px solid var(--pl-ink);color:var(--pl-text);border-radius:var(--pl-r-1);font-family:var(--pl-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;line-height:1.3;margin-left:0;margin-right:0;margin-inline-start:auto}
.presale-body .cf-quotes{grid-template-columns:1fr;gap:14px}
.presale-body .cf-kick{font-family:var(--pl-display);font-weight:700;font-size:13px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--pl-mute);margin:32px 0 6px}
.presale-body .cf-kick+h2{margin-top:0}
/* 5.15 normaliser output (PL_PRESALE_NORMALISE_V1, /var/tmp/pl/presale-normaliser-NOTES.md): feature cards, tick/cross lists, table marks, quote cards, offer slots, review cards */
.presale-body .p-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:8px 0 28px;counter-reset:pl-feat}
.presale-body .p-feature{border:1px solid var(--pl-line);border-radius:var(--pl-r-2);background:var(--pl-panel);padding:16px 18px;margin:0;counter-increment:pl-feat;min-width:0}
/* PL_SKIN_V4_6 tiles law (verifier lingolink N2, pumpwhiz N7): a .p-features grid is a benefit list, so its cards carry the 20 px signal tile with the ink tick;
   numbered tiles are reserved for .p-step (reason rows, steps) and the opt-in .p-features-numbered variant, which no live page emits */
.presale-body .p-feature h3{font-size:19px;line-height:1.2;margin:0 0 6px;position:relative;padding-inline-start:30px;min-height:0}
.presale-body .p-feature h3::before{content:"";position:absolute;inset-inline-start:0;top:.1em;width:20px;height:20px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/20px 20px no-repeat}
.presale-body .p-features.p-features-numbered .p-feature h3{padding-inline-start:38px;min-height:28px}
.presale-body .p-features.p-features-numbered .p-feature h3::before{content:counter(pl-feat);top:-2px;display:grid;place-items:center;width:28px;height:28px;background:var(--pl-signal);color:var(--pl-signal-ink);font-family:var(--pl-display);font-weight:800;font-size:16px;line-height:1;font-variant-numeric:tabular-nums}
.presale-body .p-feature p{margin:0;font-size:17px;line-height:1.55}
.presale-body .p-feature p+p{margin-top:8px}
@media(min-width:561px){.presale-body .p-features>.p-feature:last-child:nth-child(odd){grid-column:1/-1}}   /* the odd last card spans the two columns instead of leaving an empty cell (lingolink N1) */
.presale-body ul.p-ticks,.presale-body ul.p-crosses{margin-inline-start:0;list-style:none}
.presale-body ul.p-ticks>li,.presale-body ul.p-crosses>li{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:start;list-style:none}
.presale-body ul.p-ticks>li::before{content:"";grid-column:1;grid-row:1;width:20px;height:20px;margin-top:3px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/20px 20px no-repeat}
.presale-body ul.p-crosses>li::before{content:"";grid-column:1;grid-row:1;width:20px;height:20px;margin-top:3px;border-radius:var(--pl-r-1);background:var(--pl-ground-2) var(--pl-cross) center/20px 20px no-repeat}
.presale-body td:has(> .p-yes,> .p-no){text-align:center;vertical-align:middle}
.presale-body .p-yes,.presale-body .p-no{display:inline-block;width:20px;height:20px;border-radius:var(--pl-r-1);vertical-align:middle;color:transparent;font-size:0;line-height:20px;overflow:hidden}
.presale-body .p-yes{background:var(--pl-signal) var(--pl-tick) center/20px 20px no-repeat}
.presale-body .p-no{background:var(--pl-ground-2) var(--pl-cross) center/20px 20px no-repeat}
.presale-body blockquote.p-quote{background:var(--pl-panel);margin:0 0 14px}
.presale-body blockquote .p-attrib,.presale-body blockquote.p-quote .p-attrib{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;font-weight:700;color:var(--pl-text);margin:10px 0 0}
.presale-body .p-attrib .p-ustars{font-size:13px;letter-spacing:2px}
.presale-body .p-attrib .p-verified{margin-inline-start:auto}
.presale-body .p-offer-slot{margin:32px 0}
.presale-body .p-offer-slot>.p-offer{margin:0}
.presale-body .p-offer-slot:last-child{margin-bottom:0}
.presale-body .p-offer-slot a[data-presale-cta]::after{content:"\203A";margin-inline-start:.45em}   /* the guide button's chevron glyph (.cta .flip); no RTL override: U+203A is bidi-mirrored inside the RTL run, the same flip the guide does with scaleX(-1) */
.presale-body .p-offer-slot .p-offer-trust>span::before,.presale-body .p-offer-slot .p-offer-trust>p>span::before{content:"";flex:none;width:16px;height:16px;border-radius:var(--pl-r-1);background:var(--pl-signal) var(--pl-tick) center/16px 16px no-repeat}
.presale-body .p-figcaption{font-family:var(--pl-display);font-weight:700;font-size:13px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-mute);text-align:center;margin:-12px 0 20px}
.presale-body .p-nowrap{white-space:nowrap}
/* measure: none here; running text takes the full column (PL_FULL_MEASURE_V1: operator 2026-09-09 11:57 UTC, "text is not taking full width on desktop in article and paragraphs"). PL_PRESALE_MEASURE_V1 (68ch) is tested and ready in /var/tmp/pl/r6-candidate-measure.css for an operator ruling on presales */
.presale-body .p-c-grid{gap:14px;margin:8px 0 24px;align-items:stretch}   /* review cards in a row end on one line (locknox N3) */
.presale-body article.p-comment,.presale-body .p-comment{background:var(--pl-panel);border:1px solid var(--pl-line);border-radius:var(--pl-r-2);padding:16px 18px}
.presale-body .p-c-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.presale-body .p-c-id{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 10px;line-height:1.3}
.presale-body .p-c-name{color:var(--pl-text);font-weight:700;font-size:15px}
.presale-body h4.p-c-title{font-size:18px;line-height:1.2;margin:0 0 6px;text-wrap:pretty}   /* PL_SKIN_V4_8 (locknox TITLE-1): with the inline star run, balance split the title after two words; pretty fills line 1 and only guards the last line */
.presale-body h4.p-c-title .p-ustars{font-size:13px;letter-spacing:2px;margin-inline-end:6px;vertical-align:1px}
.presale-body p.p-c-body,.presale-body .p-comment p{font-size:16px;line-height:1.5;margin:0;color:var(--pl-text)}
/* 5.16 normaliser p-wrapper tolerance: the text pass may wrap chrome text (meta row, offer box, review head, attribution) in <p>; the wrapper must not become a box or a paragraph */
.presale-body :is(.p-meta-col,.p-meta-rate,.p-offer-eyebrow,.p-offer-price,.p-offer-was,.p-offer-now,.p-offer-urgency,.p-offer-trust,.p-c-head,.p-c-id,.p-attrib)>p{display:contents;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit;margin:0}
/* 5.17 reason rows (locknox [data-p-stack], normaliser .p-reason): always two columns on desktop, text at the inline start, image at the inline end; whitespace-only wrappers left by the digit-cell removal are hidden */
.presale-body [data-p-stack]{grid-template-columns:repeat(2,minmax(0,1fr))}
.presale-body [data-p-stack]>div:not(:has(*)){display:none}
.presale-body [data-p-stack]>div:has(h2,h3){grid-column:1;grid-row:1}
.presale-body [data-p-stack]>img,.presale-body [data-p-stack]>div:has(> img:only-child){grid-column:2;grid-row:1;align-self:center}
.presale-body [data-p-stack]>img,.presale-body [data-p-stack]>div:has(> img:only-child)>img{width:100%;height:auto;margin:0}
/* legacy small width/height attributes on real photos (until the normaliser writes intrinsic dims) */
.presale-body img:is([src*='/dashsentry/guarantee.'],[src*='/lingolink/phoneimage.']){width:100%;height:auto}
@media(max-width:560px){.presale-body .p-features{grid-template-columns:1fr}.presale-body [data-p-stack]>div:has(h2,h3),.presale-body [data-p-stack]>img,.presale-body [data-p-stack]>div:has(> img:only-child){grid-column:auto;grid-row:auto;align-self:auto}}
/* 5.18 chrome on presale pages (section 3 owns the shared chrome; these are scoped to the presale body): the linked "Terms of use" inside the footer
   disclosure paragraph (PL_DISCLOSURE_IN_TERMS_V1) on the ink ground, 40 px tap targets for the footer links and the logo (DESIGN-SPEC section 8),
   the 13 px masthead label on phones (site floor; the presale masthead has no language chip to make room for) */
body[data-top5-presale-brand] .foot p a{color:var(--pl-on-ink);text-decoration:underline;text-decoration-color:var(--pl-signal);text-decoration-thickness:2px;text-underline-offset:3px}
body[data-top5-presale-brand] .foot p a:hover{color:var(--pl-signal);text-decoration-color:var(--pl-on-ink)}
body[data-top5-presale-brand] .foot-nav{margin:-9px 0 5px}
body[data-top5-presale-brand] .foot .copy .foot-nav{margin:0}   /* PL_SKIN_V4_7: inside the r5 .copy flex row the old offset lifted the links 7 px off the copyright line */
body[data-top5-presale-brand] .foot-nav a{display:inline-block;padding:9px 0;min-height:40px;box-sizing:border-box}
@media(max-width:640px){body[data-top5-presale-brand] .foot .copy .foot-nav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:0 24px}}   /* PL_SKIN_V4_8 (aceshades FOOT-nav): the shared chrome's two-column grid orphaned the third link on phones; three 40 px links wrap as one row from the inline start. Offered to the guide section as the replacement for its @media(max-width:640px) .foot-nav grid rule */
/* PL_SKIN_V4_7 (r5 shared footer partial, PL_PRESALE_FOOTER_V1): 40 px rows for the guide, company and language list links, a 40 px hit area on the mailto
   and the brand link (DESIGN-SPEC section 8); the same partial serves the guides, so the rule is offered to the guide section as is */
body[data-top5-presale-brand] .foot ul li{padding-block:0}
body[data-top5-presale-brand] .foot ul a{display:inline-block;padding-block:11px;line-height:18px;min-height:40px;min-width:40px;box-sizing:border-box;max-width:100%}
body[data-top5-presale-brand] .foot .langs{gap:0 12px}
body[data-top5-presale-brand] .foot .h{margin-bottom:4px}
body[data-top5-presale-brand] .foot .brand{min-height:40px}
body[data-top5-presale-brand] .foot .pub a{display:inline-block;padding-block:11px;margin-block:-11px;line-height:inherit}   /* the mailto (last line of its block): 40 px hit area, no layout change (margin cancels the padding). NOT the note's Terms link: an inline-block there opens a break before the full stop that follows it; a running-text link stays inline */
body[data-top5-presale-brand] .sitebar .pl-logo{min-height:40px}
@media(max-width:640px){body[data-top5-presale-brand] .sitebar .adv{font-size:13px}}
/* 5.13 comments */
.presale-body .p-comment{background:var(--pl-panel);border:1px solid var(--pl-line);border-radius:var(--pl-r-2)}
.presale-body .p-comment p{color:var(--pl-text)}
.presale-body .p-c-name{color:var(--pl-text);font-weight:700}
.presale-body .p-c-time,.presale-body .p-c-count{color:var(--pl-mute)}
.presale-body .p-c-reply{background:var(--pl-ground);border-color:var(--pl-line);border-radius:var(--pl-r-2)}
.presale-body .p-c-reacts img{border-color:var(--pl-panel)}
.presale-body .p-c-sec h2 a{text-decoration-color:var(--pl-ink)}
/* 5.14 he tracking, phones */
[lang=he] :is(.presale-body ul.p-byline li,.p-offer-eyebrow,.p-offer-urgency,.p-offer-trust,.presale-body h6,a[data-presale-cta],.presale-body .p-meta-ratetxt,.presale-body .cf-kick,.presale-body .alc-q-badge,.presale-body .cf-q-badge,.presale-body .p-verified){letter-spacing:.02em}
@media(max-width:760px){.presale-body{padding:22px var(--pl-gutter) 40px}.presale-body [data-p-stack]{gap:16px}.presale-body table:not(.p-t2){display:block;overflow-x:auto;overflow-y:hidden;width:100%;max-width:100%;box-sizing:border-box;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.presale-body th,.presale-body td{padding:8px 6px;font-size:13px}.presale-body th{letter-spacing:.04em;overflow-wrap:normal;word-break:normal;hyphens:manual;vertical-align:bottom}.presale-body th:not(:first-child),.presale-body td:not(:first-child){width:auto;min-width:0}.presale-body td:first-child{hyphens:auto;hyphenate-limit-chars:8 4 4}}
@media(max-width:640px){.presale-body h3{font-size:20px}.presale-body h4{font-size:19px}.presale-body blockquote.p-pull p{font-size:20px;line-height:1.2}.presale-body a[data-presale-cta],a[data-presale-cta]{font-size:16px;padding:14px 18px}.presale-body .p-offer{padding:20px 16px 16px}.presale-body .p-offer-trust>span,.presale-body .p-offer-trust>p>span{white-space:normal;text-align:start}.presale-body .p-meta-rate{margin-inline-start:0;display:block;width:fit-content;max-width:100%;line-height:1.45}.presale-body .p-meta-rate .p-ustars{margin-inline-end:8px;vertical-align:-1px}.presale-body .p-attrib .p-verified{flex-basis:100%;margin-inline-start:0;margin-top:2px}.presale-body .alc-q-badge,.presale-body .cf-q-badge,[dir=rtl] .presale-body .alc-q-badge,[dir=rtl] .presale-body .cf-q-badge{flex-basis:100%;max-width:max-content;margin-inline-start:42px}}
@media(max-width:640px){.presale-body :is(.p-offer,[data-p-row]) .p-offer-price{flex-direction:column;align-items:center;row-gap:4px}}   /* PL_SKIN_V4_9 (sightnight N16): under 640 px the was/now pair always stacks, was above now, centred; the page's inline .p-offer-price flex row (0,2,0) is out-specified on purpose. Probe 2026-09-10 at 390 (sightnight, 322 px inner): one row in en, cs, da, de, et, fi, he, hu, nl, ro, sk, sl, sv by 1 to 30 px, two rows in bg, el, es, fr, hr, it, lv, pl, pt; fr needs 361 px, so a 14 px was-label cannot make it uniform */
@media(max-width:560px){.presale-body [data-p-row]:has(h2,h3,.p-offer,a[data-presale-cta]){grid-template-columns:1fr}:is([lang=de],[lang=fi],[lang=hu],[lang=nl],[lang=sv],[lang=et],[lang=da]) .presale-body :is(p,li,[data-p-row] div):where(:not(.p-meta *,.p-offer *,.p-offer-slot *)){hyphens:auto;hyphenate-limit-chars:12 5 4}}

/* ---- 6. legacy Bootstrap guide markup, scoped by the injected body class (parity with oi-skin.css) ---- */
body.pl-legacy{font-family:var(--sans)!important;color:var(--ink)!important;background:var(--paper)!important}
.pl-legacy h1,.pl-legacy h2,.pl-legacy h3,.pl-legacy h4,.pl-legacy .h1,.pl-legacy .h2,.pl-legacy .h3{font-family:var(--serif)!important;font-weight:700!important;color:var(--ink);letter-spacing:-.01em}
.pl-legacy .bold,.pl-legacy .font-bold,.pl-legacy b,.pl-legacy strong{font-weight:700}
.pl-legacy .font-light{font-weight:400}
.pl-legacy .navbar.navbar-transparent{background:var(--pl-panel)!important;border-top:6px solid var(--pl-signal);border-bottom:1px solid var(--pl-line);padding-top:13px!important;padding-bottom:13px!important}
.pl-legacy .navbar img,.pl-legacy .navbar-brand{height:34px!important;width:auto!important;padding:0!important;max-width:none!important}
.pl-legacy .hero{background:var(--pl-ink)!important;background-image:none!important;color:var(--pl-on-ink)}
.pl-legacy .hero h1,.pl-legacy .hero .h1,.pl-legacy .hero .font-light,.pl-legacy .hero .text-dark,.pl-legacy .hero p{color:var(--pl-on-ink)!important}
.pl-legacy .label,.pl-legacy .label--success{background:var(--pl-panel)!important;color:var(--pl-text)!important;border:2px solid var(--pl-ink);border-radius:var(--pl-r-1)!important;letter-spacing:.08em;font-size:13px!important;font-weight:700!important;font-family:var(--serif)!important;text-transform:uppercase;line-height:1.4;padding:4px 8px!important}
.pl-legacy .hero .label,.pl-legacy .hero .label--success{background:transparent!important;border:0;padding:0!important;color:var(--pl-on-ink-2)!important}
.pl-legacy .btn-success,.pl-legacy .btn-primary,.pl-legacy .btn-warning{background-color:var(--pl-signal)!important;border:2px solid var(--pl-ink)!important;color:var(--pl-signal-ink)!important;border-radius:var(--pl-r-1)!important;font-family:var(--serif)!important;font-weight:700;letter-spacing:.04em;text-transform:uppercase;box-shadow:none!important}
.pl-legacy .btn-success:hover,.pl-legacy .btn-primary:hover,.pl-legacy .btn-warning:hover,.pl-legacy .btn-success:focus,.pl-legacy .btn-primary:focus{background-color:var(--pl-ink)!important;border-color:var(--pl-ink)!important;color:var(--pl-on-ink)!important}
.pl-legacy .rating{color:var(--pl-ink)!important}
.pl-legacy .rating--fill,.pl-legacy .rating:not(.rating--full),.pl-legacy .rating--empty{color:var(--pl-line)!important}
.pl-legacy .rating-title,.pl-legacy .text-warning:not(.rating){color:var(--pl-mute)!important}
.pl-legacy .text-primary,.pl-legacy .info-line__item:before,.pl-legacy .text-success,.pl-legacy .list-success__item:before{color:var(--pl-text)!important}
.pl-legacy .icon{stroke:var(--pl-ink)!important;fill:var(--pl-ink)!important}
.pl-legacy .bg-success,.pl-legacy .info-line__inner:before{background-color:var(--pl-signal)!important}
.pl-legacy .choice,.pl-legacy .feedback,.pl-legacy .info-box,.pl-legacy .info-line__item{border-color:var(--pl-line)!important;border-radius:var(--pl-r-2)!important;box-shadow:none!important}
.pl-legacy .choice:has(.choice__label){border:1px solid var(--pl-ink)!important;box-shadow:0 0 0 1px var(--pl-ink)!important}
.pl-legacy .choice__label{background:var(--pl-signal)!important;color:var(--pl-signal-ink)!important;font-family:var(--serif)!important;font-weight:800!important;font-size:13px!important;letter-spacing:.08em;border-radius:var(--pl-r-1)!important}
.pl-legacy .choice__label:before,.pl-legacy .choice__label:after{display:none!important}
.pl-legacy .choice__rate{font-family:var(--serif)!important;font-weight:800!important;color:var(--pl-text);font-variant-numeric:tabular-nums}
.pl-legacy .bg-light,.pl-legacy .section.bg-light{background-color:var(--pl-panel)!important}
.pl-legacy .text-dark,.pl-legacy .navbar-nav .nav-item .nav-link{color:var(--pl-text)!important}
.pl-legacy .footer,.pl-legacy .footer.footer--white{background:var(--pl-ink)!important;border-top:0;color:var(--pl-on-ink-2)}
.pl-legacy .footer-nav__link{color:var(--pl-on-ink)!important;font-weight:400}
.pl-legacy a{color:var(--pl-text)}
.pl-legacy .text-decoration-underline,.pl-legacy p a:not(.btn),.pl-legacy li a:not(.btn):not(.nav-link):not(.footer-nav__link){color:var(--pl-text)!important;text-decoration:underline!important;text-decoration-color:var(--pl-ink)!important;text-decoration-thickness:2px;text-underline-offset:3px}
.pl-legacy .list-success__item:before{content:"\2713"!important;font-family:var(--sans)!important;color:var(--pl-signal-ink)!important;background:var(--pl-signal)!important;border:0!important;border-radius:var(--pl-r-1);font-weight:800;font-size:13px!important}
.pl-legacy .container{max-width:1240px!important}
.pl-legacy a.popup,.pl-legacy .popup{font-family:var(--serif)!important;font-size:13px!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pl-text)!important;text-decoration:none!important}

/* ---- 7. numbered presale variants (/reviews/<brand>/1/ Webflow + Bootstrap-theme pages, /2/ Tailwind pages), scoped by injected body classes ---- */
/* A1: Inter + Recoleta theme */
body.pl-var-smp1,.pl-var-smp1 *{font-family:var(--sans)!important}
.pl-var-smp1 h1,.pl-var-smp1 h2,.pl-var-smp1 h6,.pl-var-smp1 h1 *,.pl-var-smp1 h2 *,.pl-var-smp1 h6 *,.pl-var-smp1 .availability > h2,.pl-var-smp1 .limited__offer > h6,.pl-var-smp1 .head__side > p{font-family:var(--serif)!important;font-weight:700!important;color:var(--pl-text);letter-spacing:-.01em}
.pl-var-smp1 .head__side > p{color:var(--pl-on-ink)}
.pl-var-smp1 p,.pl-var-smp1 li,.pl-var-smp1 span,.pl-var-smp1 .hero__desc > p{color:var(--pl-text)}
.pl-var-smp1 .elem__wrapper > span,.pl-var-smp1 .author *,.pl-var-smp1 .elem__media > p,.pl-var-smp1 .desc__left *{color:var(--pl-mute)!important}
.pl-var-smp1 .link,.pl-var-smp1 a.link,.pl-var-smp1 .elem__wrapper > p a.link,.pl-var-smp1 .list__wrapper ul li a,.pl-var-smp1 .faq__content a,.pl-var-smp1 .small__feedback a{color:var(--pl-text)!important;border-bottom:2px solid var(--pl-ink)!important}
.pl-var-smp1 .link:hover,.pl-var-smp1 a.link:hover{border-bottom-color:var(--pl-signal)!important}
.pl-var-smp1 .availability,.pl-var-smp1 .limited__offer{background:var(--pl-ground)!important;border:1px solid var(--pl-line);border-radius:var(--pl-r-2)!important}
.pl-var-smp1 .limited__offer{background:var(--pl-signal-tint)!important;border-color:var(--pl-ink)}
.pl-var-smp1 .head__side{background:var(--pl-ink)!important;border-radius:var(--pl-r-2) var(--pl-r-2) 0 0!important}
.pl-var-smp1 .side__float,.pl-var-smp1 .faq__box,.pl-var-smp1 .small__feedback{border-radius:var(--pl-r-2)!important;box-shadow:none!important;border:1px solid var(--pl-line)}
.pl-var-smp1 footer{background-color:var(--pl-ink)!important;border-top:0;border-bottom:6px solid var(--pl-signal)}
.pl-var-smp1 footer *{color:var(--pl-on-ink-2)!important;font-weight:400!important}
.pl-var-smp1 footer a{color:var(--pl-on-ink)!important}
.pl-var-smp1 .hero__header > p{color:var(--pl-mute)!important;font-family:var(--serif)!important;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:13px}
.pl-var-smp1 img[src*="availability"]{filter:grayscale(1) contrast(1.1)}
.pl-var-smp1 .availability p,.pl-var-smp1 .availability em,.pl-var-smp1 .availability strong,.pl-var-smp1 .availability span:not(.link),.pl-var-smp1 .limited__offer p{color:var(--pl-mute)!important;font-style:normal!important}
.pl-var-smp1 .availability > h2,.pl-var-smp1 .limited__offer > h6{color:var(--pl-text)!important}
.pl-var-smp1 .limited__offer strong,.pl-var-smp1 .limited__offer b,.pl-var-smp1 .availability strong{letter-spacing:.08em;font-size:13px;color:var(--pl-text)!important;text-transform:uppercase}
.pl-var-smp1 .btn,.pl-var-smp1 a[class*="btn"]{background:var(--pl-signal)!important;color:var(--pl-signal-ink)!important;border:2px solid var(--pl-ink)!important;border-radius:var(--pl-r-1)!important;font-family:var(--serif)!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.04em;box-shadow:none!important}
.pl-var-smp1 .btn:hover,.pl-var-smp1 a[class*="btn"]:hover{background:var(--pl-ink)!important;color:var(--pl-on-ink)!important}
/* A2: Sandbox Bootstrap theme */
body.pl-var-zt1,.pl-var-zt1 :where(*:not(h1,h2,h3,h1 *,h2 *,h3 *,.zt-fb-post,.zt-fb-post *,[class*="fb-"])){font-family:var(--sans)!important}
.pl-var-zt1 h1,.pl-var-zt1 h2,.pl-var-zt1 h3,.pl-var-zt1 h1 *,.pl-var-zt1 h2 *,.pl-var-zt1 .zt-final-offer-title,.pl-var-zt1 .zt-zapfie-side-head h3{font-family:var(--serif)!important;font-weight:700!important;color:var(--pl-text)!important;letter-spacing:-.01em}
.pl-var-zt1 h1 i,.pl-var-zt1 h2 i,.pl-var-zt1 h3 i,.pl-var-zt1 h1 em,.pl-var-zt1 h2 em,.pl-var-zt1 h3 em,.pl-var-zt1 h2 .italic{font-style:normal!important}
.pl-var-zt1 p,.pl-var-zt1 li,.pl-var-zt1 .zt-copy{color:var(--pl-text)}
.pl-var-zt1 b,.pl-var-zt1 strong,.pl-var-zt1 .bold,.pl-var-zt1 .heavy{font-weight:700!important}
.pl-var-zt1 header > div[style]{background:var(--pl-ink)!important}
.pl-var-zt1 header > div[style] p{color:var(--pl-on-ink)!important;font-family:var(--serif)!important;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:12px!important}
.pl-var-zt1 .navbar,.pl-var-zt1 header.wrapper,.pl-var-zt1 .bg-soft-primary,.pl-var-zt1 .navbar-bg-light{background:var(--pl-panel)!important;border-color:var(--pl-line)!important}
.pl-var-zt1 .colored,.pl-var-zt1 .bold.colored{color:var(--pl-text)!important}
.pl-var-zt1 a:not(.zt-cta-button):not(.zt-zapfie-btn):not(.zt-fb-post-link):not(.btn){color:var(--pl-text);text-decoration:underline;text-decoration-color:var(--pl-ink);text-decoration-thickness:2px;text-underline-offset:3px}
.pl-var-zt1 a:not(.zt-cta-button):not(.zt-zapfie-btn):not(.zt-fb-post-link):not(.btn):hover{text-decoration-color:var(--pl-signal)}
.pl-var-zt1 .zt-caption,.pl-var-zt1 .zt-caption-link > div,.pl-var-zt1 [class*="caption"]{background-color:var(--pl-ground)!important;color:var(--pl-text)!important;font-weight:700!important;border-radius:var(--pl-r-2)!important;border:1px solid var(--pl-line)}
.pl-var-zt1 [class*="caption"] *{color:var(--pl-text)!important}
.pl-var-zt1 .zt-zapfie-side-head a,.pl-var-zt1 h3 a,.pl-var-zt1 h2 a,.pl-var-zt1 h1 a{text-decoration:none!important;color:var(--pl-text)!important}
.pl-var-zt1 h1 .colored,.pl-var-zt1 h2 .colored,.pl-var-zt1 h3 .colored,.pl-var-zt1 h2 a,.pl-var-zt1 h1 a{color:var(--pl-text)!important;text-decoration:underline!important;text-decoration-color:var(--pl-signal)!important;text-decoration-thickness:3px!important;text-underline-offset:4px!important}
.pl-var-zt1 .zt-stars,.pl-var-zt1 .review-stars,.pl-var-zt1 .zt-post-stars,.pl-var-zt1 .zt-zapfie-rating .zt-stars{color:var(--pl-ink)!important}
.pl-var-zt1 .zt-zapfie-side{border-color:var(--pl-line)!important;border-radius:var(--pl-r-2)!important;box-shadow:none!important}
.pl-var-zt1 .zt-zapfie-side-head{background:var(--pl-ground)!important}
.pl-var-zt1 .zt-zapfie-rating{color:var(--pl-text)!important}
.pl-var-zt1 .zt-zapfie-copy{color:var(--pl-text)!important;font-weight:700!important}
.pl-var-zt1 .zt-cta-button,.pl-var-zt1 .zt-zapfie-btn,.pl-var-zt1 .btn-primary,.pl-var-zt1 .btn-success{background-color:var(--pl-signal)!important;border:2px solid var(--pl-ink)!important;color:var(--pl-signal-ink)!important;border-radius:var(--pl-r-1)!important;font-family:var(--serif)!important;font-weight:700!important;letter-spacing:.04em;text-transform:uppercase;box-shadow:none!important;text-decoration:none!important}
.pl-var-zt1 .zt-cta-button:hover,.pl-var-zt1 .zt-zapfie-btn:hover,.pl-var-zt1 .btn-primary:hover,.pl-var-zt1 .btn-success:hover{background-color:var(--pl-ink)!important;border-color:var(--pl-ink)!important;color:var(--pl-on-ink)!important}
.pl-var-zt1 .zt-feature-list{border-color:var(--pl-line)!important;border-radius:var(--pl-r-2)!important;box-shadow:none!important}
.pl-var-zt1 .zt-feature-list li{border-bottom-color:var(--pl-line)!important}
.pl-var-zt1 .zt-feature-list li:nth-child(even){background:var(--pl-ground)!important}
.pl-var-zt1 .zt-feature-list li::before{background:var(--pl-signal)!important;color:var(--pl-signal-ink)!important;border-radius:var(--pl-r-1)}
.pl-var-zt1 .zt-feature-list b{color:var(--pl-text)!important;font-weight:700!important}
.pl-var-zt1 .zt-feature-list span{color:var(--pl-mute)!important}
.pl-var-zt1 .zt-testimonial,.pl-var-zt1 .quote__wrapper{background-color:var(--pl-panel)!important;border:1px solid var(--pl-line);border-inline-start:4px solid var(--pl-signal);border-radius:var(--pl-r-2)!important}
.pl-var-zt1 .zt-testimonial p:last-child{color:var(--pl-mute)!important;font-weight:700!important}
.pl-var-zt1 .zt-update-box{background-color:var(--pl-ground)!important;border:1px solid var(--pl-line)!important;border-top:3px solid transparent!important;border-image:var(--pl-lane) 3 0 0 0;border-radius:var(--pl-r-2)}
.pl-var-zt1 .zt-final-offer{border:2px solid var(--pl-ink)!important;border-radius:var(--pl-r-2)!important;box-shadow:none!important}
.pl-var-zt1 .zt-final-offer-note{color:var(--pl-mute)!important;font-weight:700!important}
.pl-var-zt1 .zt-subquote{color:var(--pl-text)!important;font-weight:700!important}
.pl-var-zt1 footer.bg-dark,.pl-var-zt1 footer{background-color:var(--pl-ink)!important;border-top:0;border-bottom:6px solid var(--pl-signal)}
.pl-var-zt1 footer,.pl-var-zt1 footer *,.pl-var-zt1 .text-inverse,.pl-var-zt1 .text-inverse *{color:var(--pl-on-ink-2)!important}
.pl-var-zt1 footer a{color:var(--pl-on-ink)!important}
.pl-var-zt1 footer .zt-footer-logo,.pl-var-zt1 footer img[src*="logo"]{filter:brightness(0) invert(1) opacity(.9)}
.pl-var-zt1 a:has(.zt-zapfie-side-head),.pl-var-zt1 a:has(h1,h2,h3),.pl-var-zt1 .zt-zapfie-side a:not(.zt-zapfie-btn):not(.zt-cta-button),.pl-var-zt1 a:has(.zt-zapfie-side),.pl-var-zt1 a:has(.zt-stars),.pl-var-zt1 a:has(img),.pl-var-zt1 .zt-zapfie-side-head,.pl-var-zt1 .zt-zapfie-side-head *,.pl-var-zt1 .zt-final-offer h2,.pl-var-zt1 .zt-final-offer h3{text-decoration:none!important;border-bottom:0!important}
/* B: Tailwind pages: remap the theme custom properties, then the hard-coded greens */
body.pl-var-tw{--navy:#121417;--navy-light:#2A2F36;--green-500:#121417;--green-600:#121417;--footer-bg:#121417;--font-primary:"Sofia Sans","Helvetica Neue",Arial,sans-serif;font-family:var(--sans)!important;color:var(--pl-text)}
.pl-var-tw *{font-family:var(--sans)}
.pl-var-tw h1,.pl-var-tw h2,.pl-var-tw h3,.pl-var-tw h1 *,.pl-var-tw h2 *,.pl-var-tw h3 *{font-family:var(--serif)!important;font-weight:700!important;color:var(--pl-text)!important;letter-spacing:-.01em}
.pl-var-tw h2 em,.pl-var-tw h1 em,.pl-var-tw h2 i{font-style:normal}
.pl-var-tw b,.pl-var-tw strong,.pl-var-tw .font-bold,.pl-var-tw .bold{font-weight:700!important}
.pl-var-tw .hero-gradient{background:var(--pl-ground)!important}
.pl-var-tw [class*="before:bg-"]::before,.pl-var-tw [class*="bg-[#E4EDF5]"],.pl-var-tw [class*="bg-[#F2F6FB]"]{background-color:var(--pl-ground)!important}
.pl-var-tw .nav-link{color:var(--pl-mute)!important;font-family:var(--serif)!important;font-weight:700!important;letter-spacing:.06em!important;text-transform:uppercase!important;font-size:13px!important}
.pl-var-tw .nav-link:hover{color:var(--pl-text)!important}
.pl-var-tw .date-badge{background:var(--pl-panel)!important;color:var(--pl-text)!important;border:2px solid var(--pl-ink);border-radius:var(--pl-r-1)!important;font-family:var(--serif)!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pl-var-tw .smpc-article a:not(.smpc-cta-btn):not(.zt-cta-button):not([class*="bg-green"]),.pl-var-tw .zt-article a:not(.zt-cta-button):not(.smpc-cta-btn):not([class*="bg-green"]),.pl-var-tw .zt-article .colored,.pl-var-tw .smpc-article .colored{color:var(--pl-text)!important;text-decoration:underline;text-decoration-color:var(--pl-ink);text-decoration-thickness:2px;text-underline-offset:3px}
.pl-var-tw .smpc-article .small__list ul li > span,.pl-var-tw .smpc-article .availability h2,.pl-var-tw .smpc-article .availability span,.pl-var-tw .smpc-article .desc__left > span{color:var(--pl-text)!important}
.pl-var-tw .smpc-article .limited__offer,.pl-var-tw .smpc-article .availability,.pl-var-tw .smpc-article .desc{background:var(--pl-ground)!important;border:1px solid var(--pl-line);border-radius:var(--pl-r-2)!important}
.pl-var-tw .smpc-article .limited__offer{background:var(--pl-signal-tint)!important;border-color:var(--pl-ink)}
.pl-var-tw .smpc-article .small__feedback,.pl-var-tw .smpc-article .faq__box,.pl-var-tw .zt-article .zt-feature-list,.pl-var-tw .zt-article .zt-final-offer{border-color:var(--pl-line)!important;border-radius:var(--pl-r-2)!important;box-shadow:none!important}
.pl-var-tw .zt-article .zt-final-offer{border:2px solid var(--pl-ink)!important}
.pl-var-tw .smpc-article .faq__elem,.pl-var-tw .zt-article .zt-feature-list li{border-bottom-color:var(--pl-line)!important}
.pl-var-tw .zt-article .zt-feature-list li::before{background:var(--pl-signal)!important;color:var(--pl-signal-ink)!important;border-radius:var(--pl-r-1)}
.pl-var-tw .smpc-cta-btn,.pl-var-tw .zt-cta-button,.pl-var-tw a[class*="bg-green"],.pl-var-tw [class*="bg-green-500"]{background-color:var(--pl-signal)!important;color:var(--pl-signal-ink)!important;border:2px solid var(--pl-ink)!important;border-radius:var(--pl-r-1)!important;font-family:var(--serif)!important;font-weight:700!important;letter-spacing:.04em!important;text-transform:uppercase!important;font-size:1.0625rem!important;box-shadow:none!important;text-decoration:none!important}
.pl-var-tw .smpc-cta-btn *,.pl-var-tw .zt-cta-button *,.pl-var-tw a[class*="bg-green"] *{color:var(--pl-signal-ink)!important}
.pl-var-tw .smpc-cta-btn:hover,.pl-var-tw .zt-cta-button:hover,.pl-var-tw a[class*="bg-green"]:hover{background-color:var(--pl-ink)!important;color:var(--pl-on-ink)!important}
.pl-var-tw .smpc-cta-btn:hover *,.pl-var-tw .zt-cta-button:hover *,.pl-var-tw a[class*="bg-green"]:hover *{color:var(--pl-on-ink)!important}
.pl-var-tw .zt-article .zt-caption-link > div{background-color:var(--pl-ground)!important;color:var(--pl-text)!important;border:1px solid var(--pl-line);border-radius:var(--pl-r-2)!important;text-transform:none!important;letter-spacing:0!important}
.pl-var-tw .zt-article .zt-caption-link > div *{color:var(--pl-text)!important;text-transform:none!important;letter-spacing:0!important}
.pl-var-tw [class*="text-yellow"],.pl-var-tw [class*="text-amber"],.pl-var-tw .zt-stars,.pl-var-tw .review-stars{color:var(--pl-ink)!important}
.pl-var-tw [class*="text-green"]{color:var(--pl-text)!important}
.pl-var-tw [class*="shadow-"]:not([class*="shadow-none"]){box-shadow:none!important}
.pl-var-tw [class*="rounded-"]:not(.rounded-full):not([class*="rounded-full"]){border-radius:var(--pl-r-2)!important}
.pl-var-tw .zt-update-box,.pl-var-tw .zt-article [class*="bg-blue"],.pl-var-tw .zt-article [class*="bg-sky"]{background-color:var(--pl-ground)!important;border:1px solid var(--pl-line)!important;border-radius:var(--pl-r-2)!important}
.pl-var-tw footer{background-color:var(--pl-ink)!important;border-top:0;border-bottom:6px solid var(--pl-signal)}
.pl-var-tw footer p,.pl-var-tw footer span{color:var(--pl-on-ink-2)}
.pl-var-tw footer a{color:var(--pl-on-ink)}

/* ---- 8. consent banner (pl_consent): ink panel, yellow Accept, ghost Reject ---- */
#pl-consent,.pl-consent,[data-consent-banner]{background:var(--pl-ink)!important;color:var(--pl-on-ink)!important;border-radius:var(--pl-r-2)!important;box-shadow:var(--pl-shadow)!important;font-family:var(--pl-text-face)!important;font-size:15px!important}
#pl-consent a,.pl-consent a,[data-consent-banner] a{color:var(--pl-on-ink)!important;text-decoration-color:var(--pl-signal)!important}
#pl-consent button,.pl-consent button,[data-consent-banner] button{font-family:var(--pl-display)!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.04em!important;border-radius:var(--pl-r-1)!important;border:2px solid var(--pl-signal)!important;background:var(--pl-signal)!important;color:var(--pl-signal-ink)!important}
#pl-consent button:last-child,.pl-consent button:last-child,[data-consent-banner] button:last-child{background:transparent!important;color:var(--pl-on-ink)!important;border-color:var(--pl-on-ink-2)!important}
#pl-consent button:focus-visible,.pl-consent button:focus-visible,[data-consent-banner] button:focus-visible{outline:3px solid var(--pl-signal)!important;outline-offset:2px}
