/* Shop styles stay scoped to the collection page; shared site styling is retained. */
.shop-page .catalog-page { padding-block: 38px 100px; }
.shop-page .catalog-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; color: #aaa; font-size: .95rem; }
.shop-page .catalog-breadcrumb a { text-decoration: none; }
.shop-page .catalog-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.shop-page .catalog-page-header { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-block: 58px 38px; }
.shop-page .catalog-page-header .shop-eyebrow { color: #bba47e; margin-bottom: 18px; }
.shop-page .catalog-page h1 { margin: 0; font-family: 'Font20', serif; font-size: clamp(3.6rem, 7vw, 6.5rem); line-height: 1.05; font-weight: normal; }
.shop-page .catalog-intro { margin: 18px 0 0; color: #bbb; font-size: 1.25rem; }
.shop-page .catalog-filter-button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; padding: 15px 28px; min-height: 56px; flex-shrink: 0; border: 1px solid #a18e6c; border-radius: 32px; color: #ebddc3; background: linear-gradient(135deg, #26221c, #12110f); font: 600 .8rem 'Poppins', sans-serif; cursor: pointer; transition: background .2s; }
.shop-page .catalog-filter-button:hover { background: #393024; }
.shop-page [data-filter-count] { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #e7d6b6; color: #111; font: 600 .7rem 'Poppins', sans-serif; }
.shop-page .catalog-category-nav { display: flex; align-items: baseline; gap: 30px; overflow: auto; border-bottom: 1px solid #333; scrollbar-width: thin; scrollbar-color: #555 #111; }
.shop-page .catalog-category-nav a { padding: 14px 0; white-space: nowrap; text-decoration: none; color: #aaa; font: 600 .75rem/1.8 'Poppins', sans-serif; border-bottom: 2px solid transparent; }
.shop-page .catalog-category-nav a[aria-current] { color: #fff; border-color: #c6b08a; font-size: .9rem; font-weight: 700; }
.shop-page .catalog-category-nav a:hover { color: #e7d6b6; }
.shop-page .catalog-results-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; padding-top: 22px; color: #999; }
.shop-page .catalog-results-bar p { margin: 0; font-size: .95rem; }
.shop-page .catalog-results-bar .catalog-sample-note { margin-left: auto; font-size: .85rem; }
.shop-page .catalog-clear-filters { background: none; color: #dfcfb3; border: 0; text-decoration: underline; text-underline-offset: 4px; font-size: .9rem; cursor: pointer; }
.shop-page .catalog-brand-row { padding-block: 48px 44px; border-bottom: 1px solid #303030; }
.shop-page .catalog-brand-featured { border-bottom-color: #6d5a3b; }
.shop-page .catalog-brand-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.shop-page .catalog-brand-heading .shop-eyebrow { margin: 0 0 12px; color: #888; font-size: .6rem; }
.shop-page .catalog-brand-featured .shop-eyebrow { color: #c6b08a; }
.shop-page .catalog-brand-logo, .shop-page .catalog-page-logo { display: flex; flex-direction: column; align-items: start; gap: 8px; margin: 0; }
.shop-page .catalog-brand-logo img, .shop-page .catalog-page-logo img { width: auto; height: auto; max-width: 220px; max-height: 64px; object-fit: contain; object-position: left center; }
.shop-page .catalog-brand-logo .logo-dark, .shop-page .catalog-page-logo .logo-dark { filter: grayscale(1) invert(1); mix-blend-mode: screen; }
.shop-page .catalog-page-logo { margin-bottom: 25px; }
.shop-page .catalog-brand-tagline { color: #bbb; font-size: 1.05rem; margin: 10px 0 0; }
.shop-page .catalog-row-actions { display: flex; align-items: center; gap: 28px; flex-shrink: 0; }
.shop-page .catalog-row-actions .shop-text-link { gap: 7px; }
.shop-page .catalog-row-actions .shop-text-link span { font: inherit; }
.shop-page .catalog-arrow-controls { display: flex; gap: 8px; }
.shop-page .catalog-icon-button { display: inline-grid; place-items: center; min-width: 44px; height: 44px; border: 1px solid #555; border-radius: 50%; background: transparent; color: #fff; font: 1.2rem sans-serif; cursor: pointer; }
.shop-page .catalog-icon-button:hover { background: #252525; }
.shop-page .catalog-icon-button:disabled { opacity: .3; cursor: default; }
.shop-page .catalog-product-rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 66px) / 3.6); gap: 24px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #877558 #1b1b1b; padding: 6px 1px 22px; }
.shop-page .catalog-product-rail:focus-visible { outline: 1px solid #c6b08a; outline-offset: 8px; }
.shop-page .catalog-card { min-width: 0; scroll-snap-align: start; }
.shop-page .catalog-product-link { display: block; text-decoration: none; }
.shop-page .catalog-product-link:focus-visible { outline-offset: 3px; }
.shop-page .catalog-image { position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: #171717; }
.shop-page .catalog-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.shop-page .catalog-product-link:hover .catalog-image img { transform: scale(1.035); }
.shop-page .catalog-image-belt img { position: absolute; width: 300%; height: 300%; max-width: none; left: -100%; top: -120%; }
.shop-page .catalog-image-shoes img { position: absolute; width: 180%; height: 180%; max-width: none; left: -40%; bottom: 0; }
.shop-page .catalog-card .catalog-product-brand { color: #a49275; margin: 18px 0 6px; font: 600 .6rem/1.6 'Poppins', sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.shop-page .catalog-card h3 { font: 600 .88rem/1.6 'Poppins', sans-serif; margin: 0 0 8px; }
.shop-page .catalog-card-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0 12px; margin: 0; }
.shop-page .catalog-card-bottom span { font-size: 1rem; }
.shop-page .catalog-color { color: #999; }
.shop-page .catalog-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 38px 24px; padding-top: 40px; }
.shop-page .catalog-empty { text-align: center; padding: 90px 20px; }
.shop-page .catalog-empty h2 { font-size: 1.8rem; }
.shop-page .catalog-empty p { color: #aaa; font-size: 1.2rem; }
.shop-page .catalog-filter-dialog { margin: auto; padding: 32px; width: min(480px, 92vw); max-height: 88dvh; background: #141414; color: #fff; border: 1px solid #76664a; border-radius: 12px; overflow-y: auto; }
.shop-page .catalog-filter-dialog::backdrop { background: #000b; backdrop-filter: blur(5px); }
.shop-page .catalog-filter-heading { display: flex; justify-content: space-between; gap: 20px; align-items: start; margin-bottom: 24px; }
.shop-page .catalog-filter-heading .shop-eyebrow { color: #bba47e; margin-bottom: 6px; }
.shop-page .catalog-filter-heading h2 { margin: 0; font-size: 1.6rem; text-transform: capitalize; }
.shop-page .catalog-filter-dialog label { display: block; margin-bottom: 18px; color: #c8c8c8; font: .85rem/1.6 'Poppins', sans-serif; }
.shop-page .catalog-filter-dialog select { display: block; width: 100%; margin-top: 8px; border-radius: 4px; }
.shop-page .catalog-filter-dialog select:focus-visible, .shop-page .catalog-filter-dialog input:focus-visible { outline: 2px solid #c6b08a; outline-offset: 3px; }
.shop-page .catalog-filter-dialog .catalog-checkbox { display: flex; align-items: center; gap: 12px; margin-top: 24px; }
.shop-page .catalog-checkbox input { width: 20px; height: 20px; accent-color: #c6b08a; }
.shop-page .catalog-filter-actions { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid #444; }
.shop-page .catalog-filter-actions .shop-text-link { border: 0; background: none; color: #ccc; padding: 0; cursor: pointer; }
.shop-page .catalog-filter-actions .shop-button { gap: 12px; }
.shop-page .catalog-pairing { padding-block: 25px; border-top: 1px solid #444; margin-top: 30px; }
.shop-page .catalog-pairing .shop-eyebrow { margin-bottom: 8px; color: #c6b08a; }
@media (max-width: 991px) {
  .shop-page .catalog-product-rail { grid-auto-columns: 36%; }
  .shop-page .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .shop-page .catalog-page { padding-block: 24px 65px; }
  .shop-page .catalog-page-header { padding-block: 36px 28px; gap: 14px; align-items: end; }
  .shop-page .catalog-page h1 { font-size: clamp(2.4rem, 10.5vw, 4rem); }
  .shop-page .catalog-intro { font-size: 1.1rem; }
  .shop-page .catalog-filter-button { gap: 9px; padding: 12px 16px; min-height: 48px; }
  .shop-page .catalog-filter-button svg { width: 18px; }
  .shop-page .catalog-category-nav { gap: 24px; }
  .shop-page .catalog-results-bar .catalog-sample-note { width: 100%; margin: 0; font-size: .8rem; }
  .shop-page .catalog-brand-row { padding-block: 36px 24px; }
  .shop-page .catalog-brand-heading { gap: 12px; align-items: end; }
  .shop-page .catalog-brand-logo img { max-width: 170px; max-height: 54px; }
  .shop-page .catalog-brand-tagline { max-width: 230px; font-size: .95rem; }
  .shop-page .catalog-row-actions { align-items: end; flex-direction: column; gap: 10px; }
  .shop-page .catalog-row-actions .shop-text-link { font-size: .65rem; white-space: nowrap; }
  .shop-page .catalog-arrow-controls { gap: 6px; }
  .shop-page .catalog-icon-button { min-width: 40px; height: 40px; }
  .shop-page .catalog-product-rail { grid-auto-columns: 72%; gap: 16px; }
  .shop-page .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; padding-top: 30px; }
  .shop-page .catalog-grid .catalog-card h3 { font-size: .78rem; }
  .shop-page .catalog-filter-dialog { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .shop-page .catalog-image img { transition: none; }
}
.shop-document {
  --shop-nav-height: 96px;
  height: auto;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--shop-nav-height) + 24px);
}

body.shop-page, body.product-page {
  height: auto;
  min-height: 100vh;
  padding-top: var(--shop-nav-height);
  overflow-x: clip;
  overflow-y: visible;
}

.shop-page main { margin: 0; }
.shop-page *, .shop-page *::before, .shop-page *::after { box-sizing: border-box; }
.shop-page a { color: inherit; }
.shop-page a:focus-visible, .shop-page button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 6px;
}
.shop-page .nav-link[aria-current="page"] { text-decoration: underline !important; text-underline-offset: 7px; }
.shop-page .shop-skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 2000;
  padding: 10px 20px;
  background: #fff;
  color: #000;
  transform: translateY(-180%);
}
.shop-page .shop-skip-link:focus { transform: none; }
.shop-page .shop-shell { width: min(1320px, 88%); margin: 0 auto; }
.shop-page .shop-eyebrow {
  margin: 0 0 20px;
  font-family: 'Poppins', sans-serif;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.shop-page .shop-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  min-height: 54px;
  padding: 13px 26px;
  border: 1px solid #fff;
  background: #fff;
  color: #000;
  font-family: 'Poppins', sans-serif;
  font-size: .8rem;
  font-weight: 600;
  line-height: 1.6;
  text-decoration: none;
  transition: background .25s, color .25s;
}
.shop-page .shop-button:hover { background: #000; color: #fff; }
.shop-page .shop-button-outline { background: transparent; color: #fff; }
.shop-page .shop-button-outline:hover { background: #fff; color: #000; }
.shop-page .shop-text-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 44px;
  font-family: 'Poppins', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 6px;
}
.shop-page .shop-text-link:hover { color: #c9c9c9; }
.shop-page .shop-hero {
  position: relative;
  display: flex;
  align-items: center;
  height: calc(100vh - var(--shop-nav-height));
  height: calc(100svh - var(--shop-nav-height));
  min-height: 560px;
  isolation: isolate;
  overflow: hidden;
  background: #202020;
}
.shop-page .shop-hero-images, .shop-page .shop-hero-slide, .shop-page .shop-hero::after {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.shop-page .shop-hero-images { z-index: -2; }
.shop-page .shop-hero-slide {
  object-fit: cover;
  object-position: 38% 40%;
  opacity: 0;
  transition: opacity 1.4s ease;
}
.shop-page .shop-hero-slide.is-active { opacity: 1; }
.shop-page .shop-hero::after {
  content: '';
  z-index: -1;
  background: linear-gradient(90deg, rgba(0,0,0,.05) 15%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.8) 100%);
}
.shop-page .shop-hero-content { width: 52%; margin-left: auto; padding: 55px 0 90px 5%; }
.shop-page .shop-hero h1 {
  margin: 0 0 26px;
  font-family: 'Font20', serif;
  font-size: clamp(2.8rem, 6.1vw, 6.7rem);
  font-weight: normal;
  line-height: .98;
  text-transform: uppercase;
}
.shop-page .shop-hero-copy { max-width: 400px; margin-bottom: 30px; font-size: 1.45rem; line-height: 1.55; }
.shop-page .shop-hero-bottom {
  position: absolute;
  bottom: 30px;
  left: 6%;
  right: 6%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.shop-page .shop-scroll-link {
  font-family: 'Poppins', sans-serif;
  font-size: .65rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
}
.shop-page .shop-hero-controls { display: flex; align-items: center; gap: 12px; }
.shop-page .shop-hero-controls[hidden] { display: none; }
.shop-page .shop-slide-button, .shop-page .shop-pause-button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.shop-page .shop-slide-button::after { content: ''; width: 30px; height: 2px; background: rgba(255,255,255,.4); }
.shop-page .shop-slide-button[aria-pressed="true"]::after { height: 3px; background: #fff; }
.shop-page .shop-pause-button { border: 1px solid rgba(255,255,255,.6); font-family: sans-serif; font-size: 16px; }
.shop-page .shop-labels { padding: 36px 0; border-bottom: 1px solid #333; }
.shop-page .shop-labels .shop-eyebrow { margin-bottom: 24px; text-align: center; color: #b5b5b5; font-size: .65rem; }
.shop-page .shop-logo-strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 24px; align-items: center; }
.shop-page .shop-logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 68px;
  text-decoration: none;
  transition: opacity .2s;
}
.shop-page .shop-logo-link:hover { opacity: .65; }
.shop-page .shop-logo-link:has(.shop-logo-name) { flex-direction: column; gap: 6px; }
.shop-page .shop-logo-name { font-family: 'Poppins', sans-serif; font-size: .6rem; line-height: 1.4; letter-spacing: .06em; }
.shop-page .shop-logo-link:has(.shop-logo-name) img { max-height: 40px; }
.shop-page .shop-logo-link img { display: block; width: auto; max-width: min(160px, 100%); height: auto; max-height: 60px; object-fit: contain; }
.shop-page .shop-logo-link .logo-dark { filter: grayscale(1) invert(1); mix-blend-mode: screen; }
.shop-page .shop-categories { padding: 100px 0; }
.shop-page .shop-section-intro { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 44px; }
.shop-page .shop-section-intro h2, .shop-page .shop-brands h2, .shop-page .shop-visit h2 {
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1.22;
  font-weight: 600;
  letter-spacing: -.025em;
}
.shop-page .shop-section-intro > p { max-width: 340px; margin: 0; color: #c5c5c5; font-size: 1.2rem; line-height: 1.65; }
.shop-page .shop-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.shop-page .shop-category-card {
  position: relative;
  display: flex;
  align-items: end;
  min-height: 440px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  isolation: isolate;
  background: #202020;
  text-decoration: none;
}
.shop-page .shop-category-card::after { position: absolute; inset: 0; z-index: -1; content: ''; background: linear-gradient(180deg, rgba(0,0,0,.1) 20%, rgba(0,0,0,.85) 100%); }
.shop-page .shop-category-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.shop-page .shop-category-card:hover img, .shop-page .shop-category-card:focus-visible img { transform: scale(1.035); }
.shop-page .shop-category-content { width: 100%; padding: 32px; }
.shop-page .shop-category-content h3 { margin: 0 0 6px; font-size: clamp(1.8rem, 2.6vw, 2.5rem); font-weight: 600; line-height: 1.2; }
.shop-page .shop-category-content p { margin: 0 0 24px; font-size: 1.25rem; }
.shop-page .shop-category-link { display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.5); padding-top: 14px; font-family: 'Poppins',sans-serif; font-size: .7rem; font-weight: 600; letter-spacing: .05em; }
.shop-page .shop-catalog { border-top: 1px solid #333; }
.shop-page .shop-catalog-intro { padding: 70px 0 10px; text-align: center; }
.shop-page .shop-catalog-intro h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 600; }
.shop-page .shop-catalog-intro p { color: #bdbdbd; font-size: 1.15rem; margin: 16px auto 0; max-width: 610px; }
.shop-page .shop-edit { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 2fr); gap: 7%; padding: 70px 0; border-bottom: 1px solid #333; }
.shop-page .shop-edit-copy { padding-top: 20px; }
.shop-page .shop-edit-copy h3 { margin: 0 0 24px; font-size: clamp(2rem, 3.2vw, 3.1rem); font-weight: 600; line-height: 1.2; letter-spacing: -.025em; }
.shop-page .shop-edit-copy > p:not(.shop-eyebrow) { margin-bottom: 24px; color: #c5c5c5; font-size: 1.25rem; line-height: 1.6; }
.shop-page .shop-edit-brand { display: block; color: #aaa; font-size: .85rem; margin-bottom: 24px; }
.shop-page .shop-product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.shop-page .shop-product { min-width: 0; }
.shop-page .shop-product img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: #171717; }
.shop-page .shop-product h4 { margin: 18px 0 4px; font-size: 1.1rem; font-weight: 600; line-height: 1.4; }
.shop-page .shop-product p { margin: 0; color: #aaa; font-size: 1rem; line-height: 1.5; }
.shop-page .shop-back-link { display: inline-block; margin-top: 30px; color: #aaa; font-size: 1rem; text-underline-offset: 5px; }
.shop-page .shop-outfit { position: relative; padding: 70px 0; border-bottom: 1px solid #333; }
.shop-page .shop-outfit-anchor { position: absolute; top: 0; }
.shop-page .shop-outfit-heading { margin-bottom: 32px; }
.shop-page .shop-outfit-heading h3 { margin: 0 0 12px; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.15; font-weight: 600; }
.shop-page .shop-outfit-heading > p:last-child { margin: 0; color: #bdbdbd; font-size: 1.2rem; }
.shop-page .shop-outfit-look { max-width: 880px; margin: 0 auto; }
.shop-page .shop-outfit-photo { display: block; width: 100%; height: auto; background: #292724; }
.shop-page .shop-outfit-pieces { list-style: none; padding: 0; margin: 24px 0 0; border-top: 1px solid #444; }
.shop-page .shop-outfit-pieces li { border-bottom: 1px solid #333; }
.shop-page .shop-outfit-piece { display: grid; grid-template-columns: 72px 150px minmax(0, 1fr) 20px; align-items: center; gap: 20px; min-height: 76px; padding: 14px 12px; text-decoration: none; transition: background .2s; }
.shop-page .shop-outfit-piece:hover { background: #171717; }
.shop-page .shop-outfit-piece:hover .shop-outfit-name { text-decoration: underline; text-underline-offset: 5px; }
.shop-page .shop-outfit-label { color: #aaa; font-size: 1rem; }
.shop-page .shop-outfit-brand { display: flex; align-items: center; min-height: 36px; }
.shop-page .shop-outfit-brand img { display: block; width: auto; height: auto; max-width: 140px; max-height: 32px; object-fit: contain; }
.shop-page .shop-outfit-brand .logo-dark { filter: grayscale(1) invert(1); mix-blend-mode: screen; }
.shop-page .shop-outfit-name { font-size: 1.05rem; line-height: 1.4; }
.shop-page .shop-outfit-piece-unbranded .shop-outfit-name { grid-column: 2 / 4; }
.shop-page .shop-outfit-arrow { justify-self: end; color: #aaa; }
.shop-page .shop-product-detail { padding: 55px 0 80px; }
.shop-page .shop-product-navigation { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 12px; margin: 0 0 35px; }
.shop-page .shop-product-navigation > .shop-button { min-width: 0; text-align: center; white-space: normal; }
.shop-page .shop-product-detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: start; gap: 7%; }
.shop-page .shop-product-detail figure { margin: 0; }
.shop-page .shop-product-detail figcaption { margin-top: 12px; color: #aaa; font-size: .95rem; }
.shop-page .shop-product-detail-copy { padding-top: 25px; }
.shop-page .shop-product-detail-copy h1 { margin: 25px 0; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 600; line-height: 1.15; }
.shop-page .shop-product-detail-copy > p { color: #c5c5c5; font-size: 1.2rem; line-height: 1.6; }
.shop-page .shop-product-detail-copy .shop-outfit-brand img { max-width: 180px; max-height: 45px; }
.shop-page .shop-featured-outfits { margin-top: 32px; padding-top: 28px; border-top: 1px solid #444; }
.shop-page .shop-featured-outfits h2 { margin: 0 0 20px; font-size: 1.25rem; line-height: 1.4; }
.shop-page .shop-featured-outfit-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; }
.shop-page .shop-featured-outfit { display: block; max-width: 260px; text-decoration: none; }
.shop-page .shop-featured-outfit > span { display: flex; justify-content: space-between; gap: 16px; padding-top: 12px; }
.shop-page .shop-featured-outfit:hover > span, .shop-page .shop-featured-outfit:focus-visible > span { text-decoration: underline; text-underline-offset: 4px; }
.shop-page .shop-product-attributes { display: grid; grid-template-columns: 80px 1fr; gap: 14px; margin: 28px 0; padding: 22px 0; border-block: 1px solid #333; font-size: 1.1rem; }
.shop-page .shop-product-attributes dt { color: #aaa; font-weight: 400; }
.shop-page .shop-product-attributes dd { margin: 0; }
.shop-page .shop-product-purchase { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 28px; }
.shop-page [hidden] { display: none !important; }
.shop-page .shop-demo-notice { color: #b7b7b7; font-family: 'Poppins', sans-serif; font-size: .75rem; line-height: 1.7; }
.shop-page .shop-product-price { font-size: 2rem; margin: 14px 0 24px; }
.shop-page .shop-cart-item-controls label { display: block; font-size: 1rem; color: #bbb; margin-bottom: 8px; }
.shop-page select { border: 1px solid #666; border-radius: 0; padding: 12px; min-height: 48px; background: #111; color: #fff; font-size: 1rem; }
.shop-page .shop-size-selection { margin-bottom: 24px; }
.shop-page [data-store-product] .shop-size-selection { position: relative; }
.shop-page .shop-size-selection.is-out-of-stock .shop-choice-group { opacity: .6; }
.shop-page .is-out-of-stock .shop-choice-button[aria-pressed="true"] { background: transparent; }
.shop-page .shop-out-of-stock { position: absolute; z-index: 1; inset: 0; display: grid; place-items: center; margin: 0; color: #fff; font-size: clamp(1.2rem, 3vw, 1.5rem); font-weight: 600; text-shadow: 0 1px 4px #000, 0 0 12px #000, 0 0 24px #000; pointer-events: none; }
.shop-page .shop-choice-group { min-width: 0; margin: 0 0 24px; padding: 0; border: 0; }
.shop-page .shop-choice-group legend { float: none; width: auto; margin: 0 0 12px; color: #bbb; font-size: 1rem; line-height: 1.5; }
.shop-page .shop-choice-options { display: flex; flex-wrap: wrap; gap: 10px; }
.shop-page .shop-choice-button { position: relative; min-width: 52px; min-height: 48px; padding: 12px 15px; border: 1px solid #666; border-radius: 0; background: transparent; color: #fff; font-family: 'Poppins', sans-serif; font-size: .9rem; font-weight: 600; line-height: 1.5; cursor: pointer; }
.shop-page .shop-choice-button:hover:not(:disabled):not([aria-pressed="true"]) { border-color: #fff; background: #222; }
.shop-page .shop-choice-button[aria-pressed="true"] { border-color: #fff; background: #fff; color: #000; }
.shop-page .shop-choice-button:disabled { border-color: #303030; color: #666; cursor: not-allowed; }
.shop-page .shop-choice-button.is-unavailable::after { position: absolute; inset: 0; content: ''; background: linear-gradient(to bottom right, transparent calc(50% - .5px), #555 50%, transparent calc(50% + .5px)); pointer-events: none; }
.shop-page [data-length-options] .shop-choice-button { flex: 1; min-width: 80px; }
.shop-page .shop-stock { margin: 16px 0; color: #bbb; font-size: 1rem; }
.shop-page button.shop-button { cursor: pointer; }
.shop-page button.shop-button:disabled { opacity: .4; cursor: not-allowed; }
.shop-page .shop-cart-status { min-height: 24px; margin: 20px 0 0; font-size: 1rem; line-height: 1.5; color: #ccc; }
.shop-page .shop-product-contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: min(100%, 760px);
  margin: clamp(48px, 6vw, 80px) auto 0;
  padding: clamp(28px, 4vw, 44px) 0 0;
  border-top: 1px solid #333;
  text-align: center;
}
.shop-page .shop-product-contact h2 { margin: 0; color: #fff; font-family: 'Font20', serif; font-size: clamp(1.75rem, 3vw, 2.3rem); font-weight: 400; line-height: 1.25; }
.shop-page .shop-product-contact-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: 100%; max-width: 640px; }
.shop-page .shop-product-contact .shop-button { width: 100%; min-width: 0; gap: 12px; padding-inline: 18px; }
.shop-page .shop-product-contact a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.shop-page .shop-product-contact svg { flex-shrink: 0; }
@media (max-width: 600px) {
  .shop-page .shop-product-contact-actions { grid-template-columns: 1fr; max-width: 360px; }
}
.shop-page .shop-cart-page { padding: 45px 0 90px; min-height: 65vh; }
.shop-page .shop-cart-page > .shop-back-link { margin: 0 0 35px; }
.shop-page .shop-cart-page h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 600; margin-bottom: 24px; }
.shop-page .shop-cart-items { margin-top: 38px; border-top: 1px solid #444; }
.shop-page .shop-cart-item { display: grid; grid-template-columns: minmax(0, 1fr) 100px 100px; align-items: center; gap: 28px; padding: 28px 0; border-bottom: 1px solid #333; }
.shop-page .shop-cart-product { font-size: 1.4rem; text-underline-offset: 5px; }
.shop-page .shop-cart-item p { color: #aaa; font-size: 1rem; margin: 8px 0 0; }
.shop-page .shop-cart-item > strong { text-align: right; font-size: 1.1rem; }
.shop-page .shop-cart-remove { display: block; margin-top: 10px; padding: 4px 0; border: 0; background: transparent; color: #bbb; text-decoration: underline; font-size: .9rem; cursor: pointer; }
.shop-page .shop-cart-summary { max-width: 420px; margin: 35px 0 0 auto; }
.shop-page .shop-cart-summary > p:first-child { display: flex; justify-content: space-between; gap: 24px; font-size: 1.4rem; }
.shop-page .shop-cart-summary > small { display: block; color: #aaa; font-size: 1rem; line-height: 1.6; margin-bottom: 24px; }
.shop-page .shop-cart-summary > .shop-button { display: flex; width: 100%; }
.shop-page .shop-cart-summary > .shop-text-link { margin-top: 16px; }
.shop-page .shop-cart-empty, .shop-page .shop-cart-confirmation { margin: 40px 0; font-size: 1.25rem; }
.shop-page .shop-brands { padding: 100px 0; }
.shop-page .shop-brand-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 60px; margin-top: 48px; }
.shop-page .shop-brand-card { padding: 28px 0; border-top: 1px solid #555; }
.shop-page .shop-brand-mark { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; min-height: 110px; margin-bottom: 24px; }
.shop-page .shop-brand-mark img { display: block; width: auto; max-width: 220px; max-height: 75px; height: auto; object-fit: contain; }
.shop-page .shop-brand-name { color: #bbb; font-family: 'Poppins', sans-serif; font-size: .72rem; line-height: 1.5; letter-spacing: .05em; }
.shop-page .shop-brand-mark .logo-dark { filter: grayscale(1) invert(1); mix-blend-mode: screen; }
.shop-page .shop-brand-card h3 { margin: 0 0 14px; font-size: 1.25rem; font-weight: 600; }
.shop-page .shop-brand-card p { margin-bottom: 18px; color: #c5c5c5; font-size: 1.1rem; line-height: 1.7; }
.shop-page .shop-visit { padding: 85px 6%; text-align: center; background: #151515; }
.shop-page .shop-visit p:not(.shop-eyebrow) { max-width: 600px; margin: 24px auto 30px; color: #ccc; font-size: 1.3rem; }
.shop-page .shop-visit-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
/* Shop footer: map, store details, copyright, then map credits. */
.shop-page .site-footer { width: 100%; margin-top: 0; padding-top: 24px !important; }
.shop-page .footer-container { flex-direction: column; gap: 20px; padding: 0 20px 24px; }
.shop-page .footer-map-container { width: 100%; max-width: 500px; }
.shop-page .footer-map { width: 100%; min-width: 0; }
.shop-page .footer-map-container #footer-map { margin: 0; }
.shop-page .footer-left { flex: none; min-width: 0; width: 100%; padding-bottom: 0 !important; }
.shop-page .footer-left p { margin: 8px 0; }
.shop-page .shop-footer-contact { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.shop-page .shop-footer-contact svg { flex-shrink: 0; }
.shop-page .footer-bottom { margin-top: 0; padding: 0 20px; }
.shop-page .shop-footer-map-data { font-size: 10px; color: gray; }

@media (max-width: 1100px) {
  .shop-document { --shop-nav-height: 76px; }
  .shop-page .shop-shell { width: 90%; }
  .shop-page .shop-category-card { min-height: 340px; }
  .shop-page .shop-category-content { padding: 24px; }
  .shop-page .shop-edit { gap: 5%; }
  .shop-page .shop-logo-strip { gap: 20px; }
  .shop-page .shop-logo-link img { max-width: 130px; }
}
@media (max-width: 767px) {
  .shop-document { --shop-nav-height: 66px; }
  .shop-page .shop-hero { align-items: end; min-height: 600px; }
  .shop-page .shop-hero-content { width: 100%; margin: 0; padding: 220px 0 115px; }
  .shop-page .shop-hero h1 { max-width: 430px; font-size: clamp(2.65rem, 12vw, 4.6rem); }
  .shop-page .shop-hero-slide { object-position: 34% center; }
  .shop-page .shop-hero::after { background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.3) 35%, rgba(0,0,0,.92) 100%); }
  .shop-page .shop-hero-copy { max-width: 320px; font-size: 1.25rem; }
  .shop-page .shop-hero-bottom { bottom: 22px; left: 5%; right: 5%; gap: 10px; }
  .shop-page .shop-hero-controls { gap: 4px; }
  .shop-page .shop-scroll-link { font-size: .5rem; letter-spacing: .04em; white-space: nowrap; }
  .shop-page .shop-hero-slide:nth-child(3) { object-position: 76% center; }
  .shop-page .shop-logo-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
  .shop-page .shop-logo-link { min-height: 60px; }
  .shop-page .shop-logo-link img { max-width: 100%; max-height: 48px; }
  .shop-page .shop-categories, .shop-page .shop-brands { padding: 65px 0; }
  .shop-page .shop-section-intro { display: block; margin-bottom: 30px; }
  .shop-page .shop-section-intro > p { margin-top: 24px; }
  .shop-page .shop-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .shop-page .shop-category-card { min-height: 300px; aspect-ratio: 3 / 4; }
  .shop-page .shop-category-content { padding: 20px; }
  .shop-page .shop-category-content h3 { font-size: 1.6rem; }
  .shop-page .shop-category-content p { font-size: 1rem; margin-bottom: 16px; }
  .shop-page .shop-category-link { font-size: .6rem; }
  .shop-page .shop-edit { display: block; padding: 46px 0; }
  .shop-page .shop-outfit { padding: 46px 0; }
  .shop-page .shop-outfit-piece { grid-template-columns: 58px 100px minmax(0, 1fr) 14px; gap: 12px; padding: 14px 4px; }
  .shop-page .shop-outfit-brand img { max-width: 96px; max-height: 28px; }
  .shop-page .shop-outfit-label, .shop-page .shop-outfit-name { font-size: .95rem; }
  .shop-page .shop-product-navigation { gap: 10px; }
  .shop-page .shop-product-navigation > .shop-button { flex: 1 1 0; padding: 12px 10px; min-height: 54px; }
  .shop-page .shop-product-detail-grid { grid-template-columns: 1fr; gap: 30px; }
  .shop-page .shop-product-detail-copy { padding-top: 0; }
  .shop-page .shop-cart-item { grid-template-columns: minmax(0, 1fr) 70px; gap: 18px; }
  .shop-page .shop-cart-item > strong { grid-column: 1 / -1; text-align: left; }
  .shop-page .shop-edit-copy { padding: 0 0 30px; }
  .shop-page .shop-edit-copy h3 { margin-bottom: 18px; }
  .shop-page .shop-edit-brand { margin-bottom: 12px; }
  .shop-page .shop-product-grid { gap: 16px; }
  .shop-page .shop-product h4 { font-size: .95rem; }
  .shop-page .shop-product p { font-size: .9rem; }
  .shop-page .shop-brand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .shop-page .shop-brand-mark img { max-width: 100%; max-height: 60px; }
  .shop-page .shop-visit { padding: 60px 5%; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .shop-page .shop-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 360px) {
  .shop-page .shop-outfit-piece { grid-template-columns: 50px 82px minmax(0, 1fr) 12px; gap: 8px; }
  .shop-page .shop-outfit-brand img { max-width: 80px; }
  .shop-page .shop-scroll-link { display: none; }
  .shop-page .shop-hero-bottom { justify-content: flex-end; }
}
@media (max-width: 480px) {
  .shop-page .shop-category-grid { grid-template-columns: 1fr; gap: 22px; }
  .shop-page .shop-category-card { min-height: 390px; aspect-ratio: 4 / 5; }
  .shop-page .shop-category-content { padding: 28px; }
  .shop-page .shop-category-content h3 { font-size: 2.25rem; }
  .shop-page .shop-category-content p { font-size: 1.2rem; }
  .shop-page .shop-category-link { font-size: .7rem; }
  .shop-page .shop-brand-grid { grid-template-columns: 1fr; gap: 0; }
  .shop-page .shop-brand-mark { min-height: 100px; }
  .shop-page .shop-brand-mark img { max-width: 200px; }
}
@media (prefers-reduced-motion: reduce) {
  .shop-document { scroll-behavior: auto; }
  .shop-page .shop-hero-slide, .shop-page .shop-category-card img { transition: none; }
  .shop-page .shop-category-card:hover img { transform: none; }
}

.shop-page .shop-label-wordmark { color: #eee; font-family: Georgia, serif; font-size: 2rem; font-weight: 400; letter-spacing: .08em; line-height: 1.3; }
.shop-page .shop-product-photos { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.shop-page .shop-product-photos[hidden] { display: none; }
.shop-page .shop-product-photos button { padding: 0; border: 1px solid #555; background: #191919; cursor: pointer; }
.shop-page .shop-product-photos button[aria-pressed="true"] { border-color: #d4c8b3; outline: 1px solid #d4c8b3; }
.shop-page .shop-product-photos img { display: block; width: 72px; height: 90px; object-fit: contain; }
