/*
Theme Name: ShopWisely Premium v2
Author: ShopWisely
Description: A redesigned editorial affiliate theme — buying guides, product boxes, top picks and clear disclosures for Indian readers.
Version: 2.0.0
Requires at least: 6.0
Text Domain: shopwisely-premium
*/

:root {
  --ink:#10231e; --ink-2:#1d3a32; --muted:#5b6b65; --paper:#fbf8f1; --cream:#f2ecdf; --card:#ffffff;
  --sage:#e1eadf; --sage-2:#c9d9c5; --accent:#d4652f; --accent-dark:#b4521f; --gold:#e8b23a; --line:#e2ddd0;
  --good:#2f7a4f; --bad:#b64a3a;
  --display:'Fraunces', Georgia, 'Times New Roman', serif;
  --body:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --radius:18px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(16,35,30,.05), 0 12px 32px rgba(16,35,30,.08);
}

/* ---------- Base ---------- */
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--body); font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
h1, h2, h3 { font-family:var(--display); font-weight:600; letter-spacing:-.025em; line-height:1.08; margin:0; }
.sw-shell { width:min(1200px, calc(100% - 40px)); margin-inline:auto; }
.sw-narrow { max-width:760px; }
.sw-icon { width:1.15em; height:1.15em; flex:none; }
.sw-muted { color:var(--muted); }
.screen-reader-text, .sw-skip { position:absolute; left:-9999px; }
.sw-skip:focus { left:1rem; top:1rem; z-index:100; background:var(--ink); color:#fff; padding:.6rem 1rem; border-radius:8px; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

/* ---------- Header ---------- */
.sw-topbar { background:var(--ink); color:#dfe9dd; font-size:.78rem; font-weight:500; padding:.55rem 0; text-align:center; }
.sw-topbar span { color:var(--accent); margin:0 .4rem; }
.sw-header { position:sticky; top:0; z-index:50; background:rgba(251,248,241,.9); backdrop-filter:saturate(1.4) blur(12px); border-bottom:1px solid var(--line); }
.admin-bar .sw-header { top:32px; }
.sw-header-inner { display:flex; align-items:center; gap:2rem; min-height:72px; }
.sw-brand { font-family:var(--display); font-size:1.75rem; font-weight:700; letter-spacing:-.04em; }
.sw-brand span { color:var(--accent); }
.sw-nav { margin-left:auto; }
.sw-menu { display:flex; gap:.25rem; list-style:none; margin:0; padding:0; }
.sw-menu a { display:block; padding:.5rem .85rem; border-radius:999px; font-size:.92rem; font-weight:600; color:var(--ink-2); transition:background .2s; }
.sw-menu a:hover, .sw-menu .current-menu-item > a { background:var(--sage); }
.sw-header-tools { display:flex; gap:.4rem; }
.sw-icon-btn { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:var(--card); color:var(--ink); cursor:pointer; }
.sw-icon-btn:hover { border-color:var(--ink); }
.sw-nav-toggle { display:none; gap:5px; align-content:center; }
.sw-nav-toggle span { display:block; width:16px; height:2px; background:currentColor; transition:transform .25s; }
.is-open .sw-nav-toggle span:first-child { transform:translateY(3.5px) rotate(45deg); }
.is-open .sw-nav-toggle span:last-child { transform:translateY(-3.5px) rotate(-45deg); }

/* ---------- Buttons & links ---------- */
.sw-button { display:inline-flex; align-items:center; gap:.5rem; background:var(--accent); color:#fff; border-radius:999px; font-size:.92rem; font-weight:700; padding:.85rem 1.4rem; transition:background .2s, transform .2s; }
.sw-button:hover { background:var(--accent-dark); transform:translateY(-1px); }
.sw-button--ghost { background:transparent; color:inherit; box-shadow:inset 0 0 0 1.5px currentColor; }
.sw-button--ghost:hover { background:rgba(255,255,255,.08); }
.sw-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.75rem; }
.sw-arrow-link { display:inline-flex; align-items:center; gap:.4rem; font-weight:700; font-size:.92rem; color:var(--accent-dark); }
.sw-arrow-link .sw-icon { transition:transform .2s; }
.sw-arrow-link:hover .sw-icon { transform:translateX(4px); }
.sw-kicker { color:var(--accent-dark); font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; margin-bottom:.75rem; }
.sw-meta { display:flex; flex-wrap:wrap; gap:.4rem; color:var(--muted); font-size:.8rem; font-weight:600; }
.sw-meta a { color:var(--accent-dark); }
.sw-lead { color:var(--muted); font-size:1.18rem; line-height:1.6; }

/* ---------- Hero ---------- */
.sw-hero { padding:72px 0 88px; background:radial-gradient(900px 480px at 85% 0%, var(--sage) 0%, transparent 65%), var(--paper); }
.sw-hero-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:4rem; align-items:center; }
.sw-eyebrow { display:inline-flex; align-items:center; gap:.6rem; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:.4rem .9rem; font-size:.8rem; font-weight:700; color:var(--ink-2); }
.sw-eyebrow span { width:8px; height:8px; border-radius:50%; background:var(--good); box-shadow:0 0 0 4px rgba(47,122,79,.15); }
.sw-hero h1 { font-size:clamp(3.2rem, 7.5vw, 6.4rem); letter-spacing:-.045em; line-height:.95; margin:1.4rem 0 1.4rem; }
.sw-hero h1 em { color:var(--accent); font-style:italic; font-weight:500; }
.sw-hero .sw-lead { max-width:560px; margin:0 0 2rem; }
.sw-search { display:flex; align-items:center; gap:.6rem; max-width:560px; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:.4rem .4rem .4rem 1.2rem; box-shadow:var(--shadow); }
.sw-search .sw-icon { color:var(--muted); }
.sw-search input { flex:1; min-width:0; border:0; background:transparent; font:inherit; font-size:1rem; padding:.6rem 0; color:var(--ink); outline:none; }
.sw-search button { border:0; background:var(--ink); color:#fff; font:inherit; font-weight:700; font-size:.92rem; padding:.8rem 1.3rem; border-radius:999px; cursor:pointer; }
.sw-search button:hover { background:var(--ink-2); }
.sw-chips { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:1.25rem; font-size:.85rem; }
.sw-chips span { color:var(--muted); font-weight:600; }
.sw-chips a { padding:.35rem .8rem; border-radius:999px; background:var(--card); border:1px solid var(--line); font-weight:600; }
.sw-chips a:hover { border-color:var(--ink); }

.sw-hero-card { position:relative; background:var(--card); border:1px solid var(--line); border-radius:24px; padding:1.1rem 1.1rem 1.5rem; box-shadow:0 30px 60px -20px rgba(16,35,30,.25); transform:rotate(1.2deg); }
.sw-hero-card-tag { position:absolute; top:-14px; left:24px; background:var(--gold); color:var(--ink); font-size:.75rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:.35rem .8rem; border-radius:999px; z-index:1; }
.sw-hero-card-media { display:block; aspect-ratio:4/3; border-radius:14px; overflow:hidden; background:var(--sage); margin-bottom:1.1rem; }
.sw-hero-card-media img { width:100%; height:100%; object-fit:cover; }
.sw-hero-card h2 { font-size:1.6rem; margin:.4rem 0 .8rem; }
.sw-hero-card > *:not(.sw-hero-card-media):not(.sw-hero-card-tag) { padding-inline:.35rem; }
.sw-hero-card-points { list-style:none; margin:1.1rem 0 0; padding-top:1rem !important; border-top:1px dashed var(--line); display:grid; gap:.35rem; font-size:.88rem; font-weight:600; }
.sw-hero-card-points li { display:flex; align-items:center; gap:.5rem; }
.sw-hero-card-points .sw-icon { color:var(--good); }

/* ---------- Trust strip ---------- */
.sw-trust { background:var(--ink); color:#eef3ed; padding:28px 0; }
.sw-trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.sw-trust-grid > div { display:grid; grid-template-columns:auto 1fr; column-gap:.8rem; align-items:center; }
.sw-trust-grid .sw-icon { grid-row:span 2; width:34px; height:34px; padding:7px; border-radius:50%; background:rgba(255,255,255,.08); color:var(--gold); }
.sw-trust-grid b { font-size:.95rem; }
.sw-trust-grid span { color:#a9bab1; font-size:.82rem; }

/* ---------- Sections ---------- */
.sw-section { padding:96px 0; }
.sw-section--tight { padding:56px 0 96px; }
.sw-section--tint { background:var(--cream); }
.sw-section-head { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.75rem; }
.sw-section-head h2 { font-size:clamp(2.2rem, 4vw, 3.4rem); max-width:640px; }
.sw-section-head > p { color:var(--muted); max-width:340px; margin:0; }

/* Categories */
.sw-cat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.sw-cat { position:relative; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:1.75rem; transition:transform .25s, box-shadow .25s, border-color .25s; }
.sw-cat:hover { transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--sage-2); }
.sw-cat-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:14px; background:var(--sage); color:var(--ink-2); margin-bottom:1.4rem; }
.sw-cat-icon .sw-icon { width:26px; height:26px; }
.sw-cat:nth-child(3n+2) .sw-cat-icon { background:#f6e1d3; color:var(--accent-dark); }
.sw-cat:nth-child(3n) .sw-cat-icon { background:#f7ecd0; color:#8a6512; }
.sw-cat h3 { font-size:1.45rem; margin-bottom:.4rem; }
.sw-cat p { color:var(--muted); margin:0; font-size:.95rem; }
.sw-cat-go { position:absolute; top:1.75rem; right:1.75rem; color:var(--muted); transition:color .2s, transform .2s; }
.sw-cat:hover .sw-cat-go { color:var(--accent); transform:translateX(3px); }

/* Post cards */
.sw-post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.sw-post-card { display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:transform .25s, box-shadow .25s; }
.sw-post-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.sw-post-card-media { display:block; aspect-ratio:3/2; background:var(--sage); overflow:hidden; }
.sw-post-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.sw-post-card:hover .sw-post-card-media img { transform:scale(1.04); }
.sw-post-card-placeholder { display:grid; place-items:center; width:100%; height:100%; color:var(--ink-2); background:linear-gradient(135deg, var(--sage), var(--sage-2)); }
.sw-post-card-placeholder .sw-icon { width:48px; height:48px; opacity:.6; }
.sw-post-card-body { padding:1.35rem 1.4rem 1.6rem; }
.sw-post-card h3 { font-size:1.35rem; margin:.5rem 0 .5rem; }
.sw-post-card h3 a:hover { color:var(--accent-dark); }
.sw-post-card p { color:var(--muted); font-size:.93rem; margin:0; }
.sw-empty { background:var(--card); border:1px dashed var(--sage-2); border-radius:var(--radius); padding:2.5rem; text-align:center; color:var(--muted); }
.sw-empty b { color:var(--ink); display:block; font-family:var(--display); font-size:1.4rem; margin-bottom:.3rem; }
.sw-empty a { color:var(--accent-dark); font-weight:600; }

/* Steps */
.sw-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); }
.sw-steps li { padding:2rem 1.75rem 0 0; }
.sw-steps li + li { padding-left:1.75rem; border-left:1px solid var(--line); }
.sw-steps b { font-family:var(--display); color:var(--accent); font-size:1.1rem; }
.sw-steps h3 { font-size:1.35rem; margin:1.25rem 0 .5rem; }
.sw-steps p { color:var(--muted); font-size:.95rem; margin:0; }

/* Promise */
.sw-promise { background:var(--ink); color:#eef3ed; padding:96px 0; background-image:radial-gradient(600px 300px at 10% 100%, rgba(212,101,47,.25), transparent 70%); }
.sw-promise-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; }
.sw-promise .sw-kicker { color:var(--gold); }
.sw-promise h2 { font-size:clamp(2.6rem, 5vw, 4.4rem); }
.sw-promise p { color:#c7d3cb; font-size:1.12rem; margin:0; }

/* ---------- Archive / legal ---------- */
.sw-archive-head { padding:72px 0 16px; }
.sw-archive-head h1 { font-size:clamp(2.6rem, 5.5vw, 4.4rem); margin-bottom:1rem; }
.sw-archive-head .sw-search { margin-top:1.5rem; }
.sw-404 { padding-bottom:120px; }
.sw-pagination { margin-top:3rem; }
.sw-pagination .nav-links { display:flex; gap:.4rem; justify-content:center; }
.sw-pagination .page-numbers { display:grid; place-items:center; min-width:42px; height:42px; border-radius:999px; border:1px solid var(--line); background:var(--card); font-weight:600; }
.sw-pagination .current { background:var(--ink); color:#fff; border-color:var(--ink); }

.sw-legal { background:var(--cream); padding:88px 0; }
.sw-legal-shell { max-width:880px; }
.sw-legal h1 { font-size:clamp(3rem, 6.5vw, 5.4rem); letter-spacing:-.045em; line-height:.95; margin:.25rem 0 1.4rem; }
.sw-legal-lead { font-family:var(--display); font-size:1.5rem; line-height:1.3; max-width:700px; }
.sw-legal-copy { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); margin-top:3rem; padding:clamp(1.75rem, 5vw, 4rem); }
.sw-legal-copy h2 { font-size:1.75rem; margin:2.2rem 0 .6rem; }
.sw-legal-copy h2:first-child { margin-top:0; }
.sw-legal-copy p { color:var(--muted); max-width:650px; }
.sw-legal-copy a { color:var(--accent-dark); text-decoration:underline; text-underline-offset:3px; }

/* ---------- Single article ---------- */
.sw-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:60; }
.sw-progress span { display:block; height:100%; width:0; background:var(--accent); }
.sw-article-head { padding:56px 0 32px; }
.sw-crumbs { display:flex; gap:.5rem; font-size:.85rem; font-weight:600; color:var(--muted); margin-bottom:1.25rem; }
.sw-crumbs a:hover { color:var(--accent-dark); }
.sw-article-head h1 { font-size:clamp(2.4rem, 5vw, 3.8rem); letter-spacing:-.035em; }
.sw-article-head .sw-lead { margin:1.1rem 0 0; }
.sw-byline { display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin:1.5rem 0; padding:1rem 0; border-block:1px solid var(--line); font-size:.88rem; color:var(--muted); }
.sw-byline b { color:var(--ink); }
.sw-note { display:flex; gap:.75rem; align-items:flex-start; background:var(--sage); border-radius:var(--radius-sm); padding:.9rem 1.1rem; font-size:.88rem; color:var(--ink-2); }
.sw-note p { margin:0; }
.sw-note a { font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.sw-note .sw-icon { margin-top:.15rem; color:var(--good); }
.sw-article-hero { margin:0 auto 2.5rem; max-width:1000px; }
.sw-article-hero img { width:100%; border-radius:var(--radius); }

.sw-prose { font-size:1.08rem; padding-bottom:1rem; }
.sw-prose > * + * { margin-top:1.2em; }
.sw-prose p { margin:0; }
.sw-prose h2 { font-size:2rem; margin-top:2.2em; scroll-margin-top:100px; }
.sw-prose h3 { font-size:1.45rem; margin-top:1.8em; }
.sw-prose a:not(.sw-button):not(.sw-pick-link) { color:var(--accent-dark); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.sw-prose ul, .sw-prose ol { padding-left:1.3em; }
.sw-prose li + li { margin-top:.4em; }
.sw-prose blockquote { margin-left:0; padding-left:1.25rem; border-left:3px solid var(--accent); font-family:var(--display); font-size:1.3rem; }
.sw-prose img { border-radius:var(--radius-sm); }
.sw-prose table { width:100%; border-collapse:collapse; font-size:.95rem; background:var(--card); border-radius:var(--radius-sm); overflow:hidden; box-shadow:0 0 0 1px var(--line); }
.sw-prose th { background:var(--ink); color:#fff; text-align:left; font-weight:700; }
.sw-prose th, .sw-prose td { padding:.75rem 1rem; border-bottom:1px solid var(--line); }
.sw-prose .wp-block-table { overflow-x:auto; margin-inline:0; }

.sw-method-box { display:flex; gap:1rem; align-items:flex-start; margin:3rem 0 5rem; padding:1.5rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); }
.sw-method-box > .sw-icon { width:40px; height:40px; padding:8px; border-radius:12px; background:var(--sage); }
.sw-method-box p { margin:.25rem 0 0; color:var(--muted); font-size:.95rem; }
.sw-method-box a { color:var(--accent-dark); font-weight:700; }

/* ---------- Affiliate components ---------- */
.sw-product { position:relative; display:grid; grid-template-columns:220px 1fr; gap:1.75rem; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:1.75rem; margin-block:2rem !important; box-shadow:var(--shadow); }
.sw-product-badge { position:absolute; top:-13px; left:1.5rem; background:var(--accent); color:#fff; font-size:.75rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:.3rem .8rem; border-radius:999px; }
.sw-product-media { display:grid; place-items:center; background:#f7f5ef; border-radius:12px; aspect-ratio:1; padding:1rem; color:var(--sage-2); }
.sw-product-media img { max-height:100%; object-fit:contain; border-radius:0; }
.sw-product-media > .sw-icon { width:64px; height:64px; }
.sw-product-name { font-size:1.5rem !important; margin:0 !important; }
.sw-product-rating { display:flex; align-items:center; gap:.5rem; margin-top:.4rem; }
.sw-stars { position:relative; display:inline-block; width:90px; height:18px; background:linear-gradient(90deg, #e3dfd3 0 100%); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M9 1.5l2.3 4.8 5.2.7-3.8 3.6.9 5.2L9 13.3l-4.6 2.5.9-5.2L1.5 7l5.2-.7z'/%3E%3C/svg%3E") repeat-x 0 0/18px 18px; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M9 1.5l2.3 4.8 5.2.7-3.8 3.6.9 5.2L9 13.3l-4.6 2.5.9-5.2L1.5 7l5.2-.7z'/%3E%3C/svg%3E") repeat-x 0 0/18px 18px; }
.sw-stars-fill { position:absolute; inset:0 auto 0 0; background:var(--gold); }
.sw-stars-num { font-size:.9rem; }
.sw-product-summary { color:var(--muted); font-size:.98rem; margin:.75rem 0 0 !important; }
.sw-product-lists { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1rem !important; }
.sw-pros, .sw-cons { list-style:none; margin:0; padding:0 !important; font-size:.92rem; }
.sw-pros li, .sw-cons li { display:flex; gap:.5rem; align-items:flex-start; margin:.35rem 0 0 !important; }
.sw-pros .sw-icon { color:var(--good); margin-top:.2rem; }
.sw-cons .sw-icon { color:var(--bad); margin-top:.2rem; }
.sw-product-cta { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:1.4rem !important; }
.sw-product-price { font-weight:800; font-size:1.1rem; }

.sw-picks { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-block:2rem !important; }
.sw-picks-title { background:var(--ink); color:#fff; font-family:var(--display); font-size:1.2rem; font-weight:600; padding:.9rem 1.4rem; }
.sw-picks ol { list-style:none; margin:0; padding:0 !important; counter-reset:pick; }
.sw-pick { display:grid; grid-template-columns:150px 1fr auto; gap:1rem; align-items:center; padding:1rem 1.4rem; margin:0 !important; border-top:1px solid var(--line); }
.sw-pick:first-child { border-top:0; }
.sw-pick-label { font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-dark); }
.sw-pick-name { font-weight:700; }
.sw-pick-name small { color:var(--muted); font-weight:500; margin-left:.3rem; }
.sw-pick-link { display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap; font-size:.85rem; font-weight:700; background:var(--sage); padding:.5rem .95rem; border-radius:999px; }
.sw-pick-link:hover { background:var(--sage-2); }

.sw-verdict { border-radius:var(--radius); background:var(--ink); color:#e8efe9; padding:1.6rem 1.75rem; }
.sw-verdict-title { display:flex; align-items:center; gap:.6rem; font-family:var(--display); font-size:1.35rem; color:#fff; margin-bottom:.6rem; }
.sw-verdict-title .sw-icon { color:var(--gold); }
.sw-verdict p { margin:0 0 .6rem; }
.sw-verdict p:last-child { margin:0; }
.sw-tip { border-left:4px solid var(--gold); background:#fbf2dc; border-radius:0 var(--radius-sm) var(--radius-sm) 0; padding:1rem 1.25rem; font-size:.98rem; }
.sw-tip b { color:#7a5710; margin-right:.3rem; }

/* ---------- Footer ---------- */
.sw-disclosure { background:var(--cream); border-top:1px solid var(--line); color:var(--muted); padding:1.1rem 0; font-size:.85rem; }
.sw-disclosure .sw-shell { display:flex; gap:.6rem; align-items:flex-start; }
.sw-disclosure .sw-icon { margin-top:.2rem; color:var(--good); }
.sw-footer { background:#0b1814; color:#eef3ed; padding:64px 0 28px; }
.sw-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:2.5rem; }
.sw-footer-brand p { color:#a4b5aa; max-width:320px; }
.sw-footer h4 { color:#8fa399; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 1rem; }
.sw-footer ul { list-style:none; margin:0; padding:0; }
.sw-footer li { margin:.55rem 0; }
.sw-footer li a:hover { color:var(--gold); }
.sw-footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; border-top:1px solid #26362f; color:#8fa399; font-size:.8rem; margin-top:3.5rem; padding-top:1.4rem; }

/* ---------- Responsive ---------- */
@media (max-width:1000px) {
  .sw-hero-grid { grid-template-columns:1fr; gap:3.5rem; }
  .sw-hero-card { max-width:460px; transform:none; }
  .sw-trust-grid { grid-template-columns:1fr 1fr; }
  .sw-cat-grid, .sw-post-grid { grid-template-columns:1fr 1fr; }
  .sw-steps { grid-template-columns:1fr 1fr; }
  .sw-steps li:nth-child(3) { padding-left:0; border-left:0; }
}
@media (max-width:760px) {
  body { font-size:16px; }
  .admin-bar .sw-header { top:46px; }
  .sw-header-inner { min-height:64px; gap:1rem; }
  .sw-brand { font-size:1.5rem; }
  .sw-nav-toggle { display:grid; }
  .sw-header-tools { margin-left:auto; }
  .sw-nav { position:absolute; top:100%; left:0; right:0; margin:0; background:var(--paper); border-bottom:1px solid var(--line); padding:.5rem 20px 1rem; display:none; box-shadow:0 20px 30px -20px rgba(16,35,30,.3); }
  .is-open .sw-nav { display:block; }
  .sw-menu { flex-direction:column; }
  .sw-menu a { padding:.8rem .5rem; border-radius:8px; font-size:1rem; }
  .sw-hero { padding:44px 0 64px; }
  .sw-search { padding-left:1rem; }
  .sw-search button { padding:.75rem 1rem; }
  .sw-section { padding:64px 0; }
  .sw-section-head { flex-direction:column; align-items:flex-start; gap:1rem; margin-bottom:2rem; }
  .sw-trust-grid, .sw-cat-grid, .sw-post-grid, .sw-steps, .sw-promise-grid, .sw-footer-grid { grid-template-columns:1fr; }
  .sw-steps li, .sw-steps li + li { padding:1.5rem 0; border-left:0; border-bottom:1px solid var(--line); }
  .sw-promise { padding:64px 0; }
  .sw-promise-grid { gap:1.5rem; }
  .sw-product { grid-template-columns:1fr; padding:1.4rem; }
  .sw-product-media { aspect-ratio:16/10; }
  .sw-product-lists { grid-template-columns:1fr; }
  .sw-pick { grid-template-columns:1fr auto; }
  .sw-pick-label { grid-column:1 / -1; }
  .sw-legal { padding:56px 0; }
}
@media (prefers-reduced-motion:reduce) { * { transition:none !important; scroll-behavior:auto !important; } }

/* ---------- Shop (WooCommerce) ---------- */
.sw-section--flush { padding-top:0; }
.sw-button--sm { padding:.6rem 1rem; font-size:.84rem; }
.sw-button--lg { padding:1.05rem 1.8rem; font-size:1rem; }
.sw-chips a.is-active { background:var(--ink); color:#fff; border-color:var(--ink); }
.sw-chips a small { color:var(--muted); font-weight:600; margin-left:.15rem; }
.sw-chips a.is-active small { color:#b9c7bf; }
.sw-shop-chips { margin-top:1.75rem; }
.sw-shop-head .sw-lead { max-width:640px; margin:0; }

.woocommerce-notices-wrapper:empty { display:none; }
.sw-shop .woocommerce-result-count { float:left; margin:0 0 1.5rem; color:var(--muted); font-size:.9rem; line-height:42px; }
.sw-shop .woocommerce-ordering { float:right; margin:0 0 1.5rem; }
.sw-shop .woocommerce-ordering select { font:inherit; font-size:.9rem; font-weight:600; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:999px; padding:.55rem 2.2rem .55rem 1rem; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310231e' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .8rem center; background-size:14px; cursor:pointer; }

ul.products { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; clear:both; }
.sw-pcard { display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:transform .25s, box-shadow .25s; }
.sw-pcard:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.sw-pcard-media { position:relative; display:block; aspect-ratio:1; background:#f7f5ef; overflow:hidden; }
.sw-pcard-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.sw-pcard:hover .sw-pcard-media img { transform:scale(1.04); }
.sw-pcard-badge { position:absolute; top:12px; left:12px; z-index:2; background:var(--accent); color:#fff; font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:.3rem .7rem; border-radius:999px; }
.sw-pcard-body { display:flex; flex-direction:column; flex:1; padding:1.1rem 1.2rem 1.3rem; }
.sw-pcard h3 { font-size:1.15rem; line-height:1.2; margin:.35rem 0 .45rem; }
.sw-pcard h3 a:hover { color:var(--accent-dark); }
.sw-pcard .sw-product-rating { margin:0 0 .35rem; }
.sw-pcard .sw-stars { width:75px; height:15px; -webkit-mask-size:15px 15px; mask-size:15px 15px; }
.sw-pcard-range { font-size:.88rem; color:var(--ink-2); font-weight:600; }
.sw-range { display:inline-block; }
.sw-price--live { display:block; font-weight:800; }
.sw-price--live small { display:block; font-size:.72rem; font-weight:500; color:var(--muted); }
.sw-price--live .sw-price-disclaimer { margin-top:.3rem; font-size:.64rem; line-height:1.35; font-weight:400; }
/* Disclaimer behind a "Price details" toggle: <details class="sw-price-details"><summary>…</summary><small class="sw-price-disclaimer">…</small></details> */
.sw-price-details { position:relative; display:inline-block; }
.sw-pcard:has(.sw-price-details) { overflow:visible; }
.sw-pcard:has(.sw-price-details) .sw-pcard-media { border-radius:var(--radius) var(--radius) 0 0; }
.sw-pcard:has(.sw-price-details[open]) { position:relative; z-index:10; }
.sw-price-details summary { list-style:none; cursor:pointer; font-size:.72rem; font-weight:600; color:var(--muted); text-decoration:underline; text-underline-offset:2px; }
.sw-price-details summary::-webkit-details-marker { display:none; }
.sw-price-details .sw-price-disclaimer { position:absolute; left:0; top:calc(100% + 6px); z-index:20; width:min(260px, 80vw); margin:0; padding:.75rem .85rem; background:var(--card); color:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow); font-size:.72rem; }
.sw-pcard-actions { display:flex; flex-direction:column; align-items:stretch; gap:.55rem; margin-top:auto; padding-top:1rem; }
.sw-pcard-actions .sw-button { justify-content:center; white-space:nowrap; }
.sw-pcard-more { font-size:.85rem; font-weight:700; color:var(--muted); text-align:center; }
.sw-pcard-more:hover { color:var(--ink); }
.sw-shop .woocommerce-pagination { margin-top:3rem; }
.sw-shop .woocommerce-pagination ul { list-style:none; display:flex; justify-content:center; gap:.4rem; padding:0; }
.sw-shop .woocommerce-pagination .page-numbers { display:grid; place-items:center; min-width:42px; height:42px; border-radius:999px; border:1px solid var(--line); background:var(--card); font-weight:600; }
.sw-shop .woocommerce-pagination .current { background:var(--ink); color:#fff; border-color:var(--ink); }
.woocommerce-info { background:var(--card); border:1px dashed var(--sage-2); border-radius:var(--radius); padding:2rem; text-align:center; color:var(--muted); list-style:none; }

/* Single product */
.sw-sp { padding:40px 0 24px; }
.sw-sp-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:4rem; align-items:start; }
.sw-sp-media { position:relative; }
.sw-sp-media .woocommerce-product-gallery { position:relative; background:#f7f5ef; border-radius:var(--radius); overflow:hidden; margin:0; }
.sw-sp-media .woocommerce-product-gallery__wrapper { margin:0; }
.sw-sp-media .woocommerce-product-gallery__image img { width:100%; aspect-ratio:1; object-fit:cover; }
.sw-sp-media .woocommerce-product-gallery__trigger { position:absolute; top:14px; right:14px; z-index:3; width:40px; height:40px; border-radius:50%; background:var(--card); display:grid; place-items:center; font-size:0; box-shadow:var(--shadow); }
.sw-sp-media .woocommerce-product-gallery__trigger::before { content:''; width:14px; height:14px; border:2px solid var(--ink); border-radius:50%; }
.sw-sp-media .flex-control-thumbs { list-style:none; display:flex; gap:10px; padding:10px; margin:0; }
.sw-sp-media .flex-control-thumbs li { width:72px; cursor:pointer; }
.sw-sp-media .flex-control-thumbs img { border-radius:8px; opacity:.6; }
.sw-sp-media .flex-control-thumbs img.flex-active { opacity:1; }
.sw-sp-summary { position:sticky; top:96px; }
.sw-sp-summary h1 { font-size:clamp(2rem, 4vw, 3rem); letter-spacing:-.035em; }
.sw-sp-summary .sw-product-rating { margin-top:.75rem; font-size:.88rem; }
.sw-sp-intro { color:var(--muted); font-size:1.08rem; margin-top:1rem; }
.sw-sp-intro p { margin:0 0 .6rem; }
.sw-sp-summary .sw-product-lists { margin:1.25rem 0 0; padding:1.25rem 0; border-block:1px solid var(--line); }
.sw-sp-buy { display:flex; flex-direction:column; align-items:flex-start; gap:.9rem; margin:1.5rem 0; }
.sw-sp-buy .sw-pcard-range { font-size:1rem; }
.sw-sp-details { max-width:760px; margin:4.5rem 0 0; }
.sw-sp-details h2 { font-size:2rem; margin-bottom:1rem; }
.sw-sp .related { margin-top:4.5rem; padding-top:3rem; border-top:1px solid var(--line); }
.sw-sp .related > h2 { font-size:2rem; margin-bottom:1.5rem; }

@media (max-width:1000px) {
  ul.products { grid-template-columns:repeat(3,1fr); }
  .sw-sp-grid { grid-template-columns:1fr; gap:2rem; }
  .sw-sp-summary { position:static; }
}
@media (max-width:760px) {
  ul.products { grid-template-columns:1fr 1fr; gap:12px; }
  .sw-pcard-body { padding:.9rem; }
  .sw-pcard h3 { font-size:1rem; }
  .sw-pcard-actions .sw-button { white-space:normal; text-align:center; padding-inline:.6rem; }
  .sw-shop .woocommerce-result-count, .sw-shop .woocommerce-ordering { float:none; }
  .sw-shop .woocommerce-result-count { margin-bottom:.5rem; }
}
