body {
  overflow-x: hidden;
}

img {
  display: block;
}

.site-toast-region {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 80;
  display: grid;
  gap: 0.75rem;
  width: min(24rem, calc(100vw - 2rem));
}

.site-toast {
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 48px rgba(26, 28, 28, 0.12);
  color: #1a1c1c;
  opacity: 0;
  padding: 1rem 1.1rem;
  transform: translateY(8px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.site-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.site-toast__eyebrow {
  display: block;
  font-family: "Manrope", sans-serif;
  font-size: 0.625rem;
  letter-spacing: 0.24em;
  margin-bottom: 0.35rem;
  opacity: 0.6;
  text-transform: uppercase;
}

.site-toast__body {
  display: block;
  font-family: "Manrope", sans-serif;
  font-size: 0.875rem;
  letter-spacing: 0.01em;
  line-height: 1.55;
}

.responsive-stitch-nav {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  box-sizing: border-box;
  gap: 0.75rem;
}

.responsive-stitch-nav__mobile {
  display: none;
  order: 10;
}

.touch-target {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.mobile-only {
  display: none;
}

@media (max-width: 820px) {
  .responsive-stitch-nav {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .page-home .home-nav-links {
    flex: 0 1 auto !important;
    gap: 0 !important;
  }

  .page-home .home-nav-actions,
  .page-bag .bag-nav-actions {
    gap: 0.5rem !important;
  }

  .responsive-footer {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .responsive-footer-grid {
    gap: 2rem !important;
  }

  .responsive-footer-links {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }

  .site-toast-region {
    left: 1rem;
    right: 1rem;
    width: auto;
  }

  .page-home header,
  .page-bespoke .hero-panel {
    min-height: 560px !important;
    height: 84svh !important;
  }

  .page-home header h1 {
    font-size: clamp(3.5rem, 14vw, 5.5rem) !important;
    line-height: 0.94 !important;
  }

  .page-home .hero-copy {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }

  .page-home .feature-grid,
  .page-home .feature-stack {
    gap: 2rem !important;
  }

  .page-home .newsletter-form {
    align-items: stretch !important;
  }

  .page-about .vision-panel {
    min-height: 560px !important;
    height: 76svh !important;
  }

  .page-collections .collections-layout {
    flex-direction: column !important;
    gap: 2.5rem !important;
  }

  .page-collections .collections-sidebar {
    display: grid !important;
    gap: 1.5rem !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
  }

  .page-collections .collections-sidebar section {
    margin: 0 !important;
  }

  .page-collections .collections-header h1 {
    font-size: clamp(3rem, 10vw, 4.5rem) !important;
    line-height: 0.96 !important;
  }

  .page-product .product-gallery {
    gap: 0.75rem !important;
  }

  .page-product .product-detail-panel {
    gap: 1.5rem !important;
    max-width: 44rem;
  }

  .page-product .related-rail {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }

  .page-bag .recommendations-grid {
    gap: 1.25rem !important;
  }

  .page-bespoke .process-grid {
    gap: 0.75rem !important;
  }

  .page-home .section-head,
  .page-product .section-head {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 1rem !important;
  }

  .page-bag .summary-panel,
  .page-checkout .summary-panel {
    position: static !important;
    top: auto !important;
  }
}

@media (max-width: 767px) {
  .responsive-stitch-nav {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-top: 0.9rem !important;
    padding-bottom: 0.9rem !important;
    flex-wrap: wrap;
    row-gap: 0.75rem;
  }

  .responsive-stitch-nav__desktop {
    display: none !important;
  }

  .responsive-stitch-nav__mobile {
    display: flex;
    width: 100%;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
    white-space: nowrap;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  .responsive-stitch-nav__mobile::-webkit-scrollbar {
    display: none;
  }

  .responsive-stitch-nav__mobile a {
    border-bottom: 1px solid transparent;
    color: rgba(0, 0, 0, 0.58);
    font-size: 11px;
    letter-spacing: 0.18em;
    padding-bottom: 0.2rem;
    scroll-snap-align: start;
    text-transform: uppercase;
  }

  .responsive-stitch-nav__mobile a.is-active {
    border-bottom-color: rgba(0, 0, 0, 0.35);
    color: rgba(0, 0, 0, 0.92);
  }

  .mobile-only {
    display: inline-flex;
  }

  .page-home .section-pad,
  .page-about .section-pad,
  .page-bespoke .section-pad,
  .page-product .section-pad,
  .page-collections main,
  .page-bag main,
  .page-checkout main {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .page-home .home-nav-shell {
    align-items: center !important;
  }

  .page-home .home-nav-links {
    display: none !important;
  }

  .page-home .home-nav-brand {
    margin-right: auto !important;
    order: 1;
  }

  .page-home .home-nav-actions {
    flex: 0 0 auto !important;
    gap: 0.25rem !important;
    order: 2;
  }

  .page-home .home-hero {
    height: auto !important;
    min-height: 640px !important;
  }

  .page-home .hero-copy {
    padding: 7.25rem 1rem 3rem !important;
  }

  .page-home .story-grid,
  .page-about .hero-grid,
  .page-about .story-grid,
  .page-product .product-grid,
  .page-bespoke .narrative-grid,
  .page-bespoke .consult-grid,
  .page-bag .bag-grid,
  .page-checkout .checkout-grid {
    gap: 2rem !important;
  }

  .page-home .feature-stack {
    gap: 2rem !important;
  }

  .page-home .newsletter-form {
    gap: 0.75rem !important;
  }

  .page-collections main {
    padding-top: 9.5rem !important;
  }

  .page-collections .collections-sidebar {
    gap: 1.25rem !important;
    grid-template-columns: 1fr !important;
  }

  .page-collections .collections-sidebar section {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    padding-top: 1rem;
  }

  .page-about main,
  .page-bag main,
  .page-product main,
  .page-bespoke main {
    padding-top: 8.5rem !important;
  }

  .page-checkout main {
    padding-top: 7rem !important;
  }

  .page-home .story-title,
  .page-product .story-title,
  .page-about .story-title,
  .page-bespoke .story-title {
    font-size: clamp(2.5rem, 11vw, 4rem) !important;
    line-height: 1 !important;
  }

  .page-about .hero-title {
    font-size: clamp(3rem, 13vw, 5rem) !important;
  }

  .page-product .product-gallery {
    gap: 0.85rem !important;
    grid-template-columns: 1fr !important;
  }

  .page-product .product-detail-panel h1 {
    font-size: clamp(2.25rem, 11vw, 3.25rem) !important;
  }

  .page-home .hero-actions {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .page-about .craft-carousel > div:first-child {
    min-width: 80vw !important;
  }

  .page-about .craft-carousel .craft-stack {
    width: 72vw !important;
  }

  .page-about .craft-carousel > div:last-child {
    min-width: 74vw !important;
  }

  .page-bespoke .bridal-carousel .hero-card {
    height: 66vh !important;
    width: 82vw !important;
  }

  .page-bespoke .bridal-carousel .stack-card {
    width: 72vw !important;
  }

  .page-bespoke .bridal-carousel .stack-card > div {
    height: 31vh !important;
  }

  .page-bespoke .bridal-carousel .text-card {
    height: 66vh !important;
    padding: 2rem !important;
    width: 78vw !important;
  }

  .page-bespoke .process-grid {
    grid-template-columns: 1fr !important;
  }

  .page-bag .bag-item .bag-item-top,
  .page-bag .bag-item .bag-item-bottom,
  .page-checkout .delivery-option {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
  }

  .page-bag .summary-panel,
  .page-checkout .summary-panel {
    padding: 1.5rem !important;
  }

  .page-bag .recommendations-grid {
    gap: 1rem !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .page-bag .bag-controls {
    gap: 1rem !important;
    justify-content: space-between !important;
  }

  .page-product .related-rail {
    gap: 1rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    scroll-snap-type: x proximity;
  }

  .page-product .related-card {
    scroll-snap-align: start;
    width: 82vw !important;
  }

  .page-checkout .payment-grid,
  .page-checkout .shipping-grid,
  .page-bespoke .consult-form-grid {
    gap: 1rem !important;
    grid-template-columns: 1fr !important;
  }

  .page-checkout .order-summary-wrap {
    gap: 1rem !important;
  }

  .page-checkout .order-summary-wrap > .grid {
    gap: 0.75rem !important;
  }
}

@media (max-width: 430px) {
  .page-home header,
  .page-bespoke .hero-panel {
    min-height: 520px !important;
    height: 80svh !important;
  }

  .page-home .hero-copy {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .page-home .hero-copy h1,
  .page-bespoke .hero-panel h1 {
    font-size: clamp(3rem, 15vw, 4.5rem) !important;
  }

  .page-home .home-hero {
    min-height: 560px !important;
  }

  .page-collections .product-grid {
    gap: 2.5rem !important;
  }

  .page-bag .recommendations-grid {
    grid-template-columns: 1fr !important;
  }

  .page-checkout .summary-panel {
    padding: 1.25rem !important;
  }

  .page-product .related-rail > div {
    width: 78vw !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .page-home .section-pad,
  .page-about .section-pad,
  .page-bespoke .section-pad,
  .page-product .section-pad {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }

  .page-home header,
  .page-bespoke .hero-panel,
  .page-about .vision-panel {
    height: 72svh !important;
  }

  .page-bag .bag-grid,
  .page-checkout .checkout-grid,
  .page-product .product-grid {
    gap: 3rem !important;
  }
}
