.storefront-section-heading {align-items:end;display:flex;gap:var(--space-l);justify-content:space-between;margin-bottom:var(--space-m);
}

.storefront-section-heading h2 {font-size:var(--text-xl);margin:0;
}

.storefront-section-heading p {color:var(--text-muted);font-size:var(--text-s);margin:var(--space-2xs) 0 0;
}

.storefront-section-heading a,
.storefront-product-card a {color:inherit;text-decoration:none;
}

.storefront-section-heading > a:not(.button) {flex:0 0 auto;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);padding-bottom:var(--space-4xs);text-decoration:underline;text-decoration-thickness:var(--line-width);text-underline-offset:var(--underline-offset);text-transform:uppercase;transition:opacity var(--motion-standard) var(--ease-standard);
}

.storefront-section-heading > a:not(.button):hover,
.storefront-section-heading > a:not(.button):focus-visible {opacity:var(--opacity-hover);
}

.storefront-product-grid {display:grid;gap:var(--space-l) var(--page-gutter);grid-template-columns:var(--columns-four);
}

.storefront-product-card {display:flex;flex-direction:column;min-width:0;
}

.storefront-product-card__media {aspect-ratio:var(--ratio-product);background:var(--bg-card);display:block;overflow:hidden;position:relative;
}

.storefront-product-card__media picture,
.storefront-product-card__media img {display:block;height:var(--size-full);width:var(--size-full);
}

.storefront-product-card__media img {object-fit:cover;transition:transform var(--motion-slow) var(--ease-image);
}

.storefront-product-card__media:hover img,
.storefront-product-card__media:focus-visible img {transform:scale(var(--scale-hover));
}

.storefront-media-placeholder {align-items:end;color:var(--text-subtle);display:flex;font-family:var(--font-display);font-size:var(--text-l);justify-content:start;letter-spacing:var(--tracking-negative);line-height:var(--leading-copy-tight);max-width:var(--measure-title-compact);min-height:var(--size-full);padding:var(--space-s);text-align:left;
}

.storefront-product-card__status {background:var(--light);bottom:var(--space-3xs);color:var(--text-body);font-size:var(--text-xs);left:var(--space-3xs);letter-spacing:var(--tracking-label);padding:var(--space-4xs) var(--space-3xs);position:absolute;text-transform:uppercase;
}

.storefront-product-card__copy {display:grid;gap:var(--space-4xs);padding:var(--space-3xs) 0 0;
}

.storefront-product-card__category {color:var(--text-subtle);font-size:var(--text-xs);font-weight:var(--weight-regular);letter-spacing:0;margin:0;text-transform:none;
}

.storefront-product-card__row {align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-4xs) var(--space-xs);justify-content:space-between;margin:0;
}

.storefront-product-card__title {color:var(--text-body);flex:1 1 var(--measure-product-title);font-family:var(--font-display);font-size:var(--text-s);font-weight:var(--weight-regular);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug);margin:0;text-wrap:balance;
}

.storefront-product-card__title a {color:inherit;display:inline-block;text-decoration:none;transition:opacity var(--motion-standard) var(--ease-standard);
}

.storefront-product-card__title a:hover,
.storefront-product-card__title a:focus-visible {opacity:var(--opacity-hover);
}

.storefront-product-card__row strong {flex:0 0 auto;font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-regular);letter-spacing:var(--tracking-subtle);
}

.storefront-badge {color:var(--text-subtle);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;
}

.storefront-form {background:var(--light);border:var(--line-width) solid var(--border-primary);display:grid;gap:var(--space-m);max-width:var(--measure-form);padding:var(--space-l);
}

.storefront-field,
.storefront-form .field {display:grid;gap:var(--space-4xs);
}

.storefront-field label,
.storefront-field .field-label,
.storefront-form .field-label,
.storefront-choice {font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;
}

.storefront-field__help,
.storefront-form .field-help,
.storefront-form .form-hint,
.storefront-form__note {color:var(--text-muted);font-size:var(--text-s);letter-spacing:0;text-transform:none;
}

.storefront-choice {align-items:start;display:flex;gap:var(--space-3xs);line-height:var(--leading-body);min-height:var(--control-min-height);padding-block:var(--space-3xs);
}

.storefront-choice input,
.public-preference input {flex:0 0 var(--control-icon-size);height:var(--control-icon-size);margin:var(--choice-control-offset) 0 0;min-height:var(--control-icon-size);min-width:var(--control-icon-size);padding:0;width:var(--control-icon-size);
}

.storefront-honeypot {height:var(--line-width);opacity:0;position:absolute;width:var(--line-width);
}

.storefront-form-alert {border:var(--line-width) solid var(--text-body);color:var(--text-body);margin-block:var(--space-m);padding:var(--space-m) var(--space-m);
}

.storefront-form-alert--success {background:var(--bg-surface-soft);
}

.storefront-form-alert--error {background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger);
}

.storefront-form-alert h2 {font-size:var(--text-l);margin-bottom:var(--space-4xs);
}

/* Notices are the only content allowed to interrupt the storefront above the
   shop. They are server-rendered so an operational message remains visible
   and dismissible when JavaScript is unavailable. */
.storefront-notices {position:relative;z-index:var(--layer-notice);
}

.storefront-notice {align-items:center;border-bottom:var(--line-width) solid var(--border-subtle);display:grid;gap:var(--space-xs) var(--space-l);grid-template-columns:minmax(0, 1fr) auto;padding:var(--space-2xs) max(var(--space-m), calc((var(--viewport-width) - var(--page-max)) / 2));
}

.storefront-notice + .storefront-notice {border-top:var(--line-width) solid var(--border-hairline);
}

.storefront-notice--banner,
.storefront-notice--availability {background:var(--text-body);border-bottom-color:var(--text-body);color:var(--light);
}

.storefront-notice--inline {background:var(--bg-surface-soft);color:var(--text-body);
}

.storefront-notice__copy {align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-4xs) var(--space-xs);min-width:0;
}

.storefront-notice__type {color:currentColor;flex:0 0 auto;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);opacity:var(--opacity-muted);text-transform:uppercase;
}

.storefront-notice__heading {font-family:var(--font-display);font-size:var(--text-m);font-weight:var(--weight-regular);line-height:var(--leading-copy-tight);
}

.storefront-notice__message,
.storefront-notice__detail {font-size:var(--text-s);line-height:var(--leading-copy);
}

.storefront-notice__message {color:currentColor;margin:0;opacity:var(--opacity-secondary);
}

.storefront-notice__detail {color:currentColor;flex:1 1 100%;opacity:var(--opacity-muted);
}

.storefront-notice__dismiss-form {justify-self:end;margin:0;
}

.storefront-notice__dismiss {align-items:center;background:transparent;border:var(--line-width) solid currentColor;color:inherit;cursor:pointer;display:inline-flex;font-size:var(--text-xs);font-weight:var(--weight-semibold);justify-content:center;letter-spacing:var(--tracking-label);min-height:var(--control-min-height);padding:var(--space-3xs) var(--space-xs);text-transform:uppercase;transition:background-color var(--motion-standard) var(--ease-standard), color var(--motion-standard) var(--ease-standard);
}

.storefront-notice__dismiss:hover,
.storefront-notice__dismiss:focus-visible {background:currentColor;color:var(--light);
}

.storefront-notice--banner .storefront-notice__dismiss:hover,
.storefront-notice--banner .storefront-notice__dismiss:focus-visible,
.storefront-notice--availability .storefront-notice__dismiss:hover,
.storefront-notice--availability .storefront-notice__dismiss:focus-visible {background:var(--light);color:var(--text-body);
}

.storefront-notice-dialog {background:var(--light);border:var(--line-width) solid var(--text-body);box-shadow:0 var(--space-m) var(--space-3xl) var(--shadow-color);color:var(--text-body);display:block;inset:auto;margin:0;padding:0;position:fixed;width:min(var(--measure-dialog), calc(var(--viewport-width) - var(--space-l)));z-index:var(--layer-dialog);
}

.storefront-notice-dialog::backdrop {background:var(--overlay-dark-deep);
}

.storefront-notice-dialog__inner {display:grid;gap:var(--space-m);padding:clamp(var(--space-m), var(--fluid-medium), var(--space-xl));
}

.storefront-notice-dialog .storefront-notice__copy {align-items:start;display:grid;gap:var(--space-3xs);
}

.storefront-notice-dialog h2 {font-size:var(--text-xl);margin:0;
}

.storefront-notice-dialog .storefront-notice__type {color:var(--text-subtle);
}

.storefront-notice-dialog .storefront-notice__dismiss-form {justify-self:start;
}

.storefront-notice-dialog.storefront-notice-dialog--top-left {left:var(--space-xs);top:calc(var(--header-height) + var(--space-xs));
}

.storefront-notice-dialog.storefront-notice-dialog--top-center {left:var(--position-center);top:calc(var(--header-height) + var(--space-xs));transform:translateX(-50%);
}

.storefront-notice-dialog.storefront-notice-dialog--top-right {right:var(--space-xs);top:calc(var(--header-height) + var(--space-xs));
}

.storefront-notice-dialog.storefront-notice-dialog--center-center {left:var(--position-center);top:var(--position-center);transform:translate(var(--position-center-negative), var(--position-center-negative));
}

.storefront-notice-dialog.storefront-notice-dialog--bottom-left {bottom:var(--space-xs);left:var(--space-xs);
}

.storefront-notice-dialog.storefront-notice-dialog--bottom-center {bottom:var(--space-xs);left:var(--position-center);transform:translateX(-50%);
}

.storefront-notice-dialog.storefront-notice-dialog--bottom-right {bottom:var(--space-xs);right:var(--space-xs);
}

.storefront-dialog-open {overflow:hidden;
}

/* Reusable customer-auth modal. The surface uses the warm storefront paper;
   controls remain white paper so the form reads as a clear task surface. */
.storefront-auth-modal {background:var(--bg-surface);border:var(--line-width) solid var(--border-control);color:var(--text-body);margin:auto;max-height:calc(var(--viewport-height) - var(--space-xl));max-width:var(--measure-auth-panel);padding:0;width:calc(var(--size-full) - var(--space-l));
}
.storefront-auth-modal::backdrop {background:var(--overlay-dark-deep);
}
.storefront-auth-modal__surface {display:grid;position:relative;
}
.storefront-auth-modal__view {display:grid;gap:var(--space-m);padding:var(--space-l);
}
.storefront-auth-modal__view[hidden] {display:none;
}
.storefront-auth-modal__close-form {position:absolute;right:var(--space-3xs);top:var(--space-3xs);z-index:var(--layer-content);
}
.storefront-auth-modal__close {align-items:center;background:transparent;border:0;color:var(--text-body);cursor:pointer;display:flex;height:var(--control-min-height);justify-content:center;padding:0;width:var(--control-min-height);
}
.storefront-auth-modal__close svg {fill:none;height:var(--control-icon-size);stroke:currentColor;stroke-linecap:round;stroke-width:var(--icon-stroke-width);width:var(--control-icon-size);
}
.storefront-auth-modal__heading {display:grid;gap:var(--space-3xs);padding-right:var(--control-min-height);
}
.storefront-auth-modal__heading h2 {font-size:var(--text-xl);line-height:var(--leading-tight);margin:0;
}
.storefront-auth-modal__heading p,.storefront-auth-modal__secondary {color:var(--text-muted);font-size:var(--text-s);line-height:var(--leading-copy);margin:0;
}
.storefront-auth-modal__form {display:grid;gap:var(--space-2xs);
}
.storefront-auth-modal__form .field {display:grid;gap:var(--space-4xs);
}
.storefront-auth-modal__form .field-label {color:var(--text-muted);font-size:var(--text-s);font-weight:var(--weight-regular);letter-spacing:0;text-transform:none;
}
/* The storefront default is an underline-only field. These inputs are boxed
   instead, so the selector has to repeat all four :not()s the global rule in
   storefront.css uses — a single :not() loses on specificity and the boxes
   silently never appear. */
.storefront-body .storefront-auth-modal__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]) {background:var(--light);border:var(--line-width) solid var(--border-control);border-radius:0;font-size:var(--text-s);min-height:var(--control-min-height);padding:var(--space-3xs) var(--space-2xs);width:var(--size-full);
}
.storefront-body .storefront-auth-modal__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):hover {border-color:var(--text-body);
}
.storefront-auth-modal__form .button {margin-top:var(--space-2xs);width:var(--size-full);
}
.storefront-auth-modal__link {align-items:center;color:var(--text-muted);display:inline-flex;font-size:var(--text-xs);min-height:var(--control-min-height);text-decoration:underline;text-underline-offset:var(--underline-offset);
}
.storefront-auth-modal__secondary {border-top:var(--line-width) solid var(--border-subtle);padding-top:var(--space-s);
}
.storefront-auth-modal__secondary a {color:var(--text-body);text-underline-offset:var(--underline-offset);
}
.storefront-auth-modal__choice {align-items:center;cursor:pointer;display:flex;gap:var(--space-2xs);min-height:var(--control-min-height);
}
.storefront-auth-modal__choice input {height:var(--choice-control-size);min-height:var(--choice-control-size);width:var(--choice-control-size);
}
.storefront-auth-modal__error {background:var(--color-danger-soft);border:var(--line-width) solid var(--color-danger);color:var(--color-danger);font-size:var(--text-s);line-height:var(--leading-copy);margin:0;padding:var(--space-2xs);
}
.storefront-auth-modal__error[hidden] {display:none;
}

@media (max-width: 560px) {
  .storefront-auth-modal__view {padding:var(--space-m);
  }
}

.storefront-status {margin:auto;max-width:var(--measure-copy-panel);padding:var(--space-4xl) var(--space-s);text-align:center;
}

.storefront-status__code {color:var(--text-subtle);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;
}

.storefront-status h1 {font-size:var(--text-4xl);margin-top:var(--space-s);
}

.storefront-status > p:not(.storefront-status__code) {color:var(--text-muted);font-size:var(--text-m);margin:var(--space-m) auto 0;max-width:var(--measure-copy-short);
}

.storefront-status .button {margin-top:var(--space-l);
}

@media (max-width: 1024px) {
  .storefront-product-grid {grid-template-columns:var(--columns-three);
  }
}

@media (max-width: 760px) {
  .storefront-notice {padding-inline:var(--space-s);
  }

  .storefront-notice__copy {display:grid;gap:var(--space-4xs);
  }

  .storefront-notice__detail {flex-basis:auto;
  }

  .storefront-section-heading {align-items:start;display:grid;gap:var(--space-xs);
  }

  .storefront-product-grid {grid-template-columns:var(--columns-two);
  }
}

@media (max-width: 560px) {
  .storefront-notice {align-items:start;grid-template-columns:minmax(0, 1fr);padding-inline:var(--space-xs);
  }

  .storefront-notice__dismiss-form,
  .storefront-notice-dialog .storefront-notice__dismiss-form {justify-self:start;
  }

  .storefront-notice-dialog {width:calc(var(--viewport-width) - var(--space-l));
  }
}
