/*
 * Commerce and recognition (sprint 2 backlog lane BACK1) - public and member pages:
 * the shop, event sessions and extras at registration, events near you, giving
 * societies and the gift reminder opt-out. Linked from partials/ext-commerce-head
 * (config/extensions/commerce.php 'layout' head slot). Every class starts with .cm-.
 * Colours are the site's palette custom properties (site.css @layer theme), so a
 * theme change carries. Touch targets are at least 44px tall.
 */

.cm-tap{min-height:2.75rem}

/* Page layout: content, then (from 64rem) a summary beside it */
.cm-layout{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
/* One basket block per currency (sprint 3), apart from the next. */
.cm-layout+.cm-layout{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--color-cream-300,#e5dcc8)}
@media (min-width:64rem){.cm-layout{grid-template-columns:minmax(0,1fr) 20rem;align-items:start}.cm-aside{position:sticky;top:1.5rem}}
.cm-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;align-items:center}
.cm-note{border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.75rem;background:var(--color-cream-100,#f8f4eb);padding:.9rem 1rem;font-size:.9375rem;color:var(--color-ink-700,#3d3226)}
.cm-alert{border:1px solid var(--color-brick-300,#d29490);border-radius:.5rem;background:var(--color-brick-50,#faf1f0);padding:.9rem 1rem;font-size:.875rem;color:var(--color-brick-700,#742622)}
.cm-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--color-brass-400,#c9a45c);background:var(--color-cream-100,#f8f4eb);padding:.1rem .6rem;font-size:.75rem;font-weight:600;color:var(--color-brass-600,#7a5c22);white-space:nowrap}
.cm-chip-muted{border-color:var(--color-cream-300,#e3d7bd);color:var(--color-ink-500,#5c4f3f)}
.cm-chip-ok{border-color:var(--color-ivy-700,#1f4d3a);color:var(--color-ivy-700,#1f4d3a);background:#fff}
.cm-fieldset{border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.75rem;background:#fff;padding:1rem 1.1rem 1.1rem;margin:0}
.cm-fieldset legend{padding:0 .35rem;font-weight:600;color:var(--color-ink-900,#241c14)}
.cm-fields{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.cm-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-wide{grid-column:1 / -1}}

/* Radio and checkbox tiles */
.cm-choices{display:grid;gap:.4rem;margin-top:.4rem}
.cm-choice{display:flex;align-items:center;gap:.6rem;min-height:2.75rem;border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.5rem;background:#fff;padding:.35rem .75rem;font-size:.9375rem;color:var(--color-ink-900,#241c14);cursor:pointer}
.cm-choice input{width:1.1rem;height:1.1rem;accent-color:var(--color-brick-600,#8c2f2b);flex:none}
.cm-choice:has(input:checked){border-color:var(--color-brick-600,#8c2f2b);background:var(--color-brick-50,#faf1f0)}
.cm-choice:has(input:focus-visible){outline:2px solid var(--color-brick-500,#a03f39);outline-offset:2px}
.cm-choice:has(input:disabled){background:var(--color-cream-100,#f8f4eb);color:var(--color-ink-500,#5c4f3f);cursor:not-allowed}
.cm-choice-main{flex:1;min-width:0}
.cm-choice-meta{display:block;font-size:.8125rem;color:var(--color-ink-500,#5c4f3f)}
.cm-choice-price{font-weight:600;white-space:nowrap}

/* Shop catalogue */
.cm-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}
.cm-product{display:flex;flex-direction:column;border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.75rem;background:#fff;overflow:hidden}
.cm-product-img{aspect-ratio:4 / 3;width:100%;object-fit:cover;background:var(--color-cream-100,#f8f4eb)}
/* No photo: the initial in the display face on the palette, as group cards do (review R2 M5) */
.cm-product-noimg{aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-cream-100,#f8f4eb),var(--color-cream-300,#e3d7bd));color:var(--color-brick-600,#a63a24);font-family:var(--font-display,Georgia,serif);font-size:2.5rem;font-weight:700}
.cm-grid-noimgs .cm-product-noimg{aspect-ratio:auto;height:4.5rem;font-size:2rem}
@media (min-width:48rem){.cm-grid-noimgs .cm-product-noimg{height:6rem}}
.cm-product-body{display:flex;flex-direction:column;gap:.35rem;padding:1rem;flex:1}
.cm-product-name{font-weight:600;color:var(--color-ink-900,#241c14);line-height:1.3}
.cm-product-name a{display:inline-block;min-height:2.75rem;padding-top:.6rem;text-decoration:none;color:inherit}
.cm-product-name a:hover{text-decoration:underline}
.cm-price{font-weight:700;color:var(--color-ink-900,#241c14)}
.cm-price-end{text-align:end;white-space:nowrap}
.cm-member-price{display:block;font-size:.8125rem;font-weight:600;color:var(--color-ivy-700,#1f4d3a)}
.cm-detail{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:48rem){.cm-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
.cm-detail.cm-detail-noimg{grid-template-columns:minmax(0,1fr);max-width:42rem}
.cm-detail-img{width:100%;border-radius:.75rem;border:1px solid var(--color-cream-300,#e3d7bd);background:var(--color-cream-100,#f8f4eb)}
.cm-qty{min-height:2.75rem;width:5.5rem;border-radius:.5rem;border:1px solid var(--color-cream-300,#e3d7bd);background:#fff;padding:.25rem .6rem;font-size:1rem;color:var(--color-ink-900,#241c14)}
.cm-basket{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;font-weight:600;color:var(--color-brick-700,#742622)}

/* Basket and order lines */
.cm-lines{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}
.cm-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;align-items:center;border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.75rem;background:#fff;padding:.9rem 1rem}
.cm-line-name{font-weight:600;color:var(--color-ink-900,#241c14)}
.cm-line-meta{font-size:.8125rem;color:var(--color-ink-500,#5c4f3f)}
.cm-line-problem{font-size:.8125rem;font-weight:600;color:var(--color-brick-700,#742622)}
.cm-line-tools{display:flex;align-items:center;gap:.5rem;grid-column:1 / -1;justify-content:flex-end}
@media (min-width:40rem){.cm-line{grid-template-columns:minmax(0,1fr) auto auto}.cm-line-tools{grid-column:auto}}
.cm-linkbtn{min-height:2.75rem;border:0;background:none;padding:0 .5rem;font-size:.875rem;color:var(--color-brick-700,#742622);text-decoration:underline;cursor:pointer}

/* Summary card */
.cm-summary{padding:1.25rem}
.cm-rows{margin:.75rem 0 0;padding:0;list-style:none;display:grid;gap:.4rem;font-size:.9375rem}
.cm-row{display:flex;justify-content:space-between;gap:1rem;color:var(--color-ink-700,#3d3226)}
.cm-row span:last-child{white-space:nowrap}
.cm-total{display:flex;justify-content:space-between;gap:1rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-cream-300,#e3d7bd);font-weight:700;color:var(--color-ink-900,#241c14)}
/* Status pills: the member area's one pill (review R2 L20). */
.cm-status{display:inline-flex;align-items:center;justify-self:start;padding:.125rem .625rem;border-radius:999px;font-size:.8125rem;font-weight:600;line-height:1.4;white-space:nowrap;background:var(--color-cream-200, #efe7d6);color:var(--color-ink-700, #3d3226);}
.cm-status-paid,.cm-status-completed{background:#e3efe8;color:var(--color-ivy-700, #1f4d3a);}
.cm-status-pending,.cm-status-unpaid{background:#f4ead3;color:var(--color-brass-600, #7a5c22);}
.cm-status-cancelled,.cm-status-expired,.cm-status-refunded{background:var(--color-cream-300,#e3d7bd);color:var(--color-ink-500,#5c4f3f)}

/* Sessions and extras at event registration */
.cm-sessions{display:grid;gap:.4rem;margin-top:.5rem}
.cm-person-name{margin-top:1rem;font-size:.875rem;font-weight:600;color:var(--color-ink-900,#241c14)}
.cm-person-name:first-child{margin-top:.25rem}
.cm-included{font-size:.875rem;color:var(--color-ink-700,#3d3226)}
.cm-addon{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;align-items:center;border-top:1px solid var(--color-cream-200,#efe6d2);padding:.75rem 0}
.cm-addon:first-of-type{border-top:0}
.cm-booked{margin:.5rem 0 0;padding:0;list-style:none;font-size:.875rem;color:var(--color-ink-700,#3d3226)}
.cm-booked li{padding:.15rem 0}

/* Events near you */
.cm-search{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);align-items:end}
@media (min-width:48rem){.cm-search{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto}}
.cm-events{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}
.cm-event{display:grid;grid-template-columns:minmax(0,1fr);gap:.25rem;border:1px solid var(--color-cream-300,#e3d7bd);border-radius:.75rem;background:#fff;padding:1rem}
@media (min-width:40rem){.cm-event{grid-template-columns:minmax(0,1fr) auto;align-items:center}}
.cm-event-title a{display:inline-block;min-height:2.75rem;padding-top:.55rem;font-weight:600;color:var(--color-ink-900,#241c14);text-decoration:none}
.cm-event-title a:hover{text-decoration:underline}
.cm-event-meta{font-size:.875rem;color:var(--color-ink-700,#3d3226)}
.cm-dist{font-size:.875rem;font-weight:600;color:var(--color-ivy-700,#1f4d3a);white-space:nowrap}

/* Giving societies */
.cm-level{margin-top:2rem}
.cm-level-name{font-size:1.25rem;font-weight:600;color:var(--color-ink-900,#241c14)}
.cm-benefits{margin-top:.35rem;font-size:.9375rem;color:var(--color-ink-700,#3d3226);white-space:pre-line}
.cm-names{margin:.75rem 0 0;padding:0;list-style:none;columns:1;column-gap:2rem;font-size:.9375rem;color:var(--color-ink-900,#241c14)}
@media (min-width:40rem){.cm-names{columns:2}}
@media (min-width:64rem){.cm-names{columns:3}}
.cm-names li{break-inside:avoid;padding:.2rem 0}
.cm-anon{margin-top:.5rem;font-size:.875rem;font-style:italic;color:var(--color-ink-500,#5c4f3f)}
.cm-societies{margin:0;padding:0;list-style:none;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}
.cm-society a{display:block;min-height:2.75rem;font-weight:600;color:var(--color-ink-900,#241c14);text-decoration:none}
.cm-society a:hover{text-decoration:underline}

/* Board 462 - short labels: the basket's text buttons ("Remove") are at least 44 px wide on touch layouts. */
@media (pointer:coarse),(max-width:63.99rem){.cm-linkbtn{min-width:2.75rem}}
