@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400..700;1,6..72,400..600&display=swap");
/* =============================================================
   1. Tokens
   ============================================================= */
:root{
  --ink:#12161c; --ink-2:#39424f; --ink-3:#6b7686;
  --bg:#f7f6f3; --card:#ffffff; --line:#e4e2dc;
  --accent:#0d6e63; --accent-2:#0a5750; --accent-soft:#e3f1ef;
  --gold:#b4790f; --gold-soft:#fbf1de;
  --buy:#f0932b; --buy-2:#d97f18;
  --good:#137a52; --bad:#a3342b;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(1rem,4vw,2.5rem);
  --maxw:1200px;
  --r:14px; --r-s:9px;
  --sh:0 1px 2px rgba(18,22,28,.05),0 8px 24px -12px rgba(18,22,28,.14);
  --sh-h:0 2px 6px rgba(18,22,28,.07),0 18px 40px -16px rgba(18,22,28,.22);
}
/* =============================================================
   2. Reset & base
   ============================================================= */
*,*::before,*::after{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;tab-size:2;scroll-behavior:smooth}
body{font-family:var(--sans);font-size:16px;line-height:1.62;color:var(--ink);
  background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;overscroll-behavior-y:none}
img,svg,video{display:block;max-width:100%}
img{height:auto}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
a{color:inherit;text-decoration:none}
p{text-wrap:pretty}
h1,h2,h3,h4{text-wrap:balance;line-height:1.08;letter-spacing:-.02em;font-family:var(--serif);font-weight:600}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
/* =============================================================
   3. Utilities
   ============================================================= */
.wrap{width:min(100% - var(--gutter)*2,var(--maxw));margin-inline:auto}
.wrap-n{width:min(100% - var(--gutter)*2,860px);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-100px;left:1rem;padding:.6rem 1rem;background:var(--ink);color:#fff;z-index:9999;border-radius:8px;font-weight:600}
.skip-link:focus{top:1rem}
.eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.muted{color:var(--ink-3)}
.center{text-align:center}
/* =============================================================
   4. Header / nav
   ============================================================= */
.site-head{position:sticky;top:0;z-index:60;background:rgba(247,246,243,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.site-head__in{display:flex;align-items:center;gap:1.25rem;padding:.85rem 0}
.brand{display:flex;align-items:center;gap:.55rem;font-family:var(--serif);font-weight:600;font-size:1.12rem;letter-spacing:-.02em}
.brand__mark{width:26px;height:26px;border-radius:7px;background:var(--accent);display:grid;place-items:center;color:#fff;font-size:.8rem;font-family:var(--mono)}
.nav{display:none;gap:1.35rem;margin-left:auto;font-size:.9rem;font-weight:500}
.nav a{color:var(--ink-2);transition:color .2s var(--ease-out)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--accent)}
.nav-toggle{margin-left:auto;display:grid;gap:4px;padding:.5rem}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px}
.nav.is-open{display:flex;position:absolute;inset:100% 0 auto 0;flex-direction:column;background:var(--card);padding:1rem var(--gutter) 1.4rem;border-bottom:1px solid var(--line);gap:.9rem}
@media(min-width:960px){.nav{display:flex}.nav-toggle{display:none}}
/* =============================================================
   5. Buttons
   ============================================================= */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.72rem 1.15rem;border-radius:var(--r-s);font-weight:600;font-size:.92rem;transition:transform .2s var(--ease-out),background .2s var(--ease-out),box-shadow .2s var(--ease-out)}
.btn:hover{transform:translateY(-1px)}
.btn--buy{background:var(--buy);color:#241703;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.btn--buy:hover{background:var(--buy-2)}
.btn--ghost{border:1px solid var(--line);background:var(--card);color:var(--ink-2)}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn--solid{background:var(--accent);color:#fff}
.btn--solid:hover{background:var(--accent-2)}
.btn--wide{width:100%}
/* =============================================================
   6. Hero
   ============================================================= */
.hero{padding:clamp(2.6rem,7vw,5rem) 0 clamp(2rem,5vw,3.2rem)}
.hero h1{font-size:clamp(2.05rem,5.6vw,3.65rem)}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero__lead{margin-top:1.05rem;font-size:clamp(1rem,2.1vw,1.16rem);color:var(--ink-2);max-width:60ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:2.4rem}
@media(min-width:720px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--card);padding:1.05rem 1.15rem}
.stat b{display:block;font-family:var(--serif);font-size:1.5rem;letter-spacing:-.02em}
.stat span{font-size:.78rem;color:var(--ink-3)}
/* =============================================================
   7. Sections / cards
   ============================================================= */
.sec{padding:clamp(2.2rem,5vw,3.6rem) 0}
.sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.sec__head h2{font-size:clamp(1.5rem,3.4vw,2.15rem)}
.grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}
.card:hover{box-shadow:var(--sh-h);transform:translateY(-2px)}
.card__media{aspect-ratio:1/1;background:#fff;display:grid;place-items:center;padding:1.1rem;border-bottom:1px solid var(--line)}
.card__media img{max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.card__body{padding:.95rem 1.05rem 1.1rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.card__brand{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.card__name{font-family:var(--sans);font-weight:650;font-size:1rem;line-height:1.3;letter-spacing:-.01em}
.card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding-top:.6rem}
.price{font-family:var(--serif);font-size:1.28rem;font-weight:600;letter-spacing:-.02em}
.price s{font-size:.8rem;color:var(--ink-3);font-family:var(--sans);font-weight:400;margin-left:.35rem}
.nota{display:inline-flex;align-items:baseline;gap:.18rem;background:var(--accent-soft);color:var(--accent-2);border-radius:99px;padding:.2rem .55rem;font-weight:700;font-size:.86rem;font-family:var(--mono)}
.nota small{font-weight:500;opacity:.7;font-size:.7rem}
.tagline{font-size:.83rem;color:var(--ink-3);line-height:1.45}
.badge{display:inline-block;font-family:var(--mono);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .5rem;border-radius:5px;background:var(--gold-soft);color:var(--gold);font-weight:600}
.badge--off{background:#fdecea;color:var(--bad)}
.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{font-size:.74rem;padding:.3rem .6rem;border:1px solid var(--line);border-radius:99px;background:var(--card);color:var(--ink-2);transition:.2s var(--ease-out)}
.chip:hover,.chip[aria-current="page"]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
/* =============================================================
   8. Ficha
   ============================================================= */
.ficha{display:grid;gap:1.8rem;padding-top:1.6rem}
@media(min-width:960px){.ficha{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:2.6rem;align-items:start}}
.gallery{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;position:sticky;top:86px}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:contain;mix-blend-mode:multiply}
.ficha__title{font-size:clamp(1.6rem,3.6vw,2.35rem);margin:.35rem 0 .5rem}
.buybox{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;margin:1.1rem 0;display:flex;flex-direction:column;gap:.7rem}
.buybox__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.price--xl{font-size:1.9rem}
.pricenote{font-size:.75rem;color:var(--ink-3)}
.specs{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.specs th,.specs td{padding:.62rem .85rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.specs tr:last-child th,.specs tr:last-child td{border-bottom:0}
.specs th{font-weight:500;color:var(--ink-3);width:52%;font-size:.85rem}
.specs td{font-weight:600;font-variant-numeric:tabular-nums}
.specs td.na{color:var(--ink-3);font-weight:400}
.specs caption{text-align:left;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:0 0 .55rem}
.pc{display:grid;gap:1rem;margin:1.2rem 0}
@media(min-width:640px){.pc{grid-template-columns:1fr 1fr}}
.pc__col{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem}
.pc__col h3{font-family:var(--sans);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem}
.pc__col ul{list-style:none;display:grid;gap:.5rem;font-size:.9rem}
.pc__col li{padding-left:1.35rem;position:relative;color:var(--ink-2)}
.pc__col li::before{position:absolute;left:0;top:-.05em;font-weight:700}
.pc--pro li::before{content:"+";color:var(--good)}
.pc--con li::before{content:"–";color:var(--bad)}
.callout{border-left:3px solid var(--accent);background:var(--accent-soft);padding:.85rem 1.1rem;border-radius:0 var(--r-s) var(--r-s) 0;margin:1.2rem 0}
.callout b{display:block;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin-bottom:.2rem;font-family:var(--mono)}
.prose p{margin-bottom:.9rem;color:var(--ink-2)}
.prose h2{font-size:1.35rem;margin:1.8rem 0 .7rem}
.prose h3{font-size:1.1rem;margin:1.4rem 0 .5rem;font-family:var(--sans);font-weight:650}
.prose ul,.prose ol{margin:0 0 1rem 1.15rem;color:var(--ink-2)}
.prose li{margin-bottom:.35rem}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
/* radar */
.radar{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;display:grid;gap:1.4rem}
@media(min-width:900px){.radar{grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);align-items:center}}
.radar svg{width:100%;max-width:520px;height:auto;margin-inline:auto}
.radar__legend{display:flex;flex-wrap:wrap;gap:.5rem .9rem;font-size:.78rem;margin-top:.7rem;color:var(--ink-2)}
.radar__legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:.35rem}
/* panel "en cristiano" junto al gráfico */
.plain{border:1px solid var(--line);border-radius:var(--r-s);padding:.95rem 1.05rem;background:var(--bg)}
.plain h3{font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.75rem}
.plain ul{list-style:none;display:grid;gap:.62rem}
.plain li{font-size:.9rem;line-height:1.4;padding-bottom:.62rem;border-bottom:1px dashed var(--line)}
.plain li:last-child{border-bottom:0;padding-bottom:0}
.plain b{font-weight:650;display:block}
.plain em{font-style:normal;color:var(--ink-3);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;display:block;margin-bottom:.12rem}
.plain small{color:var(--ink-3);font-size:.82rem}
.plain .none{color:var(--ink-3);font-size:.84rem}
/* =============================================================
   9. Comparador
   ============================================================= */
.cmp-picker{display:grid;gap:.8rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;margin-bottom:1.4rem}
.cmp-search{width:100%;padding:.7rem .9rem;border:1px solid var(--line);border-radius:var(--r-s);font:inherit;background:var(--bg)}
.cmp-results{display:grid;gap:.35rem;max-height:250px;overflow:auto}
.cmp-opt{display:flex;align-items:center;gap:.7rem;padding:.45rem .5rem;border-radius:var(--r-s);text-align:left;width:100%}
.cmp-opt:hover{background:var(--accent-soft)}
.cmp-opt img{width:34px;height:34px;object-fit:contain}
.cmp-opt span{font-size:.88rem}
.cmp-opt b{margin-left:auto;font-size:.85rem;white-space:nowrap}
.selected{display:flex;flex-wrap:wrap;gap:.45rem}
.pill{display:inline-flex;align-items:center;gap:.45rem;background:var(--accent-soft);color:var(--accent-2);border-radius:99px;padding:.3rem .5rem .3rem .75rem;font-size:.83rem;font-weight:600}
.pill button{font-size:1rem;line-height:1;opacity:.6}
.pill button:hover{opacity:1}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.cmp-table{border-collapse:collapse;width:100%;min-width:640px;font-size:.88rem}
.cmp-table th,.cmp-table td{padding:.7rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.cmp-table thead th{position:sticky;top:0;background:var(--card);z-index:2;border-bottom:2px solid var(--line)}
.cmp-table tbody th{font-weight:500;color:var(--ink-3);white-space:nowrap}
.cmp-table td{font-variant-numeric:tabular-nums;font-weight:600}
.cmp-table td.na{color:var(--ink-3);font-weight:400}
.cmp-table td.best{background:var(--accent-soft);color:var(--accent-2)}
.cmp-table td.best::after{content:" ★";font-size:.7em;opacity:.75}
.cmp-head{display:grid;gap:.4rem;justify-items:start;min-width:150px}
.cmp-head img{width:64px;height:64px;object-fit:contain;mix-blend-mode:multiply}
/* =============================================================
   10. Footer
   ============================================================= */
.disclosure{background:transparent;border-bottom:1px solid var(--line);font-size:.72rem;color:var(--ink-3);padding:.42rem 0;line-height:1.4}
.disclosure strong{font-weight:500;color:var(--ink-2)}
.disclosure .wrap{display:flex;align-items:center;gap:.45rem}
.disclosure .wrap::before{content:"";flex:0 0 auto;width:5px;height:5px;border-radius:50%;background:var(--gold);opacity:.55}
.site-foot{background:var(--ink);color:#c9d0da;padding:2.6rem 0 1.8rem;margin-top:3rem;font-size:.88rem}
.site-foot a{color:#eef1f5}
.site-foot a:hover{color:#fff;text-decoration:underline}
.foot-grid{display:grid;gap:1.6rem;grid-template-columns:1fr}
@media(min-width:720px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr}}
.foot-grid h3{font-family:var(--sans);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#8d97a5;margin-bottom:.65rem}
.foot-grid ul{list-style:none;display:grid;gap:.4rem}
.foot-legal{border-top:1px solid #2a323d;margin-top:1.9rem;padding-top:1.1rem;color:#8d97a5;font-size:.78rem;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;justify-content:space-between}
/* =============================================================
   11. Breadcrumbs / misc
   ============================================================= */
.crumbs{font-size:.8rem;color:var(--ink-3);padding-top:1.1rem}
.crumbs a:hover{color:var(--accent)}
.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1.2rem}
.toolbar select{padding:.5rem .7rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--card);font:inherit;font-size:.86rem}
.vs-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.vs-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem;font-size:.9rem;font-weight:600;transition:.2s var(--ease-out)}
.vs-card:hover{border-color:var(--accent);color:var(--accent)}
.vs-card span{display:block;font-weight:400;font-size:.78rem;color:var(--ink-3);margin-top:.2rem}
/* =============================================================
   12. Reduced motion (solo lo intrusivo)
   ============================================================= */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .card:hover,.btn:hover{transform:none}
}

/* =============================================================
   13. Filtros del catálogo
   ============================================================= */
.filtros{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.05rem 1.15rem;margin:1.4rem 0 1.6rem;display:grid;gap:.85rem}
.filtros__row{display:flex;flex-wrap:wrap;gap:.85rem}
.filtros label{display:grid;gap:.25rem;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:500}
.filtros select{padding:.5rem .7rem;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg);font:inherit;font-size:.9rem;color:var(--ink);text-transform:none;letter-spacing:0;min-width:170px}
.filtros__row--check{align-items:center;gap:.5rem .95rem;padding-top:.35rem;border-top:1px solid var(--line)}
.filtros .check{display:flex;align-items:center;gap:.42rem;font-size:.85rem;text-transform:none;letter-spacing:0;color:var(--ink-2);font-weight:400;cursor:pointer}
.filtros .check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.filtros__count{font-size:.8rem;color:var(--ink-3);margin:0}
.filtros__count strong{color:var(--accent-2);font-weight:650}
