/* Astraclean UK – site styles. Plain CSS, no build step. Brand: #1f5fa8 → #3a8fd9 */
@font-face{font-family:"Montserrat";src:url(/assets/fonts/montserrat-latin-var.woff2) format("woff2");font-weight:300 800;font-style:normal;font-display:swap}
:root{--head:#14213d;--b1:#1f5fa8;--b2:#3a8fd9;--light:#eaf3fc;--soft:#f4f8fc;--ink:#1f2d3d;--muted:#4a5a6a;--dark:#14365f;--line:#dbe6f2;--star:#e39b00;--grad:linear-gradient(135deg,var(--b1) 0%,#2a73bd 100%);--shadow:0 4px 16px rgba(16,50,100,.08);--radius:16px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:Montserrat,Arial,Helvetica,sans-serif;color:var(--ink);line-height:1.6;font-size:16px;background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:var(--b1)}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--dark);outline-offset:3px}
.hero :focus-visible,.band :focus-visible,.site-header :focus-visible,.site-footer :focus-visible,.page-hero :focus-visible{outline-color:#ffbf47}
[hidden]{display:none!important}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.narrow{max-width:860px}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--b1);padding:10px 16px;z-index:50;font-weight:700}
.skip:focus{left:12px;top:12px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Sink news ticker under the main menu (headlines written daily by .github/news/build_news.py) */
.news-ticker{background:var(--dark);color:#fff;font-size:13px;line-height:1.3;height:36px;overflow:hidden}
.nt-wrap{display:flex;align-items:center;gap:12px;height:36px;overflow:hidden}
.nt-label{flex:none;white-space:nowrap;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:11px;text-decoration:none;background:rgba(255,255,255,.14);padding:4px 10px;border-radius:999px}
.nt-label:hover{background:rgba(255,255,255,.24)}
.nt-viewport{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent)}
.nt-track{display:flex;flex-wrap:nowrap;width:max-content;animation:nt-scroll var(--nt-dur,60s) linear infinite}
.nt-list{display:flex;flex-wrap:nowrap;list-style:none;margin:0;padding:0;flex:none}
.nt-list li{list-style:none;white-space:nowrap;padding:0 22px;position:relative}
.nt-list li::before{content:"";position:absolute;left:-2px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:rgba(255,255,255,.45)}
.nt-list a,.nt-empty a{color:#fff;text-decoration:none;font-weight:600}
.nt-list a:hover,.nt-list a:focus-visible,.nt-empty a:hover{text-decoration:underline}
.nt-src{color:#b9cde6;font-size:12px;margin-left:4px}
.nt-empty{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news-ticker :focus-visible{outline-color:#ffbf47;outline-offset:1px}
.nt-toggle{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:transparent;cursor:pointer;display:grid;place-items:center;padding:0}
.nt-toggle:hover{background:rgba(255,255,255,.14)}
.nt-ico{display:block;width:9px;height:10px;border-left:3px solid #fff;border-right:3px solid #fff}
.news-ticker.is-paused .nt-ico{width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #fff;margin-left:2px}
@keyframes nt-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.news-ticker:hover .nt-track,.news-ticker:focus-within .nt-track,.news-ticker.is-paused .nt-track{animation-play-state:paused}
@media (max-width:600px){.nt-wrap{gap:8px;height:36px}.news-ticker{font-size:12.5px}.nt-label{font-size:10px;padding:3px 8px}}
@media (prefers-reduced-motion:reduce){
  .nt-track{animation:none}
  .nt-list[aria-hidden]{display:none}
  .nt-viewport{overflow-x:auto;scrollbar-width:none}
  .nt-viewport::-webkit-scrollbar{display:none}
  .nt-toggle{display:none!important}
}

/* Header */
.site-header{background:var(--b1);color:#fff;position:sticky;top:0;z-index:20}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.logo{font-size:26px;letter-spacing:1px;font-weight:300;color:#fff;text-decoration:none;line-height:1;white-space:nowrap}
.logo b{font-weight:800}
.site-nav a{color:#fff;text-decoration:none;margin-left:22px;font-size:14px;font-weight:600;opacity:.92}
.site-nav a:hover{opacity:1;text-decoration:underline}

/* Buttons */
.btn{display:inline-block;padding:14px 24px;border-radius:999px;font-weight:700;text-decoration:none;font-size:15px;text-align:center;line-height:1.3;border:2px solid transparent;cursor:pointer;font-family:inherit;transition:transform .15s ease,box-shadow .15s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(8,30,70,.18)}
.btn:active{transform:none;box-shadow:none}
@media (prefers-reduced-motion:reduce){.btn,.btn:hover{transition:none;transform:none}}
.btn-blue:hover{background:#1a5294}
.btn-white{background:#fff;color:var(--b1)}
.btn-blue{background:var(--b1);color:#fff}
.btn-outline{border-color:#fff;color:#fff;background:transparent}
.btn-outline-b{border-color:var(--b1);color:var(--b1);background:#fff}
.btn-sm{padding:9px 18px;font-size:14px}
/* Marketplace buttons are the main buttons until a direct checkout exists; then they become secondary. */
.has-direct .hero .btn-market,.has-direct .band .btn-market{background:transparent;color:#fff;border-color:#fff}
.has-direct .buy-box .btn-market{background:#fff;color:var(--b1);border-color:var(--b1);padding:9px 18px;font-size:14px}

/* Hero */
.hero{color:#fff;background:radial-gradient(circle at 86% 20%,rgba(255,255,255,.09) 0 25%,transparent 25.2%),radial-gradient(circle at 84% 78%,rgba(255,255,255,.07) 0 19%,transparent 19.2%),var(--grad)}
.hero{padding:0}
.hero .wrap{min-height:580px;display:flex;align-items:center;justify-content:space-between;gap:56px}
.hero-text{max-width:640px;padding:64px 0}
.eyebrow{font-size:13px;letter-spacing:3px;text-transform:uppercase;font-weight:700;opacity:.92;margin:0}
.hero h1{font-size:48px;line-height:1.12;margin:12px 0 18px;font-weight:800}
.hero p{font-size:18px;margin:0 0 20px;opacity:.96}
.hero-lead{max-width:560px}
.rating-line{display:flex;width:fit-content;flex-wrap:wrap;align-items:center;gap:4px 10px;color:#fff;text-decoration:none;font-weight:600;font-size:15px;margin:0 0 18px}
.rating-line:hover .rl-text{text-decoration:underline}
.rating-line .stars{font-size:18px}
.rating-line .star{color:rgba(255,255,255,.45)}
.rating-line .star.on{color:#ffd166}
.rating-line-dark{color:var(--ink);display:flex;margin:2px 0 10px}
.rating-line-dark .star{color:#c7d3e0}
.rating-line-dark .star.on{color:var(--star)}
.hero-badges{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:14px;font-weight:600}
.hero-badges li{display:flex;align-items:center;gap:8px}
.hero-badges .ico{width:20px;height:20px}
.pills{display:inline-block;background:var(--light);color:var(--b1);font-weight:700;border-radius:999px;padding:7px 16px;font-size:14px;margin:0 0 24px}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero-card{flex:0 0 auto;width:380px;border-radius:24px;overflow:hidden;box-shadow:0 22px 50px rgba(8,30,70,.35);background:#fff}
.hero-note{font-size:14px;margin-top:14px;opacity:.92}

/* Trust strip */
.trust{background:var(--light)}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:26px 24px}
.trust div{font-size:14px;color:var(--muted)}
.trust strong{display:block;color:var(--b1);font-size:15px}

/* Sections */
section{padding:80px 0}
h2{color:var(--head);font-size:34px;line-height:1.2;margin:0 0 22px}
h3{color:var(--ink);font-size:20px;line-height:1.3;margin:28px 0 10px}
h1,h2{letter-spacing:-.01em}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.card-img{border-radius:18px;overflow:hidden;box-shadow:0 18px 40px rgba(16,50,100,.18);background:#fff}
.price{font-size:36px;font-weight:800;color:var(--ink);margin:4px 0 8px;line-height:1.2}
.price small{font-size:16px;font-weight:600;color:var(--muted)}
ul.ticks{list-style:none;padding:0;margin:18px 0}
ul.ticks li{padding:4px 0 4px 30px;position:relative}
ul.ticks li::before{content:"✔";position:absolute;left:0;color:var(--b2);font-weight:700}
.buy-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.buy-actions .btn[data-direct-link]{padding:16px 34px;font-size:16px}
.alt-buy{flex-basis:100%;margin-top:6px;font-size:14px;color:var(--muted)}
.buy-box h2{margin-bottom:8px}
.buy-note{margin:16px 0 0}
/* eBay 2-pack option (secondary to Buy direct; clicks count as store "ebay2") */
.twopack{display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;margin:14px 0 0;padding:9px 16px 9px 10px;border:1.5px solid #cfe0f2;border-radius:16px;background:var(--light);color:var(--muted);text-decoration:none;font-size:14px;line-height:1.35;transition:border-color .15s,box-shadow .15s}
.twopack:hover{border-color:var(--b2);box-shadow:0 6px 16px rgba(16,50,100,.12)}
.tp-badge{flex:0 0 auto;background:var(--b1);color:#fff;font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:5px 9px;line-height:1.2}
.tp-text{min-width:0}
.tp-text strong{display:block;color:var(--b1);font-size:15px}
.twopack:hover .tp-text strong{text-decoration:underline}
.tp-go{margin-left:auto;padding-left:4px;color:var(--b1);font-weight:700}
.twopack-dark{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5);color:rgba(255,255,255,.92)}
.twopack-dark:hover{border-color:#fff;box-shadow:0 6px 16px rgba(8,30,70,.25)}
.twopack-dark .tp-badge{background:#fff;color:var(--b1)}
.twopack-dark .tp-text strong,.twopack-dark .tp-go{color:#fff}
.twopack-center{margin:16px auto 0;text-align:left}
.twopack-lp{width:100%;margin-top:10px}
/* Buy 2 direct (PayPal 2-pack, store "direct2"): stronger than the eBay 2-pack below it */
.twopack-direct{border:2px solid var(--b1);background:#fff;color:var(--muted)}
.twopack-direct:hover{border-color:var(--b2)}
.twopack-direct .tp-text strong{font-size:16px}
.twopack-direct + .twopack{margin-top:8px}
.twopack-dark.twopack-direct{background:#fff;border-color:#fff;color:var(--muted)}
.twopack-dark.twopack-direct .tp-badge{background:var(--b1);color:#fff}
.twopack-dark.twopack-direct .tp-text strong,.twopack-dark.twopack-direct .tp-go{color:var(--b1)}
.twopack-dark.twopack-direct:hover{border-color:#fff;box-shadow:0 8px 22px rgba(8,30,70,.35)}
.pc-two{margin:12px 0 0}
.twopack-card{margin:0}
.twopack[hidden],.pc-two[hidden]{display:none}
@media (max-width:900px){.hero .twopack,.buy-box .twopack,.twopack-card{width:100%}}
@media (prefers-reduced-motion:reduce){.twopack{transition:none}}
/* Product photo gallery */
.buy-grid{align-items:start}
.gallery{max-width:460px;width:100%;justify-self:center}
.gallery-main{border-radius:20px;overflow:hidden;box-shadow:0 18px 40px rgba(16,50,100,.16);background:#fff}
.gallery-thumbs{display:flex;gap:12px;margin-top:14px;justify-content:center}
.thumb{width:76px;padding:0;border:2px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;cursor:pointer;transition:border-color .15s}
.thumb:hover{border-color:var(--b2)}
.thumb[aria-pressed="true"]{border-color:var(--b1);box-shadow:0 0 0 2px var(--b1)}
/* Trust badges (buy box) */
.badges{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.badges li{display:flex;gap:12px;align-items:flex-start;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--muted);line-height:1.45}
.badges .ico{color:var(--b1);width:24px;height:24px;margin-top:1px}
.badges strong{display:block;color:var(--ink);font-size:15px}
.bg-soft{background:var(--soft)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.benefit{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border:1px solid #e6eef7}
.benefit h3{font-size:17px;margin:0 0 4px}
.benefit h3::before{content:"✔ ";color:var(--b2)}
.benefit p{color:var(--muted);font-size:15px;margin:0}
.chips{list-style:none;padding:0;margin:0}
.chips li{display:inline-block;background:var(--light);color:var(--b1);border-radius:999px;padding:7px 16px;margin:4px;font-size:15px;font-weight:600}
.warn{border:1px solid #f1c6c6;background:#fdf5f5;border-radius:10px;padding:16px 20px;margin-top:22px;font-size:15px}
.warn strong{color:#b00000}
ol.steps{counter-reset:s;list-style:none;padding:0;margin:0}
ol.steps li{counter-increment:s;position:relative;padding:4px 0 18px 50px}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;background:var(--b1);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}
.tip{background:var(--soft);border-left:4px solid var(--b2);padding:12px 16px;font-size:15px}
.center{text-align:center}

/* Video (click to load) */
.video{position:relative;max-width:860px;margin:0 auto;border-radius:16px;overflow:hidden;box-shadow:0 18px 40px rgba(16,50,100,.18);aspect-ratio:16/9;background:#000}
.video picture{display:block;width:100%;height:100%}
.video a,.video iframe{display:block;width:100%;height:100%;border:0}
.video img{width:100%;height:100%;object-fit:cover}
.play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.play span{width:86px;height:60px;background:#e00;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 6px 20px rgba(0,0,0,.35);transition:transform .15s}
.video a:hover .play span,.video a:focus-visible .play span{transform:scale(1.08)}

.safety{border:2px solid var(--b1);border-radius:14px;padding:24px}
.safety h2{margin-bottom:12px}
details{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:12px;box-shadow:0 2px 10px rgba(16,50,100,.06);border:1px solid #e6eef7}
summary{font-weight:700;cursor:pointer;color:var(--ink)}
details p{margin:10px 0 0;color:var(--muted)}
.del{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.del div{background:var(--light);border-radius:14px;padding:22px;font-size:15px}
.del h3{color:var(--head);margin:0 0 6px;font-size:17px;display:flex;align-items:center;gap:8px}
.del h3 .ico{color:var(--b1)}
.del p{margin:0}
.small{font-size:13px;color:var(--muted)}
.band{background:#f3f6fa;color:var(--ink);text-align:center;padding:56px 0;border-top:1px solid var(--line)}
.band h2{color:var(--head)}
.band-cta{margin:0}
.band-cta .btn{padding:16px 38px;font-size:17px}
.band .ctas{justify-content:center}

/* Legal / text pages */
.page-hero{background:var(--grad);color:#fff;padding:44px 0}
.page-hero h1{margin:0;font-size:36px;line-height:1.2}
.page-hero p{margin:8px 0 0;opacity:.95}
.prose{padding:48px 24px 70px}
.prose h2{font-size:26px;margin-top:40px}
.prose h2:first-child{margin-top:0}
.prose li{margin-bottom:6px}
.prose blockquote{margin:16px 0;padding:14px 18px;background:var(--soft);border-left:4px solid var(--b2)}
.table-wrap{overflow-x:auto;margin:16px 0}
table{border-collapse:collapse;width:100%;font-size:15px;min-width:560px}
th,td{text-align:left;vertical-align:top;border-bottom:1px solid #d8e3ef;padding:10px 12px}
th{background:var(--light);color:var(--b1)}
.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.prose .linklike{color:var(--b1);font-weight:700}
.status{display:inline-block;background:var(--light);color:var(--b1);border-radius:999px;padding:2px 12px;font-weight:700;font-size:14px}

/* "Thanks for your order" banner (/?order=thanks after PayPal) */
.order-thanks{background:var(--light);border-bottom:1px solid #cfe0f3;color:var(--ink)}
.order-thanks:focus{outline:none}
.order-thanks .wrap{display:flex;align-items:flex-start;gap:14px;padding-top:18px;padding-bottom:18px}
.ot-icon{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--b1);color:#fff;font-weight:800;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}
.ot-text{flex:1 1 auto;margin:0;padding-top:4px;font-size:15px}
.ot-text strong{display:block;color:var(--b1);font-size:18px;margin-bottom:2px}
.ot-close{flex:0 0 auto;background:none;border:0;font-family:inherit;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;padding:2px 8px;border-radius:8px}
.ot-close:hover{color:var(--ink)}

/* Guides (/guides/) */
.breadcrumbs ol{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;font-size:14px}
.breadcrumbs li{opacity:.95}
.breadcrumbs li+li::before{content:"›";margin:0 8px;opacity:.8}
.breadcrumbs a{color:#fff}
.page-hero .byline{font-size:14px;opacity:.9;margin-top:12px}
.lead{font-size:18px;color:var(--ink)}
.guide h3{color:var(--b1)}
.guide ol.steps{margin:16px 0 8px}
.guide-fig{margin:28px auto;max-width:420px}
.guide-fig img{border-radius:16px;box-shadow:0 12px 30px rgba(16,50,100,.15)}
.lifestyle-fig{margin:28px auto 0;max-width:640px}
.lifestyle-fig img{display:block;width:100%;height:auto;border-radius:16px;box-shadow:0 12px 30px rgba(16,50,100,.15)}
.lifestyle-fig figcaption{font-size:14px;color:var(--muted);text-align:center;margin-top:10px}
.guide-fig figcaption{font-size:14px;color:var(--muted);text-align:center;margin-top:10px}
.guide details{border:1px solid #e1eaf4}
.product-card{display:flex;gap:24px;align-items:center;background:var(--light);border-radius:18px;padding:22px;margin:40px 0}
.pc-img{flex:0 0 150px;background:#fff;border-radius:14px;overflow:hidden}
.pc-body p{margin:0 0 10px}
.pc-eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--b1)}
.pc-title{font-size:21px;font-weight:800;color:var(--ink);line-height:1.25}
.pc-price{font-size:24px;font-weight:800;color:var(--ink)}
.pc-price small{font-size:14px;font-weight:600;color:var(--muted)}
.pc-alt{margin-top:12px!important}
.related{padding:0;margin-top:40px;border-top:1px solid #d8e3ef;padding-top:24px}
.related h2{font-size:22px}
.guide-list{list-style:none;padding:0;margin:28px 0;display:grid;gap:18px}
.guide-card{background:#fff;border-radius:14px;padding:22px 24px;box-shadow:0 4px 16px rgba(16,50,100,.08);border:1px solid #e1eaf4}
.guide-card h2{font-size:21px;margin:0 0 6px}
.guide-card h2 a{text-decoration:none}
.guide-card h2 a:hover{text-decoration:underline}
.guide-card p{margin:0 0 8px;color:var(--muted)}
.read-more{font-weight:700;font-size:14px;text-decoration:none}
.home-guides{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.home-guides li{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border:1px solid #e6eef7}
.home-guides a{font-weight:700;text-decoration:none;font-size:17px;line-height:1.35}
.home-guides a:hover{text-decoration:underline}
.home-guides p{margin:8px 0 0;color:var(--muted);font-size:15px}
.guides-all{margin-top:18px}
@media (max-width:900px){.home-guides{grid-template-columns:1fr}}
@media (max-width:600px){.breadcrumbs li[aria-current]{display:none}.breadcrumbs li:nth-last-child(2)::after{content:"›";margin-left:8px;opacity:.8}.product-card{flex-direction:column;align-items:stretch;text-align:left}.pc-img{flex:none;width:140px;margin:0 auto}.lead{font-size:17px}}

/* Customer reviews (rendered from /assets/data/reviews.json) */
.reviews{background:#fff}
.review-group{margin-top:36px}
.review-group:first-child{margin-top:8px}
.review-group-title{font-size:22px;color:var(--head);margin:0 0 4px;text-align:center}
.review-group-summary{text-align:center;color:var(--muted);font-size:15px;margin:0 auto 20px;max-width:760px}
.review-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.review{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column}
.review-head{margin-bottom:8px}
.stars{display:inline-flex;gap:1px;font-size:18px;line-height:1;letter-spacing:0}
.star{color:#c7d3e0}
.star.on{color:var(--star)}
.review-fb{display:inline-block;background:#eef1f5;color:#4a5a6a;border:1px solid #dde3ea;border-radius:999px;padding:2px 10px;font-size:12.5px;font-weight:600}
.review-title{font-size:17px;margin:0 0 6px;color:var(--ink)}
.review-text{margin:0 0 12px;flex:1 1 auto}
.review-text p{margin:0;font-size:15px}
.review-meta{margin:0;font-size:14px;color:var(--muted)}
.review-name{font-weight:700;color:var(--ink)}
.review-source{margin:4px 0 0;font-size:13px;color:#17652f;font-weight:600}
.review-all{margin:18px auto 0;max-width:860px;background:var(--soft)}
.review-compact{list-style:none;padding:0;margin:12px 0 0}
.review-compact li{padding:10px 0;border-top:1px solid var(--line);font-size:15px}
.review-compact q{display:block}
.review-compact .review-meta{font-size:13px;margin-top:2px}
.review-group-link{text-align:center;margin:18px 0 0}
.reviews-note{max-width:760px;margin:30px auto 0}
.review-swipe{display:none;text-align:center;font-size:13px;color:var(--muted);margin:2px 0 0}
@media (max-width:1000px){.review-list{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.review-list{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:86%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:4px 2px 12px;margin:0 -2px}.review{scroll-snap-align:start}.review-swipe{display:block}}

/* Mobile quick-buy bar (hidden on desktop, where the header has a Buy now button) */
.sticky-buy{display:none}
@media (max-width:900px){
 .sticky-buy{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;align-items:center;justify-content:space-between;gap:10px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(8,30,70,.14);padding:10px 12px calc(10px + env(safe-area-inset-bottom));transform:translateY(110%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
 .sticky-buy.is-on{transform:none;visibility:visible;transition:transform .22s ease}
 .sb-info{display:flex;flex-direction:column;line-height:1.2;min-width:0}
 .sb-name{font-weight:700;font-size:14px;color:var(--ink)}
 .has-direct .sb-name{display:none}
 .sb-price-wrap{display:flex;flex-direction:column}
 .sb-price{font-size:19px;font-weight:800;color:var(--ink)}
 .sb-note{font-size:12px;color:var(--muted);white-space:nowrap}
 .sb-note::first-letter{text-transform:uppercase}
 .sb-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
 .sb-alt{display:inline-block;padding:9px 11px;border:1.5px solid var(--b1);border-radius:999px;color:var(--b1);font-weight:700;font-size:13px;text-decoration:none;line-height:1.2}
 html:not(.has-direct) .sb-alt{background:var(--b1);color:#fff;padding:10px 16px;font-size:14px}
 .sb-main{padding:11px 18px;font-size:15px}
 .sticky-buy .btn:hover{transform:none}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){.sticky-buy,.sticky-buy.is-on{transition:none}}
@media (max-width:360px){.sb-note{display:none}.sb-alt{padding:8px 9px}}

/* Footer */
.site-footer{background:var(--dark);color:#c9d8ea;font-size:14px;padding:44px 0 36px}
.site-footer a,.site-footer .linklike{color:#fff;margin-right:16px}
.site-footer .logo{font-size:22px}
.footer-links{display:flex;flex-wrap:wrap;gap:2px 8px}
.copy{font-size:13px;color:#9fb6cf}

/* Cookie banner */
.cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:40;max-width:720px;margin:0 auto;background:#fff;color:var(--ink);border-radius:14px;box-shadow:0 12px 40px rgba(8,30,70,.3);padding:18px 20px;display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;border-top:4px solid var(--b2)}
.cookie p{margin:0;flex:1 1 320px;font-size:14px}
.cookie .btns{display:flex;gap:10px}
.cookie .btn{padding:10px 22px;font-size:14px}

@media (max-width:900px){
 .site-nav{display:none}
 .hero .wrap{min-height:0;display:block}
 .hero-text{padding:36px 0 24px}
 .hero h1{font-size:32px}
 .hero p{font-size:16px}
 .eyebrow{font-size:12px;letter-spacing:2px}
 .hero-card{width:100%;max-width:300px;margin:0 auto 36px}
 .ctas .btn{width:100%}
 .has-direct .hero .ctas .btn-market,.has-direct .band .ctas .btn-market{width:auto;flex:1 1 40%;padding:12px 14px}
 .hero-badges{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;font-size:13px;margin-top:22px}
 .buy-grid .gallery{order:2;max-width:300px}
 .badges{grid-template-columns:1fr}
 .buy-actions .btn[data-direct-link]{width:100%}
 .trust .wrap{grid-template-columns:1fr 1fr}
 .two,.grid3,.del{grid-template-columns:1fr;gap:28px}
 .hide-mobile{display:none}
 section{padding:52px 0}
 h2{font-size:27px}
 .page-hero h1{font-size:28px}
 .two .order-first{order:-1}
}
@media (max-width:420px){.logo{font-size:22px}.trust .wrap{grid-template-columns:1fr}}

/* Sink news (/news/) – built daily by .github/news/build_news.py */
.news-status{display:inline-block;background:var(--light);color:var(--dark);border-radius:12px;padding:8px 14px;font-size:14px;font-weight:600;margin:4px 0 8px}
.news h2{color:var(--ink)}
.news-list{list-style:none;padding:0;margin:18px 0 8px;display:grid;gap:14px}
.news-item{background:#fff;border-radius:14px;padding:16px 20px;border:1px solid #e1eaf4;box-shadow:0 2px 10px rgba(16,50,100,.05)}
.news-item h3{font-size:17px;line-height:1.35;margin:0 0 4px}
.news-item h3 a{text-decoration:none;color:var(--b1)}
.news-item h3 a:hover{text-decoration:underline}
.news-item h3 a::after{content:" ↗";font-size:13px;opacity:.6}
.news-meta{margin:0;font-size:13px;color:var(--muted)}
.news-src{font-weight:700;color:var(--dark)}
.news-snip{margin:6px 0 0;font-size:15px;color:var(--muted)}
.news-empty{background:var(--soft);border-radius:12px;padding:14px 18px;color:var(--muted)}
.news-older{margin-top:12px}
.news-older .news-list{margin-top:14px}
.news-about{margin-top:40px;border-top:1px solid #d8e3ef;padding-top:24px}
.news-about h2{font-size:22px}
.news-sources{columns:2;column-gap:28px}
@media (max-width:600px){.news-item{padding:14px 16px}.news-sources{columns:1}}

/* Link-in-bio page (/links/): mobile-first single column */
.lp-body{background:var(--soft)}
.lp-head{background:var(--grad);color:#fff;text-align:center;padding:26px 20px 64px}
.lp-head .logo{font-size:30px}
.lp-head p{margin:8px 0 0;font-size:14px;font-weight:600;opacity:.92}
.lp-head :focus-visible{outline-color:#ffbf47}
.lp{max-width:480px;margin:-46px auto 0;padding:0 16px 28px}
.lp-card{background:#fff;border-radius:20px;box-shadow:0 12px 34px rgba(16,50,100,.14);padding:20px 18px 18px;position:relative}
.lp-product{display:flex;gap:16px;align-items:center}
.lp-photo{flex:0 0 104px;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.lp-info{min-width:0}
.lp h1{font-size:20px;line-height:1.25;margin:0 0 6px;color:var(--ink);font-weight:800}
.lp h1 span{color:var(--muted);font-weight:600;font-size:16px;white-space:nowrap}
.lp-sub{margin:0;font-size:14px;color:var(--muted);line-height:1.45}
.lp-price{margin:8px 0 0;font-size:24px;font-weight:800;line-height:1.2;color:var(--ink)}
.lp-price small{font-size:13px;font-weight:600;color:var(--muted)}
.lp-rating{margin:14px 0 0;font-size:14px}
.lp-buttons{display:grid;gap:10px;margin-top:16px}
.lp-btn{width:100%;padding:14px 18px;font-size:16px}
.lp-direct{padding:16px 18px;font-size:17px}
html:not(.has-direct) .lp-buttons .btn-market{background:var(--b1);color:#fff;border-color:var(--b1)}
.lp-trust{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;font-size:13px;font-weight:600;color:var(--ink);line-height:1.3}
.lp-trust li{display:flex;align-items:center;gap:7px}
.lp-trust .ico{width:20px;height:20px;color:var(--b1)}
.lp-trust a{color:inherit}
.lp-note{margin:12px 0 0;font-size:12px;color:var(--muted);text-align:center}
.lp-group{padding:0;margin-top:24px}
.lp-group h2{font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--b1);margin:0 0 10px 4px}
.lp-links{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lp-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #e1eaf4;border-radius:14px;padding:13px 14px 13px 16px;text-decoration:none;color:var(--ink);box-shadow:0 2px 10px rgba(16,50,100,.06);transition:border-color .15s,box-shadow .15s}
.lp-links a:hover{border-color:var(--b2);box-shadow:0 6px 16px rgba(16,50,100,.12)}
.lp-links strong{display:block;color:var(--b1);font-size:15px;line-height:1.3}
.lp-links span{font-size:13px;color:var(--muted);line-height:1.4}
.lp-links .ico{width:20px;height:20px;color:var(--b1)}
.lp-foot{text-align:center;font-size:13px;color:var(--muted);padding:8px 16px 40px}
.lp-foot p{margin:6px 0}
.lp-foot .footer-links{justify-content:center;gap:6px 16px}
.lp-foot a,.lp-foot .linklike{color:var(--b1)}
@media (max-width:360px){.lp-product{gap:12px}.lp-photo{flex-basis:84px}.lp h1{font-size:18px}.lp-trust{grid-template-columns:1fr}}
.prose code{overflow-wrap:anywhere}
/* Home: Latest sink news strip (written daily by .github/news/build_news.py) */
.home-news-intro{margin:-10px 0 22px}
.home-news-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.home-news-item{background:#fff;border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);border:1px solid #e6eef7;display:flex;flex-direction:column;justify-content:space-between;gap:10px}
.home-news-item a{font-weight:700;text-decoration:none;font-size:16px;line-height:1.4}
.home-news-item a:hover{text-decoration:underline}
.home-news-item a::after{content:" ↗";font-size:13px;opacity:.6}
.home-news-empty{text-align:center;color:var(--muted);margin:0}
.home-news-more{margin:22px 0 0}
@media (max-width:900px){.home-news-list{grid-template-columns:1fr;gap:14px}.home-news-item{padding:16px 18px}}
@media (min-width:901px) and (max-width:1100px){.site-nav a{margin-left:14px;font-size:13px}}
/* Discreet link by the buy buttons to the full GB CLP hazard information in #safety (GHS07, Warning,
   H315/H319, P statements, first aid). The full statements live in #safety on the home page. */
.safety-link{margin:12px 0 0;font-size:13px;line-height:1.4;color:var(--muted)}
.safety-link a{color:var(--muted);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.safety-link a:hover,.safety-link a:focus-visible{color:var(--ink)}
.hero .safety-link-dark{margin:16px 0 0;font-size:14px;opacity:1}
.safety-link-dark a{color:rgba(255,255,255,.85)}
.safety-link-dark a:hover,.safety-link-dark a:focus-visible{color:#fff}
.safety-link-lp{text-align:center;margin:12px auto 0}
.safety-link-card{margin-top:8px}
.hazard-head{display:flex;align-items:center;gap:16px;margin:4px 0 12px}
.hazard-head img{flex:0 0 auto;width:64px;height:64px}
.hazard-head p{margin:0;display:flex;flex-direction:column;line-height:1.45}
.hazard-head .signal{font-size:20px;font-weight:800;color:var(--ink)}
.safety h3{font-size:17px;margin:20px 0 6px}
.safety-list{margin:0;padding-left:20px}
.safety-list li{margin:4px 0}
/* Gallery: 5 thumbnails (3:4 photos + 2:3 claim infographics) shrink to fit and crop to one height */
.gallery-thumbs{flex-wrap:nowrap}
.thumb{flex:0 1 76px;min-width:0}
.thumb img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top}

/* Social media badges: footer "Follow us" row (all pages) and "Follow Astraclean" on /links/.
   Monochrome line icons in currentColor; 44px tap targets. */
.follow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:18px 0 6px}
.follow-label{margin:0;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#c9d8ea}
.social-row{list-style:none;margin:0;padding:0;display:flex;gap:10px}
.social-row li{margin:0}
.site-footer .social-row a,.lp-foot .social-row a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;border-radius:50%;border:1px solid rgba(255,255,255,.32);color:#fff;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s}
.site-footer .social-row a:hover{background:rgba(255,255,255,.12);border-color:#fff}
.social-row svg,.lp-soc-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lp-foot .follow{justify-content:center;margin:4px 0 12px}
.lp-foot .follow-label{color:var(--muted)}
.lp-foot .social-row a{color:var(--b1);border-color:#c9d8ea;background:#fff}
.lp-foot .social-row a:hover{border-color:var(--b2);background:#f2f7fc}
.lp-soc{display:flex;align-items:center;gap:12px}
.lp-links .lp-soc-ico,.lp-soc-ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#eef4fb;color:var(--b1)}
.lp-social a{min-height:44px}
/* Slim "Follow us" row under the news ticker (all pages with the ticker). Light, not another blue band. */
.top-social{background:#fff;border-bottom:1px solid var(--line);height:38px;overflow:hidden}
.ts-wrap{display:flex;align-items:center;justify-content:flex-end;gap:6px;height:38px}
.ts-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.ts-row{gap:2px}
.top-social .social-row a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;color:var(--dark);opacity:.78;text-decoration:none;transition:opacity .15s,background-color .15s}
.top-social .social-row a:hover,.top-social .social-row a:focus-visible{opacity:1;background:var(--light)}
.top-social .social-row svg{width:18px;height:18px}
@media (max-width:600px){.ts-wrap{justify-content:center}}

/* Design polish 10 Oct 2026 */
/* Compact hazard line by the hero buy buttons (full panel in #safety). */
.hazard-line{display:flex;align-items:flex-start;gap:10px;margin:16px 0 0;font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.9);max-width:520px}
.hazard-line img{flex:0 0 auto;width:22px;height:22px;margin-top:1px;background:#fff;border-radius:3px}
.hazard-line strong{color:#fff}
.hazard-line a{color:#fff;text-decoration:underline;text-underline-offset:2px;display:inline-block;padding:8px 0;margin:-8px 0}
/* Safety panel: full statements behind a toggle; Warning + H315/H319 stay visible. */
.safety-more{margin-top:12px;border-top:1px solid var(--line);padding-top:4px}
.safety-more summary{cursor:pointer;font-weight:700;color:var(--b1);padding:10px 0;min-height:32px}
/* Mobile tap targets: footer links and inline text links get ~8px vertical padding (32px+). */
.site-footer .footer-links a,.site-footer .footer-links .linklike{display:inline-block;padding:8px 0;margin-right:10px}
.lp-foot .footer-links a,.lp-foot .footer-links .linklike{display:inline-block;padding:8px 0}
.safety-link a,.guides-all a,.del p a,#delivery .small a{display:inline-block;padding:8px 0}
.guides-all{margin-top:10px}

/* Hero: one main button (Buy direct), the 2-pack card, then eBay / Amazon as small secondary text links. */
.also-on{margin:14px 0 0;font-size:14.5px;color:rgba(255,255,255,.88)}
.also-on .ao-link{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:8px 2px}
.also-on .ao-sep{color:rgba(255,255,255,.7)}
/* No direct checkout configured: eBay / Amazon become the main buttons again. */
html:not(.has-direct) .also-on{display:flex;flex-wrap:wrap;gap:12px;margin-top:0}
html:not(.has-direct) .also-on .ao-sep{display:none}
html:not(.has-direct) .also-on .ao-link{background:#fff;color:var(--b1);text-decoration:none;border-radius:999px;padding:14px 28px;font-size:16px}
@media (max-width:900px){
 .has-direct .sb-alt{border:0;padding:8px 4px;font-weight:600;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
}

/* Gallery photo 1 is landscape: centre its thumbnail on the bottle. */
.thumb-wide img{object-position:72% 50%}
.home-news-guide a::after{content:none}
