/* /offers and /offers/{store} (Pages/Offers.cshtml). Offer cards and the signup are styled by
   deals-hub.css (_StoreOffers, _DealsSignup); this file has the page frame, store search, store
   tiles and the A–Z directory. */
.offers-page {
    padding-bottom: 24px;
}

/* The partials bring their own .container; inside this page's container they shouldn't pad twice. */
.offers-page .container.store-offers,
.offers-page .container.deals-signup {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
}

.offers-summary {
    color: #555;
    margin: 4px 0 8px;
}

.offers-tools {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 8px 0 24px;
}

.offers-search {
    position: relative;
    display: block;
    max-width: 520px;
    margin: 0;
}

.offers-search .bi-search {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #777;
}

.offers-search input {
    width: 100%;
    padding: 11px 12px 11px 36px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font: inherit;
}

.offers-types {
    margin: 0;
}

.offers-callout {
    display: block;
    margin: 0 0 24px;
    padding: 12px 16px;
    border-radius: 10px;
    background: #111;
    color: #fff;
    text-decoration: none;
}

.offers-callout:hover,
.offers-callout:focus-visible {
    color: #fff;
    background: #2a2a2a;
}

.offers-section {
    margin: 8px 0 32px;
}

.offers-store-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}

.offers-store-tile a {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 100%;
    padding: 10px 12px;
    border: 1px solid #e3e3e3;
    border-radius: 10px;
    background: #fff;
    color: inherit;
    text-decoration: none;
}

.offers-store-tile a:hover,
.offers-store-tile a:focus-visible {
    border-color: #c62828;
}

.offers-store-tile-logo {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border: 1px solid #eee;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fff;
}

.offers-store-tile-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.offers-store-tile-logo .store-offer-initial {
    font-size: 1.2rem;
}

.offers-store-tile-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.offers-store-tile-name {
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.offers-store-tile-meta {
    font-size: .8rem;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.offers-az {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 4px 0 16px;
}

.offers-az a {
    min-width: 32px;
    padding: 4px 8px;
    border: 1px solid #ddd;
    border-radius: 6px;
    text-align: center;
    font-weight: 600;
    text-decoration: none;
}

.offers-letter {
    margin-bottom: 16px;
    scroll-margin-top: 80px;
}

/* Expanded view: each store's offers as a block; the store name is the section heading. */
.offers-store-block .container.store-offers {
    margin-bottom: 20px;
}

.offers-store-block .store-offers-heading {
    font-size: 1.1rem;
}

.offers-letter h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 8px;
    color: #555;
}

.offers-nomatch,
.offers-empty {
    color: #555;
}

.offers-store-header {
    display: flex;
    gap: 16px;
    align-items: center;
    margin: 8px 0 20px;
}

.offers-store-header h1 {
    font-size: 1.6rem;
    font-weight: 800;
    margin: 0;
}

.offers-store-logo {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    border: 1px solid #eee;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fff;
}

.offers-store-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.offers-store-links {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin: 0;
    font-weight: 600;
}

@media (max-width: 600px) {
    .offers-store-header {
        align-items: flex-start;
    }

    .offers-store-logo {
        flex-basis: 56px;
        width: 56px;
        height: 56px;
    }

    .offers-store-header h1 {
        font-size: 1.3rem;
    }
}

/* /offers/{store}: actions, at a glance, popular products, ended offers, questions. */
.offers-store-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.offers-btn {
    display: inline-block;
    padding: 9px 16px;
    border-radius: 6px;
    background: #c62828;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.offers-btn:hover,
.offers-btn:focus-visible {
    background: #a31f1f;
    color: #fff;
}

.offers-btn.is-secondary {
    background: #fff;
    color: #222;
    border: 1px solid #bbb;
}

.offers-btn.is-secondary:hover,
.offers-btn.is-secondary:focus-visible {
    border-color: #c62828;
    color: #222;
}

.offers-facts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
    margin: 0 0 12px;
}

.offers-facts div {
    border: 1px solid #e3e3e3;
    border-radius: 8px;
    padding: 10px 12px;
    background: #fff;
}

.offers-facts dt {
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #666;
}

.offers-facts dd {
    margin: 2px 0 0;
    font-weight: 700;
}

.offers-glance-list,
.offers-glance-about {
    margin: 6px 0;
}

.offers-glance-about {
    color: #444;
}

.offers-products {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

.offers-products a {
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 100%;
    padding: 10px;
    border: 1px solid #e3e3e3;
    border-radius: 8px;
    background: #fff;
    color: inherit;
    text-decoration: none;
}

.offers-products a:hover,
.offers-products a:focus-visible {
    border-color: #c62828;
}

.offers-products img {
    width: 100%;
    height: 140px;
    object-fit: contain;
}

.offers-product-title {
    font-size: .88rem;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.offers-product-price {
    margin-top: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    align-items: baseline;
    font-size: .9rem;
}

.offers-product-price s {
    color: #888;
}

.offers-product-off {
    color: #c62828;
    font-weight: 700;
}

.offers-ended {
    margin: 0;
    padding-left: 18px;
    color: #666;
}

.offers-ended li {
    margin: 3px 0;
}

.offers-ended-date {
    font-size: .82rem;
    color: #888;
}

.offers-faq h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 14px 0 4px;
}

.offers-faq p {
    margin: 0;
    color: #444;
}

.offers-store-foot {
    margin-top: 8px;
}
