:root{
      --bg:#ffffff; --fg:#0f0f10; --muted:#6b6f76;
      --line:rgba(16,16,18,.10); --soft:rgba(16,16,18,.04);
      --accent:#F5C400; --accent-ink:#111111;
      --shadow:0 18px 55px rgba(0,0,0,.12); --shadow-soft:0 12px 35px rgba(0,0,0,.10);
      --radius:18px; --container:1280px;
      --header-h:92px;
      --ease:cubic-bezier(.2,.8,.2,1);
    }

    *{ box-sizing:border-box; }
    html{ scroll-behavior:smooth; }
    body{
      margin:0;
      font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
      background:var(--bg);
      color:var(--fg);
      letter-spacing:-0.01em;
      -webkit-text-size-adjust:100%;
      text-size-adjust:100%;
      overflow-x:hidden;
    }
    a{ color:inherit; text-decoration:none; }
    button,input,select,textarea{ font:inherit; color:inherit; outline:none; }
    ::selection{ background:rgba(245,196,0,.35); }
    .container{ width:min(var(--container),calc(100% - 40px)); margin:0 auto; }

    header{
      position:sticky; top:0; z-index:50;
      height:var(--header-h);
      background:rgba(255,255,255,.82);
      backdrop-filter:blur(14px);
      border-bottom:1px solid var(--line);
    }
    .header-inner{
      height:100%;
      display:grid;
      grid-template-columns:1fr auto 1fr;
      align-items:center;
      gap:18px;
      min-width:0;
    }
    .brand{ justify-self:start; display:flex; align-items:center; gap:12px; min-width:0; }
    .brand-logo{
      width:clamp(240px,34vw,440px);
      height:66px;
      border-radius:14px;
      background:transparent;
      display:flex; align-items:center; justify-content:flex-start;
      overflow:hidden;
      flex:0 0 auto;
      max-width:100%;
    }
    .brand-logo img{ width:100%; height:100%; object-fit:contain; display:block; }
    .brand-name{
      display:flex; flex-direction:column; line-height:1.05; min-width:0;
      position:relative; top:10px;
    }
    .brand-name strong{ font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .brand-name span{ font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

    nav{
      justify-self:center;
      display:flex; align-items:center; justify-content:center;
      gap:18px; white-space:nowrap;
    }
    .nav-link{
      font-size:13px; color:var(--muted);
      padding:10px 10px; border-radius:12px;
      transition:background .22s var(--ease), color .22s var(--ease), transform .22s var(--ease);
      will-change:transform;
      display:inline-flex; align-items:center; justify-content:center;
    }
    .nav-link:hover{ color:var(--fg); background:var(--soft); transform:translateY(-1px); }

    .actions{ justify-self:end; display:flex; align-items:center; gap:10px; min-width:0; }
    .icon-btn{
      border:1px solid var(--line);
      background:#fff;
      border-radius:14px;
      height:44px;
      padding:0 12px;
      display:flex; align-items:center; gap:10px;
      cursor:pointer;
      transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease);
      min-width:0;
    }
    .icon-btn:hover{ transform:translateY(-1px); box-shadow:0 14px 30px rgba(0,0,0,.08); }
    .icon{ width:18px; height:18px; display:inline-block; }
    .badge{
      min-width:22px; height:22px; padding:0 8px;
      border-radius:999px; background:var(--accent); color:var(--accent-ink);
      font-size:12px; display:grid; place-items:center; font-weight:800;
      flex:0 0 auto;
    }
    .hamburger{ display:none; width:44px; justify-content:center; padding:0; }

    /* Mobile nav */
    .mobile-nav{ position:fixed; inset:0; z-index:80; display:none; }
    .mobile-nav.open{ display:block; }
    .mobile-nav .backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.35); backdrop-filter:blur(6px); animation:fadeIn .18s var(--ease) both; }
    .mobile-nav .panel{
      position:absolute; top:12px; right:12px; left:12px;
      background:#fff; border:1px solid var(--line);
      border-radius:18px; box-shadow:var(--shadow-soft);
      padding:14px; transform-origin:top right; animation:pop .18s var(--ease) both;
    }
    .mobile-nav .panel a{ display:block; padding:12px 12px; border-radius:12px; }
    .mobile-nav .panel a:hover{ background:var(--soft); }
    .mobile-nav .panel .row{ display:flex; justify-content:space-between; align-items:center; padding:0 6px 8px; }
    .mobile-nav .panel .close{ border:1px solid var(--line); background:#fff; border-radius:12px; height:38px; padding:0 12px; cursor:pointer; }

    section{ padding:25px 0; }


    /* Vistas independientes: solo se muestra la sección solicitada */
    body[data-view] main > section{ display:none; }
    body[data-view="quienes"] #quienes,
    body[data-view="envio"] #envio,
    body[data-view="catalogo"] .banner-section,
    body[data-view="catalogo"] #catalogo{ display:block; }
    body[data-view="catalogo"] #catalogo{ padding-top:25px; }
    .hero{ display:none !important; }
    .nav-link.active{ color:var(--fg); background:rgba(245,196,0,.18); border:1px solid rgba(245,196,0,.28); }

    /* Banner */
    .banner-section{ padding:14px 0 0; }
    .banner-shell{
      border:1px solid var(--line);
      border-radius:var(--radius);
      overflow:hidden;
      background:rgba(16,16,18,.03);
      height:clamp(150px, 22vw, 320px);
      position:relative;
    }

    .hero{ padding-top:18px; padding-bottom:34px; }
    .hero-card{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:linear-gradient(180deg, rgba(245,196,0,.16), rgba(245,196,0,0) 55%), #fff;
      padding:34px;
      position:relative;
      overflow:hidden;
      min-height:320px;
      display:flex; flex-direction:column; justify-content:center;
    }
    .hero-card:before{
      content:"";
      position:absolute; inset:-120px -120px auto auto;
      width:360px; height:360px;
      background:radial-gradient(circle at 30% 30%, rgba(245,196,0,.38), rgba(245,196,0,0) 60%);
      transform:rotate(25deg);
      pointer-events:none;
    }
    .kicker{ font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(16,16,18,.65); font-weight:700; }
    h1{ margin:10px 0 10px; font-size:clamp(40px,4.6vw,62px); letter-spacing:-0.05em; line-height:1.02; max-width:40ch; }
    .lead{ margin:14px 0 18px; color:var(--muted); font-size:16px; line-height:1.65; max-width:110ch; }
    .hero-actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:18px; }

    .btn{
      border:1px solid var(--line);
      background:#fff;
      border-radius:999px;
      height:46px;
      padding:0 16px;
      cursor:pointer;
      display:inline-flex; align-items:center; justify-content:center; gap:10px;
      font-weight:700;
      transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease);
      user-select:none; white-space:nowrap;
    }
    .btn:hover{ transform:translateY(-1px); box-shadow:0 14px 30px rgba(0,0,0,.08); }
    .btn-primary{ background:var(--accent); border-color:rgba(0,0,0,.08); color:var(--accent-ink); font-weight:900; }
    .btn-primary:hover{ box-shadow:0 18px 45px rgba(245,196,0,.28); }
    .btn-ghost{ background:#fff; }
    .btn-danger{ background:#fff; border-color:rgba(220,38,38,.25); color:rgba(220,38,38,.95); }

    .btn-mini{
      height:34px;
      padding:0 10px;
      font-size:12px;
      border-radius:999px;
      font-weight:800;
      box-shadow:none;
    }
    .btn-mini:hover{ box-shadow:0 10px 24px rgba(0,0,0,.08); }
    .btn-mini svg{ width:16px; height:16px; }

    .section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:12px; }
    .section-head h2{ margin:0; font-size:22px; letter-spacing:-0.03em; }
    .section-head p{ margin:0; color:var(--muted); font-size:13px; line-height:1.4; max-width:70ch; }

    .info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px; }
    .info-card{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:#fff;
      padding:18px;
      transition:transform .22s var(--ease), box-shadow .22s var(--ease);
    }
    .info-card:hover{ transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,.08); }
    .info-title{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
    .info-icon{
      width:38px; height:38px; border-radius:14px;
      border:1px solid rgba(245,196,0,.35);
      background:rgba(245,196,0,.14);
      display:grid; place-items:center; flex:0 0 auto;
    }
    .info-icon svg{ width:18px; height:18px; }
    .info-card h3{ margin:0; font-size:14px; letter-spacing:-0.02em; }
    .info-card p{ margin:0; color:var(--muted); font-size:13px; line-height:1.6; }

    /* Toolbar */
    .toolbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0 14px; flex-wrap:wrap; }
    .filters{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
    .chip{
      border:1px solid var(--line);
      background:#fff;
      border-radius:999px;
      height:38px;
      padding:0 12px;
      display:inline-flex; align-items:center; gap:8px;
      cursor:pointer;
      font-size:13px; color:var(--muted);
      transition:background .22s var(--ease), color .22s var(--ease), transform .22s var(--ease);
    }
    .chip:hover{ transform:translateY(-1px); }
    .chip.active{ background:rgba(245,196,0,.18); border-color:rgba(245,196,0,.35); color:var(--fg); }

    .search{ position:relative; flex:1 1 260px; max-width:420px; }
    .search input{
      width:100%; height:42px; border-radius:14px; border:1px solid var(--line);
      padding:0 12px 0 36px; background:#fff;
      transition:box-shadow .22s var(--ease), transform .22s var(--ease);
    }
    .search input:focus{ box-shadow:0 18px 45px rgba(0,0,0,.08); transform:translateY(-1px); }
    .search .icon{ position:absolute; left:12px; top:50%; transform:translateY(-50%); opacity:.55; }

    /* Products grid */
    .grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
    .card{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:#fff;
      overflow:hidden;
      display:flex;
      flex-direction:column;
      transition:transform .22s var(--ease), box-shadow .22s var(--ease);
      min-height:430px;
    }
    .card:hover{ transform:translateY(-3px); box-shadow:0 22px 55px rgba(0,0,0,.10); }

    .card-media{
      position:relative;
      aspect-ratio:4 / 3;
      background:rgba(16,16,18,.03);
      border-bottom:1px solid var(--line);
      overflow:hidden;
    }

    /* Carousel */
    .carousel{ position:relative; width:100%; height:100%; touch-action:pan-y; }
    .carousel .track{
      display:flex;
      width:100%;
      height:100%;
      transition:transform .28s var(--ease);
    }
    .carousel .slide{
      min-width:100%;
      height:100%;
      display:grid;
      place-items:center;
      background:rgba(16,16,18,.03);
    }
    .carousel img{ width:100%; height:100%; object-fit:cover; display:block; }

    .car-nav{
      position:absolute;
      inset:auto 10px 10px 10px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      pointer-events:none;
      gap:10px;
    }
    .car-btn{
      pointer-events:auto;
      border:1px solid rgba(16,16,18,.12);
      background:rgba(255,255,255,.88);
      backdrop-filter:blur(10px);
      height:30px;
      width:30px;
      border-radius:999px;
      display:grid;
      place-items:center;
      cursor:pointer;
      transition:transform .18s var(--ease);
    }
    .car-btn:hover{ transform:translateY(-1px); }
    .car-btn svg{ width:16px; height:16px; }

    .car-dots{
      pointer-events:auto;
      display:flex;
      gap:6px;
      justify-content:center;
      align-items:center;
      background:rgba(255,255,255,.78);
      border:1px solid rgba(16,16,18,.10);
      border-radius:999px;
      padding:6px 10px;
      backdrop-filter:blur(10px);
    }
    .dot{
      width:6px; height:6px; border-radius:999px;
      background:rgba(16,16,18,.22);
      cursor:pointer;
      transition:transform .18s var(--ease), background .18s var(--ease);
    }
    .dot.active{ background:rgba(16,16,18,.75); transform:scale(1.15); }

    .pill{
      position:absolute;
      top:12px; left:12px;
      padding:8px 10px;
      border-radius:999px;
      background:rgba(255,255,255,.88);
      border:1px solid var(--line);
      font-size:12px;
      color:var(--muted);
      backdrop-filter:blur(10px);
      display:flex; gap:8px; align-items:center;
      z-index:2;
    }
    .pill .mini-dot{ width:8px; height:8px; border-radius:999px; background:rgba(16,16,18,.35); }
    .pill.low .mini-dot{ background:#f59e0b; }
    .pill.out .mini-dot{ background:#ef4444; }

    .badge-tag{
      position:absolute;
      top:12px; right:12px;
      padding:8px 10px;
      border-radius:999px;
      font-size:12px;
      font-weight:900;
      border:1px solid rgba(16,16,18,.12);
      background:rgba(255,255,255,.90);
      backdrop-filter:blur(10px);
      z-index:2;
    }
    .badge-tag.new{ background:rgba(245,196,0,.92); color:#111; border-color:rgba(0,0,0,.08); }
    .badge-tag.best{ background:rgba(16,16,18,.88); color:#fff; border-color:rgba(255,255,255,.10); }

    .card-body{
      padding:16px;
      display:flex;
      flex-direction:column;
      gap:10px;
      flex:1 1 auto;
      min-width:0;
    }
    .card-title{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .card-title h4{
      margin:0;
      font-size:14px;
      letter-spacing:-0.02em;
      line-height:1.25;
      cursor:pointer;
      min-width:0;
      word-break:break-word;
    }
    .price{ font-weight:900; letter-spacing:-0.02em; font-size:14px; white-space:nowrap; }
    .meta{ display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--muted); font-size:12px; }
    .desc-mini{ color:rgba(16,16,18,.68); font-size:12px; line-height:1.5; }
    .tags{ display:flex; flex-wrap:wrap; gap:6px; }
    .tag{
      border:1px solid rgba(16,16,18,.10);
      background:rgba(16,16,18,.03);
      color:rgba(16,16,18,.70);
      font-size:11px;
      padding:6px 10px;
      border-radius:999px;
      white-space:nowrap;
    }

    .card-actions{
      margin-top:auto;
      display:flex;
      gap:8px;
      align-items:center;
      flex-wrap:wrap;
    }
    .stepper{
      display:flex; align-items:center; gap:6px;
      border:1px solid var(--line);
      border-radius:999px;
      padding:4px 6px;
      height:34px;
      flex:0 0 auto;
    }
    .stepper button{
      width:26px; height:26px;
      border-radius:999px;
      border:none;
      background:rgba(16,16,18,.06);
      cursor:pointer;
      transition:transform .18s var(--ease), background .18s var(--ease);
    }
    .stepper button:hover{ transform:translateY(-1px); background:rgba(16,16,18,.10); }
    .stepper button:disabled{ opacity:.45; cursor:not-allowed; transform:none; }
    .stepper span{ min-width:20px; text-align:center; font-weight:900; font-size:12px; }

    .btn-details{
      flex:1 1 120px;
      border:1px solid rgba(16,16,18,.12);
      background:#fff;
      color:#111;
    }
    .btn-add{
      flex:1 1 120px;
      border:1px solid rgba(0,0,0,.08);
      background:var(--accent);
      color:var(--accent-ink);
      font-weight:900;
    }
    .btn-add:disabled{
      opacity:.55;
      cursor:not-allowed;
      background:rgba(16,16,18,.08);
      border-color:rgba(16,16,18,.08);
      color:rgba(16,16,18,.55);
    }

    /* Modals */
    .modal{ position:fixed; inset:0; z-index:90; display:none; }
    .modal.open{ display:block; }
    .modal .backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.38); backdrop-filter:blur(8px); animation:fadeIn .16s var(--ease) both; }
    .drawer{
      position:absolute; top:12px; right:12px; bottom:12px;
      width:min(460px,calc(100% - 24px));
      background:#fff; border:1px solid var(--line);
      border-radius:22px; box-shadow:var(--shadow);
      overflow:hidden; display:flex; flex-direction:column;
      animation:slideIn .18s var(--ease) both;
    }
    .modal-header{
      padding:16px; border-bottom:1px solid var(--line);
      display:flex; align-items:center; justify-content:space-between; gap:10px;
    }
    .modal-header h3{ margin:0; font-size:14px; letter-spacing:-0.02em; }
    .modal-header .muted{ font-size:12px; color:var(--muted); }
    .close-btn{
      border:1px solid var(--line); background:#fff;
      border-radius:12px; height:38px; padding:0 12px; cursor:pointer;
    }
    .drawer-body{ padding:14px 16px; overflow:auto; flex:1 1 auto; }

    .cart-empty{
      padding:18px; border:1px dashed rgba(16,16,18,.18);
      background:rgba(16,16,18,.03);
      border-radius:18px;
      color:var(--muted);
      font-size:13px; line-height:1.6;
    }
    .cart-item{
      display:grid;
      grid-template-columns:56px 1fr auto;
      gap:12px;
      padding:12px 0;
      border-bottom:1px solid rgba(16,16,18,.08);
      align-items:center;
    }
    .cart-item:last-child{ border-bottom:none; }
    .thumb{
      width:56px; height:56px;
      border-radius:16px; overflow:hidden;
      border:1px solid var(--line);
      background:rgba(16,16,18,.03);
    }
    .thumb img{ width:100%; height:100%; object-fit:cover; }
    .ci-title{ display:flex; flex-direction:column; gap:4px; min-width:0; }
    .ci-title strong{ font-size:13px; letter-spacing:-0.02em; min-width:0; word-break:break-word; }
    .ci-title span{ font-size:12px; color:var(--muted); }
    .ci-actions{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
    .mini-stepper{
      display:flex; align-items:center; gap:8px;
      border:1px solid var(--line);
      border-radius:999px;
      padding:6px 8px;
      height:36px;
    }
    .mini-stepper button{
      width:26px; height:26px;
      border-radius:999px;
      border:none;
      background:rgba(16,16,18,.06);
      cursor:pointer;
    }
    .mini-stepper button:disabled{ opacity:.45; cursor:not-allowed; }
    .mini-stepper span{ min-width:22px; text-align:center; font-weight:900; font-size:12px; }
    .link-danger{ border:none; background:transparent; padding:0; color:rgba(220,38,38,.95); font-size:12px; cursor:pointer; }

    .drawer-footer{
      border-top:1px solid var(--line);
      padding:14px 16px 16px;
      display:flex;
      flex-direction:column;
      gap:10px;
      background:#fff;
    }
    .totals{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
    .totals .label{ color:var(--muted); font-size:12px; }
    .totals .value{ font-weight:900; letter-spacing:-0.02em; }
    .hint{ font-size:12px; color:var(--muted); line-height:1.4; }
    .footer-actions{ display:flex; gap:10px; flex-wrap:wrap; }
    .footer-actions .btn{ flex:1 1 160px; }

    /* Checkout dialog */
    .dialog{
      position:absolute; inset:12px; margin:auto;
      width:min(920px,calc(100% - 24px));
      height:min(88vh,760px);
      background:#fff; border:1px solid var(--line);
      border-radius:22px; box-shadow:var(--shadow);
      overflow:hidden; display:flex; flex-direction:column;
      animation:pop .18s var(--ease) both;
    }
    .dialog-body{ padding:14px 16px; overflow:auto; flex:1 1 auto; }
    .checkout-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .panel{ border:1px solid var(--line); border-radius:18px; background:#fff; padding:14px; }
    .panel h4{ margin:0 0 10px; font-size:13px; letter-spacing:-0.02em; }

    table{ width:100%; border-collapse:collapse; font-size:12px; }
    th,td{ text-align:left; padding:10px 8px; border-bottom:1px solid rgba(16,16,18,.08); vertical-align:top; }
    th{ color:var(--muted); font-weight:700; }
    .t-right{ text-align:right; }
    .t-strong{ font-weight:900; }
    .checkout-total{ display:flex; justify-content:space-between; align-items:center; padding-top:10px; font-size:13px; }
    .checkout-total .value{ font-weight:900; }

    .form{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .field{ display:flex; flex-direction:column; gap:6px; }
    .field.full{ grid-column:1 / -1; }
    .label{ font-size:12px; color:var(--muted); }
    .req{ color:rgba(220,38,38,.95); font-weight:900; margin-left:4px; }
    .control{
      height:42px; border-radius:14px;
      border:1px solid var(--line);
      padding:0 12px; background:#fff;
      transition:transform .22s var(--ease), box-shadow .22s var(--ease);
    }
    textarea.control{ height:96px; padding:10px 12px; resize:vertical; }
    .control:focus{ transform:translateY(-1px); box-shadow:0 18px 45px rgba(0,0,0,.08); }

    .error{
      display:none;
      margin-top:8px;
      border:1px solid rgba(220,38,38,.25);
      background:rgba(220,38,38,.06);
      color:rgba(220,38,38,.95);
      padding:10px 12px;
      border-radius:14px;
      font-size:12px;
      line-height:1.4;
    }
    .error.show{ display:block; }

    footer{ border-top:1px solid var(--line); padding:20px 0 32px; color:var(--muted); font-size:12px; }

    /* Details modal */
    .details-dialog{
      position:absolute; inset:12px; margin:auto;
      width:min(980px,calc(100% - 24px));
      height:min(90vh,820px);
      background:#fff;
      border:1px solid var(--line);
      border-radius:22px;
      box-shadow:var(--shadow);
      overflow:hidden;
      display:flex;
      flex-direction:column;
      animation:pop .18s var(--ease) both;
    }
    .details-body{ padding:14px 16px; overflow:auto; flex:1 1 auto; }
    .details-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:12px; }
    .details-media{
      border:1px solid var(--line);
      border-radius:18px;
      overflow:hidden;
      background:rgba(16,16,18,.03);
      min-height:320px;
    }
    .details-media .carousel{ height:100%; }
    .details-info{
      border:1px solid var(--line);
      border-radius:18px;
      padding:14px;
      background:#fff;
      display:flex;
      flex-direction:column;
      gap:10px;
      min-width:0;
    }
    .details-name{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .details-name h3{ margin:0; font-size:16px; letter-spacing:-0.02em; line-height:1.25; min-width:0; word-break:break-word; }
    .details-price{ font-weight:900; white-space:nowrap; }
    .details-kpi{ display:flex; gap:8px; flex-wrap:wrap; }
    .kpi{
      border:1px solid rgba(16,16,18,.10);
      background:rgba(16,16,18,.03);
      border-radius:14px;
      padding:10px 12px;
      font-size:12px;
      color:rgba(16,16,18,.75);
    }
    .details-desc{ color:rgba(16,16,18,.75); font-size:13px; line-height:1.65; }
    .specs{
      border:1px solid rgba(16,16,18,.10);
      border-radius:16px;
      overflow:hidden;
      background:#fff;
    }
    .specs .row{
      display:grid;
      grid-template-columns:160px 1fr;
      gap:10px;
      padding:10px 12px;
      border-bottom:1px solid rgba(16,16,18,.08);
      font-size:12px;
    }
    .specs .row:last-child{ border-bottom:none; }
    .specs .k{ color:var(--muted); font-weight:700; }
    .specs .v{ color:rgba(16,16,18,.78); word-break:break-word; }

    .details-actions{
      margin-top:auto;
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      align-items:center;
    }
    .details-actions .stepper{ height:38px; }
    .details-actions .btn-mini{ height:38px; }

    /* ===== Admin (discreto) ===== */
    .admin-fab{
      position:fixed;
      right:14px;
      bottom:14px;
      width:36px;
      height:36px;
      border-radius:14px;
      border:1px solid var(--line);
      background:rgba(255,255,255,.72);
      backdrop-filter:blur(10px);
      display:grid;
      place-items:center;
      cursor:pointer;
      opacity:.18;
      z-index:95;
      transition:opacity .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
    }
    .admin-fab:hover{
      opacity:.8;
      transform:translateY(-1px);
      box-shadow:0 14px 30px rgba(0,0,0,.10);
    }
    .admin-fab svg{ width:18px; height:18px; }

    .admin-grid{
      display:grid;
      grid-template-columns:280px 1fr;
      gap:12px;
    }
    @media (max-width:860px){
      .admin-grid{ grid-template-columns:1fr; }
      .details-grid{ grid-template-columns:1fr; }
      .details-media{ min-height:260px; }
      .grid{ grid-template-columns:repeat(3,1fr); }
    }
    @media (max-width:720px){
      nav{ display:none; }
      .hamburger{ display:flex; }
      .grid{ grid-template-columns:repeat(2,1fr); }
      .info-grid{ grid-template-columns:1fr; }
      .checkout-grid{ grid-template-columns:1fr; }
      .form{ grid-template-columns:1fr; }
      :root{ --header-h:78px; }
      .brand-logo{ width:min(220px,60vw); height:50px; }
      .brand-name{ display:none; }
      #btnCart span:nth-child(2){ display:none; }
      #btnCart{ padding:0 10px; }
      .card-actions{ align-items:stretch; }
      .btn-details,.btn-add{ flex:1 1 100%; }
      .stepper{ width:100%; justify-content:center; }
      /* Admin botón más fácil en móvil */
      .admin-fab{ width:44px; height:44px; bottom:84px; opacity:.22; }

    }
    @media (max-width:440px){
      .container{ width:min(var(--container),calc(100% - 28px)); }
      .grid{ grid-template-columns:1fr; }
      .brand-logo{ width:min(200px,64vw); height:46px; }
      .hero-card{ padding:26px; }
    }

    .admin-list{
      border:1px solid var(--line);
      border-radius:18px;
      padding:12px;
      background:#fff;
    }
    .admin-list select{
      width:100%;
      height:340px;
      border-radius:14px;
      border:1px solid var(--line);
      padding:10px;
    }
    .admin-actions{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      margin-top:10px;
    }
    .admin-actions .btn{ height:40px; }
    .admin-note{
      font-size:12px;
      color:var(--muted);
      line-height:1.4;
    }
    .admin-err{
      display:none;
      margin-top:10px;
      border:1px solid rgba(220,38,38,.25);
      background:rgba(220,38,38,.06);
      color:rgba(220,38,38,.95);
      padding:10px 12px;
      border-radius:14px;
      font-size:12px;
    }
    .admin-err.show{ display:block; }

    /* ===== Admin UI upgraded ===== */
    .admin-fab{
      opacity:.14;
    }
    .admin-fab:hover{ opacity:.9; }

    .admin-dialog{
      background:linear-gradient(180deg, rgba(245,196,0,.10), rgba(255,255,255,1) 38%);
    }
    .admin-dialog .modal-header{
      background:rgba(255,255,255,.86);
      backdrop-filter:blur(12px);
      position:sticky;
      top:0;
      z-index:2;
    }

    .admin-grid{
      display:grid;
      grid-template-columns:320px 1fr;
      gap:14px;
      align-items:start;
    }
    @media (max-width:860px){
      .admin-grid{ grid-template-columns:1fr; }
    }

    .admin-list{
      border:1px solid var(--line);
      border-radius:20px;
      padding:14px;
      background:#fff;
      box-shadow:0 14px 35px rgba(0,0,0,.06);
      position:sticky;
      top:86px;
    }
    @media (max-width:860px){
      .admin-list{ position:static; top:auto; }
    }

    .admin-list .admin-note b{ font-size:12px; letter-spacing:-.02em; }

    .admin-list select{
      width:100%;
      height:360px;
      border-radius:16px;
      border:1px solid rgba(16,16,18,.12);
      padding:10px;
      background:linear-gradient(180deg, rgba(16,16,18,.02), rgba(16,16,18,0));
      outline:none;
    }
    .admin-list select:focus{
      box-shadow:0 18px 45px rgba(0,0,0,.08);
      transform:translateY(-1px);
      transition:transform .22s var(--ease), box-shadow .22s var(--ease);
    }

    .admin-actions .btn{
      height:40px;
      border-radius:999px;
    }

    .admin-panel{
      border:1px solid var(--line);
      border-radius:20px;
      background:#fff;
      box-shadow:0 14px 35px rgba(0,0,0,.06);
      padding:14px;
    }

    .admin-panel h4{
      margin:0 0 10px;
      font-size:13px;
      letter-spacing:-.02em;
    }

    .admin-panel .form{
      gap:12px;
    }
    .admin-panel .control{
      border-radius:16px;
      height:44px;
    }
    .admin-panel textarea.control{
      height:110px;
    }
    #aImages{
      height:140px;
      font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      font-size:12px;
      line-height:1.35;
    }

    .admin-split{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
    }
    @media (max-width:980px){
      .admin-split{ grid-template-columns:1fr; }
    }

    .admin-preview{
      border:1px solid rgba(16,16,18,.10);
      border-radius:18px;
      overflow:hidden;
      background:rgba(16,16,18,.03);
      min-height:220px;
      position:relative;
    }
    .admin-preview img{
      width:100%;
      height:220px;
      object-fit:cover;
      display:block;
    }
    .admin-preview .label{
      position:absolute;
      top:10px; left:10px;
      background:rgba(255,255,255,.85);
      border:1px solid rgba(16,16,18,.10);
      border-radius:999px;
      padding:6px 10px;
      font-size:12px;
      backdrop-filter:blur(10px);
    }

    .admin-thumbs{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      margin-top:10px;
    }
    .admin-thumb{
      width:54px;
      height:54px;
      border-radius:14px;
      overflow:hidden;
      border:1px solid rgba(16,16,18,.12);
      background:#fff;
      cursor:pointer;
      transition:transform .18s var(--ease), box-shadow .18s var(--ease);
    }
    .admin-thumb:hover{
      transform:translateY(-1px);
      box-shadow:0 14px 30px rgba(0,0,0,.10);
    }
    .admin-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

    .admin-footer-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:12px;
      position:sticky;
      bottom:0;
      background:linear-gradient(180deg, rgba(255,255,255,.4), #fff 55%);
      padding-top:10px;
    }
    .admin-footer-actions .btn{ height:44px; border-radius:999px; }



    /* ===== Admin mobile tabs ===== */
    .admin-mobile-tabs{ display:none; gap:8px; align-items:center; }
    .admin-mobile-tabs .chip{ height:34px; padding:0 12px; font-size:12px; }
    @media (max-width:860px){
      .admin-mobile-tabs{ display:flex; }
      #adminPanelModal.admin-view-edit .admin-list{ display:none; }
      #adminPanelModal.admin-view-list .admin-panel{ display:none; }
    }

    @keyframes fadeIn{ from{opacity:0} to{opacity:1} }
    @keyframes slideIn{ from{opacity:0; transform:translateX(18px)} to{opacity:1; transform:translateX(0)} }
    @keyframes pop{ from{opacity:0; transform:translateY(10px) scale(.985)} to{opacity:1; transform:translateY(0) scale(1)} }
