/* Turbo Portable Washer, Presell (US). Single stylesheet for this page. */
/* Export: <figure> replaces builder <div> wrappers; reset UA margins so layout matches */
figure { margin: 0; }
/* ===== from presale-base.css ===== */
/* ============================================================
   PRESALE BASE, shared foundation for all presale templates
   ============================================================
   Contains: reset, brand tokens, layout primitives, placeholder,
   header component, and advertorial/presale component styles.
   
   Brand override: swap the :root tokens below in your brand.css.
   ============================================================ */
/* ============ Personal Story Presale, Base Stylesheet ============ */
* {box-sizing:border-box;font-family:"Inter",sans-serif;font-weight:400;font-style:normal}
body {padding:0;margin:0;color:#212529;background:#f7f6f2;overflow-x:hidden}
html {overflow-x:hidden;max-width:100vw}
h1,
h3,
p {margin:0;padding:0}
img {display:block;max-width:100%}
b {font-weight:700}
a {color:inherit;text-decoration:none}
:root { --ink:#0c2539;
  --ink-soft:#333;
  --muted:#5a6b7a;
  --bg:#fff;
  --bg-soft:#f6f9fc;
  --line:#e2e8f0;
  --brand:#000;           /* override in brand.css */
  --brand-deep:#000;
  --brand-light:#eee;
  --action:#000;          /* override in brand.css */
  --action-deep:#000;
  --night:#000;
  --night-2:#111;
  --warn-orange:#ff8b3d; }
/* =====================================================================
   PRESALE / ADVERTORIAL, layout, grid + utilities
   ===================================================================== */
.adv-wrap {max-width:1120px;width:100%;margin:0 auto;padding:0 20px}
.adv-body {background:#f7f6f2;color:var(--ink-soft)}
.adv-header {background:#fff;border-bottom:3px solid #111}
.adv-header__inner {display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0}
.adv-logo {display:flex;align-items:center;gap:10px;font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:22px;letter-spacing:0;color:#111}
.adv-scarcity {display:flex;align-items:center;gap:8px;background:#b91c1c;border:none;border-radius:3px;padding:6px 14px}
.adv-scarcity svg {width:18px;height:18px;color:#fff;flex-shrink:0}
.adv-scarcity span {font-family:"Inter",sans-serif;font-weight:700;font-size:12px;line-height:1.2;color:#fff;letter-spacing:.04em;text-transform:uppercase}
/* --- editorial title + byline --- */
.adv-titlewrap {padding:34px 0 0}
.adv-title {font-family:Georgia,"Times New Roman",serif;font-weight:700;color:#111;line-height:1.08;font-size:44px;letter-spacing:-.01em;text-wrap:balance}
.adv-byline {border-bottom:1px solid #ccc;margin-top:22px;margin-bottom:15px;padding:0 0 14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.adv-byline__avatar {width:46px;height:46px;border-radius:50%;flex-shrink:0;background:var(--brand-light);overflow:hidden}
.adv-byline__label {font-weight:400;color:var(--ink-soft)}
.adv-byline__name {font-family:Georgia,"Times New Roman",serif;font-weight:700;color:#111;font-size:15px;white-space:nowrap}
.adv-byline__pipe {color:#c0cad4;font-size:18px;font-weight:300;line-height:1;flex-shrink:0}
.adv-byline__meta {font-size:14.5px;color:var(--ink-soft);font-weight:400;white-space:normal;overflow-wrap:break-word;min-width:0}
@media(max-width:768px) {
  .adv-byline {gap:10px;padding:12px 0}
  .adv-byline__avatar {width:40px;height:40px}
  .adv-byline__name {font-size:14px}
  .adv-byline__meta {font-size:13.5px}
}
@media(max-width:480px) {
  .adv-byline {flex-wrap:wrap;gap:8px}
  .adv-byline__pipe {display:none}
  .adv-byline__meta {width:100%;padding-left:54px;font-size:13px}
}
/* --- two-column body --- */
.editorial-cont {padding:8px 0 40px}
.adv-grid {display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:48px;align-items:start;min-width:0}
.adv-article,
.adv-rail {min-width:0}
/* --- article (left) --- */
.adv-article h3 {font-family:Georgia,"Times New Roman",serif;font-weight:700;color:#111;line-height:1.2;font-size:32px;letter-spacing:0;margin:36px 0 14px}
.adv-article p {font-family:Georgia,"Times New Roman",serif;font-weight:400;color:#2a2a2a;line-height:1.68;font-size:18px;margin:0 0 18px}
.adv-article a:not(.adv-btn) {color:var(--brand);font-weight:600;text-decoration:underline}
.adv-article strong {font-weight:700;color:#111}
.adv-media {margin:6px 0 22px;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.adv-figure {margin:6px 0 22px}
.adv-figure--captioned {position:relative;border-radius:10px 10px 0 0;overflow:hidden;margin:6px 0 0}
.adv-figure--captioned img {display:block;width:100%;max-width:100%;border-radius:10px 10px 0 0}
.adv-figure__caption {background:rgba(10,18,26,.82);padding:14px 20px;font-family:"Inter",sans-serif;font-size:14.5px;font-weight:500;font-style:italic;line-height:1.5;color:#fff;text-align:center;border-radius:0 0 10px 10px;margin:0}
@media(max-width:768px) {
  .adv-figure__caption {font-size:13.5px;padding:11px 16px}
}
@media(max-width:480px) {
  .adv-figure__caption {font-size:12.5px;padding:10px 14px;line-height:1.45}
}
/* tick list */
.adv-ticks {list-style:none;padding:0;margin:6px 0 22px}
.adv-ticks li {position:relative;padding-left:30px;font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.55;color:#2a2a2a;margin-bottom:14px}
.adv-ticks li b {color:var(--ink)}
/* reviews */
.adv-reviews {list-style:none;padding:0;margin:6px 0 22px;display:flex;flex-direction:column;gap:18px}
.adv-btn {display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--action);color:#fff;font-family:"Montserrat",sans-serif;font-weight:800;font-size:18px;text-transform:uppercase;letter-spacing:.01em;padding:16px 26px;border-radius:6px;box-shadow:0 4px 0 0 var(--action-deep);transition:background .15s,transform .15s}
.adv-btn:hover {background:var(--action-deep);transform:translateY(-1px);box-shadow:0 2px 0 0 var(--action-deep)}
.adv-btn svg {width:18px;height:18px}
/* --- right rail (sticky) --- */
.adv-rail {position:sticky;top:16px;display:flex;flex-direction:column;gap:0;align-self:start}
/* --- mobile fixed bottom CTA bar --- */
.adv-bottombar {display:none;position:fixed;left:0;right:0;bottom:0;z-index:999;background:var(--night);padding:10px 14px;border-top:3px solid var(--action);box-shadow:0 -2px 10px rgba(0,0,0,.4)}
.adv-bottombar .adv-btn {width:100%;font-size:17px;padding:15px 18px}
/* --- advertorial footer (disclaimers) --- */
.adv-footer {background:#ece9e3;border-top:2px solid #aaa;padding:34px 0;margin-top:20px}
.adv-footer .adv-wrap {text-align:center}
.adv-footer p {font-size:12.5px;line-height:1.6;color:var(--muted);margin:0 0 12px}
.adv-footer p:first-child {font-weight:700;color:var(--ink-soft);letter-spacing:.02em}
.adv-footer__links {margin-top:8px;font-size:13px}
.adv-footer__links a {color:var(--brand);font-weight:600}
/* ---- advertorial responsive ---- */
@media (max-width:1024px) {
  .adv-title {font-size:38px}
  .adv-article h3 {font-size:30px}
  .adv-article p,
  .adv-ticks li {font-size:17px}
}
@media (max-width:900px) {
  .adv-header__inner {flex-direction:column;gap:8px;text-align:center;padding:10px 0}
  .adv-scarcity {width:100%;justify-content:center;border-radius:0;margin:8px -20px 0;padding:8px 14px;width:calc(100% + 40px)}
  .adv-grid {grid-template-columns:minmax(0,1fr);gap:0}
  .adv-logo {font-size:20px}
  .adv-rail {position:static;flex-direction:row;gap:0;margin-top:24px}
  .adv-bottombar {display:none}
  .adv-bottombar.is-on {display:block}
  .editorial-cont {padding-bottom:96px}
}
@media (max-width:560px) {
  .adv-title {font-size:30px}
}
/* --- authentic Facebook-style comments (bottom of article) --- */
.adv-comments {margin-top:42px;border-top:none;padding-top:24px;font-family:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif}
.adv-comments__bar {display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.adv-comments__title {font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:24px;letter-spacing:0;color:#111}
.fbc {display:flex;align-items:flex-start;margin:16px 0}
.fbc__avatar {width:40px;height:40px;border-radius:50%;flex-shrink:0;margin-right:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:#fff;background:var(--brand)}
img.fbc__avatar {display:block;object-fit:cover;object-position:center;background:#dfe3e8}
.fbc__col {flex:1;min-width:0}
.fbc__bubble {position:relative;display:inline-block;max-width:min(100%,520px);background:#f0f2f5;border-radius:18px;padding:10px 14px 10px;overflow-wrap:break-word}
.fbc__name {display:block;font-weight:600;font-size:13px;line-height:1.2;color:#050505;margin-bottom:3px}
.fbc__name:hover {text-decoration:underline;cursor:pointer}
.fbc__text {font-size:15px;line-height:1.34;color:#050505;overflow-wrap:break-word}
.fbc__mention {color:#385898;font-weight:600}
.fbc__reactions {position:absolute;right:6px;bottom:-14px;display:inline-flex;align-items:center;gap:2px;background:#fff;border-radius:11px;padding:2px 6px 2px 3px;box-shadow:0 1px 3px rgba(0,0,0,.15);font-size:12px;color:#65676b;font-weight:500}
.fbc__reactions svg {width:16px;height:16px;margin-right:-3px}
.fbc__reactions svg:first-child {margin-right:0}
.fbc__reactions b {margin-left:4px;font-weight:400;font-size:13px;color:#65676b}
.fbc__actions {display:flex;align-items:center;flex-wrap:wrap;gap:0;font-size:12px;color:#65676b;margin:4px 0 0 12px}
.fbc__act {font-weight:700;cursor:pointer;padding-right:0}
.fbc__act:hover {text-decoration:underline}
.fbc__sep {margin:0 7px;font-weight:700;line-height:0}
.fbc__time {font-weight:400}
.fbc--reply {margin:12px 0 0}
.fbc--reply .fbc__avatar {width:32px;height:32px;font-size:13px}
/* --- offer block with countdown (richer proBox) --- */
.adv-offer {border:2px solid var(--ink);border-radius:4px;overflow:hidden;margin:26px 0;background:#fff}
.adv-offer__img {padding:22px 22px 6px}
.adv-offer__timerwrap {text-align:center;padding:6px 16px 22px}
.adv-offer__timerlabel {font-family:"Anek Latin",sans-serif;font-weight:700;font-size:22px;color:var(--ink);letter-spacing:-.01em;margin-bottom:12px}
.adv-timer {display:flex;align-items:center;justify-content:center;gap:8px}
.adv-timer__box {display:flex;flex-direction:column;align-items:center}
.adv-timer__digits {display:flex;gap:4px}
.adv-timer__digits span {display:inline-flex;align-items:center;justify-content:center;min-width:42px;background:#ffe14d;color:#1a1300;font-family:"Montserrat",sans-serif;font-weight:800;font-size:34px;line-height:1;padding:10px 6px;border-radius:8px}
.adv-timer__unit {font-size:12px;font-weight:600;color:var(--muted);margin-top:6px;letter-spacing:.06em}
.adv-timer__colon {font-family:"Montserrat",sans-serif;font-weight:800;font-size:30px;color:var(--ink);padding-bottom:18px}
.adv-offer__foot {background:var(--bg-soft);padding:24px 20px;text-align:center}
.adv-offer__price {font-family:"Anek Latin",sans-serif;font-weight:700;font-size:24px;color:var(--ink);margin-bottom:18px}
.adv-offer__price s {color:var(--muted);font-weight:600;text-decoration:line-through;margin-right:8px}
.adv-offer__price b {color:#1f9e34;font-weight:800}
.adv-offer__badges {display:flex;flex-direction:column;gap:10px;max-width:min(100%,300px);margin:0 auto 20px;text-align:left}
.adv-offer__badge {display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--ink-soft)}
.adv-offer__badge svg {width:20px;height:20px;color:#1f9e34;flex-shrink:0}
.adv-offer__badge mark {background:#fff370;font-weight:700;color:var(--ink);padding:1px 4px;border-radius:3px}
.adv-offer .adv-btn {width:100%;max-width:min(100%,420px);font-size:20px;white-space:normal;overflow-wrap:break-word}
/* --- highlighter for persuasive lines --- */
.adv-hl {background:#fff9bd;padding:1px 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
@media (max-width:560px) {
  .adv-timer__digits span {min-width:34px;font-size:28px;padding:9px 4px}
  .fbc__bubble {max-width:100%}
}
/* ======= mobile containment (768px and below) =======
   Nothing may extend past the page's horizontal padding. These rules only
   stop content from setting a floor wider than the viewport, they do not
   change desktop layout, copy, colour or spacing. */
@media (max-width:768px) {
  .adv-wrap,
  .editorial-cont,
  .adv-grid,
  .adv-article,
  .adv-rail,
  .adv-titlewrap,
  .adv-byline,
  .adv-comments,
  .fbc,
  .fbc__col,
  .adv-offer,
  .adv-offer__foot {min-width:0}
  .adv-article p,
  .adv-article h3,
  .adv-title,
  .adv-ticks li,
  .adv-offer__timerlabel,
  .adv-offer__badge,
  .adv-figure__caption,
  .adv-footer p,
  .fbc__name {overflow-wrap:break-word}
  .adv-article img,
  .adv-figure img,
  .adv-media img,
  .adv-offer img {max-width:100%;height:auto}
  .adv-comments__bar {flex-wrap:wrap;gap:8px}
}
@media (max-width:440px) {
  .adv-byline__meta {padding-left:0;width:100%}
  .fbc__actions {margin-left:8px}
  .adv-offer__img {padding-left:14px;padding-right:14px}
  .adv-offer__foot {padding-left:14px;padding-right:14px}
}
/* Below 360px a long CTA label plus its arrow no longer fits on one line.
   Balanced wrapping keeps the whole label visible without shrinking the type. */
@media (max-width:360px) {
  .adv-btn {white-space:normal;text-wrap:balance;width:100%;padding-left:14px;padding-right:14px}
  .adv-btn svg {flex-shrink:0}
}
/* ======= no orphans (global) =======
   No single word may sit alone on the last line of any text block, at any
   viewport width. Headlines balance across lines; body copy uses pretty, which
   reserves words to keep the last line from running short. Short labels never
   wrap at all. When CSS alone cannot fix a line, put a non-breaking space
   between the final two words in the markup. */
h1,
h3,
h4,
.adv-title,
blockquote,
figcaption {text-wrap:balance}
p,
li,
.adv-body p {text-wrap:pretty}
/* ======= containment safety net (all widths) =======
   Root causes this closes, in the order they bite:
   1. flex/grid items floored at their widest child (min-width:auto)
   2. long unbreakable words, German and Dutch compounds above all
   3. meta rows held on one line by white-space:nowrap
   Structural boxes only. Fixed-size chrome (avatars, icons, timer digits,
   svg) keeps its own width because it is not in these selector lists, and
   nothing here alters desktop layout, copy, colour or spacing. */
.adv-body :where(div,section,article,aside,header,footer,nav,ul,ol,li,dl,dd,
p,h1,h2,h3,h4,h5,h6,figure,figcaption,table,tbody,tr,td,th,form,label) {min-width:0}
.adv-body :where(p,li,dd,td,th,h1,h2,h3,h4,h5,h6,figcaption,blockquote,
span,strong,b,em,i,a,mark,s,small,label,button) {overflow-wrap:break-word}
.adv-body :where(.fbc__bubble,.fbc__text,.fbc__name,.adv-review__text,
.adv-review-card__text,.adv-comments__composer,.adv-article p,
.adv-article li) {word-break:break-word}
@media (max-width:768px) {
  /* break-word alone leaves the intrinsic min-content floor intact, so a
     single long token can still stretch a 1fr track. anywhere lowers the
     floor as well, which is what keeps translated pages inside the gutter. */
  .adv-body :where(p,li,dd,td,th,h1,h2,h3,h4,h5,h6,figcaption,blockquote,
  span,strong,b,em,i,a,mark,label) {overflow-wrap:anywhere}
  /* meta rows: name, separator, date, location, comment actions. These wrap
     or stack instead of running off the page. */
  .adv-body :where(.adv-byline,.adv-byline__group,.adv-review__foot,
  .adv-review-card__footer,.adv-comments__bar,.fbc__actions,.fbc__meta,
  .bn-dateline,.v2-stock__row,.adv-amz-review__head) {flex-wrap:wrap;row-gap:4px}
  .adv-body :where(.adv-byline__name,.adv-byline__meta,.adv-review-card__name,
  .adv-review-card__loc,.adv-review__name,.adv-review__loc,.fbc__act,
  .bn-dateline,.bn-dateline-date,.adv-comments__title) {white-space:normal;text-wrap:balance}
  .adv-body :where(svg,iframe) {max-width:100%}
}
/* ===== from presale-styles.css ===== */
/* ============================================================
   Personal Story Presale, design layer (loaded AFTER presale-base.css)
   Scoped under body.adv-v2 for the stat-band presale format.
   ============================================================ */
/* ---- refined editorial type & rhythm ---- */
.adv-v2 .adv-article p {font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.68;color:#2a2a2a;max-width:min(100%,68ch)}
.adv-v2 .adv-article > p:first-of-type {font-family:Georgia,"Times New Roman",serif;font-size:20px;line-height:1.6;color:#111}
.adv-v2 .adv-article h3 {font-family:Georgia,"Times New Roman",serif;position:relative;margin-top:36px;margin-bottom:14px;padding-top:0;font-size:32px;letter-spacing:0}
.adv-v2 .adv-article h3::before {display:none}
.adv-v2 .adv-hl {background:#ffe14d;padding:1px 3px;border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.adv-v2 .adv-media {box-shadow:none;border:1px solid var(--line)}
/* ---- pull quote ---- */
.v2-pullquote {position:relative;margin:34px 0;padding:10px 0 10px 24px;border-left:5px solid var(--action);background:#fafafa}
.v2-pullquote p {font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:22px;line-height:1.4;letter-spacing:0;color:#111;max-width:none;margin:0;font-style:italic}
.v2-pullquote span {display:block;margin-top:10px;font-family:"Inter",sans-serif;font-weight:600;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
/* ---- "bottom line" summary card (before offer) ---- */
.v2-bottomline {margin:30px 0;background:#fffbf0;border:1px solid #e8d99a;border-left:5px solid var(--action);border-radius:4px;padding:22px 24px}
.v2-bottomline h4 {font-family:"Anek Latin",sans-serif;font-weight:700;font-size:21px;letter-spacing:-.01em;color:var(--ink);margin:0 0 14px}
.v2-bottomline ul {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.v2-bottomline li {display:flex;gap:11px;align-items:flex-start;font-size:16.5px;line-height:1.45;color:var(--ink-soft)}
.v2-bottomline li svg {width:21px;height:21px;color:var(--brand);flex-shrink:0;margin-top:1px}
/* ---- stock scarcity meter (inside offer) ---- */
.v2-stock {max-width:min(100%,420px);margin:0 auto 18px;text-align:left}
.v2-stock__row {display:flex;justify-content:space-between;align-items:baseline;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:7px}
.v2-stock__row b {color:var(--action-deep);font-weight:800}
.v2-stock__track {height:9px;border-radius:5px;background:#e7edf3;overflow:hidden}
.v2-stock__fill {height:100%;width:83%;border-radius:5px;background:linear-gradient(90deg,var(--warn-orange),var(--action))}
/* ---- comments polish ---- */
.adv-v2 .adv-comments {background:#fff;border:none;border-radius:0;margin-top:44px;border-top:1px solid #ccc;padding:20px 22px 26px}
@media (max-width:560px) {
  .adv-v2 .adv-comments {padding:16px 14px 20px}
}
.adv-v2 .adv-article h3.adv-comments__title,
.adv-v2 h3.adv-comments__title {margin:10px 0}
@media (max-width:768px) {
  .adv-v2 .adv-article h3 {font-size:30px;margin-top:36px}
}
@media (max-width:480px) {
  .adv-v2 .adv-article h3 {font-size:26px;margin-top:28px}
}
@media (max-width:320px) {
  .adv-v2 .adv-article h3 {font-size:24px}
}
/* ---- mobile: fix horizontal overflow ---- */
@media (max-width:768px) {
  /* article review cards: stack on mobile */
  .adv-reviews > .adv-review-card {flex-direction:column;gap:0}
  /* rail reviews: reduce font sizes */
  .rail-reviews {padding:10px}
  /* The one half of those six rules that DID render: this element's inline
     style set min-width but never font-size, so the 14px applied while the
     60px did not. Only the half that rendered is kept. */
  .rail-reviews .rail-feature__name {font-size:14px}
  .rail-reviews svg[width="110"] {width:80px;height:16px}
  /* title font */
  .adv-title {font-size:28px}
}
@media (max-width:480px) {
  .adv-title {font-size:24px}
}
@media (max-width:360px) {
  .adv-title {font-size:22px}
  .rail-reviews svg[width="110"] {width:70px;height:14px}
}
/* ---- mobile containment for the v2 design layer ---- */
@media (max-width:768px) {
  .v2-pullquote,
  .v2-bottomline,
  .v2-bottomline li,
  .v2-stock,
  .v2-stock__row,
  .rail-reviews {min-width:0}
  .v2-pullquote p,
  .v2-pullquote span,
  .v2-bottomline h4,
  .v2-bottomline li {overflow-wrap:break-word}
  .v2-stock__row {flex-wrap:wrap;gap:4px}
  .rail-reviews * {min-width:0;max-width:100%}
  .rail-reviews svg {max-width:100%;height:auto}
}
/* ---- cost comparison table: two columns on phones, result on its own row ----
   The rows carry inline grid styles, so these overrides need !important. */
@media (max-width:480px) {
  .costtable__row {grid-template-columns:minmax(0,1fr) auto !important;row-gap:4px !important;padding-left:12px !important;padding-right:12px !important}
  .costtable__row > div {min-width:0;overflow-wrap:break-word}
  .costtable__row > div:nth-child(3) {grid-column:1 / -1;text-align:left !important}
  .costtable__row:first-child > div:nth-child(3) {display:none}
}
/* ---- side-by-side choice cards stack on phones ---- */
@media (max-width:560px) {
  .choice-grid {grid-template-columns:minmax(0,1fr) !important}
  .choice-grid > div {min-width:0}
}
@media (max-width:440px) {
  .v2-bottomline {padding:18px 16px}
  .v2-pullquote {padding-left:16px}
}
/* ===== from presale-brand.css ===== */
/* ============================================================
   PRESALE BRAND CSS, Turbo Portable Washer (presale page only)
   Load AFTER presale-base.css and presale-styles.css,
   BEFORE personal-story-sections.css.

   Sales page overrides live in: brand.css
   ============================================================ */
/* ══════════════════════════════════════════════════════════════
   1. BRAND TOKENS
   ══════════════════════════════════════════════════════════════ */
:root { --brand:       #1F94BC;
  --brand-deep:  #15687F;
  --brand-light: #C9E9F3;
  --night:       #0B2B33;
  --night-2:     #10414D;
  --ink:         #0B2B33;
  --bg-soft:     #EAF7FB;
  --muted:       #3C6E7D;
  --line:        rgba(31,148,188,.15);
  --action:      #ff6a3d;
  --action-deep: #e8541f;
  --warn-orange: #ff8b3d; }
/* ══════════════════════════════════════════════════════════════
   2. PRESALE: Brand colour overrides
   ══════════════════════════════════════════════════════════════ */
.adv-header { background: #fff; border-bottom: 3px solid #111; }
.adv-scarcity { background: #b91c1c; }
.adv-btn { background: #ff6a3d; }
.adv-btn:hover { background: #e8541f; }
.adv-hl { background: #C9E9F3; }
.adv-offer { border-color: #1F94BC; }
.adv-offer__timerlabel { color: #15687F; }
.adv-timer__box { background: transparent; }
.adv-timer__unit { background: transparent; color: #666; }
.v2-stock__fill { background: #ff6a3d; }
.adv-offer__badge svg { color: #1F94BC; }
mark { background: #C9E9F3; color: inherit; padding: 0 3px; border-radius: 3px; }
.v2-bottomline { border-left-color: #1F94BC; }
.v2-bottomline h4 { color: #15687F; }
.v2-bottomline svg { color: #1F94BC; }
.adv-offer__price b { color: #ff6a3d; }
.adv-bottombar { background: #ffffff; box-shadow: 0 -2px 12px rgba(0,0,0,.10); padding: 10px 14px; }
.fbc__mention { color: #15687F; }
.adv-link { color: #15687F; }
.adv-link:hover { color: #1F94BC; }
/* UGC photo grid: the sections sheet keeps a padding-top:100% placeholder box
   on the cell, so real photos have to be absolutely positioned inside it. */
.adv-photo-grid__cell { position: relative; overflow: hidden; }
.adv-photo-grid__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* ══════════════════════════════════════════════════════════════
   3. PRESALE: Mobile fixes
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Headline: fluid scale, single source of truth for mobile title size */
  .adv-title { font-size: clamp(22px, 6.5vw, 34px);
    text-wrap: pretty;
    width: 100%; }
  /* Scarcity pill: tight single-line layout */
  .adv-scarcity { font-size: clamp(10px, 3.1vw, 12px);
    padding: 5px 14px;
    gap: 0;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    box-sizing: border-box; }
  .adv-scarcity svg { width: clamp(10px, 3.1vw, 12px);
    height: clamp(10px, 3.1vw, 12px);
    flex-shrink: 0;
    margin-top: 1px;
    margin-right: 5px; }
  .adv-scarcity span { font-size: clamp(10px, 3.1vw, 12px);
    white-space: normal;
    text-align: center; }
}
/* ===== from personal-story-sections.css ===== */
/* ============================================================
   PERSONAL STORY PRESALE, SECTION STYLES
   Loads AFTER furthrive-brand.css. That order is deliberate:
   these rules used to live in a <style> block in the page head,
   which sat after the brand sheet, so they outrank it. Keeping
   the position keeps the rendering identical.

   Load order for this template:
     1. ../presale-base.css        base component library
     2. ../presale-styles.css      shared presale layout
     3. furthrive-brand.css        brand tokens and colours
     4. personal-story-sections.css  this file
   ============================================================ */
/* Hero image, two versions: desktop inside article, mobile full-bleed outside */
.adv-hero-mobile { display: none; }
@media (max-width: 768px) {
  .adv-hero-mobile { display: block; }
  .adv-figure.adv-figure--hero-desktop { display: none; }
}
/* ================================================================
   DESKTOP DEFAULTS, moved from inline styles so media queries
   can override without !important.
   ================================================================ */
.adv-reviews { display: flex; flex-direction: column; gap: 16px; margin: 32px 0; }
.adv-review-card { display: flex; gap: 0; background: #f0f4f8; border: 1px solid #e2eaf2; border-radius: 14px; overflow: hidden; }
.adv-review-card__img { flex-shrink: 0; width: 200px; align-self: stretch; }
.adv-review-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 160px; }
.adv-review-card__body { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 16px; background-color: #F5F6F9; }
.adv-review-card .adv-review-card__title { font-family: 'Inter',sans-serif; font-weight: 700; font-size: 18px; color: var(--ink); margin: 0; line-height: 1.3; max-width: none; }
.adv-review-card .adv-review-card__text { font-family: 'Inter',sans-serif; font-size: 14px; color: var(--ink); margin: 0; line-height: 1.6; max-width: none; }
.adv-review-card__footer { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.adv-review-card__name { font-family: 'Inter',sans-serif; font-weight: 700; font-size: 14px; color: var(--ink); }
.adv-review-card__loc { font-family: 'Inter',sans-serif; font-size: 14px; color: var(--ink-soft); }
.mob-author-card { display: none; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; margin-bottom: 24px; }
.adv-byline__group { display: flex; flex-direction: row; align-items: center; gap: 10px; }
.adv-article .adv-media img { width: 100%; border-radius: 10px; display: block; }
p.adv-footer__disc { font-size: 11px; }
p.adv-footer__legal { font-size: 12px; }
p.adv-footer__links { font-size: 13px; }
.rail-author-card__label { font-family: 'Inter',sans-serif; font-weight: 700; font-size: 15px; color: #fff; }
.rail-author-card__bio { font-family: 'Inter',sans-serif; font-size: 15px; color: var(--ink); line-height: 1.6; margin: 0; }
.adv-photo-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; margin: 24px 0 32px; border-radius: 10px; overflow: hidden; }
/* ================================================================
   STICKY RAIL, overflow-x:clip removes the scroll-container that
   overflow-x:hidden creates on body/html, which breaks position:sticky.
   ================================================================ */
@media (min-width: 901px) {
  html,
  body { overflow-x: clip; }
  .adv-grid { align-items: stretch; }
  /* rail is a plain flex column: the sticky scope takes all leftover height so
 the product card pins through the article, the divider and author card are
 static siblings after it, so the pin releases exactly at the divider. */
  .adv-rail { position: relative; top: 0; align-self: stretch; display: flex; flex-direction: column; margin-bottom: 16px; }
  .rail-sticky-scope { flex: 1 1 auto; min-height: 0; }
  .rail-sticky { position: sticky; top: 20px; z-index: 2; }
  .rail-divider,
  .rail-author-card { flex: 0 0 auto; }
}
/* Short viewports: shed card height through the product crop, never a scale or
   an inner scrollbar, so the card stays exactly the rail width. */
@media (min-width: 901px) and (max-height: 900px) {
  .rail-product-card > a > img { aspect-ratio: 1/1 !important; }
}
@media (min-width: 901px) and (max-height: 810px) {
  .rail-product-card > a > img { aspect-ratio: 5/4 !important; }
}
@media (min-width: 901px) and (max-height: 710px) {
  .rail-product-card > a > img { aspect-ratio: 2/1 !important; }
}
@media (min-width: 901px) and (max-height: 640px) {
  .rail-product-card > a > img { aspect-ratio: 3/1 !important; }
}
/* ================================================================
   GLOBAL MOBILE PADDING  (320px to 768px)
   ================================================================ */
@media (max-width: 768px) {
  :root { --mob-pad: 12px; }
  html,
  .adv-body { overflow-x: clip; max-width: 100vw; }
  .adv-wrap { padding-left: var(--mob-pad);
padding-right: var(--mob-pad);
max-width: 100vw;
box-sizing: border-box; }
  .adv-rail,
  .editorial-cont,
  .adv-titlewrap { max-width: 100%; box-sizing: border-box; overflow-x: hidden; }
  .adv-article { max-width: 100%; box-sizing: border-box; overflow-x: visible; }
  img { max-width: 100%; }
  .adv-article .adv-figure:not(.adv-figure--hero-desktop),
  .adv-article .adv-media { margin-left: calc(-1 * var(--mob-pad));
margin-right: calc(-1 * var(--mob-pad)); }
  .adv-article .adv-media img { width: 100%;
max-width: min(100%, 400px);
height: 217px;
object-fit: cover;
border-radius: 0; }
  .adv-grid { gap: 24px; }
  .adv-rail { display: block; }
  .rail-product-card,
  .rail-divider { display: none; }
  .rail-author-card { display: none; }
  .mob-author-card { display: block; }
  .adv-v2 .adv-article h3 { font-size: 29px; }
  .adv-byline { flex-wrap: nowrap; }
  .adv-byline__readtime { display: none; }
  .adv-reviews { gap: 32px; }
  .adv-review-card { flex-direction: column;
background: transparent;
border: none;
border-radius: 0;
overflow: visible;
position: relative;
margin-left: calc(-1 * var(--mob-pad));
margin-right: calc(-1 * var(--mob-pad)); }
  .adv-review-card__img { width: 100%;
min-height: unset;
border-radius: 0;
aspect-ratio: 16/11;
overflow: hidden;
flex-shrink: 0; }
  .adv-review-card__img img { width: 100%;
height: 100%;
object-fit: cover;
min-height: unset;
display: block; }
  .adv-review-card__body { background: #eeecea;
border-radius: 4px;
margin: -40px var(--mob-pad) 0;
position: relative;
z-index: 1;
padding: 10px 14px;
box-shadow: none; }
  .rail-reviews { padding: 12px; }
  .rail-reviews svg[viewBox="0 0 120 24"] { width: 85px; height: 19px; }
  .fbc__bubble { max-width: calc(100vw - var(--mob-pad) * 2 - 60px); }
}
@media (max-width: 768px) {
  .adv-review-card__body { gap: 4px; padding: 12px 14px; }
}
@media (max-width: 600px) {
  .adv-byline__pipe { display: block; }
}
/* Byline meta: no left padding ≤480px */
@media (max-width: 480px) {
  .adv-byline__meta { padding-left: 0; }
}
/* Byline stacked layout ≤401px */
@media (max-width: 401px) {
  .adv-byline__pipe { display: none; }
  .adv-byline__group { flex-direction: column; align-items: flex-start; gap: 2px; }
}
/* Review + author + footer text: 430px */
@media (max-width: 430px) {
  .adv-review-card__title { font-size: 16px; }
  .adv-review-card__text { font-size: 14px; }
  .adv-review-card__name,
  .adv-review-card__loc { font-size: 14px; }
  .rail-author-card > div:first-child .rail-author-card__label { font-size: 18px; }
  .rail-author-card .rail-author-card__bio { font-size: 15px; }
  .adv-footer p:first-child { font-size: 16px; }
  .adv-footer p:not(:first-child) { font-size: 14px; }
  .adv-footer a { font-size: 16px; }
}
/* Review + author + footer text: 375px */
@media (max-width: 375px) {
  .adv-review-card__title { font-size: 15px; }
  .adv-review-card__text { font-size: 13px; }
  .adv-review-card__name,
  .adv-review-card__loc { font-size: 13px; }
  .rail-author-card > div:first-child .rail-author-card__label { font-size: 16px; }
  .rail-author-card .rail-author-card__bio { font-size: 14px; }
  .adv-footer p:first-child { font-size: 14px; }
  .adv-footer p:not(:first-child) { font-size: 13px; }
  .adv-footer a { font-size: 14px; }
}
/* Small phones */
@media (max-width: 560px) {
  :root { --mob-pad: 12px; }
  .fbc__bubble { max-width: 100%; }
}
/* Very small phones */
@media (max-width: 400px) {
  :root { --mob-pad: 12px; }
  .rail-reviews svg[viewBox="0 0 120 24"] { width: 70px; height: 16px; }
}
/* Minimum supported width */
@media (max-width: 320px) {
  :root { --mob-pad: 12px; }
  .adv-review-card { gap: 0; }
}
/* ---- Offer / countdown block: airy warm palette ---- */
@keyframes stripe-slide {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
.adv-offer { border: 2px solid #111;
  border-radius: 4px;
  background: #fff;
  box-shadow: none; }
.adv-offer__timerwrap { border-bottom: none; }
.v2-stock__fill { background-image: repeating-linear-gradient(
45deg,
rgba(255,255,255,0.18) 0px,
rgba(255,255,255,0.18) 10px,
transparent 10px,
transparent 20px
  );
  background-color: #0e7cc5;
  background-size: 40px 40px;
  animation: stripe-slide 1s linear infinite; }
.adv-offer__timerlabel { color: #2e5252;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase; }
.adv-timer__digits span { background: #ffe14d;
  color: #111;
  border-radius: 3px;
  font-size: 40px;
  min-width: 48px;
  padding: 12px 8px;
  box-shadow: none; }
.adv-timer__colon { color: #2e5252; }
.adv-timer__unit { color: #7a9090; font-size: 11px; letter-spacing: .1em; }
.adv-offer__foot { background: #f7f6f2;
  border-top: 1px solid #ccc; }
.adv-offer__price { color: #173A3A; }
.adv-offer__price s { color: #9aacac; }
.adv-offer__badge { color: #2e5252; }
.adv-offer__badge svg { color: #2AB6AD; }
.v2-stock__row { color: #4a6868; }
@media (max-width: 560px) {
  .adv-timer__digits span { font-size: 32px; min-width: 38px; padding: 10px 6px; }
}
/* ---- Tick list: flex layout with image placeholders ---- */
.adv-ticks li { position: static;
  padding-left: 0;
  display: flex;
  align-items: flex-start;
  gap: 14px; }
.adv-tick-icon { width: 45px;
  height: 45px;
  min-width: 45px;
  flex-shrink: 0;
  border-radius: 4px;
  padding: 0;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain; }
.adv-tick-icon--clock { background-image:none; }
.adv-tick-icon--shield { background-image:none; }
.adv-tick-icon--target { background-image:none; }
.adv-tick-icon--plug { background-image:none; }
.adv-tick-icon--bag { background-image:none; }
@media (max-width: 768px) {
  .adv-tick-icon { width: 35px;
height: 35px;
min-width: 35px;
border-radius: 8px; }
}
/* ============================================================
   SECTION CLASSES
   One class per element that used to carry an inline style.
   BEM on the existing prefixes: adv-, rail-, fbc-, costtable__,
   choice-col__, faq-item__, stock-alert__, marketplace-warn__.
   ============================================================ */
/* ------------------------------------------------------------
   REPEATED CLASS SELECTORS
   These elements carried an inline style before this refactor,
   which beat every non-important rule regardless of specificity.
   A single class does not, so each selector below is repeated
   until it outranks the base-sheet rule it has to beat
   (for example .adv-article p, .adv-figure .ph). Repetition is
   used instead of !important so brand overrides still win.
   ------------------------------------------------------------ */
.adv-body {min-height:100vh}
.adv-logo {padding:0;background:none;font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:26px;color:#111;letter-spacing:-0.01em;text-decoration:none}
.adv-logo__accent {color:#d4a853}
.adv-byline {justify-content: flex-start;align-items: center;padding-bottom: 14px}
.adv-byline__avatar-img {width:100%;height:100%;object-fit:cover;border-radius:50%}
.adv-hero-mobile {margin:0}
.adv-hero-mobile__img {width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.editorial-cont {padding-bottom: 10px}
.adv-figure--hero-desktop {margin:0 0 28px}
.adv-figure__img--hero-desktop.adv-figure__img--hero-desktop {width:100%;display:block;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.adv-lede.adv-lede.adv-lede.adv-lede {font-size: 18px}
/* Only the top-level comment that opens the thread carried this inline margin.
   The other six .fbc blocks keep the base margin, so this must not match them. */
.fbc--spaced {margin:20px 0 28px}
.adv-photo-grid__cell {position:relative;padding-top:100%;background:#e5e7eb}
.adv-review-card__stars {display:flex;gap:2px}
.stock-alert {background:#fff8e6;border:1.5px solid #fbbf24;border-radius:12px;padding:18px 20px;margin:28px 0;font-family:'Inter',sans-serif}
.stock-alert__head {display:flex;align-items:center;gap:10px;margin-bottom:8px}
.stock-alert__badge {background:#fbbf24;color:#1a1a1a;font-family:'Inter',sans-serif;font-weight:800;font-size:11px;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:4px}
.stock-alert__label {font-family:'Inter',sans-serif;font-weight:700;font-size:15px;color:#92400e}
.stock-alert__text.stock-alert__text.stock-alert__text {font-size:14px;color:#78350f;line-height:1.6;margin:0 0 12px}
.stock-alert__cta.stock-alert__cta.stock-alert__cta {display:inline-flex;align-items:center;gap:8px;background:#fbbf24;color:#1a1a1a;font-family:'Inter',sans-serif;font-weight:800;font-size:14px;padding:10px 18px;border-radius:8px;text-decoration:none}
.costtable {border:1.5px solid #e2e8f0;border-radius:14px;overflow:hidden;margin:20px 0 28px}
.costtable__row--head {display:grid;grid-template-columns:1fr 100px 120px;background:#173A3A;color:#fff;padding:10px 16px;font-family:'Inter',sans-serif;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;gap:8px}
.costtable__cell--right {text-align:right}
.costtable__row--body {display:grid;grid-template-columns:1fr 100px 120px;padding:12px 16px;border-bottom:1px solid #e2e8f0;font-family:'Inter',sans-serif;font-size:14px;gap:8px;align-items:center;background:#fff}
.costtable__cell--label {color:#173A3A;font-weight:600;line-height:1.4}
.costtable__cell--cost {text-align:right;color:#991b1b;font-weight:700}
.costtable__cell--result {text-align:right;font-size:13px;color:#64748b}
.costtable__row--total {display:grid;grid-template-columns:1fr 100px 120px;padding:12px 16px;font-family:'Inter',sans-serif;font-size:14px;gap:8px;align-items:center;background:#f0fdf4}
.costtable__cell--label-total {color:#173A3A;font-weight:800;line-height:1.4}
.costtable__cell--cost-total {text-align:right;color:#16a34a;font-weight:800;font-size:16px}
.costtable__cell--result-total {text-align:right;font-size:13px;color:#14532d;font-weight:700}
.adv-offer__img {margin:-1px -1px 0;padding:0;border-radius:14px 14px 0 0;overflow:hidden}
.adv-offer__img-el {width:100%;display:block;aspect-ratio:16/9;object-fit:cover;border-radius:0}
.adv-offer__timerwrap {background-color: #E3F0EF}
.adv-offer__timerlabel.adv-offer__timerlabel.adv-offer__timerlabel {margin-top: 10px;font-size: 20px}
.adv-timer__digit.adv-timer__digit {background-color: #FFFFFF}
.adv-offer__foot {background-color: #F5F6F9EB;border-style: none}
.v2-stock__fill {width:79%}
.adv-offer__price s {color: #173A3A}
.adv-link.adv-link.adv-link {color: #0e7cc5}
.marketplace-warn {background:#fff8e6;border:1.5px solid #fbbf24;border-radius:12px;padding:18px 20px;margin:16px 0 20px;font-family:'Inter',sans-serif}
.marketplace-warn__title.marketplace-warn__title {color:#92400e;display:block;margin-bottom:6px;font-size:15px}
.marketplace-warn__text.marketplace-warn__text.marketplace-warn__text {font-size:14px;color:#78350f;line-height:1.6;margin:0}
.adv-emphasis.adv-emphasis {color: #E8261F;font-weight: 800}
.faq-list {display:flex;flex-direction:column;gap:12px;margin:0 0 32px}
.faq-item {border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}
.faq-item__q {padding:16px 18px;font-family:'Inter',sans-serif;font-weight:700;font-size:16px;color:#0c2539;cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}
.faq-item__a {padding:0 18px 16px;font-family:'Inter',sans-serif;font-size:15px;color:#2c3a47;line-height:1.6}
.choice-grid {display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 28px}
.choice-col--bad {background:#fef2f2;border:1.5px solid #fca5a5;border-radius:14px;padding:20px}
.choice-col__title--bad {font-family:'Anek Latin',sans-serif;font-weight:800;font-size:15px;color:#991b1b;margin-bottom:12px;line-height:1.3}
.choice-col__list {list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.choice-col__item--bad {font-size:14px;line-height:1.5;color:#7f1d1d;display:flex;gap:8px}
.choice-col__mark {font-weight:700;flex-shrink:0}
.choice-col--good {background:#f0fdf4;border:1.5px solid #86efac;border-radius:14px;padding:20px}
.choice-col__title--good {font-family:'Anek Latin',sans-serif;font-weight:800;font-size:15px;color:#14532d;margin-bottom:12px;line-height:1.3}
.choice-col__item--good {font-size:14px;line-height:1.5;color:#166534;display:flex;gap:8px}
.adv-cta-block {margin:32px 0}
.adv-cta-block .adv-btn {display: flex;width: 100%;box-sizing: border-box;justify-content: center;text-transform: none;text-align: center}
.mob-author-card__head {background:#2d2d2d;padding:12px 16px;text-align:center}
.mob-author-card__img {width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.mob-author-card__body {padding:16px}
.adv-rail {margin-top: 0}
.rail-product-card {border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin-bottom:20px}
.rail-product-card__link {display:block}
.rail-product-card__img {width:100%;display:block;aspect-ratio:4/5;object-fit:cover;object-position:center center}
.rail-reviews {margin-top:0;padding:14px 16px}
.rail-reviews .adv-btn {display: flex;margin-bottom: 16px;justify-content: center;text-transform: none;text-align: center}
.rail-reviews__inner {padding:0}
.rail-rating {text-align:center;margin-bottom:12px}
.rail-rating__title {font-family: 'Inter',sans-serif;font-weight: 700;font-size: 18px;color: var(--ink);margin-bottom: 4px}
.rail-rating__row {display:flex;align-items:center;justify-content:center;gap:6px}
.rail-rating__stars {display:flex}
.rail-rating__score {font-family:'Inter',sans-serif;font-weight:700;font-size:16px;color:var(--ink)}
.rail-rating__count {font-family:'Inter',sans-serif;font-size:14px;color:var(--ink-soft);margin-top:2px}
.rail-bars {display: flex;flex-direction: column;gap: 5px;margin-bottom: 16px}
.rail-bar {display:flex;align-items:center;gap:10px;font-family:'Inter',sans-serif;font-size:17px}
.rail-bar__label {display:flex;align-items:center;gap:4px;white-space:nowrap;min-width:58px}
.rail-bar__num {color:#00b67a;font-weight:700;min-width:12px;text-align:center}
.rail-bar__unit {color:#00b67a;font-weight:700;min-width:42px;text-align:left}
.rail-bar__track {flex:1;height:10px;background:#e5e7eb;border-radius:5px;overflow:hidden}
.rail-bar__fill {height:100%;background:#00b67a;border-radius:5px}
.rail-bar__fill--81 {width:81%}
.rail-bar__pct {color:var(--ink);font-weight:600;min-width:36px;text-align:right}
.rail-bar__fill--6 {width:6%}
.rail-bar__fill--3 {width:3%}
.rail-bar__fill--0a {width:0%}
.rail-bar__fill--0b {width:0%}
.rail-feature {border-top:1px solid var(--line);padding-top:12px}
.rail-feature__title {font-family:'Inter',sans-serif;font-weight:700;font-size:18px;color:var(--ink);text-align:center;margin-bottom:10px}
.rail-feature__list {display: flex;flex-direction: column;gap: 5px}
.rail-feature__row {display:flex;align-items:center;gap:8px;font-family:'Inter',sans-serif;font-size:17px;white-space:nowrap}
.rail-feature__name {color:var(--ink-soft);min-width:90px}
.rail-feature__stars {margin-left:auto}
.rail-feature__score {color:var(--ink);font-weight:600}
.rail-divider {border-top:1px solid var(--line);margin:24px 0}
.rail-author-card {border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin-top:0}
.rail-author-card__head {background:#2d2d2d;padding:12px 16px;text-align:center}
.rail-author-card__img {width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.rail-author-card__body {padding:16px}
.adv-footer {background-color:#f5f5f5;border-top:1px solid #e0e0e0;padding:40px 0 24px}
.adv-footer__inner {text-align:center}
.adv-footer__disc.adv-footer__disc.adv-footer__disc {font-family:'Inter',sans-serif;font-weight:700;letter-spacing:.08em;color:#555;text-transform:uppercase;margin:0 0 24px}
.adv-footer__legal.adv-footer__legal {font-family:'Inter',sans-serif;color:#666;line-height:1.7;margin:0 0 16px}
.adv-footer__legal--last.adv-footer__legal--last {font-family:'Inter',sans-serif;color:#666;line-height:1.7;margin:0 0 32px}
.adv-footer__bottom {display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ddd;padding-top:20px;flex-wrap:wrap;gap:12px}
.adv-footer__links.adv-footer__links.adv-footer__links {font-family:'Inter',sans-serif;color:#555;margin:0}
.adv-footer__link.adv-footer__link {color:#555;text-decoration:none}
/* Photo grid cells alternate their placeholder tone. */
.adv-photo-grid__cell:nth-child(even) {background:#d1d5db}
/* Desktop only: headlines fill the full column width instead of balancing
   into short lines. Mobile keeps the balanced wrapping from the base sheet. */
@media (min-width: 769px) {
  .adv-v2 .adv-title,
  .adv-v2 .adv-article h3,
  .adv-v2 .adv-article h4 { text-wrap: wrap; }
}
/* ===== page-level rules (formerly embedded in the page head) ===== */
h1,
h3,
h4,
.adv-v2 .adv-title,
.adv-v2 .adv-article h3,
.adv-v2 .adv-article h4 {text-wrap:balance !important}
@media (min-width:901px) {
  .adv-bottombar {display:none !important}
}
@media (max-width:900px) {
  .adv-bottombar,
  .adv-bottombar.is-on {display:block !important;position:fixed !important;left:0;right:0;bottom:0;z-index:999}
  .adv-bottombar {transform:translateY(115%);opacity:0;pointer-events:none;transition:transform .38s cubic-bezier(.22,.9,.28,1),opacity .28s ease;will-change:transform}
  .adv-bottombar.is-on {transform:translateY(0);opacity:1;pointer-events:auto}
  footer.adv-footer {padding-bottom:calc(var(--bottombar-h, 74px) + 10px) !important}
  .adv-footer .adv-footer__bottom {display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;justify-content:center}
  .adv-footer p.adv-footer__disc {font-size:11px}
  .adv-footer p.adv-footer__legal {font-size:12px}
  .adv-footer p.adv-footer__links,
  .adv-footer p.adv-footer__links a {font-size:13px}
}
.adv-footer__copy-line {white-space:nowrap}
/* ===== CTA block colours (formerly injected at runtime from component defaults) ===== */
.adv-offer__timerwrap { background-color: #ffffff; }
.adv-timer__digits span { background: #C9E9F3; color: #0B2B33; }
.adv-timer__colon { color: #15687F; }
.adv-timer__unit { color: #7a9090; }
.adv-offer__timerlabel { color: #15687F; }
.adv-offer__badge svg { color: #1F94BC; }
.adv-offer__badge { color: #0B2B33; }
.adv-btn { background: #ff6a3d; color: #ffffff; }
.adv-btn:hover { background: #ff6a3d; filter: brightness(0.9); }
.v2-stock__fill { background: #e8402a; }
.v2-stock__row { color: #3C6E7D; }
.v2-stock__row b { color: #e8402a; }
.adv-offer__foot { background: #EAF7FB; }
.adv-offer__price { color: #0B2B33; }
.adv-offer__price b { color: #15687F; }
.adv-offer__price s { color: #9aacac; }
.v2-stock__track { background: #d9d5d0; }
mark { background: #C9E9F3; }
.adv-photo-grid__cell { position: relative; overflow: hidden; }
.adv-photo-grid__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* ===== Export: former inline styles ===== */
.adv-article__video { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; background: #e9edf0; }
.adv-article__nowrap { white-space: nowrap; font: inherit; color: inherit; }
.stock-alert__product { color: inherit; }
.adv-offer__strike { margin-right: 0; }
.adv-offer__mark { margin-left: -4px; }
.adv-btn--closing { font-size: clamp(13px, 2.4vw, 18px); white-space: nowrap; }
/* Export: captions are now <figcaption>; the global figcaption balance rule did not apply to the old <div> */
.adv-figure .adv-figure__caption { text-wrap: inherit; }
/* Brand logo in the presell header (replaces the "LifeStyle Daily" text masthead) */
.adv-logo__img {display:block;height:40px;width:auto}
@media (max-width:600px) {.adv-logo__img {height:30px}}
