/* Shop: basket, checkout and order pages. Colours, radii and fonts come
   from the theme's own custom properties, with plain fallbacks, so the pages
   follow the site's theme. Every rule hangs off the widgets' own classes, so
   a page rebuilt in the builder looks the same. */
:root{
  --shop-text:var(--gsy-color-text,#1a1a1a);
  --shop-muted:var(--gsy-color-muted,#6b7280);
  --shop-bg:var(--gsy-color-background,#fff);
  --shop-surface:var(--gsy-color-surface,#f5f6f8);
  --shop-primary:var(--gsy-color-primary,#2b59c3);
  --shop-line:color-mix(in srgb,var(--shop-text) 12%,transparent);
  --shop-line-strong:color-mix(in srgb,var(--shop-text) 22%,transparent);
  --shop-tint:color-mix(in srgb,var(--shop-primary) 6%,var(--shop-bg));
  --shop-ring:color-mix(in srgb,var(--shop-primary) 28%,transparent);
  --shop-radius:var(--gsy-radius-md,10px);
  --shop-radius-sm:min(var(--gsy-button-radius,6px),10px);
  --shop-bad:#b42318;
  --shop-good:#067647;
  --shop-field-h:3.25rem;
}

/* ── Small pieces ── */
.shop-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shop-muted{color:var(--shop-muted);font-size:.92em}
.shop-notice{padding:.7rem .9rem;border-radius:var(--shop-radius-sm);background:var(--shop-surface);margin:0 0 1rem;font-size:.92em}
.shop-problem,.shop-error{color:var(--shop-bad);display:block;font-size:.86em;margin:.3rem 0 0}
.shop-error-box{border:1px solid color-mix(in srgb,var(--shop-bad) 30%,transparent);background:color-mix(in srgb,var(--shop-bad) 5%,var(--shop-bg));border-radius:var(--shop-radius-sm);padding:.8rem 1rem;margin:0 0 1rem;font-size:.92em}
.shop-error-box p{margin:0}
.shop-error-box ul{margin:.35rem 0 0;padding-left:1.2rem}
.shop-badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;background:var(--shop-surface);line-height:1.4;letter-spacing:.01em}
.shop-badge-test{background:#fff4ce;color:#5c4400}
.shop-link-button{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:.15em;cursor:pointer}
.shop-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.shop-req{color:var(--shop-muted);font-weight:400}
.shop-help{font-size:.8em;color:var(--shop-muted)}

/* ── Fields ── */
[data-shop-part] .shop-field{position:relative;display:flex;flex-direction:column;gap:.3rem;margin:0 0 .75rem;max-width:none}
[data-shop-part] .shop-field label{font-weight:500;font-size:.85em;color:var(--shop-muted)}
[data-shop-part] :is(.shop-field input:not([type=checkbox]):not([type=radio]),.shop-field select,.shop-field textarea),.shop-code input,.shop-point-search input{
  font:inherit;font-size:.95rem;width:100%;box-sizing:border-box;padding:.75rem .85rem;
  border:1px solid var(--shop-line-strong);border-radius:var(--shop-radius-sm);
  background:var(--shop-bg);color:var(--shop-text);transition:border-color .15s,box-shadow .15s}
[data-shop-part] :is(.shop-field input,.shop-field select,.shop-field textarea):focus,.shop-code input:focus,.shop-point-search input:focus,.shop-line-qty input:focus{
  outline:0;border-color:var(--shop-primary);box-shadow:0 0 0 3px var(--shop-ring)}
[data-shop-part] .shop-field textarea{min-height:5.5rem;resize:vertical}
.shop-field-bad :is(input,select,textarea){border-color:var(--shop-bad)!important}
.shop-check{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;font-size:.92em;cursor:pointer}
.shop-check input{width:1.05rem;height:1.05rem;margin:.15rem 0 0;accent-color:var(--shop-primary);flex:none}

/* The label sits inside the box and moves up as the shopper types. */
[data-shop-part] .shop-float label{position:absolute;left:.9rem;top:calc(var(--shop-field-h) / 2);transform:translateY(-50%);font-size:.95rem;font-weight:400;color:var(--shop-muted);pointer-events:none;transition:top .15s,font-size .15s;line-height:1.1;max-width:calc(100% - 1.8rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-shop-part] .shop-float :is(input,textarea){padding:1.5rem .85rem .35rem}
[data-shop-part] .shop-float input{height:var(--shop-field-h)}
[data-shop-part] .shop-float:has(:is(input,textarea):focus) label,
[data-shop-part] .shop-float:has(:is(input,textarea):not(:placeholder-shown)) label{top:.45rem;transform:none;font-size:.72rem;font-weight:500}
[data-shop-part] .shop-float:has(textarea) label{top:1.4rem}
[data-shop-part] .shop-float:has(textarea:focus) label,[data-shop-part] .shop-float:has(textarea:not(:placeholder-shown)) label{top:.45rem}
[data-shop-part] .shop-float :is(input,textarea)::placeholder{color:transparent}

/* ── Checkout: one form, quiet section headings ── */
.shop-section{border:0;padding:0;margin:0 0 2.25rem;min-width:0}
.shop-section legend{float:left;width:100%;font-weight:600;font-size:1.08rem;letter-spacing:-.005em;margin:0 0 .85rem;padding:0}
.shop-section legend+*{clear:both}
.shop-section>:last-child{margin-bottom:0}
fieldset.shop-section:is([data-shop-part="contact"],[data-shop-part="address"]){display:flex;flex-wrap:wrap;column-gap:.75rem}
fieldset.shop-section:is([data-shop-part="contact"],[data-shop-part="address"])>*{flex:1 1 100%}
fieldset.shop-section:is([data-shop-part="contact"],[data-shop-part="address"])>.shop-field:has(:is(#shop-name,#shop-phone,#shop-town,#shop-county,#shop-postcode,#shop-country)){flex:1 1 calc(50% - .375rem);min-width:11rem}
fieldset.shop-section[data-shop-part="contact"]{margin-top:.5rem}
.shop-terms{margin-bottom:1.25rem}
.shop-terms a{color:inherit}
.shop-pay{margin:0}
.shop-pay-form>:last-child{margin-bottom:0}
.shop-js .shop-update{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shop-update{margin:.75rem 0 0}

/* Choices: one bordered list with a line between the options */
.shop-choice{position:relative;display:flex;align-items:flex-start;gap:.75rem;padding:.95rem 1rem;margin:0;cursor:pointer;background:var(--shop-bg);border:1px solid var(--shop-line-strong);border-radius:0;font-size:.95rem;transition:background-color .15s}
.shop-delivery-option+.shop-delivery-option>.shop-choice,.shop-choice-row+.shop-choice-row>.shop-choice{margin-top:-1px}
:is(.shop-delivery-option,.shop-choice-row):first-of-type>.shop-choice{border-top-left-radius:var(--shop-radius);border-top-right-radius:var(--shop-radius)}
:is(.shop-delivery-option,.shop-choice-row):last-of-type>.shop-choice:last-child{border-bottom-left-radius:var(--shop-radius);border-bottom-right-radius:var(--shop-radius)}
:is(.shop-delivery-option,.shop-choice-row):last-of-type>.shop-choice:not(:last-child){border-radius:0}
.shop-choice:hover{background:color-mix(in srgb,var(--shop-text) 2.5%,var(--shop-bg))}
.shop-choice:has(input:checked){z-index:1;background:var(--shop-tint);border-color:var(--shop-primary)}
.shop-choice input[type=radio]{width:1.05rem;height:1.05rem;margin:.15rem 0 0;accent-color:var(--shop-primary);flex:none}
.shop-choice:has(input:focus-visible){outline:2px solid var(--shop-primary);outline-offset:2px}
.shop-choice-label{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}
.shop-choice-label .shop-muted{font-size:.85em}
.shop-choice-name{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-weight:500}
.shop-choice-price{white-space:nowrap;font-weight:600}
.shop-choice-only{display:flex;align-items:flex-start;gap:.6rem;padding:.95rem 1rem;border:1px solid var(--shop-primary);background:var(--shop-tint);border-radius:var(--shop-radius);margin:0;cursor:default}
.shop-unavailable .shop-choice{opacity:.55;cursor:not-allowed}
.shop-unavailable .shop-choice:hover{background:var(--shop-bg)}
/* What opens under a chosen option sits inside the list's frame. */
.shop-points,.shop-slots{border:1px solid var(--shop-line-strong);border-top:0;margin:0;padding:.85rem 1rem 1rem 2.85rem;min-width:0;background:var(--shop-tint)}
.shop-points legend,.shop-slots legend{float:left;width:100%;font-weight:600;font-size:.85em;margin:0 0 .5rem;padding:0}
.shop-points legend+*,.shop-slots legend+*{clear:both}
.shop-points .shop-choice,.shop-slots .shop-choice{border-radius:var(--shop-radius-sm)!important;margin:0 0 .4rem;padding:.6rem .8rem;font-size:.9rem}
.shop-point-search{margin:0 0 .75rem}
.shop-point-search label{display:block;font-weight:500;font-size:.85em;margin:0 0 .3rem}
.shop-point-search .shop-inline{max-width:24rem}
.shop-point-search input{text-transform:uppercase}
.shop-point-search input::placeholder{text-transform:none}
.shop-logos{display:inline-flex;flex-wrap:wrap;gap:.25rem;margin-left:auto}
.shop-logos img{width:34px;height:22px;object-fit:contain;border:1px solid var(--shop-line);border-radius:4px;background:#fff}
.shop-choice-row>.shop-embed{border:1px solid var(--shop-line-strong);border-top:0;margin:0;border-radius:0;padding:1rem}
.shop-choice-row:last-of-type>.shop-embed{border-bottom-left-radius:var(--shop-radius);border-bottom-right-radius:var(--shop-radius)}
.shop-embed{padding:1rem;border:1px solid var(--shop-line);border-radius:var(--shop-radius-sm);background:var(--shop-bg)}
.shop-embed[hidden]{display:none}
.shop-embed-status:empty{display:none}
.shop-embed-frame{min-height:2rem}
.shop-embed-frame:empty{min-height:0}
.shop-choice:has(input:focus-visible){outline:2px solid currentColor;outline-offset:2px}
.shop-point-search{margin:0 0 .75rem}
.shop-point-search label{display:block;font-weight:600;font-size:.92em;margin:0 0 .3rem}
.shop-point-search .shop-inline{max-width:24rem}
.shop-point-search input{font:inherit;text-transform:uppercase;padding:var(--gsy-button-padding-y,.55rem) .75rem;border:1px solid var(--gsy-color-muted,#bbb);border-radius:var(--gsy-button-radius,.4rem);background:var(--gsy-color-background,#fff);color:var(--gsy-color-text,inherit)}
.shop-point-search input::placeholder{text-transform:none}
/* SP: how often a subscription line renews, switched in the basket. */
.shop-line-period{display:block;margin:.35rem 0 0}.shop-line-period select{max-width:100%;font:inherit;font-size:.9em;padding:.2rem .4rem}
.shop-payment>.shop-muted:last-of-type{display:flex;gap:.45rem;align-items:center;margin:.75rem 0 0;font-size:.82em}
.shop-payment>.shop-muted:last-of-type::before{content:"";flex:none;width:.9rem;height:.9rem;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat}

/* Other modules' questions, one block per item */
.shop-units{margin:0 0 1rem;padding:1rem 1rem .25rem;border-radius:var(--shop-radius);background:var(--shop-surface)}
.shop-units-name{font-weight:600;margin:0 0 .6rem;font-size:.92em}

/* Pay */
.shop-pay-total{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 .75rem;color:var(--shop-muted);font-size:.92em}
.shop-pay-total strong{font-size:1.35rem;color:var(--shop-text);letter-spacing:-.01em}
.shop-go,.shop-pay-button{width:100%;text-align:center}
.shop-pay-button{min-height:3.25rem;font-size:1.02rem}
.shop-pay-button:disabled{opacity:.5;cursor:not-allowed}

/* ── The summary stays beside the form as the page scrolls, in its own
   panel inside the page's container (it never reaches past the column). ── */
@media (min-width:900px){
  .gsy-col:has(> .gsy-widget > aside.shop-summary[data-shop-part="summary"]){align-self:stretch}
  .gsy-widget:has(> aside.shop-summary[data-shop-part="summary"]){position:sticky;top:calc(var(--gsy-header-height,0px) + 1.5rem)}
  .gsy-section:has([data-shop-part="pay"]) .gsy-col:not(:has(aside.shop-summary)){padding-right:clamp(.5rem,2vw,2rem)}
}

/* ── Basket ── */
.shop-basket h1{margin:0 0 1.5rem}
.shop-lines{width:100%;border-collapse:collapse;margin:0 0 1.25rem}
.shop-lines thead th{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shop-lines tbody tr:first-child td{border-top:1px solid var(--shop-line)}
.shop-lines td{padding:1.1rem .5rem;border-bottom:1px solid var(--shop-line);vertical-align:top}
.shop-lines :is(th,td):first-child{padding-left:0}
.shop-lines :is(th,td):last-child{padding-right:0;text-align:right}
.shop-line-item{min-width:14rem}
.shop-line-item>.shop-thumb{float:left;margin-right:1rem}
.shop-line-text{overflow:hidden}
.shop-line-item a{font-weight:600;color:inherit;text-decoration:none}
.shop-line-item a:hover{text-decoration:underline}
.shop-line-bad td{background:color-mix(in srgb,var(--shop-bad) 4%,transparent)}
.shop-line-qty input{width:4.5rem;font:inherit;padding:.45rem .6rem;border:1px solid var(--shop-line-strong);border-radius:var(--shop-radius-sm);background:var(--shop-bg);color:var(--shop-text)}
.shop-line-total,.shop-line-price{white-space:nowrap}
.shop-line-total{font-weight:600}
.shop-line-total .shop-muted{display:block;font-weight:400;color:var(--shop-good)}
.shop-line-remove .shop-link-button{color:var(--shop-muted);font-size:.85em}
.shop-line-remove .shop-link-button:hover{color:var(--shop-bad)}
.shop-line-fields{list-style:none;margin:.3rem 0 0;padding:0;font-size:.85em;color:var(--shop-muted)}
@media (max-width:760px){
  .shop-lines thead{display:none}
  .shop-lines tr{display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;border-bottom:1px solid var(--shop-line);padding:1rem 0}
  .shop-lines td{display:block;border:0;padding:0;text-align:left!important}
  .shop-line-item{grid-column:1 / -1}
  .shop-line-price{color:var(--shop-muted)}
  .shop-line-total{text-align:right!important}
  .shop-line-remove{grid-column:2;text-align:right!important}
}

/* A line's picture */
.shop-thumb{position:relative;flex:none;display:grid;place-items:center;width:4rem;height:4rem;border-radius:var(--shop-radius);background:color-mix(in srgb,var(--shop-text) 5%,var(--shop-bg));border:1px solid var(--shop-line)}
.shop-thumb img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.shop-thumb-letter{font-weight:600;font-size:1.2rem;color:var(--shop-muted)}
.shop-thumb-qty{position:absolute;top:-.5rem;right:-.5rem;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;display:grid;place-items:center;font-size:.72rem;font-weight:600;background:color-mix(in srgb,var(--shop-text) 72%,transparent);color:var(--shop-bg)}

/* Totals and the order summary */
aside.shop-totals,aside.shop-summary{background:var(--shop-surface);border-radius:var(--shop-radius);padding:1.4rem 1.5rem;font-size:.95rem}
aside.shop-summary h2{margin:0 0 1.1rem;font-size:1.08rem;font-weight:600}
.shop-totals-list{margin:0 0 1.1rem}
.shop-total-row{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0}
.shop-total-row dt,.shop-total-row dd{margin:0}
.shop-total-row dd{white-space:nowrap;text-align:right}
.shop-total-discount dd{color:var(--shop-good)}
.shop-total-grand{font-weight:600;font-size:1.15rem;border-top:1px solid var(--shop-line);margin-top:.6rem;padding-top:.85rem;align-items:baseline}
.shop-total-grand dd{font-size:1.3rem;letter-spacing:-.01em}
.shop-sum-lines{list-style:none;margin:0 0 1rem;padding:0 0 1rem;border-bottom:1px solid var(--shop-line);display:grid;gap:1rem}
.shop-sum-line{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center}
.shop-sum-name{min-width:0;display:flex;flex-direction:column;gap:.1rem}
.shop-sum-title{font-weight:500}
.shop-sum-name .shop-muted{font-size:.85em}
.shop-sum-total{white-space:nowrap;font-weight:500}
.shop-code{margin-top:1rem}
.shop-code label{display:block;font-weight:500;font-size:.85em;color:var(--shop-muted);margin:0 0 .4rem}
.shop-inline{display:flex;gap:.5rem}
.shop-inline input{flex:1;min-width:0}
.shop-code input{padding:.6rem .75rem;text-transform:uppercase}
.shop-code-notes{list-style:none;padding:0;margin:.65rem 0 0;font-size:.88em;display:grid;gap:.35rem}
.shop-code-notes form{display:none}
.shop-code-ok strong{color:var(--shop-good)}
.shop-code-bad{color:var(--shop-bad)}
.shop-totals .shop-notice{font-size:.88em;background:var(--shop-bg)}
.shop-taxes{width:100%;border-collapse:collapse;font-size:.82em;color:var(--shop-muted);margin:.75rem 0 .25rem}
.shop-taxes th,.shop-taxes td{padding:.15rem 0;text-align:right;font-weight:400}
.shop-taxes th:first-child,.shop-taxes td:first-child{text-align:left}
.shop-taxes thead th{font-weight:500}
.shop-tax-note,.shop-tax-number{font-size:.82em;color:var(--shop-muted);margin:.35rem 0 0}

/* ── After paying: the order page ── */
.shop-order-status h1{margin:0 0 .35rem}
.shop-order-thanks>h1::before{content:"";display:block;width:2.75rem;height:2.75rem;margin:0 0 1rem;border-radius:50%;
  background:var(--shop-good) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/1.35rem no-repeat}
.shop-order-number{color:var(--shop-muted);margin:0 0 1rem}
.shop-order-number strong{color:var(--shop-text)}
.shop-order-status>p{max-width:40rem}
.shop-order-address,.shop-order-pay,.shop-order-collect{margin:1.5rem 0 0;padding:1.1rem 1.25rem;border:1px solid var(--shop-line);border-radius:var(--shop-radius)}
.shop-order-address h3,.shop-order-pay h3{margin:0 0 .35rem;font-size:.85rem;font-weight:500;color:var(--shop-muted)}
.shop-order-address p,.shop-order-pay p{margin:0}
.shop-order-pay p+p{margin-top:.75rem}
.shop-order-pay{background:var(--shop-tint);border-color:color-mix(in srgb,var(--shop-primary) 25%,transparent)}
.shop-ready{font-weight:600}

/* Downloads (S9) */
.shop-order-downloads{margin:1.75rem 0}
.shop-downloads{list-style:none;margin:0;padding:0;border:1px solid var(--shop-line);border-radius:var(--shop-radius)}
.shop-downloads li{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;padding:.8rem 1.1rem}
.shop-downloads li+li{border-top:1px solid var(--shop-line)}
.shop-downloads .shop-download-name{font-weight:600;flex:1 1 12rem}
.shop-downloads form{margin:0}

/* Find your order */
.shop-find{max-width:26rem;margin-inline:auto}
.shop-find h1{margin:0 0 .5rem;font-size:clamp(1.5rem,3vw,1.9rem)}
.shop-find>p{color:var(--shop-muted);margin:0 0 1.25rem}
.shop-find .gsy-button{width:100%}

/* Opening hours */
.shop-opening{margin-top:1.25rem;font-size:.9em}
.shop-hours{border-collapse:collapse}
.shop-hours th{text-align:left;font-weight:500;padding:.15rem 1.25rem .15rem 0}
.shop-open,.shop-closed{display:inline-flex;align-items:center;gap:.45rem;font-weight:500;margin:0 0 .5rem}
.shop-open::before,.shop-closed::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}
.shop-open{color:var(--shop-good)}
.shop-closed{color:var(--shop-bad)}

/* The test checkout's own page */
.shop-test-pay{max-width:40rem;margin:2rem auto;padding:2rem;border:1px solid var(--shop-line);border-radius:var(--shop-radius)}
.shop-test-buttons{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}

/* ── Checkout in steps (checkout.js): a step bar, one step at a time, a
   recap of earlier steps and a Continue button ── */
.shop-step-off{display:none!important}
.shop-steps{margin:.5rem 0 1.75rem}
.shop-steps ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.95rem}
.shop-steps li{display:flex;align-items:center;gap:.4rem}
.shop-steps li+li::before{content:"";width:.4rem;height:.4rem;border-right:1.5px solid var(--shop-muted);border-bottom:1.5px solid var(--shop-muted);transform:rotate(-45deg);margin:0 .35rem 0 .1rem;opacity:.6}
.shop-steps button{font:inherit;background:none;border:0;padding:.2rem 0;color:var(--shop-muted);cursor:default}
.shop-steps .shop-step-done button{color:var(--shop-primary);cursor:pointer}
.shop-steps .shop-step-done button:hover{text-decoration:underline;text-underline-offset:.2em}
.shop-steps button[aria-current="step"]{color:var(--shop-text);font-weight:600}
.shop-steps button:disabled{opacity:.7}
.shop-recap{margin:0 0 1.75rem;border:1px solid var(--shop-line-strong);border-radius:var(--shop-radius);font-size:.9rem}
.shop-recap[hidden]{display:none}
.shop-recap>div{display:grid;grid-template-columns:6.5rem 1fr auto;gap:.75rem;align-items:baseline;padding:.75rem 1rem}
.shop-recap>div+div{border-top:1px solid var(--shop-line)}
.shop-recap dt{color:var(--shop-muted);margin:0}
.shop-recap dd{margin:0;min-width:0;overflow-wrap:anywhere}
.shop-recap .shop-link-button{font-size:.85rem;color:var(--shop-primary);text-decoration:none}
.shop-recap .shop-link-button:hover{text-decoration:underline}
.shop-continue{margin:0 0 1rem}
.shop-continue-button{width:100%;min-height:3.25rem;font-size:1.02rem}
/* In steps the Pay step carries its own heading: the payment part's. */
.shop-stepped [data-shop-part="pay"] .shop-pay-total{margin-top:.25rem}
@media (max-width:560px){.shop-recap>div{grid-template-columns:1fr auto}.shop-recap dt{grid-column:1 / -1}}
