/* =========================================================================
   dietetyk.edu.pl â content layer (articles, archives, pages, calculators)
   Loads after styles.css. Reuses the clinical design tokens.
   ========================================================================= */

/* =========================================================================
   PREMIUM REVIEW COMPONENTS (evidence-based affiliate articles)
   ========================================================================= */

/* review meta bar: byline Â· updated Â· reading time */
.review-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin:0 0 26px; padding:14px 18px;
  background:var(--paper); border:1px solid var(--line); border-radius:14px; font-size:13.5px; color:var(--ink-soft); }
.review-meta .rm-item{ display:inline-flex; align-items:center; gap:7px; font-family:var(--font-display); font-weight:500; }
.review-meta .rm-item svg{ width:15px; height:15px; color:var(--green-600,var(--green-700)); flex:none; }
.review-meta .rm-verified{ color:var(--green-700); }
.review-meta a{ color:var(--green-700); text-decoration:underline; text-underline-offset:2px; }

/* quick-facts grid */
.keyfacts{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:16px; overflow:hidden; margin:0 0 30px; }
.keyfacts div{ background:#fff; padding:16px 18px; }
.keyfacts dt{ font-family:var(--font-display); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }
.keyfacts dd{ margin:0; font-family:var(--font-display); font-weight:600; font-size:1.02rem; color:var(--ink); line-height:1.25; }

/* SCORECARD: overall ring + criterion bars */
.scorecard{ display:grid; grid-template-columns:150px 1fr; gap:28px; align-items:center;
  background:linear-gradient(180deg,var(--green-50),#fff); border:1px solid var(--line-strong);
  border-radius:var(--radius); padding:26px 28px; margin:0 0 30px; }
.score-ring{ position:relative; width:150px; height:150px; border-radius:50%;
  background:conic-gradient(var(--green-500) calc(var(--score,88)*1%), var(--green-100) 0);
  display:grid; place-items:center; }
.score-ring::before{ content:""; position:absolute; inset:12px; background:#fff; border-radius:50%; box-shadow:var(--shadow-sm); }
.score-ring .sr-num{ position:relative; font-family:var(--font-display); font-weight:700; font-size:1.9rem; letter-spacing:-.03em; color:var(--ink); line-height:1; }
.score-ring .sr-num small{ font-size:.8rem; color:var(--ink-soft); font-weight:500; }
.score-ring .sr-label{ position:relative; display:block; font-size:9px; letter-spacing:.05em; text-transform:uppercase; color:var(--green-700); font-weight:600; margin-top:4px; max-width:84px; line-height:1.25; text-align:center; }
.score-bars{ display:flex; flex-direction:column; gap:12px; }
.score-bars .sb{ display:grid; grid-template-columns:130px 1fr 34px; align-items:center; gap:12px; font-size:13.5px; }
.score-bars .sb-name{ font-family:var(--font-display); font-weight:500; color:var(--ink); }
.score-bars .sb-track{ height:8px; border-radius:5px; background:var(--green-100); overflow:hidden; }
.score-bars .sb-fill{ height:100%; border-radius:5px; background:linear-gradient(90deg,var(--green-400),var(--green-600,var(--green-700))); }
.score-bars .sb-val{ font-family:var(--font-display); font-weight:600; text-align:right; color:var(--ink); }

/* evidence blocks per ingredient */
.evidence-list{ display:flex; flex-direction:column; gap:16px; margin:8px 0 26px; }
.evi{ border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; background:#fff; }
.evi-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
.evi-head h3{ font-size:1.12rem; margin:0; }
.evi-level{ font-family:var(--font-display); font-weight:600; font-size:11.5px; letter-spacing:.04em; text-transform:uppercase;
  padding:4px 11px; border-radius:20px; white-space:nowrap; }
.lvl-strong{ background:#dff3e6; color:#1c7a4d; }
.lvl-moderate{ background:#fdf0d9; color:#9a6a12; }
.lvl-limited{ background:#f6e5df; color:#a2472c; }
.lvl-efsa{ background:#e2ecfb; color:#245ba8; }
.evi p{ margin:0; font-size:15px; color:#33453e; line-height:1.6; }
.evi .sup{ font-size:11px; vertical-align:super; line-height:0; }
.evi .sup a{ color:var(--green-700); font-weight:600; text-decoration:none; }

/* final verdict box with CTA */
.verdict{ position:relative; overflow:hidden; border-radius:var(--radius-lg); padding:32px 34px; margin:34px 0;
  background:var(--ink); color:#fff;
  background-image:radial-gradient(90% 80% at 100% 0%, rgba(46,183,126,.30) 0%, transparent 60%), linear-gradient(180deg,#143b2e,#0f2a22); }
.verdict h2{ color:#fff; margin:0 0 10px; }
.verdict h2::after{ display:none; }
.verdict p{ color:rgba(255,255,255,.85); font-size:15.5px; margin:0 0 12px; max-width:60ch; }
.verdict .v-row{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:18px; }
.verdict .v-score{ display:flex; align-items:baseline; gap:6px; font-family:var(--font-display); }
.verdict .v-score b{ font-size:2.4rem; font-weight:700; letter-spacing:-.03em; }
.verdict .v-score span{ color:rgba(255,255,255,.6); }
.verdict .btn{ background:#fff; color:var(--green-700); }
.verdict .btn:hover{ background:var(--green-100); }
.verdict .v-note{ font-size:12px; color:rgba(255,255,255,.55); margin-top:14px; }

/* sources / references */
.sources{ margin:30px 0 0; padding:22px 24px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); }
.sources h2{ font-size:1.15rem; margin:0 0 14px; }
.sources h2::after{ display:none; }
.sources ol{ margin:0; padding-left:20px; display:flex; flex-direction:column; gap:9px; }
.sources li{ font-size:13px; color:var(--ink-soft); line-height:1.5; }
.sources li a{ color:var(--green-700); text-decoration:underline; text-underline-offset:2px; word-break:break-word; }
.sources li .src-src{ color:var(--ink); font-weight:500; }

@media (max-width:720px){
  .keyfacts{ grid-template-columns:1fr 1fr; }
  .scorecard{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .score-bars{ width:100%; }
  .score-bars .sb{ grid-template-columns:110px 1fr 30px; }
}

/* ===== PREMIUM+ : richer review elements ===== */

/* sticky buy-bar (revealed on scroll, self-contained per page) */
.buybar{ position:fixed; left:0; right:0; bottom:0; z-index:60; transform:translateY(110%); transition:transform .35s cubic-bezier(.4,1.2,.5,1);
  background:rgba(15,42,34,.97); backdrop-filter:blur(8px); border-top:1px solid rgba(255,255,255,.12); box-shadow:0 -8px 30px -12px rgba(0,0,0,.5); }
.buybar.show{ transform:translateY(0); }
.buybar-in{ max-width:var(--container); margin-inline:auto; padding:12px var(--gutter); display:flex; align-items:center; gap:16px; }
.buybar img{ width:40px; height:40px; border-radius:9px; object-fit:cover; flex:none; }
.buybar .bb-name{ font-family:var(--font-display); font-weight:600; color:#fff; font-size:15px; line-height:1.2; }
.buybar .bb-price{ font-size:13px; color:var(--green-100); }
.buybar .bb-rating{ color:#f0a500; font-size:13px; font-family:var(--font-display); }
.buybar .btn{ margin-inline-start:auto; }
@media (max-width:560px){ .buybar .bb-meta-extra{ display:none; } .buybar-in{ gap:10px; } }

/* table of contents */
.toc{ border:1px solid var(--line); border-radius:var(--radius); padding:18px 22px; margin:0 0 28px; background:#fff; }
.toc strong{ font-family:var(--font-display); font-size:13px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:10px; }
.toc ol{ margin:0; padding:0; list-style:none; counter-reset:toc; columns:2; column-gap:28px; }
.toc li{ counter-increment:toc; margin:0 0 7px; font-size:14.5px; break-inside:avoid; }
.toc li a{ color:var(--ink); display:inline-flex; gap:9px; }
.toc li a::before{ content:counter(toc,decimal-leading-zero); font-family:var(--font-display); font-weight:600; color:var(--green-500); font-size:12px; }
.toc li a:hover{ color:var(--green-700); }
@media (max-width:560px){ .toc ol{ columns:1; } }

/* TL;DR verdict summary card */
.tldr{ display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center; margin:0 0 30px;
  border:1px solid var(--line-strong); border-radius:var(--radius-lg); padding:26px 30px;
  background:linear-gradient(120deg,#fff, var(--green-50)); box-shadow:var(--shadow-sm); }
.tldr .tldr-ring{ width:104px; height:104px; border-radius:50%; display:grid; place-items:center; flex:none;
  background:conic-gradient(var(--green-500) calc(var(--score,82)*1%), var(--green-100) 0); }
.tldr .tldr-ring b{ width:80px; height:80px; background:#fff; border-radius:50%; display:grid; place-items:center;
  font-family:var(--font-display); font-weight:700; font-size:1.7rem; color:var(--ink); box-shadow:var(--shadow-sm); }
.tldr h2{ margin:0 0 6px; font-size:1.3rem; } .tldr h2::after{ display:none; }
.tldr p{ margin:0 0 10px; font-size:15px; color:var(--ink-soft); }
.tldr .tldr-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.tldr .tag-best{ font-size:12.5px; font-family:var(--font-display); font-weight:600; padding:4px 11px; border-radius:20px; background:var(--green-100); color:var(--green-700); }
@media (max-width:560px){ .tldr{ grid-template-columns:1fr; justify-items:center; text-align:center; } }

/* stat cards */
.statgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:26px 0; }
.stat{ border:1px solid var(--line); border-radius:var(--radius); padding:20px; background:#fff; text-align:center; }
.stat .st-num{ font-family:var(--font-display); font-weight:700; font-size:2rem; letter-spacing:-.03em; color:var(--green-700); line-height:1; }
.stat .st-num small{ font-size:1rem; color:var(--ink-soft); }
.stat .st-lab{ font-size:13px; color:var(--ink-soft); margin-top:8px; line-height:1.4; }
@media (max-width:620px){ .statgrid{ grid-template-columns:1fr; } }

/* evidence strength meter (dots) */
.evi-meter{ display:inline-flex; gap:4px; margin-left:auto; align-items:center; }
.evi-meter i{ width:9px; height:9px; border-radius:50%; background:var(--green-100); display:inline-block; }
.evi-meter i.on{ background:var(--green-500); }
.evi-meter i.warn{ background:var(--band-high); }

/* comparison table */
.compare{ overflow-x:auto; margin:24px 0; }
.compare table{ width:100%; border-collapse:collapse; font-size:14.5px; min-width:520px; }
.compare th,.compare td{ padding:13px 16px; border-bottom:1px solid var(--line); text-align:left; }
.compare thead th{ font-family:var(--font-display); background:var(--ink); color:#fff; font-weight:600; }
.compare thead th:first-child{ background:var(--ink); }
.compare tbody td:first-child{ font-weight:500; color:var(--ink); }
.compare td.yes{ color:var(--green-600,var(--green-700)); font-weight:600; }
.compare td.no{ color:#c05a38; }
.compare tr.hl td{ background:var(--green-50); }

/* inline article photos (distributed by section) */
.article-body .art-fig{ margin:6px 0 18px; }
.article-body .art-fig a{ display:block; overflow:hidden; border-radius:12px; }
.article-body .art-fig img{ width:100%; border-radius:12px; border:1px solid var(--line); background:#fff; display:block; transition:transform .3s ease; }
.article-body .art-fig a:hover img{ transform:scale(1.04); }
.article-body .art-fig figcaption{ font-size:12px; color:var(--muted,#5b6b63); margin-top:7px; text-align:center; font-style:italic; }
@media(min-width:768px){
  .article-body .art-fig.fig-right{ float:right; width:300px; margin:4px 0 14px 28px; }
  .article-body .art-fig.fig-left{ float:left; width:300px; margin:4px 28px 14px 0; }
}
.article-body .art-fig.fig-wide{ float:none; width:100%; max-width:600px; margin:22px auto; }
.article-body h2{ clear:both; }

/* internal "read our review" link in rankings/guides */
.article-body .rec-review-link{ margin:2px 0 18px; padding:11px 16px; background:var(--green-50); border-left:3px solid var(--green-600,var(--green-700)); border-radius:0 8px 8px 0; font-size:14.5px; }
.article-body .rec-review-link a{ color:var(--green-700); font-weight:600; }
/* recommended-product CTA box for guide articles */
.article-body .rec-product{ display:flex; gap:16px; align-items:center; margin:26px 0; padding:18px 20px; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(180deg,var(--green-50),#fff); }
.article-body .rec-product img{ width:88px; height:88px; object-fit:contain; border-radius:10px; background:#fff; border:1px solid var(--line); flex:0 0 auto; }
.article-body .rec-product .rp-body{ flex:1; }
.article-body .rec-product .rp-tag{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--green-700); background:#fff; border:1px solid var(--green-600,var(--green-700)); border-radius:999px; padding:2px 10px; margin-bottom:6px; }
.article-body .rec-product h3{ margin:2px 0 4px; font-size:1.12rem; }
.article-body .rec-product h3 a{ color:var(--ink); text-decoration:none; }
.article-body .rec-product .rp-why{ font-size:14px; color:var(--muted,#5b6b63); margin:0 0 10px; }
.article-body .rec-product .btn{ text-decoration:none; }
.article-body .rec-product .rec-eyebrow{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--green-700); background:#fff; border:1px solid var(--green-600,var(--green-700)); border-radius:999px; padding:2px 10px; margin-bottom:6px; }
/* rec-product boxes authored with flat children (no img/.rp-body) must stack, not flex-row */
.article-body .rec-product:not(:has(.rp-body)){ display:block; }
.article-body .rec-product:not(:has(.rp-body)) h3{ margin:6px 0; font-size:1.15rem; }
.article-body .rec-product:not(:has(.rp-body)) > p{ margin:0 0 12px; }
.article-body .rec-product .btn-aff{ display:inline-block; }
.article-body .rec-product .aff-disclosure{ margin:10px 0 0; font-size:12px; opacity:.75; }
/* bare definition lists (term â description) used in article rewrites */
.article-body dl:not(.keyfacts){ margin:18px 0; display:grid; gap:10px; }
.article-body dl:not(.keyfacts) > div{ padding:12px 15px; border-left:3px solid var(--green-600,#2e8b6a); background:var(--green-50,#f1f7f4); border-radius:0 10px 10px 0; }
.article-body dl:not(.keyfacts) dt{ font-weight:700; color:var(--ink,#16211c); margin:0 0 3px; }
.article-body dl:not(.keyfacts) dd{ margin:0; color:var(--muted,#5b6b63); }
/* overflow safety for wide tables on narrow viewports */
.article-body table{ max-width:100%; }
.article-body .keyfacts{ overflow-wrap:anywhere; }

/* composition / producer-data table */
.compo{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin:24px 0; background:#fff; }
.compo-head{ display:flex; align-items:center; gap:10px; padding:14px 18px; background:var(--green-50); border-bottom:1px solid var(--line); font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:1.02rem; }
.compo-head .compo-src{ margin-left:auto; font-family:var(--font-body); font-weight:500; font-size:12px; color:var(--muted,#5b6b63); }
.compo-head .compo-src a{ color:var(--green-700); }
.compo table{ width:100%; border-collapse:collapse; font-size:14.5px; }
.compo th,.compo td{ padding:11px 18px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.compo thead th{ font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted,#5b6b63); font-weight:600; background:#fbfcfb; }
.compo tbody tr:last-child td{ border-bottom:none; }
.compo td:first-child{ font-weight:600; color:var(--ink); }
.compo td .compo-form{ display:block; font-weight:400; font-size:12.5px; color:var(--muted,#5b6b63); margin-top:2px; }
.compo td.na{ color:#9aa39d; font-style:italic; }
.compo tr.compo-sub td:first-child{ padding-left:34px; font-weight:400; font-style:italic; color:var(--muted,#5b6b63); }
.compo tr.compo-sub td{ border-bottom:1px solid var(--line); }
.compo .compo-foot{ margin:0; padding:10px 18px; font-size:12px; color:var(--muted,#5b6b63); background:#fbfcfb; border-top:1px solid var(--line); }
.article-body p.dose-official{ margin:16px 0; padding:13px 16px; background:var(--green-50); border-left:3px solid var(--green-600,var(--green-700)); border-radius:0 8px 8px 0; font-size:15px; }
.article-body .prodnote{ display:flex; gap:11px; align-items:flex-start; margin:18px 0; padding:13px 16px; border-left:3px solid #d8a13a; background:#fdf7ec; border-radius:0 8px 8px 0; font-size:14px; color:#5a4d32; }
.article-body .prodnote::before{ content:"â"; font-size:16px; line-height:1.3; color:#c98a1f; }
.article-body .prodnote strong{ color:#5a4d32; }

/* audience split: dla kogo / nie dla kogo */
.audience{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:26px 0; }
.audience .aud{ border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; background:#fff; }
.audience .aud h4{ display:flex; align-items:center; gap:9px; font-size:1.05rem; margin:0 0 12px; }
.audience .for h4{ color:var(--green-700); } .audience .against h4{ color:#c05a38; }
.audience ul{ list-style:none; margin:0; padding:0; }
.audience li{ font-size:14.5px; padding:5px 0 5px 24px; position:relative; color:#33453e; }
.audience .for li::before{ content:"â"; position:absolute; left:0; color:var(--green-500); font-weight:700; }
.audience .against li::before{ content:"â"; position:absolute; left:0; color:#c05a38; font-weight:700; }
@media (max-width:620px){ .audience{ grid-template-columns:1fr; } }

/* effects timeline */
.timeline{ margin:24px 0; padding-left:6px; }
.timeline .tl{ position:relative; padding:0 0 22px 30px; border-left:2px solid var(--green-100); }
.timeline .tl:last-child{ border-left-color:transparent; padding-bottom:0; }
.timeline .tl::before{ content:""; position:absolute; left:-8px; top:2px; width:14px; height:14px; border-radius:50%; background:var(--green-500); box-shadow:0 0 0 4px var(--green-50); }
.timeline .tl b{ font-family:var(--font-display); display:block; color:var(--ink); font-size:15px; margin-bottom:3px; }
.timeline .tl span{ font-size:14px; color:var(--ink-soft); }

/* methodology + reviewer cards */
.method-box{ border:1px dashed var(--line-strong); border-radius:var(--radius); padding:20px 24px; margin:26px 0; background:var(--paper); }
.method-box h3{ font-size:1.05rem; margin:0 0 8px; }
.method-box p{ font-size:14px; color:var(--ink-soft); margin:0; line-height:1.6; }
.reviewer-card{ display:flex; gap:16px; align-items:center; border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin:26px 0; background:#fff; }
.reviewer-card .rc-av{ width:54px; height:54px; border-radius:50%; background:var(--green-100); display:grid; place-items:center; flex:none; }
.reviewer-card .rc-av img{ width:28px; height:28px; }
.reviewer-card .rc-name{ font-family:var(--font-display); font-weight:600; color:var(--ink); }
.reviewer-card .rc-role{ font-size:13.5px; color:var(--ink-soft); }

/* related links */
.related{ margin:34px 0 0; }
.related h2{ font-size:1.2rem; } .related h2::after{ display:none; }
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:14px; }
.related-grid a{ border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 18px; font-family:var(--font-display); font-weight:500; font-size:14.5px; color:var(--ink); transition:.15s; display:block; }
.related-grid a:hover{ border-color:var(--green-400); color:var(--green-700); transform:translateY(-2px); }
@media (max-width:620px){ .related-grid{ grid-template-columns:1fr; } }

/* key takeaways */
.takeaways{ border-left:4px solid var(--green-500); background:var(--green-50); border-radius:0 var(--radius) var(--radius) 0; padding:20px 24px; margin:26px 0; }
.takeaways strong{ font-family:var(--font-display); display:block; margin-bottom:10px; color:var(--ink); }
.takeaways ul{ margin:0; padding-left:20px; } .takeaways li{ margin:0 0 7px; font-size:15px; color:#33453e; }

/* ===== FACT-CHECK panel + inline tooltips + glossary ===== */
.factcheck{ border:1px solid #bfe0cd; border-radius:var(--radius); overflow:hidden; margin:26px 0; background:#fff; }
.factcheck-head{ display:flex; align-items:center; gap:12px; padding:16px 22px; background:linear-gradient(120deg,#e9f6ef,#f3fbf6); border-bottom:1px solid #d6ecdf; }
.factcheck-head .fc-badge{ display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--green-500); color:#fff; flex:none; }
.factcheck-head .fc-badge svg{ width:19px; height:19px; }
.factcheck-head h3{ margin:0; font-size:1.12rem; }
.factcheck-head .fc-sub{ font-size:12.5px; color:var(--ink-soft); }
.fc-list{ list-style:none; margin:0; padding:8px 0; }
.fc-item{ padding:14px 22px; border-top:1px solid var(--line); }
.fc-item:first-child{ border-top:0; }
.fc-item .fc-claim{ font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:14.5px; display:flex; gap:9px; align-items:flex-start; }
.fc-item .fc-claim::before{ content:"â"; color:var(--green-500); font-weight:700; flex:none; }
/* suppress the base article-body bullet on fact-check items (avoids double marker) */
.article-body .fc-list > li::before{ content:none; display:none; }
/* reset the base green-dot styling that leaks onto custom â/â markers (pros-cons, audience) */
.article-body .pros-cons li::before,
.article-body .audience li::before{ background:none; box-shadow:none; width:auto; height:auto; border-radius:0; top:0; }
/* bold text must stay light inside dark components (base .article-body strong is dark ink) */
.article-body .verdict strong,.article-body .verdict b,
.article-body .aff-cta-inline strong,.article-body .aff-cta-inline b,
.buybar strong,.buybar b{ color:#fff; }
.article-body .verdict a:not(.btn){ color:var(--green-100); }
/* component links must not inherit the prose-link underline */
.article-body .toc a,.article-body .related-grid a,.article-body .article-tags a{ text-decoration:none; }
.article-body .toc a,.article-body .related-grid a{ color:var(--ink); }
.article-body .toc a:hover,.article-body .related-grid a:hover{ color:var(--green-700); }
.fc-item .fc-how{ font-size:13.5px; color:var(--ink-soft); margin:5px 0 0 20px; line-height:1.55; }
.fc-item .fc-how a{ color:var(--green-700); text-decoration:underline; text-underline-offset:2px; }
.fc-item .fc-verdict{ display:inline-block; margin-left:8px; font-family:var(--font-display); font-weight:600; font-size:11px; letter-spacing:.03em; text-transform:uppercase; padding:2px 8px; border-radius:20px; }
.fc-true{ background:#dff3e6; color:#1c7a4d; } .fc-partial{ background:#fdf0d9; color:#9a6a12; } .fc-myth{ background:#f6e5df; color:#a2472c; }

/* inline glossary term / fact-check tooltip */
.gloss{ position:relative; border-bottom:1px dotted var(--green-600,var(--green-700)); cursor:help; color:inherit; }
.gloss:focus{ outline:2px solid var(--green-400); outline-offset:2px; border-radius:2px; }
.gloss .gloss-pop{ position:absolute; left:50%; bottom:calc(100% + 10px); transform:translateX(-50%) translateY(6px);
  width:min(300px,78vw); background:var(--ink); color:#fff; padding:13px 15px; border-radius:12px; font-size:13px; font-weight:400;
  line-height:1.5; box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transition:.18s; z-index:40; text-align:left; font-family:var(--font-body); letter-spacing:0; }
.gloss .gloss-pop::after{ content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:7px solid transparent; border-top-color:var(--ink); }
.gloss:hover .gloss-pop, .gloss:focus .gloss-pop, .gloss:focus-within .gloss-pop{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.gloss .gloss-pop b{ color:#fff; }
.gloss .gloss-pop a{ color:var(--green-100); text-decoration:underline; display:inline-block; margin-top:6px; font-weight:600; }
.gloss.gloss-fc{ border-bottom-color:var(--green-500); }
.gloss.gloss-fc .g-tick{ color:var(--green-600,var(--green-700)); font-size:.8em; vertical-align:super; }
@media (max-width:560px){ .gloss .gloss-pop{ width:min(260px,86vw); } }

/* ===== interactive poll: "Czy produkt Ci pomÃ³gÅ?" ===== */
.poll{ border:1px solid var(--line-strong); border-radius:var(--radius); padding:22px 24px 24px; margin:26px 0;
  background:linear-gradient(180deg,#fff, var(--green-50)); }
.poll h3{ font-size:1.18rem; margin:0 0 3px; } .poll h3::after{ display:none; }
.poll .poll-sub{ font-size:13px; color:var(--ink-soft); margin:0 0 16px; }
.poll-opts{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:20px; }
.poll-opt{ display:flex; flex-direction:column; align-items:center; gap:9px; padding:16px 10px; border:1.5px solid var(--line);
  border-radius:14px; background:#fff; cursor:pointer; font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--ink); transition:.15s; }
.poll-opt:hover{ border-color:var(--green-400); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.poll-opt .face{ width:40px; height:40px; }
.poll-opt.yes .face{ color:var(--green-500); } .poll-opt.no .face{ color:#e0663f; } .poll-opt.idk .face{ color:#c9a227; }
.poll-opt.voted{ border-color:var(--green-500); background:var(--green-50); box-shadow:0 0 0 3px var(--green-100); }
.poll[data-voted] .poll-opt{ cursor:default; } .poll[data-voted] .poll-opt:hover{ transform:none; box-shadow:none; }
.poll-results{ margin-top:2px; }
.poll-bar{ display:flex; height:28px; border-radius:8px; overflow:hidden; margin-bottom:14px; background:var(--green-100); }
.poll-bar span{ display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:12.5px; color:#fff; min-width:0; white-space:nowrap; transition:width .7s cubic-bezier(.4,1,.5,1); }
.poll-bar .s-yes{ background:var(--green-500); } .poll-bar .s-no{ background:#e0663f; } .poll-bar .s-idk{ background:#bfa53f; }
.poll-legend{ display:flex; flex-wrap:wrap; gap:8px 20px; font-size:13.5px; color:var(--ink-soft); }
.poll-legend .lg{ display:inline-flex; align-items:center; gap:7px; }
.poll-legend .dot{ width:11px; height:11px; border-radius:3px; flex:none; }
.poll-legend .dot.yes{ background:var(--green-500); } .poll-legend .dot.no{ background:#e0663f; } .poll-legend .dot.idk{ background:#bfa53f; }
.poll-legend b{ color:var(--ink); font-family:var(--font-display); }
.poll-total{ font-size:12.5px; color:var(--ink-soft); margin-top:12px; display:flex; align-items:center; gap:7px; }
.poll-thanks{ font-size:13px; color:var(--green-700); font-weight:600; font-family:var(--font-display); margin-top:10px; display:none; }
.poll[data-voted] .poll-thanks{ display:block; }
@media (max-width:560px){ .poll-opts{ grid-template-columns:1fr; } .poll-opt{ flex-direction:row; justify-content:center; gap:12px; } .poll-opt .face{ width:28px; height:28px; } }

/* ===== recent-comments slider + comments section ===== */
.cslider{ border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:15px 20px 16px; margin:26px 0; }
.cslider-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.cslider-head strong{ font-family:var(--font-display); font-size:13.5px; display:inline-flex; align-items:center; gap:8px; }
.cslider-head .live{ width:8px; height:8px; border-radius:50%; background:var(--green-500); box-shadow:0 0 0 3px var(--green-100); }
.cslider-head a{ font-size:13px; color:var(--green-700); font-family:var(--font-display); font-weight:600; }
.cslider-track{ position:relative; }
.cslide{ display:none; }
.cslide.on{ display:block; animation:cfade .5s ease; }
@keyframes cfade{ from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;} }
.cslide .cs-top{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.cs-av{ width:34px; height:34px; border-radius:50%; background:var(--green-100); color:var(--green-700); display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:14px; flex:none; }
.cs-name{ font-family:var(--font-display); font-weight:600; font-size:14px; }
.cs-stars{ color:#f0a500; font-size:12px; letter-spacing:1px; }
.cs-text{ font-size:14px; color:var(--ink-soft); line-height:1.5; }
.cslider-dots{ display:flex; gap:6px; margin-top:10px; }
.cslider-dots i{ width:7px; height:7px; border-radius:50%; background:var(--line-strong); cursor:pointer; transition:.15s; }
.cslider-dots i.on{ background:var(--green-500); width:18px; border-radius:4px; }

.comments{ margin:42px 0 0; }
.comments h2{ font-size:1.4rem; } .comments h2::after{ display:none; }
.comments-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.comment-form{ display:none; border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; margin-bottom:24px; background:var(--paper); }
.comment-form.open{ display:block; }
.comment-form label{ display:block; font-family:var(--font-display); font-size:13px; font-weight:600; color:var(--ink-soft); margin:0 0 6px; }
.comment-form .cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.comment-form input,.comment-form textarea{ width:100%; border:1.5px solid var(--line); border-radius:10px; padding:11px 14px; font-family:var(--font-body); font-size:15px; background:#fff; }
.comment-form input:focus,.comment-form textarea:focus{ outline:none; border-color:var(--green-400); }
.comment-form textarea{ min-height:96px; resize:vertical; margin-bottom:14px; }
.cf-stars{ display:inline-flex; gap:3px; font-size:24px; color:var(--line-strong); cursor:pointer; user-select:none; }
.cf-stars span.on{ color:#f0a500; }
.comment-form .cf-note{ font-size:12px; color:var(--ink-soft); margin-top:12px; }
.cf-status{ font-size:13px; border-radius:10px; padding:11px 14px; margin:0 0 16px; display:flex; gap:9px; align-items:flex-start; line-height:1.5; }
.cf-status.ok{ background:#e9f6ef; color:#1c7a4d; border:1px solid #bfe0cd; }
.cf-status.none{ background:#fdf4ee; color:#9a5a34; border:1px solid #f0d6c4; }
.cf-status b{ font-weight:600; }
.c-verified-note{ font-size:13px; color:var(--ink-soft); margin:0 0 22px; padding:12px 16px; background:var(--green-50);
  border:1px solid var(--line); border-radius:12px; display:flex; align-items:center; gap:9px; flex-wrap:wrap; line-height:1.5; }
.c-verified-note .c-verified{ flex:none; }
.clist{ display:flex; flex-direction:column; gap:20px; }
.comment{ display:grid; grid-template-columns:44px 1fr; gap:14px; }
.c-av{ width:44px; height:44px; border-radius:50%; background:var(--green-100); color:var(--green-700); display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:16px; }
.c-head{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:3px; }
.c-name{ font-family:var(--font-display); font-weight:600; color:var(--ink); }
.c-verified{ font-size:11px; font-family:var(--font-display); font-weight:600; color:var(--green-700); background:var(--green-100); padding:2px 9px; border-radius:20px; display:inline-flex; align-items:center; gap:4px; }
.c-date{ font-size:12.5px; color:var(--ink-soft); }
.c-stars{ color:#f0a500; font-size:13px; letter-spacing:1px; }
.c-text{ font-size:15px; color:#33453e; line-height:1.6; margin:5px 0 8px; }
.c-actions{ display:flex; gap:18px; }
.c-actions button{ background:none; border:0; color:var(--ink-soft); font-size:13px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-weight:500; padding:0; }
.c-actions button:hover{ color:var(--green-700); }
.c-actions button.liked{ color:var(--green-700); }
@media (max-width:560px){ .comment-form .cf-row{ grid-template-columns:1fr; } }

/* ===== reader discount / deal box ===== */
.deal{ position:relative; border:2px solid var(--green-500); border-radius:var(--radius-lg); padding:24px 26px 26px; margin:30px 0;
  background:linear-gradient(180deg,#fff, var(--green-50)); box-shadow:var(--shadow-md); overflow:hidden; }
.deal-ribbon{ position:absolute; top:18px; right:-42px; transform:rotate(45deg); background:#e0663f; color:#fff; font-family:var(--font-display);
  font-weight:700; font-size:13px; letter-spacing:.04em; padding:5px 50px; box-shadow:var(--shadow-sm); }
.deal-badge{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:600; font-size:12.5px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--green-700); background:var(--green-100); padding:5px 13px; border-radius:20px; margin-bottom:14px; }
.deal h3{ font-size:1.35rem; margin:0 0 6px; } .deal h3::after{ display:none; }
.deal .deal-sub{ font-size:14.5px; color:var(--ink-soft); margin:0 0 20px; max-width:62ch; line-height:1.55; }
.deal-tiers{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:18px; }
.deal-tier{ border:1px solid var(--line); border-radius:14px; padding:18px 14px 16px; background:#fff; text-align:center; position:relative; }
.deal-tier.best{ border-color:var(--green-500); box-shadow:0 0 0 3px var(--green-100); }
.deal-tier .dt-best{ position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--green-700); color:#fff; font-size:10px;
  font-family:var(--font-display); font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:3px 11px; border-radius:20px; white-space:nowrap; }
.deal-tier .dt-name{ font-family:var(--font-display); font-weight:600; font-size:13px; color:var(--ink-soft); }
.deal-tier .dt-price{ font-family:var(--font-display); font-weight:700; font-size:1.65rem; color:var(--ink); letter-spacing:-.02em; margin:7px 0 1px; }
.deal-tier .dt-per{ font-size:11.5px; color:var(--ink-soft); }
.deal-tier .dt-save{ display:inline-block; margin-top:9px; font-family:var(--font-display); font-weight:600; font-size:12px; color:#fff; background:var(--green-500); padding:2px 10px; border-radius:20px; }
.deal-tier .dt-qty{ font-size:12px; color:var(--ink-soft); margin-top:2px; }
.deal-tier .dt-reg{ font-size:13px; color:var(--ink-soft); text-decoration:line-through; margin-top:9px; }
.deal-tier .dt-price span{ font-size:.62em; color:var(--ink-soft); font-weight:500; }
.deal-tier .dt-total{ font-family:var(--font-display); font-weight:600; font-size:12.5px; color:var(--green-700); margin-top:5px; }
.deal-tier .dt-supply{ font-size:11.5px; color:var(--ink-soft); margin-top:3px; }
.deal-tier .dt-gratis{ display:inline-block; margin-top:7px; font-family:var(--font-display); font-weight:700; font-size:10.5px; letter-spacing:.03em; color:#fff; background:#e0663f; padding:2px 9px; border-radius:20px; }
.deal-support{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:#33453e; background:#fff; border:1px dashed var(--line-strong);
  border-radius:12px; padding:12px 15px; margin-bottom:18px; line-height:1.55; }
.deal-support svg{ color:var(--green-700); flex:none; width:18px; height:18px; margin-top:1px; }
.deal-verified{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:#33453e; line-height:1.5; margin-bottom:16px; }
.deal-verified .c-verified{ flex:none; margin-top:1px; }
.deal .btn-block{ width:100%; }
@media (max-width:620px){ .deal-tiers{ grid-template-columns:1fr; } .deal-ribbon{ display:none; } }

/* ---------- breadcrumb ---------- */
.crumbs{ font-family:var(--font-display); font-size:13px; color:var(--ink-soft); padding:22px 0 0; display:flex; gap:8px; flex-wrap:wrap; }
.crumbs a{ color:var(--green-700); }
.crumbs a:hover{ text-decoration:underline; }
.crumbs .sep{ opacity:.45; }

/* ---------- full article hero ---------- */
.post-hero{ position:relative; overflow:hidden; padding:30px 0 46px; border-bottom:1px solid var(--line);
  background:
    radial-gradient(120% 90% at 88% -25%, var(--green-100) 0%, transparent 55%),
    linear-gradient(180deg,var(--green-50) 0%, #fff 100%); }
.post-hero::after{ content:""; position:absolute; right:-90px; top:-90px; width:320px; height:320px; border-radius:50%;
  background:radial-gradient(circle, rgba(46,183,126,.16), transparent 68%); pointer-events:none; }
.post-hero .crumbs{ padding:0 0 20px; position:relative; z-index:2; }
.post-hero .cat-chip{ position:relative; z-index:2; }
.post-hero h1{ position:relative; z-index:2; font-size:clamp(2rem,4.4vw,3.15rem); max-width:22ch; margin:14px 0 0; letter-spacing:-.025em; }
.post-hero-lead{ position:relative; z-index:2; margin:18px 0 0; font-size:1.18rem; color:var(--ink-soft); max-width:62ch; line-height:1.55; }
.post-hero-meta{ position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:8px 20px; margin:20px 0 0; font-family:var(--font-display); font-size:13px; color:var(--ink-soft); }
.post-hero-meta span{ display:inline-flex; align-items:center; gap:7px; }
.post-hero-meta svg{ width:15px; height:15px; color:var(--green-700); }

/* ---------- generic page hero ---------- */
.page-hero{ padding:26px 0 34px; background:linear-gradient(180deg,var(--green-50) 0%, #fff 100%); border-bottom:1px solid var(--line); }
.page-hero h1{ font-size:clamp(1.9rem,4vw,2.9rem); max-width:22ch; margin-top:12px; }
.page-hero .cat-chip{ display:inline-flex; align-items:center; gap:8px; }

.cat-chip{
  font-family:var(--font-display); font-weight:600; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--green-700); background:var(--green-100); padding:5px 12px; border-radius:20px;
}

/* ---------- article layout ---------- */
.post-layout{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:52px; padding:44px 0 84px; align-items:start; }
.post-figure{ border-radius:var(--radius-lg); overflow:hidden; margin:0 0 30px; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.post-figure img{ width:100%; height:auto; display:block; }

/* article typography â scoped so mirrored WP body renders cleanly */
.article-body{ font-size:1.06rem; line-height:1.75; color:#243b33; }
.article-body > *:first-child{ margin-top:0; }
.article-body p{ margin:0 0 1.25em; }
.article-body h2{ font-size:1.7rem; margin:1.9em 0 .6em; letter-spacing:-.02em; scroll-margin-top:90px; }
.article-body h3{ font-size:1.32rem; margin:1.6em 0 .5em; }
.article-body h4{ font-size:1.1rem; margin:1.4em 0 .5em; }
.article-body h2::after{ content:""; display:block; width:46px; height:3px; margin-top:.5em; border-radius:3px;
  background:repeating-linear-gradient(90deg,var(--green-400) 0 5px,transparent 5px 9px); }
.article-body a{ color:var(--green-700); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.article-body a:hover{ color:var(--green-500); }
/* buttons inside article body must NOT inherit link color/underline */
.article-body a.btn,.buybar a.btn{ text-decoration:none; }
.article-body a.btn.btn-primary,.article-body a.btn.btn-aff,.buybar a.btn.btn-aff{ color:#fff; }
.article-body a.btn.btn-ghost{ color:var(--ink); }
.article-body .aff-cta-inline a.btn,.article-body .verdict a.btn{ color:var(--green-700); }
.article-body .aff-cta-inline a.btn:hover,.article-body .verdict a.btn:hover{ color:var(--green-700); }
.article-body ul,.article-body ol{ margin:0 0 1.3em; padding-left:1.3em; }
.article-body ul{ list-style:none; padding-left:0; }
.article-body ul > li{ position:relative; padding-left:1.7em; margin:0 0 .6em; }
.article-body ul > li::before{ content:""; position:absolute; left:.2em; top:.6em; width:8px; height:8px; border-radius:50%;
  background:var(--green-400); box-shadow:0 0 0 3px var(--green-100); }
.article-body ol{ list-style:decimal; }
.article-body ol > li{ margin:0 0 .6em; padding-left:.3em; }
.article-body img{ max-width:100%; height:auto; border-radius:var(--radius-sm); margin:1em 0; }
.article-body figure{ margin:1.4em 0; }
.article-body .text-center{ text-align:center; }
.article-body img.img-fluid,.article-body .wp-post-image{ display:block; margin-inline:auto; }
.article-body blockquote{ margin:1.6em 0; padding:18px 24px; border-left:4px solid var(--green-400);
  background:var(--green-50); border-radius:0 var(--radius-sm) var(--radius-sm) 0; font-size:1.1rem; color:var(--ink); }
.article-body blockquote p:last-child{ margin-bottom:0; }
.article-body table{ width:100%; border-collapse:collapse; margin:1.5em 0; font-size:.96rem; display:block; overflow-x:auto; }
.article-body th,.article-body td{ border:1px solid var(--line); padding:11px 14px; text-align:left; vertical-align:top; }
.article-body thead th,.article-body tr:first-child td{ background:var(--green-100); font-family:var(--font-display); font-weight:600; color:var(--ink); }
.article-body tbody tr:nth-child(even){ background:var(--paper); }
.article-body strong{ color:var(--ink); font-weight:600; }
.article-body iframe,.article-body .wp-block-embed{ max-width:100%; }
.article-tags{ margin-top:38px; padding-top:24px; border-top:1px solid var(--line); display:flex; gap:9px; flex-wrap:wrap; }
.article-tags .tag{ font-size:13px; color:var(--ink-soft); background:var(--paper); border:1px solid var(--line); padding:5px 12px; border-radius:20px; }
.article-tags .tag:hover{ border-color:var(--green-400); color:var(--green-700); }

/* ---------- sidebar ---------- */
.post-aside{ position:sticky; top:92px; display:flex; flex-direction:column; gap:22px; }
.widget{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px 22px 24px; }
.widget h3{ font-size:1.05rem; margin-bottom:14px; display:flex; align-items:center; gap:9px; }
.widget h3::before{ content:""; width:20px; height:9px; flex:none;
  background-image:repeating-linear-gradient(90deg,var(--green-500) 0 1.5px,transparent 1.5px 5px); }
.widget ul{ display:flex; flex-direction:column; gap:2px; }
.widget-links a{ display:block; padding:9px 0; font-size:14.5px; color:var(--ink-soft); border-bottom:1px solid var(--line); transition:color .15s, padding .15s; }
.widget-links a:last-child{ border-bottom:0; }
.widget-links a:hover{ color:var(--green-700); padding-left:5px; }
.widget-cta{ background:var(--ink); color:#fff; border:0;
  background-image:radial-gradient(90% 60% at 100% 0%, rgba(46,183,126,.28) 0%, transparent 60%), linear-gradient(180deg,#143b2e,#0f2a22); }
.widget-cta h3{ color:#fff; }
.widget-cta h3::before{ background-image:repeating-linear-gradient(90deg,var(--green-100) 0 1.5px,transparent 1.5px 5px); }
.widget-cta p{ font-size:14px; color:rgba(255,255,255,.75); margin-bottom:16px; line-height:1.5; }

/* ---------- archive / category grid ---------- */
.archive{ padding:40px 0 84px; }
.archive-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s; }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--line-strong); }
.card-media{ position:relative; display:block; aspect-ratio:16/10; overflow:hidden; background:var(--green-50); }
.card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.card:hover .card-media img{ transform:scale(1.05); }
.card-media .cat-chip{ position:absolute; top:12px; left:12px; background:rgba(255,255,255,.94); }
.card-body{ padding:18px 20px 22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.card-body h3{ font-size:1.14rem; line-height:1.25; }
.card-body h3 a:hover{ color:var(--green-700); }
.card-body p{ font-size:14px; color:var(--ink-soft); line-height:1.5; }
.card-body .card-more{ margin-top:auto; font-family:var(--font-display); font-weight:600; font-size:13.5px; color:var(--green-700); }

/* ---------- pagination ---------- */
.pagination{ display:flex; gap:8px; justify-content:center; margin-top:50px; flex-wrap:wrap; }
.pagination a,.pagination span{ min-width:42px; height:42px; display:grid; place-items:center; padding:0 12px;
  font-family:var(--font-display); font-weight:600; font-size:14px; border-radius:11px; border:1px solid var(--line); background:#fff; color:var(--ink); }
.pagination a:hover{ border-color:var(--green-500); color:var(--green-700); }
.pagination .current{ background:var(--green-500); color:#fff; border-color:var(--green-500); }
.pagination .disabled{ opacity:.4; }

/* ---------- calculators ---------- */
.calc-wrap{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:52px; padding:44px 0 84px; align-items:start; }
.calc-card{ background:var(--ink); color:#fff; border-radius:var(--radius-lg); padding:30px 30px 32px; box-shadow:var(--shadow-lg);
  background-image:radial-gradient(90% 60% at 100% 0%, rgba(46,183,126,.26) 0%, transparent 60%), linear-gradient(180deg,#143b2e,#0f2a22); }
.calc-card h2{ color:#fff; font-size:1.5rem; margin-bottom:6px; }
.calc-card .calc-sub{ font-size:14px; color:rgba(255,255,255,.7); margin-bottom:22px; }
.calc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:18px; }
.calc-field{ display:flex; flex-direction:column; gap:7px; }
.calc-field.full{ grid-column:1 / -1; }
.calc-field label{ font-family:var(--font-display); font-size:12px; font-weight:500; letter-spacing:.03em; text-transform:uppercase; color:rgba(255,255,255,.72); }
.calc-field input,.calc-field select{ background:rgba(255,255,255,.07); border:1.5px solid rgba(255,255,255,.16); color:#fff;
  border-radius:11px; padding:12px 14px; font-size:16px; font-weight:600; font-family:var(--font-body); }
.calc-field select option{ color:#0f2a22; }
.calc-field input:focus,.calc-field select:focus{ outline:none; border-color:var(--green-400); background:rgba(255,255,255,.12); }
.calc-run{ width:100%; }
.calc-result{ margin-top:24px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12); display:none; }
.calc-result.show{ display:block; }
.calc-result .r-value{ font-family:var(--font-display); font-weight:700; font-size:2.7rem; line-height:1; letter-spacing:-.03em; color:#fff; }
.calc-result .r-value .r-unit{ font-size:1.1rem; color:var(--green-400); margin-left:6px; }
.calc-result .r-tag{ display:inline-block; margin-top:12px; font-family:var(--font-display); font-weight:600; font-size:14px;
  padding:6px 14px; border-radius:20px; background:rgba(46,183,126,.2); color:#bff0d8; }
.calc-result .r-note{ font-size:12.5px; color:rgba(255,255,255,.5); margin-top:16px; line-height:1.5; }
.calc-error{ color:#ffd7c7; font-size:13.5px; margin-top:14px; display:none; }
.calc-error.show{ display:block; }

/* other calculators list */
.calc-list a{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:11px 0; font-size:14.5px;
  color:var(--ink-soft); border-bottom:1px solid var(--line); transition:color .15s,padding .15s; }
.calc-list a:last-child{ border-bottom:0; }
.calc-list a:hover{ color:var(--green-700); padding-left:5px; }
.calc-list a.active{ color:var(--green-700); font-weight:600; }

/* ---------- affiliate review components ---------- */
.btn-aff{ background:var(--green-500); color:#fff; box-shadow:0 8px 20px -8px rgba(30,158,106,.7); }
.btn-aff:hover{ background:var(--green-700); transform:translateY(-2px); }
.btn-aff .arr{ transition:transform .2s; }
.btn-aff:hover .arr{ transform:translateX(3px); }

.aff-box{ display:grid; grid-template-columns:120px 1fr; gap:22px; align-items:center;
  background:linear-gradient(180deg,var(--green-50),#fff); border:1px solid var(--line-strong);
  border-radius:var(--radius); padding:22px 24px; margin:0 0 30px; box-shadow:var(--shadow-sm); }
.aff-box .aff-thumb{ width:120px; height:120px; border-radius:14px; overflow:hidden; background:#fff; border:1px solid var(--line); }
.aff-box .aff-thumb img{ width:100%; height:100%; object-fit:cover; margin:0; }
.aff-box h3{ font-size:1.3rem; margin:0 0 4px; }
.aff-box .aff-cat{ font-family:var(--font-display); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--green-700); font-weight:600; }
.aff-box .aff-meta{ font-size:14px; color:var(--ink-soft); margin:8px 0 14px; }
.aff-box .btn{ margin-top:4px; }
.aff-box-actions{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }

.rating{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--ink); }
.rating .stars{ --pct:90%; font-size:17px; line-height:1; letter-spacing:2px;
  background:linear-gradient(90deg,#f0a500 var(--pct), #d9e2dc var(--pct)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.rating .stars::before{ content:"âââââ"; }

.pros-cons{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:26px 0; }
.pros-cons .pc{ border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; background:#fff; }
.pros-cons .pc h4{ font-size:1.05rem; margin:0 0 12px; display:flex; align-items:center; gap:9px; }
.pros-cons .pros{ border-color:#bfe6d1; background:linear-gradient(180deg,#f2fbf6,#fff); }
.pros-cons .cons{ border-color:#f2d6c9; background:linear-gradient(180deg,#fdf5f1,#fff); }
.pros-cons ul{ margin:0; padding:0; list-style:none; }
.pros-cons li{ position:relative; padding-left:26px; margin:0 0 9px; font-size:14.5px; line-height:1.45; color:#2c3f38; }
.pros-cons .pros li::before{ content:"â"; position:absolute; left:0; top:0; color:var(--green-500); font-weight:700; }
.pros-cons .cons li::before{ content:"â"; position:absolute; left:2px; top:0; color:#d9683f; font-weight:700; }

.aff-cta-inline{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  background:var(--ink); color:#fff; border-radius:var(--radius); padding:22px 26px; margin:28px 0;
  background-image:radial-gradient(90% 80% at 100% 0%, rgba(46,183,126,.28) 0%, transparent 60%), linear-gradient(180deg,#143b2e,#0f2a22); }
.aff-cta-inline p{ margin:0; font-family:var(--font-display); font-weight:600; font-size:1.05rem; color:#fff; }
.aff-cta-inline .btn{ background:#fff; color:var(--green-700); }
.aff-cta-inline .btn:hover{ background:var(--green-100); }

.aff-disclosure{ font-size:12.5px; color:var(--ink-soft); background:var(--paper); border:1px solid var(--line);
  border-radius:12px; padding:12px 16px; margin:26px 0; line-height:1.5; }
.med-disclaimer{ font-size:12.5px; color:var(--ink-soft); border-left:3px solid var(--line-strong); padding:4px 0 4px 14px; margin:22px 0; line-height:1.5; }

.faq{ margin:26px 0; }
.faq details{ border:1px solid var(--line); border-radius:12px; padding:0; margin-bottom:12px; background:#fff; overflow:hidden; }
.faq summary{ cursor:pointer; padding:16px 20px; font-family:var(--font-display); font-weight:600; font-size:1.02rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.4rem; color:var(--green-500); font-weight:400; line-height:1; }
.faq details[open] summary::after{ content:"â"; }
.faq details[open] summary{ border-bottom:1px solid var(--line); }
.faq .faq-a{ padding:14px 20px 18px; font-size:15px; color:var(--ink-soft); line-height:1.6; }
.faq .faq-a p{ margin:0 0 .7em; } .faq .faq-a p:last-child{ margin:0; }

@media (max-width:620px){
  .aff-box{ grid-template-columns:1fr; text-align:center; } .aff-box .aff-thumb{ margin:0 auto; }
  .aff-box-actions{ justify-content:center; } .pros-cons{ grid-template-columns:1fr; }
}

@media (max-width:980px){
  .post-layout,.calc-wrap{ grid-template-columns:1fr; gap:36px; }
  .post-aside{ position:static; }
  .archive-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:620px){
  .archive-grid{ grid-template-columns:1fr; }
  .calc-grid{ grid-template-columns:1fr; }
}
