/* AVIS SEXTOYS — Swiss Editorial v2
   Bodoni Moda + Jost · Luxury Minimalist · #EC4899 accent
   Zero radius · Grid borders · Print-inspired */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Poppins:wght@300;400;500;600;700;800&display=swap');

:root{
    --heading:'Poppins',system-ui,sans-serif;
    --sans:'Inter',system-ui,sans-serif;
    --bg:#FAFAFA;--white:#FFF;
    --fg:#0a0a0a;--fg2:#3f3f46;--fg3:#71717a;--fg4:#a1a1aa;--fg5:#d4d4d8;
    --pink:#EC4899;--pink-h:#DB2777;--pink-bg:rgba(236,72,153,.05);--pink-border:rgba(236,72,153,.15);
    --green:#16A34A;--green-bg:#F0FDF4;--green-border:#BBF7D0;
    --red:#DC2626;--red-bg:#FEF2F2;--red-border:#FECACA;
    --star:#F59E0B;
    --border:#E4E4E7;--max:1120px;--col:680px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--sans);background:var(--bg);color:var(--fg);line-height:1.65;font-weight:400}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--pink);color:#fff}

/* ── HERO VISUAL ── */
.hero-visual{max-width:var(--max);margin:0 auto;padding:0 2rem}
.hero-img{width:100%;height:280px;object-fit:cover;border-bottom:2px solid var(--fg)}

/* ── CARD IMAGES ── */
.card-img{width:100%;height:140px;object-fit:cover;margin-bottom:.75rem}

/* ── MASTHEAD ── */
.masthead{border-bottom:1px solid var(--border);padding:.85rem 0}
.masthead-inner{max-width:var(--max);margin:0 auto;padding:0 2rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.masthead-left{font-size:.62rem;color:var(--fg4);letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.masthead-center{text-align:center}
.masthead-center h1{font-family:var(--heading);font-size:1.85rem;font-weight:900;letter-spacing:-.04em;line-height:1}
.masthead-center h1 span{color:var(--pink)}
.masthead-tagline{font-size:.62rem;color:var(--fg4);margin-top:.15rem;letter-spacing:.06em;font-weight:400}
.masthead-right{text-align:right}
.masthead-cta{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .85rem;background:var(--fg);color:#fff;font-size:.68rem;font-weight:600;letter-spacing:.02em;transition:background .15s}
.masthead-cta:hover{background:var(--pink);color:#fff}

/* ── NAV ── */
.topnav{border-bottom:2px solid var(--fg);padding:.5rem 0}
.topnav-inner{max-width:var(--max);margin:0 auto;padding:0 2rem;display:flex;gap:1.75rem;justify-content:center}
.topnav a{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--fg2);padding:.15rem 0;border-bottom:1.5px solid transparent;transition:all .15s}
.topnav a:hover{border-color:var(--pink);color:var(--pink)}

/* ── FEATURED ── */
.featured{max-width:var(--max);margin:0 auto;padding:2.5rem 2rem;display:grid;grid-template-columns:1.2fr .8fr;gap:0;border-bottom:1px solid var(--border)}
.featured-main{border-right:1px solid var(--border);padding-right:2.5rem}
.featured-main .card-eyebrow{font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--pink);margin-bottom:.6rem}
.featured-main .card-score{display:flex;align-items:baseline;gap:.35rem;margin-bottom:.6rem}
.score-big{font-family:var(--heading);font-size:3.2rem;font-weight:900;line-height:1;color:var(--fg);letter-spacing:-.04em}
.score-big small{font-size:1.3rem;color:var(--fg4);font-weight:400}
.featured-main h2{font-family:var(--heading);font-size:2rem;font-weight:700;line-height:1.08;letter-spacing:-.03em;margin-bottom:.7rem}
.featured-main h2 a{transition:color .15s}
.featured-main h2 a:hover{color:var(--pink)}
.featured-main .card-excerpt{font-size:.88rem;color:var(--fg2);line-height:1.75;margin-bottom:.85rem}
.featured-main .card-meta{font-size:.65rem;color:var(--fg4);letter-spacing:.04em}
.featured-main .card-meta strong{color:var(--fg2);font-weight:600}

.featured-side{padding-left:2.5rem;display:flex;flex-direction:column}
.featured-side-item{padding:1.1rem 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:48px 1fr;gap:.85rem;align-items:start}
.featured-side-item:last-child{border-bottom:none}
.side-score{font-family:var(--heading);font-size:1.35rem;font-weight:900;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg);border:1.5px solid var(--border);letter-spacing:-.02em}
.side-info .card-eyebrow{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--pink);margin-bottom:.1rem}
.side-info h3{font-family:var(--heading);font-size:.95rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;margin-bottom:.15rem}
.side-info h3 a{transition:color .15s}
.side-info h3 a:hover{color:var(--pink)}
.side-info .card-meta{font-size:.62rem;color:var(--fg4)}

/* ── SECTION DIVIDER ── */
.section-divider{max-width:var(--max);margin:0 auto;padding:0 2rem}
.section-divider-line{border:none;border-top:2px solid var(--fg);margin:0}
.section-divider h2{font-family:var(--heading);font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-top:.65rem;display:flex;align-items:center;gap:.65rem}
.section-divider h2::after{content:'';flex:1;height:1px;background:var(--border)}

/* ── EDITORIAL GRID ── */
.editorial-grid{max-width:var(--max);margin:0 auto;padding:1.25rem 2rem 2.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.editorial-card{padding:1.15rem 1.5rem 1.15rem 0;border-right:1px solid var(--border)}
.editorial-card:nth-child(3n){border-right:none;padding-right:0;padding-left:1.5rem}
.editorial-card:nth-child(3n-1){padding-left:1.5rem}
.editorial-card .card-eyebrow{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--pink);margin-bottom:.3rem}
.editorial-card h3{font-family:var(--heading);font-size:1.05rem;font-weight:700;line-height:1.18;letter-spacing:-.01em;margin-bottom:.35rem}
.editorial-card h3 a{transition:color .15s}
.editorial-card h3 a:hover{color:var(--pink)}
.editorial-card .card-excerpt{font-size:.8rem;color:var(--fg2);line-height:1.65;margin-bottom:.4rem}
.editorial-card .card-meta{font-size:.6rem;color:var(--fg4)}
.inline-score{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--heading);font-weight:700;font-size:.82rem;margin-bottom:.3rem}
.bar{width:44px;height:3px;background:var(--fg5);display:inline-block;position:relative;overflow:hidden}
.bar-fill{position:absolute;top:0;left:0;height:100%;background:var(--fg)}
.inline-score.excellent .bar-fill{background:var(--green)}
.inline-score.good .bar-fill{background:#65a30d}
.inline-score.average .bar-fill{background:#d97706}

/* ── RANKINGS TABLE ── */
.rankings-section{max-width:var(--max);margin:0 auto;padding:.75rem 2rem 2.5rem}
.rankings-table{width:100%;border-collapse:collapse}
.rankings-table thead th{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--fg3);padding:.5rem 0;border-bottom:2px solid var(--fg);text-align:left}
.rankings-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s}
.rankings-table tbody tr:hover{background:rgba(0,0,0,.015)}
.rankings-table td{padding:.75rem 0;vertical-align:middle}
.col-rank{font-family:var(--heading);font-size:1rem;font-weight:900;width:36px;color:var(--fg4);letter-spacing:-.02em}
.col-rank.top{color:var(--pink)}
.col-product{display:flex;flex-direction:column;gap:.02rem}
.col-product-brand{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--pink)}
.col-product-name{font-size:.88rem;font-weight:700;font-family:var(--heading);letter-spacing:-.01em}
.col-product-name a{transition:color .15s}
.col-product-name a:hover{color:var(--pink)}
.col-score{font-family:var(--heading);font-size:.95rem;font-weight:900;letter-spacing:-.02em}
.col-price{font-size:.8rem;font-weight:500;color:var(--fg2)}
.col-action{text-align:right}
.tbl-btn{display:inline-block;padding:.25rem .75rem;background:var(--fg);color:#fff;font-size:.62rem;font-weight:600;letter-spacing:.03em;transition:background .15s}
.tbl-btn:hover{background:var(--pink);color:#fff}

/* ── BRANDS ── */
.brands-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.7rem 0}
.brands-strip-inner{max-width:var(--max);margin:0 auto;padding:0 2rem;display:flex;gap:1.5rem;align-items:center;overflow-x:auto;scrollbar-width:none}
.brands-strip-inner::-webkit-scrollbar{display:none}
.brands-strip-label{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--fg4);flex-shrink:0}
.brands-strip a{font-size:.75rem;font-weight:400;color:var(--fg3);white-space:nowrap;transition:color .15s;flex-shrink:0}
.brands-strip a:hover{color:var(--fg)}

/* ── CTA ── */
.bottom-cta{max-width:var(--max);margin:0 auto;padding:2.5rem 2rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem;border-top:2px solid var(--fg)}
.bottom-cta h2{font-family:var(--heading);font-size:1.35rem;font-weight:700;letter-spacing:-.02em}
.bottom-cta p{font-size:.82rem;color:var(--fg2);margin-top:.2rem}
.bottom-cta-btn{padding:.55rem 1.75rem;background:var(--pink);color:#fff;font-weight:600;font-size:.78rem;letter-spacing:.02em;transition:all .2s;white-space:nowrap}
.bottom-cta-btn:hover{background:var(--pink-h);transform:translateY(-1px);box-shadow:0 4px 12px rgba(236,72,153,.2)}

/* ── FOOTER ── */
.site-footer{border-top:1px solid var(--border);padding:1.25rem 0}
.footer-inner{max-width:var(--max);margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;font-size:.65rem;color:var(--fg4)}
.footer-inner a{color:var(--fg3);transition:color .15s}
.footer-inner a:hover{color:var(--pink)}

/* ── ARTICLE LAYOUT ── */
.article-header{max-width:var(--max);margin:0 auto;padding:2.5rem 2rem 2rem;display:grid;grid-template-columns:1.3fr .7fr;gap:3rem;border-bottom:1px solid var(--border)}
.article-header-main .card-eyebrow{font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--pink);margin-bottom:.55rem}
.article-header-main h1{font-family:var(--heading);font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:900;line-height:1.06;letter-spacing:-.04em;margin-bottom:.75rem}
.article-header-main .article-lead{font-size:.95rem;color:var(--fg2);line-height:1.8}
.article-header-main .article-meta{font-size:.62rem;color:var(--fg4);margin-top:.85rem;letter-spacing:.04em}

.article-sidebar{padding-top:.25rem}
.sidebar-verdict{border:1.5px solid var(--border);padding:1.5rem}
.sidebar-verdict h3{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--fg3);margin-bottom:.6rem}
.sidebar-score-display{font-family:var(--heading);font-size:3.8rem;font-weight:900;line-height:1;letter-spacing:-.05em}
.sidebar-score-display small{font-size:1.6rem;color:var(--fg4);font-weight:400}
.sidebar-score-label{font-size:.62rem;color:var(--fg3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}
.sidebar-bars{display:flex;flex-direction:column;gap:.45rem}
.sidebar-bar-item{display:flex;align-items:center;gap:.5rem}
.sidebar-bar-label{font-size:.65rem;color:var(--fg2);width:65px;flex-shrink:0}
.sidebar-bar{flex:1;height:4px;background:var(--fg5)}
.sidebar-bar-fill{height:100%;background:var(--fg)}
.sidebar-bar-fill.excellent{background:var(--green)}
.sidebar-bar-fill.good{background:#65a30d}
.sidebar-bar-fill.avg{background:#d97706}
.sidebar-bar-value{font-size:.65rem;font-weight:700;width:20px;text-align:right}
.sidebar-buy{display:block;width:100%;padding:.5rem;background:var(--fg);color:#fff;text-align:center;font-weight:600;font-size:.72rem;letter-spacing:.03em;margin-top:1.1rem;transition:background .15s}
.sidebar-buy:hover{background:var(--pink);color:#fff}

.article-body{max-width:var(--max);margin:0 auto;padding:2rem 2rem;display:grid;grid-template-columns:1.3fr .7fr;gap:3rem}
.article-toc{position:sticky;top:4.5rem;align-self:start}
.article-toc h4{font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--fg4);margin-bottom:.5rem}
.article-toc ul{list-style:none;display:flex;flex-direction:column;gap:.25rem;border-left:1.5px solid var(--border);padding-left:.85rem}
.article-toc li a{font-size:.75rem;color:var(--fg3);transition:color .15s;display:block;padding:.1rem 0}
.article-toc li a:hover{color:var(--fg)}

.article-content h2{font-family:var(--heading);font-size:1.4rem;font-weight:700;line-height:1.12;letter-spacing:-.02em;margin:2.25rem 0 .75rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.article-content h2:first-child{border-top:none;padding-top:0;margin-top:0}
.article-content h3{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:1.5rem 0 .45rem;color:var(--fg2)}
.article-content p{color:var(--fg2);margin-bottom:.85rem;line-height:1.85;font-size:.9rem}
.article-content a{color:var(--pink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.article-content a:hover{color:var(--pink-h);text-decoration-thickness:2px}
.article-content strong{color:var(--fg);font-weight:600}
.article-content ul,.article-content ol{color:var(--fg2);margin:.75rem 0;padding-left:1.1rem}
.article-content li{margin-bottom:.3rem;line-height:1.8;font-size:.9rem}
.article-content table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.82rem}
.article-content thead th{padding:.5rem .6rem;text-align:left;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--fg3);border-bottom:2px solid var(--fg)}
.article-content tbody td{padding:.5rem .6rem;border-bottom:1px solid var(--border);color:var(--fg2)}
.article-content tbody tr:hover{background:rgba(0,0,0,.01)}
.article-content blockquote{margin:1.25rem 0;padding:.85rem 1.25rem;border-left:3px solid var(--pink);font-family:var(--heading);font-style:italic;font-size:1.1rem;color:var(--fg);line-height:1.45}

.proscons{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:1.25rem 0;border:1.5px solid var(--border)}
.proscons-col{padding:1.15rem}
.proscons-col:first-child{border-right:1.5px solid var(--border)}
.proscons-col h4{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;margin-bottom:.55rem}
.proscons-col.pros{background:var(--green-bg)}
.proscons-col.pros h4{color:var(--green)}
.proscons-col.cons{background:var(--red-bg)}
.proscons-col.cons h4{color:var(--red)}
.proscons-col ul{list-style:none;display:flex;flex-direction:column;gap:.3rem}
.proscons-col li{font-size:.82rem;color:var(--fg2);padding-left:1rem;position:relative;line-height:1.55}
.proscons-col.pros li::before{content:'+';position:absolute;left:0;color:var(--green);font-weight:800}
.proscons-col.cons li::before{content:'\2013';position:absolute;left:0;color:var(--red);font-weight:800}

/* Compatibility classes for site_generator */
.container{max-width:var(--max);margin:0 auto;padding:0 2rem}
.narrow{max-width:var(--col)}
.content-wrapper{padding:2rem 0}
.content-container{max-width:var(--col);margin:0 auto;padding:0 2rem}
.content-body h2{font-family:var(--heading);font-size:1.4rem;font-weight:700;line-height:1.12;letter-spacing:-.02em;margin:2.25rem 0 .75rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.content-body h2:first-child{border-top:none;padding-top:0;margin-top:0}
.content-body h3{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:1.5rem 0 .45rem;color:var(--fg2)}
.content-body p{color:var(--fg2);margin-bottom:.85rem;line-height:1.85;font-size:.9rem}
.content-body a{color:var(--pink);text-decoration:underline;text-underline-offset:3px}
.content-body a:hover{color:var(--pink-h)}
.content-body strong{color:var(--fg);font-weight:600}
.content-body ul,.content-body ol{color:var(--fg2);margin:.75rem 0;padding-left:1.1rem}
.content-body li{margin-bottom:.3rem;line-height:1.8;font-size:.9rem}
.content-body table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.82rem}
.content-body thead th{padding:.5rem .6rem;text-align:left;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--fg3);border-bottom:2px solid var(--fg)}
.content-body tbody td{padding:.5rem .6rem;border-bottom:1px solid var(--border);color:var(--fg2)}
.content-body tbody tr:hover{background:rgba(0,0,0,.01)}
.content-body blockquote{margin:1.25rem 0;padding:.85rem 1.25rem;border-left:3px solid var(--pink);font-family:var(--heading);font-style:italic;font-size:1.1rem;color:var(--fg);line-height:1.45}

/* Site generator compat */
.page-hero{padding:2.5rem 0 2rem;border-bottom:2px solid var(--fg)}
.hero-container{max-width:var(--col);margin:0 auto;padding:0 2rem}
.hero-meta{margin-bottom:.75rem}
.badge{display:inline-block;padding:.18rem .65rem;background:var(--pink);color:#fff;font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em}
.page-hero h1{font-family:var(--heading);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:900;line-height:1.06;letter-spacing:-.04em;margin-bottom:.65rem}
.hero-intro{font-size:.9rem;color:var(--fg2);line-height:1.8}
.hero-intro p{margin:0}

.faq-block{padding:2rem 0;border-top:1px solid var(--border)}
.faq-heading{font-family:var(--heading);font-size:1.15rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem}
.faq-list{display:flex;flex-direction:column}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item:first-child{border-top:1px solid var(--border)}
.faq-question{width:100%;padding:.7rem 0;display:flex;justify-content:space-between;align-items:center;background:none;border:none;color:var(--fg);font-size:.85rem;font-weight:600;cursor:pointer;text-align:left;font-family:var(--sans);transition:color .15s}
.faq-question:hover{color:var(--pink)}
.faq-question::after{content:'+';font-size:1.1rem;color:var(--fg3);font-weight:300;transition:transform .25s;flex-shrink:0;margin-left:.75rem}
.faq-item.open .faq-question::after{transform:rotate(45deg);color:var(--pink)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.16,1,.3,1)}
.faq-item.open .faq-answer{max-height:500px}
.faq-answer-inner{padding:0 0 .85rem;font-size:.82rem;color:var(--fg2);line-height:1.8}
.faq-answer>p{padding:0 0 .85rem;font-size:.82rem;color:var(--fg2);line-height:1.8;margin:0}

.cta-block{padding:2.5rem 0}
.cta-box{text-align:center;padding:2.5rem 2rem;background:var(--fg);color:#fff}
.cta-box h2{font-family:var(--heading);font-size:1.4rem;font-weight:700;margin-bottom:.4rem;letter-spacing:-.02em;color:#fff}
.cta-box p{color:rgba(255,255,255,.65);margin-bottom:1.25rem;max-width:380px;margin-left:auto;margin-right:auto;font-size:.85rem}
.btn-primary{display:inline-block;padding:.45rem 1.3rem;background:var(--pink);color:#fff;font-weight:600;font-size:.75rem;letter-spacing:.03em;transition:all .2s;border:none;cursor:pointer}
.btn-primary:hover{background:var(--pink-h);color:#fff;transform:translateY(-1px)}
.btn-buy{padding:.3rem .85rem;background:var(--fg);color:#fff;font-weight:600;font-size:.65rem;letter-spacing:.03em;transition:background .15s;display:inline-block}
.btn-buy:hover{background:var(--pink);color:#fff}

.related-block{padding:1.75rem 0;border-top:1px solid var(--border)}
.related-heading{font-family:var(--heading);font-size:1rem;font-weight:700;margin-bottom:.85rem;letter-spacing:-.02em}
.related-grid{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0}
.related-grid li{border-bottom:1px solid var(--border)}
.related-grid li:nth-child(odd){border-right:1px solid var(--border)}
.related-grid li a{display:block;padding:.55rem .85rem;font-size:.78rem;color:var(--fg2);transition:all .15s}
.related-grid li a:hover{background:rgba(0,0,0,.015);color:var(--fg)}
.related-grid li a::before{content:'\2192\00a0';color:var(--pink);font-weight:500}

/* ═══════════════════════════════════════
   SITE GENERATOR CLASSES — Editorial styling
   These classes are output by the site_generator
   ═══════════════════════════════════════ */

/* Header (site_generator) */
.site-header{position:sticky;top:0;z-index:100;background:rgba(250,250,250,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:2px solid var(--fg);padding:0}
.site-header .container{max-width:var(--max);margin:0 auto;padding:.6rem 2rem;display:flex;align-items:center;gap:1.25rem}
.logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--fg);flex-shrink:0}
.logo-icon{display:none}
.logo-text-group{display:flex;flex-direction:column}
.logo-name{font-family:var(--heading);font-weight:900;font-size:.85rem;letter-spacing:.02em}
.logo-sub{font-size:.55rem;color:var(--fg4);letter-spacing:.12em;font-weight:500}
.logo-text{font-family:var(--heading);font-weight:900;font-size:1rem}
.logo-dot{display:inline-block;width:5px;height:5px;background:var(--pink);border-radius:50%;margin-left:1px}
.header-nav{display:flex;gap:.1rem;margin-left:auto}
.nav-link{padding:.35rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--fg3);border-bottom:1.5px solid transparent;transition:all .15s}
.nav-link:hover{color:var(--pink);border-color:var(--pink)}
.btn-header,.btn.btn-header{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem 1rem;background:var(--fg);color:#fff!important;font-size:.72rem;font-weight:600;letter-spacing:.02em;transition:background .15s;text-decoration:none;border:none}
.btn-header:hover{background:var(--pink);color:#fff!important}

/* Skip link */
.skip-link{position:absolute;top:-100%;left:1rem;background:var(--pink);color:#fff;padding:.5rem 1rem;z-index:999;font-weight:600;font-size:.82rem}
.skip-link:focus{top:1rem}

/* Trust bar */
.trust-bar{background:var(--fg);padding:.4rem 0;border-bottom:none}
.trust-bar .container{max-width:var(--max);margin:0 auto;padding:0 2rem;display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}
.trust-bar-item{display:flex;align-items:center;gap:.3rem;font-size:.68rem;color:rgba(255,255,255,.75);font-weight:500}

/* Hero (site_generator homepage/brand) */
.hero{padding:3rem 0 2.5rem;border-bottom:1px solid var(--border);background:var(--bg)}
.hero .container{max-width:var(--max);margin:0 auto;padding:0 2rem;text-align:center}
.hero-badge{display:inline-block;padding:.2rem .65rem;background:var(--pink);color:#fff;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;margin-bottom:1rem}
.hero h1{font-family:var(--heading);font-size:clamp(2rem,4.5vw,3rem);font-weight:800;line-height:1.08;letter-spacing:-.03em;margin-bottom:.65rem}
.hero-subtitle{font-size:.9rem;color:var(--fg2);max-width:500px;margin:0 auto 1.5rem;line-height:1.75}
.btn-hero{display:inline-block;padding:.55rem 1.75rem;background:var(--fg);color:#fff;font-weight:700;font-size:.78rem;letter-spacing:.02em;transition:all .2s;text-decoration:none}
.btn-hero:hover{background:var(--pink);color:#fff}

/* Stats box */
.stats-box{display:flex;gap:1.5rem;justify-content:center;margin:1.25rem auto 0;padding:1rem 1.5rem;border-top:2px solid var(--fg);max-width:500px}
.stats-item,.stat-item{display:flex;flex-direction:column;align-items:center;text-align:center}
.stats-number,.stat-value{font-family:var(--heading);font-size:1.1rem;font-weight:800;color:var(--fg)}
.stats-label,.stat-label{font-size:.58rem;color:var(--fg3);text-transform:uppercase;letter-spacing:.1em}

/* Section headers (site_generator) */
.section{padding:3rem 0}
.section-alt{background:var(--bg)}
.section-header,.section-header-center{margin-bottom:2rem}
.section-header-center{text-align:center}
.section-title{font-family:var(--heading);font-size:1.4rem;font-weight:700;margin-bottom:.3rem;letter-spacing:-.02em}
.section-subtitle{font-size:.85rem;color:var(--fg2)}
.section-eyebrow{display:inline-block;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--pink);margin-bottom:.4rem}

/* Top picks grid */
.top-picks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--fg)}
.pick-card{background:var(--white);padding:1.5rem;text-align:center;border-right:1px solid var(--border);transition:background .15s;text-decoration:none;color:var(--fg);display:block}
.pick-card:last-child{border-right:none}
.pick-card:hover{background:var(--bg)}
.pick-rank{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:var(--fg);color:#fff;font-size:.68rem;font-weight:800;margin-bottom:.75rem;border-radius:50%}
.pick-badge{display:inline-block;padding:.15rem .55rem;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}
.pick-badge-gold{background:var(--star);color:var(--fg)}
.pick-badge-silver{background:var(--fg5);color:var(--fg2)}
.pick-badge-rose{background:var(--pink);color:#fff}
.pick-card-score{margin:0 auto .65rem}
.pick-brand{display:block;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--pink);margin-bottom:.1rem}
.pick-name{display:block;font-size:.85rem;font-weight:700;margin-bottom:.35rem;line-height:1.25;font-family:var(--heading)}
.pick-price{font-size:.78rem;color:var(--fg3)}
.pick-price strong{color:var(--fg)}

/* Brand avatar */
.brand-avatar{display:flex;align-items:center;justify-content:center;margin:0 auto .65rem;font-family:var(--heading);font-weight:700;color:rgba(255,255,255,.85);text-transform:uppercase;line-height:1;flex-shrink:0}
.product-card .brand-avatar{width:100%!important;aspect-ratio:1;height:auto!important;margin-bottom:.5rem;font-size:2rem}

/* Category grid */
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0;border:1px solid var(--border)}
.category-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem 1rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-decoration:none;color:var(--fg);text-align:center;transition:background .15s}
.category-card:hover{background:var(--bg)}
.category-icon{font-size:1.3rem;margin-bottom:.4rem}
.category-name{font-weight:700;font-size:.78rem;margin-bottom:.1rem}
.category-count{font-size:.65rem;color:var(--fg3)}

/* Brand strip */
.brand-strip{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.4rem;scrollbar-width:none}
.brand-strip::-webkit-scrollbar{display:none}
.brand-chip{flex-shrink:0;display:flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border:1px solid var(--border);text-decoration:none;color:var(--fg);font-size:.78rem;font-weight:500;transition:all .15s}
.brand-chip:hover{border-color:var(--fg);color:var(--fg)}
.brand-chip-score{font-weight:800;color:var(--pink);font-size:.72rem}
.brand-chip-count{color:var(--fg3);font-size:.68rem}

/* CTA section (site_generator) */
.cta-section{padding:2.5rem 0}
.cta-box{text-align:center;padding:2.5rem 2rem;background:var(--fg);color:#fff;max-width:var(--max);margin:0 auto}
.cta-box h2{font-family:var(--heading);font-size:1.35rem;font-weight:700;margin-bottom:.4rem;color:#fff}
.cta-box p{color:rgba(255,255,255,.65);margin-bottom:1.25rem;font-size:.85rem}

/* Product grid (brand pages) */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0;border:1px solid var(--border)}
.product-card{display:flex;flex-direction:column;padding:1rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-decoration:none;color:var(--fg);transition:background .15s}
.product-card:hover{background:var(--bg)}
.product-card-img{width:100%;aspect-ratio:1;overflow:hidden;background:var(--bg);margin-bottom:.5rem}
.product-card-img img{width:100%;height:100%;object-fit:contain;padding:.25rem}
.product-card-brand{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--pink);margin-bottom:.1rem}
.product-card-name{font-size:.78rem;font-weight:600;line-height:1.3;margin-bottom:.3rem;flex:1}
.product-card-price{font-size:.78rem;font-weight:700}
.product-card-price .price-old{text-decoration:line-through;color:var(--fg4);font-weight:400;margin-right:.2rem}
.product-card-price .price-sale{color:var(--red)}

.pc-img{width:100%;aspect-ratio:1;overflow:hidden;background:var(--bg);margin-bottom:.5rem;object-fit:contain}
.pc-img-placeholder{display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:800;color:var(--fg4)}
.pc-body{display:flex;flex-direction:column;gap:.15rem}
.pc-brand{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--pink)}
.pc-name{font-size:.85rem;font-weight:700;line-height:1.25;margin:0;font-family:var(--heading)}
.pc-meta{display:flex;align-items:center;gap:.4rem;margin-top:.15rem}
.pc-price{font-size:.72rem;color:var(--fg3)}

/* Index grid */
.index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0;border:1px solid var(--border)}
.index-card{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-decoration:none;color:var(--fg);transition:background .15s}
.index-card:hover{background:var(--bg)}
.index-card-icon{font-size:1.1rem;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--pink-bg)}
.index-card-info{display:flex;flex-direction:column}
.index-card-title{font-weight:700;font-size:.85rem;font-family:var(--heading)}
.index-card-meta{font-size:.68rem;color:var(--fg3)}

/* Ranking cards/list */
.ranking-list{display:flex;flex-direction:column;gap:0;border-top:2px solid var(--fg)}
.ranking-card{display:grid;grid-template-columns:auto 80px 1fr auto;gap:1.25rem;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border);transition:background .15s}
.ranking-card:hover{background:var(--bg)}
.ranking-card-first{background:var(--pink-bg)}
.rank-number{font-family:var(--heading);font-size:1.5rem;font-weight:900;color:var(--fg4);width:2rem;text-align:center}
.ranking-card-first .rank-number{color:var(--pink)}
.ranking-img{width:80px;height:64px;overflow:hidden;background:var(--bg)}
.ranking-img img{width:100%;height:100%;object-fit:contain}
.ranking-info{display:flex;flex-direction:column;gap:.1rem}
.ranking-brand{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--pink)}
.ranking-name{font-size:.88rem;font-weight:700;line-height:1.25;font-family:var(--heading)}
.ranking-desc{font-size:.78rem;color:var(--fg2);line-height:1.5}
.ranking-price{font-size:.72rem;color:var(--fg3)}
.ranking-price strong{color:var(--fg)}
.ranking-price .price-old{text-decoration:line-through;color:var(--fg4);margin-right:.3rem}
.ranking-price .price-sale{color:var(--red);font-weight:700}
.ranking-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}

/* Buttons (site_generator) */
.btn-buy,.btn-primary,a.btn-buy,a.btn-primary{display:inline-block;padding:.4rem 1.1rem;background:var(--pink);color:#fff!important;font-weight:700;font-size:.72rem;letter-spacing:.02em;transition:background .15s;text-decoration:none;border:none;cursor:pointer}
.btn-buy:hover,.btn-primary:hover{background:var(--pink-h);color:#fff!important}

/* Radar scores */
.radar-wrap{display:flex;justify-content:center;gap:2rem;padding:1.5rem 0;flex-wrap:wrap}
.radar-scores{display:flex;flex-direction:column;gap:.35rem;flex:1;max-width:400px}
.radar-score-item{display:flex;align-items:center;gap:.5rem}
.radar-score-label{font-size:.7rem;color:var(--fg2);width:80px;flex-shrink:0}
.radar-score-bar{flex:1;height:4px;background:var(--fg5)}
.radar-score-fill{height:100%;background:var(--fg);transition:width .8s}
.radar-score-value{font-size:.7rem;font-weight:700;width:24px;text-align:right}

/* Verdict pros/cons */
.verdict-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:1.25rem 0;border:1.5px solid var(--border)}
.verdict-card{padding:1.15rem}
.verdict-card:first-child{border-right:1.5px solid var(--border)}
.verdict-card h3{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.55rem;display:flex;align-items:center;gap:.3rem}
.verdict-pros{background:var(--green-bg)}
.verdict-pros h3{color:var(--green)}
.verdict-cons{background:var(--red-bg)}
.verdict-cons h3{color:var(--red)}
.verdict-list{list-style:none;display:flex;flex-direction:column;gap:.3rem}
.verdict-list li{font-size:.82rem;color:var(--fg2);padding-left:1rem;position:relative;line-height:1.55}
.verdict-pros .verdict-list li::before{content:'+';position:absolute;left:0;color:var(--green);font-weight:800}
.verdict-cons .verdict-list li::before{content:'\2013';position:absolute;left:0;color:var(--red);font-weight:800}

/* Glass card (generic) */
.glass-card{background:var(--white);border:1px solid var(--border);padding:1.5rem;transition:all .15s}
.glass-card:hover{box-shadow:3px 3px 0 var(--fg)}

/* Criteria cards */
.criteria-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0;border:1px solid var(--border)}
.criteria-card{padding:1.15rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.criteria-icon{font-size:1.1rem;margin-bottom:.4rem}
.criteria-name{font-size:.82rem;font-weight:700;margin-bottom:.2rem}
.criteria-desc{font-size:.72rem;color:var(--fg2);line-height:1.6}

/* Breadcrumb */
.breadcrumb{padding:.55rem 0}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem}
.breadcrumb li{display:flex;align-items:center;font-size:.68rem;color:var(--fg3)}
.breadcrumb li::after{content:'/';margin-left:.2rem;color:var(--fg4)}
.breadcrumb li:last-child::after{display:none}
.breadcrumb li:last-child{color:var(--fg2)}
.breadcrumb a{color:var(--fg3)}
.breadcrumb a:hover{color:var(--pink)}

/* Cross-links */
.cross-links{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}
.cross-links a{display:inline-block;margin-right:.75rem;font-size:.68rem;color:var(--fg3);transition:color .15s}
.cross-links a:hover{color:var(--pink)}

/* Footer (site_generator) */
.site-footer{border-top:2px solid var(--fg);padding:1.5rem 0;background:var(--bg)}
.site-footer .container{max-width:var(--max);margin:0 auto;padding:0 2rem}
.site-footer p{font-size:.65rem;color:var(--fg4);line-height:1.5}
.site-footer a{color:var(--fg3);transition:color .15s}
.site-footer a:hover{color:var(--pink)}
.footer-brands{margin-bottom:.85rem}
.footer-brands-title{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--fg3);margin-bottom:.4rem}
.footer-brands-links a,.footer-brands a{display:inline-block;margin-right:.65rem;font-size:.65rem;color:var(--fg3);font-weight:400;transition:color .15s}
.footer-brands-links a:hover,.footer-brands a:hover{color:var(--fg)}
.footer-cross-links{margin-bottom:1rem}
.footer-cross-title{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--fg3);margin-bottom:.3rem}
.footer-cross-links-list{font-size:.65rem;color:var(--fg4)}
.footer-cross-links-list a{color:var(--fg3)}
.footer-cross-links-list a:hover{color:var(--pink)}

/* Featured product (brand pages) */
.featured-product{display:grid;grid-template-columns:180px 1fr;gap:1.5rem;align-items:center;padding:1.15rem;border:1px solid var(--border);margin:1.25rem 0}
.featured-product img{width:100%;aspect-ratio:1;object-fit:contain}

/* New arrivals */
.new-arrivals{margin:1.5rem 0}

/* Responsive for site_generator classes */
@media(max-width:768px){
    .site-header .container{flex-wrap:wrap;padding:.5rem 1.25rem}
    .header-nav{order:3;width:100%;justify-content:center;padding-top:.4rem;border-top:1px solid var(--border);margin-left:0}
    .btn-header{margin-left:auto}
    .hero{padding:2rem 0 1.5rem}
    .hero h1{font-size:1.8rem}
    .top-picks-grid{grid-template-columns:1fr}
    .pick-card{border-right:none;border-bottom:1px solid var(--border)}
    .verdict-grid{grid-template-columns:1fr}
    .verdict-card:first-child{border-right:none;border-bottom:1.5px solid var(--border)}
    .ranking-card{grid-template-columns:auto 64px 1fr;gap:.75rem;padding:.85rem 1rem}
    .ranking-actions{grid-column:1/-1;flex-direction:row}
    .stats-box{flex-direction:column;gap:.5rem}
}
@media(max-width:480px){
    .ranking-card{grid-template-columns:auto 1fr}
    .ranking-img{display:none}
    .category-grid{grid-template-columns:1fr 1fr}
    .trust-bar .container{flex-direction:column;gap:.2rem}
}
.footer-brands{margin-bottom:.85rem}
.footer-brands a{display:inline-block;margin-right:.85rem;font-size:.68rem;color:var(--fg3);font-weight:400;transition:color .15s}
.footer-brands a:hover{color:var(--fg)}
.footer-legal p{font-size:.62rem;color:var(--fg4)}
.footer-legal a{color:var(--fg3)}
.footer-legal a:hover{color:var(--pink)}

/* compat classes */
.score-circle{position:relative;display:inline-flex;align-items:center;justify-content:center}
.score-circle svg{transform:rotate(-90deg)}
.score-circle-bg{fill:none;stroke:var(--fg5);stroke-width:3.5}
.score-circle-value{fill:none;stroke-width:3.5;stroke-linecap:round}
.score-circle-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--heading);font-weight:900}
.score-label{display:block;text-align:center;font-size:.58rem;color:var(--fg3);margin-top:.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.score-excellent .score-circle-value{stroke:var(--green)}
.score-good .score-circle-value{stroke:#65a30d}
.score-average .score-circle-value{stroke:#d97706}
.score-poor .score-circle-value{stroke:var(--red)}
.stars{display:inline-flex;gap:1px}
.stars svg{width:14px;height:14px}
.star-filled{color:var(--star)}
.star-empty{color:var(--fg5)}
.rating-badge{font-size:.65rem;font-weight:700;color:var(--pink);background:var(--pink-bg);padding:.08rem .35rem}

.verdict-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:1.25rem 0;border:1.5px solid var(--border)}
.verdict-card{padding:1.15rem}
.verdict-card:first-child{border-right:1.5px solid var(--border)}
.verdict-card h3{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;margin-bottom:.55rem;display:flex;align-items:center;gap:.3rem}
.verdict-pros{background:var(--green-bg)}
.verdict-pros h3{color:var(--green)}
.verdict-cons{background:var(--red-bg)}
.verdict-cons h3{color:var(--red)}
.verdict-list{list-style:none;display:flex;flex-direction:column;gap:.3rem}
.verdict-list li{font-size:.82rem;color:var(--fg2);padding-left:1rem;position:relative;line-height:1.55}
.verdict-pros .verdict-list li::before{content:'+';position:absolute;left:0;color:var(--green);font-weight:800}
.verdict-cons .verdict-list li::before{content:'\2013';position:absolute;left:0;color:var(--red);font-weight:800}

.ranking-list,.product-grid,.category-grid,.top-picks-grid,.index-grid,.criteria-grid,.glass-card,.brand-avatar,.brand-strip,.brand-chip,.pick-card,.product-card,.ranking-card,.index-card,.category-card,.trust-bar,.stats-box,.breadcrumb,.cross-links,.hero,.section,.section-alt,.section-header,.section-header-center,.section-title,.section-subtitle,.section-eyebrow,.hero-badge,.hero-subtitle,.btn-hero,.nav-link,.logo,.logo-mark,.logo-text,.btn-cta{/* reset for generator compat - these render via content_html */}

/* ── RESPONSIVE ── */
@media(max-width:768px){
    .masthead-inner{grid-template-columns:1fr;text-align:center;gap:.4rem}
    .masthead-left,.masthead-right{text-align:center}
    .topnav-inner{flex-wrap:wrap;gap:.6rem .85rem}
    .featured{grid-template-columns:1fr}
    .featured-main{border-right:none;padding-right:0;padding-bottom:2rem;border-bottom:1px solid var(--border)}
    .featured-side{padding-left:0;padding-top:.5rem}
    .editorial-grid{grid-template-columns:1fr}
    .editorial-card{border-right:none;padding:1rem 0;border-bottom:1px solid var(--border)}
    .editorial-card:nth-child(3n),.editorial-card:nth-child(3n-1){padding-left:0}
    .article-header,.article-body{grid-template-columns:1fr}
    .article-toc{position:static;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}
    .bottom-cta{grid-template-columns:1fr;text-align:center}
    .proscons,.verdict-grid{grid-template-columns:1fr}
    .proscons-col:first-child,.verdict-card:first-child{border-right:none;border-bottom:1.5px solid var(--border)}
    .related-grid{grid-template-columns:1fr}
    .related-grid li:nth-child(odd){border-right:none}
    .footer-inner{flex-direction:column;gap:.35rem;text-align:center}
    .page-hero{padding:2rem 0 1.5rem}
    .page-hero h1{font-size:1.65rem}
    .rankings-table .col-hide-mobile{display:none}
}

@media(prefers-reduced-motion:reduce){*{transition-duration:0s!important}}
@media print{.masthead,.topnav,.bottom-cta,.site-footer,.brands-strip,.sidebar-buy,.tbl-btn,.masthead-cta{display:none}body{color:#000;background:#fff}}
