/* A single checkout for one-time items and the first monthly delivery. */
.checkout-dialog{width:1000px;max-width:calc(100% - 32px);padding:0;text-align:left;border-radius:12px;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
.checkout-dialog [hidden]{display:none!important}
.checkout-shell{padding:30px 34px 34px}
.checkout-topline{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}
.checkout-home{font:700 18px/1.2 var(--serif);letter-spacing:-.7px}
.checkout-mode{font-size:9px;letter-spacing:1.3px;padding:7px 10px;border:1px solid var(--green);border-radius:20px;background:var(--sage);white-space:nowrap;margin-right:28px}
.checkout-dialog .close-checkout{top:23px;right:22px;width:35px;height:35px;padding:0;font-size:27px}
.checkout-progress{list-style:none;display:flex;gap:22px;margin:0 0 28px;padding:0;border-bottom:1px solid var(--line)}
.checkout-progress li{display:flex;gap:8px;align-items:center;padding:0 0 16px;font-size:11px;position:relative;color:#627363}
.checkout-progress li span{width:23px;height:23px;display:grid;place-items:center;border:1px solid #183e2e55;border-radius:50%;font-size:10px}
.checkout-progress li[aria-current="step"]{color:var(--green);font-weight:700}
.checkout-progress li[aria-current="step"]:after{content:'';height:3px;background:var(--orange);position:absolute;bottom:-1px;left:0;right:0}
.checkout-progress li[aria-current="step"] span,.checkout-progress .is-complete span{color:var(--cream);background:var(--green);border-color:var(--green)}
.checkout-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:35px;align-items:start}
.checkout-main{min-width:0}
.checkout-main .eyebrow{font-size:9px;margin:0 0 11px}
.checkout-main h2,.checkout-dialog #checkout-title{font-size:32px;letter-spacing:-1.2px;line-height:1.14;margin:0 0 13px}
.checkout-main h2:focus,.checkout-complete h2:focus{outline:none}
.checkout-main h2:focus-visible,.checkout-complete h2:focus-visible{outline:2px solid var(--orange);outline-offset:5px}
.checkout-intro{font-size:12px;line-height:1.65;margin:0 0 18px;color:#4b6154}
.checkout-example{border:1px solid var(--line);background:#fff9;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px;border-radius:5px;margin-bottom:23px}
.checkout-example p{font-size:10px;line-height:1.5;margin:0;max-width:210px}
.checkout-example button,.checkout-edit{border:0;background:none;text-decoration:underline;text-underline-offset:3px;font-size:11px;font-weight:700;min-height:36px;padding:4px 0;text-align:left;color:var(--green)}
.checkout-example button{flex-shrink:0}
.checkout-fieldset{border:0;padding:0;margin:0 0 23px;min-width:0}
.checkout-fieldset legend{font:700 19px/1.3 var(--serif);letter-spacing:-.5px;margin:0 0 15px;padding:0}
.checkout-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.checkout-field{min-width:0}
.checkout-field.full-width{grid-column:1/-1}
.checkout-field label{display:block;font-size:11px;font-weight:700;margin:0 0 7px}
.checkout-field label span{font-weight:400;color:#627363}
.checkout-field input{display:block;width:100%;min-height:46px;padding:11px 12px;background:#fffaf1;border:1px solid #183e2e55;border-radius:4px;color:var(--green);font:16px/1.3 var(--sans);outline-offset:3px;box-shadow:none}
.checkout-field input:focus{outline:2px solid var(--green)}
.checkout-field input[aria-invalid="true"]{border-color:#a52c20;outline-color:#a52c20}
.checkout-field .field-error{font-size:11px;line-height:1.4;color:#a52c20;margin:6px 0 0}
.checkout-country{border:1px solid var(--line);border-radius:4px;padding:11px 12px;font-size:12px;background:#eaeedc;display:flex;justify-content:space-between;gap:10px;margin:14px 0 0}
.checkout-country span{color:#4b6154}
.checkout-delivery-note{font-size:11px;line-height:1.6;margin:12px 0 0;color:#4b6154}
.checkout-errors{background:#fff3ef;border:1px solid #a52c20;border-radius:4px;padding:13px 16px;margin:0 0 20px;font-size:12px;line-height:1.5;color:#92261c}
.checkout-errors p{font-weight:700;margin:0 0 6px}
.checkout-errors ul{margin:0;padding-left:17px}
.checkout-errors a{text-decoration:underline;text-underline-offset:2px}
.checkout-actions{display:flex;flex-direction:column;align-items:stretch;gap:9px;margin:24px 0 0}
.checkout-actions .button{width:100%;justify-content:space-between;font-size:13px;gap:15px;min-height:49px}
.checkout-back{align-self:flex-start;font-size:11px;min-height:40px;border:0;background:none;color:var(--green);text-decoration:underline;text-underline-offset:4px;padding:0}
.checkout-order-overview{border:1px solid #183e2e33;background:#e9eddb;border-radius:7px;overflow:hidden}
.checkout-order-overview>summary{list-style:none;cursor:pointer;padding:18px;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;font-weight:700}
.checkout-order-overview>summary::-webkit-details-marker{display:none}
.checkout-order-overview>summary>span:last-child{font-size:11px;white-space:nowrap}
.checkout-order-overview>summary>span:last-child:after{content:' +';margin-left:8px;font-size:16px;font-weight:400}
.checkout-order-overview[open]>summary>span:last-child:after{content:' −'}
.checkout-order-content{padding:0 18px 18px}
.checkout-order-content .checkout-edit{font-size:10px;min-height:32px;margin-bottom:10px}
#checkout-summary{border:0;padding:0}
.checkout-group{padding:0 0 10px;margin:0 0 15px;border-bottom:1px solid #183e2e25}
.checkout-group h3{font-family:var(--sans);font-size:10px;letter-spacing:1px;text-transform:uppercase;margin:0 0 10px}
.checkout-group>p{font-size:10px;line-height:1.5}
.checkout-order-line{display:flex;gap:11px;align-items:center;margin:12px 0}
.checkout-order-art{flex:0 0 47px;height:47px;overflow:hidden;border:1px solid #183e2e20;border-radius:4px;background:var(--cream)}
.checkout-order-art img,.checkout-order-art svg{display:block;width:100%;height:100%;object-fit:contain}
.checkout-order-line>div:nth-child(2){flex:1;min-width:0;font-size:11px;line-height:1.45}
.checkout-order-line small{display:block;font-size:10px;color:#4b6154;margin-top:3px}
.checkout-order-line>strong{font-family:var(--sans);font-size:11px;white-space:nowrap;font-weight:500}
#checkout-summary>.checkout-money-line{display:flex;justify-content:space-between;gap:10px;font-size:11px;line-height:1.5;margin:11px 0}
.checkout-money-line strong{white-space:nowrap;font-weight:500}
#checkout-summary>.checkout-test-total{font-size:17px;border-top:1px solid #183e2e33;padding-top:15px;margin-top:15px;align-items:center}
.checkout-test-total span small{font-size:9px;display:block;line-height:1.4;font-weight:400;margin-top:3px}
.checkout-test-total strong{font-weight:700}
.checkout-monthly-total{font-size:11px;line-height:1.6;background:var(--green);color:var(--cream);border-radius:4px;padding:11px 12px;margin:15px 0 0}
.checkout-monthly-total strong{display:block;font-size:12px}
.checkout-monthly-total small{display:block;font-size:9px;color:#e1e6d3;margin-top:4px;line-height:1.5}
.checkout-order-footnote{font-size:10px;line-height:1.6;color:#4b6154;margin:15px 0 0}
.checkout-review-card{border:1px solid var(--line);border-radius:5px;padding:16px;margin:21px 0}
.checkout-review-card>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.checkout-review-card h3{font:700 18px/1.3 var(--serif);letter-spacing:-.5px;margin:0}
.checkout-review-card .checkout-edit{min-height:30px}
.checkout-review-card address{font-style:normal;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.checkout-review-card #checkout-review-email{margin:12px 0 0;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.checkout-payment-state{background:#f5dfcf;border-radius:5px;padding:16px;margin:18px 0}
.checkout-payment-state strong{font:700 20px/1.3 var(--serif);letter-spacing:-.5px;display:block;margin-bottom:8px}
.checkout-payment-state p{font-size:12px;line-height:1.65;margin:0}
.checkout-monthly-consent{font-size:11px;line-height:1.6;padding:15px 0 0}
.checkout-monthly-consent>label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.checkout-monthly-consent input{width:19px;height:19px;flex-shrink:0;margin:2px 0 0;accent-color:var(--green)}
.checkout-monthly-consent .field-error{font-size:11px;color:#a52c20;margin:8px 0 0}
.checkout-complete{max-width:620px;margin:5px auto 0;text-align:center}
.checkout-complete .eyebrow{font-size:9px;letter-spacing:1.5px;margin:0 0 12px}
.checkout-complete h2{font-size:42px;letter-spacing:-1.5px;line-height:1.15;margin:0 0 22px}
.checkout-complete .release-copy{font-size:19px;margin:21px 0 13px}
.checkout-complete-note{font-size:12px;line-height:1.75;max-width:470px;margin:0 auto 23px;color:#4b6154}
.checkout-complete-stamp{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;text-align:left;padding:15px 0;margin:0 0 23px;font-size:12px;line-height:1.6}
.checkout-complete-stamp strong{white-space:nowrap}
.checkout-complete .button{font-size:13px;min-height:49px}
.checkout-complete .checkout-back{display:block;margin:10px auto 0}
@media(max-width:740px){
  .checkout-dialog{max-width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:8px}
  .checkout-shell{padding:23px 20px 25px}
  .checkout-topline{margin-bottom:22px;gap:8px}
  .checkout-home{font-size:16px}
  .checkout-mode{font-size:8px;padding:6px 8px;margin-right:22px;letter-spacing:.7px}
  .checkout-dialog .close-checkout{top:15px;right:10px}
  .checkout-progress{margin-bottom:20px;gap:20px}
  .checkout-progress li{font-size:10px;gap:6px;padding-bottom:13px}
  .checkout-progress li span{width:21px;height:21px;font-size:9px}
  .checkout-layout{display:flex;flex-direction:column;gap:24px}
  .checkout-main,.checkout-order-overview{width:100%}
  .checkout-order-overview{order:-1}
  .checkout-order-overview>summary{padding:14px}
  .checkout-order-content{padding:0 14px 14px}
  .checkout-main h2,.checkout-dialog #checkout-title{font-size:29px}
  .checkout-example{gap:12px;padding:11px}
  .checkout-example p{font-size:10px}
  .checkout-example button{font-size:10px;max-width:90px}
  .checkout-field-grid{gap:14px 11px}
  .checkout-complete h2{font-size:33px}
  .checkout-complete .release-copy{font-size:17px}
}
@media(max-width:350px){
  .checkout-shell{padding:21px 15px}
  .checkout-home{font-size:14px}
  .checkout-mode{font-size:7px;padding:6px}
  .checkout-progress{gap:13px}
  .checkout-field-grid{grid-template-columns:1fr}
  .checkout-main h2,.checkout-dialog #checkout-title{font-size:27px}
}

/* Monthly repeats begin in the month after the initial order. */
.subscription-dispatch { margin: 18px 0 4px; padding: 16px; border: 1px solid var(--line); border-radius: 6px; background: #e6eadb; }
.subscription-dispatch label { display: block; font-size: 13px; line-height: 1.5; font-weight: 700; margin-bottom: 9px; }
.subscription-dispatch select { width: 100%; max-width: 100%; min-width: 0; min-height: 46px; border: 1px solid #183e2e60; border-radius: 4px; padding: 9px 11px; background: var(--cream); color: var(--green); font: 16px var(--sans); }
.subscription-dispatch p { font-size: 11px; line-height: 1.65; margin: 10px 0 0; }
.subscription-dispatch p strong { display: block; margin-bottom: 3px; }
.subscription-dispatch .dispatch-error { color: #8b311a; font-weight: 700; }
.checkout-dispatch { margin: 18px 0; padding: 15px; background: #e6eadb; border: 1px solid var(--line); border-radius: 5px; font-size: 12px; line-height: 1.7; }
.checkout-dispatch p { margin: 7px 0; }
.checkout-dispatch small { display: block; font-size: 10px; }
.checkout-complete-dispatch { font-size: 12px; line-height: 1.7; margin: 20px 0; padding: 15px; border: 1px solid var(--line); border-radius: 5px; text-align: left; }


/* Make the initial subscription parcel clear before the monthly repeats. */
.subscription-dispatch .subscription-inclusion { padding-left: 11px; border-left: 3px solid var(--orange); font-size: 12px; }
.checkout-dispatch.has-subscription { border-left: 4px solid var(--orange); }
.basket-summary #basket-timing strong { display: block; font-size: 12px; line-height: 1.6; margin-bottom: 8px; }
.quick-add:disabled{opacity:.4;cursor:not-allowed}.detail-copy .button:disabled{opacity:.5;cursor:not-allowed}
.basket-reservation-note{border-left:3px solid var(--orange);padding:12px 14px;margin:15px 0;background:#eee8d9;font:12px/1.7 var(--sans);color:var(--green)}.basket-reservation-note p{margin:0}.basket-reservation-note button{border:0;background:transparent;color:var(--green);font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:8px 0 0}

.out-of-stock-dog{width:100%;height:100%;object-fit:contain!important;padding:12px}.is-out-of-stock .product-category{font-weight:700}.is-out-of-stock .product-tag{font-weight:700;background:var(--green);color:var(--cream)}.is-out-of-stock .quick-add:disabled{opacity:.35;cursor:not-allowed}

#product-quantity-form{margin:20px 0 8px}
#product-quantity-form label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}
.detail-quantity-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.detail-quantity-actions .quantity-control button{min-width:38px;min-height:42px}
.detail-quantity-actions .quantity-control input{width:52px;min-height:42px}
.detail-quantity-actions button:disabled{opacity:.5;cursor:default}
#detail-stock-status{margin:7px 0 0;font-size:12px;line-height:1.5}
.stripe-return { width: min(92%, 850px); margin: 20px auto; padding: 18px; border: 1px solid var(--line); border-radius: 6px; background: #faf6ec; }
.stripe-return p { line-height: 1.55; }
.stripe-return button { margin-top: 12px; }
