/* Gallos Osuna — Components */

/* -------------------------------------------------------------------------
   5. Botones
   ---------------------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    padding: 12px 24px;
    border-radius: var(--radio-chico);
    font-family: var(--fuente-titulos);
    font-size: 1rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    border: 2px solid transparent;
    cursor: pointer;
    text-align: center;
}

.btn--large {
    min-height: 56px;
    font-size: 1.05rem;
    padding: 14px 28px;
}

.btn--full {
    width: 100%;
}

.btn--primary {
    background: var(--rojo);
    color: var(--blanco);
}

.btn--primary:hover {
    background: var(--rojo-vivo);
    color: var(--blanco);
}

.btn--secondary {
    background: var(--negro);
    color: var(--blanco);
}

.btn--secondary:hover {
    background: #000;
    color: var(--blanco);
}

.btn--whatsapp {
    background: var(--whatsapp);
    color: var(--blanco);
}

.btn--whatsapp:hover {
    background: var(--whatsapp-oscuro);
    color: var(--blanco);
}

.btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* -------------------------------------------------------------------------
   9. Chips de categoria / orden — eco del marco ovalado del logo
   ---------------------------------------------------------------------- */
.category-chip-row,
.sort-row {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.category-chip {
    flex: 0 0 auto;
    padding: 10px 20px;
    border-radius: 10px;
    border: 2px solid var(--negro);
    background: var(--blanco);
    color: var(--negro);
    font-weight: 600;
    white-space: nowrap;
}

.category-chip.is-active,
.category-chip:hover {
    background: var(--rojo);
    border-color: var(--rojo);
    color: var(--blanco);
}

.sort-row {
    align-items: center;
    margin: 16px 0 28px;
}

.sort-row__label {
    font-weight: 700;
    flex: 0 0 auto;
}

.sort-chip {
    flex: 0 0 auto;
    padding: 8px 16px;
    border-radius: 10px;
    border: 2px solid var(--borde);
    color: var(--texto-suave);
    font-size: 0.95rem;
    white-space: nowrap;
}

.sort-chip.is-active,
.sort-chip:hover {
    border-color: var(--verde);
    color: var(--verde-oscuro);
    background: var(--estado-disponible-bg);
}

/* -------------------------------------------------------------------------
   10. Insignias de estado (disponible / reservado / vendido)
   ---------------------------------------------------------------------- */
.estado-badge {
    /* display: flex;
    width: fit-content;
    align-items: center;
    justify-content: center; */

    padding: 6px 14px;
    border-radius: 10px;
    font-family: var(--fuente-titulos);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border: 1px solid transparent;

    margin-top: auto;
    margin-bottom: 4px;
    margin-left: auto;

    text-align: center;
}

.estado-badge--large {
    font-size: 1rem;
    padding: 10px 22px;
}

.estado-badge.is-disponible {
    background: var(--estado-disponible-bg);
    color: var(--estado-disponible-fg);
    border-color: currentColor;
}

.estado-badge.is-reservado {
    background: var(--estado-reservado-bg);
    color: var(--estado-reservado-fg);
    border-color: currentColor;
}

.estado-badge.is-vendido {
    background: var(--estado-vendido-bg);
    color: var(--estado-vendido-fg);
    border-color: currentColor;
}


/* SVG icons */
.gallo-ficha__icono svg,
.gallo-card__image-placeholder svg,
.page-404__icon svg,
.footer-contact-list__icon,
.single-gallo__pago-icon {
    width: 1.25em;
    height: 1.25em;
    flex: 0 0 auto;
}

.gallo-card__image-placeholder svg,
.page-404__icon svg {
    width: 2.5em;
    height: 2.5em;
}
