/* SoftDir 1.1: inherits theme fonts. Translucent greys keep it usable on light and dark themes. */
.sd-directory,.sd-single,.sd-compare-wrap,.sd-form,.sd-bar,.sd-widget,.sd-hero-search,.sd-archive,.sd-landing,.sd-spons-wrap,.sd-pick,.sd-versus,.sd-tablewrap,.sd-404{
	--sd-accent:#2563eb;--sd-accent-ink:#fff;--sd-accent-soft:rgba(37,99,235,.09);
	--sd-line:rgba(127,127,127,.28);--sd-soft:rgba(127,127,127,.08);
	--sd-good:#15803d;--sd-bad:#b45309;--sd-star:#f59e0b;--sd-radius:8px;
}
.sd-single *,.sd-directory *,.sd-widget *,.sd-landing *,.sd-spons-wrap *,.sd-pick *,.sd-versus *,.sd-tablewrap *{box-sizing:border-box}
.sd-muted{opacity:.68;font-size:.9em}
.sd-link{color:var(--sd-accent);text-decoration:none;font-weight:600}
.sd-link:hover{text-decoration:underline}
.sd-icon{flex:0 0 auto;vertical-align:-.15em}

/* buttons */
.sd-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.7em 1.25em;border-radius:8px;background:var(--sd-accent);color:var(--sd-accent-ink)!important;border:1px solid var(--sd-accent);font:inherit;font-weight:600;line-height:1.2;text-decoration:none!important;cursor:pointer}
.sd-btn:hover{filter:brightness(1.1)}
.sd-btn:focus-visible,.sd-chip:focus-visible,.sd-tile:focus-visible,.sd-tabs a:focus-visible{outline:2px solid var(--sd-accent);outline-offset:2px}
.sd-btn{white-space:nowrap}
.sd-btn--outline{background:transparent;color:var(--sd-accent)!important}
.sd-btn--small{padding:.5em .9em;font-size:.92em}
.sd-btn--block{display:flex;width:100%}
.sd-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}

/* logo */
.sd-logo{flex:0 0 auto;width:56px;height:56px;border-radius:12px;border:1px solid var(--sd-line);display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--sd-soft);text-decoration:none;color:inherit}
.sd-logo--lg{width:72px;height:72px}
.sd-logo--xl{width:92px;height:92px;border-radius:16px;background:#fff}
.sd-logo__img{width:100%;height:100%;object-fit:contain;padding:6px}
.sd-logo__initials{font-weight:700;font-size:1.3rem}
.sd-logo--xl .sd-logo__initials{font-size:2rem}

/* stars */
.sd-stars{position:relative;display:inline-block;width:5.4em;height:1em;vertical-align:-.12em;background:var(--sd-line);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='20' viewBox='0 0 100 20'><path d='M10 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L10 14.6 4.4 17.8l1.4-6.2L1 7.4l6.4-.6z M30 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L30 14.6l-5.6 3.2 1.4-6.2L21 7.4l6.4-.6z M50 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L50 14.6l-5.6 3.2 1.4-6.2L41 7.4l6.4-.6z M70 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L70 14.6l-5.6 3.2 1.4-6.2L61 7.4l6.4-.6z M90 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L90 14.6l-5.6 3.2 1.4-6.2L81 7.4l6.4-.6z'/></svg>") center/100% 100% no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='20' viewBox='0 0 100 20'><path d='M10 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L10 14.6 4.4 17.8l1.4-6.2L1 7.4l6.4-.6z M30 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L30 14.6l-5.6 3.2 1.4-6.2L21 7.4l6.4-.6z M50 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L50 14.6l-5.6 3.2 1.4-6.2L41 7.4l6.4-.6z M70 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L70 14.6l-5.6 3.2 1.4-6.2L61 7.4l6.4-.6z M90 1l2.6 5.8 6.4.6-4.8 4.2 1.4 6.2L90 14.6l-5.6 3.2 1.4-6.2L81 7.4l6.4-.6z'/></svg>") center/100% 100% no-repeat}
.sd-stars__fill{position:absolute;inset:0 auto 0 0;background:var(--sd-star)}
.sd-rating{display:inline-flex;gap:.4em;align-items:center}
.sd-score{display:grid;gap:.25rem;justify-items:start}
.sd-score__num{font-size:3rem;font-weight:700;line-height:1}

/* badges / chips */
.sd-badge{display:inline-block;font-size:.78em;font-weight:600;padding:.2em .65em;border-radius:99px;background:var(--sd-soft);border:1px solid var(--sd-line)}
.sd-badge--sponsored{border-color:var(--sd-accent);color:var(--sd-accent);background:var(--sd-accent-soft)}
.sd-badge--good{border-color:rgba(21,128,61,.45);color:var(--sd-good);background:rgba(21,128,61,.08)}
.sd-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.sd-chip{display:inline-block;padding:.28em .8em;border:1px solid var(--sd-line);border-radius:99px;background:var(--sd-soft);color:inherit;text-decoration:none;font-size:.92em}
a.sd-chip:hover{border-color:var(--sd-accent);color:var(--sd-accent)}
.sd-chip--plain{background:transparent}
.sd-tags{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:.2rem 0 0;padding:0}
.sd-tags li{font-size:.8em;padding:.15em .6em;border-radius:6px;background:var(--sd-soft);margin:0}

/* ---------- cards ---------- */
.sd-card{display:grid;gap:1rem 1.25rem;border:1px solid var(--sd-line);border-radius:var(--sd-radius);padding:1.25rem;background:transparent}
.sd-card--featured{border-color:var(--sd-accent);box-shadow:0 0 0 1px var(--sd-accent)}
.sd-card__titlerow{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.sd-card__title{margin:0;font-size:1.2rem;line-height:1.25}
.sd-card__title a{color:inherit;text-decoration:none}
.sd-card__title a:hover{color:var(--sd-accent)}
.sd-card__sub{margin:.15rem 0 .4rem}
.sd-card__tagline{margin:.5rem 0 0;font-weight:600}
.sd-card__summary{margin:.3rem 0 0;opacity:.8}
.sd-pricebox{display:grid;gap:.1rem}
.sd-pricebox strong{font-size:1.25rem}
.sd-pricebox--lg strong{font-size:1.75rem}
.sd-kicker{font-size:.78em;opacity:.65}
.sd-perks{display:grid;gap:.25rem;font-size:.9em;color:var(--sd-good)}
.sd-perks span{display:flex;gap:.35em;align-items:center}
.sd-card__side{display:grid;gap:.7rem;align-content:start}
.sd-compare{display:inline-flex;gap:.4em;align-items:center;font-size:.9em;cursor:pointer}

/* row layout (directory list) */
.sd-rows{display:grid;gap:1rem}
.sd-rows .sd-card{grid-template-columns:72px 1fr}
.sd-rows .sd-card__side{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;border-top:1px solid var(--sd-line);padding-top:1rem}
.sd-rows .sd-card__side .sd-perks{grid-column:1}
.sd-rows .sd-card__side .sd-btn{grid-column:2;grid-row:1/3}
.sd-rows .sd-card__side .sd-compare{grid-column:1}
@media (min-width:820px){
	.sd-rows .sd-card{grid-template-columns:72px 1fr 200px}
	.sd-rows .sd-card__side{grid-column:auto;grid-template-columns:1fr;border-top:0;border-left:1px solid var(--sd-line);padding:0 0 0 1.25rem}
	.sd-rows .sd-card__side .sd-btn{grid-column:auto;grid-row:auto}
}

/* tile layout (home page, alternatives) */
.sd-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
@media (min-width:900px){.sd-cards--2{grid-template-columns:repeat(2,1fr)}.sd-cards--3{grid-template-columns:repeat(3,1fr)}.sd-cards--4{grid-template-columns:repeat(4,1fr)}}
.sd-cards .sd-card{grid-template-columns:1fr;align-content:start}
.sd-cards .sd-card__main{display:flex;flex-direction:column}
.sd-cards .sd-card__side{grid-template-columns:1fr auto;align-items:end;border-top:1px solid var(--sd-line);padding-top:.9rem}
.sd-cards .sd-card__side .sd-pricebox{grid-column:1}
.sd-cards .sd-card__side .sd-perks{grid-column:1;grid-row:2}
.sd-cards .sd-card__side .sd-btn{grid-column:2;grid-row:1/3;align-self:center}
.sd-cards .sd-card__side .sd-compare{grid-column:1/-1;grid-row:3}
.sd-cards .sd-card__summary{display:none}

/* ---------- directory with sidebar ---------- */
.sd-directory--sidebar{display:grid;gap:1.5rem}
@media (min-width:900px){.sd-directory--sidebar{grid-template-columns:260px 1fr;align-items:start}.sd-filters{position:sticky;top:1.5rem}}
.sd-filters__panel{border:1px solid var(--sd-line);border-radius:var(--sd-radius);padding:1rem}
.sd-filters__panel>summary{font-weight:700;cursor:pointer;display:flex;gap:.5em;align-items:center;list-style:none}
.sd-filters__panel>summary::-webkit-details-marker{display:none}
.sd-fgroup{margin-top:1.1rem;display:grid;gap:.4rem}
.sd-flabel{font-size:.8em;font-weight:700;letter-spacing:.02em}
.sd-fgroup select,.sd-searchbox input{width:100%;padding:.55em .7em;border:1px solid var(--sd-line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.sd-searchbox{position:relative}
.sd-searchbox .sd-icon{position:absolute;left:.7em;top:50%;transform:translateY(-50%);opacity:.55}
.sd-searchbox input{padding-left:2.2em}
.sd-catlist{list-style:none;margin:0;padding:0;display:grid;gap:.1rem;max-height:18rem;overflow:auto}
.sd-catlist li{margin:0}
.sd-catlist a{display:flex;justify-content:space-between;gap:.5rem;padding:.35em .6em;border-radius:6px;color:inherit;text-decoration:none;font-size:.95em}
.sd-catlist a:hover{background:var(--sd-soft)}
.sd-catlist a.is-active{background:var(--sd-accent-soft);color:var(--sd-accent);font-weight:700}
.sd-depth-1 a{padding-left:1.4em}.sd-depth-2 a{padding-left:2.2em}
.sd-check{display:flex;gap:.5em;align-items:center;cursor:pointer}
.sd-fgroup--actions{display:flex;align-items:center;gap:1rem}
.sd-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.9rem}
.sd-count{margin:0;font-weight:700}
.sd-sort{display:flex;gap:.5rem;align-items:center;font-size:.92em}
.sd-sort select{padding:.4em .6em;border:1px solid var(--sd-line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.sd-active{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0 0 1rem;padding:0;align-items:center}
.sd-active li{margin:0}
.sd-active a:not(.sd-link){display:inline-block;padding:.25em .75em;border-radius:99px;background:var(--sd-accent-soft);color:var(--sd-accent);text-decoration:none;font-size:.9em;font-weight:600}
.sd-empty{display:grid;gap:.6rem;justify-items:start;padding:1.5rem;border:1px dashed var(--sd-line);border-radius:var(--sd-radius)}
.sd-empty-state{display:grid;gap:.25rem}
.sd-disclosure{margin-top:1.5rem}
.sd-pagination ul{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:1.5rem 0 0}
.sd-pagination li{margin:0}
.sd-pagination a,.sd-pagination span{display:inline-block;padding:.45em .85em;border:1px solid var(--sd-line);border-radius:8px;text-decoration:none;color:inherit}
.sd-pagination .current{background:var(--sd-accent);border-color:var(--sd-accent);color:var(--sd-accent-ink)}

/* ---------- single listing ---------- */
.sd-crumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0 0 .65rem;padding:0;font-size:.88em}
.sd-crumbs li{margin:0}
.sd-crumbs li+li::before{content:"/";margin-right:.4rem;opacity:.45}
.sd-crumbs a{color:inherit;opacity:.75;text-decoration:none}
.sd-crumbs a:hover{opacity:1;text-decoration:underline}
.sd-hero{display:block;padding:0}
.sd-hero__title{margin:0;font-size:clamp(1.6rem,3.2vw,2rem);line-height:1.15;letter-spacing:-.01em}
.sd-hero__vendor{opacity:.7}
.sd-hero__tagline{margin:.55rem 0 0;font-size:1.05rem;line-height:1.45;opacity:.9;max-width:46rem}
.sd-hero__meta{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;margin-top:.9rem}
.sd-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.sd-tabs{display:flex;gap:.25rem;overflow-x:auto;border-bottom:1px solid var(--sd-line);position:sticky;top:0;z-index:20;background:Canvas;margin:.9rem 0 1.25rem}
.sd-tabs a{padding:.7em 1.05em;color:inherit;text-decoration:none;font-weight:600;white-space:nowrap;border-bottom:3px solid transparent;opacity:.75}
.sd-tabs a:hover{opacity:1}
.sd-tabs a.is-current{border-color:var(--sd-accent);color:var(--sd-accent);opacity:1}
.sd-layout{display:grid;gap:2rem}
@media (min-width:960px){.sd-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.sd-side{position:sticky;top:4.5rem}}
.sd-block{margin:0 0 2.5rem;scroll-margin-top:4.5rem}
.sd-block h2{margin:0 0 1rem;font-size:1.5rem}
.sd-block h3{margin:1.5rem 0 .6rem;font-size:1.1rem}
.sd-prose>*:first-child{margin-top:0}
.sd-bestfor{margin-top:1rem}
.sd-feature-grid{list-style:none;margin:0;padding:0;display:grid;gap:.6rem 1.5rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
.sd-feature-grid li{display:flex;gap:.55em;align-items:center;margin:0}
.sd-feature-grid .sd-icon{color:var(--sd-good)}
.sd-feature-grid a{color:inherit;text-decoration:none}
.sd-plans{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin-bottom:.8rem}
.sd-plan{border:1px solid var(--sd-line);border-radius:var(--sd-radius);padding:1.1rem}
.sd-plan h3{margin:0 0 .4rem;font-size:1rem}
.sd-plan__price{font-size:1.25rem;font-weight:700;white-space:nowrap}
.sd-plan p{margin:.4rem 0 0;opacity:.75;font-size:.92em}
.sd-procon{display:grid;gap:1rem}
@media (min-width:700px){.sd-procon{grid-template-columns:1fr 1fr}}
.sd-pc{border-radius:var(--sd-radius);padding:1.1rem 1.25rem;border:1px solid var(--sd-line)}
.sd-pc h3{margin:0 0 .6rem;display:flex;gap:.4em;align-items:center}
.sd-pc ul{list-style:none;margin:0;padding:0}
.sd-pc li{position:relative;padding-left:1.3em;margin:.45em 0}
.sd-pc--pro{background:rgba(21,128,61,.06);border-color:rgba(21,128,61,.35)}
.sd-pc--pro h3{color:var(--sd-good)}
.sd-pc--pro li::before{content:"+";position:absolute;left:0;color:var(--sd-good);font-weight:700}
.sd-pc--con{background:rgba(180,83,9,.06);border-color:rgba(180,83,9,.35)}
.sd-pc--con h3{color:var(--sd-bad)}
.sd-pc--con li::before{content:"\2212";position:absolute;left:0;color:var(--sd-bad);font-weight:700}
.sd-side__card{border:1px solid var(--sd-line);border-radius:var(--sd-radius);padding:1.25rem;display:grid;gap:.8rem}
.sd-facts{display:grid;gap:.15rem;margin:.4rem 0 0;padding-top:1rem;border-top:1px solid var(--sd-line)}
.sd-facts dt{font-size:.78em;font-weight:700;opacity:.65;margin-top:.7rem}
.sd-facts dd{margin:0}
.sd-facts .sd-chip{margin:.15rem .25rem .15rem 0;font-size:.85em}

/* reviews */
.sd-reviews__top{display:grid;gap:1.5rem;align-items:center;margin-bottom:1.25rem;padding:1.25rem;border:1px solid var(--sd-line);border-radius:var(--sd-radius)}
@media (min-width:640px){.sd-reviews__top{grid-template-columns:auto 1fr;gap:2.5rem}}
.sd-dist{display:grid;gap:.35rem;max-width:30rem;width:100%}
.sd-dist__row{display:grid;grid-template-columns:3.8rem 1fr 2rem;gap:.6rem;align-items:center;font-size:.9em}
.sd-dist__bar{height:8px;border-radius:99px;background:var(--sd-line);overflow:hidden}
.sd-dist__bar span{display:block;height:100%;background:var(--sd-star)}
.sd-write{margin:0 0 1.5rem}
.sd-write>summary{display:inline-flex;list-style:none;cursor:pointer}
.sd-write>summary::-webkit-details-marker{display:none}
.sd-write[open]>summary{margin-bottom:1rem}
.sd-review{padding:1.25rem 0;border-top:1px solid var(--sd-line)}
.sd-review__head{display:flex;gap:.8rem;align-items:center}
.sd-review__stars{margin-left:auto}
.sd-avatar{width:40px;height:40px;border-radius:50%;background:var(--sd-accent-soft);color:var(--sd-accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.sd-review p{margin:.6rem 0 0}
.sd-notice{padding:.8rem 1rem;border:1px solid var(--sd-good);border-radius:8px;background:var(--sd-soft)}
.sd-notice--error{border-color:var(--sd-bad)}
.sd-review-form label{display:block;font-weight:600;margin-bottom:.25rem}
.sd-review-form select,.sd-review-form textarea,.sd-review-form input[type=text],.sd-review-form input[type=email]{width:100%;max-width:38rem;padding:.6em;border:1px solid var(--sd-line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.sd-review-form .form-submit{margin-top:1rem}
.sd-review-form input[type=submit]{padding:.7em 1.25em;border-radius:8px;border:1px solid var(--sd-accent);background:var(--sd-accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}

/* ---------- widgets (home page) ---------- */
.sd-widget{margin:2rem 0}
.sd-widget__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.sd-widget__head h2{margin:0}
.sd-tiles{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
@media (min-width:900px){.sd-tiles--3{grid-template-columns:repeat(3,1fr)}.sd-tiles--4{grid-template-columns:repeat(4,1fr)}.sd-tiles--6{grid-template-columns:repeat(6,1fr)}}
.sd-tiles li{margin:0}
.sd-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.8rem;align-items:center;padding:1rem;border:1px solid var(--sd-line);border-radius:var(--sd-radius);color:inherit;text-decoration:none;height:100%}
.sd-tile:hover{border-color:var(--sd-accent)}
.sd-tile__icon{grid-row:1/3;width:44px;height:44px;border-radius:10px;background:var(--sd-accent-soft);color:var(--sd-accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}
.sd-tile__name{font-weight:700}
.sd-hero-search{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:.6rem;border:1px solid var(--sd-line);border-radius:14px;max-width:46rem;background:Canvas;box-shadow:0 8px 28px rgba(0,0,0,.08)}
.sd-hero-search__icon{padding-left:.6rem;opacity:.55;display:inline-flex}
.sd-hero-search input[type=search]{flex:1 1 12rem;border:0;background:transparent;color:inherit;font:inherit;padding:.7em .4em;min-width:0}
.sd-hero-search input[type=search]:focus{outline:none}
.sd-hero-search select{border:0;border-left:1px solid var(--sd-line);background:transparent;color:inherit;font:inherit;padding:.7em .6em;max-width:14rem}

/* ---------- compare table / bar ---------- */
.sd-scroll{overflow-x:auto}
.sd-table{width:100%;border-collapse:collapse}
.sd-table th,.sd-table td{padding:.7rem .85rem;border-bottom:1px solid var(--sd-line);text-align:left;vertical-align:top}
.sd-table--compare{min-width:640px;table-layout:fixed}
.sd-table--compare thead th{font-size:1.05rem}
.sd-table--compare thead th .sd-logo{margin-bottom:.5rem}
.sd-table--compare tbody th[scope=row]{width:11rem;font-weight:600}
.sd-table--compare td.sd-yes{color:var(--sd-good);font-weight:700}
.sd-table--compare td.sd-no{opacity:.4}
.sd-sep th{background:var(--sd-soft);text-align:left}
.sd-list{list-style:none;margin:0;padding:0}
.sd-list li{position:relative;padding-left:1.3em;margin:.3em 0}
.sd-list--pro li::before{content:"+";position:absolute;left:0;color:var(--sd-good);font-weight:700}
.sd-list--con li::before{content:"\2212";position:absolute;left:0;color:var(--sd-bad);font-weight:700}
.sd-list--plain li{padding-left:0}
.sd-remove{font-size:.85rem}
.sd-bar{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:flex;gap:.75rem;align-items:center;justify-content:center;flex-wrap:wrap;padding:.8rem 1rem;background:Canvas;color:CanvasText;border-top:1px solid var(--sd-line);box-shadow:0 -6px 18px rgba(0,0,0,.12)}
.sd-bar[hidden]{display:none}
.sd-bar__label{font-weight:600;max-width:60ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-btn--ghost{background:transparent;color:inherit!important;border-color:var(--sd-line)}

/* form + archive */
.sd-form{display:grid;gap:1rem;max-width:36rem}
.sd-field{display:flex;flex-direction:column;gap:.3rem}
.sd-field label{font-size:.9em;font-weight:600}
.sd-field input,.sd-field select,.sd-field textarea{width:100%;padding:.6em .7em;border:1px solid var(--sd-line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.sd-hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.sd-archive__head{margin:0 0 1.5rem}
.sd-archive__head h1{margin:0 0 .5rem}

@media (max-width:640px){.sd-logo--xl{width:64px;height:64px;border-radius:12px}.sd-reviews__top{padding:1rem}}
@media (prefers-reduced-motion:no-preference){.sd-btn,.sd-tile{transition:filter .15s,border-color .15s}}

/* Block themes keep content in a narrow column; let directory-style sections use the full page width. */
.sd-block-theme .sd-directory,.sd-block-theme .sd-widget,.sd-block-theme .sd-compare-wrap,.sd-block-theme .sd-archive{
	position:relative;left:50%;transform:translateX(-50%);width:min(1200px,calc(100vw - 2.5rem));max-width:none
}
.sd-block-theme .sd-single{width:min(1200px,calc(100vw - 2.5rem));position:relative;left:50%;transform:translateX(-50%);max-width:none}


/* 1.2 hero card: compact, two-zone first fold */
.sd-hero{border:1px solid var(--sd-line);border-radius:14px;overflow:hidden;background:Canvas;box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 20px rgba(15,23,42,.05);border-top:3px solid var(--sd-accent)}
.sd-hero__top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem 1.25rem;align-items:center;padding:1.25rem 1.5rem}
.sd-hero__main{min-width:0}
.sd-hero__titlerow{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.sd-hero__sub{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin-top:.35rem;font-size:.95em}
.sd-hero__cat{display:inline-block;padding:.15em .7em;border-radius:99px;background:var(--sd-accent-soft);color:var(--sd-accent);font-weight:600;font-size:.88em;text-decoration:none}
.sd-hero__cat:hover{text-decoration:underline}
.sd-hero__top .sd-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
@media (min-width:860px){
	.sd-hero__top{grid-template-columns:auto minmax(0,1fr) 220px}
	.sd-hero__top .sd-actions{grid-column:auto;grid-template-columns:1fr}
}
.sd-hero__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-top:1px solid var(--sd-line);background:var(--sd-soft)}
@media (min-width:700px){.sd-hero__facts{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sd-hero__facts>div{padding:.8rem 1.5rem;border-left:1px solid var(--sd-line)}
.sd-hero__facts>div:first-child{border-left:0}
@media (max-width:699px){.sd-hero__facts>div:nth-child(odd){border-left:0}.sd-hero__facts>div:nth-child(n+3){border-top:1px solid var(--sd-line)}.sd-hero__facts>div{padding:.65rem 1rem}}
.sd-hero__facts dt{margin:0;font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.6}
.sd-hero__facts dd{margin:.1rem 0 0;font-weight:600;line-height:1.3}
.sd-block{margin-bottom:1.75rem}
.sd-block>h2{margin-top:0}
.sd-hero__top .sd-btn{min-width:0;padding-left:.6em;padding-right:.6em}
@media (max-width:420px){.sd-hero__top{padding:1rem}.sd-hero__top .sd-btn{font-size:.92em}.sd-hero__facts>div{padding-left:1rem;padding-right:1rem}}

/* 1.3 verdict, FAQ, density */
.sd-verdict{border:1px solid var(--sd-line);border-left:4px solid var(--sd-accent);border-radius:var(--sd-radius);background:var(--sd-accent-soft);padding:1rem 1.25rem;margin:0 0 1.5rem}
.sd-verdict__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.4rem;font-size:.85em}
.sd-verdict__tag{display:inline-flex;align-items:center;gap:.35em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sd-accent);font-size:.82em}
.sd-verdict__text{margin:0 0 .8rem;font-size:1.02rem;line-height:1.55}
.sd-verdict__cols{display:grid;gap:.6rem 1.5rem}
@media (min-width:640px){.sd-verdict__cols{grid-template-columns:1fr 1fr}}
.sd-verdict__cols div{display:grid;gap:.1rem;font-size:.95em}
.sd-verdict__good strong{color:var(--sd-good)}
.sd-verdict__warn strong{color:var(--sd-bad)}
.sd-faq{display:grid;gap:.5rem}
.sd-faq details{border:1px solid var(--sd-line);border-radius:var(--sd-radius);padding:0 1.1rem}
.sd-faq summary{cursor:pointer;font-weight:600;padding:.85rem 0;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.sd-faq summary::-webkit-details-marker{display:none}
.sd-faq summary::after{content:"+";font-weight:400;font-size:1.3em;line-height:1;opacity:.6}
.sd-faq details[open] summary::after{content:"\2212"}
.sd-faq details p{margin:0 0 1rem;line-height:1.6;opacity:.9}
.sd-single .sd-block>h2{font-size:1.3rem;margin:0 0 .75rem}
.sd-single .sd-block>h3,.sd-single .sd-block h3{font-size:1.02rem}
.sd-block{margin-bottom:1.5rem}
.sd-feature-grid{gap:.35rem 1rem}


/* 2.0 sponsored placements: always labelled, always visually apart from editorial rankings */
.sd-spons-wrap{margin:1.5rem 0}
.sd-spons-title{font-size:1.2rem;margin:0 0 .6rem}
.sd-spons{border:1px dashed var(--sd-line);border-radius:12px;background:var(--sd-soft);overflow:hidden;margin:0 0 .8rem}
.sd-spons__bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.35rem 1rem;font-size:.78em;border-bottom:1px dashed var(--sd-line)}
.sd-spons__tag{font-weight:800;text-transform:uppercase;letter-spacing:.07em;opacity:.75}
.sd-spons__bar a{color:inherit;opacity:.7}
.sd-spons__body{display:grid;gap:.9rem 1.1rem;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:1rem}
@media (min-width:760px){.sd-spons__body{grid-template-columns:auto minmax(0,1fr) auto}}
.sd-spons__main h3{margin:0;font-size:1.1rem;display:flex;flex-wrap:wrap;gap:.2rem .7rem;align-items:center}
.sd-spons__main h3 a{color:inherit;text-decoration:none}
.sd-spons__main p{margin:.25rem 0 0;font-size:.95em}
.sd-spons__meta{display:flex;flex-wrap:wrap;gap:.2rem 1rem;opacity:.75;font-size:.88em!important}
.sd-spons__cta{display:grid;gap:.4rem;justify-items:start;grid-column:1/-1}
@media (min-width:760px){.sd-spons__cta{grid-column:auto;justify-items:center;min-width:10.5rem}}
.sd-note{margin:.7rem 0 0;font-size:.82em;opacity:.72;line-height:1.5}
.sd-note a{color:inherit}

/* comparison table */
.sd-tablewrap{margin:1.75rem 0}
.sd-table-title{font-size:1.4rem;margin:0 0 .75rem}
.sd-tablescroll{overflow-x:auto;border:1px solid var(--sd-line);border-radius:12px;background:Canvas}
.sd-table{width:100%;border-collapse:collapse;font-size:.94rem;line-height:1.5;min-width:640px}
.sd-table th,.sd-table td{padding:.85rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--sd-line)}
.sd-table thead th{background:var(--sd-soft);font-size:.8em;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.sd-table tbody tr:last-child th,.sd-table tbody tr:last-child td{border-bottom:0}
.sd-table tbody tr:hover{background:var(--sd-accent-soft)}
.sd-table__name{display:flex;align-items:center;gap:.7rem;min-width:11rem}
.sd-table__name .sd-logo{width:40px;height:40px;border-radius:10px}
.sd-table__name a:not(.sd-logo){font-weight:700;color:inherit;text-decoration:none}
.sd-table__name a:not(.sd-logo):hover{color:var(--sd-accent)}
.sd-table__cta{text-align:right;white-space:nowrap}
.sd-table ul{margin:0;padding-left:1.1rem}
.sd-table li{margin:.2rem 0}
.sd-table--versus thead th{text-transform:none;font-size:1em;text-align:center;padding:1.25rem 1rem}
.sd-table--versus thead th .sd-logo{margin:0 auto .5rem}
.sd-table--versus tbody th{width:9rem;font-size:.85em;text-transform:uppercase;letter-spacing:.04em;opacity:.8;background:var(--sd-soft)}
.sd-versus__name{display:block;font-size:1.1rem;font-weight:700;color:inherit;text-decoration:none;margin-bottom:.6rem}
.sd-versus{margin:1.75rem 0}

/* listicle pick */
.sd-pick{box-sizing:border-box;border:1px solid var(--sd-line);border-radius:16px;padding:1.4rem 1.5rem;margin:1.5rem 0;background:Canvas;box-shadow:0 6px 24px rgba(28,45,84,.05);scroll-margin-top:5rem}
.sd-pick__head{display:flex;flex-wrap:wrap;gap:.9rem 1rem;align-items:center}
.sd-pick__title{flex:1 1 14rem;min-width:0}
.sd-pick__rank{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--sd-accent);color:#fff;font-weight:800}
.sd-pick__title h3{margin:.2rem 0 0;font-size:1.35rem;line-height:1.2}
.sd-pick__title h3 a{color:inherit;text-decoration:none}
.sd-pick__sub{margin:.3rem 0 0;display:flex;flex-wrap:wrap;gap:.2rem .8rem;align-items:center;font-size:.92em}
.sd-pick__price{display:flex;flex-wrap:wrap;gap:.2rem .9rem;align-items:baseline;padding:.55rem .9rem;border-radius:10px;background:var(--sd-soft);flex:1 1 100%}
.sd-pick__price strong{font-size:1.15rem}
@media (min-width:900px){.sd-pick__price{flex:0 0 auto;display:grid;justify-items:end;text-align:right;background:none;padding:0;margin-left:auto}}
.sd-pick__verdict{margin:1rem 0 .6rem;line-height:1.65}
.sd-pick__fit{display:grid;gap:.5rem 1.5rem;margin:.6rem 0 1rem}
@media (min-width:700px){.sd-pick__fit{grid-template-columns:1fr 1fr}}
.sd-pick__fit div{display:grid;gap:.1rem}
.sd-pick__fit dt{font-size:.75em;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.65}
.sd-pick__fit dd{margin:0;font-weight:600}
.sd-pick .sd-pc h4{margin:0 0 .5rem;display:flex;gap:.4em;align-items:center;font-size:1rem}
.sd-pick .sd-pc--pro h4{color:var(--sd-good)}
.sd-pick .sd-pc--con h4{color:var(--sd-bad)}
.sd-pick__foot{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;margin-top:1.1rem}

/* landing page */
.sd-landing{max-width:1200px;margin:0 auto}
.sd-landing__hero{padding:1.75rem 1.75rem 1.5rem;border-radius:16px;margin-bottom:1.5rem;background:linear-gradient(180deg,var(--sd-accent-soft),transparent);border:1px solid var(--sd-line)}
.sd-landing__hero h1{margin:.2rem 0 .5rem;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.12;letter-spacing:-.02em}
.sd-landing__intro{margin:0 0 .8rem;font-size:1.1rem;max-width:46rem;line-height:1.6}
.sd-landing__stats{margin:0;font-size:.92em;opacity:.8}
.sd-landing__sec{margin:2.25rem 0}
.sd-landing__sec>h2{font-size:1.5rem;margin:0 0 1rem}
.sd-kicker{display:block;font-size:.74em;font-weight:800;text-transform:uppercase;letter-spacing:.07em;opacity:.65}
.sd-guides{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
.sd-guide{display:grid;gap:.3rem;padding:1rem 1.1rem;border:1px solid var(--sd-line);border-radius:12px;color:inherit;text-decoration:none;background:Canvas}
.sd-guide:hover{border-color:var(--sd-accent);box-shadow:0 4px 16px rgba(28,45,84,.08)}
.sd-guide strong{line-height:1.35}
.sd-guide span{font-size:.9em;opacity:.75;line-height:1.5}

/* phone: tables become stacked cards */
@media (max-width:640px){
	.sd-table{min-width:0}
	.sd-tablewrap .sd-table thead{display:none}
	.sd-tablewrap .sd-table,.sd-tablewrap .sd-table tbody,.sd-tablewrap .sd-table tr,.sd-tablewrap .sd-table td,.sd-tablewrap .sd-table th{display:block}
	.sd-tablewrap .sd-table tr{padding:.8rem 1rem;border-bottom:1px solid var(--sd-line)}
	.sd-tablewrap .sd-table th,.sd-tablewrap .sd-table td{border:0;padding:.25rem 0}
	.sd-tablewrap .sd-table td[data-label]::before{content:attr(data-label);display:block;font-size:.72em;font-weight:800;text-transform:uppercase;letter-spacing:.05em;opacity:.6}
	.sd-tablewrap .sd-table__cta{text-align:left;padding-top:.5rem}
	.sd-pick{padding:1.1rem 1rem}
	.sd-pick__rank{display:none}
}

/* landing page breaks out as one unit; its inner directory must not break out a second time */
.sd-block-theme .sd-landing,.sd-block-theme .sd-tablewrap,.sd-block-theme .sd-versus,.sd-block-theme .sd-pick{width:min(1200px,calc(100vw - 2.5rem));position:relative;left:50%;transform:translateX(-50%);max-width:none}
.sd-block-theme .sd-tablewrap,.sd-block-theme .sd-versus,.sd-block-theme .sd-pick{width:min(960px,calc(100vw - 2.5rem))}
.sd-block-theme .sd-landing .sd-directory,.sd-block-theme .sd-landing .sd-tablewrap{width:auto;left:auto;transform:none;position:static;max-width:none}

.sd-vs__title{margin:1.6rem 0 .6rem;font-size:1.15rem}.sd-vs th,.sd-vs td{vertical-align:top;text-align:left}.sd-vs tbody th{width:9rem;font-weight:600;white-space:nowrap}
.sd-claim{margin:1rem 0 0;font-size:.9em;opacity:.85}

.sd-advice{margin:2rem 0;padding:1.4rem;border:1px solid var(--sd-line);border-radius:var(--sd-radius);background:var(--sd-accent-soft,#eef3ff);box-sizing:border-box}
.sd-advice h2{margin:0 0 .3rem;font-size:1.25rem}
.sd-advice__grid{display:grid;gap:.9rem 1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin:1rem 0 .9rem}
.sd-advice .sd-field label,.sd-advice .sd-check{font-size:.92em}
.sd-advice input[type=text],.sd-advice input[type=email],.sd-advice select,.sd-advice textarea{width:100%;box-sizing:border-box;padding:.6rem .7rem;border:1px solid var(--sd-line);border-radius:6px;font:inherit;background:#fff}
.sd-advice .sd-check{display:flex;gap:.55rem;align-items:flex-start;margin:.7rem 0}
.sd-advice .sd-check input{margin-top:.25rem}
.sd-advice .sd-btn{margin-top:.6rem}
.sd-advice__note{margin:.8rem 0 0;font-size:.85em}
.sd-notice--err{border-color:#b91c1c;color:#b91c1c}
.sd-advice .sd-form{max-width:none}

.sd-bycat__nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.4rem}
.sd-bycat__nav a{display:inline-flex;gap:.45rem;align-items:center;padding:.4rem .8rem;border:1px solid var(--sd-line);border-radius:999px;text-decoration:none;font-size:.92em;color:inherit}
.sd-bycat__nav a span{opacity:.6;font-size:.9em}
.sd-bycat__sec{margin:0 0 2.2rem;scroll-margin-top:5rem}
.sd-bycat__sec h2 small{font-weight:400;font-size:.6em}

.sd-badge--verified{background:rgba(21,128,61,.1);color:#15803d;border-color:rgba(21,128,61,.35);display:inline-flex;align-items:center;gap:.3em}
.sd-badge--ok{background:rgba(21,128,61,.08);color:#15803d;border-color:rgba(21,128,61,.3)}
.sd-verified__note{font-size:.88em}
.sd-claim-box{margin:2rem 0}
.sd-claim-box summary{display:inline-flex;list-style:none}
.sd-claim-box .sd-form{max-width:none;margin-top:1rem}
.sd-review__title{margin:.6rem 0 .2rem;font-size:1.05rem}
.sd-review__badges{margin:.3rem 0;display:flex;gap:.4rem;flex-wrap:wrap}
.sd-review__pc{margin:.3rem 0}
.sd-pro{color:#15803d}.sd-con{color:#b45309}
.sd-vreply{margin:.8rem 0 0;padding:.8rem 1rem;border-left:3px solid var(--sd-accent);background:var(--sd-accent-soft);border-radius:0 var(--sd-radius) var(--sd-radius) 0}
.sd-review-form p{margin:.7rem 0}
.sd-review-form input[type=text],.sd-review-form input[type=email],.sd-review-form select,.sd-review-form textarea{width:100%;box-sizing:border-box;padding:.6rem .7rem;border:1px solid var(--sd-line);border-radius:6px;font:inherit}
.sd-review-form .sd-check label{display:flex;gap:.55rem;align-items:flex-start}

.sd-main,.sd-side{min-width:0}.sd-review-form textarea,.sd-review-form input,.sd-review-form select{max-width:100%}
.sd-review__title{font-weight:700}

/* ---------------------------------------------------------------- Browse page (2.5) */
.sd-browse{--sd-accent:#2563eb;--sd-accent-ink:#fff;--sd-accent-soft:rgba(37,99,235,.09);--sd-line:rgba(100,116,139,.3);--sd-soft:rgba(100,116,139,.08);--sd-radius:8px;--sd-star:#f59e0b;--sd-good:#15803d;display:block;position:relative;color:inherit}
.sd-browse,.sd-browse *{box-sizing:border-box}
.sd-browse.is-loading .sd-results{opacity:.55;transition:opacity .15s}
.sd-bhero{padding:clamp(1.25rem,3vw,2.25rem);border:1px solid var(--sd-line);border-radius:12px;background:linear-gradient(180deg,var(--sd-accent-soft),transparent);margin-bottom:1.25rem}
.sd-bhero__title{margin:0 0 .35rem;font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.15;letter-spacing:-.01em}
.sd-bhero__intro{margin:0 0 1.1rem;opacity:.75;max-width:40rem}
.sd-bsearch{position:relative;display:flex;align-items:center;gap:.5rem;padding:.4rem .4rem .4rem .8rem;border:1px solid var(--sd-line);border-radius:12px;background:Canvas;box-shadow:0 6px 22px rgba(15,23,42,.07);max-width:46rem}
.sd-bsearch:focus-within{border-color:var(--sd-accent);box-shadow:0 0 0 3px var(--sd-accent-soft),0 6px 22px rgba(15,23,42,.07)}
.sd-bsearch__icon{display:inline-flex;opacity:.55}
.sd-bsearch input[type=search]{flex:1 1 auto;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;color:inherit;font:inherit;font-size:1.02rem;padding:.65em .3em;outline:none}
.sd-bsearch input[type=search]::-webkit-search-cancel-button{cursor:pointer}
.sd-suggest{position:absolute;left:0;right:0;top:calc(100% + .35rem);z-index:30;list-style:none;margin:0;padding:.35rem;border:1px solid var(--sd-line);border-radius:12px;background:Canvas;box-shadow:0 14px 34px rgba(15,23,42,.16);max-height:22rem;overflow:auto}
.sd-suggest li{margin:0}
.sd-suggest a{display:flex;align-items:center;gap:.7rem;padding:.5rem .6rem;border-radius:8px;color:inherit;text-decoration:none}
.sd-suggest li.is-on a,.sd-suggest a:hover{background:var(--sd-accent-soft)}
.sd-suggest__img{flex:0 0 auto;width:34px;height:34px;border-radius:8px;border:1px solid var(--sd-line);display:inline-flex;align-items:center;justify-content:center;overflow:hidden;font-weight:700;background:var(--sd-soft)}
.sd-suggest__img img{width:100%;height:100%;object-fit:contain;padding:3px}
.sd-suggest__txt{display:grid;line-height:1.25;min-width:0}
.sd-suggest__txt small{opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sd-suggest__none{padding:.7rem .8rem;opacity:.7;font-size:.95em}
.sd-quick{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:1rem}
.sd-quick__label{font-size:.92em;opacity:.7;margin-right:.2rem}
.sd-pill{position:relative;display:inline-flex;margin:0}
.sd-pill input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sd-pill span{display:inline-flex;align-items:center;padding:.4em .9em;border:1px solid var(--sd-line);border-radius:99px;background:Canvas;font-size:.92em;font-weight:600;cursor:pointer}
.sd-pill input:checked+span{background:var(--sd-accent);border-color:var(--sd-accent);color:var(--sd-accent-ink)}
.sd-pill input:focus-visible+span{outline:2px solid var(--sd-accent);outline-offset:2px}
.sd-insights{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;margin:0 0 1.25rem;padding:0}
.sd-insights li{flex:1 1 9rem;margin:0;padding:.8rem 1rem;border:1px solid var(--sd-line);border-radius:var(--sd-radius);display:grid;gap:.1rem}
.sd-insights strong{font-size:1.4rem;line-height:1.1}
.sd-insights span{font-size:.88em;opacity:.7}
.sd-btiles-wrap{margin-bottom:.25rem}
.sd-bh2{margin:0 0 .75rem;font-size:1.15rem}
.sd-btiles{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));margin-bottom:1.75rem}
.sd-btile{border:1px solid var(--sd-line);border-radius:var(--sd-radius);padding:1rem;display:grid;gap:.5rem;align-content:start;background:Canvas}
.sd-btile:hover{border-color:var(--sd-accent)}
.sd-btile__main{display:grid;color:inherit;text-decoration:none;gap:.1rem}
.sd-btile__main strong{font-size:1.05rem}
.sd-btile__main span{font-size:.88em;opacity:.65}
.sd-btile ul{list-style:none;margin:0;padding:.5rem 0 0;border-top:1px solid var(--sd-line);display:grid;gap:.15rem}
.sd-btile li{margin:0}
.sd-btile li a{display:flex;justify-content:space-between;gap:.5rem;color:var(--sd-accent);text-decoration:none;font-size:.93em;padding:.15rem 0}
.sd-btile li a:hover{text-decoration:underline}
.sd-btile li em{font-style:normal;opacity:.55}
.sd-browse.has-filters .sd-browse__intro{display:none}
.sd-browse__main{display:grid;gap:1.25rem}
@media (min-width:900px){.sd-browse__main{grid-template-columns:270px minmax(0,1fr);align-items:start}.sd-filters{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}.sd-fopen,.sd-fclose,.sd-fshow,.sd-filters__head{display:none!important}}
.sd-filters{border:1px solid var(--sd-line);border-radius:var(--sd-radius);padding:.25rem 1rem 1rem;background:Canvas}
.sd-filters__body fieldset{border:0;margin:0;min-width:0}
.sd-filters__body fieldset.sd-fgroup{padding:1rem 0;border-top:1px solid var(--sd-line)}
.sd-filters__body fieldset.sd-fgroup legend{float:left;width:100%}
.sd-filters__body fieldset.sd-fgroup legend+*{clear:both}
.sd-fgroup{margin:0;padding:1rem 0;border-top:1px solid var(--sd-line);display:grid;gap:.45rem}
.sd-filters__body>.sd-fgroup:first-child,.sd-filters__body>fieldset.sd-fgroup:first-child{border-top:0;padding-top:.75rem}
.sd-flabel{font-weight:700;font-size:.95em;padding:0}
.sd-flabel small{font-weight:500;opacity:.6;margin-left:.3rem}
.sd-opts,.sd-catlist{display:grid;gap:.1rem}
.sd-opts label,.sd-catopt,.sd-check{display:flex;align-items:center;gap:.55rem;padding:.3rem .35rem;border-radius:6px;cursor:pointer;font-size:.95em;margin:0}
.sd-opts label:hover,.sd-catopt:hover,.sd-check:hover{background:var(--sd-soft)}
.sd-opts input,.sd-catopt input,.sd-check input{margin:0;accent-color:var(--sd-accent);width:1rem;height:1rem;flex:0 0 auto}
.sd-opts label span,.sd-catopt span,.sd-check span{flex:1 1 auto;min-width:0}
.sd-opts em,.sd-catopt em{font-style:normal;opacity:.55;font-size:.88em}
.sd-opts label[hidden]{display:none}
.sd-showmore{justify-self:start;background:none;border:0;padding:.25rem .35rem;color:var(--sd-accent);font:inherit;font-size:.92em;font-weight:600;cursor:pointer}
.sd-catlist{list-style:none;margin:0;padding:0;max-height:20rem;overflow:auto}
.sd-catlist .sd-depth-1 .sd-catopt{padding-left:1.5rem}.sd-catlist .sd-depth-2 .sd-catopt{padding-left:2.4rem}
.sd-catopt:has(input:checked){background:var(--sd-accent-soft);color:var(--sd-accent);font-weight:700}
.sd-filters select{width:100%;padding:.55em .7em;border:1px solid var(--sd-line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.sd-filters__foot{display:flex;align-items:center;gap:1rem;padding-top:.9rem;border-top:1px solid var(--sd-line)}
.sd-fshow{display:none}
.sd-js .sd-apply{display:none}
.sd-results{min-width:0}
.sd-toolbar__ctl{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.sd-count strong{font-size:1.05em}
.sd-sort{display:inline-flex;align-items:center;gap:.5rem;font-size:.92em}
.sd-sort select{padding:.45em .6em;border:1px solid var(--sd-line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.sd-view{display:inline-flex;border:1px solid var(--sd-line);border-radius:8px;overflow:hidden}
.sd-view label{position:relative;display:inline-flex;margin:0;padding:.45em .6em;cursor:pointer}
.sd-view input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sd-view label:has(input:checked){background:var(--sd-accent-soft);color:var(--sd-accent)}
.sd-card__best{margin:.2rem 0 0;font-size:.92em}
.sd-nudge{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border:1px solid var(--sd-accent);border-radius:var(--sd-radius);background:var(--sd-accent-soft)}
.sd-nudge div{display:grid;gap:.1rem}.sd-nudge span{opacity:.75;font-size:.93em}
.sd-cards .sd-nudge{grid-column:1/-1}
.sd-more-wrap{text-align:center;margin:1.5rem 0 0}
.sd-more{display:none}
.sd-js .sd-more{display:inline-flex}
.sd-js .sd-pagination{display:none}
.sd-empty__act{display:flex;gap:.6rem;flex-wrap:wrap}
@media (max-width:899px){
	.sd-fopen{position:sticky;top:.6rem;z-index:20;justify-self:start;background:Canvas;box-shadow:0 4px 14px rgba(15,23,42,.14)}
	.sd-filters{position:fixed;inset:0;z-index:100000;border-radius:0;border:0;padding:0 1rem;overflow:auto;transform:translateY(100%);visibility:hidden;transition:transform .22s ease,visibility 0s .22s;display:flex;flex-direction:column}
	.sd-filters.is-open{transform:none;visibility:visible;transition:transform .22s ease}
	.sd-filters__head{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--sd-line);position:sticky;top:0;background:Canvas;z-index:1}
	.sd-fclose{background:none;border:0;font-size:1.8rem;line-height:1;color:inherit;cursor:pointer;padding:.2rem .5rem}
	.sd-filters__body{flex:1 1 auto}
	.sd-filters__foot{position:sticky;bottom:0;background:Canvas;padding:.8rem 0;margin-top:auto}
	.sd-fshow{display:inline-flex;flex:1 1 auto}
	.sd-apply{display:none!important}
	html.sd-lock{overflow:hidden}
	.sd-opts label,.sd-catopt,.sd-check{padding:.55rem .35rem}
	.sd-toolbar{align-items:flex-start}
}
@media (max-width:520px){.sd-bsearch .sd-btn{padding:.6em .9em}.sd-quick__label{width:100%}}
@media (prefers-reduced-motion:reduce){.sd-filters{transition:none}.sd-browse.is-loading .sd-results{transition:none}}

.sd-block-theme .sd-browse{position:relative;left:50%;transform:translateX(-50%);width:min(1200px,calc(100vw - 2.5rem));max-width:none}
.sd-browse .sd-check{padding:.3rem .35rem}
.sd-browse .sd-fgroup{margin-top:0}
.sd-browse .sd-count{font-weight:400}
@media (max-width:899px){.sd-block-theme .sd-browse{left:auto;transform:none;width:auto}}

/* 2.5.1: theme-proofing for Astra and similar (link underlines, list margins, paragraph spacing) */
.sd-browse a,.sd-browse a:hover{text-decoration:none}
.sd-browse .sd-btile li a:hover,.sd-browse .sd-link:hover,.sd-browse .sd-card__title a:hover{text-decoration:underline}
.sd-browse ul,.sd-browse ol{margin-left:0;margin-right:0;padding-left:0}
.sd-browse ul.sd-insights{margin:0 0 1.25rem;padding:0}
.sd-browse ul.sd-catlist{margin:0;padding:0;max-height:26rem}
.sd-browse .sd-card p{margin:.3rem 0 0}
.sd-browse .sd-card__tagline{margin-top:.5rem}
.sd-browse .sd-btile strong,.sd-browse .sd-btile span{display:block}
.sd-browse .sd-btile__main strong{color:inherit}
.sd-browse .sd-btiles{margin-top:.5rem}
.sd-browse legend.sd-flabel{margin:0 0 .35rem}
.sd-browse .sd-fgroup>*{margin-top:0;margin-bottom:0}
.sd-browse .sd-suggest a{text-decoration:none}

/* 2.5.2: the hero carries the page heading, so the theme's own title and its gaps are removed on the directory page */
body.sd-has-browse .entry-header,body.sd-has-browse .page-header,body.sd-has-browse .wp-block-post-title,body.sd-has-browse .ast-archive-description{display:none!important}
body.sd-has-browse article.page,body.sd-has-browse .ast-article-single,body.sd-has-browse .site-main>article{padding-top:.25rem!important;margin-top:0!important}
body.sd-has-browse .entry-content{margin-top:0}
body.sd-has-browse #primary,body.sd-has-browse .site-content .ast-container{padding-top:0}
body.sd-has-browse #content.site-content{padding-top:0}
.sd-bhero__eyebrow{margin:0 0 .35rem;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sd-accent)}
.sd-browse .sd-bhero{padding:1.5rem 1.75rem 1.4rem;margin-bottom:1rem}
.sd-browse .sd-bhero__title{margin:0 0 .3rem}
.sd-browse .sd-bhero__intro{margin:0 0 1rem}
.sd-browse .sd-quick{margin-top:.85rem}
.sd-browse .sd-insights{margin-bottom:1rem}
.sd-browse .sd-btiles{margin-bottom:1.25rem}
@media (max-width:600px){.sd-browse .sd-bhero{padding:1.1rem 1rem}}

/* 2.6.0 price estimator */
.sd-est{max-width:1000px;margin:0 auto;padding:8px 0}
.sd-est__head h2{margin:0 0 6px;font-size:clamp(24px,3vw,32px);letter-spacing:-.01em}
.sd-est__form{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;align-items:end;background:#fff;border:1px solid #e4e9f2;border-radius:14px;padding:18px;margin:20px 0}
.sd-est__form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}
.sd-est__form select,.sd-est__form input[type=number]{width:100%;padding:11px 12px;border:1px solid #cfd8ea;border-radius:8px;font-size:16px;background:#fff}
.sd-est__form .sd-est__check{flex-direction:row;align-items:center;gap:8px;font-weight:500;grid-column:1/-1}
.sd-est__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.sd-est__summary div{background:#f5f8fe;border-radius:12px;padding:14px 16px}
.sd-est__summary b{display:block;font-size:24px;letter-spacing:-.01em}.sd-est__summary span{font-size:13px;color:#53627a}
.sd-est__row{display:grid;grid-template-columns:44px 1fr auto auto;gap:16px;align-items:center;background:#fff;border:1px solid #e4e9f2;border-radius:12px;padding:16px;margin-bottom:10px}
.sd-est__logo{width:44px;height:44px;border:1px solid #e4e9f2;border-radius:10px;padding:6px;object-fit:contain;background:#fff;display:block}
.sd-est__name{font-weight:700;font-size:17px;text-decoration:none}
.sd-est__how{font-size:13px;color:#53627a;margin-top:2px}
.sd-est__price{text-align:right}.sd-est__price b{display:block;font-size:20px}.sd-est__price span{font-size:13px;color:#53627a}
.sd-est__sub{margin:24px 0 10px;font-size:16px}
.sd-est__note{font-size:13px;margin-top:20px}
.sd-est__empty{padding:24px;background:#f5f8fe;border-radius:12px}
@media(max-width:700px){.sd-est__form{grid-template-columns:1fr 1fr}.sd-est__form label:first-child{grid-column:1/-1}.sd-est__row{grid-template-columns:44px 1fr;grid-template-areas:"l m" "p p" "g g"}.sd-est__row .sd-est__logo{grid-area:l}.sd-est__main{grid-area:m}.sd-est__price{grid-area:p;text-align:left;display:flex;gap:10px;align-items:baseline}.sd-est__go{grid-area:g;text-align:center}}

.sd-est *{box-sizing:border-box}
.sd-est__form label{min-width:0}
.sd-est__form input[type=number],.sd-est__form select{min-width:0;height:46px;margin:0}
.sd-est__go{display:inline-block;background:#2563eb;color:#fff!important;border-radius:8px;padding:10px 16px;font-weight:600;font-size:14px;text-decoration:none!important;white-space:nowrap}
.sd-est__go:hover{background:#1d4ed8}
.sd-est__name{color:inherit}

/* ---------------------------------------------------------------- v2.9.1 design review */

/* Compare bar: one line on a phone, and never taller than it needs to be. */
.sd-bar{padding:.6rem .9rem;gap:.5rem}
.sd-bar__label{max-width:none;flex:1 1 auto;min-width:0;font-size:.95rem}
@media (max-width:600px){
	.sd-bar{flex-wrap:nowrap}
	.sd-bar__label{font-size:.9rem}
	.sd-bar .sd-btn{white-space:nowrap;padding:.5em .8em}
}

/* Compare table: keep the product names in view while reading 30 rows of specs.
   The selector is doubled because the site design layer sets a 100% max-width on every
   direct child of .entry-content, which would otherwise win on specificity. */
.sd-compare-wrap,.entry-content > .sd-compare-wrap.sd-compare-wrap{max-width:1200px;margin-inline:auto}
/* Sticky needs the page, not this box, to be the scrollport: drop the scroller once the table fits. */
@media (min-width:1100px){
	.sd-compare-wrap{overflow:visible}
	.sd-table--compare{min-width:0}
	/* Clear the site's own sticky header. A custom property is used so this wins
	   regardless of where the base rule sits in the file. Override --sd-sticky-offset
	   if that header ever changes height. */
	.sd-compare-wrap{--sd-sticky-top:var(--sd-sticky-offset,80px)}
}
.sd-table--compare thead th{position:sticky;top:var(--sd-sticky-top,0px);z-index:5;background:Canvas;box-shadow:inset 0 -1px 0 var(--sd-line)}
.sd-table--compare thead td{position:sticky;top:var(--sd-sticky-top,0px);z-index:5;background:Canvas}
.sd-compare__name{font-size:1.05rem;font-weight:700;text-transform:none;letter-spacing:0}
.sd-table--compare tbody th[scope=row]{position:sticky;left:0;z-index:4;background:Canvas}

/* Price box: the verified date is the one claim competitors cannot copy, so it is visible. */
.sd-pricebox__verified{display:inline-flex;align-items:center;gap:.28em;margin-top:.3rem;font-size:.78rem;font-weight:600;color:#15803d;line-height:1.3}
.sd-pricebox__verified svg{width:14px;height:14px;flex:none}

/* An empty review section should not shout on every listing. */
.sd-reviews__none{margin:.2rem 0 1rem}

/* Section tabs: show that there is more to the right on a narrow screen. */
.sd-tabs{scrollbar-width:thin;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}
@media (min-width:900px){.sd-tabs{mask-image:none;-webkit-mask-image:none}}

/* 404 */
.sd-404{max-width:720px;margin:0 auto;padding:clamp(40px,8vw,88px) 20px;text-align:center}
.sd-404__kicker{margin:0 0 .5rem;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sd-accent)}
.sd-404 h1{margin:0 0 .6rem;font-size:clamp(1.8rem,4.5vw,2.6rem)}
.sd-404__lead{margin:0 auto 1.6rem;max-width:46ch;opacity:.8}
.sd-404__search form{display:flex;gap:.5rem;max-width:460px;margin:0 auto 1.4rem}
.sd-404__search input{flex:1 1 auto;min-width:0;height:46px;padding:0 .9rem;border:1px solid var(--sd-line);border-radius:10px;font:inherit}
.sd-404__acts{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:2.4rem}
.sd-404__cats h2{font-size:1rem;margin:0 0 .8rem}
.sd-404__cats ul{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;list-style:none;margin:0;padding:0}
.sd-404__cats a{display:inline-block;padding:.4em .8em;border:1px solid var(--sd-line);border-radius:999px;font-size:.9rem;text-decoration:none;color:inherit}
.sd-404__cats a:hover{border-color:var(--sd-accent);color:var(--sd-accent)}

/* Small screens: let the compare table scroll sideways instead of crushing the label
   column to a few pixels (a pre-2.10 rule zeroed the minimum width for every .sd-table).
   The sticky label column above keeps the row names readable while scrolling. */
@media (max-width:640px){
	.sd-table--compare{min-width:560px}
	.sd-table--compare tbody th[scope=row]{width:8.5rem}
}

/* Phone listings are long: 20 cards of body copy is a lot of scrolling before the
   filters pay off. The summary repeats what "Best for" and the tags already say. */
@media (max-width:600px){
	.sd-card__summary{display:none}
	.sd-card{gap:.6rem}
}
