:root{
    --yellow:#F5CD51;
    --yellow-deep:#E4B72F;
    --yellow-soft:#FCF0CE;
    --black:#0A0A0A;
    --black-soft:#1A1A1A;
    --black-elevated:#221F1B;
    --text:#20242A;
    --text-muted:#55606B;
    --text-soft:#6B7480;
    --line:#E4DFD6;
    --line-soft:#EEEAE2;
    --bg-page:#F5F1EC;
    --bg-card:#FFFFFF;
    --focus:#0E63C6;
    --radius-lg:16px;
    --radius-md:12px;
    --radius-sm:8px;
    --shadow-card: 0 1px 2px rgba(10,10,10,.06), 0 6px 20px rgba(10,10,10,.08);
    --shadow-card-hover: 0 2px 4px rgba(10,10,10,.09), 0 14px 32px rgba(10,10,10,.14);
    --maxw:1440px;
    --font-head: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
    --font: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ -webkit-text-size-adjust:100%; }
  body{
    margin:0;
    font-family:var(--font);
    color:var(--text);
    background:var(--bg-page);
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  button{ font-family:inherit; }
  a{ color:inherit; }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  }

  /* ---------- Layout shell ----------
     Ojo: esta clase se llama "catug-shell" (no "page"), a propósito. WordPress
     agrega la clase "page" al <body> de toda página normal (body_class()), así
     que un selector ".page" acá también le pegaba al <body> completo y lo
     dejaba fijo en 1440px de ancho en cualquier pantalla, rompiendo el sitio
     en mobile. */
  .catug-shell{
    width:var(--maxw);
    max-width:var(--maxw);
    margin:0 auto;
    background:var(--bg-page);
    min-height:100vh;
    box-shadow:0 0 60px rgba(10,10,10,.08);
    position:relative;
  }

  /* El tema de WordPress mete el shortcode dentro de un contenedor angosto
     de contenido; esto lo "rompe" para que el catálogo use el ancho
     completo de la pantalla (el contenido interno igual se centra a 1360px
     vía las reglas de --maxw de más arriba). */
  .catug-root.catug-shell{
    width:100vw !important;
    max-width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
  }

  .skip-link{
    position:absolute;
    left:12px;
    top:-60px;
    background:var(--black);
    color:#fff;
    padding:10px 18px;
    border-radius:0 0 8px 8px;
    z-index:1000;
    font-weight:700;
    font-size:14px;
    transition:top .15s ease;
  }
  .skip-link:focus{ top:0; }

  :focus-visible{
    outline:3px solid var(--focus);
    outline-offset:2px;
    border-radius:4px;
  }
  button:focus-visible, a:focus-visible{
    outline:3px solid var(--focus);
    outline-offset:2px;
  }

  /* ---------- Top utility bar ---------- */
  .topbar{
    background:var(--black);
    color:#C9C9C9;
    font-size:13px;
  }
  .topbar-inner{
    max-width:1360px;
    margin:0 auto;
    padding:9px 40px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
  }
  .topbar-contacts{
    display:flex;
    align-items:center;
    gap:22px;
    flex-wrap:wrap;
  }
  .topbar-contacts a{
    color:#DCDCDC;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:7px;
  }
  .topbar-contacts a:hover{ color:var(--yellow); text-decoration:underline; }
  .topbar-contacts svg{ width:14px; height:14px; flex:none; opacity:.85; }
  .topbar-note{
    color:#8C8C8C;
    font-size:12.5px;
    letter-spacing:.02em;
  }

  /* ---------- Header ---------- */
  header.site-header{
    background:#fff;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:0;
    z-index:40;
  }
  .header-inner{
    max-width:1360px;
    margin:0 auto;
    padding:16px 40px;
    display:flex;
    align-items:center;
    gap:28px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    flex:none;
  }
  .brand-logo-img{
    height:40px;
    width:auto;
    display:block;
    flex:none;
  }
  .header-title{
    flex:1 1 auto;
    min-width:0;
  }
  .header-title h1{
    font-size:15px;
    margin:0;
    font-weight:600;
    color:var(--text-soft);
    font-family:var(--font);
  }
  .header-title h1 b{ color:var(--black-soft); font-weight:700; }

  .header-actions{
    display:flex;
    align-items:center;
    gap:12px;
    flex:none;
    margin-left:auto;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-weight:700;
    font-size:14.5px;
    border-radius:999px;
    border:1.5px solid transparent;
    padding:11px 22px;
    cursor:pointer;
    text-decoration:none;
    line-height:1;
    white-space:nowrap;
    min-height:44px;
    font-family:var(--font);
  }
  .btn svg{ width:17px; height:17px; flex:none; }
  .btn-primary{
    background:var(--black);
    color:#fff;
  }
  .btn-primary:hover{ background:var(--black-elevated); }
  .btn-outline{
    background:#fff;
    color:var(--black-soft);
    border-color:var(--line);
  }
  .btn-outline:hover{ border-color:var(--yellow-deep); color:var(--black); background:var(--yellow-soft); }
  .btn-ghost{
    background:transparent;
    color:var(--text-muted);
    padding:11px 8px;
  }
  .btn-ghost:hover{ text-decoration:underline; color:var(--black-soft); }
  .btn-sm{ padding:8px 16px; font-size:13.5px; min-height:36px; }

  /* ---------- Hero ---------- */
  .hero{
    background:
      linear-gradient(100deg, rgba(10,10,10,.90) 0%, rgba(10,10,10,.72) 48%, rgba(34,31,27,.55) 100%),
      url("__HERO_IMG__");
    background-size:cover;
    background-position:center 42%;
    background-repeat:no-repeat;
    color:#fff;
    padding:52px 40px 40px;
  }
  .hero-inner{ max-width:1360px; margin:0 auto; }
  .breadcrumb{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    color:#C9C2B4;
    margin:0 0 18px;
  }
  .breadcrumb a{ color:#C9C2B4; text-decoration:none; }
  .breadcrumb a:hover{ color:#fff; text-decoration:underline; }
  .hero h1{
    font-size:38px;
    margin:0 0 12px;
    font-weight:800;
    letter-spacing:-.01em;
    font-family:var(--font-head);
  }
  .hero-accent{
    width:64px;
    height:4px;
    background:var(--yellow);
    border-radius:2px;
    margin:0 0 18px;
  }
  .hero p{
    font-size:16.5px;
    color:#D8D3C8;
    max-width:640px;
    line-height:1.6;
    margin:0;
  }
  .hero-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:rgba(245,205,81,.14);
    border:1px solid rgba(245,205,81,.4);
    color:var(--yellow);
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:uppercase;
    padding:6px 14px;
    border-radius:999px;
    margin:0 0 16px;
  }

  /* ---------- Filter toolbar ---------- */
  .toolbar-wrap{
    background:#fff;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:73px;
    z-index:30;
  }
  .toolbar{
    max-width:1360px;
    margin:0 auto;
    padding:18px 40px;
  }
  .toolbar-row1{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    margin-bottom:14px;
  }
  .search-field{
    position:relative;
    flex:1 1 280px;
    max-width:360px;
  }
  .search-field svg{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    width:17px;
    height:17px;
    color:var(--text-soft);
    pointer-events:none;
  }
  .search-field input{
    width:100%;
    padding:11px 14px 11px 40px;
    border-radius:999px;
    border:1.5px solid var(--line);
    font-size:14.5px;
    font-family:inherit;
    color:var(--text);
    background:var(--bg-page);
  }
  .search-field input:focus{
    border-color:var(--yellow-deep);
    background:#fff;
  }
  .field-select{
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .field-select label{
    font-size:11.5px;
    font-weight:700;
    color:var(--text-soft);
    text-transform:uppercase;
    letter-spacing:.05em;
    padding-left:2px;
  }
  .field-select select{
    font-family:inherit;
    font-size:14px;
    color:var(--text);
    background:var(--bg-page);
    border:1.5px solid var(--line);
    border-radius:10px;
    padding:9px 34px 9px 12px;
    min-height:40px;
    cursor:pointer;
    appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2355606B'><path d='M5.5 7.5l4.5 4.5 4.5-4.5' stroke='%2355606B' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat:no-repeat;
    background-position:right 10px center;
  }
  .field-select select:focus{ border-color:var(--yellow-deep); }

  .toolbar-reset{
    margin-left:auto;
    align-self:flex-end;
  }

  .chips{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
  }
  .chip{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:9px 16px;
    border-radius:999px;
    border:1.5px solid var(--line);
    background:#fff;
    color:var(--text-muted);
    font-size:14px;
    font-weight:700;
    cursor:pointer;
    min-height:40px;
  }
  .chip .count{
    background:var(--line-soft);
    color:var(--text-soft);
    border-radius:999px;
    padding:1px 8px;
    font-size:12px;
    font-weight:700;
  }
  .chip:hover{ border-color:var(--yellow-deep); color:var(--black-soft); }
  .chip[aria-pressed="true"]{
    background:var(--black);
    border-color:var(--black);
    color:var(--yellow);
  }
  .chip[aria-pressed="true"] .count{ background:rgba(245,205,81,.2); color:var(--yellow); }

  .result-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    max-width:1360px;
    margin:22px auto 16px;
    padding:0 40px;
  }
  .result-count{
    font-size:14.5px;
    color:var(--text-soft);
  }
  .result-count b{ color:var(--black-soft); }
  .sort-field{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13.5px;
    color:var(--text-soft);
  }
  .sort-field select{
    font-family:inherit;
    font-size:13.5px;
    border:1.5px solid var(--line);
    border-radius:8px;
    padding:7px 30px 7px 10px;
    background:#fff;
    appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2355606B'><path d='M5.5 7.5l4.5 4.5 4.5-4.5' stroke='%2355606B' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat:no-repeat;
    background-position:right 8px center;
  }

  /* ---------- Catalog grid ---------- */
  .catalog-section{
    max-width:1360px;
    margin:0 auto;
    padding:0 40px 64px;
  }
  .grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:26px;
  }
  .card{
    text-decoration:none;
    background:var(--bg-card);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    box-shadow:var(--shadow-card);
    text-align:left;
    width:100%;
    padding:0;
    cursor:pointer;
    color:inherit;
  }
  .card:hover{
    box-shadow:var(--shadow-card-hover);
    transform:translateY(-2px);
  }
  .card{ transition:box-shadow .18s ease, transform .18s ease; }
  .card-media{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    background:var(--black);
  }
  .card-media img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .card-badge{
    position:absolute;
    top:12px;
    left:12px;
    background:rgba(10,10,10,.82);
    color:var(--yellow);
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:uppercase;
    padding:5px 11px;
    border-radius:999px;
    backdrop-filter:blur(2px);
  }
  .card-condition{
    position:absolute;
    top:12px;
    right:12px;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.02em;
    padding:5px 11px;
    border-radius:999px;
  }
  .card-condition.nuevo{ background:#E4F5EA; color:#1C7A43; }
  .card-condition.usado{ background:#FDEFD9; color:#93590A; }

  .card-body{
    padding:18px 20px 20px;
    display:flex;
    flex-direction:column;
    gap:12px;
    flex:1;
  }
  .card-eyebrow{
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--text-soft);
  }
  .card-title{
    font-size:18.5px;
    font-weight:700;
    color:var(--black-soft);
    margin:0;
    line-height:1.3;
    font-family:var(--font-head);
  }
  .card-specs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 14px;
    padding:12px 0;
    border-top:1px solid var(--line-soft);
    border-bottom:1px solid var(--line-soft);
  }
  .card-spec{
    display:flex;
    align-items:center;
    gap:7px;
    font-size:13px;
    color:var(--text-muted);
  }
  .card-spec svg{ width:15px; height:15px; flex:none; color:var(--yellow-deep); }
  .card-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:auto;
    gap:10px;
  }
  .card-location{
    font-size:12.5px;
    color:var(--text-soft);
    display:flex;
    align-items:center;
    gap:5px;
  }
  .card-location svg{ width:14px; height:14px; }
  .card-cta{
    font-size:13.5px;
    font-weight:700;
    color:var(--black-soft);
    display:inline-flex;
    align-items:center;
    gap:5px;
  }
  .card-cta svg{ width:15px; height:15px; transition:transform .15s ease; }
  .card:hover .card-cta svg{ transform:translateX(3px); }
  .card:hover .card-cta{ color:var(--yellow-deep); }

  .empty-state{
    grid-column:1/-1;
    text-align:center;
    padding:70px 20px;
    color:var(--text-soft);
  }
  .empty-state svg{ width:52px; height:52px; color:var(--line); margin-bottom:14px; }
  .empty-state h3{ color:var(--black-soft); font-size:19px; margin:0 0 8px; font-family:var(--font-head); }
  .empty-state p{ margin:0 0 18px; font-size:14.5px; }

  /* ---------- Detail view ---------- */
  .detail-topbar{
    max-width:1360px;
    margin:0 auto;
    padding:22px 40px 0;
  }
  .back-link{
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:none;
    border:none;
    color:var(--text-muted);
    font-weight:700;
    font-size:14.5px;
    cursor:pointer;
    padding:8px 4px;
  }
  .back-link svg{ width:17px; height:17px; }
  .back-link:hover{ text-decoration:underline; color:var(--black-soft); }

  .detail-header{
    max-width:1360px;
    margin:14px auto 0;
    padding:0 40px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
  }
  .detail-heading-group{ max-width:720px; }
  .detail-eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:10px;
  }
  .badge{
    display:inline-block;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    padding:5px 12px;
    border-radius:999px;
  }
  .badge-category{ background:var(--black); color:var(--yellow); }
  .badge-condition.nuevo{ background:#E4F5EA; color:#1C7A43; }
  .badge-condition.usado{ background:#FDEFD9; color:#93590A; }
  .detail-heading-group h1,
  .detail-heading-group h2{
    font-size:30px;
    margin:0 0 8px;
    color:var(--black-soft);
    font-weight:800;
    letter-spacing:-.01em;
    font-family:var(--font-head);
  }
  .detail-heading-group p.detail-sub{
    margin:0;
    color:var(--text-muted);
    font-size:15px;
    line-height:1.6;
  }
  .detail-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
  }

  .detail-grid{
    max-width:1360px;
    margin:28px auto 0;
    padding:0 40px;
    display:grid;
    grid-template-columns:1.55fr 1fr;
    gap:36px;
  }

  .gallery-main{
    border-radius:var(--radius-lg);
    overflow:hidden;
    background:var(--black);
    aspect-ratio:16/10;
  }
  .gallery-main img{ width:100%; height:100%; object-fit:cover; }
  .gallery-caption{
    font-size:12.5px;
    color:var(--text-soft);
    margin:10px 2px 0;
    font-style:italic;
  }
  .gallery-thumbs{
    display:grid;
    grid-template-columns:repeat(5, 1fr);
    gap:10px;
    margin-top:12px;
  }
  .gallery-thumb{
    border:2px solid transparent;
    border-radius:10px;
    overflow:hidden;
    padding:0;
    cursor:pointer;
    aspect-ratio:4/3;
    background:var(--black);
  }
  .gallery-thumb img{ width:100%; height:100%; object-fit:cover; opacity:.82; }
  .gallery-thumb:hover img{ opacity:1; }
  .gallery-thumb[aria-current="true"]{ border-color:var(--yellow-deep); }
  .gallery-thumb[aria-current="true"] img{ opacity:1; }

  .summary-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:22px;
    box-shadow:var(--shadow-card);
    position:sticky;
    top:150px;
  }
  .summary-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-bottom:16px;
    margin-bottom:16px;
    border-bottom:1px solid var(--line-soft);
  }
  .summary-price-label{ font-size:12.5px; color:var(--text-soft); text-transform:uppercase; letter-spacing:.04em; }
  .summary-price{ font-size:19px; font-weight:700; color:var(--black-soft); margin-top:2px; font-family:var(--font-head); }
  .quicklist{
    list-style:none;
    margin:0 0 18px;
    padding:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px 10px;
  }
  .quicklist li{
    display:flex;
    align-items:flex-start;
    gap:8px;
    font-size:13px;
    color:var(--text-muted);
  }
  .quicklist svg{ width:17px; height:17px; flex:none; color:var(--yellow-deep); margin-top:1px; }
  .quicklist b{ display:block; color:var(--black-soft); font-size:13.5px; }
  .summary-actions{ display:flex; flex-direction:column; gap:10px; }
  .summary-actions .btn{ width:100%; }
  .summary-note{
    margin-top:16px;
    font-size:12px;
    color:var(--text-soft);
    line-height:1.55;
    display:flex;
    gap:8px;
    background:var(--bg-page);
    padding:12px 13px;
    border-radius:10px;
  }
  .summary-note svg{ width:16px; height:16px; flex:none; color:var(--text-muted); margin-top:1px; }

  .detail-sections{
    max-width:1360px;
    margin:52px auto 0;
    padding:0 40px 70px;
    display:grid;
    grid-template-columns:1.55fr 1fr;
    gap:36px;
  }
  .section-block{ margin-bottom:44px; }
  .section-block h3{
    font-size:20px;
    color:var(--black-soft);
    margin:0 0 4px;
    font-weight:700;
    font-family:var(--font-head);
  }
  .section-block .section-sub{
    font-size:13.5px;
    color:var(--text-soft);
    margin:0 0 18px;
  }

  table.spec-table{
    width:100%;
    border-collapse:collapse;
    font-size:14px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    overflow:hidden;
  }
  table.spec-table caption{
    text-align:left;
    font-size:12.5px;
    color:var(--text-soft);
    padding:4px 2px 10px;
  }
  table.spec-table tr{ border-bottom:1px solid var(--line-soft); }
  table.spec-table tr:last-child{ border-bottom:none; }
  table.spec-table th, table.spec-table td{
    text-align:left;
    padding:12px 16px;
    vertical-align:top;
  }
  table.spec-table th{
    width:44%;
    font-weight:700;
    color:var(--text-muted);
    background:var(--bg-page);
  }
  table.spec-table td{ color:var(--black-soft); font-weight:700; }
  table.spec-table tr:nth-child(odd) td, table.spec-table tr:nth-child(odd) th{ background-color:rgba(245,241,236,.5); }

  .feature-list{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px 18px;
  }
  .feature-list li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-size:14px;
    color:var(--text-muted);
    background:#fff;
    border:1px solid var(--line);
    border-radius:10px;
    padding:12px 14px;
  }
  .feature-list svg{ width:19px; height:19px; flex:none; color:#1C7A43; margin-top:1px; }

  .related-aside{
    background:var(--bg-page-alt,#fff);
  }
  .related-card{
    text-decoration:none;
    display:flex;
    gap:12px;
    align-items:center;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:10px;
    cursor:pointer;
    text-align:left;
    width:100%;
    margin-bottom:12px;
  }
  .related-card:hover{ border-color:var(--yellow-deep); }
  .related-card img{
    width:74px;
    height:60px;
    object-fit:cover;
    border-radius:8px;
    flex:none;
  }
  .related-card .rc-title{ font-size:13.5px; font-weight:700; color:var(--black-soft); line-height:1.3; margin:0 0 3px; }
  .related-card .rc-meta{ font-size:12px; color:var(--text-soft); }

  .full-gallery{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:12px;
  }
  .full-gallery button{
    border:none;
    padding:0;
    border-radius:10px;
    overflow:hidden;
    cursor:pointer;
    aspect-ratio:4/3;
    background:var(--black);
  }
  .full-gallery img{ width:100%; height:100%; object-fit:cover; }

  /* ---------- Footer ---------- */
  footer.site-footer{
    background:var(--black);
    color:#B3B3B3;
  }
  .footer-inner{
    max-width:1360px;
    margin:0 auto;
    padding:40px 40px 28px;
    display:flex;
    justify-content:space-between;
    gap:30px;
    flex-wrap:wrap;
  }
  .footer-brand{ max-width:360px; }
  .footer-logo-img{ height:48px; width:auto; display:block; margin-bottom:14px; }
  .footer-brand p{ font-size:13.5px; line-height:1.6; color:#9A9A9A; margin:0; }
  .footer-brand p.footer-backed{ color:var(--yellow); font-weight:700; font-size:12.5px; text-transform:uppercase; letter-spacing:.04em; margin:0 0 10px; }
  .footer-cols{ display:flex; gap:56px; flex-wrap:wrap; }
  .footer-col h4{
    font-size:12.5px;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#8A8A8A;
    margin:0 0 14px;
  }
  .footer-col a{
    display:block;
    color:#D6D6D6;
    text-decoration:none;
    font-size:14px;
    margin-bottom:10px;
  }
  .footer-col a:hover{ color:var(--yellow); text-decoration:underline; }
  .footer-whatsapp{
    display:flex !important;
    align-items:center;
    gap:8px;
    font-weight:700;
    color:#fff !important;
    background:rgba(37,211,102,.14);
    border:1px solid rgba(37,211,102,.4);
    border-radius:8px;
    padding:8px 12px;
    margin-bottom:12px !important;
    width:fit-content;
  }
  .footer-whatsapp svg{ width:18px; height:18px; flex:none; color:#25D366; }
  .footer-whatsapp:hover{ background:rgba(37,211,102,.24); text-decoration:none !important; }
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,.08);
    padding:18px 40px;
    max-width:1360px;
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    font-size:12.5px;
    color:#666;
  }

  .visually-hidden{
    position:absolute !important;
    width:1px; height:1px;
    padding:0; margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap; border:0;
  }

  [hidden]{ display:none !important; }

  /* ---------- Floating WhatsApp ---------- */
  .wa-float{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:200;
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
  }
  .wa-float-tooltip{
    background:#fff;
    color:var(--black-soft);
    font-size:13.5px;
    font-weight:700;
    line-height:1.4;
    padding:10px 14px;
    border-radius:10px;
    box-shadow:0 6px 20px rgba(10,10,10,.18);
    white-space:nowrap;
  }
  .wa-float-btn{
    width:58px;
    height:58px;
    border-radius:50%;
    background:#25D366;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 6px 18px rgba(10,10,10,.28);
    flex:none;
    animation:wa-pulse 2.6s ease-in-out infinite;
  }
  .wa-float-btn svg{ width:30px; height:30px; color:#fff; }
  .wa-float:hover .wa-float-btn{ background:#20BD5A; }
  @keyframes wa-pulse{
    0%, 100%{ box-shadow:0 6px 18px rgba(10,10,10,.28), 0 0 0 0 rgba(37,211,102,.45); }
    50%{ box-shadow:0 6px 18px rgba(10,10,10,.28), 0 0 0 10px rgba(37,211,102,0); }
  }
  @media (max-width: 720px){
    .wa-float-tooltip{ display:none; }
  }

  /* ---------- Responsive: tablet / mobile ----------
     El diseño original no traía puntos de quiebre; esto arma el
     comportamiento mobile completo (grilla, buscador/filtros, header,
     ficha de producto) manteniendo la misma estructura HTML. */
  @media (max-width: 1000px){
    .grid{ grid-template-columns:repeat(2, 1fr); }
  }

  @media (max-width: 760px){
    .topbar-inner,
    .header-inner,
    .hero,
    .toolbar,
    .result-bar,
    .catalog-section,
    .detail-topbar,
    .detail-header,
    .detail-grid,
    .detail-sections,
    .footer-inner,
    .footer-bottom{
      padding-left:20px;
      padding-right:20px;
    }

    /* Barra superior de contacto: se apila para que teléfono, email y
       dirección no se encimen. */
    .topbar-inner{
      flex-direction:column;
      align-items:flex-start;
      gap:6px;
      padding-top:10px;
      padding-bottom:10px;
    }
    .topbar-contacts{
      flex-direction:column;
      align-items:flex-start;
      gap:6px;
    }

    /* Header: logo arriba, botones de acción ocupando el ancho disponible. */
    .header-inner{
      flex-wrap:wrap;
      gap:14px 16px;
      padding-top:14px;
      padding-bottom:14px;
    }
    .header-actions{
      width:100%;
      margin-left:0;
      flex-wrap:wrap;
    }
    .header-actions .btn{ flex:1 1 auto; }
    .header-actions .header-home-btn{ flex:1 1 100%; order:-1; justify-content:flex-start; padding-left:0; }

    .hero{ padding:30px 20px 26px; }
    .hero h1{ font-size:25px; }
    .hero p{ font-size:14.5px; }

    /* Buscador/filtros: el campo de búsqueda ocupa todo el ancho arriba,
       Condición y Ubicación quedan en una segunda fila de dos columnas,
       y "Limpiar filtros" queda alineado a la derecha debajo. */
    .toolbar-wrap{ position:static; top:auto; }
    .toolbar-row1{ flex-wrap:wrap; }
    .search-field{ flex:1 1 100%; max-width:none; order:1; }
    .field-select{ flex:1 1 0; min-width:140px; order:2; }
    .toolbar-reset{ order:3; margin-left:auto; }

    .result-bar{
      flex-direction:column;
      align-items:flex-start;
      gap:10px;
    }
    .sort-field{ width:100%; }
    .sort-field select{ flex:1; }

    .grid{ grid-template-columns:1fr; gap:18px; }

    /* Ficha de producto: todo en una sola columna, en el mismo orden que
       ya trae el HTML (foto+thumbs, cotización, especificaciones,
       características, galería completa, relacionados). */
    .detail-grid{ grid-template-columns:1fr; gap:24px; }
    .summary-card{ position:static; top:auto; }
    .detail-sections{ grid-template-columns:1fr; gap:8px; margin-top:36px; }
    .related-aside{ margin-top:12px; }
    .detail-heading-group h1,
    .detail-heading-group h2{ font-size:24px; }
    .gallery-thumbs{ grid-template-columns:repeat(4, 1fr); }
    .full-gallery{ grid-template-columns:repeat(2, 1fr); }
    .feature-list{ grid-template-columns:1fr; }

    .footer-inner{ padding-top:32px; padding-bottom:24px; gap:24px; }
    .footer-cols{ gap:32px; }
  }

  @media (max-width: 420px){
    .gallery-thumbs{ grid-template-columns:repeat(3, 1fr); }
    .quicklist{ grid-template-columns:1fr; }
  }
