/* ============================================================================
   ARQUETIPO J · "GRANO" — ritchiecoffeesupply (cafeteras)
   Sistema visual del handoff: crema cálida, tinta café, acento ámbar, botones
   de píldora y rejillas de 1px. Adaptado a nuestras reglas: sin "distribuidor
   oficial", sin taller propio, sin financiación, sin opiniones ni regalos.
   Los bloques se rellenan con datos reales del catálogo.
   ========================================================================== */
:root{
  --bg:#F6F2EB;--surface:#ffffff;--card:#ffffff;--card2:#EFE9DF;
  --text:#171310;--muted:#6E6053;--line:#E2D9CB;
  --r:4px;--r-sm:3px;
  --sh:0 1px 2px rgba(23,19,16,.05);
  --sh-h:0 14px 30px rgba(23,19,16,.10);
  --t:.18s ease;
  --wrap:1360px;
  --font-h:'Archivo',Arial,Helvetica,sans-serif;
  --font-b:'Instrument Sans',system-ui,Arial,Helvetica,sans-serif;
}
:root{--accent:#a16207;--accent-2:#a16207;--accent-d:#7d4c05;--brand:#a16207;--brand-d:#7d4c05;
      --accent-dim:rgba(161,98,7,.10)}

body{background:var(--bg);color:var(--text);font-family:var(--font-b);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-h);font-weight:700;letter-spacing:-.025em;text-transform:none}
.rail{display:none}
.nav{display:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}

/* ---------- topbar ---------- */
.topbar{background:var(--text);color:#CFC2B0;border:0;font-size:12px;font-weight:500}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:10px 32px}
.topbar a{color:#CFC2B0}
.topbar a:hover{color:#fff}
.topbar .gp{display:flex;gap:26px;flex-wrap:wrap}
.topbar b{color:#F6F2EB;font-weight:600}

/* ---------- cabecera ---------- */
.header{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.gr-head{max-width:var(--wrap);margin:0 auto;padding:18px 32px;display:flex;align-items:center;gap:28px}
.gr-logo img{height:38px;width:auto;display:block}
.header .hsearch{flex:1;max-width:480px;display:flex;align-items:center;gap:10px;background:#fff;
                 border:1px solid var(--line);border-radius:99px;padding:11px 18px}
.header .hsearch input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:14px;color:var(--text)}
.header .hsearch button{border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
.header .hsearch button:hover{color:var(--accent)}
.gr-nav{display:flex;gap:22px;font-size:14px;font-weight:500}
.gr-nav a{color:var(--text)}
.gr-nav a:hover,.gr-nav a.on{color:var(--accent)}
.gr-acc{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap}
.gr-acc:hover{color:var(--accent)}
.gr-cesta{display:inline-flex;align-items:center;gap:8px;background:var(--text);color:var(--bg);
          border-radius:99px;padding:11px 18px;font-size:13px;font-weight:600;white-space:nowrap}
.gr-cesta:hover{background:var(--accent);color:#fff}
.gr-cesta i{font-style:normal}
.burger{display:none}

/* ---------- secciones ---------- */
.gr-sec{max-width:var(--wrap);margin:0 auto;padding:66px 32px 0}
.gr-h{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:26px}
.gr-kick{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
         display:block;margin-bottom:12px}
.gr-h h2{margin:0;font-size:clamp(27px,3.4vw,40px);line-height:1.05;font-weight:700}
.gr-h .lnk{font-size:14px;font-weight:600;color:var(--accent)}
.gr-h .note{font-size:14px;color:var(--muted)}

/* ---------- hero ---------- */
.gr-hero{background:var(--text);color:var(--bg);overflow:hidden}
.gr-hero-in{max-width:var(--wrap);margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1.05fr 1fr;
            gap:52px;align-items:center;min-height:520px}
.gr-hero-t{padding:64px 0}
.gr-badge{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--accent);color:#E4B25F;
          border-radius:99px;padding:7px 14px;font-size:11px;font-weight:600;letter-spacing:.12em;
          text-transform:uppercase;margin-bottom:26px}
.gr-hero-t h1{font-size:clamp(34px,5vw,62px);line-height:.99;margin:0 0 18px;color:#fff;font-weight:800}
.gr-hero-t p{font-size:17px;line-height:1.6;color:#B4A797;max-width:52ch;margin:0 0 28px}
.gr-price{display:flex;align-items:baseline;gap:14px;margin-bottom:26px}
.gr-price b{font-family:var(--font-h);font-weight:800;font-size:42px;color:#fff;letter-spacing:-.02em}
.gr-price .old{font-size:19px;color:#8B7E6E;text-decoration:line-through}
.gr-cta{display:flex;gap:12px;flex-wrap:wrap}
.gr-btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:99px;
        padding:16px 32px;font-size:15px;font-weight:600;cursor:pointer;font-family:var(--font-b)}
.gr-btn:hover{background:#c07a12;color:#fff}
.gr-btn-g{display:inline-block;background:transparent;color:var(--bg);border:1px solid #43392F;
          border-radius:99px;padding:16px 28px;font-size:15px;font-weight:600}
.gr-btn-g:hover{border-color:var(--bg);color:#fff}
.gr-hero-meta{display:flex;gap:26px;flex-wrap:wrap;margin-top:32px;font-size:12px;color:#8B7E6E}
.gr-hero-meta b{display:block;color:#F6F2EB;font-family:var(--font-h);font-size:16px;font-weight:700;margin-bottom:3px}
.gr-hero-ph{min-height:520px;background:#221C16;display:grid;place-items:center;padding:28px}
.gr-hero-ph img{max-width:100%;max-height:440px;object-fit:contain}

/* ---------- cifras del catálogo ---------- */
.gr-facts{background:#fff;border-bottom:1px solid var(--line)}
.gr-facts-in{max-width:var(--wrap);margin:0 auto;padding:34px 32px;display:grid;
             grid-template-columns:repeat(4,1fr);gap:1px;background:var(--card2)}
.gr-facts-in div{background:#fff;padding:2px 24px}
.gr-facts-in b{display:block;font-family:var(--font-h);font-weight:700;font-size:22px;margin-bottom:6px}
.gr-facts-in span{font-size:13px;line-height:1.5;color:var(--muted)}

/* ---------- tipos ---------- */
.gr-types{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.gr-type{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.gr-type:hover{border-color:var(--text)}
.gr-type-ph{aspect-ratio:4/3;background:var(--card2);border-bottom:1px solid var(--line);display:grid;place-items:center;padding:16px}
.gr-type-ph img{max-width:100%;max-height:100%;object-fit:contain}
.gr-type-b{padding:20px;display:flex;flex-direction:column;flex:1}
.gr-type-b h3{font-size:19px;margin:0 0 8px;font-weight:700}
.gr-type-b p{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 14px;min-height:58px}
.gr-type-f{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
           font-size:12px;font-weight:500;color:#8A7C6B;border-top:1px solid #EDE5D8;padding-top:14px}
.gr-type-f b{color:var(--text);font-weight:600}

/* ---------- fichas ---------- */
.gr-rail{display:flex;gap:20px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x mandatory}
.gr-rail>*{flex:0 0 300px;scroll-snap-align:start}
.gr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.gr-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
         display:flex;flex-direction:column;transition:border-color var(--t),box-shadow var(--t)}
.gr-card:hover{border-color:var(--text);box-shadow:var(--sh-h)}
.gr-card-ph{position:relative;display:block;aspect-ratio:1/1;background:var(--card2)}
.gr-card-ph img{width:100%;height:100%;object-fit:contain;padding:18px}
.gr-card-ph .bdg{position:absolute;top:14px;left:14px;background:var(--accent);color:#fff;font-size:11px;
                 font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:3px}
.gr-card-ph .bdg.dark{background:var(--text);color:var(--bg)}
.gr-card-b{padding:18px;display:flex;flex-direction:column;gap:10px;flex:1;border-top:1px solid #EDE5D8}
.gr-card-br{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#A0927F}
.gr-card-b h3{margin:0;font-size:16px;line-height:1.3;font-weight:600;min-height:42px}
.gr-card-b h3 a{color:var(--text)}
.gr-card-b h3 a:hover{color:var(--accent)}
.gr-card-sp{font-size:12px;line-height:1.5;color:var(--muted);min-height:18px}
.gr-card-f{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px}
.gr-card-f .pr{font-family:var(--font-h);font-weight:700;font-size:21px}
.gr-card-f .old{font-size:13px;color:#A0927F;text-decoration:line-through;margin-left:6px;font-family:var(--font-b);font-weight:400}
.gr-card-f button{border:1px solid var(--text);background:var(--text);color:var(--bg);border-radius:99px;
                  padding:11px 18px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font-b)}
.gr-card-f button:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.gr-card-f .sin{font-size:12px;font-weight:600;color:var(--muted)}

/* ---------- dúo: guía + foto ---------- */
.gr-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.gr-panel{background:#2C2119;color:var(--bg);border-radius:var(--r);padding:42px;display:flex;
          flex-direction:column;justify-content:space-between;min-height:340px}
.gr-panel h3{font-size:clamp(24px,2.6vw,32px);line-height:1.08;margin:0 0 14px;color:#fff;font-weight:700}
.gr-panel p{font-size:15px;line-height:1.6;color:#B4A797;margin:0;max-width:46ch}
.gr-panel .gr-kick{color:#E4B25F}
.gr-bars{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0}
.gr-bars span{border:1px solid #43392F;border-radius:99px;padding:8px 14px;font-size:13px;color:#E9DFD1}
.gr-bars span i{font-style:normal;color:#8B7E6E;margin-left:6px}
.gr-panel .gr-btn{align-self:flex-start;margin-top:26px}
.gr-duo-ph{background:var(--card2);border:1px solid var(--line);border-radius:var(--r);
           display:grid;place-items:center;padding:26px;min-height:340px}
.gr-duo-ph img{max-width:100%;max-height:320px;object-fit:contain}

/* ---------- marcas ---------- */
.gr-brands{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);
           border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.gr-brand{background:#fff;padding:26px 18px;display:flex;flex-direction:column;align-items:center;gap:8px}
.gr-brand:hover{background:var(--text)}
.gr-brand b{font-family:var(--font-h);font-weight:700;font-size:18px;color:var(--text)}
.gr-brand span{font-size:11px;font-weight:500;color:#A0927F}
.gr-brand:hover b,.gr-brand:hover span{color:var(--bg)}

/* ---------- comparativa ---------- */
.gr-cmp{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow-x:auto}
.gr-cmp-in{min-width:860px}
.gr-cmp-head{display:grid;grid-template-columns:200px repeat(var(--cols,4),1fr)}
.gr-cmp-head>.lb{padding:22px 24px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);
                 font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#A0927F;
                 display:flex;align-items:flex-end}
.gr-cmp-col{padding:22px 24px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.gr-cmp-col .ph{aspect-ratio:3/2;background:var(--card2);margin-bottom:14px;display:grid;place-items:center;padding:10px}
.gr-cmp-col .ph img{max-width:100%;max-height:100%;object-fit:contain}
.gr-cmp-col .mk{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#A0927F;margin-bottom:6px}
.gr-cmp-col .nm{font-family:var(--font-h);font-weight:700;font-size:16px;line-height:1.2;color:var(--text);display:block}
.gr-cmp-col .pr{font-family:var(--font-h);font-weight:700;font-size:18px;color:var(--accent);margin-top:8px;display:block}
.gr-cmp-row{display:grid;grid-template-columns:200px repeat(var(--cols,4),1fr);border-bottom:1px solid #EDE5D8}
.gr-cmp-row .lb{padding:16px 24px;border-right:1px solid var(--line);font-size:13px;font-weight:600;background:#FBF8F3}
.gr-cmp-row .vl{padding:16px 24px;border-right:1px solid #EDE5D8;font-size:13px;line-height:1.4;color:#3C332B}

/* ---------- condiciones ---------- */
.gr-terms{max-width:var(--wrap);margin:56px auto 0;padding:0 32px}
.gr-terms-in{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
             border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.gr-terms-in div{background:#fff;padding:22px}
.gr-terms-in b{display:block;font-family:var(--font-h);font-weight:700;font-size:15px;margin-bottom:6px}
.gr-terms-in span{font-size:13px;line-height:1.5;color:var(--muted)}

/* ---------- páginas internas ---------- */
.btn,.btn-primary{border-radius:99px}
.btn-primary{background:var(--text);border-color:var(--text);color:var(--bg)}
.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.card .price b{font-family:var(--font-h);font-weight:700}
.card .badge{background:var(--accent);color:#fff;border-radius:3px}
.toolbar{padding:14px 18px;margin-bottom:16px;border-radius:var(--r)}
@media(max-width:880px){.toolbar{padding:12px 14px}}
.card .cadd,.card .btn-card-link{border-radius:99px}
.card .cadd{transition:background var(--t),color var(--t)}
.card .cadd:hover{background:var(--accent);color:#fff;text-decoration:none}
.card .btn-card-link:hover,.card .btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none}
.header svg,.topbar svg{width:18px;height:18px;flex:none;display:inline-block;vertical-align:middle}
.footer{background:var(--text);color:#B4A797}
.footer h4{color:#fff;font-family:var(--font-h)}
.footer a,.footer small,.footer p{color:#B4A797}
.footer a:hover{color:#fff}
/* el logo tiene su propia versión clara (logo-light.svg): invertir todo el
   SVG con un filtro dejaba el icono como un cuadrado blanco */
.footer .flogo img{filter:none}

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .gr-head{gap:18px}
  .gr-nav{gap:16px;font-size:13.5px}
  .gr-types,.gr-grid{grid-template-columns:repeat(3,1fr)}
  .gr-brands{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:1000px){
  .gr-hero-in{grid-template-columns:1fr;gap:0;min-height:0}
  .gr-hero-t{padding:36px 0}
  .gr-hero-ph{min-height:0;order:-1;padding:18px}
  .gr-hero-ph img{max-height:280px}
  .gr-facts-in{grid-template-columns:repeat(2,1fr);gap:16px;background:transparent}
  .gr-facts-in div{padding:0}
  .gr-duo{grid-template-columns:1fr}
  .gr-terms-in{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .wrap,.gr-head,.gr-sec,.gr-hero-in,.gr-facts-in,.gr-terms{padding-left:16px;padding-right:16px}
  .gr-head{flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}
  .gr-nav{order:4;flex-basis:100%;gap:16px;overflow-x:auto;white-space:nowrap;padding-bottom:2px}
  .header .hsearch{order:3;flex-basis:100%;max-width:none}
  .gr-acc{display:none}
  .gr-types,.gr-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .gr-brands{grid-template-columns:repeat(2,1fr)}
  .gr-panel{padding:26px 20px}
  .gr-sec{padding-top:44px}
  .topbar .gp{gap:14px}
  .topbar .gp span:nth-child(3){display:none}
}


/* ============================================================================
   BANDA DE MODELO DESTACADO — foto de ambiente propia + ficha real del catálogo.
   Usa los tokens del tema, así que hereda color, radio y tipografías.
   ========================================================================== */
/* fondo propio: en temas oscuros var(--text) es claro y el panel quedaba
   blanco sobre blanco */
.mdl-band{display:grid;grid-template-columns:1.05fr .95fr;margin:32px 0;border:1px solid var(--line);
          border-radius:var(--r,0);overflow:hidden;background:#14181d;color:#fff}
.mdl-ph{position:relative;margin:0;min-height:330px;background:var(--card2,#eee)}
.mdl-ph>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mdl-chip{position:absolute;left:20px;bottom:20px;width:132px;height:132px;background:#fff;
          border-radius:calc(var(--r,0) + 4px);display:grid;place-items:center;padding:11px;
          box-shadow:0 10px 26px rgba(0,0,0,.30)}
.mdl-chip img{max-width:100%;max-height:100%;object-fit:contain}
.mdl-tx{padding:34px 34px 32px;display:flex;flex-direction:column;justify-content:center}
.mdl-eye{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.mdl-tx h2{color:#fff;font-family:var(--font-h,inherit);font-size:clamp(20px,2.2vw,28px);line-height:1.18;margin:10px 0 18px}
.mdl-specs{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:0 0 20px;
           background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);
           border-radius:calc(var(--r,0) + 2px);overflow:hidden}
.mdl-specs div{background:#14181d;padding:11px 14px}
.mdl-specs dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.mdl-specs dd{margin:4px 0 0;font-family:var(--font-h,inherit);font-size:15px;color:#fff}
.mdl-buy{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mdl-buy b{font-family:var(--font-h,inherit);font-size:28px;color:#fff}
.mdl-buy form{display:inline-flex}
.mdl-buy .mdl-link{border:1px solid rgba(255,255,255,.4);color:#fff;background:transparent}
.mdl-buy .mdl-link:hover{background:rgba(255,255,255,.12);color:#fff}
@media(max-width:900px){
  .mdl-band{grid-template-columns:1fr}
  .mdl-ph{min-height:200px}
  .mdl-tx{padding:22px 20px}
  .mdl-chip{width:96px;height:96px;left:14px;bottom:14px}
  .mdl-specs{grid-template-columns:1fr 1fr}
}


/* --- canon-buscador --- */
/* La lupa hace de botón de envío: el botón de texto «Buscar» apretaba la cabecera. */
body .hsearch button.hs-go{background:none;border:0;margin:0;padding:0;flex:none;
  width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;
  color:inherit;cursor:pointer;box-shadow:none;font-size:0;border-radius:0}
body .hsearch button.hs-go:hover{background:none;color:var(--accent);opacity:.8}
body .hsearch button.hs-go svg{width:18px;height:18px}


/* --- menu en su propia barra --- */
body .gr-navbar{border-top:1px solid var(--line)}
body .gr-navbar>.wrap{display:flex;align-items:center;gap:26px;min-height:48px;padding:0 24px}
body .gr-nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
body .gr-head{flex-wrap:nowrap;gap:20px}
body .hsearch{flex:1 1 260px;min-width:220px}
@media(max-width:760px){
  body .gr-head{flex-wrap:wrap}
  body .gr-navbar>.wrap{padding:0 16px;min-height:44px;gap:16px}
  body .gr-nav{gap:16px;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}
}

/* la busqueda esta limitada a 480px: sin el menu en la fila, cuenta y cesta se
   quedaban en el centro y la mitad derecha de la cabecera vacia. */
body .gr-acc{margin-left:auto}
@media(max-width:760px){body .gr-acc{margin-left:0}}


/* --- iconos en cuenta y cesta --- */
body .gr-acc{display:inline-flex;align-items:center;gap:8px}
body .gr-acc svg,body .gr-cesta svg{flex:none;width:18px;height:18px}


/* --- reparto del espacio en la cabecera --- */
/* la busqueda estaba topada en 480px: al sacar el menu de la fila quedaba un
   hueco muerto de 400px antes de cuenta y cesta. */
body .header .hsearch{max-width:none;flex:1 1 auto}
body .gr-head{padding-top:14px;padding-bottom:14px;gap:24px}
/* el menu alineado a la izquierda dejaba media barra vacia: centrado */
body .gr-navbar>.wrap{justify-content:center;min-height:44px}
@media(max-width:760px){
  body .gr-navbar>.wrap{justify-content:flex-start}
  body .header .hsearch{flex-basis:100%}
}


/* --- descriptor bajo el logo --- */
body .gr-logo{display:inline-flex;flex-direction:column;align-items:flex-start;gap:5px;line-height:1.1}
body .gr-logo-sub{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted,#8b8b8b);white-space:nowrap}
@media(max-width:760px){body .gr-logo-sub{display:none}}
