/* FV Artikane Wishlist 1.2.1 — diseño discreto para Artikane. */
.fvaw-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #dedede;
    border-radius: 50%;
    background: #fff;
    color: #141312;
    cursor: pointer;
    line-height: 1;
    vertical-align: middle;
    transition: color .15s, background .15s, border-color .15s;
}
.fvaw-toggle svg, .fvaw-header-link svg {
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.fvaw-toggle:hover, .fvaw-toggle:focus-visible { border-color: #141312; color: #141312; }
.fvaw-toggle.fvaw-is-active { color: #141312; }
.fvaw-toggle.fvaw-is-active svg { fill: #141312; }
.fvaw-toggle:disabled { opacity: .55; cursor: wait; }
.fvaw-header-link { display: inline-flex; align-items: center; gap: 7px; color: #141312; text-decoration: none; }
.fvaw-count { font-size: .86em; font-weight: 600; }

.fvaw-cart { width: 100%; color: #141312; font-size: 14px; }
.fvaw-grid-head,
.fvaw-row {
    display: grid;
    grid-template-columns: 82px minmax(155px,1fr) 110px 100px 112px 140px;
    column-gap: 18px;
    align-items: center;
}
.fvaw-grid-head { padding: 14px 18px; border-bottom: 1px solid #deddd9; font-size: 12px; font-weight: 600; letter-spacing: .02em; color: #686663; }
.fvaw-grid-head > span:first-child { grid-column: span 2; }
.fvaw-row { padding: 20px 18px; border-bottom: 1px solid #e9e8e5; min-width: 0; }
.fvaw-row > div { min-width: 0; }
.fvaw-cell-image a { display: block; }
.fvaw-cell-image img { display: block; width: 82px; height: 82px; object-fit: contain; background: #f7f6f4; border-radius: 4px; }
/* Nombre propio como título principal; nombre comercial completo como descripción.
   Selectores específicos para evitar que los estilos globales de títulos Avada lo inviertan. */
.fvaw-cart .fvaw-cell-details h3.fvaw-product-proper-name {
    display: block;
    margin: 0 0 5px;
    padding: 0;
    font-family: inherit;
    font-size: 17px !important;
    font-weight: 650;
    line-height: 1.35;
    letter-spacing: normal;
    text-transform: none;
    color: #141312;
}
.fvaw-cart .fvaw-cell-details p.fvaw-product-title {
    margin: 0 0 9px;
    padding: 0;
    font-family: inherit;
    font-size: 12px !important;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: normal;
    text-transform: none;
    color: #6b6763;
}
.fvaw-cart .fvaw-cell-details .fvaw-product-proper-name a,
.fvaw-cart .fvaw-cell-details .fvaw-product-title a {
    color: inherit;
    font-size: inherit !important;
    font-weight: inherit;
    line-height: inherit;
    text-decoration: none;
}
.fvaw-cart .fvaw-cell-details .fvaw-product-proper-name a:hover,
.fvaw-cart .fvaw-cell-details .fvaw-product-title a:hover { text-decoration: underline; }
.fvaw-remove { display: inline; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; color: #77736e; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font: inherit; font-size: 12px; text-align: left; }
.fvaw-remove:hover, .fvaw-remove:focus-visible { background: transparent; color: #141312; }
.fvaw-cell-price, .fvaw-cell-subtotal { font-variant-numeric: tabular-nums; }
.fvaw-cell-price del { color: #8b8782; opacity: .8; display: block; font-size: 12px; }
.fvaw-cell-price ins { text-decoration: none; font-weight: 600; }
.fvaw-cell-subtotal strong { font-weight: 650; }
.fvaw-quantity { display: block; box-sizing: border-box; width: 80px; max-width: 100%; height: 42px; margin: 0; padding: 5px 8px; background: #fff; border: 1px solid #d8d6d2; border-radius: 4px; color: #141312; font: inherit; text-align: center; appearance: textfield; }
.fvaw-quantity:focus-visible { outline: 2px solid #141312; outline-offset: 2px; }
.fvaw-quantity::-webkit-outer-spin-button, .fvaw-quantity::-webkit-inner-spin-button { margin: 0; }
.fvaw-unavailable { color: #817e79; font-size: 13px; }
.fvaw-cart .fvaw-cart-button.button,
.fvaw-cart .fvaw-choice-button.button,
.fvaw-cart .fvaw-all-button.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 10px 14px;
    border: 1px solid #141312;
    border-radius: 4px;
    box-shadow: none;
    background: #141312;
    color: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    cursor: pointer;
    transition: background .18s, color .18s;
}
.fvaw-cart .fvaw-cart-button.button:hover,
.fvaw-cart .fvaw-all-button.button:hover,
.fvaw-cart .fvaw-choice-button.button:hover { background: #383633; border-color: #383633; color: #fff; }
.fvaw-cart .fvaw-choice-button.button { background: transparent; color: #141312; }
.fvaw-cart .fvaw-choice-button.button:hover { background: #f0efec; color: #141312; border-color: #141312; }
.fvaw-cart .button:disabled { opacity: .5; cursor: wait; }
.fvaw-mobile-label { display: none; }

.fvaw-cart-bottom { display: flex; align-items: flex-start; justify-content: flex-end; gap: 32px; padding: 26px 18px 12px; }
.fvaw-cart-summary { display: grid; grid-template-columns: auto auto; align-items: baseline; gap: 8px 30px; min-width: 280px; }
.fvaw-cart-summary > span { font-weight: 600; }
.fvaw-cart-summary > strong { text-align: right; font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
.fvaw-cart-summary small { grid-column: 1 / -1; color: #77736e; font-size: 12px; line-height: 1.5; max-width: 320px; }
.fvaw-cart-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; min-width: 218px; }
.fvaw-cart .fvaw-all-button.button { font-size: 13px; min-height: 46px; }
.fvaw-grid-head > a.fvaw-view-cart {
    display: inline-flex;
    justify-content: flex-end;
    align-items: center;
    color: #141312;
    font-size: 12px;
    font-weight: 650;
    text-align: right;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}
.fvaw-grid-head > a.fvaw-view-cart:hover { color: #55504b; }
.fvaw-feedback { padding: 8px 18px 0; text-align: right; font-size: 13px; color: #141312; }
.fvaw-feedback:empty { display: none; }
.fvaw-feedback a { color: #141312; text-decoration: underline; font-weight: 600; }
.fvaw-empty, .fvaw-loading { margin: 20px 0; }
.fvaw-toast { position: fixed; right: 20px; bottom: 20px; z-index: 999999; max-width: 340px; padding: 12px 16px; background: #141312; color: #fff; box-shadow: 0 4px 18px #0002; border-radius: 6px; opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .2s, transform .2s; }
.fvaw-toast.fvaw-toast-show { opacity: 1; transform: translateY(0); }

@media (max-width: 1050px) {
    .fvaw-grid-head, .fvaw-row { grid-template-columns: 70px minmax(120px,1fr) 100px 78px 94px 118px; column-gap: 12px; }
    .fvaw-cell-image img { width: 70px; height: 70px; }
}
@media (max-width: 850px) {
    /* En móvil la cabecera queda como barra superior con acceso al carrito. */
    .fvaw-grid-head { display: flex; align-items: center; justify-content: flex-end; padding: 9px 4px 12px; }
    .fvaw-grid-head > span { display: none; }
    .fvaw-row {
        grid-template-columns: 76px minmax(0, 1fr) minmax(0, 1fr);
        grid-template-areas: "image details details" "image price price" ". qty subtotal" ". action action";
        row-gap: 13px;
        column-gap: 15px;
        padding: 20px 4px;
    }
    .fvaw-cell-image { grid-area: image; align-self: start; }
    .fvaw-cell-image img { width: 76px; height: 76px; }
    .fvaw-cell-details { grid-area: details; }
    .fvaw-cell-price { grid-area: price; }
    .fvaw-cell-qty { grid-area: qty; }
    .fvaw-cell-subtotal { grid-area: subtotal; }
    .fvaw-cell-action { grid-area: action; }
    .fvaw-mobile-label { display: block; margin-bottom: 5px; color: #77736e; font-size: 11px; font-weight: 500; }
    .fvaw-cart .fvaw-cart-button.button, .fvaw-cart .fvaw-choice-button.button { max-width: 260px; }
    .fvaw-cart-bottom { padding: 25px 4px 12px; }
}
@media (max-width: 600px) {
    .fvaw-cart-bottom { flex-direction: column; gap: 20px; }
    .fvaw-cart-summary, .fvaw-cart-actions { width: 100%; min-width: 0; }
    .fvaw-cart-summary small { max-width: none; }
    .fvaw-cart-actions { align-items: stretch; }
    .fvaw-feedback { padding: 10px 4px 0; text-align: left; }
}
