/* VRGI Presupuestos — estilos de la cesta, el catálogo en línea y la solicitud.
 * Usa los tokens del tema hijo vrgi-child (con valores de respaldo si faltan). */

.vrgi-pq [hidden] { display: none !important; }

.vrgi-pq {
	--pq-red: var(--vrgi-color-red, #C81E1E);
	--pq-red-dark: #9f1717;
	--pq-ink: var(--vrgi-text, #151515);
	--pq-muted: var(--vrgi-text-muted, #5a5a5a);
	--pq-cream: var(--vrgi-color-cream, #F6F4F1);
	--pq-line: #e6dfd8;
	--pq-radius: var(--vrgi-radius-lg, 18px);
	--pq-err: #b00020;
	--pq-ok: #13723a;
}

/* ---------- Botón de la cesta y animaciones ---------- */
.vrgi-pq-btn--float { position: fixed; left: 16px; bottom: 16px; z-index: 9990; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.vrgi-pq-btn__txt { font-weight: 700; font-size: .8rem; }
.vrgi-pq-btn.is-pop { animation: vrgi-pq-pop .55s cubic-bezier(.3, 1.6, .5, 1); }
.vrgi-pq-btn.is-pop .vrgi-cart-badge { animation: vrgi-pq-badge .55s ease; }
@keyframes vrgi-pq-pop { 0% { transform: scale(1); } 35% { transform: scale(1.18) rotate(-6deg); } 70% { transform: scale(.96) rotate(3deg); } 100% { transform: scale(1); } }
@keyframes vrgi-pq-badge { 0%, 100% { transform: scale(1); } 40% { transform: scale(1.45); background: #151515; } }
.vrgi-pq-fly { position: fixed; z-index: 99998; object-fit: cover; border-radius: 14px; pointer-events: none; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }

.vrgi-pq-toast { position: fixed; left: 50%; bottom: 24px; z-index: 99999; display: flex; align-items: center; gap: 14px; max-width: min(92vw, 560px); padding: 12px 14px 12px 20px; border-radius: 999px; background: #151515; color: #fff; font-size: .95rem; box-shadow: 0 12px 30px rgba(0, 0, 0, .3); opacity: 0; transform: translate(-50%, 20px); pointer-events: none; transition: opacity .25s, transform .25s; }
.vrgi-pq-toast.is-on { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.vrgi-pq-toast button { flex: none; min-height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: #fff; color: #151515; font: inherit; font-weight: 700; cursor: pointer; }
.vrgi-pq-toast button:focus-visible { outline: 3px solid #8FB0FF; outline-offset: 2px; }
@media (max-width: 40rem) { .vrgi-pq-toast { bottom: 88px; border-radius: 18px; } }

/* ---------- Panel lateral ---------- */
.vrgi-pq-drawer .vrgi-cart-item { grid-template-columns: 64px 1fr auto; }
.vrgi-pq-drawer .vrgi-cart-info { align-items: flex-start; }
.vrgi-pq-line__name { color: var(--pq-ink); font-weight: 700; text-decoration: none; line-height: 1.3; }
.vrgi-pq-line__name:hover { color: var(--pq-red); text-decoration: underline; }
.vrgi-pq-line__var { font-size: .875rem; color: var(--pq-muted); margin: 0; }
.vrgi-pq-drawer-empty { padding: 22px; display: grid; gap: 16px; justify-items: start; }
.vrgi-pq-drawer-empty p { margin: 0; color: #3a3a3a; }
.vrgi-pq-noimg { display: block; width: 64px; height: 64px; border-radius: 8px; background: repeating-linear-gradient(135deg, #E4E0DA 0 10px, #ECE9E4 10px 20px); }

/* ---------- Selector de cantidad ---------- */
.vrgi-pq-qty { display: inline-flex; align-items: center; border: 1.5px solid #151515; border-radius: 999px; background: #fff; overflow: hidden; }
.vrgi-pq-qty button { width: 40px; height: 40px; border: 0; background: transparent; color: #151515; font-size: 20px; line-height: 1; cursor: pointer; }
.vrgi-pq-qty button:hover { background: #151515; color: #fff; }
.vrgi-pq-qty button:focus-visible, .vrgi-pq-qty input:focus-visible { outline: 3px solid var(--vrgi-color-blue, #1D4ED8); outline-offset: -3px; }
.vrgi-pq-qty input { width: 4.5ch; min-width: 52px; height: 40px; border: 0; padding: 0; text-align: center; font: inherit; font-weight: 700; color: #151515; background: transparent; -moz-appearance: textfield; }
.vrgi-pq-qty input::-webkit-outer-spin-button, .vrgi-pq-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ---------- Ficha de producto ---------- */
.vrgi-pq-add { display: grid; gap: 18px; margin: 8px 0 24px; padding: 22px; border: 1px solid var(--pq-line); border-radius: var(--pq-radius); background: #fff; }
.vrgi-pq-opts { margin: 0; padding: 0; border: 0; min-width: 0; }
.vrgi-pq-opts legend { padding: 0; margin-bottom: 10px; font-weight: 700; }
.vrgi-pq-opts__sel { font-weight: 400; color: var(--pq-muted); }
.vrgi-pq-opts.is-missing .vrgi-pq-chip span { border-color: var(--pq-err); }
.vrgi-pq-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.vrgi-pq-chip { position: relative; display: inline-flex; cursor: pointer; }
.vrgi-pq-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.vrgi-pq-chip span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1.5px solid #cfc7bf; border-radius: 999px; background: #fff; font-weight: 600; transition: border-color .15s, background-color .15s, color .15s, transform .15s; }
.vrgi-pq-chip:hover span { border-color: #151515; }
.vrgi-pq-chip input:checked + span { border-color: #151515; background: #151515; color: #fff; }
.vrgi-pq-chip input:focus-visible + span { outline: 3px solid var(--vrgi-color-blue, #1D4ED8); outline-offset: 2px; }
.vrgi-pq-chip.is-off { cursor: not-allowed; }
.vrgi-pq-chip.is-off span { color: #9a948e; background: #f3f0ec; border-style: dashed; text-decoration: line-through; }
.vrgi-pq-add__row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; }
.vrgi-pq-field label { display: block; margin-bottom: 8px; font-weight: 700; }
.vrgi-pq-add__btn { flex: 1 1 220px; min-height: 48px; }
.vrgi-pq-add__btn.is-done, .vrgi-pq-card__add.is-done { background: var(--pq-ok) !important; border-color: var(--pq-ok) !important; color: #fff !important; }
.vrgi-pq-note summary { cursor: pointer; font-weight: 600; color: #1F4FBF; text-decoration: underline; display: list-item; padding: 10px 0; line-height: 1.4; }
.vrgi-pq-note summary span { font-weight: 400; color: var(--pq-muted); text-decoration: none; margin-left: 4px; }
.vrgi-pq-note textarea, .vrgi-pq-line textarea { width: 100%; box-sizing: border-box; margin-top: 8px; padding: .75rem 1rem; border: 2px solid #151515; border-radius: .75rem; font: inherit; background: #fff; color: #151515; }
.vrgi-pq-note textarea:focus, .vrgi-pq-line textarea:focus { outline: 3px solid var(--vrgi-color-blue, #1D4ED8); outline-offset: 2px; }
.vrgi-pq .vrgi-pq-add p { margin: 0; }
.vrgi-pq-add__status:empty { display: none; }
.vrgi-pq-add__status { margin: 0; min-height: 1.5em; font-weight: 600; }
.vrgi-pq-add__status[data-kind="ok"] { color: var(--pq-ok); }
.vrgi-pq-add__status .vrgi-link-btn { min-height: 0; padding: 0 4px; }
.vrgi-pq-add__hint { margin: 0; font-size: .9rem; color: var(--pq-muted); }

/* Ficha: ocultar restos de compra que pudieran pintar otros módulos. */
.vrgi-pq.single-product .summary .price,
.vrgi-pq.single-product form.cart { display: none !important; }

/* ---------- Catálogo en línea ---------- */
.vrgi-pq-catalog { display: grid; gap: 24px; scroll-margin-top: 110px; }
.vrgi-pq-catalog__head { display: grid; gap: 10px; max-width: 46rem; }
.vrgi-pq-catalog__head .vrgi-eyebrow, .vrgi-pq-catalog__head .vrgi-heading, .vrgi-pq-catalog__head .vrgi-lead { margin: 0; }
.vrgi-pq-filter { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 8px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
@media (min-width: 44rem) { .vrgi-pq-filter { flex-wrap: wrap; overflow: visible; } }
.vrgi-pq-filter__chip { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1.5px solid #151515; border-radius: 999px; background: #fff; color: #151515; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background-color .15s, color .15s; }
.vrgi-pq-filter__chip:hover { background: #151515; color: #fff; }
.vrgi-pq-filter__chip.is-active { background: var(--pq-red); border-color: var(--pq-red); color: #fff; }
.vrgi-pq-filter__chip:focus-visible { outline: 3px solid var(--vrgi-color-blue, #1D4ED8); outline-offset: 2px; }
.vrgi-pq-filter__n { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; background: rgba(0, 0, 0, .08); font-size: .8rem; }
.vrgi-pq-filter__chip.is-active .vrgi-pq-filter__n, .vrgi-pq-filter__chip:hover .vrgi-pq-filter__n { background: rgba(255, 255, 255, .22); }
.vrgi-pq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 44rem) { .vrgi-pq-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 64rem) { .vrgi-pq-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vrgi-pq-card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--pq-radius); background: #fff; box-shadow: 0 1px 0 rgba(0, 0, 0, .04); transition: transform .2s, box-shadow .2s; }
.vrgi-pq-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(21, 21, 21, .12); }
.vrgi-pq-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f3efea; }
.vrgi-pq-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.vrgi-pq-card:hover .vrgi-pq-card__media img { transform: scale(1.04); }
.vrgi-pq-card__noimg { display: block; width: 100%; height: 100%; background: repeating-linear-gradient(135deg, #E4E0DA 0 12px, #ECE9E4 12px 24px); }
.vrgi-pq-card__body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 16px; }
.vrgi-pq .vrgi-pq-card__body > * { margin: 0; }
.vrgi-pq-card__cat { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--pq-red); }
.vrgi-pq-card__title { margin: 0; font-family: var(--vrgi-font-heading, inherit); font-size: 1.08rem; line-height: 1.25; }
.vrgi-pq-card__title a { color: var(--pq-ink); text-decoration: none; }
.vrgi-pq-card__title a::after { content: ""; position: absolute; inset: 0; }
.vrgi-pq-card { position: relative; }
.vrgi-pq-card__title a:focus-visible { outline: 3px solid var(--vrgi-color-blue, #1D4ED8); outline-offset: 2px; }
.vrgi-pq-card__text { margin: 0; font-size: .9rem; color: #444; }
.vrgi-pq-card__actions { margin-top: auto; padding-top: 6px; position: relative; z-index: 1; }
.vrgi-pq-card__add { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; padding: 8px 14px; border: 1.5px solid var(--pq-red); border-radius: 999px; background: var(--pq-red); color: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; transition: background-color .2s, transform .2s; }
.vrgi-pq-card__add:hover { background: var(--pq-red-dark); border-color: var(--pq-red-dark); color: #fff; }
.vrgi-pq-card__add--opts { background: #fff; color: #151515; border-color: #151515; }
.vrgi-pq-card__add--opts:hover { background: #151515; border-color: #151515; }
.vrgi-pq-card__add:focus-visible { outline: 3px solid #151515; outline-offset: 3px; }
.vrgi-pq-pages { display: flex; flex-wrap: wrap; gap: 8px; }
.vrgi-pq-pages a { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; border: 1.5px solid #151515; border-radius: 999px; color: #151515; font-weight: 700; text-decoration: none; }
.vrgi-pq-pages a.is-active, .vrgi-pq-pages a:hover { background: #151515; color: #fff; }

/* Estado vacío */
.vrgi-pq-empty { display: grid; justify-items: start; gap: 12px; padding: clamp(22px, 4vw, 40px); border: 2px dashed #d6cec5; border-radius: var(--pq-radius); background: rgba(255, 255, 255, .6); }
.vrgi-pq-empty h3 { margin: 0; font-size: 1.3rem; }
.vrgi-pq-empty p { margin: 0; max-width: 40rem; color: #3a3a3a; }
.vrgi-pq-empty .vrgi-btn-group { margin-top: 6px; }
.vrgi-pq-empty__icon { width: 56px; height: 56px; border-radius: 16px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C81E1E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h2l2.4 10.2a1 1 0 0 0 1 .8h8.9a1 1 0 0 0 1-.8L20 8H6.2'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3C/svg%3E") center / 30px no-repeat; box-shadow: 0 6px 18px rgba(200, 30, 30, .15); }
.vrgi-pq-empty--small { padding: 22px; }

/* ---------- Página de solicitud ---------- */
.vrgi-pq-req { display: grid; gap: clamp(24px, 4vw, 40px); }
.vrgi-pq-req__head { display: grid; gap: 12px; }
.vrgi-pq-req__head > * { margin: 0; }
.vrgi-pq-req__head .vrgi-lead { max-width: 44rem; }
.vrgi-pq .vrgi-pq-steps { margin-left: 0 !important; padding-left: 0 !important; }
.vrgi-pq-steps { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 8px 0 0 !important; padding: 0; list-style: none; counter-reset: none; }
.vrgi-pq-steps li { display: inline-flex; align-items: center; gap: 10px; color: var(--pq-muted); font-weight: 600; }
.vrgi-pq-steps li span { display: inline-grid; place-items: center; width: 32px; height: 32px; border: 2px solid #cfc7bf; border-radius: 50%; background: #fff; font-size: .9rem; transition: background-color .3s, border-color .3s, color .3s; }
.vrgi-pq-steps li.is-current { color: var(--pq-ink); }
.vrgi-pq-steps li.is-current span { border-color: var(--pq-red); background: var(--pq-red); color: #fff; }
.vrgi-pq-steps li.is-done span { border-color: #151515; background: #151515; color: #fff; }
.vrgi-pq-req__grid { display: grid; gap: 24px; align-items: start; }
@media (min-width: 62rem) { .vrgi-pq-req__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 32px; } }
.vrgi-pq-req__list, .vrgi-pq-req__form { padding: clamp(18px, 3vw, 28px); border-radius: var(--pq-radius); background: #fff; }
.vrgi-pq-req__h2 { margin: 0 0 16px; font-size: 1.35rem; }
.vrgi-pq-req__count { font-weight: 400; font-size: 1rem; color: var(--pq-muted); }
.vrgi-pq-form { max-width: none; }
.vrgi-pq-form .vrgi-btn { width: 100%; }
.vrgi-pq-country { margin: 0; padding: 0; border: 0; }
.vrgi-pq-country legend { display: block; margin-bottom: .5rem; font-weight: 700; padding: 0; }
.vrgi-pq-status.is-err { color: var(--pq-err); }
.vrgi-pq-status:focus { outline: none; }
.vrgi-pq-lines { list-style: none; margin: 0; padding: 0; }
.vrgi-pq-line { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-top: 1px solid #eee; }
.vrgi-pq-line:first-child { border-top: 0; padding-top: 0; }
.vrgi-pq-line__media img, .vrgi-pq-line__media .vrgi-pq-noimg { width: 96px; height: 96px; object-fit: cover; border-radius: 12px; display: block; }
.vrgi-pq-line__body { display: grid; gap: 6px; min-width: 0; }
.vrgi-pq-line__row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 4px; }
.vrgi-pq-line__label { margin-top: 6px; font-size: .9rem; font-weight: 600; }
.vrgi-pq-line textarea { margin-top: 0; padding: .5rem .75rem; border-width: 1.5px; font-size: .95rem; }
@media (max-width: 30rem) { .vrgi-pq-line { grid-template-columns: 64px minmax(0, 1fr); } .vrgi-pq-line__media img, .vrgi-pq-line__media .vrgi-pq-noimg { width: 64px; height: 64px; } }
.vrgi-pq-notice { margin: 0 0 14px; padding: 10px 14px; border-left: 4px solid var(--pq-red); background: var(--pq-cream); }
.vrgi-pq-loading { color: var(--pq-muted); }
.vrgi-pq-done { display: grid; justify-items: start; gap: 12px; padding: clamp(24px, 4vw, 44px); border-radius: var(--pq-radius); background: #fff; }
.vrgi-pq-done:focus { outline: none; }
.vrgi-pq-done h2, .vrgi-pq-done p { margin: 0; }
.vrgi-pq-done__ref { font-size: 1.15rem; font-weight: 700; }
.vrgi-pq-done__check { width: 64px; height: 64px; border-radius: 50%; background: var(--pq-ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 34px no-repeat; }
@media (prefers-reduced-motion: no-preference) { .vrgi-pq-done:not([hidden]) .vrgi-pq-done__check { animation: vrgi-pq-pop .6s cubic-bezier(.3, 1.6, .5, 1); } }

@media (prefers-reduced-motion: reduce) {
	.vrgi-pq-card, .vrgi-pq-card__media img, .vrgi-pq-chip span, .vrgi-pq-toast { transition: none; }
	.vrgi-pq-card:hover { transform: none; }
	.vrgi-pq-card:hover .vrgi-pq-card__media img { transform: none; }
}

/* 1.1.0 · Áreas del catálogo con su foto (imagen primero) */
.vrgi-pq-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1.5rem 0 1.25rem;padding:0;list-style:none}
@media (min-width:56rem){.vrgi-pq-areas{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}}
.vrgi-pq-area a{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border-radius:var(--vrgi-radius-md,16px);background:#151515;color:#fff;text-decoration:none;isolation:isolate}
.vrgi-pq-area__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.vrgi-pq-area a:hover .vrgi-pq-area__img,.vrgi-pq-area a:focus-visible .vrgi-pq-area__img{transform:scale(1.05)}
.vrgi-pq-area__body{position:absolute;left:0;right:0;bottom:0;display:grid;gap:.25rem;padding:2.5rem .875rem .875rem;background:linear-gradient(180deg,rgba(21,21,21,0),rgba(21,21,21,.85) 55%)}
.vrgi-pq-area__name{font-family:var(--vrgi-font-heading,inherit);font-weight:700;font-size:1rem;line-height:1.2}
.vrgi-pq-area__n{font-size:.8125rem;font-weight:700;color:#FFD5D5}
.vrgi-pq-area a:focus-visible{outline:3px solid #C81E1E;outline-offset:3px}
.vrgi-pq-area.is-active a{box-shadow:0 0 0 3px #C81E1E}
@media (prefers-reduced-motion:reduce){.vrgi-pq-area__img{transition:none}.vrgi-pq-area a:hover .vrgi-pq-area__img{transform:none}}

/* 1.1.0 · Panel de la cesta en móviles estrechos (320 px): «Quitar» pasa debajo y no se corta */
@media (max-width: 22.5rem) {
	.vrgi-pq-drawer .vrgi-cart-item { grid-template-columns: 52px minmax(0, 1fr); }
	.vrgi-pq-drawer .vrgi-cart-item img { width: 52px; height: 52px; }
	.vrgi-pq-drawer .vrgi-cart-item > .vrgi-link-btn { grid-column: 2; justify-self: start; }
}

/* 1.1.1 · Preguntas guía del mensaje */
.vrgi-pq-guia{margin-top:.75rem;border:1.5px dashed rgba(21,21,21,.18);border-radius:12px;padding:.25rem .875rem;background:#fff}
.vrgi-pq-guia summary{cursor:pointer;min-height:2.75rem;display:flex;align-items:center;font-weight:700;color:#C81E1E;list-style:none}
.vrgi-pq-guia summary::-webkit-details-marker{display:none}
.vrgi-pq-guia summary::after{content:"+";margin-left:auto;font-size:1.25rem}
.vrgi-pq-guia[open] summary::after{content:"−"}
.vrgi-pq-guia p{margin:.25rem 0 .75rem;font-size:.9375rem;color:#3A3A3A}
.vrgi-pq-guia ul{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .875rem;padding:0;list-style:none}
.vrgi-pq-guia button{min-height:2.75rem;padding:0 .875rem;border:1.5px solid rgba(21,21,21,.18);border-radius:999px;background:#F7F3EE;color:#151515;font:inherit;font-size:.875rem;cursor:pointer}
.vrgi-pq-guia button:hover,.vrgi-pq-guia button:focus-visible{border-color:#C81E1E;color:#C81E1E;background:#fff}


/* 1.1.1 · Botón de la tarjeta más compacto en móvil (2 columnas) */
@media (max-width: 36rem) { body .vrgi-pq-grid .vrgi-pq-card__add { min-height: 44px; padding: .5rem .75rem; font-size: .875rem; line-height: 1.2; white-space: normal; } }
.vrgi-pq-guia button.is-used,.vrgi-pq-guia button.is-used:hover,.vrgi-pq-guia button.is-used:focus{background:#C81E1E !important;border-color:#C81E1E !important;color:#fff !important;opacity:1 !important}
.vrgi-pq-guia button:hover,.vrgi-pq-guia button:focus{background:#fff;color:#C81E1E;opacity:1}

.vrgi-pq-guia__st{margin:0 0 .75rem;font-size:.875rem;color:#3A3A3A}.vrgi-pq-guia__st:empty{display:none}
