.introduction-image {
    display: block;
    width: 300px;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.no-product-image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    background: #f1f1f1;
    color: #666;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.product-plu {
    font-size: .9rem;
    color: #555;
    margin: .25rem 0;
}

.address-suggest-field { position: relative; }
.address-lookup-status { margin-top:.35rem; min-height:1.2rem; color:#555; font-size:.95rem; }
.address-lookup-status:empty { display:none; }
.address-suggestions { position:absolute; z-index:20; left:0; right:0; top:100%; background:#fff; border:1px solid #ccc; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.address-suggestions:empty { display:none; }
.address-suggestions button { display:block; width:100%; border:0; border-bottom:1px solid #eee; background:#fff; color:#222; padding:.65rem; text-align:left; border-radius:0; }
.address-suggestions button:hover, .address-suggestions button:focus { background:#f3f3f3; }
.postcode-line { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; }
.postcode-line label { grid-column:1/-1; }
.postcode-line input[type=submit] { width:auto; }
.postcode-results { margin:.75rem 0 1rem; padding:1rem; border:1px solid #ddd; }
.collection-options { margin-top:2rem; }
.collection-item-picker { display:grid; grid-template-columns:minmax(15rem,1fr) 8rem auto; gap:1rem; align-items:end; max-width:48rem; }
.collection-item-picker .field { margin:0; }
.collection-item-picker > .field, .collection-item-picker > input, .collection-item-picker > button { align-self:end; }
.collection-submit { margin-top:1.25rem; padding-top:.25rem; }
.collection-item-list { display:grid; gap:.75rem; margin:1rem 0; }
.collection-item { display:grid; grid-template-columns:minmax(0,1fr) 9rem; gap:1rem; align-items:center; padding:1rem; border:1px solid #ddd; }
.field.compact { margin:0; }
.field.compact input { max-width:7rem; }
.gdpr-preferences {
    display: block;
    clear: both;
    margin: 1.5rem 0;
    padding: 1.25rem;
    border: 1px solid #d7d7d7;
    border-left: 6px solid var(--primary);
    border-radius: 4px;
    background: #fff;
}

/* Product artwork is presented in a consistent square without stretching it. */
.product-card img,
.product-image {
    aspect-ratio: 1 / 1;
    object-fit: contain;
}
.gdpr-preferences .preference-options { display:grid; gap:.55rem; margin:.75rem 0 1rem; }
.gdpr-preferences .preference-interests { border-collapse:collapse; margin:.75rem 0 1rem; }
.gdpr-preferences .preference-interests td { padding:.2rem 0; }
.gdpr-preferences .preference-interests input { margin:0 .45rem 0 0; vertical-align:middle; }
.gdpr-preferences .preference-interests label { display:inline; vertical-align:middle; }
.gdpr-preferences h3 { margin-top:1.25rem; }
.information { display:block; color:#222; margin:.5rem 0; }
.gift-aid-consent .checkbox-line { display:block; }
.order-line-details { display:block; margin-top:.25rem; color:#555; font-weight:400; }
.department-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,300px)); gap:1rem; margin:0 0 1.5rem; }
.department-card { display:block; padding:1.1rem; border:1px solid #ddd; border-left:6px solid var(--primary); color:#222; background:#fff; text-decoration:none; }
.department-card:hover, .department-card:focus { text-decoration:underline; }
@media(max-width:600px) { .collection-item { grid-template-columns:1fr; } }
@media(max-width:620px) { .collection-item-picker { grid-template-columns:1fr; } }

.donated-goods-form { margin-top:1.5rem; }
.donated-goods-form .form-section { margin-bottom:2rem; }
.donated-goods-consent { margin:1.5rem 0; }
.donated-goods-result { max-width:760px; padding:2rem; border:1px solid #ddd; border-top:7px solid var(--primary); border-radius:8px; background:#fff; }
.donated-goods-references { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1rem; margin:1.5rem 0; }
.donated-goods-reference { padding:1rem; border-left:6px solid var(--secondary); background:#f7f7f7; }
.donated-goods-reference strong { display:block; margin-top:.35rem; font-size:1.35rem; overflow-wrap:anywhere; }
.donated-goods-barcode { display:block; width:min(100%,440px); height:auto; margin:1.5rem 0; }
.signup-actions { margin-top:1.5rem; }
@media(min-width:760px) { .donated-goods-fields { display:grid; grid-template-columns:1fr 1fr; gap:0 2rem; } }
.ticket-picker{margin:1.5rem 0}.ticket-picker h2{background:#373739;color:#fff;padding:1rem 1.2rem;margin:0 0 .5rem}.ticket-option{display:grid;grid-template-columns:minmax(0,1fr) 5rem;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid #d7d7d7}.ticket-option-copy{display:flex;flex-direction:column;gap:.3rem}.ticket-option-price{font-size:1.05rem;font-weight:700}.ticket-option-price small,.ticket-option-note,.ticket-selection-note{color:#666;font-weight:400}.ticket-option-quantity{width:5rem!important;text-align:center;padding:.7rem!important}.ticket-option-note{display:block;padding-left:.75rem;border-left:4px solid #ddd}.ticket-selection-note{font-size:.92rem}
.ticket-option{grid-template-columns:minmax(0,1fr) auto}.ticket-quantity-controls{display:flex;align-items:center;gap:.5rem}.ticket-quantity-step{min-width:48px;min-height:48px;padding:.4rem!important;font-size:1.5rem}.ticket-option-quantity{width:4rem!important;min-height:48px;margin:0!important;appearance:textfield}.ticket-option-quantity::-webkit-inner-spin-button,.ticket-option-quantity::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:520px){.ticket-option{grid-template-columns:minmax(0,1fr)}.ticket-quantity-controls{justify-self:end}}
.ticket-picker .ticket-quantity-step{width:56px;min-width:56px;height:56px;min-height:56px;font-size:28px;line-height:1;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.ticket-picker .ticket-option-quantity{width:4.5rem!important;min-height:56px;font-size:1.25rem;box-sizing:border-box}
.ticket-total{font-size:1.5rem;font-weight:700;margin:1.25rem 0}
.ticket-date-label{display:block;font-weight:700;margin-bottom:.5rem}
.ticket-picker .ticket-date-open{min-height:56px;width:100%;text-align:left;background:#fff;color:#222;border:1px solid #888;padding:.8rem 1rem}
.ticket-calendar{max-width:560px;padding:1rem;margin-top:.6rem;border:1px solid #999;border-radius:8px;background:#fff}
.ticket-calendar[hidden]{display:none!important}
.ticket-calendar-header{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:.5rem;align-items:center;text-align:center;margin-bottom:.75rem}
.ticket-picker .ticket-calendar-header button{min-width:48px;min-height:48px;padding:.4rem;font-size:1.4rem}
.ticket-calendar-weekdays,.ticket-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.ticket-calendar-weekdays{font-size:.85rem;font-weight:700;margin-bottom:.4rem}
.ticket-picker .ticket-calendar-day{min-width:0;min-height:48px;padding:.35rem 0;border:1px solid #bbb;border-radius:4px;background:#fff;color:#222;font-size:1rem}
.ticket-picker .ticket-calendar-day:disabled{background:#eee;color:#888;border-color:#ddd;cursor:not-allowed;opacity:1}
.ticket-picker .ticket-calendar-day[aria-pressed=true]{background:#d5eedc;color:#174c28;border:2px solid #24753d;font-weight:700}
.ticket-calendar-day.outside-month{opacity:.6}
.ticket-picker .ticket-calendar-close{min-height:48px}
.ticket-picker button:focus-visible{outline:3px solid #126bc5;outline-offset:2px}
@media(max-width:380px){.ticket-calendar{padding:.5rem}.ticket-calendar-days{gap:2px}.ticket-picker .ticket-calendar-day{min-height:44px}}
