@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Inter:wght@400;500;600&display=swap');

:root {
  --black: #050505;
  --ink: #0b0b0b;
  --paper: #ecebe6;
  --muted: #9b9b95;
  --line: rgba(236, 235, 230, 0.19);
  --header-height: 92px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--black);
  color: var(--paper);
  font-family: Inter, Arial, sans-serif;
  overflow-x: hidden;
}
body.locked { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { max-width: 100%; }

.noise {
  position: fixed;
  inset: 0;
  opacity: .055;
  pointer-events: none;
  z-index: 100;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 40;
  height: var(--header-height);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 36px;
  border-bottom: 1px solid transparent;
  transition: background .3s, border-color .3s;
}
.site-header.scrolled {
  background: rgba(5,5,5,.91);
  backdrop-filter: blur(12px);
  border-color: var(--line);
}

.wordmark {
  justify-self: center;
  display: flex;
  align-items: baseline;
  gap: 8px;
  letter-spacing: .18em;
  font-size: 11px;
}
.wordmark strong {
  font-family: "Cormorant Garamond", serif;
  font-size: 29px;
  letter-spacing: .08em;
}

.header-actions {
  justify-self: end;
  display: flex;
  gap: 18px;
  align-items: center;
}
.currency-button, .icon-button, .close-button {
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.currency-button {
  font-size: 11px;
  letter-spacing: .12em;
}

.icon-button { width: 34px; height: 34px; padding: 4px; }
.menu-button { display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.menu-button span { display: block; width: 22px; height: 1px; background: currentColor; transition: transform .25s, opacity .25s; }
.menu-button.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-button.open span:nth-child(2) { opacity: 0; }
.menu-button.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.bag-button { position: relative; }
.bag-icon {
  display: block;
  width: 17px;
  height: 19px;
  border: 1px solid currentColor;
  margin: 7px auto 0;
}
.bag-icon::before {
  content: "";
  position: absolute;
  width: 8px;
  height: 6px;
  border: 1px solid currentColor;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  top: 5px;
  left: 13px;
}
.cart-count {
  position: absolute;
  right: -2px;
  top: 0;
  font-size: 10px;
}

.main-nav {
  position: fixed;
  z-index: 35;
  inset: 0 auto 0 0;
  width: min(420px, 88vw);
  padding: 135px 42px 40px;
  background: #090909;
  border-right: 1px solid var(--line);
  transform: translateX(-105%);
  transition: transform .45s cubic-bezier(.77,0,.18,1);
  display: flex;
  flex-direction: column;
}
.main-nav.open { transform: translateX(0); }
.main-nav a {
  padding: 12px 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(30px, 5vw, 48px);
  border-bottom: 1px solid var(--line);
  transition: padding-left .2s, opacity .2s;
}
.main-nav a:hover { padding-left: 12px; opacity: .65; }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: end;
  overflow: hidden;
}
.hero-art {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 68% 38%, rgba(255,255,255,.14), transparent 8%),
    radial-gradient(circle at 38% 36%, rgba(255,255,255,.08), transparent 2%),
    linear-gradient(120deg, transparent 42%, rgba(255,255,255,.07) 43%, transparent 45%),
    linear-gradient(30deg, transparent 50%, rgba(255,255,255,.05) 51%, transparent 52%),
    url("assets/hero-placeholder.svg") center/cover no-repeat;
  filter: grayscale(1) contrast(1.22);
  transform: scale(1.035);
  animation: slowZoom 14s ease-out both;
}
.hero-vignette {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.16) 65%), linear-gradient(0deg, rgba(0,0,0,.8), transparent 50%);
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 860px;
  padding: 150px 7vw 10vh;
}
.eyebrow {
  margin: 0 0 20px;
  color: #bbb9b0;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: 10px;
  line-height: 1.5;
}
.hero h1, .section h2, .manifesto h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
}
.hero h1 {
  margin: 0;
  font-size: clamp(62px, 10vw, 150px);
  line-height: .76;
  letter-spacing: -.045em;
}
.hero-copy {
  max-width: 450px;
  margin: 34px 0 0;
  color: #c9c7c0;
  font-size: 14px;
  line-height: 1.8;
}
.primary-link {
  display: inline-flex;
  gap: 40px;
  margin-top: 34px;
  padding-bottom: 9px;
  border-bottom: 1px solid currentColor;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 11px;
}
.scroll-cue {
  position: absolute;
  z-index: 2;
  right: 35px;
  bottom: 45px;
  writing-mode: vertical-rl;
  font-size: 9px;
  letter-spacing: .25em;
  text-transform: uppercase;
}

.ticker {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
  padding: 15px 0;
}
.ticker div {
  display: flex;
  width: max-content;
  animation: ticker 25s linear infinite;
}
.ticker span {
  margin-right: 60px;
  font-size: 10px;
  letter-spacing: .22em;
}
.ticker span::after { content: "✦"; margin-left: 60px; }

.section { padding: 120px 5vw; }
.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 55px;
}
.section h2 {
  margin: 0;
  font-size: clamp(52px, 7vw, 100px);
  line-height: .85;
  font-weight: 500;
}
.text-link {
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding-bottom: 6px;
  border-bottom: 1px solid currentColor;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.product-card { min-width: 0; }
.product-image {
  position: relative;
  aspect-ratio: .78;
  overflow: hidden;
  background: #161616;
}
.product-image::before, .product-image::after {
  content: "";
  position: absolute;
  inset: 8%;
  transition: transform .6s ease, filter .6s ease;
}
.product-image::before {
  background: var(--image);
  box-shadow: 0 25px 60px rgba(0,0,0,.55);
}
.product-image::after {
  inset: 0;
  background: radial-gradient(circle, transparent 30%, rgba(0,0,0,.65) 100%);
}
.product-card:hover .product-image::before { transform: scale(1.045) rotate(.5deg); filter: contrast(1.12); }
.product-image-1 { --image: repeating-radial-gradient(circle at 50% 44%, #d7d5cd 0 2px, #151515 3px 7px); }
.product-image-2 { --image: linear-gradient(140deg, #080808 30%, #6f6f6a 31% 33%, #111 34% 66%, #b5b3aa 67% 69%, #080808 70%); }
.product-image-3 { --image: radial-gradient(circle at center, #d0cec5 0 5%, #111 6% 27%, #9d9b94 28% 29%, #111 30% 48%, #dbd9d0 49% 50%, #111 51%); }
.product-image-4 { --image: repeating-linear-gradient(90deg, #0c0c0c 0 12px, #92918a 13px 14px), linear-gradient(#111,#777); }
.product-badge {
  position: absolute;
  z-index: 2;
  top: 13px;
  left: 13px;
  padding: 7px 9px;
  color: #090909;
  background: var(--paper);
  font-size: 8px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.product-meta {
  min-height: 82px;
  padding: 15px 0 8px;
  display: flex;
  justify-content: space-between;
  gap: 15px;
}
.product-meta h3 { margin: 0 0 6px; font-size: 13px; font-weight: 500; }
.product-meta p { margin: 0; color: var(--muted); font-size: 10px; }
.product-meta strong { white-space: nowrap; font-size: 12px; }
.add-button, .checkout-button {
  width: 100%;
  padding: 14px 18px;
  border: 1px solid var(--paper);
  background: transparent;
  color: var(--paper);
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: 9px;
  cursor: pointer;
  transition: color .25s, background .25s;
}
.add-button:hover, .checkout-button:hover { color: var(--black); background: var(--paper); }

.news-section { background: var(--paper); color: var(--ink); }
.news-section .eyebrow { color: #5c5c58; }
.news-list { border-top: 1px solid rgba(0,0,0,.25); }
.news-item {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 25px;
  align-items: center;
  padding: 31px 0;
  border-bottom: 1px solid rgba(0,0,0,.25);
}
.news-item time, .news-item span { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.news-item h3 { margin: 0; font-family: "Cormorant Garamond", serif; font-size: clamp(25px, 4vw, 52px); font-weight: 500; transition: transform .2s; }
.news-item:hover h3 { transform: translateX(8px); }

.manifesto {
  min-height: 75vh;
  padding: 110px 7vw;
  display: grid;
  grid-template-columns: .6fr 1.4fr;
  gap: 8vw;
  align-items: center;
}
.manifesto-mark {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(70px, 13vw, 180px);
}
.manifesto h2 { margin: 0; font-size: clamp(45px, 7vw, 100px); line-height: .9; }
.manifesto div:last-child > p:last-child { color: var(--muted); max-width: 620px; line-height: 1.9; font-size: 13px; }

.site-footer {
  padding: 60px 5vw 35px;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 60px;
  align-items: end;
  font-size: 10px;
  color: var(--muted);
}
.footer-title { color: var(--paper); font-family: "Cormorant Garamond", serif; font-size: 27px; margin: 0 0 10px; }
.footer-links { display: flex; gap: 24px; }

.cart-drawer {
  position: fixed;
  z-index: 60;
  inset: 0 0 0 auto;
  width: min(480px, 100vw);
  padding: 32px;
  background: #0a0a0a;
  border-left: 1px solid var(--line);
  transform: translateX(102%);
  transition: transform .42s cubic-bezier(.77,0,.18,1);
  display: flex;
  flex-direction: column;
}
.cart-drawer.open { transform: translateX(0); }
.drawer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}
.drawer-header h2 { margin: 0; font-family: "Cormorant Garamond", serif; text-transform: uppercase; letter-spacing: .08em; }
.close-button { font-size: 35px; }
.cart-items { flex: 1; overflow-y: auto; padding: 22px 0; }
.empty-message { color: var(--muted); font-size: 12px; }
.cart-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  padding: 17px 0;
  border-bottom: 1px solid var(--line);
}
.cart-item h3 { margin: 0 0 6px; font-size: 12px; }
.cart-item p { margin: 0; color: var(--muted); font-size: 10px; }
.remove-item { margin-top: 7px; padding: 0; border: 0; background: none; color: var(--muted); font-size: 9px; cursor: pointer; text-decoration: underline; }
.cart-totals { padding: 22px 0; border-top: 1px solid var(--line); }
.cart-totals div { display: flex; justify-content: space-between; gap: 30px; padding: 7px 0; font-size: 10px; }
.total-row { margin-top: 10px; padding-top: 15px !important; border-top: 1px solid var(--line); text-transform: uppercase; letter-spacing: .13em; }
.checkout-button { background: var(--paper); color: var(--black); }
.demo-note { text-align: center; color: var(--muted); font-size: 9px; }

.overlay {
  position: fixed;
  z-index: 30;
  inset: 0;
  background: rgba(0,0,0,.68);
  opacity: 0;
  visibility: hidden;
  transition: .3s;
}
.overlay.visible { opacity: 1; visibility: visible; }
.toast {
  position: fixed;
  z-index: 80;
  left: 50%;
  bottom: 25px;
  transform: translate(-50%, 30px);
  padding: 12px 18px;
  background: var(--paper);
  color: var(--black);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .13em;
  opacity: 0;
  transition: .25s;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@keyframes slowZoom { from { transform: scale(1.09); } to { transform: scale(1.035); } }
@keyframes ticker { to { transform: translateX(-50%); } }

@media (max-width: 950px) {
  :root { --header-height: 76px; }
  .site-header { padding: 0 18px; }
  .wordmark > span, .currency-button { display: none; }
  .wordmark strong { font-size: 24px; }
  .hero-content { padding: 130px 24px 70px; }
  .hero h1 { font-size: clamp(58px, 18vw, 108px); }
  .scroll-cue { display: none; }
  .section { padding: 85px 20px; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .manifesto { grid-template-columns: 1fr; padding: 85px 20px; }
  .manifesto-mark { max-width: 330px; }
  .site-footer { grid-template-columns: 1fr; gap: 25px; }
}

@media (max-width: 560px) {
  .hero h1 { line-height: .82; }
  .hero-copy { max-width: 290px; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .product-grid { grid-template-columns: 1fr; gap: 38px; }
  .news-item { grid-template-columns: 1fr auto; gap: 9px; }
  .news-item time { grid-column: 1 / -1; }
  .news-item h3 { font-size: 32px; }
  .manifesto { min-height: auto; }
  .cart-drawer { padding: 22px; }
}


/* ===== v0.2 — Typography and centered homepage ===== */

.hero {
  align-items: center;
}

.hero-vignette {
  background:
    radial-gradient(circle at center, rgba(0,0,0,.05) 0%, rgba(0,0,0,.32) 56%, rgba(0,0,0,.78) 100%),
    linear-gradient(0deg, rgba(0,0,0,.72), transparent 42%);
}

.hero-content {
  width: min(760px, calc(100% - 40px));
  max-width: none;
  margin: 0 auto;
  padding: 150px 20px 90px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero h1 {
  font-size: clamp(42px, 6.6vw, 94px);
  line-height: .88;
  letter-spacing: -.035em;
}

.hero-copy {
  max-width: 390px;
  margin-top: 24px;
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}

.hero .eyebrow {
  margin-bottom: 16px;
  font-size: 8px;
  letter-spacing: .2em;
}

.primary-link {
  margin-top: 26px;
  gap: 26px;
  font-size: 9px;
  letter-spacing: .14em;
}

.scroll-cue {
  right: 22px;
  bottom: 30px;
  font-size: 8px;
}

.wordmark {
  font-size: 9px;
}

.wordmark strong {
  font-size: 24px;
}

.main-nav a {
  font-size: clamp(25px, 4vw, 40px);
}

.section {
  padding-top: 105px;
  padding-bottom: 105px;
}

.section-heading {
  justify-content: center;
  text-align: center;
  flex-direction: column;
  align-items: center;
  margin-bottom: 48px;
}

.section-heading .eyebrow {
  margin-bottom: 14px;
}

.section h2 {
  font-size: clamp(40px, 5.2vw, 72px);
  line-height: .92;
}

.text-link {
  font-size: 8px;
}

.product-meta h3 {
  font-size: 11px;
}

.product-meta p,
.product-meta strong {
  font-size: 9px;
}

.add-button,
.checkout-button {
  font-size: 8px;
  padding: 12px 15px;
}

.news-item h3 {
  font-size: clamp(22px, 3vw, 40px);
}

.news-item time,
.news-item span {
  font-size: 8px;
}

.manifesto {
  text-align: center;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 46px;
}

.manifesto-mark {
  width: min(280px, 65vw);
  font-size: clamp(60px, 10vw, 130px);
}

.manifesto h2 {
  max-width: 900px;
  font-size: clamp(38px, 5vw, 68px);
  line-height: .95;
}

.manifesto div:last-child {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.manifesto div:last-child > p:last-child {
  font-size: 11px;
  line-height: 1.8;
  text-align: center;
}

.footer-title {
  font-size: 22px;
}

.site-footer,
.site-footer a,
.site-footer p {
  font-size: 9px;
}

@media (max-width: 950px) {
  .hero-content {
    padding: 120px 20px 70px;
  }

  .hero h1 {
    font-size: clamp(42px, 12vw, 74px);
  }

  .section {
    padding-top: 78px;
    padding-bottom: 78px;
  }

  .section h2 {
    font-size: clamp(38px, 9vw, 62px);
  }
}

@media (max-width: 560px) {
  .hero-content {
    width: min(92%, 560px);
    padding-top: 110px;
  }

  .hero h1 {
    font-size: clamp(40px, 13vw, 62px);
    line-height: .9;
  }

  .hero-copy {
    max-width: 300px;
    font-size: 11px;
  }

  .section-heading {
    align-items: center;
    text-align: center;
  }

  .news-item h3 {
    font-size: 27px;
  }
}


/* ===== v0.3 — Logo above hero text ===== */

.hero-logo {
  display: block;
  width: clamp(120px, 18vw, 260px);
  max-height: 170px;
  object-fit: contain;
  margin: 0 auto 28px;
  opacity: 0;
  transform: translateY(14px) scale(.98);
  animation: heroLogoIn 1.1s cubic-bezier(.22, 1, .36, 1) .12s forwards;
  filter: drop-shadow(0 10px 28px rgba(0,0,0,.28));
}

.hero-content > *:not(.hero-logo) {
  position: relative;
  z-index: 1;
}

@keyframes heroLogoIn {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 560px) {
  .hero-logo {
    width: clamp(105px, 38vw, 180px);
    max-height: 125px;
    margin-bottom: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-logo {
    animation: none;
    opacity: 1;
    transform: none;
  }
}


/* ===== v0.4 — Definitive hero and header ===== */

:root {
  --header-height: 82px;
}

.site-header {
  grid-template-columns: 1fr auto 1fr;
  height: var(--header-height);
  padding: 0 30px;
  background: linear-gradient(to bottom, rgba(0,0,0,.38), transparent);
  transition:
    background .35s ease,
    border-color .35s ease,
    height .35s ease,
    backdrop-filter .35s ease;
}

.site-header.scrolled {
  height: 70px;
  background: rgba(5,5,5,.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.header-logo-link {
  justify-self: center;
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  opacity: .94;
  transition: width .3s ease, height .3s ease, opacity .25s ease, transform .25s ease;
}

.header-logo-link:hover {
  opacity: 1;
  transform: scale(1.025);
}

.header-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.site-header.scrolled .header-logo-link {
  width: 42px;
  height: 42px;
}

.currency-button {
  font-size: 9px;
  letter-spacing: .14em;
}

.header-actions {
  gap: 13px;
}

.main-nav {
  padding-top: 118px;
  background:
    radial-gradient(circle at 10% 8%, rgba(255,255,255,.035), transparent 25%),
    rgba(7,7,7,.985);
}

.main-nav::before {
  content: "";
  width: 76px;
  height: 76px;
  margin: 0 0 30px;
  background: url("assets/logo-opi-bianco.png") center/contain no-repeat;
  opacity: .88;
}

.main-nav a {
  font-size: clamp(26px, 4.5vw, 42px);
  line-height: 1;
}

.hero {
  min-height: 100svh;
  align-items: center;
  isolation: isolate;
}

.hero-art {
  transform: scale(1.06);
  filter: grayscale(1) contrast(1.28) brightness(.7);
  animation: definitiveHeroZoom 20s ease-out both;
}

.hero-vignette {
  background:
    radial-gradient(circle at 50% 42%, transparent 0 16%, rgba(0,0,0,.18) 46%, rgba(0,0,0,.72) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.26), rgba(0,0,0,.05) 38%, rgba(0,0,0,.72));
}

.hero-content {
  width: min(920px, calc(100% - 48px));
  min-height: 100svh;
  padding: calc(var(--header-height) + 48px) 24px 72px;
  justify-content: center;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-logo {
  width: clamp(250px, 26vw, 360px);
  height: auto;
  max-height: none;
  margin: 0 auto 34px;
  object-fit: contain;
  opacity: 0;
  transform: translateY(18px) scale(.965);
  animation: definitiveLogoIn 1.4s cubic-bezier(.16,1,.3,1) .1s forwards;
  filter: drop-shadow(0 20px 55px rgba(0,0,0,.45));
}

.hero .eyebrow {
  margin: 0 0 16px;
  font-size: 8px;
  letter-spacing: .24em;
  color: rgba(236,235,230,.72);
}

.hero h1 {
  max-width: 900px;
  font-size: clamp(44px, 6.4vw, 88px);
  line-height: .9;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.hero-copy {
  max-width: 470px;
  margin-top: 24px;
  font-size: 11px;
  line-height: 1.8;
  color: rgba(236,235,230,.78);
  text-wrap: balance;
}

.primary-link {
  margin-top: 27px;
  padding-bottom: 8px;
  font-size: 8px;
  letter-spacing: .2em;
  gap: 24px;
  transition: opacity .25s ease, gap .25s ease;
}

.primary-link:hover {
  gap: 32px;
  opacity: .72;
}

.scroll-cue {
  right: 26px;
  bottom: 28px;
  font-size: 7px;
  opacity: .62;
}

@keyframes definitiveLogoIn {
  0% {
    opacity: 0;
    transform: translateY(18px) scale(.965);
    filter: blur(5px) drop-shadow(0 20px 55px rgba(0,0,0,.45));
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0) drop-shadow(0 20px 55px rgba(0,0,0,.45));
  }
}

@keyframes definitiveHeroZoom {
  from { transform: scale(1.06); }
  to { transform: scale(1.12); }
}

@media (max-width: 760px) {
  :root {
    --header-height: 70px;
  }

  .site-header {
    height: 70px;
    padding: 0 18px;
  }

  .header-logo-link {
    width: 43px;
    height: 43px;
  }

  .currency-button {
    display: none;
  }

  .hero-content {
    width: min(94%, 680px);
    min-height: 100svh;
    padding: calc(var(--header-height) + 34px) 14px 54px;
  }

  .hero-logo {
    width: clamp(185px, 49vw, 245px);
    margin-bottom: 27px;
  }

  .hero h1 {
    font-size: clamp(40px, 11vw, 62px);
    line-height: .91;
  }

  .hero-copy {
    max-width: 330px;
    font-size: 10px;
    line-height: 1.75;
  }

  .scroll-cue {
    display: none;
  }
}

@media (max-width: 390px) {
  .hero-logo {
    width: 175px;
  }

  .hero h1 {
    font-size: 38px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-logo,
  .hero-art {
    animation: none;
    opacity: 1;
    transform: none;
  }
}


/* ===== v0.5 — Refined logo, product grid and shop transition ===== */

/* Home logo: still central, but more restrained */
.hero-logo {
  width: clamp(215px, 22vw, 295px);
  margin-bottom: 30px;
}

.hero h1 {
  font-size: clamp(42px, 5.7vw, 80px);
}

.hero-copy {
  max-width: 440px;
}

/* Product area: smaller previews, more breathing room, no card feeling */
.products-section {
  padding-top: 118px;
  padding-bottom: 138px;
}

.products-grid,
.product-grid {
  width: min(1080px, calc(100% - 48px));
  margin-left: auto;
  margin-right: auto;
  gap: 72px 46px;
}

.product-card {
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
}

.product-image,
.product-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  transform: scale(.9);
  transform-origin: center;
  transition:
    transform .65s cubic-bezier(.16,1,.3,1),
    filter .45s ease,
    opacity .45s ease;
  filter: saturate(.82) contrast(1.03);
}

.product-card:hover .product-image,
.product-card:hover img {
  transform: scale(.94);
  filter: saturate(1) contrast(1.06);
}

.product-meta {
  padding: 8px 5% 0;
  text-align: center;
}

.product-meta h3 {
  margin: 0;
  font-size: 10px;
  letter-spacing: .11em;
  text-transform: uppercase;
  font-weight: 500;
}

.product-meta p,
.product-meta strong {
  margin-top: 6px;
  font-size: 8px;
  letter-spacing: .08em;
  opacity: .72;
}

.add-button {
  margin: 12px auto 0;
  padding: 9px 13px;
  border: 0;
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 5px;
  opacity: .7;
}

.add-button:hover {
  opacity: 1;
  background: transparent;
}

/* First animated transition: Home fades and Shop rises into view */
.page-transition {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  background: #050505;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity .42s ease,
    visibility 0s linear .42s;
}

body.is-transitioning .page-transition {
  opacity: 1;
  visibility: visible;
  transition:
    opacity .42s ease,
    visibility 0s linear 0s;
}

body.shop-arrival .products-section {
  animation: shopArrival .9s cubic-bezier(.16,1,.3,1) both;
}

@keyframes shopArrival {
  from {
    opacity: 0;
    transform: translateY(34px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 1100px) {
  .products-grid,
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .hero-logo {
    width: clamp(190px, 34vw, 235px);
  }

  .products-grid,
  .product-grid {
    width: min(760px, calc(100% - 34px));
    gap: 54px 26px;
  }

  .product-image,
  .product-card img {
    transform: scale(.93);
  }

  .product-card:hover .product-image,
  .product-card:hover img {
    transform: scale(.96);
  }
}

@media (max-width: 620px) {
  .hero-logo {
    width: clamp(158px, 43vw, 180px);
    margin-bottom: 24px;
  }

  .products-section {
    padding-top: 82px;
    padding-bottom: 98px;
  }

  .products-grid,
  .product-grid {
    grid-template-columns: 1fr 1fr;
    gap: 42px 16px;
    width: calc(100% - 20px);
  }

  .product-image,
  .product-card img {
    transform: scale(.96);
  }

  .product-meta {
    padding-top: 5px;
  }

  .product-meta h3 {
    font-size: 8px;
  }

  .product-meta p,
  .product-meta strong {
    font-size: 7px;
  }

  .add-button {
    font-size: 7px;
  }
}

@media (max-width: 390px) {
  .products-grid,
  .product-grid {
    grid-template-columns: 1fr;
    width: min(300px, calc(100% - 34px));
    gap: 44px;
  }
}


/* ===== v0.6 — Separate Shop page ===== */

.shop-page {
  background: #080808;
}

.shop-main {
  min-height: 100vh;
  padding-top: 70px;
}

.shop-intro {
  min-height: 48vh;
  padding: 150px 30px 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-bottom: 1px solid rgba(255,255,255,.1);
  background:
    radial-gradient(circle at 50% 25%, rgba(255,255,255,.055), transparent 36%),
    linear-gradient(to bottom, #0b0b0b, #080808);
}

.shop-intro h1 {
  margin: 12px 0 18px;
  font-size: clamp(62px, 10vw, 145px);
  line-height: .82;
  letter-spacing: -.055em;
  text-transform: uppercase;
}

.shop-intro > p:last-child {
  max-width: 420px;
  font-size: 11px;
  line-height: 1.75;
  opacity: .68;
}

.catalogue {
  padding: 58px 30px 140px;
}

.shop-toolbar {
  width: min(1240px, 100%);
  margin: 0 auto 58px;
  padding-bottom: 22px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 30px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 24px;
}

.filter-button {
  appearance: none;
  border: 0;
  padding: 5px 0;
  background: transparent;
  color: rgba(255,255,255,.5);
  font: inherit;
  font-size: 9px;
  letter-spacing: .15em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .2s ease;
}

.filter-button:hover,
.filter-button.active {
  color: #fff;
}

.filter-button.active {
  text-decoration: underline;
  text-underline-offset: 7px;
}

.product-counter {
  flex: 0 0 auto;
  margin: 0;
  font-size: 8px;
  letter-spacing: .13em;
  text-transform: uppercase;
  opacity: .48;
}

.shop-product-grid {
  width: min(1240px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 78px 36px;
}

.shop-product-grid .product-card[hidden] {
  display: none;
}

.product-link {
  text-decoration: none;
}

.product-image-5 {
  --image: repeating-linear-gradient(145deg, #101010 0 18px, #888780 19px 20px, #151515 21px 40px);
}

.product-image-6 {
  --image: linear-gradient(135deg, #0c0c0c 0 44%, #b4b2aa 45% 47%, #121212 48% 100%);
}

.product-image-7 {
  --image: radial-gradient(circle at 50% 40%, #aaa89f 0 3%, #111 4% 22%, #77766f 23% 24%, #0a0a0a 25% 100%);
}

.product-image-8 {
  --image: repeating-radial-gradient(ellipse at center, #d2d0c7 0 1px, #171717 2px 9px);
}

.shop-product-grid .product-image {
  transform: none;
  aspect-ratio: 4 / 5;
}

.shop-product-grid .product-card:hover .product-image {
  transform: translateY(-5px);
}

.shop-product-grid .product-meta {
  padding-left: 0;
  padding-right: 0;
}

.shop-product-grid .add-button {
  margin-top: 10px;
}

.page-transition.active-on-load {
  opacity: 1;
  visibility: visible;
  animation: pageReveal .7s ease .12s forwards;
}

@keyframes pageReveal {
  to {
    opacity: 0;
    visibility: hidden;
  }
}

@media (max-width: 1050px) {
  .shop-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .shop-intro {
    min-height: 40vh;
    padding: 125px 20px 65px;
  }

  .shop-intro h1 {
    font-size: clamp(58px, 18vw, 98px);
  }

  .catalogue {
    padding: 42px 17px 100px;
  }

  .shop-toolbar {
    margin-bottom: 42px;
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
  }

  .filter-row {
    gap: 12px 18px;
  }

  .shop-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 54px 18px;
  }
}

@media (max-width: 420px) {
  .shop-product-grid {
    grid-template-columns: 1fr;
    width: min(300px, 100%);
    gap: 52px;
  }
}


/* ===== v0.7 — Product page ===== */

.product-page {
  background: #080808;
}

.product-main {
  padding-top: 70px;
}

.product-layout {
  width: min(1380px, 100%);
  margin: 0 auto;
  min-height: calc(100vh - 70px);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(380px, .8fr);
}

.product-gallery {
  padding: 42px 34px 70px;
  background: #0d0d0d;
}

.gallery-main {
  width: 100%;
  min-height: 720px;
  border: 0;
  cursor: zoom-in;
  background-color: #111;
}

.gallery-thumbs {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, 92px);
  gap: 12px;
}

.gallery-thumb {
  width: 92px;
  aspect-ratio: 1;
  border: 1px solid transparent;
  opacity: .55;
  cursor: pointer;
  transition: opacity .2s ease, border-color .2s ease;
}

.gallery-thumb:hover,
.gallery-thumb.active {
  opacity: 1;
}

.gallery-thumb.active {
  border-color: rgba(255,255,255,.7);
}

.product-image-detail-1 {
  background:
    linear-gradient(135deg, transparent 0 35%, rgba(255,255,255,.8) 36% 37%, transparent 38%),
    repeating-linear-gradient(90deg, #111 0 12px, #85847e 13px 14px);
}

.product-image-detail-2 {
  background:
    radial-gradient(circle at 50% 50%, #d7d5cb 0 3%, #101010 4% 21%, #84827b 22% 23%, #0b0b0b 24% 100%);
}

.product-info {
  position: sticky;
  top: 70px;
  align-self: start;
  padding: 72px clamp(34px, 5vw, 78px);
}

.product-back {
  display: inline-block;
  margin-bottom: 58px;
  font-size: 8px;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .55;
}

.product-info h1 {
  margin: 14px 0 16px;
  font-size: clamp(46px, 5.5vw, 84px);
  line-height: .9;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.product-price {
  margin: 0 0 28px;
  font-size: 13px;
  letter-spacing: .08em;
}

.product-lead {
  max-width: 500px;
  font-size: 11px;
  line-height: 1.85;
  opacity: .68;
}

.product-options {
  margin-top: 42px;
  padding-top: 30px;
  border-top: 1px solid rgba(255,255,255,.12);
  display: grid;
  gap: 28px;
}

.option-group {
  display: grid;
  gap: 12px;
}

.option-label {
  font-size: 8px;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .55;
}

.option-row {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.option-button {
  border: 1px solid rgba(255,255,255,.18);
  padding: 11px 14px;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}

.option-button:hover,
.option-button.active {
  border-color: rgba(255,255,255,.8);
}

.quantity-control {
  width: 132px;
  height: 42px;
  display: grid;
  grid-template-columns: 38px 1fr 38px;
  border: 1px solid rgba(255,255,255,.18);
}

.quantity-control button,
.quantity-control input {
  border: 0;
  background: transparent;
  color: #fff;
  text-align: center;
  font: inherit;
}

.quantity-control button {
  cursor: pointer;
  font-size: 15px;
}

.quantity-control input {
  width: 100%;
  appearance: textfield;
}

.stock-status {
  margin: 26px 0 18px;
  font-size: 9px;
  opacity: .65;
}

.stock-status {
  display: flex;
  align-items: center;
  gap: 8px;
}

.stock-status > span:first-child {
  flex: 0 0 auto;
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0;
  border-radius: 50%;
  background: currentColor;
}

.stock-status > span:last-child {
  display: inline;
}

.product-add-button {
  width: 100%;
  min-height: 54px;
  border: 1px solid #fff;
  background: #fff;
  color: #080808;
  font: inherit;
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}

.product-add-button:hover {
  background: transparent;
  color: #fff;
}

.product-accordions {
  margin-top: 34px;
  border-top: 1px solid rgba(255,255,255,.12);
}

.product-accordions details {
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.product-accordions summary {
  padding: 18px 0;
  cursor: pointer;
  list-style: none;
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.product-accordions summary::-webkit-details-marker {
  display: none;
}

.product-accordions summary::after {
  content: "+";
  float: right;
  opacity: .55;
}

.product-accordions details[open] summary::after {
  content: "−";
}

.product-accordions details p {
  margin: 0;
  padding: 0 0 20px;
  font-size: 10px;
  line-height: 1.8;
  opacity: .62;
}

.related-section {
  padding: 125px 30px 145px;
  border-top: 1px solid rgba(255,255,255,.1);
}

.related-grid {
  width: min(1080px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 42px;
}

.related-grid .product-image {
  aspect-ratio: 4 / 5;
  transform: none;
}

@media (max-width: 980px) {
  .product-layout {
    grid-template-columns: 1fr;
  }

  .product-gallery {
    padding: 26px 20px 34px;
  }

  .gallery-main {
    min-height: 68vw;
  }

  .product-info {
    position: static;
    padding: 62px 24px 82px;
  }
}

@media (max-width: 700px) {
  .gallery-main {
    min-height: 92vw;
  }

  .gallery-thumbs {
    grid-template-columns: repeat(3, 72px);
  }

  .gallery-thumb {
    width: 72px;
  }

  .product-info h1 {
    font-size: clamp(42px, 13vw, 62px);
  }

  .related-section {
    padding: 90px 18px 105px;
  }

  .related-grid {
    grid-template-columns: 1fr 1fr;
    gap: 34px 16px;
  }
}

@media (max-width: 420px) {
  .related-grid {
    grid-template-columns: 1fr;
    width: min(290px, 100%);
  }
}


/* ===== v0.8 — Zoom, variant stock and aggregated cart ===== */

/* Real magnification while moving over the main image */
.gallery-main {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  transition: background-size .28s ease;
}

.gallery-main.is-magnified {
  background-size: 185%;
}

/* Full-screen image viewer */
.zoom-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 42px;
  background: rgba(0,0,0,.96);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility 0s linear .25s;
}

.zoom-modal.open {
  opacity: 1;
  visibility: visible;
  transition: opacity .25s ease;
}

.zoomed-product-image {
  width: min(88vw, 1050px);
  height: min(84vh, 900px);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  cursor: zoom-out;
}

.zoom-close {
  position: absolute;
  top: 22px;
  right: 28px;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 34px;
  font-weight: 200;
  cursor: pointer;
}

.zoom-hint {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  margin: 0;
  font-size: 7px;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .4;
}

/* Inventory state */
.stock-status.out-of-stock {
  opacity: 1;
}

.stock-status.out-of-stock > span:first-child {
  background: transparent;
  border: 1px solid currentColor;
}

.product-add-button:disabled {
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.38);
  cursor: not-allowed;
}

.quantity-control button:disabled,
.quantity-control input:disabled {
  opacity: .3;
  cursor: not-allowed;
}

/* Aggregated cart rows with thumbnails */
.cart-item-with-image {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 15px;
  align-items: start;
  padding: 19px 0;
}

.cart-product-thumb {
  width: 64px;
  height: 80px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: 1px solid rgba(255,255,255,.08);
}

.cart-item-copy {
  min-width: 0;
}

.cart-item-copy h3 {
  margin: 1px 0 6px;
  font-size: 9px;
  line-height: 1.35;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.cart-variant,
.cart-unit-price {
  margin: 0 0 5px;
  font-size: 8px;
  line-height: 1.45;
  opacity: .58;
}

.cart-item-controls {
  margin-top: 11px;
  display: flex;
  align-items: center;
  gap: 9px;
}

.cart-qty-button {
  width: 23px;
  height: 23px;
  border: 1px solid rgba(255,255,255,.15);
  background: transparent;
  color: #fff;
  cursor: pointer;
}

.cart-item-controls > span {
  min-width: 12px;
  text-align: center;
  font-size: 8px;
}

.cart-item-controls .remove-item {
  margin: 0 0 0 5px;
  padding: 0;
}

.cart-line-total {
  padding-top: 2px;
  white-space: nowrap;
  font-size: 9px;
}

@media (max-width: 520px) {
  .zoom-modal {
    padding: 24px 12px;
  }

  .zoomed-product-image {
    width: 96vw;
    height: 78vh;
  }

  .cart-item-with-image {
    grid-template-columns: 54px minmax(0, 1fr);
  }

  .cart-product-thumb {
    width: 54px;
    height: 68px;
  }

  .cart-line-total {
    grid-column: 2;
    padding-top: 2px;
  }
}


/* ===== v0.9 — Dedicated catalogue product visuals ===== */

.product-image-shirt-detail-1 {
  background:
    linear-gradient(90deg, transparent 0 35%, rgba(255,255,255,.6) 36% 37%, transparent 38%),
    radial-gradient(ellipse at center, #2b2b2b 0 30%, #090909 31% 100%);
}

.product-image-shirt-detail-2 {
  background:
    linear-gradient(180deg, #0b0b0b, #191919),
    repeating-linear-gradient(135deg, transparent 0 12px, rgba(255,255,255,.08) 13px 14px);
}

.product-image-shirt-detail-3 {
  background:
    radial-gradient(circle at 50% 33%, #9d9b94 0 4%, #151515 5% 24%, #060606 25% 100%);
}

.product-image-shirt-detail-4 {
  background:
    linear-gradient(145deg, #070707 0 48%, #8d8b84 49% 50%, #111 51% 100%);
}

.product-image-patch-detail-1 {
  background:
    radial-gradient(ellipse at center, #bab8af 0 4%, #141414 5% 35%, #74726c 36% 38%, #080808 39% 100%);
}

.product-image-patch-detail-2 {
  background:
    repeating-conic-gradient(from 45deg, #111 0 12deg, #77756e 13deg 14deg, #0a0a0a 15deg 28deg);
}

.product-image-cd-detail-1 {
  background:
    radial-gradient(circle at center, #d5d3ca 0 2%, #77756e 3% 8%, #111 9% 30%, #85837c 31% 32%, #090909 33%);
}

.product-image-cd-detail-2 {
  background:
    linear-gradient(110deg, #111 0 46%, #9a9890 47% 48%, #0a0a0a 49% 100%);
}

.product-image-cassette-detail-1 {
  background:
    linear-gradient(90deg, #d1cfc6 0 48%, #111 49% 51%, #d1cfc6 52% 100%);
}

.product-image-cassette-detail-2 {
  background:
    repeating-linear-gradient(0deg, #111 0 9px, #77756f 10px 11px, #0a0a0a 12px 21px);
}

.product-image-flag-detail-1 {
  background:
    linear-gradient(145deg, #0a0a0a 0 40%, #aaa89f 41% 43%, #111 44% 100%);
}

.product-image-flag-detail-2 {
  background:
    repeating-linear-gradient(90deg, #0b0b0b 0 36px, #77756f 37px 38px, #111 39px 74px);
}

.product-image-vinyl-detail-3 {
  background:
    radial-gradient(circle at center, #d7d5cc 0 3%, #77756f 4% 7%, #111 8% 39%, #87857e 40% 41%, #080808 42%);
}

.product-image-vinyl-detail-4 {
  background:
    repeating-radial-gradient(circle at center, #0a0a0a 0 8px, #7f7d76 9px 10px, #111 11px 19px);
}

.option-row {
  min-height: 39px;
}

.related-grid .product-meta p {
  max-width: 210px;
}


/* v0.9.2 - cart remove fade */
.cart-item-with-image{
  transition: opacity .28s ease, transform .28s ease;
}
.cart-item-removing{
  opacity:0;
  transform:translateY(-8px);
  pointer-events:none;
}


/* v0.9.3 — micro-interactions */
#cartCount {
  display: inline-grid;
  place-items: center;
  min-width: 1.35em;
  transform-origin: center;
}

#cartCount.cart-count-bump {
  animation: cart-count-bump .34s ease;
}

@keyframes cart-count-bump {
  0%   { transform: scale(1); }
  45%  { transform: scale(1.35); }
  100% { transform: scale(1); }
}

.cart-summary strong,
#subtotal,
#total {
  transition: opacity .2s ease, transform .2s ease;
}

.cart-total-changing {
  opacity: 0;
  transform: translateY(4px);
}

.fly-to-cart {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  opacity: .95;
  transition:
    left .58s cubic-bezier(.2,.7,.2,1),
    top .58s cubic-bezier(.2,.7,.2,1),
    width .58s ease,
    height .58s ease,
    opacity .58s ease,
    transform .58s ease;
  transform: scale(1);
}

.fly-to-cart.is-flying {
  width: 18px !important;
  height: 18px !important;
  opacity: .15;
  transform: scale(.4) rotate(8deg);
}

@media (prefers-reduced-motion: reduce) {
  #cartCount.cart-count-bump,
  .fly-to-cart,
  .cart-item-with-image,
  #subtotal,
  #total {
    animation: none !important;
    transition: none !important;
  }
}


/* ===== v1.0 — Checkout ===== */
.checkout-page,
.confirmation-page {
  min-height: 100vh;
  background: #080808;
  color: #f1efe8;
}

.checkout-page .site-header,
.confirmation-page .site-header {
  grid-template-columns: 1fr auto 1fr;
}

.checkout-back,
.checkout-secure-label {
  position: relative;
  z-index: 2;
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.62);
}

.checkout-back {
  justify-self: start;
  text-decoration: none;
}

.checkout-secure-label {
  justify-self: end;
  margin: 0;
}

.checkout-main {
  width: min(1280px, calc(100% - 48px));
  margin: 0 auto;
  padding: 155px 0 110px;
}

.checkout-heading {
  max-width: 660px;
  margin-bottom: 58px;
}

.checkout-heading h1 {
  margin: 8px 0 14px;
  font-size: clamp(46px, 7vw, 92px);
  line-height: .92;
  font-weight: 400;
  letter-spacing: -.055em;
}

.checkout-heading > p:last-child {
  color: rgba(255,255,255,.56);
}

.checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(330px, .72fr);
  gap: 70px;
  align-items: start;
}

.checkout-form {
  display: grid;
  gap: 18px;
}

.checkout-panel {
  border: 1px solid rgba(255,255,255,.11);
  background: rgba(255,255,255,.018);
  padding: 32px;
}

.checkout-panel-heading {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 18px;
  margin-bottom: 30px;
}

.checkout-panel-heading > span {
  font-size: 9px;
  letter-spacing: .15em;
  color: rgba(255,255,255,.38);
  padding-top: 5px;
}

.checkout-panel-heading h2,
.checkout-summary h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 400;
}

.checkout-panel-heading p {
  margin: 6px 0 0;
  font-size: 10px;
  color: rgba(255,255,255,.48);
}

.checkout-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 18px;
}

.field {
  display: grid;
  gap: 9px;
}

.field-full {
  grid-column: 1 / -1;
}

.field > span {
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.66);
}

.field em {
  font-style: normal;
  color: rgba(255,255,255,.3);
}

.field input,
.field select,
.field textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.14);
  background: #0c0c0c;
  color: #f4f2eb;
  padding: 0 15px;
  outline: none;
  border-radius: 0;
  transition: border-color .2s ease, background .2s ease;
}

.field input,
.field select { height: 50px; }

.field textarea {
  min-height: 112px;
  padding: 14px 15px;
  line-height: 1.55;
  resize: vertical;
}

.field-hint { color: rgba(255,255,255,.36); font-size: 9px; }
.order-detail-notes{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;color:rgba(255,255,255,.72)}

.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: rgba(255,255,255,.55);
  background: #101010;
}

.field-error {
  display: none;
  color: #c88484;
  font-size: 9px;
}

.field.invalid input,
.field.invalid select {
  border-color: #9b5e5e;
}

.field.invalid .field-error {
  display: block;
}

.shipping-options {
  display: grid;
  gap: 10px;
}

.shipping-option {
  position: relative;
  display: grid;
  grid-template-columns: 18px 1fr auto;
  gap: 16px;
  align-items: center;
  min-height: 78px;
  padding: 17px 18px;
  border: 1px solid rgba(255,255,255,.12);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}

.shipping-option:has(input:checked) {
  border-color: rgba(255,255,255,.5);
  background: rgba(255,255,255,.035);
}

.shipping-option input {
  position: absolute;
  opacity: 0;
}

.shipping-radio {
  width: 14px;
  height: 14px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  box-shadow: inset 0 0 0 3px #0b0b0b;
}

.shipping-option input:checked + .shipping-radio {
  background: #eeeae0;
}

.shipping-option strong {
  display: block;
  font-size: 11px;
  font-weight: 500;
}

.shipping-option small {
  display: block;
  margin-top: 5px;
  color: rgba(255,255,255,.42);
  font-size: 9px;
}

.shipping-option b {
  font-size: 10px;
  font-weight: 500;
}

.paypal-preview {
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 22px;
  align-items: center;
  padding: 22px;
  background: #f1efe7;
  color: #101010;
}

.paypal-mark {
  font-size: 22px;
  font-weight: 700;
  font-style: italic;
  letter-spacing: -.08em;
}

.paypal-mark span {
  opacity: .58;
}

.paypal-preview strong {
  display: block;
  font-size: 11px;
}

.paypal-preview p {
  margin: 6px 0 0;
  font-size: 9px;
  line-height: 1.55;
  color: rgba(0,0,0,.57);
}

.checkout-consent {
  display: grid;
  grid-template-columns: 17px 1fr;
  gap: 11px;
  align-items: start;
  margin-top: 22px;
  font-size: 9px;
  line-height: 1.5;
  color: rgba(255,255,255,.58);
}

.checkout-consent input {
  margin: 2px 0 0;
  accent-color: #eeeae0;
}

.checkout-consent.invalid {
  color: #c88484;
}

.checkout-form-error {
  min-height: 17px;
  margin: 16px 0 0;
  color: #c88484;
  font-size: 10px;
}

.paypal-checkout-button {
  width: 100%;
  min-height: 62px;
  border: 0;
  background: #f1efe7;
  color: #0b0b0b;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  cursor: pointer;
  transition: opacity .2s ease, transform .2s ease;
}

.paypal-checkout-button:hover {
  transform: translateY(-2px);
}

.paypal-checkout-button:disabled {
  opacity: .35;
  cursor: not-allowed;
  transform: none;
}

.paypal-checkout-button span {
  font-size: 18px;
  font-style: italic;
  font-weight: 700;
}

.paypal-checkout-button small {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .11em;
}

.checkout-summary {
  position: sticky;
  top: 112px;
}

.checkout-summary-inner {
  border-top: 1px solid rgba(255,255,255,.2);
  padding-top: 28px;
}

.checkout-summary h2 {
  margin: 6px 0 28px;
}

.checkout-summary-items {
  display: grid;
}

.checkout-summary-item,
.confirmed-item {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  padding: 15px 0;
  border-bottom: 1px solid rgba(255,255,255,.09);
}

.checkout-item-thumb {
  position: relative;
  width: 58px;
  height: 67px;
  background-size: cover;
  background-position: center;
}

.checkout-item-thumb > span {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 50px;
  display: grid;
  place-items: center;
  background: #e7e3d9;
  color: #0c0c0c;
  font-size: 8px;
  font-weight: 700;
}

.checkout-summary-item h3,
.confirmed-item h3 {
  margin: 0;
  font-size: 11px;
  font-weight: 500;
}

.checkout-summary-item p,
.confirmed-item p {
  margin: 6px 0 0;
  font-size: 9px;
  color: rgba(255,255,255,.4);
}

.checkout-summary-item > strong,
.confirmed-item > strong {
  font-size: 9px;
  white-space: nowrap;
}

.checkout-summary-totals {
  display: grid;
  gap: 14px;
  padding-top: 25px;
}

.checkout-summary-totals > div {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: rgba(255,255,255,.57);
}

.checkout-summary-totals strong {
  color: #f3f0e8;
  font-weight: 500;
}

.checkout-grand-total {
  margin-top: 6px;
  padding-top: 19px;
  border-top: 1px solid rgba(255,255,255,.18);
  font-size: 13px !important;
  color: #fff !important;
}

.checkout-grand-total strong {
  font-size: 18px;
}

.checkout-assurance {
  margin-top: 28px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.38);
  font-size: 9px;
  line-height: 1.6;
}

.checkout-assurance p {
  margin: 0;
}

.checkout-assurance p + p {
  margin-top: 7px;
}

.checkout-empty {
  padding: 30px 0;
  color: rgba(255,255,255,.55);
}

.checkout-processing {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  background: rgba(3,3,3,.9);
  backdrop-filter: blur(14px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}

.checkout-processing.visible {
  opacity: 1;
  visibility: visible;
}

.processing-dialog {
  text-align: center;
  padding: 48px;
}

.processing-dialog h2 {
  margin: 8px 0 10px;
  font-size: 32px;
  font-weight: 400;
}

.processing-dialog > p:last-child {
  color: rgba(255,255,255,.45);
  font-size: 10px;
}

.processing-ring {
  width: 42px;
  height: 42px;
  margin: 0 auto 25px;
  border: 1px solid rgba(255,255,255,.16);
  border-top-color: #f0ede4;
  border-radius: 50%;
  animation: processing-spin .85s linear infinite;
}

@keyframes processing-spin {
  to { transform: rotate(360deg); }
}

/* Confirmation */
.confirmation-header {
  display: flex !important;
  justify-content: center;
}

.confirmation-main {
  min-height: 100vh;
  display: grid;
  place-items: center;
  width: min(860px, calc(100% - 40px));
  margin: 0 auto;
  padding: 145px 0 90px;
}

.confirmation-card {
  width: 100%;
  text-align: center;
  border: 1px solid rgba(255,255,255,.12);
  padding: clamp(34px, 6vw, 72px);
  background: rgba(255,255,255,.018);
}

.confirmation-mark {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  margin: 0 auto 25px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  font-size: 17px;
}

.confirmation-card h1 {
  margin: 9px 0 15px;
  font-size: clamp(43px, 7vw, 78px);
  line-height: .95;
  font-weight: 400;
  letter-spacing: -.05em;
}

.confirmation-lead {
  max-width: 550px;
  margin: 0 auto;
  color: rgba(255,255,255,.53);
  line-height: 1.7;
}

.confirmation-reference {
  display: inline-grid;
  gap: 8px;
  margin: 38px 0;
  padding: 17px 28px;
  border-top: 1px solid rgba(255,255,255,.14);
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.confirmation-reference span,
.confirmation-grid span {
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
}

.confirmation-reference strong {
  font-size: 14px;
  letter-spacing: .08em;
}

.confirmation-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  text-align: left;
  gap: 1px;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.09);
}

.confirmation-grid > div {
  background: #0a0a0a;
  padding: 19px;
  display: grid;
  gap: 8px;
}

.confirmation-grid strong {
  font-size: 10px;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.confirmed-items {
  margin-top: 28px;
  text-align: left;
}

.confirmation-actions {
  display: flex;
  justify-content: center;
  gap: 13px;
  margin-top: 38px;
}

.primary-link,
.secondary-link {
  min-width: 180px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.primary-link {
  background: #efede5;
  color: #0a0a0a;
}

.secondary-link {
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
}

@media (max-width: 900px) {
  .checkout-layout {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .checkout-summary {
    position: static;
    grid-row: 1;
  }
}

@media (max-width: 620px) {
  .checkout-main {
    width: min(100% - 26px, 1280px);
    padding-top: 125px;
  }

  .checkout-page .site-header {
    grid-template-columns: 1fr auto;
  }

  .checkout-secure-label {
    display: none;
  }

  .checkout-panel {
    padding: 23px 18px;
  }

  .checkout-fields {
    grid-template-columns: 1fr;
  }

  .field-full {
    grid-column: auto;
  }

  .paypal-preview {
    grid-template-columns: 1fr;
  }

  .confirmation-grid {
    grid-template-columns: 1fr;
  }

  .confirmation-actions {
    flex-direction: column;
  }

  .primary-link,
  .secondary-link {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .processing-ring {
    animation: none;
  }
}


/* v1.0.1 — Editable checkout summary */
.checkout-summary-item {
  transition: opacity .26s ease, transform .26s ease;
}

.checkout-summary-item.checkout-item-removing {
  opacity: 0;
  transform: translateY(-7px);
  pointer-events: none;
}

.checkout-summary-item-info {
  min-width: 0;
}

.checkout-item-actions {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 11px;
}

.checkout-quantity {
  display: inline-grid;
  grid-template-columns: 24px 25px 24px;
  align-items: center;
  height: 26px;
  border: 1px solid rgba(255,255,255,.14);
}

.checkout-qty-button {
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.72);
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  transition: background .18s ease, color .18s ease;
}

.checkout-qty-button:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}

.checkout-quantity > span {
  display: grid;
  place-items: center;
  font-size: 8px;
  color: #f1efe8;
}

.checkout-remove-button {
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.25);
  background: transparent;
  color: rgba(255,255,255,.42);
  font-size: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease;
}

.checkout-remove-button:hover {
  color: #fff;
  border-color: rgba(255,255,255,.7);
}

@media (max-width: 420px) {
  .checkout-summary-item {
    grid-template-columns: 52px minmax(0, 1fr);
  }

  .checkout-summary-item > strong {
    grid-column: 2;
    margin-top: -4px;
  }
}


/* v1.0.2 — Empty cart checkout modal */
body.modal-open {
  overflow: hidden;
}

.checkout-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 22px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .24s ease, visibility .24s ease;
}

.checkout-modal.visible {
  opacity: 1;
  visibility: visible;
}

.checkout-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2,2,2,.82);
  backdrop-filter: blur(10px);
}

.checkout-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(470px, 100%);
  padding: 42px;
  border: 1px solid rgba(255,255,255,.14);
  background: #0b0b0b;
  box-shadow: 0 28px 90px rgba(0,0,0,.5);
  transform: translateY(10px) scale(.985);
  transition: transform .24s ease;
}

.checkout-modal.visible .checkout-modal-dialog {
  transform: translateY(0) scale(1);
}

.checkout-modal-dialog h2 {
  margin: 8px 0 14px;
  font-size: clamp(30px, 6vw, 44px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -.035em;
}

.checkout-modal-dialog > p:not(.eyebrow) {
  margin: 0;
  max-width: 370px;
  color: rgba(255,255,255,.52);
  font-size: 11px;
  line-height: 1.7;
}

.checkout-modal-close {
  position: absolute;
  top: 15px;
  right: 18px;
  width: 30px;
  height: 30px;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.55);
  font-size: 23px;
  font-weight: 200;
  cursor: pointer;
  transition: color .18s ease;
}

.checkout-modal-close:hover {
  color: #fff;
}

.checkout-modal-actions {
  display: flex;
  gap: 10px;
  margin-top: 30px;
}

.checkout-modal-actions .primary-link,
.checkout-modal-actions .secondary-link {
  flex: 1;
  min-width: 0;
  cursor: pointer;
}

.checkout-modal-actions .secondary-link {
  background: transparent;
}

@media (max-width: 520px) {
  .checkout-modal-dialog {
    padding: 36px 24px 26px;
  }

  .checkout-modal-actions {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .checkout-modal,
  .checkout-modal-dialog {
    transition: none;
  }
}


/* v1.0.3 — Home identity and stock-aware shop previews */
.home-page .header-logo-link {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.home-page .hero-logo {
  visibility: visible;
}

.home-page .hero-content > .primary-link {
  background: transparent;
  color: inherit;
  min-width: 0;
  min-height: 0;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid currentColor;
}

.product-options-link,
.product-stock-label {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin-top: 10px;
  min-height: 32px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(236,235,230,.38);
  color: var(--paper);
  font-size: 8px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.product-options-link {
  transition: opacity .2s ease, border-color .2s ease;
}

.product-options-link:hover {
  opacity: .68;
  border-color: rgba(236,235,230,.7);
}

.product-stock-label.out-of-stock-label {
  color: rgba(236,235,230,.42);
  border-bottom-color: rgba(236,235,230,.14);
  cursor: default;
}

.product-image-9 {
  --image:
    radial-gradient(circle at center, transparent 0 15%, #b8b5ac 16% 17%, transparent 18% 28%, #77756f 29% 30%, transparent 31%),
    linear-gradient(135deg, #121212, #292824 48%, #0b0b0b);
}

.shop-product-grid .product-card {
  display: flex;
  flex-direction: column;
}

.shop-product-grid .product-options-link,
.shop-product-grid .product-stock-label,
.shop-product-grid .add-button {
  margin-top: auto;
  padding-top: 10px;
}


/* v1.0.4 — Product purchase only from product page */
.shop-product-grid .product-card {
  position: relative;
}

.shop-product-grid .product-meta-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.shop-product-grid .product-meta-link:hover h3 {
  opacity: .68;
}

.shop-product-grid .product-meta h3 {
  transition: opacity .2s ease;
}

.shop-product-grid .product-stock-label {
  margin-top: 10px;
  padding-top: 0;
}

.shop-product-grid .add-button,
.shop-product-grid .product-options-link {
  display: none !important;
}


/* v1.0.5 — Unified preview behavior on Home and Shop */
.home-product-grid .product-card,
.shop-product-grid .product-card {
  position: relative;
}

.home-product-grid .product-meta-link,
.shop-product-grid .product-meta-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.home-product-grid .product-meta h3,
.shop-product-grid .product-meta h3 {
  transition: opacity .2s ease;
}

.home-product-grid .product-meta-link:hover h3,
.shop-product-grid .product-meta-link:hover h3 {
  opacity: .68;
}

.home-product-grid .add-button,
.shop-product-grid .add-button,
.shop-product-grid .product-options-link,
.shop-product-grid .product-stock-label {
  display: none !important;
}


/* v1.0.6 — Badge dinamico NEW / SOLD OUT */
.product-card .product-image {
  position: relative;
}

.product-card .product-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 5px 9px;
  background: #fff;
  color: #000;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  pointer-events: none;
}


.product-card .product-badge.last-copies-badge {
  background: #e00000;
  color: #000;
}

/* ===== v1.1.7 — Square media, real photographs and dynamic galleries ===== */

/* Home, Shop and related products use the native square product format. */
.home-product-grid .product-image,
.shop-product-grid .product-image,
.related-grid .product-image {
  aspect-ratio: 1 / 1 !important;
  width: 100%;
  height: auto;
  min-height: 0;
  background-color: #111;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* Legacy placeholders keep their stylized inset frame.
   Real photographs fill the square without dark inner borders or overlays. */
.product-image.has-real-image::before,
.product-image.has-real-image::after,
.gallery-thumb.has-real-image::before,
.gallery-thumb.has-real-image::after {
  content: none !important;
  display: none !important;
}

.product-card:hover .product-image.has-real-image {
  transform: none;
}

.product-card:hover .product-image.has-real-image::before {
  transform: none;
}

/* Main product image remains square and never forces a portrait rectangle. */
.product-gallery {
  min-width: 0;
}

.gallery-main {
  display: block;
  width: 100%;
  min-height: 0 !important;
  aspect-ratio: 1 / 1;
  background-color: #111;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

/* Real product thumbnails display the exact same files, correctly cropped. */
.gallery-thumbs {
  grid-template-columns: repeat(auto-fill, minmax(76px, 92px));
}

.gallery-thumb {
  display: block;
  padding: 0;
  background-color: #111;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.gallery-thumb[hidden],
.gallery-thumbs[hidden] {
  display: none !important;
}

.gallery-main.is-magnified {
  background-size: 185%;
}

@media (max-width: 760px) {
  .gallery-main {
    aspect-ratio: 1 / 1;
  }

  .gallery-thumbs {
    grid-template-columns: repeat(auto-fill, minmax(64px, 76px));
  }

  .gallery-thumb {
    width: 76px;
  }
}


/* ===== v1.2.1 — Smaller product name and optional album subtitle ===== */

.product-info h1 {
  margin: 14px 0 10px;
  font-size: clamp(23px, 2.75vw, 42px);
  line-height: .96;
  letter-spacing: -.03em;
}

.product-subtitle {
  margin: 0 0 20px;
  font-size: clamp(14px, 1.45vw, 22px);
  line-height: 1.15;
  letter-spacing: .01em;
  font-style: italic;
  opacity: .72;
  text-wrap: balance;
}

.product-subtitle[hidden] {
  display: none !important;
}

.product-subtitle-card {
  margin: 3px 0 5px !important;
  font-size: 9px !important;
  line-height: 1.35 !important;
  letter-spacing: .02em !important;
  font-style: italic;
  opacity: .72 !important;
  text-transform: none !important;
}

@media (max-width: 700px) {
  .product-info h1 {
    font-size: clamp(21px, 6.5vw, 31px);
  }

  .product-subtitle {
    font-size: clamp(13px, 4.2vw, 18px);
  }
}


/* ===== v1.2.2 — Category card layout and root gallery ===== */

.product-meta {
  display: block;
}

.product-card-heading {
  width: 100%;
  text-align: center;
}

.product-card-heading h3 {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.product-card-heading .product-subtitle-card {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

.product-card-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  margin-top: 10px;
}

.product-card-meta p {
  margin: 0;
  text-align: left;
}

.product-card-meta strong {
  margin-left: auto;
  text-align: right;
  white-space: nowrap;
}


/* ===== v1.2.3 — Product gallery arrows + larger Shop subtitle ===== */

.gallery-stage {
  position: relative;
}

.gallery-arrow {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: grid;
  place-items: center;
  width: 48px;
  height: 64px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .38);
  background: rgba(0, 0, 0, .64);
  color: #fff;
  font: inherit;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50%);
  transition: opacity .18s ease, visibility .18s ease, background-color .18s ease;
}

.gallery-arrow-prev {
  left: 14px;
}

.gallery-arrow-next {
  right: 14px;
}

.gallery-stage:hover .gallery-arrow:not([hidden]),
.gallery-stage:focus-within .gallery-arrow:not([hidden]) {
  opacity: 1;
  visibility: visible;
}

.gallery-arrow:hover,
.gallery-arrow:focus-visible {
  background: rgba(0, 0, 0, .88);
}

.gallery-arrow[hidden] {
  display: none !important;
}

/* Only the Shop/category gallery gets the larger album subtitle. */
.shop-page .product-subtitle-card {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

@media (max-width: 760px) {
  .gallery-arrow {
    width: 42px;
    height: 56px;
    font-size: 24px;
  }

  .gallery-arrow-prev {
    left: 8px;
  }

  .gallery-arrow-next {
    right: 8px;
  }
}


/* ===== v1.2.4 — Minimal gallery arrows ===== */

.gallery-arrow {
  width: 0;
  height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: transparent;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  transform: translateY(-50%);
  transition:
    opacity .16s ease,
    visibility .16s ease,
    transform .16s ease;
}

.gallery-arrow::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  opacity: .6;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .35));
}

.gallery-arrow-prev {
  left: 18px;
}

.gallery-arrow-next {
  right: 18px;
}

.gallery-arrow-prev::before {
  border-top: 13px solid transparent;
  border-bottom: 13px solid transparent;
  border-right: 18px solid #fff;
}

.gallery-arrow-next::before {
  border-top: 13px solid transparent;
  border-bottom: 13px solid transparent;
  border-left: 18px solid #fff;
}

.gallery-stage:hover .gallery-arrow:not([hidden]),
.gallery-stage:focus-within .gallery-arrow:not([hidden]) {
  opacity: 1;
  visibility: visible;
}

.gallery-arrow:hover,
.gallery-arrow:focus-visible {
  background: transparent;
}

.gallery-arrow:hover::before,
.gallery-arrow:focus-visible::before {
  opacity: .82;
}

.gallery-arrow-prev:hover,
.gallery-arrow-prev:focus-visible {
  transform: translate(-2px, -50%);
}

.gallery-arrow-next:hover,
.gallery-arrow-next:focus-visible {
  transform: translate(2px, -50%);
}

@media (max-width: 760px) {
  .gallery-arrow-prev {
    left: 12px;
  }

  .gallery-arrow-next {
    right: 12px;
  }

  .gallery-arrow-prev::before {
    border-top-width: 11px;
    border-bottom-width: 11px;
    border-right-width: 15px;
  }

  .gallery-arrow-next::before {
    border-top-width: 11px;
    border-bottom-width: 11px;
    border-left-width: 15px;
  }
}

/* v1.2.5 gallery polish */
.gallery-counter{position:absolute;right:14px;bottom:12px;z-index:4;padding:3px 6px;background:rgba(0,0,0,.28);color:rgba(255,255,255,.72);font-size:10px;line-height:1;letter-spacing:.08em;pointer-events:none}
.gallery-counter[hidden]{display:none!important}
.gallery-main.gallery-image-enter{animation:galleryImageFade .20s ease-out}
@keyframes galleryImageFade{from{opacity:.68}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.gallery-main.gallery-image-enter{animation:none}}
@media(max-width:760px){.gallery-main{touch-action:pan-y}}


/* ===== v1.3.0 — Release-centred catalogue ===== */

.release-metadata {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 26px;
  margin: 24px 0 4px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.10);
}

.release-metadata[hidden] {
  display: none !important;
}

.release-metadata span {
  display: grid;
  gap: 5px;
  font-size: 10px;
  line-height: 1.3;
  color: rgba(255,255,255,.72);
}

.release-metadata small {
  font-size: 7px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.34);
}

.release-formats-section {
  width: min(1180px, calc(100% - 48px));
  margin: 90px auto 0;
}

.release-formats-section[hidden] {
  display: none !important;
}

.release-formats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin-top: 26px;
}

.release-format-card {
  position: relative;
  min-height: 92px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.14);
  color: inherit;
  text-decoration: none;
  display: grid;
  align-content: center;
  gap: 7px;
  transition:
    border-color .18s ease,
    background-color .18s ease,
    opacity .18s ease;
}

a.release-format-card:hover {
  border-color: rgba(255,255,255,.48);
  background: rgba(255,255,255,.025);
}

.release-format-card.current {
  border-color: rgba(255,255,255,.48);
  background: rgba(255,255,255,.045);
}

.release-format-card.sold-out {
  opacity: .48;
}

.release-format-name {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.release-format-price {
  font-size: 10px;
  color: rgba(255,255,255,.62);
}

.release-format-card small {
  font-size: 7px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.34);
}

@media (max-width: 700px) {
  .release-formats-section {
    width: min(100% - 28px, 1180px);
    margin-top: 65px;
  }

  .release-formats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ===== v1.3.1 — Available formats dropdown beside Edition ===== */

.product-options {
  align-items: flex-end;
}

.release-format-option {
  position: relative;
  min-width: 190px;
}

.release-format-option[hidden] {
  display: none !important;
}

.release-format-dropdown {
  position: relative;
  width: 100%;
}

.release-format-toggle {
  width: 100%;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.18);
  background: transparent;
  color: rgba(255,255,255,.84);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  cursor: pointer;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition:
    border-color .18s ease,
    background-color .18s ease;
}

.release-format-toggle:hover,
.release-format-toggle[aria-expanded="true"] {
  border-color: rgba(255,255,255,.46);
  background: rgba(255,255,255,.025);
}

.release-format-chevron {
  width: 7px;
  height: 7px;
  border-right: 1px solid rgba(255,255,255,.62);
  border-bottom: 1px solid rgba(255,255,255,.62);
  transform: rotate(45deg) translateY(-2px);
  transition: transform .18s ease;
}

.release-format-toggle[aria-expanded="true"] .release-format-chevron {
  transform: rotate(225deg) translate(-1px, -1px);
}

.release-format-menu {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  z-index: 50;
  width: min(300px, 82vw);
  padding: 5px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(8,8,8,.98);
  box-shadow: 0 20px 55px rgba(0,0,0,.42);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition:
    opacity .16s ease,
    visibility .16s ease,
    transform .16s ease;
}

.release-format-menu.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.release-format-menu-item {
  min-height: 54px;
  padding: 10px 11px;
  color: inherit;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  transition: background-color .16s ease;
}

.release-format-menu-item:last-child {
  border-bottom: 0;
}

a.release-format-menu-item:hover {
  background: rgba(255,255,255,.045);
}

.release-format-menu-item.current {
  background: rgba(255,255,255,.028);
  cursor: default;
}

.release-format-menu-item.sold-out {
  opacity: .44;
}

.release-format-menu-item span {
  display: grid;
  gap: 4px;
}

.release-format-menu-item strong {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.release-format-menu-item small {
  font-size: 7px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
}

.release-format-menu-item b {
  font-size: 9px;
  font-weight: 500;
  white-space: nowrap;
}

/* Old bottom format section is no longer used. */
.release-formats-section {
  display: none !important;
}

@media (max-width: 780px) {
  .product-options {
    align-items: stretch;
  }

  .release-format-option {
    min-width: 0;
    width: 100%;
  }

  .release-format-menu {
    width: 100%;
  }
}


/* ===== v1.3.2 — Release context refinement ===== */

.release-context {
  margin: 24px 0 8px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.10);
}

.release-context-title {
  margin: 0 0 12px;
  font-size: 11px;
  line-height: 1.3;
  letter-spacing: .02em;
  color: rgba(255,255,255,.82);
}

.release-context-title[hidden] {
  display: none !important;
}

.release-metadata {
  margin: 0;
  padding: 0;
  border: 0;
  gap: 14px 24px;
}

.release-meta-item {
  min-width: 78px;
}

.release-meta-item strong {
  font-size: 9px;
  font-weight: 400;
  line-height: 1.35;
  color: rgba(255,255,255,.72);
}

.release-meta-artist strong {
  color: rgba(255,255,255,.86);
}

/* Keep artist information deliberately secondary to release title. */
.release-meta-artist {
  order: 1;
}

@media (max-width: 700px) {
  .release-context {
    margin-top: 20px;
  }

  .release-metadata {
    gap: 12px 18px;
  }
}


/* ===== v1.3.4 — Release description + dropdown repair ===== */
.release-description {
  max-width: 620px;
  margin: 15px 0 0;
  font-size: 10px;
  line-height: 1.7;
  color: rgba(255,255,255,.50);
}

.release-description[hidden] {
  display: none !important;
}

.release-format-dropdown {
  position: relative;
  z-index: 80;
}

.release-format-menu {
  z-index: 120;
}


/* ===== v1.4.0 — Professional cart ===== */
.cart-item-with-image {
  grid-template-columns: 74px minmax(0, 1fr) !important;
  gap: 14px;
}

.cart-product-thumb {
  width: 74px !important;
  height: 74px !important;
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.cart-product-thumb.has-real-image::before,
.cart-product-thumb.has-real-image::after {
  content: none !important;
  display: none !important;
}

.cart-item-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.cart-item-heading h3 {
  margin: 0;
}

.cart-release-line {
  margin: 4px 0 0;
  font-size: 8px;
  line-height: 1.35;
  color: rgba(255,255,255,.43);
}

.cart-item-details {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 16px;
  margin-top: 10px;
}

.cart-item-details span {
  display: grid;
  gap: 3px;
  font-size: 8px;
  color: rgba(255,255,255,.72);
}

.cart-item-details small {
  font-size: 6px;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255,255,255,.31);
}

.cart-item-controls {
  justify-content: space-between;
}

.cart-quantity-control {
  display: inline-grid;
  grid-template-columns: 25px 28px 25px;
  align-items: center;
  min-height: 27px;
  border: 1px solid rgba(255,255,255,.14);
}

.cart-quantity-control > span {
  display: grid;
  place-items: center;
  font-size: 8px;
}

.cart-qty-button:disabled {
  opacity: .23;
  cursor: default;
}

.cart-stock-warning {
  margin: 9px 0 0;
  font-size: 8px;
  line-height: 1.4;
  color: rgba(255,255,255,.58);
}

.cart-item-warning {
  opacity: .72;
}

.cart-item-removing {
  opacity: 0 !important;
  transform: translateX(8px);
  pointer-events: none;
  transition: opacity .24s ease, transform .24s ease;
}

@media (max-width: 420px) {
  .cart-item-with-image {
    grid-template-columns: 64px minmax(0, 1fr) !important;
  }

  .cart-product-thumb {
    width: 64px !important;
    height: 64px !important;
  }
}


/* ===== v1.5.0 — Shipping rules ===== */

.shipping-selector {
  margin-bottom: 34px;
  padding-bottom: 26px;
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.shipping-selector .section-heading.compact {
  margin-bottom: 16px;
}

.shipping-selector .section-heading.compact h2 {
  font-size: 18px;
}

.checkout-field {
  display: grid;
  gap: 8px;
}

.checkout-field > span {
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.48);
}

.checkout-field select {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.16);
  background: #0b0b0b;
  color: #fff;
  font: inherit;
  font-size: 10px;
}

.shipping-note {
  margin: 10px 0 0;
  font-size: 8px;
  line-height: 1.5;
  color: rgba(255,255,255,.42);
}

.checkout-shipping-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-top: 1px solid rgba(255,255,255,.08);
}

.checkout-shipping-row span,
.checkout-shipping-row strong {
  font-size: 9px;
  font-weight: 400;
}

/* ===== v1.5.2 — Country integrated in shipping address ===== */
.checkout-address-shipping-note {
  grid-column: 1 / -1;
  margin: -2px 0 4px;
}
.checkout-fields select { width: 100%; }
.shipping-selector { display: none !important; }


/* ===== v1.5.3 — GeoNames city autocomplete ===== */

.city-autocomplete-field {
  position: relative;
}

.city-autocomplete {
  position: relative;
}

.city-suggestions {
  position: absolute;
  top: calc(100% + 5px);
  left: 0;
  right: 0;
  z-index: 160;
  max-height: 270px;
  overflow-y: auto;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(8,8,8,.99);
  box-shadow: 0 18px 45px rgba(0,0,0,.38);
}

.city-suggestions[hidden] {
  display: none !important;
}

.city-suggestion {
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
  background: transparent;
  color: inherit;
  display: grid;
  gap: 4px;
  text-align: left;
  cursor: pointer;
}

.city-suggestion:last-child {
  border-bottom: 0;
}

.city-suggestion:hover,
.city-suggestion:focus-visible {
  background: rgba(255,255,255,.05);
}

.city-suggestion strong {
  font-size: 10px;
  font-weight: 500;
}

.city-suggestion small {
  font-size: 8px;
  color: rgba(255,255,255,.43);
}

.autocomplete-empty {
  margin: 0;
  padding: 12px;
  font-size: 8px;
  color: rgba(255,255,255,.42);
}

.postal-code-field {
  position: relative;
}

.postal-suggestions {
  grid-column: 1 / -1;
  margin-top: 6px;
  padding: 8px 9px;
  border: 1px solid rgba(255,255,255,.10);
}

.postal-suggestions[hidden] {
  display: none !important;
}

.postal-suggestions > span {
  display: block;
  margin-bottom: 7px;
  font-size: 7px;
  color: rgba(255,255,255,.40);
}

.postal-suggestions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.postal-suggestions button {
  padding: 5px 7px;
  border: 1px solid rgba(255,255,255,.13);
  background: transparent;
  color: rgba(255,255,255,.72);
  font-size: 7px;
  cursor: pointer;
}

.postal-suggestions button:hover {
  border-color: rgba(255,255,255,.46);
  color: #fff;
}


/* ===== v1.5.4 — Confirmation totals + required phone ===== */

.confirmation-totals {
  width: min(520px, calc(100% - 32px));
  margin: 28px auto 0;
  padding: 18px 0 0;
  border-top: 1px solid rgba(255,255,255,.12);
}

.confirmation-totals > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 8px 0;
}

.confirmation-totals span,
.confirmation-totals strong {
  font-size: 10px;
  font-weight: 400;
}

.confirmation-grand-total {
  margin-top: 5px;
  padding-top: 13px !important;
  border-top: 1px solid rgba(255,255,255,.10);
}

.confirmation-grand-total strong {
  font-size: 13px;
}


/* ===== v1.5.5 — Complete final order summary ===== */

.confirmation-card {
  width: min(760px, calc(100% - 32px));
}

.confirmed-order-section,
.confirmed-shipping-section {
  margin-top: 34px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.11);
}

.confirmed-section-heading {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.confirmed-section-heading span {
  font-size: 8px;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
}

.confirmed-section-heading strong {
  font-size: 8px;
  font-weight: 400;
  color: rgba(255,255,255,.64);
}

.confirmed-items {
  display: grid;
}

.confirmed-item {
  display: grid;
  grid-template-columns: 64px minmax(0,1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
}

.confirmed-item .checkout-item-thumb {
  width: 64px;
  height: 64px;
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.confirmed-item .checkout-item-thumb.has-real-image::before,
.confirmed-item .checkout-item-thumb.has-real-image::after {
  content: none !important;
  display: none !important;
}

.confirmed-item-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.confirmed-item-copy h3 {
  margin: 0;
  font-size: 10px;
  font-weight: 500;
}

.confirmed-item-copy p,
.confirmed-item-copy small,
.confirmed-item-copy span {
  margin: 0;
  font-size: 7px;
  line-height: 1.4;
  color: rgba(255,255,255,.43);
}

.confirmed-item > strong {
  font-size: 9px;
  font-weight: 500;
  white-space: nowrap;
}

.confirmed-totals {
  margin-top: 16px;
}

.confirmed-totals > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 7px 0;
}

.confirmed-totals span,
.confirmed-totals strong {
  font-size: 9px;
  font-weight: 400;
}

.confirmed-grand-total {
  margin-top: 5px;
  padding-top: 12px !important;
  border-top: 1px solid rgba(255,255,255,.11);
}

.confirmed-grand-total strong {
  font-size: 13px;
}

.confirmed-address-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px 28px;
}

.confirmed-address-grid > div {
  display: grid;
  gap: 5px;
}

.confirmed-address-grid small {
  font-size: 6px;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255,255,255,.31);
}

.confirmed-address-grid strong {
  font-size: 9px;
  line-height: 1.45;
  font-weight: 400;
  color: rgba(255,255,255,.75);
}

.confirmed-address-wide {
  grid-column: 1 / -1;
}

@media (max-width: 620px) {
  .confirmed-item {
    grid-template-columns: 54px minmax(0,1fr) auto;
    gap: 10px;
  }

  .confirmed-item .checkout-item-thumb {
    width: 54px;
    height: 54px;
  }

  .confirmed-address-grid {
    grid-template-columns: 1fr;
  }

  .confirmed-address-wide {
    grid-column: auto;
  }

  .confirmed-section-heading {
    display: grid;
  }
}


/* ===== v1.5.6 — GeoNames repair ===== */
.city-autocomplete-field,
.city-autocomplete {
  overflow: visible;
}

.city-suggestions {
  z-index: 300;
}


/* ===== v1.5.8 — Confirmation shipping details readability ===== */

.confirmed-shipping-section .confirmed-section-heading {
  align-items: baseline;
}

.confirmed-shipping-section .confirmed-section-heading span {
  font-size: 10px;
  letter-spacing: .14em;
  color: rgba(255,255,255,.58);
}

.confirmed-shipping-section .confirmed-section-heading strong {
  font-size: 10px;
  line-height: 1.35;
  color: rgba(255,255,255,.78);
}

.confirmed-address-grid {
  display: block;
  margin-top: 16px;
  text-align: left;
}

.confirmed-address-grid > div {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  align-items: baseline;
  gap: 18px;
  padding: 7px 0;
}

.confirmed-address-grid small {
  font-size: 8px;
  line-height: 1.4;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
}

.confirmed-address-grid strong {
  font-size: 11px;
  line-height: 1.5;
  font-weight: 400;
  color: rgba(255,255,255,.84);
  text-align: left;
  overflow-wrap: anywhere;
}

.confirmed-address-wide {
  grid-column: auto;
}

@media (max-width: 620px) {
  .confirmed-shipping-section .confirmed-section-heading {
    display: flex;
    justify-content: space-between;
    gap: 14px;
  }

  .confirmed-address-grid > div {
    grid-template-columns: 1fr;
    gap: 3px;
    padding: 8px 0;
  }

  .confirmed-address-grid strong {
    font-size: 10px;
  }
}


/* ===== v1.5.9 — Final confirmation typography/layout ===== */

/* Larger order-summary data. */
.confirmed-order-section .confirmed-section-heading span,
.confirmed-order-section .confirmed-section-heading strong {
  font-size: 10px;
}

.confirmed-item-copy h3 {
  font-size: 12px;
}

.confirmed-item-copy p,
.confirmed-item-copy small,
.confirmed-item-copy span {
  font-size: 9px;
}

.confirmed-item > strong {
  font-size: 11px;
}

.confirmed-totals span,
.confirmed-totals strong {
  font-size: 11px;
}

.confirmed-grand-total strong {
  font-size: 15px;
}

/* More compact shipping-details block. */
.confirmed-address-grid {
  margin-top: 10px;
}

.confirmed-address-grid > div {
  padding: 3px 0;
  gap: 16px;
}

.confirmed-address-grid small {
  font-size: 8px;
  line-height: 1.25;
}

.confirmed-address-grid strong {
  font-size: 11px;
  line-height: 1.3;
}

@media (max-width: 620px) {
  .confirmed-address-grid > div {
    gap: 2px;
    padding: 5px 0;
  }
}


/* ===== v1.6.0 — Instant store search ===== */

.shop-search {
  width: min(720px, 100%);
  margin: 0 auto 34px;
}

.shop-search-field {
  position: relative;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.22);
  transition: border-color .18s ease;
}

.shop-search-field:focus-within {
  border-color: rgba(255,255,255,.72);
}

.shop-search-icon {
  position: relative;
  flex: 0 0 17px;
  width: 13px;
  height: 13px;
  margin-right: 11px;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 50%;
}

.shop-search-icon::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 1px;
  right: -5px;
  bottom: -3px;
  background: rgba(255,255,255,.52);
  transform: rotate(45deg);
  transform-origin: left center;
}

#shopSearch {
  width: 100%;
  min-height: 45px;
  padding: 0 34px 0 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 12px;
  letter-spacing: .02em;
}

#shopSearch::placeholder {
  color: rgba(255,255,255,.31);
}

#shopSearch::-webkit-search-cancel-button {
  display: none;
}

.shop-search-clear {
  position: absolute;
  right: 0;
  width: 28px;
  height: 38px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.45);
  font-size: 18px;
  cursor: pointer;
}

.shop-search-clear[hidden] {
  display: none !important;
}

.shop-search-hint {
  margin: 8px 0 0;
  font-size: 7px;
  line-height: 1.4;
  letter-spacing: .08em;
  color: rgba(255,255,255,.28);
}

.product-card[hidden] {
  display: none !important;
}

.shop-no-results {
  padding: 70px 20px 30px;
  text-align: center;
}

.shop-no-results[hidden] {
  display: none !important;
}

.shop-no-results p {
  margin: 0 0 14px;
  font-size: 11px;
  color: rgba(255,255,255,.52);
}

.shop-no-results button {
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.28);
  background: transparent;
  color: rgba(255,255,255,.55);
  font-size: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}

@media (max-width: 700px) {
  .shop-search {
    margin-bottom: 26px;
  }

  #shopSearch {
    font-size: 11px;
  }

  .shop-search-hint {
    display: none;
  }
}


/* ===== v1.6.1 — Low stock warning ===== */
.last-copies-warning {
  width: fit-content;
  margin: 12px 0 18px;
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.34);
  font-size: 9px;
  line-height: 1.3;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.88);
}

.last-copies-warning[hidden] {
  display: none !important;
}


/* ===== v1.6.2 — Low stock warning + side menu Search ===== */
.last-copies-warning {
  background: #a00000;
  border-color: #a00000;
  color: #fff;
}

.main-nav a[href="shop.html#shop-search"] {
  margin-top: 10px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.10);
}


/* ===== v1.7.0 — Wishlist / account-ready guest state ===== */

.product-card {
  position: relative;
}

.card-wishlist-button {
  position: absolute;
  top: 11px;
  right: 11px;
  z-index: 8;
  width: 31px;
  height: 31px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 50%;
  background: rgba(5,5,5,.62);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(5px);
  transition:
    background-color .16s ease,
    border-color .16s ease,
    transform .16s ease;
}

.card-wishlist-button:hover {
  border-color: rgba(255,255,255,.60);
  transform: scale(1.04);
}

.card-wishlist-button.active {
  background: rgba(120,0,0,.88);
  border-color: rgba(190,0,0,.95);
}

.wishlist-heart {
  font-size: 16px;
  line-height: 1;
}

.product-wishlist-button {
  width: 100%;
  min-height: 42px;
  margin-top: 10px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,.16);
  background: transparent;
  color: rgba(255,255,255,.68);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  font-size: 8px;
  letter-spacing: .11em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    border-color .16s ease,
    color .16s ease,
    background-color .16s ease;
}

.product-wishlist-button:hover {
  color: #fff;
  border-color: rgba(255,255,255,.48);
}

.product-wishlist-button.active {
  color: #fff;
  border-color: rgba(160,0,0,.75);
  background: rgba(120,0,0,.16);
}

.wishlist-nav-link {
  display: flex !important;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
}

.wishlist-count {
  min-width: 18px;
  text-align: right;
  font-size: .72em;
  color: rgba(255,255,255,.42);
}

.wishlist-main {
  min-height: 70vh;
}

.wishlist-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.wishlist-clear-all {
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.25);
  background: transparent;
  color: rgba(255,255,255,.50);
  font-size: 8px;
  letter-spacing: .10em;
  text-transform: uppercase;
  cursor: pointer;
}

.wishlist-clear-all:hover {
  color: #fff;
  border-color: rgba(255,255,255,.70);
}

.wishlist-clear-all[hidden] {
  display: none !important;
}

.wishlist-empty {
  padding: 85px 20px;
  text-align: center;
}

.wishlist-empty[hidden] {
  display: none !important;
}

.wishlist-empty p {
  margin: 0 0 22px;
  font-size: 12px;
  color: rgba(255,255,255,.48);
}

@media (max-width: 620px) {
  .card-wishlist-button {
    top: 8px;
    right: 8px;
    width: 29px;
    height: 29px;
  }

  .wishlist-toolbar {
    align-items: flex-start;
  }
}


/* ===== v1.8.0 — Account prototype ===== */

.account-main {
  min-height: 75vh;
}

.account-shell {
  width: min(980px, calc(100% - 32px));
  margin: 0 auto;
}

.account-auth {
  width: min(560px, 100%);
  margin: 0 auto;
  padding: 28px;
  border: 1px solid rgba(255,255,255,.10);
}

.account-auth-tabs {
  display: flex;
  gap: 22px;
  margin-bottom: 28px;
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.account-tab {
  padding: 0 0 12px;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: rgba(255,255,255,.42);
  font-size: 9px;
  letter-spacing: .11em;
  text-transform: uppercase;
  cursor: pointer;
}

.account-tab.active {
  color: #fff;
  border-bottom-color: #fff;
}

.account-auth-panel h2 {
  margin: 0 0 8px;
  font-size: 20px;
}

.account-auth-panel > p {
  margin: 0 0 22px;
  font-size: 9px;
  line-height: 1.6;
  color: rgba(255,255,255,.42);
}

.account-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}

.account-form {
  display: grid;
  gap: 18px;
}

.account-submit,
.account-profile-save {
  justify-self: start;
  border: 0;
  cursor: pointer;
}

.account-dashboard-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 28px;
}

.account-dashboard-header h2 {
  margin: 4px 0 0;
  font-size: 26px;
}

.account-logout {
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.25);
  background: transparent;
  color: rgba(255,255,255,.48);
  font-size: 8px;
  letter-spacing: .10em;
  text-transform: uppercase;
  cursor: pointer;
}

.account-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
  gap: 18px;
}

.account-card {
  padding: 22px;
  border: 1px solid rgba(255,255,255,.10);
}

.account-card-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.account-card-heading > span {
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
}

.account-card-heading button,
.account-card-heading a {
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.20);
  background: transparent;
  color: rgba(255,255,255,.50);
  font-size: 8px;
  text-decoration: none;
  cursor: pointer;
}

.account-profile-form .field input:disabled {
  opacity: .72;
  cursor: default;
}

.account-big-number {
  display: block;
  font-size: 38px;
  font-weight: 400;
}

.account-wishlist-card p {
  margin: 4px 0 0;
  font-size: 8px;
  color: rgba(255,255,255,.38);
}

.account-orders-card {
  grid-column: 1 / -1;
}

.account-order-row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,.08);
}

.account-order-row div {
  display: grid;
  gap: 4px;
}

.account-order-row strong,
.account-order-row span {
  font-size: 10px;
  font-weight: 400;
}

.account-order-row small,
.account-empty-state {
  font-size: 8px;
  color: rgba(255,255,255,.40);
}

.account-nav-link {
  display: block;
}

@media (max-width: 760px) {
  .account-grid {
    grid-template-columns: 1fr;
  }

  .account-orders-card {
    grid-column: auto;
  }

  .account-form-grid {
    grid-template-columns: 1fr;
  }

  .account-auth {
    padding: 20px;
  }
}


/* ===== v1.8.1 — Scrollable side menu ===== */
.main-nav {
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.18) transparent;
}

.main-nav::-webkit-scrollbar {
  width: 5px;
}

.main-nav::-webkit-scrollbar-track {
  background: transparent;
}

.main-nav::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.16);
  border-radius: 999px;
}

.main-nav > :last-child {
  margin-bottom: 28px;
}

/* ===== v1.8.2 Store submenu ===== */
.store-menu-group { width:100%; }
.store-menu-toggle {
  width:100%; padding:0; border:0; background:transparent; color:inherit;
  font:inherit; text-align:left; cursor:pointer; display:flex;
  align-items:center; justify-content:space-between; gap:18px;
}
.store-menu-arrow {
  width:7px; height:7px; border-right:1px solid currentColor;
  border-bottom:1px solid currentColor; transform:rotate(45deg);
  opacity:.52; transition:transform .18s ease,opacity .18s ease;
}
.store-menu-group.open .store-menu-arrow { transform:rotate(225deg); opacity:.9; }
.store-submenu { display:grid; padding:10px 0 8px 15px; margin:6px 0 5px; border-left:1px solid rgba(255,255,255,.12); }
.store-submenu[hidden] { display:none !important; }
.store-submenu a { padding:6px 0; font-size:.78em; color:rgba(255,255,255,.50); transition:color .15s ease,transform .15s ease; }
.store-submenu a:hover { color:#fff; transform:translateX(2px); }


/* ===== v1.8.3 — Side menu typography refinement ===== */

/* Reduce all main side-menu entries. */
.main-nav > a,
.main-nav > .store-menu-group > .store-menu-toggle {
  font-size: 0.82em;
  line-height: 1.35;
  font-family: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

/* Make Products visually identical to the other primary entries. */
.store-menu-toggle {
  color: inherit;
}

/* Keep submenu smaller than primary navigation. */
.store-submenu a {
  font-size: 0.70em;
}


/* ===== v1.8.4 — Side menu hierarchy refinement ===== */

/* Slightly increase primary menu typography from v1.8.3. */
.main-nav > a,
.main-nav > .store-menu-group > .store-menu-toggle {
  font-size: 0.92em;
}

/* Products keeps the same underline behavior as the other main entries when closed. */
.store-menu-toggle {
  position: relative;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.22);
}

/* Once open, keep the hierarchy clean while the submenu sits immediately below. */
.store-menu-group.open > .store-menu-toggle {
  border-bottom-color: rgba(255,255,255,.22);
}

/* Submenu: same typography as main menu, only indented to the right. */
.store-submenu {
  padding: 8px 0 8px 18px;
  margin: 4px 0 5px;
  border-left: 0;
}

.store-submenu a {
  font-size: 0.92em;
  font-family: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-align: left;
  padding: 5px 0;
  color: inherit;
  opacity: .70;
}

.store-submenu a:hover {
  opacity: 1;
  transform: none;
}


/* ===== v1.8.5 — Unified side-menu rhythm + inline search ===== */

/* Every primary menu entry shares the same spacing and separator rhythm. */
.main-nav > a,
.main-nav > .store-menu-group > .store-menu-toggle,
.main-nav > .side-search-group > .side-search-toggle {
  box-sizing: border-box;
  min-height: 42px;
  padding: 10px 0 9px;
  border-bottom: 1px solid rgba(255,255,255,.16);
  font-size: 0.92em;
  line-height: 1.35;
  font-family: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

/* Remove old custom margin/separator that created the double line near Search. */
.main-nav a[href="shop.html#shop-search"] {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

/* Products keeps only the same single separator as other primary entries. */
.store-menu-toggle {
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(255,255,255,.16);
}

/* Submenu links stay indented, aligned left, same typography. */
.store-submenu {
  padding: 7px 0 7px 18px;
  margin: 0;
}
.store-submenu a {
  padding: 6px 0;
  font-size: 0.92em;
}

/* Inline side search */
.side-search-group {
  width: 100%;
}

.side-search-toggle {
  width: 100%;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.side-search-arrow {
  width: 7px;
  height: 7px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: .52;
  transition: transform .18s ease, opacity .18s ease;
}

.side-search-group.open .side-search-arrow {
  transform: rotate(225deg);
  opacity: .9;
}

.side-search-panel {
  padding: 10px 0 8px 18px;
}

.side-search-panel[hidden] {
  display: none !important;
}

.side-search-field {
  position: relative;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.20);
}

.side-search-input {
  width: 100%;
  min-height: 35px;
  padding: 0 28px 0 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: .82em;
}

.side-search-input::placeholder {
  color: rgba(255,255,255,.30);
}

.side-search-input::-webkit-search-cancel-button {
  display: none;
}

.side-search-clear {
  position: absolute;
  right: 0;
  width: 24px;
  height: 30px;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.45);
  cursor: pointer;
}

.side-search-clear[hidden] {
  display: none !important;
}

.side-search-results {
  display: grid;
  margin-top: 8px;
}

.side-search-result {
  display: grid !important;
  gap: 2px;
  padding: 7px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
  min-height: 0 !important;
  text-decoration: none;
}

.side-search-result strong {
  font-size: .78em;
  font-weight: 400;
  color: rgba(255,255,255,.82);
}

.side-search-result small {
  font-size: .62em;
  line-height: 1.4;
  color: rgba(255,255,255,.38);
}

.side-search-empty {
  margin: 8px 0 0;
  font-size: .70em;
  color: rgba(255,255,255,.38);
}


/* ===== v1.8.6 — Side search result thumbnails ===== */

.side-search-result {
  grid-template-columns: 38px minmax(0,1fr);
  align-items: center;
  gap: 9px;
  padding: 7px 0 !important;
}

.side-search-thumb {
  width: 38px;
  height: 38px;
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #111;
}

.side-search-thumb.has-real-image::before,
.side-search-thumb.has-real-image::after {
  content: none !important;
  display: none !important;
}

.side-search-result-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.side-search-result strong {
  font-size: .70em;
  line-height: 1.25;
  font-weight: 400;
  color: rgba(255,255,255,.86);
}

.side-search-result small {
  font-size: .58em;
  line-height: 1.35;
  color: rgba(255,255,255,.40);
}

@media (max-width: 620px) {
  .side-search-result {
    grid-template-columns: 34px minmax(0,1fr);
    gap: 8px;
  }

  .side-search-thumb {
    width: 34px;
    height: 34px;
  }
}


/* ===== v1.9.0 — Account / checkout integration ===== */

.account-order-meta {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
}

.account-order-meta span {
  font-size: 8px;
  color: rgba(255,255,255,.38);
}

.account-order-meta strong {
  font-size: 10px;
  font-weight: 400;
}

@media (max-width: 560px) {
  .account-order-row {
    align-items: flex-start;
  }

  .account-order-meta {
    display: grid !important;
    gap: 4px;
    text-align: right;
  }
}


/* ===== v1.9.1 — Account profile immediately editable ===== */
#accountEditProfile {
  display: none !important;
}

/* ===== v1.9.2 header account + registration ===== */
.header-user{position:relative;display:flex;align-items:center;gap:9px}
.header-username{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;letter-spacing:.06em;color:rgba(255,255,255,.62)}
.header-username[hidden]{display:none!important}
.header-user-button{width:34px;height:34px;padding:0;border:0;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}
.user-icon{position:relative;width:17px;height:17px}
.user-icon:before{content:"";position:absolute;top:0;left:5px;width:7px;height:7px;border:1px solid currentColor;border-radius:50%}
.user-icon:after{content:"";position:absolute;left:2px;bottom:0;width:13px;height:7px;border:1px solid currentColor;border-radius:9px 9px 0 0}
.header-user-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:500;min-width:150px;padding:8px 12px;border:1px solid rgba(255,255,255,.12);background:rgba(8,8,8,.98);box-shadow:0 18px 45px rgba(0,0,0,.34)}
.header-user-menu[hidden],#headerUserGuest[hidden],#headerUserAuthenticated[hidden]{display:none!important}
#headerUserGuest,#headerUserAuthenticated{display:grid}
.header-user-menu a,.header-user-menu button{padding:8px 0;border:0;border-bottom:1px solid rgba(255,255,255,.07);background:transparent;color:rgba(255,255,255,.66);font:inherit;font-size:8px;text-align:left;text-decoration:none;cursor:pointer}
.header-user-menu a:last-child,.header-user-menu button:last-child{border-bottom:0}
.header-user-menu a:hover,.header-user-menu button:hover{color:#fff}
.registration-success-actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:30px}
#accountCitySuggestions{z-index:220}
.account-profile-form select{width:100%}

/* ===== v1.9.3 — Header account readability ===== */
.header-username {
  font-size: 11px;
  line-height: 1.35;
}

.header-user-menu a,
.header-user-menu button {
  font-size: 11px;
  line-height: 1.35;
  padding: 10px 0;
}

/* ===== v2.0.0 Real authentication ===== */
.account-form-error{margin:0;padding:9px 11px;border:1px solid rgba(185,40,40,.55);background:rgba(120,0,0,.16);color:rgba(255,255,255,.86);font-size:9px;line-height:1.45}
.account-form-error[hidden]{display:none!important}
.account-submit:disabled,.account-profile-save:disabled{opacity:.45;cursor:wait}

/* ===== v2.0.1 — Server order history ===== */
.account-order-primary{display:grid;gap:4px}
.account-order-primary strong{font-size:11px;font-weight:400}
.account-order-primary small{text-transform:capitalize}

/* ===== v2.0.2 Account summary ===== */
.account-profile-summary[hidden],.account-profile-editor[hidden]{display:none!important}.account-profile-list{margin:0;display:grid}.account-profile-list>div{display:grid;grid-template-columns:minmax(110px,.38fr) minmax(0,1fr);gap:22px;padding:11px 0;border-top:1px solid rgba(255,255,255,.07)}.account-profile-list>div:first-child{border-top:0;padding-top:0}.account-profile-list dt{font-size:8px;letter-spacing:.10em;text-transform:uppercase;color:rgba(255,255,255,.34)}.account-profile-list dd{margin:0;font-size:10px;line-height:1.45;color:rgba(255,255,255,.78);overflow-wrap:anywhere}.account-profile-editor-header{display:flex;justify-content:space-between;gap:20px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}.account-profile-editor-header h3{margin:4px 0 0;font-size:20px;font-weight:400}.account-profile-cancel{padding:0;border:0;border-bottom:1px solid rgba(255,255,255,.22);background:transparent;color:rgba(255,255,255,.5);font:inherit;font-size:8px;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}@media(max-width:620px){.account-profile-list>div{grid-template-columns:1fr;gap:4px}}


/* ===== v2.1.0 — Performance ===== */
.shop-grid,
.home-products-grid,
.wishlist-grid {
  content-visibility: auto;
  contain-intrinsic-size: 900px;
}

/* ===== v2.2.0 — Compact editorial layout ===== */
.hero-minimal{min-height:58vh}
.hero-content-minimal{display:flex;flex-direction:column;align-items:center;justify-content:center}
.hero-store-link{position:relative;display:inline-block;text-decoration:none}
.hero-store-link .hero-logo{display:block}
.hero-enter-label{position:absolute;left:50%;top:calc(100% + 12px);transform:translate(-50%,5px);white-space:nowrap;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.78);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.hero-store-link:hover .hero-enter-label,.hero-store-link:focus-visible .hero-enter-label{opacity:1;transform:translate(-50%,0)}
.hero-tagline{margin:22px 0 0;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.home-latest-title{font-size:clamp(18px,2.3vw,30px)!important}
.shop-intro,.account-main .shop-intro,.wishlist-main .shop-intro{padding-top:104px;padding-bottom:24px;min-height:0}
.shop-intro h1,.account-main .shop-intro h1,.wishlist-main .shop-intro h1{font-size:clamp(25px,3.1vw,42px)!important;line-height:.95;margin-top:7px;margin-bottom:0}
.shop-tagline{margin-bottom:0}
.shop-toolbar{align-items:flex-start;gap:16px}
.filter-row{display:flex;align-items:center;flex-wrap:wrap}
.shop-filter-search{position:relative;display:inline-flex;align-items:center;width:min(280px,38vw);margin-left:10px;border-bottom:1px solid rgba(255,255,255,.30)}
.shop-filter-search[hidden]{display:none!important}
.shop-filter-search #shopSearch{min-height:31px;width:100%;padding:0 28px 0 3px;border:0;outline:0;background:transparent;color:#fff;font:inherit;font-size:9px;letter-spacing:.04em}
.shop-filter-search #shopSearch::placeholder{color:rgba(255,255,255,.30)}
.shop-filter-search .shop-search-clear{height:28px}
.shop-search-toggle[aria-expanded="true"]{color:#fff;border-color:rgba(255,255,255,.62)}
@media(max-width:700px){.hero-minimal{min-height:52vh}.shop-intro,.account-main .shop-intro,.wishlist-main .shop-intro{padding-top:88px;padding-bottom:18px}.shop-filter-search{width:min(100%,250px);margin-left:0;flex-basis:220px}}


/* ===== v2.2.1 — tighter page rhythm ===== */

/* Main internal headers: equal spacing line -> tagline -> title */
.shop-main,
.account-main,
.wishlist-main {
  padding-top: 0;
}

.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro {
  margin-top: 0;
  padding-top: 72px;
  padding-bottom: 18px;
}

.shop-intro::before,
.account-main .shop-intro::before,
.wishlist-main .shop-intro::before {
  content: "";
  display: block;
  width: 100%;
  border-top: 1px solid rgba(255,255,255,.11);
  margin-bottom: 18px;
}

.shop-intro .eyebrow,
.account-main .shop-intro .eyebrow,
.wishlist-main .shop-intro .eyebrow {
  margin: 0 0 18px;
}

.shop-intro h1,
.account-main .shop-intro h1,
.wishlist-main .shop-intro h1 {
  margin: 0;
  font-size: clamp(24px, 2.7vw, 38px) !important;
  line-height: .95;
}

/* HOME: move logo upward and collapse empty vertical space */
.hero-tight {
  min-height: 42vh;
}

.hero-tight .hero-content-minimal {
  justify-content: flex-start;
  padding-top: 86px;
}

.hero-tight .hero-tagline {
  margin-top: 16px;
}

.hero-store-link {
  position: relative;
}

.hero-cursor-label {
  position: absolute;
  z-index: 20;
  transform: translate(-50%, -100%);
  padding: 4px 7px;
  background: rgba(0,0,0,.58);
  color: #fff;
  font-size: 7px;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  backdrop-filter: blur(2px);
  transition: opacity .10s ease;
}

.hero-cursor-label.visible {
  opacity: 1;
}

.hero-enter-label {
  display: none !important;
}

/* Bring ticker closer to hero */
.home-latest-ticker {
  margin-top: 0;
}

/* Home products immediately follow ticker */
.home-page .shop-section {
  padding-top: 22px;
}

/* Remove leftover heading spacing on home */
.home-page .shop-section > .product-grid {
  margin-top: 0;
}

@media (max-width: 700px) {
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro {
    padding-top: 58px;
    padding-bottom: 14px;
  }

  .shop-intro::before,
  .account-main .shop-intro::before,
  .wishlist-main .shop-intro::before {
    margin-bottom: 14px;
  }

  .shop-intro .eyebrow,
  .account-main .shop-intro .eyebrow,
  .wishlist-main .shop-intro .eyebrow {
    margin-bottom: 14px;
  }

  .hero-tight {
    min-height: 38vh;
  }

  .hero-tight .hero-content-minimal {
    padding-top: 72px;
  }
}

/* ===== v2.2.2 — Home logo/ticker spacing ===== */
/* The old .hero-content min-height:100svh was keeping a large empty area
   below the logo/tagline even though .hero-tight itself was shorter. */
.home-page .hero-tight .hero-content-minimal {
  min-height: 68svh;
  padding-bottom: 28px;
}

@media (max-width: 700px) {
  .home-page .hero-tight .hero-content-minimal {
    min-height: 64svh;
    padding-bottom: 22px;
  }
}


/* ===== v2.2.3 — eliminate white navigation flash ===== */
html,
body {
  background-color: #050505 !important;
}

.page-transition {
  background-color: #050505 !important;
}


/* ===== v2.2.4 — iPhone / Safari transparent hero logo fix ===== */

/*
  Mobile Safari can occasionally rasterize a transparent PNG as a white
  rectangle when CSS filter + transform + keyframe animation are combined.
  The mobile logo does not need these effects, so use the plain image layer.
*/
@supports (-webkit-touch-callout: none) {
  .home-page .hero-store-link,
  .home-page .hero-logo {
    -webkit-transform: none !important;
    transform: none !important;
    -webkit-filter: none !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .home-page .hero-logo {
    display: block !important;
    object-fit: contain;
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
    image-rendering: auto;
  }
}

@media (max-width: 820px) {
  .home-page .hero-logo {
    -webkit-filter: none !important;
    filter: none !important;
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    background-color: transparent !important;
  }
}


/* ===== v2.2.5 — hard black navigation cover ===== */
#navigationBlackCover {
  position: fixed;
  z-index: 2147483647;
  inset: 0;
  background: #050505;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .06s linear;
}
#navigationBlackCover.active {
  opacity: 1;
  visibility: visible;
}
html, body {
  background: #050505 !important;
}


/* ===== v2.2.6 — Safari transition paint ===== */
#navigationBlackCover {
  background: #050505 !important;
  transition: none !important;
  will-change: opacity;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

#navigationBlackCover.active {
  opacity: 1 !important;
  visibility: visible !important;
}

html.is-leaving-page,
html.is-leaving-page body {
  overflow: hidden !important;
  background: #050505 !important;
}


/* ===== v2.2.7 — Home logo / ticker spacing refinement ===== */

/*
  Compact the hero vertically without changing logo size or typography.
  The ticker is brought significantly closer to the logo/tagline block.
*/
.home-page .hero-tight {
  min-height: 30vh !important;
  height: auto !important;
}

.home-page .hero-tight .hero-content-minimal {
  padding-top: 78px !important;
  padding-bottom: 16px !important;
  min-height: 0 !important;
}

.home-page .hero-tight .hero-tagline {
  margin-top: 14px !important;
  margin-bottom: 0 !important;
}

.home-page .home-latest-ticker {
  margin-top: 0 !important;
}

@media (max-width: 700px) {
  .home-page .hero-tight {
    min-height: 28vh !important;
  }

  .home-page .hero-tight .hero-content-minimal {
    padding-top: 68px !important;
    padding-bottom: 14px !important;
  }
}


/* ===== v2.2.8 — Home logo / ticker gap correction ===== */
/* Restore a moderate visible gap: approximately 1.5–2 cm on desktop. */
.home-page .hero-tight {
  min-height: 0 !important;
  height: auto !important;
}

.home-page .hero-tight .hero-content-minimal {
  padding-bottom: 58px !important;
}

.home-page .home-latest-ticker {
  margin-top: 0 !important;
}

@media (max-width: 700px) {
  .home-page .hero-tight .hero-content-minimal {
    padding-bottom: 42px !important;
  }
}


/* ===== v2.2.9 — Checkout sign-in + iPhone input zoom ===== */
.checkout-login-fields{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  gap:14px;
  align-items:end;
}
.checkout-login-fields[hidden],
.checkout-signed-in[hidden],
.checkout-login-error[hidden]{display:none!important}

.checkout-inline-signin{
  min-height:44px;
  padding:0 20px;
  border:1px solid rgba(255,255,255,.22);
  background:transparent;
  color:#f2f0e9;
  font:inherit;
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}
.checkout-inline-signin:hover{border-color:rgba(255,255,255,.56)}
.checkout-inline-signin:disabled{opacity:.45;cursor:wait}
.checkout-login-error{margin:12px 0 0;font-size:9px;color:rgba(255,255,255,.70)}
.checkout-signed-in{display:flex;gap:7px;align-items:baseline;font-size:10px;color:rgba(255,255,255,.56)}
.checkout-signed-in strong{color:rgba(255,255,255,.90);font-weight:400}

/* iOS Safari auto-zooms focused form controls below 16px. */
@media(max-width:820px){
  input,
  select,
  textarea,
  .shop-filter-search #shopSearch,
  .side-search-input{
    font-size:16px!important;
  }
  .checkout-login-fields{grid-template-columns:1fr}
  .checkout-inline-signin{width:100%}
}


/* ===== v2.5.1 — Customer order history/details ===== */
.account-order-link{
  color:inherit;
  text-decoration:none;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
}
.account-order-link:hover{background:rgba(255,255,255,.025)}
.account-order-status{padding:0 16px}
.order-status-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.18);
  font-size:8px;
  letter-spacing:.10em;
  text-transform:uppercase;
  white-space:nowrap;
}
.order-status-badge.large{
  min-height:30px;
  padding:0 12px;
  font-size:9px;
}
.order-row-arrow{margin-left:5px;color:rgba(255,255,255,.42)}
.order-detail-main{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  padding:92px 0 80px;
}
.order-detail-intro{
  padding:18px 0 28px!important;
}
.order-detail-intro h1{
  font-size:clamp(25px,3vw,40px)!important;
  margin:12px 0 0;
}
.order-detail-header-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:22px 0;
  margin-bottom:20px;
  border-top:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.order-detail-header-card h2{margin:0;font-size:18px;font-weight:400}
.order-detail-date{margin:7px 0 0;color:rgba(255,255,255,.42);font-size:9px}
.order-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(260px,.7fr);
  gap:20px;
}
.order-detail-item{
  display:grid;
  grid-template-columns:66px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:13px 0;
  border-top:1px solid rgba(255,255,255,.07);
}
.order-detail-item:first-child{border-top:0;padding-top:0}
.order-detail-thumb{
  width:66px;
  height:66px;
  background:#111 center/cover no-repeat;
  border:1px solid rgba(255,255,255,.08);
}
.order-detail-item-info{display:grid;gap:4px}
.order-detail-item-info strong{font-size:11px;font-weight:400}
.order-detail-item-info small,.order-detail-item-info span{
  font-size:8px;
  color:rgba(255,255,255,.45);
}
.order-detail-item-price{display:grid;gap:5px;text-align:right}
.order-detail-item-price small{font-size:8px;color:rgba(255,255,255,.40)}
.order-detail-item-price strong{font-size:11px;font-weight:400}
.order-detail-totals{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.10);
}
.order-detail-totals>div{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:5px 0;
  font-size:9px;
}
.order-detail-totals .order-detail-total{
  margin-top:7px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.10);
  font-size:11px;
}
.order-detail-shipping-card address{
  display:grid;
  gap:5px;
  font-style:normal;
  color:rgba(255,255,255,.60);
  font-size:10px;
  line-height:1.45;
}
.order-detail-shipping-card address strong{
  color:rgba(255,255,255,.88);
  font-weight:400;
  margin-bottom:5px;
}
.order-detail-contact{margin-top:12px}
@media(max-width:760px){
  .account-order-link{grid-template-columns:1fr auto;gap:8px}
  .account-order-status{padding:0}
  .account-order-meta{grid-column:1/-1}
  .order-detail-main{width:calc(100% - 24px);padding-top:78px}
  .order-detail-grid{grid-template-columns:1fr}
  .order-detail-item{grid-template-columns:58px minmax(0,1fr)}
  .order-detail-thumb{width:58px;height:58px}
  .order-detail-item-price{grid-column:2;text-align:left}
}

/* ===== v3.6.0 — members-only catalogue ===== */
.product-unavailable{grid-column:1/-1;min-height:60vh;padding:140px 30px 80px;text-align:center}
.product-unavailable h1{margin:0 0 18px;font-size:clamp(26px,5vw,52px)}
.product-unavailable p{margin:0 0 28px;color:rgba(255,255,255,.62)}

/* ===== v3.7.0 — managed footer image and centered copy ===== */
.site-footer{
  grid-template-columns:minmax(0,1fr) minmax(260px,600px) minmax(0,1fr);
  align-items:end;
  gap:clamp(24px,4vw,60px);
  padding-top:34px;
  position:relative;
  border-top:0;
}
.site-footer::before{content:"";position:absolute;top:24px;left:0;right:0;border-top:1px solid var(--line);pointer-events:none}
.footer-primary{display:flex;align-items:center;gap:24px;min-width:0;white-space:nowrap}
.footer-title{margin:0;font-family:inherit;font-size:inherit!important;color:var(--paper)}
.footer-links{display:flex;align-items:center;gap:24px}
.footer-center{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;min-width:0;text-align:center}
.footer-managed-image{display:block;width:min(600px,100%);height:auto;max-height:80px;object-fit:contain;transform:translateY(5px)}
.footer-managed-image[hidden]{display:none!important}
.footer-center-text{margin:0;max-width:600px;color:#c9c7c0;font-size:11px!important;line-height:1.75;white-space:pre-line}
.footer-copy{margin:0;text-align:right;white-space:nowrap}
@media(max-width:1050px){
  .site-footer{grid-template-columns:1fr;justify-items:center;text-align:center;gap:22px;padding:34px 20px 28px}
  .footer-center{grid-row:1}
  .footer-primary{grid-row:2;flex-wrap:wrap;justify-content:center;white-space:normal}
  .footer-copy{grid-row:3;text-align:center}
}
@media(max-width:560px){
  .footer-primary{gap:12px 18px}
  .footer-links{gap:18px;flex-wrap:wrap;justify-content:center}
  .footer-managed-image{max-height:64px}
  .footer-center-text{font-size:10px!important}
}

/* ===== v2.6.5 — Readability tuning =====
   Slightly larger secondary/micro text without changing headings or layout.
*/
:root{
  --bmt-micro-size: 10.5px;
  --bmt-small-size: 11.5px;
  --bmt-secondary-size: 13px;
}

/* Global microcopy / labels */
.eyebrow,
.kicker,
label,
.field-label,
.form-label,
.checkout-label,
.account-label,
.product-meta,
.product-type,
.product-price,
.stock-message,
.low-stock-message,
.cart-item-meta,
.checkout-item-meta,
.checkout-note,
.shipping-note,
.form-hint,
.form-error,
.account-empty-state,
.account-order-primary small,
.account-order-meta,
.order-status-badge,
.confirmed-section-heading,
.confirmed-item small,
.confirmed-item span,
.confirmed-totals,
.confirmation-meta,
.order-detail-date,
.order-detail-item-info small,
.order-detail-item-info span,
.order-detail-item-price small,
.order-detail-shipping-card address,
.site-footer,
.footer-copy,
.ticker,
.menu-subitem,
.search-result-meta{
  font-size: var(--bmt-micro-size) !important;
}

/* Secondary readable text */
.product-subtitle,
.product-lead,
.product-description,
.account-summary-row,
.account-card p,
.account-card span,
.checkout-section p,
.checkout-form input,
.checkout-form select,
.checkout-form textarea,
.account-form input,
.account-form select,
.account-form textarea,
.search-input,
.search-field input,
.cart-item-name,
.checkout-item-name,
.confirmation-lead,
.order-detail-item-info strong,
.order-detail-item-price strong{
  font-size: var(--bmt-secondary-size) !important;
}

/* Navigation/category labels: just a touch larger */
.filter-button,
.shop-filter-button,
.side-menu a,
.side-menu button,
.account-nav a,
.account-nav button{
  font-size: var(--bmt-small-size) !important;
}

/* Mobile: retain readability without triggering iOS input zoom */
@media (max-width: 760px){
  :root{
    --bmt-micro-size: 11px;
    --bmt-small-size: 12px;
    --bmt-secondary-size: 13px;
  }

  input,
  select,
  textarea{
    font-size: 16px !important;
  }
}


/* ===== v2.6.7 — PUBLIC SITE GLOBAL READABILITY =====
   Global minimum sizes for small text across the entire public site.
   Large headings and layout remain unchanged.
*/

:root{
  --bmt-global-micro: 11px;
  --bmt-global-small: 12px;
  --bmt-global-body: 13px;
}

/* Generic text floor across site sections */
body,
main,
section,
article,
aside,
form,
fieldset,
dl,
address,
table,
.product-page,
.shop-page,
.checkout-page,
.account-page,
.wishlist-page,
.confirmation-page{
  font-size: var(--bmt-global-body);
}

/* All genuinely small / secondary text */
small,
label,
legend,
dt,
dd,
th,
td,
.eyebrow,
.kicker,
.meta,
.muted,
.note,
.hint,
.help,
.field-help,
.field-note,
.form-hint,
.form-note,
.form-error,
.product-meta,
.product-type,
.product-price,
.product-card-meta,
.product-card-price,
.product-card small,
.stock-message,
.low-stock-message,
.cart-item-meta,
.checkout-item-meta,
.checkout-note,
.shipping-note,
.account-empty-state,
.account-order-primary small,
.account-order-meta,
.order-status-badge,
.order-detail-date,
.order-detail-item-info small,
.order-detail-item-info span,
.order-detail-item-price small,
.order-detail-shipping-card address,
.confirmed-section-heading,
.confirmed-item small,
.confirmed-item span,
.confirmed-totals,
.confirmation-meta,
.site-footer,
.footer-copy,
.ticker,
.menu-subitem,
.search-result-meta{
  font-size: var(--bmt-global-micro) !important;
  line-height: 1.45 !important;
}

/* Secondary body copy */
.product-subtitle,
.product-lead,
.product-description,
.description-copy,
.product-accordion-content,
.product-accordion-content p,
.product-accordion-content li,
.account-summary-row,
.account-card p,
.account-card span,
.checkout-section p,
.checkout-section small,
.cart-item-name,
.checkout-item-name,
.confirmation-lead,
.order-detail-item-info strong,
.order-detail-item-price strong,
.shipping-copy,
.returns-copy{
  font-size: var(--bmt-global-small) !important;
  line-height: 1.5 !important;
}

/* Shop category, category/type and price specifically */
.shop-filters,
.shop-filters button,
.shop-filter-button,
.filter-button,
.product-card .product-type,
.product-card .product-price,
.product-card .product-meta,
.product-card footer,
.product-card footer span,
.product-preview-meta,
.product-preview-price{
  font-size: 12px !important;
}

/* Product page details */
.product-options-label,
.product-option,
.variant-button,
.quantity-label,
.quantity-control,
.quantity-control button,
.quantity-control input,
.product-stock,
.product-stock span,
.add-to-cart,
.wishlist-button,
.product-accordion-title,
.product-accordion-content{
  font-size: 12px !important;
}

.product-description,
.description-copy,
.product-accordion-content p{
  font-size: 13px !important;
}

/* Checkout fields and supporting text */
.checkout-form label,
.checkout-form .field-label,
.checkout-form .form-hint,
.checkout-form .shipping-note,
.checkout-form .form-error,
.checkout-section label,
.checkout-section small,
.checkout-summary small,
.checkout-summary .meta{
  font-size: 12px !important;
}

/* Autocomplete / city / postcode suggestions.
   Covers the common class/id patterns used by our GeoNames UI. */
.autocomplete-results,
.autocomplete-list,
.autocomplete-suggestions,
.autocomplete-suggestion,
.autocomplete-item,
.location-suggestions,
.location-suggestion,
.city-suggestions,
.city-suggestion,
.postcode-suggestions,
.postcode-suggestion,
.geonames-results,
.geonames-result,
.suggestions,
.suggestion,
.suggestion-list,
.suggestion-item,
[data-autocomplete-results],
[data-autocomplete-item],
[id*="suggestion"],
[class*="suggestion"]{
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.autocomplete-suggestion small,
.autocomplete-item small,
.location-suggestion small,
.city-suggestion small,
.postcode-suggestion small,
.geonames-result small,
.suggestion-item small,
[class*="suggestion"] small{
  font-size: 11px !important;
}

/* Search UI */
.search-input,
.search-field input,
.search-results,
.search-result,
.search-result-title,
.search-result-meta{
  font-size: 12px !important;
}

/* Account / order / wishlist general small text */
.account-card,
.account-card p,
.account-card span,
.account-card small,
.account-order-row,
.order-detail-main,
.order-detail-items,
.wishlist-item,
.wishlist-item small{
  font-size: 12px !important;
}

/* Navigation text */
.side-menu a,
.side-menu button,
.account-nav a,
.account-nav button,
.shop-filters button,
header nav a{
  font-size: 12px !important;
}

/* Inputs: desktop readable, mobile safe from iOS zoom */
input,
select,
textarea{
  font-size: 13px !important;
}

@media (max-width: 760px){
  :root{
    --bmt-global-micro: 11.5px;
    --bmt-global-small: 12.5px;
    --bmt-global-body: 13px;
  }

  small,
  label,
  .meta,
  .muted,
  .note,
  .hint,
  .form-hint,
  .shipping-note,
  .product-meta,
  .product-type,
  .product-price,
  .stock-message,
  .checkout-note,
  .account-order-meta,
  .order-detail-date,
  .autocomplete-suggestion,
  .autocomplete-item,
  .location-suggestion,
  .city-suggestion,
  .postcode-suggestion,
  .geonames-result,
  .suggestion-item,
  [class*="suggestion"]{
    font-size: 11.5px !important;
  }

  .product-description,
  .description-copy,
  .product-accordion-content,
  .checkout-section p,
  .account-card p,
  .account-card span{
    font-size: 13px !important;
  }

  input,
  select,
  textarea{
    font-size: 16px !important;
  }
}


/* ===== v2.6.8 — Shop meta + postcode suggestions ===== */

/* SHOP: format/category + price under product cards */
.product-card .product-type,
.product-card .product-price,
.product-card .product-meta,
.product-card-footer,
.product-card-footer span,
.product-card-footer strong,
.product-preview-meta,
.product-preview-price,
.product-preview-type,
.shop-product-card .product-type,
.shop-product-card .product-price,
.shop-product-card .product-meta,
.shop-product-card footer,
.shop-product-card footer span,
.shop-product-card footer strong,
[data-product-card] .product-type,
[data-product-card] .product-price,
[data-product-card] .product-meta{
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* The left/right bottom line under the card image */
.product-card > div:last-child,
.product-card .preview-bottom,
.product-card .card-bottom,
.product-card .product-bottom,
.product-card .product-info-bottom{
  font-size: 14px !important;
}

/* CHECKOUT: postcode/city suggestion box */
.postcode-helper,
.postcode-helper p,
.postcode-helper button,
.postcode-options,
.postcode-options button,
.postal-code-options,
.postal-code-options button,
.postal-codes,
.postal-codes button,
.postcode-list,
.postcode-list button,
.city-helper,
.city-helper p,
.city-helper button,
.city-options,
.city-options button,
.location-helper,
.location-helper p,
.location-helper button,
.location-options,
.location-options button,
[data-postcode],
[data-postcode] button,
[id*="postcode"] button,
[class*="postcode"] button,
[id*="postal"] button,
[class*="postal"] button{
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* Text such as "Postal codes for Modena:" */
.postcode-helper > *,
.postcode-options > *,
.postal-code-options > *,
.postal-codes > *,
.postcode-list > *,
.city-helper > *,
.city-options > *,
.location-helper > *,
.location-options > *{
  font-size: 14px !important;
}

@media (max-width:760px){
  .product-card .product-type,
  .product-card .product-price,
  .product-card .product-meta,
  .product-card-footer,
  .product-card-footer span,
  .product-card-footer strong,
  .shop-product-card .product-type,
  .shop-product-card .product-price,
  .shop-product-card .product-meta,
  .postcode-helper,
  .postcode-helper p,
  .postcode-helper button,
  .postcode-options,
  .postcode-options button,
  .postal-code-options,
  .postal-code-options button,
  .postal-codes,
  .postal-codes button,
  .postcode-list,
  .postcode-list button,
  .city-helper,
  .city-helper p,
  .city-helper button,
  .city-options,
  .city-options button,
  .location-helper,
  .location-helper p,
  .location-helper button,
  .location-options,
  .location-options button{
    font-size: 14px !important;
  }
}


/* ===== v2.6.9 — EXACT selectors for remaining tiny text ===== */

/* Exact dynamically-generated Shop metadata */
.shop-product-grid .product-card .product-card-meta p,
.home-product-grid .product-card .product-card-meta p,
.product-card .product-card-meta p {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.shop-product-grid .product-card .product-card-meta strong,
.home-product-grid .product-card .product-card-meta strong,
.product-card .product-card-meta strong {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* Exact checkout postal-code helper created by script.js */
.postal-suggestions > span {
  font-size: 13px !important;
  line-height: 1.45 !important;
  margin-bottom: 9px;
}

.postal-suggestions button {
  font-size: 14px !important;
  line-height: 1.25 !important;
  padding: 8px 10px !important;
}

/* Keep the helper box itself comfortably readable */
.postal-suggestions {
  font-size: 14px !important;
  padding: 11px 12px !important;
}

@media (max-width:760px){
  .shop-product-grid .product-card .product-card-meta p,
  .home-product-grid .product-card .product-card-meta p,
  .product-card .product-card-meta p,
  .shop-product-grid .product-card .product-card-meta strong,
  .home-product-grid .product-card .product-card-meta strong,
  .product-card .product-card-meta strong,
  .postal-suggestions button {
    font-size: 14px !important;
  }

  .postal-suggestions > span {
    font-size: 13px !important;
  }
}


/* ===== v2.7.0 — TYPOGRAPHY BALANCE =====
   12px microcopy + compact Checkout title.
*/

/* SHOP: format/category + price under product cards -> 12px */
.shop-product-grid .product-card .product-card-meta p,
.home-product-grid .product-card .product-card-meta p,
.product-card .product-card-meta p,
.shop-product-grid .product-card .product-card-meta strong,
.home-product-grid .product-card .product-card-meta strong,
.product-card .product-card-meta strong {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

/* CHECKOUT title: same compact scale as Shop / Wishlist */
.checkout-heading h1 {
  font-size: clamp(24px, 2.7vw, 38px) !important;
  line-height: .95 !important;
  letter-spacing: -.035em !important;
  margin: 8px 0 14px !important;
}

/* Checkout header / eyebrow / secondary intro */
.checkout-back,
.checkout-secure-label,
.checkout-heading .eyebrow,
.checkout-heading > p:last-child {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

/* Product page microcopy shown in screenshots */
.product-back,
.product-back-link,
.back-to-category,
.product-page .back-link,
.product-page .eyebrow,
.product-options-label,
.product-option-label,
.variant-label,
.quantity-label,
.product-accordion-title,
.product-accordion-header,
.product-accordion-toggle,
.product-description,
.description-copy,
.product-accordion-content,
.product-accordion-content p,
.product-stock,
.product-stock span {
  font-size: 12px !important;
  line-height: 1.5 !important;
}

/* Search: counter / empty state / clear search */
.product-counter,
.shop-empty,
.shop-empty-message,
.empty-message,
.no-products,
.no-results,
.search-empty,
.search-empty-message,
.clear-search,
.shop-search-clear,
.wishlist-clear-all {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

/* Side-menu small hierarchy */
.main-nav > a,
.main-nav > .store-menu-group > .store-menu-toggle,
.main-nav > .side-search-group > .side-search-toggle,
.store-submenu a,
.side-search-results,
.side-search-results a,
.side-search-results small {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

/* ORDER SUMMARY / CART DRAWER — all secondary text */
.drawer-header h2 {
  font-size: 18px !important;
}

.cart-item h3,
.cart-item-heading,
.cart-item-heading strong,
.cart-item p,
.cart-item span,
.cart-item small,
.cart-item-meta,
.cart-item-variant,
.cart-item-price,
.remove-item,
.cart-totals div,
.cart-totals span,
.cart-totals strong,
.total-row,
.demo-note {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

/* Quantity controls inside Order Summary */
.cart-item .quantity-control,
.cart-item .quantity-control button,
.cart-item .quantity-control input,
.cart-quantity-control,
.cart-quantity-control button,
.cart-quantity-control input {
  font-size: 12px !important;
}

/* Checkout order-summary panel */
.checkout-summary,
.checkout-summary p,
.checkout-summary span,
.checkout-summary small,
.checkout-summary strong,
.checkout-summary label,
.checkout-summary .meta,
.checkout-summary .checkout-item-meta,
.checkout-summary .checkout-item-name,
.checkout-summary .checkout-item-price,
.checkout-summary .checkout-totals,
.checkout-summary .checkout-totals span,
.checkout-summary .checkout-totals strong {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

/* Postal suggestions stay at the requested readable size */
.postal-suggestions > span {
  font-size: 12px !important;
}

.postal-suggestions button {
  font-size: 12px !important;
}

/* Mobile keeps same visual hierarchy; inputs remain 16px for iOS */
@media (max-width:760px) {
  .checkout-heading h1 {
    font-size: clamp(24px, 8vw, 38px) !important;
  }

  .shop-product-grid .product-card .product-card-meta p,
  .product-card .product-card-meta p,
  .shop-product-grid .product-card .product-card-meta strong,
  .product-card .product-card-meta strong,
  .cart-item p,
  .cart-totals div,
  .remove-item,
  .product-back,
  .back-to-category,
  .product-options-label,
  .product-accordion-title,
  .product-description,
  .product-counter,
  .postal-suggestions > span,
  .postal-suggestions button {
    font-size: 12px !important;
  }

  input,
  select,
  textarea {
    font-size: 16px !important;
  }
}

/* ===== v2.7.1 — PRODUCT MICROCOPY + MENU + LOGO ===== */

/* Product-page labels and stock copy: keep all equivalent shop categories readable. */
.product-page .variant-label,
.product-page #variantLabel,
.product-page .product-options-label,
.product-page .product-option-label,
.product-page .quantity-label,
.product-page .product-stock,
.product-page .product-stock span,
.product-page .stock-status,
.product-page .stock-status span,
.product-page .product-accordion-title,
.product-page .product-accordion-header,
.product-page .product-description,
.product-page .description-copy,
.product-page .product-accordion-content,
.product-page .product-accordion-content p {
  font-size: 12px !important;
  line-height: 1.5 !important;
}

/* Side menu: increase every primary entry and every product sub-entry. */
.main-nav > a,
.main-nav > .store-menu-group > .store-menu-toggle,
.main-nav > .side-search-group > .side-search-toggle {
  font-size: 16px !important;
  line-height: 1.4 !important;
}

.store-submenu a {
  font-size: 15px !important;
  line-height: 1.4 !important;
}

.side-search-results,
.side-search-results a,
.side-search-results small {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* Slightly larger central header logo, still compact. */
.header-logo-link {
  width: 58px !important;
  height: 58px !important;
}

.site-header.scrolled .header-logo-link {
  width: 48px !important;
  height: 48px !important;
}

@media (max-width:760px) {
  .main-nav > a,
  .main-nav > .store-menu-group > .store-menu-toggle,
  .main-nav > .side-search-group > .side-search-toggle {
    font-size: 16px !important;
  }

  .store-submenu a {
    font-size: 15px !important;
  }

  .header-logo-link {
    width: 54px !important;
    height: 54px !important;
  }

  .site-header.scrolled .header-logo-link {
    width: 46px !important;
    height: 46px !important;
  }
}


/* ===== v2.7.2 — DESCRIPTION + LOGO + DYNAMIC CART LABEL ===== */

/* Keep section labels compact, but make the actual descriptive copy easier to read. */
.product-page .product-description,
.product-page .description-copy,
.product-page .product-accordion-content p,
.product-page .product-accordion-content li,
.product-page [data-accordion-content] p,
.product-page [data-accordion-content] li {
  font-size: 14px !important;
  line-height: 1.55 !important;
}

/* Labels such as SIZE / EDITION / QUANTITY / DESCRIPTION remain at 12px. */
.product-page .variant-label,
.product-page #variantLabel,
.product-page .product-options-label,
.product-page .product-option-label,
.product-page .quantity-label,
.product-page .product-accordion-title,
.product-page .product-accordion-header,
.product-page .stock-status,
.product-page .stock-status span,
.product-page .product-stock,
.product-page .product-stock span {
  font-size: 12px !important;
}

/* Increase central header/home-link logo another step. */
.header-logo-link {
  width: 68px !important;
  height: 68px !important;
}

.site-header.scrolled .header-logo-link {
  width: 56px !important;
  height: 56px !important;
}

@media (max-width:760px) {
  .header-logo-link {
    width: 62px !important;
    height: 62px !important;
  }

  .site-header.scrolled .header-logo-link {
    width: 52px !important;
    height: 52px !important;
  }

  .product-page .product-description,
  .product-page .description-copy,
  .product-page .product-accordion-content p,
  .product-page .product-accordion-content li,
  .product-page [data-accordion-content] p,
  .product-page [data-accordion-content] li {
    font-size: 14px !important;
  }
}

/* ===== v2.7.3 — EXACT DESCRIPTION + HEADER AIR ===== */
/* The actual product description is a span#productDescription, so target it directly. */
#productDescription {
  font-size: 14px !important;
  line-height: 1.55 !important;
}

/* Approx. 3 mm of visual air above and below the centred logo. */
.site-header {
  --header-logo-air: 11.34px;
  min-height: calc(68px + (var(--header-logo-air) * 2)) !important;
  padding-top: var(--header-logo-air) !important;
  padding-bottom: var(--header-logo-air) !important;
  box-sizing: border-box !important;
}

.header-logo-link {
  width: 68px !important;
  height: 68px !important;
}

@media (max-width:760px) {
  #productDescription {
    font-size: 14px !important;
  }
  .site-header {
    min-height: calc(62px + (var(--header-logo-air) * 2)) !important;
  }
}

/* ===== v2.9.0 — Manual payment choice ===== */
.manual-payment-methods{display:grid;gap:10px;margin:20px 0}
.manual-payment-option{display:flex;gap:12px;align-items:flex-start;border:1px solid rgba(255,255,255,.14);padding:14px 15px;cursor:pointer}
.manual-payment-option:has(input:checked){border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.035)}
.manual-payment-option input{margin-top:3px;accent-color:#ddd}
.manual-payment-option span{display:grid;gap:4px}
.manual-payment-option strong{font-size:13px;font-weight:500}
.manual-payment-option small{font-size:12px!important;line-height:1.45;color:#8d8d8d}
.manual-order-button span{font-size:13px}
.manual-order-button small{font-size:11px!important}
.payment-awaiting-note{margin-top:14px}

/* ===== v3.0.0 News + About us ===== */
.editorial-main{min-height:100vh;padding:145px 30px 120px}
.editorial-content{width:min(1050px,100%);margin:0 auto}
.editorial-heading{padding:30px 0 70px;border-bottom:1px solid rgba(255,255,255,.12)}
.editorial-heading h1,.about-entry h1{margin:10px 0 0;font-size:clamp(34px,4.6vw,58px);line-height:1;letter-spacing:-.025em;text-transform:uppercase}
.news-entry{display:grid;grid-template-columns:155px minmax(0,1fr);gap:42px;padding:52px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.news-date{padding-top:9px;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.52)}
.news-copy h2{margin:0 0 20px;font-size:clamp(24px,3.4vw,40px);line-height:1.08;font-weight:800;letter-spacing:-.018em}
.editorial-body{white-space:pre-wrap;font-size:14px;line-height:1.85;color:rgba(255,255,255,.78);max-width:780px}
.about-entry{padding:55px 0}.about-entry .editorial-body{margin-top:42px;font-size:15px;max-width:850px}
.editorial-empty{min-height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:34px}
.editorial-empty img{width:clamp(130px,18vw,245px);max-height:170px;object-fit:contain}
.editorial-empty a{font-size:11px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:5px}
@media(max-width:680px){.editorial-main{padding:120px 22px 90px}.news-entry{grid-template-columns:1fr;gap:12px;padding:38px 0}.news-date{padding:0}.editorial-body{font-size:13px}}

/* v3.0.2 rich text */
.editorial-body p{margin:0 0 1.15em}.editorial-body p:last-child{margin-bottom:0}.editorial-body strong,.editorial-body b{font-weight:800;color:inherit}.editorial-body em,.editorial-body i{font-style:italic}.editorial-body u{text-decoration:underline;text-underline-offset:2px}

/* ===== v3.0.3 — unified page headings / vertical centering ===== */

/* All compact internal page-title blocks share one visual rhythm. */
.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro {
  min-height: 260px !important;
  box-sizing: border-box;
  padding-top: 46px !important;
  padding-bottom: 46px !important;
  justify-content: center !important;
}

.shop-intro h1,
.account-main .shop-intro h1,
.wishlist-main .shop-intro h1 {
  font-size: clamp(24px, 2.7vw, 38px) !important;
  line-height: .95 !important;
}

/* News header follows the same size and centered block as Wishlist / Account / Shop. */
.editorial-main {
  padding-top: 70px;
}

.editorial-heading {
  min-height: 260px;
  box-sizing: border-box;
  padding: 46px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-top: 1px solid rgba(255,255,255,.11);
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.editorial-heading .eyebrow {
  margin: 0 0 18px;
}

.editorial-heading h1 {
  margin: 0 !important;
  font-size: clamp(24px, 2.7vw, 38px) !important;
  line-height: .95 !important;
  letter-spacing: -.025em !important;
}

.news-entry {
  grid-template-columns: 155px minmax(0,1fr);
}

.news-copy h2 {
  font-size: clamp(20px, 2.25vw, 32px) !important;
  line-height: 1.08 !important;
}

@media(max-width:700px){
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro,
  .editorial-heading {
    min-height: 220px !important;
    padding-top: 38px !important;
    padding-bottom: 38px !important;
  }
}


/* ===== v3.0.4 — exact page-title centering =====
   The old ::before line participated in flex layout and pushed the text upward.
   The two lines are now real section borders and the copy is centered between them.
*/
.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro {
  height: 260px !important;
  min-height: 260px !important;
  padding: 0 30px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  border-top: 1px solid rgba(255,255,255,.11) !important;
  border-bottom: 1px solid rgba(255,255,255,.11) !important;
}

.shop-intro::before,
.account-main .shop-intro::before,
.wishlist-main .shop-intro::before {
  content: none !important;
  display: none !important;
}

.shop-intro .eyebrow,
.account-main .shop-intro .eyebrow,
.wishlist-main .shop-intro .eyebrow {
  margin: 0 0 17px !important;
}

.shop-intro h1,
.account-main .shop-intro h1,
.wishlist-main .shop-intro h1 {
  margin: 0 !important;
}

.shop-intro > p:last-child,
.account-main .shop-intro > p:last-child,
.wishlist-main .shop-intro > p:last-child {
  margin: 17px 0 0 !important;
}

/* Shop has only eyebrow + heading. Do not let its eyebrow inherit extra bottom spacing rules. */
.shop-intro.compact-page-intro .eyebrow {
  margin-bottom: 17px !important;
}

/* News uses the identical 260px title box. */
.editorial-main {
  padding-top: 0 !important;
}

.editorial-heading {
  height: 260px !important;
  min-height: 260px !important;
  margin: 0 !important;
  padding: 0 30px !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  border-top: 1px solid rgba(255,255,255,.11) !important;
  border-bottom: 1px solid rgba(255,255,255,.11) !important;
}

.editorial-heading .eyebrow {
  margin: 0 0 17px !important;
}

.editorial-heading h1 {
  margin: 0 !important;
}

/* Exact same heading scale used by Shop / Wishlist / My Account. */
.editorial-heading h1 {
  font-size: clamp(24px,2.7vw,38px) !important;
}
.news-copy h2 {
  font-size: clamp(19px,2.15vw,30px) !important;
}

/* Formatting may NEVER change typeface or character size. */
.editorial-body span,
.editorial-body strong,
.editorial-body b,
.editorial-body em,
.editorial-body i,
.editorial-body u {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

@media(max-width:700px){
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro,
  .editorial-heading {
    height: 220px !important;
    min-height: 220px !important;
    padding: 0 22px !important;
  }
}


/* ===== v3.0.5 — TITLE BANDS ONLY =====
   Shorter band + exact vertical centering.
*/
.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro {
  height: 190px !important;
  min-height: 190px !important;
  max-height: 190px !important;
  padding: 0 30px !important;
  margin: 0 !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;

  box-sizing: border-box !important;
  text-align: center !important;

  border-top: 1px solid rgba(255,255,255,.11) !important;
  border-bottom: 1px solid rgba(255,255,255,.11) !important;
}

/* Remove the historical pseudo-line that used to take vertical space. */
.shop-intro::before,
.account-main .shop-intro::before,
.wishlist-main .shop-intro::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* The three text lines form one centered group. */
.shop-intro .eyebrow,
.account-main .shop-intro .eyebrow,
.wishlist-main .shop-intro .eyebrow {
  flex: 0 0 auto !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

.shop-intro h1,
.account-main .shop-intro h1,
.wishlist-main .shop-intro h1 {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.account-main .shop-intro > p:last-child,
.wishlist-main .shop-intro > p:last-child {
  flex: 0 0 auto !important;
  margin: 14px 0 0 !important;
  padding: 0 !important;
}

/* Shop has no descriptive line below the title. */
.shop-intro.compact-page-intro h1 {
  margin-bottom: 0 !important;
}

/* NEWS: exactly the same title-band geometry. */
.editorial-main {
  padding-top: 0 !important;
}

.editorial-heading {
  height: 190px !important;
  min-height: 190px !important;
  max-height: 190px !important;
  padding: 0 30px !important;
  margin: 0 !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;

  box-sizing: border-box !important;
  text-align: center !important;
  border-top: 1px solid rgba(255,255,255,.11) !important;
  border-bottom: 1px solid rgba(255,255,255,.11) !important;
}

.editorial-heading .eyebrow {
  margin: 0 0 14px !important;
  padding: 0 !important;
}

.editorial-heading h1 {
  margin: 0 !important;
  padding: 0 !important;
}

/* Account content below the lower line needs breathing room. */
.account-shell {
  padding-top: 34px !important;
}

/* Keep the logged-in heading itself away from the line. */
.account-dashboard-header {
  margin-top: 0 !important;
}

@media(max-width:700px){
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro,
  .editorial-heading {
    height: 170px !important;
    min-height: 170px !important;
    max-height: 170px !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  .account-shell {
    padding-top: 28px !important;
  }
}


/* ===== v3.0.6 — TITLE BAND POSITION FIX ONLY =====
   Increase the band slightly and move the complete title group DOWN
   inside the band. No editor or other layout changes.
*/
.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro,
.editorial-heading {
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  padding-top: 34px !important;
  padding-bottom: 0 !important;
  justify-content: center !important;
}

/* Keep the full text group together and safely below the upper border. */
.shop-intro .eyebrow,
.account-main .shop-intro .eyebrow,
.wishlist-main .shop-intro .eyebrow,
.editorial-heading .eyebrow {
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

.shop-intro h1,
.account-main .shop-intro h1,
.wishlist-main .shop-intro h1,
.editorial-heading h1 {
  margin-top: 0 !important;
}

.account-main .shop-intro > p:last-child,
.wishlist-main .shop-intro > p:last-child {
  margin-top: 14px !important;
}

/* On small screens keep the same logic with slightly less vertical offset. */
@media(max-width:700px){
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro,
  .editorial-heading {
    height: 195px !important;
    min-height: 195px !important;
    max-height: 195px !important;
    padding-top: 26px !important;
    padding-bottom: 0 !important;
  }
}

/* ===== v3.0.7 — lower all page-title text groups ===== */
.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro,
.editorial-heading {
  padding-top: 54px !important;
  padding-bottom: 0 !important;
}
@media(max-width:700px){
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro,
  .editorial-heading {
    padding-top: 42px !important;
    padding-bottom: 0 !important;
  }
}

/* ===== v3.0.8 — lower all title blocks further ===== */
.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro,
.editorial-heading {
  padding-top: 72px !important;
  padding-bottom: 0 !important;
}
@media(max-width:700px){
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro,
  .editorial-heading {
    padding-top: 56px !important;
    padding-bottom: 0 !important;
  }
}

/* ===== v3.0.9 — lower all title blocks further ===== */
.shop-intro,
.account-main .shop-intro,
.wishlist-main .shop-intro,
.editorial-heading {
  padding-top: 90px !important;
  padding-bottom: 0 !important;
}
@media(max-width:700px){
  .shop-intro,
  .account-main .shop-intro,
  .wishlist-main .shop-intro,
  .editorial-heading {
    padding-top: 70px !important;
    padding-bottom: 0 !important;
  }
}


/* ===== v3.1.0 — ABOUT US PAGE FIX ===== */

/* About uses the same page-title band geometry/position already approved for News. */
.about-page-heading {
  width: 100% !important;
}

/* Content below the About page heading. */
.about-entry {
  width: min(820px, calc(100% - 44px)) !important;
  margin: 0 auto !important;
  padding: 58px 0 90px !important;
  text-align: center !important;
}

/* Same scale as an individual News title. */
.about-content-title {
  margin: 0 0 26px !important;
  font-size: clamp(19px,2.15vw,30px) !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  letter-spacing: -.018em !important;
  text-align: center !important;
}

/* Same typography as News body, but centered. */
.about-content-body {
  max-width: 780px !important;
  margin: 0 auto !important;
  font-size: 14px !important;
  line-height: 1.85 !important;
  text-align: center !important;
  white-space: pre-wrap !important;
  color: rgba(255,255,255,.78) !important;
}

.about-content-body p {
  text-align: center !important;
}

/* ===== v3.2.0 — account deletion request ===== */
.account-delete-card{border-color:rgba(190,72,72,.45)!important}
.account-delete-card p{color:rgba(255,255,255,.65);line-height:1.65}
.account-delete-request{border:1px solid rgba(217,87,87,.65);background:transparent;color:#e89595;padding:12px 16px;cursor:pointer}
.account-delete-request:disabled{opacity:.5;cursor:not-allowed}

/* ===== v3.1.6 — public rich-text rendering ===== */
.editorial-body strong,
.editorial-body b {
  font-weight: 800 !important;
}

.editorial-body em,
.editorial-body i {
  font-style: italic !important;
}

.editorial-body u {
  text-decoration-line: underline !important;
  text-underline-offset: 2px !important;
}

@media(max-width:680px){
  .about-entry {
    width: min(100% - 36px,780px) !important;
    padding: 44px 0 72px !important;
  }
  .about-content-body {
    font-size: 13px !important;
  }
}

/* ===== v3.4.0 — product hierarchy + mobile form focus ===== */
.mobile-product-back{display:none}
.product-page .release-context{margin-top:22px}
.product-page .release-context .product-lead{margin:0 0 18px}

@media(max-width:760px){
  .product-page .product-layout{display:grid;grid-template-columns:1fr}
  .product-page .mobile-product-back{
    display:block;
    order:-2;
    margin:0;
    padding:24px 20px 16px;
    background:#0d0d0d;
  }
  .product-page .desktop-product-back{display:none}
  .product-page .product-gallery{padding-top:0}
  .product-page .product-info{padding-top:34px}
  .product-page .product-info h1{margin-top:0}
  .product-page .release-context{margin-top:18px;padding-top:16px}
  .product-page .release-context .product-lead{margin-bottom:14px}

  .account-page input,
  .account-page select,
  .account-page textarea,
  .checkout-page input,
  .checkout-page select,
  .checkout-page textarea{
    font-size:16px!important;
    line-height:1.25!important;
    -webkit-text-size-adjust:100%;
  }
}

/* ===== v3.5.0 — compact product description + managed home hero ===== */
.product-page .product-gallery{background:#050505!important}
.product-page .mobile-product-back{background:#050505!important}
.product-page .release-context{
  margin:12px 0 0!important;
  padding:12px 0!important;
}
.product-page .release-context .product-lead{margin:0!important}
.product-page #productLead,
.product-page #productDescription,
.product-page #releaseDescription{white-space:pre-line}
.product-page .release-context .release-metadata:not([hidden]),
.product-page .release-context .release-description:not([hidden]){margin-top:12px}
.product-page .product-options{margin-top:0!important}

/* v3.14.1 — PRE-ORDER marker in product detail, outside document flow. */
.product-page .product-detail-badge{
  position:absolute;
  top:120px;
  left:clamp(34px,5vw,78px);
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:4px 9px;
  box-sizing:border-box;
  background:#fff;
  color:#000;
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.product-page .product-detail-badge[hidden]{display:none!important}
@media (max-width:980px){
  .product-page .product-info{position:relative}
  .product-page .product-detail-badge{top:110px;left:24px}
}
@media (max-width:760px){
  .product-page .product-detail-badge{top:-10px;left:24px}
}

.home-page .hero-art{
  background-image:
    radial-gradient(circle at 68% 38%,rgba(255,255,255,.14),transparent 8%),
    radial-gradient(circle at 38% 36%,rgba(255,255,255,.08),transparent 2%),
    linear-gradient(120deg,transparent 42%,rgba(255,255,255,.07) 43%,transparent 45%),
    linear-gradient(30deg,transparent 50%,rgba(255,255,255,.05) 51%,transparent 52%),
    var(--home-hero-image,url("assets/hero-placeholder.svg"));
  background-position:center,center,center,center,center;
  background-size:auto,auto,auto,auto,cover;
  background-repeat:no-repeat;
}
.home-page .hero-art.no-home-hero{background:#050505!important}

@media(max-width:760px){
  .product-page .product-gallery{padding-bottom:8px!important}
  .product-page .product-info{padding-top:16px!important}
}
.compact-shipping-methods{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.compact-shipping-methods>span{margin-bottom:2px}.compact-shipping-methods>label{display:flex;align-items:flex-start;justify-content:flex-start;gap:10px;width:auto;padding:0;border:0;background:transparent;cursor:pointer}.compact-shipping-methods>label[hidden]{display:none!important}.compact-shipping-methods input[type="radio"]{flex:0 0 auto;width:15px;height:15px;margin:2px 0 0;accent-color:#f2f0e9}.compact-shipping-methods label span{display:flex;flex-direction:column;align-items:flex-start;gap:1px}.compact-shipping-methods label strong,.compact-shipping-methods label small{text-align:left}
