:root {
  --ink: #141414;
  --ink-soft: rgba(20, 20, 20, 0.62);
  --surface: #f3f1ee;
  --surface-2: #ebe7e1;
  --line: rgba(20, 20, 20, 0.12);
  --accent: #2f4a3e;
  --header-h: 4.35rem;
  --brand-gap: 7.5rem;
  --page-inline: 1.25rem;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-size-adjust: 100%;
  scroll-behavior: auto;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  font-family: "Montserrat", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(120% 80% at 12% -10%, rgba(47, 74, 62, 0.08), transparent 55%),
    radial-gradient(90% 70% at 100% 0%, rgba(20, 20, 20, 0.05), transparent 50%),
    linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%);
  overflow-x: hidden;
  overscroll-behavior-y: contain;
}

body.is-nav-open {
  overflow: hidden;
  touch-action: none;
}

a {
  color: inherit;
  text-decoration: none;
}

.site-header {
  position: sticky;
  top: calc(0.65rem + var(--safe-top));
  z-index: 50;
  width: min(1200px, calc(100% - (var(--page-inline) * 2)));
  min-height: var(--header-h);
  margin-inline: auto;
  border: 1px solid var(--line);
  border-radius: 1.15rem;
  background: rgba(243, 241, 238, 0.96);
  box-shadow:
    0 1px 2px rgba(20, 20, 20, 0.04),
    0 8px 22px rgba(20, 20, 20, 0.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.header-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: var(--brand-gap);
  width: 100%;
  min-height: var(--header-h);
  margin-inline: auto;
  padding-inline: clamp(0.85rem, 2vw, 1.35rem);
}

.brand-block {
  grid-column: 2;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-self: center;
  gap: 0.2rem;
  max-width: 100%;
  text-align: center;
}

.brand {
  font-family: "Italiana", serif;
  font-size: clamp(1.45rem, 2.2vw, 1.8rem);
  font-weight: 400;
  letter-spacing: 0.18em;
  line-height: 1;
  text-wrap: balance;
  -webkit-text-stroke: 0.4px currentColor;
  paint-order: stroke fill;
  transition: opacity 180ms var(--ease), transform 180ms var(--ease);
}

.brand-tagline {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.52rem;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ink-soft);
  line-height: 1;
  white-space: nowrap;
}

.brand:hover {
  opacity: 0.72;
}

.brand:active {
  transform: scale(0.98);
}

.site-nav {
  display: flex;
  align-items: center;
  min-width: 0;
}

.site-nav--left {
  grid-column: 1;
  justify-self: end;
}

.header-right {
  grid-column: 3;
  display: flex;
  align-items: center;
  justify-self: end;
  gap: 2.5rem;
  min-width: 0;
}

.site-nav--right {
  min-width: 0;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex-shrink: 0;
}

.icon-btn {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  color: var(--ink);
  border-radius: 50%;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    transform 150ms var(--ease);
  -webkit-tap-highlight-color: transparent;
}

.icon-btn__label {
  display: none;
  font-family: "Montserrat", sans-serif;
  font-size: 0.58rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--ink-soft);
  white-space: nowrap;
  transition: color 180ms var(--ease);
}

.icon-btn:hover,
.icon-btn:focus-visible {
  color: var(--accent);
  background-color: rgba(47, 74, 62, 0.08);
}

.icon-btn:hover .icon-btn__label,
.icon-btn:focus-visible .icon-btn__label {
  color: var(--accent);
}

.icon-btn:active {
  transform: scale(0.96);
}

.icon-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.icon {
  width: 22px;
  height: 22px;
  display: block;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 1.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding-block: 0.25rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  white-space: nowrap;
  transition: color 200ms var(--ease), opacity 200ms var(--ease);
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.55rem;
  width: 100%;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 280ms var(--ease);
}

.nav-link:hover,
.nav-link:focus-visible {
  color: var(--accent);
}

.nav-link:hover::after,
.nav-link:focus-visible::after {
  transform: scaleX(1);
}

.nav-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.nav-toggle {
  display: none;
  position: relative;
  z-index: 60;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.nav-toggle__line {
  display: block;
  width: 22px;
  height: 1.5px;
  margin-inline: auto;
  background: var(--ink);
  transition:
    transform 240ms var(--ease),
    opacity 180ms var(--ease);
}

.nav-toggle__line + .nav-toggle__line {
  margin-top: 7px;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:first-child {
  transform: translateY(4.25px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:last-child {
  transform: translateY(-4.25px) rotate(-45deg);
}

.mobile-dock {
  display: none;
}

.page {
  min-height: calc(100dvh - var(--header-h) - var(--safe-top));
}

.page--custom,
.page--about,
.page--stones,
.page--home,
.page--catalog,
.page--product,
.page--auth {
  position: relative;
  overflow-x: clip;
}

.page--home {
  position: relative;
  overflow-x: clip;
}

.preview-page {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background: #0f0f0f;
  overflow: hidden;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.preview {
  position: fixed;
  inset: 0;
  background: #0f0f0f;
  pointer-events: none;
  touch-action: none;
}

.preview__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #0f0f0f;
  pointer-events: none;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}

@media (min-width: 901px) {
  .preview-page,
  .preview {
    display: none !important;
  }
}

/* —— Home —— */
.home-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  margin-top: calc(-1 * var(--header-h));
  width: 100%;
  min-height: min(78dvh, 42rem);
  overflow: hidden;
  color: #f3f1ee;
  background: #1c1a17;
}

.home-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 82% 48%;
}

.home-hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(18, 16, 14, 0.62) 0%, rgba(18, 16, 14, 0.18) 48%, transparent 72%),
    linear-gradient(180deg, rgba(18, 16, 14, 0.22) 0%, transparent 36%, rgba(18, 16, 14, 0.58) 100%);
  pointer-events: none;
}

.home-hero__content {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(5.5rem, 10vw, 8rem) 0 clamp(2.75rem, 6vw, 4.25rem);
}

.home-hero__brand {
  margin: 0;
  font-family: "Italiana", serif;
  font-size: clamp(3.2rem, 8vw, 5.4rem);
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 0.9;
  text-wrap: balance;
  -webkit-text-stroke: 0.35px currentColor;
}

.home-hero__lead {
  margin: 1rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(243, 241, 238, 0.74);
}

.home-hero__text {
  margin: 1.05rem 0 0;
  max-width: 24rem;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.95rem, 1.6vw, 1.05rem);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.02em;
  color: rgba(243, 241, 238, 0.9);
  text-wrap: pretty;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
}

.home-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.85rem 1.5rem;
  border: 1px solid #f3f1ee;
  border-radius: 0.65rem;
  background: transparent;
  color: #f3f1ee;
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    border-color 180ms var(--ease),
    transform 150ms var(--ease);
}

.home-btn:hover,
.home-btn:focus-visible {
  background: #f3f1ee;
  color: var(--ink);
  transform: translateY(-1px);
}

.home-btn:active {
  transform: scale(0.98);
}

.home-btn:focus-visible {
  outline: 2px solid #f3f1ee;
  outline-offset: 3px;
}

.home-btn--ink {
  border-color: var(--ink);
  color: var(--ink);
}

.home-btn--ink:hover,
.home-btn--ink:focus-visible {
  background: var(--ink);
  color: #f3f1ee;
  outline-color: var(--ink);
}

.home-section {
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(3rem, 7vw, 5rem) 0 0;
  scroll-margin-top: calc(var(--header-h) + 1.75rem);
}

.home-section + .home-section {
  margin-top: clamp(1.25rem, 3vw, 2rem);
  padding-top: clamp(2.75rem, 6vw, 4.25rem);
  border-top: 1px solid var(--line);
}

.home-section--band {
  width: 100%;
  max-width: none;
  margin-top: clamp(1.5rem, 4vw, 2.5rem);
  padding:
    clamp(2.75rem, 6vw, 4.25rem)
    max(var(--page-inline), calc((100% - 1120px) / 2))
    0;
  border-top: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.35), transparent 42%),
    rgba(235, 231, 225, 0.55);
}

.home-section--band .home-section__head,
.home-section--band .home-collection,
.home-section--band .home-products,
.home-section--band .home-panels,
.home-section--band .home-faq__list {
  width: min(1120px, 100%);
  margin-inline: auto;
}

.home-section--band + .home-section {
  border-top: 0;
}

.home-section__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.65rem 1.5rem;
  margin-bottom: clamp(1.35rem, 3vw, 1.85rem);
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--line);
}

.home-section__head--split {
  align-items: flex-start;
}

.home-section__heading {
  display: grid;
  gap: 0.4rem;
  min-width: 0;
  flex: 1 1 auto;
}

@media (min-width: 901px) {
  .home-section__head--split .home-section__heading {
    flex: 1 1 14rem;
  }
}

.home-section__head--stack {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.home-section__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.95rem, 1.8vw, 1.1rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
  text-wrap: balance;
}

.home-section__lead {
  margin: 0;
  max-width: 28rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.home-section__link {
  flex: 0 0 auto;
  margin-left: auto;
  align-self: flex-start;
  margin-top: 0.15rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  transition: color 160ms var(--ease);
}

.home-section__link:hover,
.home-section__link:focus-visible {
  color: var(--ink);
}

.home-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-collection {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.85rem, 2vw, 1.15rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-product {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  color: inherit;
}

.home-product--overlay {
  gap: 0;
}

.home-product__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border-radius: 0.85rem;
  background:
    linear-gradient(180deg, rgba(20, 20, 20, 0.04), transparent 40%),
    #dedad4;
}

.home-product--overlay .home-product__media::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 48%;
  background: linear-gradient(
    180deg,
    rgba(12, 12, 12, 0) 0%,
    rgba(12, 12, 12, 0.42) 48%,
    rgba(12, 12, 12, 0.72) 100%
  );
  pointer-events: none;
}

.home-product__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: grid;
  gap: 0.2rem;
  padding: 1.15rem 0.95rem 0.95rem;
  color: #f6f3ef;
}

.home-product--overlay .home-product__name {
  color: #f6f3ef;
  font-size: clamp(0.95rem, 1.4vw, 1.08rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
}

.home-product--overlay .home-product__price {
  color: rgba(246, 243, 239, 0.82);
  font-size: 0.76rem;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
}

.home-product--overlay:hover .home-product__name,
.home-product--overlay:focus-visible .home-product__name {
  color: #fff;
}

.home-product--overlay:hover .home-product__price,
.home-product--overlay:focus-visible .home-product__price {
  color: rgba(255, 255, 255, 0.9);
}

.home-collection .home-product__media {
  aspect-ratio: 3 / 4;
  max-height: none;
}

.home-product__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition:
    transform 720ms var(--ease),
    filter 720ms var(--ease);
}

.home-product:hover .home-product__media img,
.home-product:focus-within .home-product__media img {
  transform: scale(1.03);
  filter: saturate(1.04) contrast(1.02);
}

.home-product__body {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
}

.home-product__name {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.98rem, 1.5vw, 1.12rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.25;
  text-wrap: balance;
  transition: color 180ms var(--ease);
}

.home-product__price {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--ink-soft);
}

.home-product:hover .home-product__name,
.home-product:focus-visible .home-product__name {
  color: var(--accent);
}

.home-product__meta {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--ink-soft);
}

.home-panels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.home-panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.15rem;
  min-height: 100%;
  padding: clamp(1.5rem, 3vw, 1.9rem);
  border: 1px solid var(--line);
  border-radius: 0.95rem;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.18)),
    radial-gradient(90% 80% at 100% 0%, rgba(47, 74, 62, 0.08), transparent 55%);
  box-shadow:
    0 4px 10px rgba(20, 20, 20, 0.05),
    0 14px 32px rgba(20, 20, 20, 0.06);
}

.home-panel--media {
  position: relative;
  isolation: isolate;
  justify-content: flex-end;
  padding: 0;
  overflow: hidden;
  gap: 0;
  min-height: 22rem;
  border: 0;
  border-radius: 0.95rem;
  background: #161616;
  color: #f3f1ee;
}

.home-panel__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.85rem;
  min-width: 0;
  height: 100%;
}

.home-panel--media .home-panel__content {
  position: relative;
  z-index: 2;
  height: auto;
  padding: clamp(1.35rem, 3vw, 1.7rem);
  background: linear-gradient(180deg, transparent 0%, rgba(12, 12, 12, 0.7) 38%, rgba(12, 12, 12, 0.88) 100%);
}

.home-panel--media .home-panel__title {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.45rem, 2.3vw, 1.9rem);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.1;
  text-transform: none;
  text-wrap: balance;
  -webkit-text-stroke: 0.25px currentColor;
}

.home-panel--media .home-panel__title--sans {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  -webkit-text-stroke: 0;
}

.home-panel--media .home-panel__text {
  color: rgba(243, 241, 238, 0.82);
}

.home-panel--media .home-panel__btn {
  border-color: #f3f1ee;
  color: #f3f1ee;
}

.home-panel--media .home-panel__btn:hover,
.home-panel--media .home-panel__btn:focus-visible {
  color: var(--ink);
  background-color: #f3f1ee;
  border-color: #f3f1ee;
}

.home-panel__mark {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(243, 241, 238, 0.68);
}

.home-panel__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.7rem, 1.05vw, 0.8rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.home-panel__text {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.82rem, 1.15vw, 0.92rem);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.home-panel__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: auto;
  padding: 0.65rem 1rem;
  border: 1px solid var(--ink);
  border-radius: 0.65rem;
  background: transparent;
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    border-color 180ms var(--ease),
    transform 150ms var(--ease);
}

.home-panel__btn:hover,
.home-panel__btn:focus-visible {
  color: #f3f1ee;
  background-color: var(--ink);
  border-color: var(--ink);
  transform: translateY(-1px);
}

.home-panel__btn:active {
  transform: scale(0.98);
}

.home-panel__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.home-panel__photo {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 900px) {
  .home-panels {
    grid-template-columns: 1fr;
  }

  .home-panel__title {
    font-size: 0.82rem;
  }

  .home-panel__text {
    font-size: 0.92rem;
  }

  .home-panel--media {
    min-height: 20rem;
  }
}

.home-faq__list {
  display: flex;
  flex-direction: column;
  margin: 0;
  border-top: 1px solid var(--line);
}

.home-faq__item {
  border-bottom: 1px solid var(--line);
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 560ms var(--ease),
    transform 560ms var(--ease),
    background-color 220ms var(--ease);
}

.home-faq.is-inview .home-faq__item {
  opacity: 1;
  transform: translateY(0);
}

.home-faq.is-inview .home-faq__item:nth-child(1) { transition-delay: 40ms; }
.home-faq.is-inview .home-faq__item:nth-child(2) { transition-delay: 90ms; }
.home-faq.is-inview .home-faq__item:nth-child(3) { transition-delay: 140ms; }
.home-faq.is-inview .home-faq__item:nth-child(4) { transition-delay: 190ms; }
.home-faq.is-inview .home-faq__item:nth-child(5) { transition-delay: 240ms; }
.home-faq.is-inview .home-faq__item:nth-child(6) { transition-delay: 290ms; }
.home-faq.is-inview .home-faq__item:nth-child(7) { transition-delay: 340ms; }
.home-faq.is-inview .home-faq__item:nth-child(8) { transition-delay: 390ms; }
.home-faq.is-inview .home-faq__item:nth-child(9) { transition-delay: 440ms; }

.home-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.15rem 0;
  list-style: none;
  cursor: pointer;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.9rem, 1.5vw, 1rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.45;
  color: var(--ink);
  transition:
    color 220ms var(--ease),
    padding-left 220ms var(--ease);
  -webkit-tap-highlight-color: transparent;
}

.home-faq__question::-webkit-details-marker {
  display: none;
}

.home-faq__question::after {
  content: "";
  flex-shrink: 0;
  width: 0.55rem;
  height: 0.55rem;
  margin-top: -0.15rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform 320ms var(--ease);
}

.home-faq__item[open] .home-faq__question {
  color: var(--accent);
  padding-left: 0.35rem;
}

.home-faq__item[open] .home-faq__question::after {
  margin-top: 0.2rem;
  transform: rotate(225deg);
}

.home-faq__question:hover,
.home-faq__question:focus-visible {
  color: var(--accent);
  padding-left: 0.35rem;
}

.home-faq__question:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.home-faq__answer {
  margin: 0;
  max-width: 42rem;
  padding: 0 0 1.35rem 0.35rem;
  overflow: hidden;
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  text-wrap: pretty;
  animation: home-faq-open 420ms var(--ease) both;
}

@keyframes home-faq-open {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-faq__item {
    opacity: 1;
    transform: none;
    transition: none !important;
  }

  .home-faq__answer {
    animation: none !important;
  }

  .home-faq__question,
  .home-faq__question::after {
    transition: none !important;
  }
}

@keyframes home-hero-in {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 800px) {
  .home-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .home-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__content {
    animation: none !important;
  }

  .home-product__media img {
    transition: none !important;
  }
}

.about {
  width: 100%;
}

.about-intro,
.about-values,
.about-story {
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin-inline: auto;
}

.about-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(15rem, 0.78fr);
  gap: clamp(1.75rem, 5vw, 4.5rem);
  align-items: center;
  padding: clamp(2.25rem, 5.5vw, 4.25rem) 0 clamp(2rem, 4vw, 3rem);
}

.about-intro__eyebrow {
  margin: 0 0 0.85rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.about-intro__brand {
  margin: 0;
  --reveal-delay: 70ms;
}

.about-intro__brand .brand {
  display: inline-block;
  font-size: clamp(2.2rem, 4.4vw, 2.9rem);
  letter-spacing: 0.16em;
}

.about-intro__lead {
  margin: 1rem 0 0;
  max-width: 22rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--accent);
  text-wrap: pretty;
  --reveal-delay: 140ms;
}

.about-intro__text {
  margin: 1.15rem 0 0;
  max-width: 28rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.98rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--ink-soft);
  text-wrap: pretty;
  --reveal-delay: 200ms;
}

.about-intro__media {
  margin: 0;
  --reveal-delay: 120ms;
}

.about-intro__media img,
.about-story__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.08);
  outline-offset: -1px;
}

.about-intro__media img {
  aspect-ratio: 3 / 4;
  max-height: 34rem;
}

.about-values {
  padding: clamp(1.5rem, 4vw, 2.5rem) 0;
  border-top: 1px solid var(--line);
}

.about-values__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.about-values__list > li:nth-child(2) {
  --reveal-delay: 80ms;
}

.about-values__list > li:nth-child(3) {
  --reveal-delay: 160ms;
}

.about-values__index {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: rgba(20, 20, 20, 0.4);
}

.about-values__title {
  margin: 0.45rem 0 0.55rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.about-values__list p {
  margin: 0;
  max-width: 22rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 1.65;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.about-story {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: clamp(1.5rem, 4vw, 3.25rem);
  align-items: center;
  padding: clamp(1.75rem, 5vw, 3.5rem) 0;
}

.about-story__media {
  margin: 0;
  overflow: hidden;
  background: #ebe3d6;
}

.about-story__media img {
  aspect-ratio: 4 / 3;
}

.about-story__copy {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  --reveal-delay: 120ms;
}

.about-story__title {
  margin: 0 0 0.15rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.about-story__copy p {
  margin: 0;
  max-width: 34rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.about-close {
  width: min(560px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(2.5rem, 7vw, 4.75rem) 0 clamp(3.25rem, 8vw, 5.5rem);
  text-align: center;
}

.about-close__text {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.about-close__line {
  margin: 1.35rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
  font-family: "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.5;
  text-wrap: pretty;
  --reveal-delay: 80ms;
}

.about-close .home-btn {
  margin-top: 1.6rem;
  --reveal-delay: 160ms;
}

.custom-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  margin-top: calc(-1 * var(--header-h));
  min-height: min(68dvh, 36rem);
  overflow: hidden;
  color: #f3f1ee;
  background: #161616;
}

.custom-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% 40%;
}

.custom-hero__media[data-reveal] {
  transform: scale(1.06);
}

.custom-hero__media[data-reveal].is-inview {
  transform: scale(1);
}

.custom-hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(62, 52, 42, 0.28) 0%, rgba(62, 52, 42, 0.08) 46%, transparent 70%),
    linear-gradient(180deg, rgba(62, 52, 42, 0.1) 0%, transparent 40%, rgba(62, 52, 42, 0.38) 100%);
  pointer-events: none;
}

.custom-hero__content {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(6rem, 10vw, 8rem) 0 clamp(2.25rem, 5vw, 3.5rem);
}

.custom-hero__title {
  margin: 0;
  max-width: 14ch;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-transform: uppercase;
  text-wrap: balance;
  --reveal-delay: 70ms;
}

.custom-hero__lead {
  margin: 0.85rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(243, 241, 238, 0.78);
  --reveal-delay: 140ms;
}

.custom-hero__text {
  margin: 1rem 0 0;
  max-width: 26rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.6;
  color: rgba(243, 241, 238, 0.88);
  text-wrap: pretty;
  --reveal-delay: 200ms;
}

.custom-hero .home-btn {
  margin-top: 1.5rem;
  --reveal-delay: 260ms;
}


.page--stones {
  overflow-x: clip;
}

.stones {
  width: 100%;
}

.stones-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  margin-top: calc(-1 * var(--header-h));
  min-height: min(62dvh, 32rem);
  overflow: hidden;
  color: #f3f1ee;
  background: #161616;
}

.stones-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
}

.stones-hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(12, 12, 12, 0.2) 0%, transparent 36%, rgba(12, 12, 12, 0.78) 100%);
  pointer-events: none;
}

.stones-hero__content {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(6rem, 10vw, 8rem) 0 clamp(2.25rem, 5vw, 3.25rem);
}

.stones-hero__title {
  margin: 0;
  max-width: 14ch;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.7rem, 4vw, 2.4rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-transform: uppercase;
  text-wrap: balance;
}

.stones-hero__lead {
  margin: 0.9rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.95rem, 1.8vw, 1.05rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.55;
  color: rgba(243, 241, 238, 0.84);
}

.stones-intro {
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(2.75rem, 6vw, 4rem) 0;
}

.stones-intro__text {
  margin: 0;
  max-width: 40rem;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.95rem, 1.7vw, 1.05rem);
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--ink);
  text-wrap: pretty;
}

.stones-intro__note {
  margin: 1rem 0 0;
  max-width: 40rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.stones-certs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.75rem 0 0;
  padding: 0;
  list-style: none;
}

.stones-certs li {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  min-height: 8.5rem;
  padding: 1.25rem 1.2rem;
  border: 1px solid var(--line);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.2));
  box-shadow:
    0 4px 10px rgba(20, 20, 20, 0.04),
    0 14px 28px rgba(20, 20, 20, 0.05);
}

.stones-certs__code {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.6rem, 3vw, 2rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1;
}

.stones-certs__name {
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.stones-row {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: stretch;
  min-height: min(32rem, 72dvh);
}

.stones-row--reverse .stones-row__media {
  order: 2;
}

.stones-row__media {
  overflow: hidden;
  background: #1a1a1a;
}

.stones-row__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.08);
  outline-offset: -1px;
}

.stones-row__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.95rem;
  padding: clamp(1.75rem, 5vw, 3.25rem);
  background: rgba(255, 255, 255, 0.28);
}

.stones-row__tag {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}

.stones-row__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
  text-wrap: balance;
}

.stones-row__copy p {
  margin: 0;
  max-width: 32rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  text-wrap: pretty;
}

@media (max-width: 800px) {
  .stones-certs {
    grid-template-columns: 1fr;
  }

  .stones-row {
    grid-template-columns: 1fr;
  }

  .stones-row--reverse .stones-row__media {
    order: 0;
  }

  .stones-row__media {
    min-height: 16rem;
  }
}

[data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 560ms var(--ease),
    transform 560ms var(--ease);
  transition-delay: var(--reveal-delay, 0ms);
}

[data-reveal].is-inview {
  opacity: 1;
  transform: none;
}

.home-hero__media[data-reveal],
.stones-hero__media[data-reveal] {
  transform: scale(1.06);
}

.home-hero__media[data-reveal].is-inview,
.stones-hero__media[data-reveal].is-inview {
  transform: scale(1);
}

.home-hero__lead,
.about__title,
.custom__title,
.shop-panel__title {
  --reveal-delay: 80ms;
}

.home-hero__text,
.about__lead,
.custom__lead,
.shop-panel__subtitle,
.stones-hero__lead {
  --reveal-delay: 150ms;
}

.home-hero__actions,
.custom__intro,
.empty-state__text {
  --reveal-delay: 210ms;
}

.custom__cta,
.empty-state__cta {
  --reveal-delay: 270ms;
}

.home-products li:nth-child(2),
.home-collection__item:nth-child(2),
.home-panel:nth-child(2),
.custom__highlights > li:nth-child(2) {
  --reveal-delay: 80ms;
}

.home-products li:nth-child(3),
.home-collection__item:nth-child(3),
.home-panel:nth-child(3),
.custom__highlights > li:nth-child(3) {
  --reveal-delay: 160ms;
}

.custom__highlights > li:nth-child(4) {
  --reveal-delay: 240ms;
}

.about-story__copy p:nth-child(2) { --reveal-delay: 70ms; }
.about-story__copy p:nth-child(3) { --reveal-delay: 140ms; }
.about-story__copy p:nth-child(4) { --reveal-delay: 210ms; }

.empty-state__icon { --reveal-delay: 80ms; }
.empty-state__title { --reveal-delay: 140ms; }
.auth-tabs { --reveal-delay: 80ms; }
.auth-panel { --reveal-delay: 160ms; }

.stones-hero__title {
  --reveal-delay: 90ms;
}

.stones-hero__lead {
  --reveal-delay: 180ms;
}

.stones-intro__note {
  --reveal-delay: 80ms;
}

.stones-certs li:nth-child(1) {
  --reveal-delay: 140ms;
}

.stones-certs li:nth-child(2) {
  --reveal-delay: 220ms;
}

.stones-row__copy {
  --reveal-delay: 120ms;
}

.stones-row--reverse .stones-row__copy {
  --reveal-delay: 0ms;
}

.stones-row--reverse .stones-row__media {
  --reveal-delay: 120ms;
}

.site-footer[data-reveal-group] .site-footer__tagline {
  --reveal-delay: 70ms;
}

.site-footer[data-reveal-group] .site-footer__nav {
  --reveal-delay: 140ms;
}

.site-footer[data-reveal-group] .site-footer__copy {
  --reveal-delay: 200ms;
}

.page--catalog,
.page--product {
  overflow-x: clip;
}

.catalog-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  margin-top: calc(-1 * var(--header-h));
  min-height: min(58dvh, 30rem);
  overflow: hidden;
  color: #f3f1ee;
  background: #161616;
}

.catalog-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% 42%;
}

.catalog-hero__media[data-reveal] {
  transform: scale(1.06);
}

.catalog-hero__media[data-reveal].is-inview {
  transform: scale(1);
}

.catalog-hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(12, 12, 12, 0.18) 0%, transparent 38%, rgba(12, 12, 12, 0.76) 100%);
  pointer-events: none;
}

.catalog-hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.75rem;
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(6rem, 10vw, 8rem) 0 clamp(2.25rem, 5vw, 3.25rem);
}

.catalog-hero__eyebrow {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(243, 241, 238, 0.72);
  --reveal-delay: 40ms;
}

.catalog-hero__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(2.6rem, 7vw, 4.4rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 0.95;
  text-transform: none;
  --reveal-delay: 90ms;
}

.catalog-hero__lead {
  margin: 0.15rem 0 0;
  max-width: 34rem;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.02rem, 2vw, 1.2rem);
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: 0.01em;
  color: rgba(243, 241, 238, 0.9);
  text-wrap: pretty;
  --reveal-delay: 150ms;
}

.catalog-hero__text {
  margin: 0.15rem 0 0;
  max-width: 38rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.7;
  color: rgba(243, 241, 238, 0.72);
  text-wrap: pretty;
  --reveal-delay: 210ms;
}

.catalog-grid > li:nth-child(1) { --reveal-delay: 40ms; }
.catalog-grid > li:nth-child(2) { --reveal-delay: 110ms; }
.catalog-grid > li:nth-child(3) { --reveal-delay: 180ms; }
.catalog-grid > li:nth-child(4) { --reveal-delay: 250ms; }
.catalog-grid > li:nth-child(5) { --reveal-delay: 320ms; }
.catalog-grid > li:nth-child(6) { --reveal-delay: 390ms; }

.catalog-card {
  transition: transform 280ms var(--ease);
}

.catalog-card:hover,
.catalog-card:focus-visible {
  transform: translateY(-2px);
}

.product__media[data-reveal] {
  transform: translateY(18px) scale(1.04);
}

.product__media[data-reveal].is-inview {
  transform: none;
}

.product__name { --reveal-delay: 70ms; }
.product__price { --reveal-delay: 130ms; }
.product__text { --reveal-delay: 190ms; }
.product__specs { --reveal-delay: 250ms; }
.product__size { --reveal-delay: 300ms; }
.product__actions { --reveal-delay: 340ms; }

.catalog-body {
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(2.25rem, 5vw, 3.5rem) 0 clamp(3.5rem, 8vw, 5rem);
}

.catalog-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-bottom: 1.75rem;
}

.catalog-toolbar__count {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.catalog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.catalog-filter {
  min-height: 40px;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 0.65rem;
  background: transparent;
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    border-color 180ms var(--ease);
}

.catalog-filter.is-active,
.catalog-filter:hover,
.catalog-filter:focus-visible {
  background: var(--ink);
  border-color: var(--ink);
  color: #f3f1ee;
}

.catalog-filter:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.catalog-card__price {
  margin: 0.15rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}

a.home-product {
  color: inherit;
}

a.home-product:hover .home-product__name,
a.home-product:focus-visible .home-product__name {
  color: var(--accent);
}

a.home-product--overlay:hover .home-product__name,
a.home-product--overlay:focus-visible .home-product__name {
  color: #fff;
}

.product {
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(1.75rem, 4vw, 2.5rem) 0 clamp(3.5rem, 8vw, 5rem);
}

.product__crumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1.5rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.product__crumb a:hover,
.product__crumb a:focus-visible {
  color: var(--ink);
}

.product__layout {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.25rem, 4vw, 3rem);
  align-items: start;
}

.product__media {
  display: grid;
  gap: 0.65rem;
  background: transparent;
}

.product__stage {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 0.95rem;
  background: #2a2a2a;
  outline: 1px solid rgba(0, 0, 0, 0.08);
  outline-offset: -1px;
  touch-action: pan-y;
}

.product__dots {
  display: none;
}

.product__dot {
  width: 0.45rem;
  height: 0.45rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(246, 243, 239, 0.42);
  cursor: pointer;
  transition:
    background-color 180ms var(--ease),
    transform 180ms var(--ease);
}

.product__dot.is-active {
  background: #f6f3ef;
  transform: scale(1.2);
}

.product__dot:focus-visible {
  outline: 2px solid #f6f3ef;
  outline-offset: 3px;
}

.product__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.02);
  transition:
    opacity 480ms var(--ease),
    transform 640ms var(--ease);
  will-change: opacity, transform;
  pointer-events: none;
}

.product__image.is-shown {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
  z-index: 1;
}

.product__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
  gap: 0.45rem;
}

.product__thumb {
  display: block;
  padding: 0;
  border: 1px solid rgba(20, 20, 20, 0.12);
  border-radius: 0.65rem;
  background: #2a2a2a;
  cursor: pointer;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  transition:
    border-color 200ms var(--ease),
    opacity 200ms var(--ease),
    transform 200ms var(--ease);
}

.product__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 420ms var(--ease);
}

.product__thumb:hover img,
.product__thumb:focus-visible img {
  transform: scale(1.04);
}

.product__thumb.is-active,
.product__thumb:hover,
.product__thumb:focus-visible {
  border-color: var(--ink);
}

.product__thumb.is-active {
  opacity: 1;
  transform: translateY(-1px);
}

.product__thumb:not(.is-active) {
  opacity: 0.72;
}

@media (prefers-reduced-motion: reduce) {
  .product__image,
  .product__thumb,
  .product__thumb img {
    transition: none;
  }

  .product__image {
    transform: none;
  }
}

.product__name {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.85rem, 3.6vw, 2.55rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.15;
}

.product__price {
  margin: 1rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}

.product__text {
  margin: 1.1rem 0 0;
  max-width: 32rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.product__specs {
  display: grid;
  gap: 0.85rem;
  margin: 1.5rem 0 0;
  padding: 1.15rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.product__specs div {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 0.75rem;
}

.product__specs dt,
.product__specs dd {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  line-height: 1.5;
}

.product__specs dt {
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.62rem;
  color: var(--ink-soft);
}

.product__size {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 1.25rem;
}

.product__size-label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.product__size-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.product__size-btn {
  min-width: 3rem;
  min-height: 44px;
  padding: 0.55rem 0.85rem;
  border: 1px solid rgba(20, 20, 20, 0.16);
  background: rgba(255, 255, 255, 0.55);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition:
    background-color 160ms var(--ease),
    border-color 160ms var(--ease),
    color 160ms var(--ease);
}

.product__size-btn:hover,
.product__size-btn:focus-visible {
  border-color: var(--ink);
}

.product__size-btn.is-active {
  background: var(--ink);
  border-color: var(--ink);
  color: #f6f3ef;
}

.product__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.product__cart,
.product__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.85rem 1.4rem;
  border-radius: 0.65rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    border-color 180ms var(--ease),
    transform 150ms var(--ease);
}

.product__cart {
  border: 1px solid var(--ink);
  background: var(--ink);
  color: #f3f1ee;
  cursor: pointer;
}

.product__back {
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
}

.product__cart:hover,
.product__cart:focus-visible,
.product__back:hover,
.product__back:focus-visible {
  transform: translateY(-1px);
}

.product__cart:hover,
.product__cart:focus-visible {
  background: transparent;
  color: var(--ink);
}

.product__back:hover,
.product__back:focus-visible {
  background: var(--ink);
  color: #f3f1ee;
}

.product__related {
  margin-top: clamp(2.75rem, 6vw, 4rem);
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

.product__related .catalog-grid {
  margin-top: 0;
}

.product__related .home-section__title {
  margin-bottom: 1.15rem;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.15;
}

.page--cart {
  min-height: calc(100dvh - var(--header-h));
  background:
    radial-gradient(80% 50% at 100% 0%, rgba(47, 74, 62, 0.08), transparent 55%),
    linear-gradient(180deg, #f7f4f0 0%, #efebe4 48%, #f7f4f0 100%);
}

.cart-page {
  width: min(1100px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 2.75rem) 0 clamp(3rem, 8vw, 5rem);
}

.cart-page__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-bottom: clamp(1.5rem, 4vw, 2.25rem);
  padding-bottom: 1.15rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.1);
}

.cart-page__eyebrow {
  margin: 0 0 0.35rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.cart-page__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.85rem, 4vw, 2.5rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.15;
  color: var(--ink);
}

.cart-page__lead {
  margin: 0.45rem 0 0;
  max-width: 28rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--ink-soft);
}

.cart-page__continue {
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  transition: color 160ms var(--ease);
}

.cart-page__continue:hover,
.cart-page__continue:focus-visible {
  color: var(--ink);
}

.cart-empty {
  display: grid;
  justify-items: start;
  gap: 0.85rem;
  max-width: 28rem;
  padding: clamp(1.75rem, 4vw, 2.5rem) 0;
}

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

.cart-empty__visual {
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  color: var(--ink);
  border: 1px solid rgba(20, 20, 20, 0.14);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.45);
}

.cart-empty__visual svg {
  width: 1.45rem;
  height: 1.45rem;
}

.cart-empty__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.5rem, 3vw, 1.9rem);
  font-weight: 400;
  letter-spacing: 0.02em;
}

.cart-empty__text {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

.cart-empty .cart-checkout__btn {
  width: auto;
  min-width: 14rem;
  margin-top: 0.35rem;
}

.cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
  gap: clamp(1.5rem, 4vw, 2.5rem);
  align-items: start;
}

.cart-layout[hidden] {
  display: none !important;
}

.cart-layout__bar {
  margin-bottom: 0.85rem;
}

.cart-layout__count {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.cart-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(20, 20, 20, 0.1);
  background: rgba(255, 255, 255, 0.35);
}

.cart-item {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr) auto;
  gap: 1rem 1.15rem;
  align-items: start;
  padding: 1.15rem 1rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.1);
}

.cart-item__media {
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #2a2a2a;
}

.cart-item__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 420ms var(--ease);
}

.cart-item__media:hover img {
  transform: scale(1.03);
}

.cart-item__copy {
  min-width: 0;
  display: grid;
  gap: 0.35rem;
  align-content: start;
}

.cart-item__name {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.15rem, 2.2vw, 1.4rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.2;
  color: var(--ink);
}

.cart-item__meta {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.cart-item__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.1rem;
  margin-top: 0.55rem;
}

.cart-item__qty {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border: 1px solid rgba(20, 20, 20, 0.16);
  background: rgba(255, 255, 255, 0.55);
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}

.cart-item__qty span {
  min-width: 2rem;
  text-align: center;
}

.cart-qty-btn {
  width: 2rem;
  height: 2rem;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color 160ms var(--ease);
}

.cart-qty-btn:hover,
.cart-qty-btn:focus-visible {
  background: rgba(20, 20, 20, 0.06);
}

.cart-item__side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
  min-width: 5.5rem;
  padding-top: 0.15rem;
}

.cart-item__unit {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
}

.cart-item__price {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

.cart-remove {
  border: 0;
  background: none;
  padding: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  cursor: pointer;
}

.cart-remove:hover,
.cart-remove:focus-visible {
  color: var(--ink);
}

.cart-summary {
  position: sticky;
  top: calc(var(--header-h) + 1rem);
  display: grid;
  gap: 0.85rem;
  padding: 1.25rem 1.15rem 1.35rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(247, 244, 240, 0.92));
}

.cart-summary__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.cart-summary__rows {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0.15rem 0 0.35rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.1);
}

.cart-summary__rows > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  color: var(--ink-soft);
}

.cart-summary__rows dd {
  margin: 0;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.cart-summary__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cart-summary__total strong {
  font-size: 1.05rem;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}

.cart-checkout__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: 0.85rem 1.4rem;
  border: 1px solid var(--ink);
  border-radius: 0.65rem;
  background: var(--ink);
  color: #f6f3ef;
  font-family: "Montserrat", sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition:
    background-color 160ms var(--ease),
    color 160ms var(--ease),
    transform 140ms var(--ease);
}

.cart-checkout__btn:hover,
.cart-checkout__btn:focus-visible {
  background: transparent;
  color: var(--ink);
}

.cart-checkout__btn:active {
  transform: scale(0.98);
}

.cart-checkout__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.cart-checkout__hint {
  margin: 0;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 0.74rem;
  line-height: 1.45;
  color: var(--ink-soft);
}

.cart-summary__link {
  justify-self: center;
  margin-top: 0.15rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.cart-summary__link:hover,
.cart-summary__link:focus-visible {
  color: var(--ink);
}

.nav-count {
  position: absolute;
  top: 0.2rem;
  right: 0.15rem;
  min-width: 1.05rem;
  height: 1.05rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 0.58rem;
  font-weight: 600;
  line-height: 1.05rem;
  text-align: center;
  pointer-events: none;
}

.auth-form__error {
  margin: 0 0 0.85rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  color: #8b3a3a;
}

.auth-card__notice {
  margin: 0;
  padding: 0.75rem 0.9rem;
  border: 1px solid rgba(20, 20, 20, 0.12);
  background: rgba(47, 74, 62, 0.06);
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--ink);
  text-align: left;
}

.auth-card__notice[hidden] {
  display: none !important;
}

.auth-form__textarea {
  resize: vertical;
  min-height: 4.5rem;
  font-family: "Montserrat", sans-serif;
}

.page--profile {
  min-height: calc(100dvh - var(--header-h));
  background:
    radial-gradient(80% 50% at 0% 0%, rgba(47, 74, 62, 0.1), transparent 55%),
    radial-gradient(70% 45% at 100% 10%, rgba(20, 20, 20, 0.05), transparent 50%),
    linear-gradient(180deg, #f7f4f0 0%, #efebe4 48%, #f7f4f0 100%);
}

.profile-page {
  width: min(920px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 2.75rem) 0 clamp(3rem, 8vw, 5rem);
}

.profile-page.auth-shell {
  width: min(920px, calc(100% - (var(--page-inline) * 2)));
  padding-top: clamp(1.5rem, 4vw, 2.75rem);
}

.profile-page__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem 1.5rem;
  margin-bottom: clamp(1.5rem, 4vw, 2.25rem);
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.1);
}

.profile-page__head--auth {
  display: grid;
  gap: 0.85rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.08);
  text-align: left;
}

.profile-page__eyebrow {
  margin: 0 0 0.35rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.profile-page__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.85rem, 4vw, 2.5rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.15;
  color: var(--ink);
  text-wrap: balance;
}

.profile-page__lead {
  margin: 0.45rem 0 0;
  max-width: 30rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.profile-page__logout {
  appearance: none;
  margin: 0;
  padding: 0.7rem 1rem;
  border: 1px solid rgba(20, 20, 20, 0.18);
  border-radius: 0.65rem;
  background: transparent;
  color: var(--ink-soft);
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    color 160ms var(--ease),
    border-color 160ms var(--ease),
    background-color 160ms var(--ease);
}

.profile-page__logout:hover,
.profile-page__logout:focus-visible {
  color: var(--ink);
  border-color: var(--ink);
  background: rgba(255, 255, 255, 0.45);
}

.profile-page__logout:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.profile-page__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 0.35rem;
  padding: 0.7rem 1.2rem;
  border: 1px solid var(--ink);
  border-radius: 0.65rem;
  background: var(--ink);
  color: #f6f3ef;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition:
    background-color 160ms var(--ease),
    color 160ms var(--ease);
}

.profile-page__cta:hover,
.profile-page__cta:focus-visible {
  background: transparent;
  color: var(--ink);
}

.profile-hero {
  display: flex;
  align-items: flex-start;
  gap: 1.15rem;
  min-width: min(100%, 34rem);
}

.profile-hero__mark {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 4.25rem;
  height: 4.25rem;
  border: 1px solid rgba(20, 20, 20, 0.12);
  border-radius: 1rem;
  background:
    linear-gradient(160deg, rgba(47, 74, 62, 0.16), rgba(255, 255, 255, 0.35)),
    rgba(255, 255, 255, 0.5);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.profile-hero__copy {
  min-width: 0;
}

.profile-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.75rem;
  margin: 1rem 0 0;
}

.profile-hero__meta div {
  min-width: 0;
}

.profile-hero__meta dt {
  margin: 0 0 0.2rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.profile-hero__meta dd {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
  letter-spacing: 0.02em;
  color: var(--ink);
  word-break: break-word;
}

.profile-shortcuts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0 0 clamp(1.75rem, 4vw, 2.5rem);
}

.profile-shortcut {
  display: grid;
  gap: 0.55rem;
  min-height: 5.5rem;
  padding: 1rem 0.95rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  border-radius: 0.85rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.22));
  transition:
    border-color 180ms var(--ease),
    background-color 180ms var(--ease),
    transform 180ms var(--ease);
}

.profile-shortcut:hover,
.profile-shortcut:focus-visible {
  border-color: rgba(47, 74, 62, 0.45);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.35));
  transform: translateY(-2px);
}

.profile-shortcut:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.profile-shortcut__label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.profile-shortcut__value {
  align-self: end;
  font-family: "Montserrat", sans-serif;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

.account-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0;
  animation: auth-fade-up 560ms var(--ease) both;
}

.account-orders__head {
  margin-bottom: 1.1rem;
}

.account-orders__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}

.account-orders__lead {
  margin: 0.4rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--ink-soft);
}

.account-orders__list {
  display: grid;
  gap: 0.75rem;
}

.account-empty {
  display: grid;
  justify-items: start;
  gap: 0.55rem;
  padding: 1.35rem 0 0.5rem;
}

.account-empty__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 400;
  letter-spacing: 0.02em;
}

.account-empty__text {
  margin: 0;
  max-width: 28rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--ink-soft);
}

.order-card {
  padding: 1.1rem 1.15rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  background: rgba(255, 255, 255, 0.42);
}

.order-card__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 0.55rem;
}

.order-card__id {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
  font-weight: 600;
}

.order-card__date,
.order-card__items {
  margin: 0.25rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--ink-soft);
}

.order-card__status {
  flex: 0 0 auto;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.order-card__total {
  margin: 0.7rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.page--checkout {
  min-height: calc(100dvh - var(--header-h));
  background:
    radial-gradient(80% 50% at 0% 0%, rgba(47, 74, 62, 0.08), transparent 55%),
    linear-gradient(180deg, #f7f4f0 0%, #efebe4 48%, #f7f4f0 100%);
}

.checkout-page {
  width: min(1100px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 2.75rem) 0 clamp(3rem, 8vw, 5rem);
}

.checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(16rem, 21rem);
  gap: clamp(1.5rem, 4vw, 2.5rem);
  align-items: start;
}

.checkout-layout[hidden] {
  display: none !important;
}

.checkout-form {
  display: grid;
  gap: 1.15rem;
  padding: 1.25rem 1.15rem 1.4rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(247, 244, 240, 0.92));
}

.checkout-form__block {
  display: grid;
  gap: 0.85rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.08);
}

.checkout-form__block:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}

.checkout-form__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.checkout-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.checkout-form__field {
  display: grid;
  gap: 0.4rem;
}

.checkout-form__field--wide {
  grid-column: 1 / -1;
}

.checkout-form__label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.checkout-form__input {
  width: 100%;
  min-height: 46px;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(20, 20, 20, 0.14);
  background: rgba(255, 255, 255, 0.7);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  line-height: 1.4;
  outline: none;
  transition: border-color 160ms var(--ease), background-color 160ms var(--ease);
}

.checkout-form__textarea {
  min-height: 5.5rem;
  resize: vertical;
}

.checkout-form__input:focus {
  border-color: var(--ink);
  background: #fff;
}

.checkout-gift {
  display: grid;
  gap: 0.55rem;
  padding: 1.05rem 0 0.15rem;
  border-top: 1px solid rgba(20, 20, 20, 0.08);
}

.checkout-gift__eyebrow {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.checkout-gift__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.2rem, 2.4vw, 1.45rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.25;
  color: var(--ink);
}

.checkout-gift__text {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
  line-height: 1.55;
  color: var(--ink);
}

.checkout-gift__text--soft {
  color: var(--ink-soft);
}

.checkout-form .cart-checkout__btn {
  margin-top: 0.25rem;
}

.checkout-form .auth-form__error,
.checkout-form [data-form-error] {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.8rem;
  color: #8b3a3a;
}

.checkout-summary.cart-summary {
  gap: 0.75rem;
}

.checkout-summary__count {
  margin: -0.25rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.checkout-summary__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.75rem;
}

.checkout-summary__item {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: start;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.08);
}

.checkout-summary__media {
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #2a2a2a;
}

.checkout-summary__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.checkout-summary__copy {
  min-width: 0;
}

.checkout-summary__name {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 1rem;
  letter-spacing: 0.01em;
  color: var(--ink);
  line-height: 1.25;
}

.checkout-summary__copy p {
  margin: 0.3rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.checkout-summary__price {
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  white-space: nowrap;
}

.cart-empty--success .cart-empty__visual {
  font-family: "Montserrat", sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--accent);
}

.product__back.is-fav {
  color: var(--accent);
}

/* —— Admin desk —— */
.admin-page {
  min-height: 100dvh;
  margin: 0;
  background:
    radial-gradient(90% 70% at 12% 0%, rgba(47, 74, 62, 0.14), transparent 55%),
    radial-gradient(70% 55% at 100% 10%, rgba(20, 20, 20, 0.06), transparent 50%),
    linear-gradient(180deg, #f6f3ef 0%, #ebe6df 100%);
}

.admin-page .site-header,
.admin-page .mobile-dock {
  display: none !important;
}

.admin-desk {
  position: relative;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding:
    calc(1.5rem + var(--safe-top))
    calc(1.25rem + var(--safe-right))
    calc(1.5rem + var(--safe-bottom))
    calc(1.25rem + var(--safe-left));
}

.admin-page.is-admin-authed .admin-desk {
  place-items: start center;
  align-content: start;
}

.admin-desk__glow {
  position: absolute;
  inset: auto auto 8% 50%;
  width: min(36rem, 80vw);
  height: 12rem;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(47, 74, 62, 0.12), transparent 70%);
  pointer-events: none;
}

.admin-gate {
  position: relative;
  z-index: 1;
  width: min(26rem, 100%);
  animation: admin-gate-in 560ms var(--ease) both;
}

@keyframes admin-gate-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.admin-gate__card {
  padding: clamp(1.75rem, 4vw, 2.35rem);
  border: 1px solid rgba(20, 20, 20, 0.1);
  background: rgba(255, 255, 255, 0.62);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 18px 40px rgba(20, 20, 20, 0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.admin-gate__brand {
  margin-bottom: 1.75rem;
  text-align: center;
}

.admin-gate__mark,
.admin-workspace__mark {
  margin: 0;
  font-family: "Italiana", serif;
  font-size: clamp(1.85rem, 4vw, 2.2rem);
  font-weight: 400;
  letter-spacing: 0.22em;
  line-height: 1;
  text-wrap: balance;
}

.admin-gate__tagline {
  margin: 0.45rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
  line-height: 1.2;
}

.admin-gate__title {
  margin: 1rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.admin-gate__text {
  margin: 0.65rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
  line-height: 1.55;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.admin-gate__back,
.admin-workspace__link {
  display: inline-flex;
  margin-top: 1.25rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  transition: color 160ms var(--ease);
}

.admin-gate__back {
  width: 100%;
  justify-content: center;
}

.admin-gate__back:hover,
.admin-gate__back:focus-visible,
.admin-workspace__link:hover,
.admin-workspace__link:focus-visible {
  color: var(--accent);
}

.admin-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.admin-form__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.25rem;
}

.admin-form__heading {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.admin-form__cancel {
  border: 0;
  background: transparent;
  color: var(--ink-soft);
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0.35rem 0;
}

.admin-form__cancel:hover,
.admin-form__cancel:focus-visible {
  color: var(--ink);
}

.admin-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.admin-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
}

.admin-form__field--wide {
  grid-column: 1 / -1;
}

.admin-form__label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.admin-form__input {
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 0.9rem;
  border: 1px solid rgba(20, 20, 20, 0.14);
  background: rgba(255, 255, 255, 0.75);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  outline: none;
  transition:
    border-color 160ms var(--ease),
    box-shadow 160ms var(--ease),
    background-color 160ms var(--ease);
}

.admin-form__input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(47, 74, 62, 0.12);
  background: #fff;
}

.admin-form__select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%),
    linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);
  background-position:
    calc(100% - 1.15rem) calc(50% - 0.18rem),
    calc(100% - 0.85rem) calc(50% - 0.18rem);
  background-size: 0.35rem 0.35rem, 0.35rem 0.35rem;
  background-repeat: no-repeat;
  padding-right: 2.25rem;
  cursor: pointer;
}

.admin-form__textarea {
  min-height: 120px;
  resize: vertical;
  line-height: 1.5;
}

.admin-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 0.35rem;
  padding: 0.8rem 1.25rem;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: #f6f3ef;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background-color 160ms var(--ease),
    color 160ms var(--ease),
    transform 140ms var(--ease);
}

.admin-form__submit:hover,
.admin-form__submit:focus-visible {
  background: transparent;
  color: var(--ink);
}

.admin-form__submit:active {
  transform: scale(0.98);
}

.admin-form__submit:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

.admin-toast {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  background: rgba(18, 18, 18, 0.42);
  backdrop-filter: blur(4px);
}

.admin-toast[hidden] {
  display: none !important;
}

.admin-toast__card {
  width: min(22rem, 100%);
  padding: 1.5rem 1.35rem 1.25rem;
  border: 1px solid rgba(20, 20, 20, 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(246, 243, 239, 0.96)),
    #f6f3ef;
  box-shadow: 0 18px 48px rgba(20, 20, 20, 0.18);
  text-align: center;
  animation: admin-toast-in 280ms var(--ease);
}

.admin-toast__eyebrow {
  margin: 0 0 0.45rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.admin-toast__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--ink);
}

.admin-toast__text {
  margin: 0.7rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.86rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

.admin-toast__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 8.5rem;
  min-height: 44px;
  margin-top: 1.25rem;
  padding: 0.7rem 1.1rem;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: #f6f3ef;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background-color 160ms var(--ease),
    color 160ms var(--ease);
}

.admin-toast__btn:hover,
.admin-toast__btn:focus-visible {
  background: transparent;
  color: var(--ink);
}

.admin-toast__btn:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

@keyframes admin-toast-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

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

.admin-form .auth-form__error,
.admin-form [data-form-error] {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  color: #8b3a3a;
}

.admin-form--product {
  margin-bottom: 1.75rem;
  padding: 1.25rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  background: rgba(255, 255, 255, 0.45);
}

.admin-dropzone {
  display: grid;
  gap: 0.65rem;
}

.admin-dropzone.is-loading {
  pointer-events: none;
  opacity: 0.65;
}

.admin-dropzone__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  min-height: 11rem;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  border: 1px solid rgba(20, 20, 20, 0.12);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.72), rgba(243, 241, 238, 0.4)),
    repeating-linear-gradient(
      -45deg,
      rgba(20, 20, 20, 0.015) 0 8px,
      transparent 8px 16px
    );
  transition:
    border-color 180ms var(--ease),
    box-shadow 180ms var(--ease);
}

.admin-dropzone__empty:hover,
.admin-dropzone.is-dragover .admin-dropzone__empty,
.admin-dropzone.is-dragover .admin-dropzone__gallery {
  border-color: var(--accent);
  box-shadow: 0 10px 28px rgba(20, 20, 20, 0.08);
}

.admin-dropzone.is-dragover .admin-dropzone__empty {
  background: rgba(47, 74, 62, 0.06);
}

.admin-dropzone__icon {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  color: var(--accent);
  opacity: 0.85;
}

.admin-dropzone__icon svg {
  width: 1.65rem;
  height: 1.65rem;
}

.admin-dropzone__copy {
  display: grid;
  gap: 0.3rem;
}

.admin-dropzone__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-dropzone__hint {
  margin: 0;
  max-width: 16rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.admin-dropzone__meta {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--ink-soft);
}

.admin-dropzone__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.65rem;
}

.admin-dropzone__item,
.admin-dropzone__add {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid rgba(20, 20, 20, 0.12);
  background: #2a2a2a;
}

.admin-dropzone__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-dropzone__item.is-cover {
  border-color: var(--ink);
}

.admin-dropzone__badge {
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  padding: 0.2rem 0.35rem;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-dropzone__item-actions {
  position: absolute;
  left: 0.35rem;
  right: 0.35rem;
  bottom: 0.35rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.admin-dropzone__mini {
  min-height: 28px;
  border: 0;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}

.admin-dropzone__mini--danger {
  background: rgba(20, 20, 20, 0.72);
  color: #f6f3ef;
}

.admin-dropzone__add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border-style: dashed;
  background: rgba(255, 255, 255, 0.55);
  color: var(--ink-soft);
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.admin-dropzone__add span:first-child {
  font-size: 1.4rem;
  line-height: 1;
  color: var(--ink);
}

.admin-dropzone__add:hover,
.admin-dropzone__add:focus-visible {
  border-color: var(--ink);
  color: var(--ink);
}

.admin-workspace {
  position: relative;
  z-index: 1;
  width: min(56rem, 100%);
  animation: admin-gate-in 480ms var(--ease) both;
}

.admin-workspace__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.15rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.12);
}

.admin-workspace__brand {
  min-width: 0;
}

.admin-workspace__title {
  margin: 0.45rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.admin-workspace__body {
  padding: 0.25rem 0 2rem;
}

.admin-analytics {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

.admin-analytics__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.admin-analytics__kpi,
.admin-analytics__block {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  background: rgba(255, 255, 255, 0.5);
}

.admin-analytics__label,
.admin-analytics__heading {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.admin-analytics__value {
  display: block;
  margin-top: 0.55rem;
  font-family: "Montserrat", sans-serif;
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.15;
}

.admin-analytics__hint {
  display: block;
  margin-top: 0.3rem;
  color: var(--ink-soft);
  font-size: 0.72rem;
}

.admin-analytics__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.admin-analytics__heading {
  margin-bottom: 0.9rem;
}

.admin-analytics__periods {
  display: grid;
  gap: 0.7rem;
}

.admin-analytics__period {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 0.75rem;
  row-gap: 0.15rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.08);
  font-family: "Montserrat", sans-serif;
  font-size: 0.8rem;
}

.admin-analytics__period:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.admin-analytics__period span:first-child {
  color: var(--ink-soft);
  letter-spacing: 0.04em;
}

.admin-analytics__period strong {
  font-size: 1.05rem;
  justify-self: end;
}

.admin-analytics__period span:last-child {
  grid-column: 1 / -1;
  color: var(--ink-soft);
  font-size: 0.72rem;
}

.admin-analytics__statuses {
  display: grid;
  gap: 0.75rem;
}

.admin-analytics__status-top {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.75rem;
}

.admin-analytics__status-top span:last-child {
  color: var(--ink-soft);
  white-space: nowrap;
}

.admin-analytics__bar {
  height: 4px;
  background: rgba(20, 20, 20, 0.08);
  overflow: hidden;
}

.admin-analytics__bar span {
  display: block;
  height: 100%;
  background: var(--ink);
  min-width: 0;
}

.admin-analytics__products {
  display: grid;
  gap: 0.7rem;
}

.admin-analytics__product {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.08);
  font-family: "Montserrat", sans-serif;
}

.admin-analytics__product:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.admin-analytics__rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6rem;
  height: 1.6rem;
  border: 1px solid rgba(20, 20, 20, 0.14);
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--ink-soft);
  flex-shrink: 0;
}

.admin-analytics__product strong {
  display: block;
  font-size: 0.86rem;
}

@media (max-width: 800px) {
  .admin-analytics__kpis,
  .admin-analytics__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 560px) {
  .admin-analytics__kpis,
  .admin-analytics__grid {
    grid-template-columns: 1fr;
  }
}

.admin-burger {
  position: relative;
  z-index: 95;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  gap: 5px;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(20, 20, 20, 0.12);
  background: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: border-color 160ms var(--ease), background-color 160ms var(--ease);
}

.admin-burger:hover,
.admin-burger:focus-visible {
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.95);
}

.admin-burger:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.admin-burger__line {
  display: block;
  width: 18px;
  height: 1.5px;
  background: var(--ink);
  transition: transform 220ms var(--ease), opacity 180ms var(--ease);
}

.admin-burger.is-open .admin-burger__line:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.admin-burger.is-open .admin-burger__line:nth-child(2) {
  opacity: 0;
}

.admin-burger.is-open .admin-burger__line:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

.admin-menu__backdrop {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: none;
  background: rgba(20, 20, 20, 0.28);
}

.admin-menu__backdrop.is-open {
  display: block;
}

.admin-menu {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 100;
  display: none;
  flex-direction: column;
  width: min(18.5rem, calc(100vw - 2.5rem));
  max-width: 100%;
  height: 100dvh;
  margin: 0;
  padding:
    calc(1.25rem + var(--safe-top))
    calc(1.15rem + var(--safe-right))
    calc(1.25rem + var(--safe-bottom))
    1.15rem;
  border: 0;
  border-left: 1px solid rgba(20, 20, 20, 0.1);
  background: #f6f3ef;
  box-shadow: -16px 0 40px rgba(20, 20, 20, 0.12);
  overflow-y: auto;
}

.admin-menu.is-open {
  display: flex;
  animation: admin-menu-in 220ms var(--ease) both;
}

@keyframes admin-menu-in {
  from {
    opacity: 0;
    transform: translateX(16px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.admin-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.95rem;
  border-bottom: 1px solid rgba(20, 20, 20, 0.1);
}

.admin-menu__brand {
  margin: 0;
  font-family: "Italiana", serif;
  font-size: 1.35rem;
  letter-spacing: 0.18em;
}

.admin-menu__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(20, 20, 20, 0.12);
  background: rgba(255, 255, 255, 0.65);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.admin-menu__nav {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.admin-menu__item {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 0.9rem;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
  transition: background-color 160ms var(--ease), color 160ms var(--ease);
}

.admin-menu__item:hover,
.admin-menu__item:focus-visible,
.admin-menu__item.is-active {
  background: rgba(47, 74, 62, 0.1);
  color: var(--accent);
}

.admin-menu__item:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.admin-menu__item--link {
  margin-top: 0.75rem;
  border-top: 1px solid rgba(20, 20, 20, 0.1);
  color: var(--ink-soft);
}

.admin-page .admin-menu,
.admin-page .admin-menu__backdrop {
  pointer-events: none;
}

.admin-page .admin-menu.is-open,
.admin-page .admin-menu__backdrop.is-open {
  pointer-events: auto;
}

.admin-role {
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.admin-role[data-role="admin"] {
  color: #8b3a3a;
}

.admin-card__save,
.admin-card__btn {
  min-height: 44px;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 160ms var(--ease), color 160ms var(--ease);
}

.admin-card__save:hover,
.admin-card__save:focus-visible,
.admin-card__btn:hover,
.admin-card__btn:focus-visible {
  background: var(--accent);
  border-color: var(--accent);
  color: #f6f3ef;
}

.admin-card__btn--danger {
  border-color: rgba(139, 58, 58, 0.55);
  color: #8b3a3a;
}

.admin-card__btn--danger:hover,
.admin-card__btn--danger:focus-visible {
  background: #8b3a3a;
  border-color: #8b3a3a;
  color: #f6f3ef;
}

.admin-card__actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  width: 100%;
}

.admin-card__actions .admin-card__save,
.admin-card__actions .admin-card__btn {
  width: 100%;
}

body.is-admin-menu-open {
  overflow: hidden;
}

.admin-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.admin-card {
  padding: 1.1rem 1.15rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  background: rgba(255, 255, 255, 0.5);
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
}

.admin-card--product {
  display: grid;
  gap: 0.95rem;
}

.admin-card__main {
  display: grid;
  grid-template-columns: 5.75rem minmax(0, 1fr);
  gap: 0.9rem;
  align-items: start;
}

.admin-card__media {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #dedad4;
}

.admin-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-card__media-empty {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--ink-soft);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  padding: 0.4rem;
}

.admin-card__content {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
}

.admin-card__head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: flex-start;
}

.admin-card__muted {
  display: block;
  margin-top: 0.2rem;
  color: var(--ink-soft);
  font-size: 0.72rem;
  word-break: break-word;
}

.admin-card__price {
  display: grid;
  gap: 0.4rem;
  max-width: 14rem;
}

.admin-card__price-label {
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.admin-card__price-field {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 44px;
  border: 1px solid rgba(20, 20, 20, 0.12);
  background: rgba(255, 255, 255, 0.82);
  transition:
    border-color 160ms var(--ease),
    box-shadow 160ms var(--ease),
    background-color 160ms var(--ease);
}

.admin-card__price-field:focus-within {
  border-color: var(--ink);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(20, 20, 20, 0.06);
}

.admin-card__price-input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 2.1rem 0 0.85rem;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  outline: none;
  -moz-appearance: textfield;
}

.admin-card__price-input::-webkit-outer-spin-button,
.admin-card__price-input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.admin-card__price-currency {
  position: absolute;
  right: 0.8rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ink-soft);
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  pointer-events: none;
}

.admin-card__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: end;
  margin-top: 0.75rem;
}

.admin-select {
  font-family: "Montserrat", sans-serif;
  font-size: 0.75rem;
  min-height: 40px;
  padding: 0.4rem 0.55rem;
  border: 1px solid rgba(20, 20, 20, 0.14);
  background: rgba(255, 255, 255, 0.8);
  color: var(--ink);
}

.admin-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
}

@media (max-width: 700px) {
  .admin-form__grid {
    grid-template-columns: 1fr;
  }

  .admin-card--product {
    padding: 0.9rem;
  }

  .admin-card__main {
    grid-template-columns: 4.75rem minmax(0, 1fr);
    gap: 0.75rem;
  }

  .admin-card__head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
  }

  .admin-card__actions {
    grid-template-columns: 1fr 1fr;
  }

  .admin-card__actions .admin-card__btn--danger {
    grid-column: 1 / -1;
  }

  .admin-card__price {
    max-width: none;
  }

  .admin-card__price-input {
    font-size: 1rem;
  }

  .admin-card__save,
  .admin-card__btn {
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    padding-inline: 0.55rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .admin-gate,
  .admin-workspace {
    animation: none !important;
  }
}

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

  .checkout-page {
    width: 100%;
    padding-inline: var(--page-inline);
  }

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

  .checkout-summary.cart-summary {
    position: static;
    order: -1;
  }

  .checkout-layout {
    display: flex;
    flex-direction: column;
  }
}


@media (max-width: 800px) {
  .product__layout,
  .about-intro,
  .about-story,
  .about-values__list {
    grid-template-columns: 1fr;
  }

  .about-intro__media img {
    max-height: 22rem;
    aspect-ratio: 4 / 3;
  }

  .product__specs div {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@keyframes about-hero-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes about-story-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about__orb,
  .about__hero,
  .about__story {
    animation: none !important;
  }
}

.custom {
  position: relative;
  width: 100%;
}

.custom__gallery,
.custom__closing {
  width: min(860px, calc(100% - (var(--page-inline) * 2)));
  margin-inline: auto;
}

.custom__gallery {
  padding-top: clamp(2.25rem, 5vw, 3.5rem);
}

.custom__eyebrow {
  margin: 0 0 0.9rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.custom__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(3.2rem, 8vw, 5rem);
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 0.95;
  text-wrap: balance;
  -webkit-text-stroke: 0.35px currentColor;
}

.custom__lead {
  margin: 1.1rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}

.custom__intro {
  margin: 1.2rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.95rem, 1.6vw, 1.05rem);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.02em;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.custom__intro-block .custom__cta {
  margin-top: 1.75rem;
}

.custom__gallery {
  position: relative;
  z-index: 1;
}

.custom__gallery-head {
  margin-bottom: 1.25rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--line);
}

.custom__gallery-title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.78rem, 1.5vw, 0.88rem);
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.3;
  text-transform: uppercase;
}

.custom__highlights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.flip-card {
  position: relative;
  aspect-ratio: 16 / 11;
  min-height: 0;
  max-height: 17.5rem;
  border-radius: 0.95rem;
  perspective: 1200px;
  box-shadow:
    0 4px 10px rgba(20, 20, 20, 0.1),
    0 18px 40px rgba(20, 20, 20, 0.18);
  transition: box-shadow 280ms var(--ease);
}

.flip-card:hover,
.flip-card:focus-within {
  box-shadow:
    0 6px 14px rgba(20, 20, 20, 0.12),
    0 24px 48px rgba(20, 20, 20, 0.24);
}

.flip-card__btn {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0.95rem;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  text-align: left;
}

.flip-card__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.flip-card__inner {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0.95rem;
  transform-style: preserve-3d;
  transition: transform 1100ms var(--ease);
}

.flip-card.is-flipped .flip-card__inner {
  transform: rotateY(180deg);
}

@media (hover: hover) and (pointer: fine) {
  .flip-card:hover .flip-card__inner {
    transform: rotateY(180deg);
  }
}

.flip-card__face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: 1.15rem 1.2rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  border-radius: 0.95rem;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  overflow: hidden;
  transform: translateZ(0);
}

.flip-card__face--front {
  background: #2a2a2a;
}

.flip-card__face--back {
  justify-content: flex-end;
  gap: 0.45rem;
  padding: 1.15rem 1.15rem;
  background:
    linear-gradient(165deg, #f7f1e8, #ebe3d6);
  transform: rotateY(180deg) translateZ(0);
}

.flip-card__photo {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  outline: 1px solid rgba(0, 0, 0, 0.08);
  outline-offset: -1px;
}

.flip-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(20, 20, 20, 0.05) 25%, rgba(20, 20, 20, 0.78) 100%);
  pointer-events: none;
}

.flip-card__caption {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.flip-card__index {
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: rgba(243, 241, 238, 0.55);
}

.flip-card__face--back .flip-card__index {
  color: rgba(92, 74, 55, 0.55);
}

.flip-card__label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #f3f1ee;
}

.flip-card__face--back .flip-card__label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  color: #5c4a37;
}

.flip-card__hint {
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: rgba(243, 241, 238, 0.75);
}

.flip-card__text {
  margin: 0;
  max-height: 100%;
  overflow: auto;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.01em;
  color: #6a5a48;
  text-wrap: pretty;
}

.custom__closing {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2rem;
  margin-top: clamp(2.25rem, 5vw, 3.25rem);
  padding-top: clamp(1.5rem, 3.5vw, 2rem);
  border-top: 1px solid var(--line);
}

.custom__note {
  margin: 0;
  max-width: 34rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--ink-soft);
  text-align: left;
  text-wrap: pretty;
}

.custom__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 48px;
  padding: 0.85rem 1.6rem;
  border: 1px solid var(--ink);
  border-radius: 0.65rem;
  background: var(--ink);
  color: #f3f1ee;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    border-color 180ms var(--ease),
    transform 150ms var(--ease),
    box-shadow 200ms var(--ease);
}

.custom__cta--ghost {
  border-radius: 0.65rem;
  background: transparent;
  color: var(--ink);
}

.custom__cta:hover,
.custom__cta:focus-visible {
  color: #f3f1ee;
  background-color: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 10px 24px rgba(20, 20, 20, 0.12);
  transform: translateY(-1px);
}

.custom__cta--ghost:hover,
.custom__cta--ghost:focus-visible {
  color: #f3f1ee;
  background-color: var(--ink);
  border-color: var(--ink);
}

.custom__cta:active {
  transform: scale(0.98);
}

.custom__cta:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.site-footer {
  margin-top: clamp(2rem, 5vw, 3.5rem);
  border-top: 1px solid var(--line);
  background:
    linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.28) 100%);
}

.site-footer__inner {
  width: min(1120px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(2.25rem, 5vw, 3.25rem) 0 clamp(2rem, 4vw, 2.75rem);
  text-align: left;
}

.site-footer__brand {
  margin: 0;
  font-family: "Italiana", serif;
  font-size: clamp(1.55rem, 3.5vw, 1.9rem);
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1;
  -webkit-text-stroke: 0.3px currentColor;
}

.site-footer__tagline {
  margin: 0.55rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.65rem 1.5rem;
  margin: clamp(1.5rem, 3.5vw, 2rem) 0 0;
}

.site-footer__link {
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  transition: color 180ms var(--ease);
}

.site-footer__link:hover,
.site-footer__link:focus-visible {
  color: var(--accent);
}

.site-footer__link[aria-current="page"] {
  color: var(--ink);
}

.site-footer__link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.site-footer__copy {
  margin: clamp(1.35rem, 3vw, 1.75rem) 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(20, 20, 20, 0.42);
}

.site-footer__credit {
  margin: 0.55rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.62rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: rgba(20, 20, 20, 0.38);
}

.site-footer__credit-link {
  color: rgba(20, 20, 20, 0.55);
  text-decoration: underline;
  text-underline-offset: 0.16em;
  text-decoration-thickness: 1px;
  transition: color 160ms var(--ease);
}

.site-footer__credit-link:hover,
.site-footer__credit-link:focus-visible {
  color: var(--ink);
}

.site-footer[data-reveal-group] .site-footer__credit {
  --reveal-delay: 240ms;
}

.nav-link.is-active {
  color: var(--accent);
}

.nav-link.is-active::after {
  transform: scaleX(1);
}

@media (max-width: 900px) {
  .custom__intro-block {
    max-width: none;
  }
}

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

  .flip-card {
    min-height: 0;
    max-height: none;
    aspect-ratio: 16 / 11;
  }

  .custom__closing {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .custom__intro-block,
  .custom__gallery {
    animation: none !important;
  }

  .flip-card__inner {
    transition: none !important;
  }
}

.icon-btn.is-active {
  color: var(--accent);
}

.icon-btn.is-active .icon-btn__label {
  color: var(--accent);
}

.shop-panel {
  width: min(920px, calc(100% - (var(--page-inline) * 2)));
  margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(3rem, 8vw, 5rem);
}

.shop-panel__header {
  margin-bottom: clamp(2rem, 5vw, 3.25rem);
  text-align: center;
}

.shop-panel__eyebrow {
  margin: 0 0 0.75rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.shop-panel__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(2.4rem, 5vw, 3.4rem);
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 1;
  text-wrap: balance;
  -webkit-text-stroke: 0.35px currentColor;
}

.shop-panel__subtitle {
  margin: 1rem auto 0;
  max-width: 28rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  padding: clamp(2.5rem, 6vw, 4rem) 1.5rem;
  border: 1px solid var(--line);
  background:
    radial-gradient(80% 70% at 50% 0%, rgba(47, 74, 62, 0.08), transparent 65%),
    rgba(255, 255, 255, 0.28);
  text-align: center;
}

.empty-state[hidden],
.auth-card[hidden],
.account-panel[hidden],
.account-orders[hidden],
#cart-root[hidden],
.cart-layout[hidden],
.cart-empty[hidden],
.checkout-layout[hidden],
[data-fav-root][hidden],
.nav-count[hidden] {
  display: none !important;
}

.empty-state__icon {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: 0.35rem;
  color: var(--accent);
}

.empty-state__icon svg {
  width: 2rem;
  height: 2rem;
}

.empty-state__title {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.empty-state__text {
  margin: 0;
  max-width: 24rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  font-weight: 300;
  line-height: 1.55;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.empty-state__cta,
.auth-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 0.75rem;
  padding: 0.75rem 1.4rem;
  border: 1px solid var(--ink);
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    border-color 180ms var(--ease),
    transform 150ms var(--ease);
}

.empty-state__cta:hover,
.empty-state__cta:focus-visible,
.auth-form__submit:hover,
.auth-form__submit:focus-visible {
  color: #f3f1ee;
  background-color: var(--ink);
  border-color: var(--ink);
}

.empty-state__cta:active,
.auth-form__submit:active {
  transform: scale(0.98);
}

.empty-state__cta:focus-visible,
.auth-form__submit:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  width: min(26rem, 100%);
  margin-top: 0.5rem;
  text-align: left;
}

.auth-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.auth-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.auth-form__label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.auth-form__input {
  width: 100%;
  min-height: 44px;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.55);
  font-family: "Montserrat", sans-serif;
  font-size: 0.95rem;
  color: var(--ink);
  transition: border-color 180ms var(--ease), background-color 180ms var(--ease);
}

.auth-form__input:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.85);
}

.auth-form__input.is-invalid {
  border-color: #9b3b3b;
}

.auth-form__input.is-valid {
  border-color: rgba(47, 74, 62, 0.55);
}

.auth-form__hint {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 300;
  line-height: 1.35;
  color: var(--ink-soft);
}

.auth-form__field:has(.auth-form__input.is-invalid) .auth-form__hint {
  color: #9b3b3b;
}

.auth-form__submit {
  width: 100%;
  margin-top: 0.35rem;
}

.auth-form__note {
  margin: 0.25rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 300;
  color: var(--ink-soft);
  text-align: center;
}

.empty-state--auth {
  position: relative;
  z-index: 1;
  align-items: stretch;
  width: min(36rem, 100%);
  margin-inline: auto;
  padding: clamp(1.5rem, 3.5vw, 2.25rem) clamp(1.15rem, 3vw, 1.85rem);
  border: 1px solid rgba(20, 20, 20, 0.08);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.42)),
    radial-gradient(90% 80% at 10% 0%, rgba(47, 74, 62, 0.12), transparent 55%);
  box-shadow:
    0 18px 40px rgba(20, 20, 20, 0.08),
    0 2px 8px rgba(20, 20, 20, 0.04);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  animation: auth-card-in 700ms var(--ease) both;
  text-align: left;
}

.auth-panel__title {
  margin: 0 0 0.35rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-align: left;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.auth-card__header {
  margin-bottom: 0.35rem;
  text-align: center;
}

.auth-card__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 1rem;
  animation: auth-fade-up 650ms var(--ease) 40ms both;
}

.auth-card__brand .brand {
  font-size: clamp(1.85rem, 3.5vw, 2.25rem);
  letter-spacing: 0.16em;
  pointer-events: auto;
}

.auth-card__brand .brand-tagline {
  font-size: 0.58rem;
  letter-spacing: 0.24em;
}

.empty-state--auth .empty-state__title,
.empty-state--auth .empty-state__text,
.empty-state--auth .auth-panel__title {
  text-align: left;
}

.page--auth {
  position: relative;
  overflow: clip;
}

.auth-shell {
  position: relative;
}

.auth-shell:not(.profile-page) {
  width: min(720px, calc(100% - (var(--page-inline) * 2)));
  padding-top: clamp(2rem, 5vw, 3.5rem);
}

.auth-shell__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(8px);
  pointer-events: none;
  animation: auth-orb-float 10s ease-in-out infinite;
}

.auth-shell__orb--one {
  top: 4rem;
  left: -4rem;
  width: 12rem;
  height: 12rem;
  background: radial-gradient(circle, rgba(47, 74, 62, 0.18), transparent 70%);
}

.auth-shell__orb--two {
  right: -3rem;
  bottom: 2rem;
  width: 10rem;
  height: 10rem;
  background: radial-gradient(circle, rgba(20, 20, 20, 0.08), transparent 70%);
  animation-delay: -3.5s;
}

.auth-tabs {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  width: min(26rem, 100%);
  margin: 0.35rem auto 0.65rem;
  padding: 0.28rem;
  border: 1px solid rgba(20, 20, 20, 0.1);
  background: rgba(243, 241, 238, 0.7);
}

.auth-tabs__indicator {
  position: absolute;
  top: 0.28rem;
  left: 0.28rem;
  width: calc(50% - 0.28rem);
  height: calc(100% - 0.56rem);
  background: rgba(47, 74, 62, 0.14);
  transition: transform 280ms var(--ease);
  pointer-events: none;
}

.auth-tabs[data-active="register"] .auth-tabs__indicator {
  transform: translateX(100%);
}

.auth-tabs__btn {
  position: relative;
  z-index: 1;
  min-height: 42px;
  padding: 0.55rem 0.75rem;
  border: 0;
  background: transparent;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  cursor: pointer;
  transition: color 200ms var(--ease);
}

.auth-tabs__btn.is-active {
  color: var(--ink);
  background: transparent;
}

.auth-tabs__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.auth-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
}

.auth-panel[hidden] {
  display: none;
}

.auth-panel.is-entering {
  animation: auth-panel-in 360ms var(--ease) both;
}

.auth-panel.is-entering .auth-form__field,
.auth-panel.is-entering .auth-agree,
.auth-panel.is-entering .auth-form__submit {
  animation: auth-fade-up 480ms var(--ease) both;
}

.auth-panel.is-entering .auth-form__field:nth-child(1) { animation-delay: 40ms; }
.auth-panel.is-entering .auth-form__field:nth-child(2) { animation-delay: 80ms; }
.auth-panel.is-entering .auth-form__field:nth-child(3) { animation-delay: 120ms; }
.auth-panel.is-entering .auth-form__field:nth-child(4) { animation-delay: 160ms; }
.auth-panel.is-entering .auth-form__field:nth-child(5) { animation-delay: 200ms; }
.auth-panel.is-entering .auth-form__field:nth-child(6) { animation-delay: 240ms; }
.auth-panel.is-entering .auth-agree { animation-delay: 280ms; }
.auth-panel.is-entering .auth-form__submit { animation-delay: 320ms; }

.auth-form__input {
  transition:
    border-color 180ms var(--ease),
    background-color 180ms var(--ease),
    box-shadow 200ms var(--ease),
    transform 180ms var(--ease);
}

.auth-form__input:hover {
  border-color: rgba(20, 20, 20, 0.22);
}

.auth-form__input:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 0 0 3px rgba(47, 74, 62, 0.12);
  transform: translateY(-1px);
}

.auth-form__submit {
  position: relative;
  overflow: hidden;
  transition:
    color 180ms var(--ease),
    background-color 180ms var(--ease),
    border-color 180ms var(--ease),
    transform 150ms var(--ease),
    box-shadow 200ms var(--ease);
}

.auth-form__submit:hover,
.auth-form__submit:focus-visible {
  box-shadow: 0 10px 24px rgba(20, 20, 20, 0.14);
  transform: translateY(-1px);
}

.auth-form__submit:active {
  transform: scale(0.98);
}

@keyframes auth-fade-up {
  from {
    opacity: 0;
    transform: translateY(14px);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

@keyframes auth-card-in {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes custom-content-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes custom-hero-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes auth-icon-in {
  from {
    opacity: 0;
    transform: scale(0.86);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes auth-panel-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes auth-orb-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(12px, -16px, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .auth-shell__orb,
  .auth-card__brand,
  .empty-state--auth,
  .auth-panel.is-entering,
  .auth-panel.is-entering .auth-form__field,
  .auth-panel.is-entering .auth-agree,
  .auth-panel.is-entering .auth-form__submit {
    animation: none !important;
  }

  .auth-tabs__indicator,
  .auth-form__input,
  .auth-form__submit {
    transition: none !important;
  }
}

.auth-agree {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-top: 0.15rem;
  text-align: left;
  cursor: pointer;
}

.auth-agree__input {
  flex-shrink: 0;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.15rem;
  accent-color: var(--accent);
  cursor: pointer;
}

.auth-agree__text {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 300;
  line-height: 1.45;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.auth-agree__link {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: color 180ms var(--ease);
}

.auth-agree__link:hover,
.auth-agree__link:focus-visible {
  color: var(--accent);
}

.legal__content {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid var(--line);
  background:
    radial-gradient(80% 70% at 50% 0%, rgba(47, 74, 62, 0.06), transparent 65%),
    rgba(255, 255, 255, 0.28);
}

.legal .shop-panel__title {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(1.35rem, 3.2vw, 1.75rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  -webkit-text-stroke: 0;
}

.legal .shop-panel__subtitle {
  font-family: "Montserrat", sans-serif;
  font-size: 0.88rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.6;
}

.legal__meta {
  margin: 0 0 1.5rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.legal__section + .legal__section {
  margin-top: 1.35rem;
}

.legal__heading {
  margin: 0 0 0.55rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.legal__section p {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.legal__section p + p {
  margin-top: 0.75rem;
}

.legal__subheading {
  margin: 1rem 0 0.45rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
}

.legal__list {
  margin: 0.55rem 0 0;
  padding-left: 1.15rem;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
}

.legal__list li + li {
  margin-top: 0.25rem;
}

.legal__footer {
  margin: 2rem 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.legal .empty-state__cta {
  margin-top: 2rem;
}

@media (max-width: 560px) {
  .auth-form__row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1100px) {
  :root {
    --brand-gap: 3.5rem;
  }

  .nav-list {
    gap: 0.85rem;
  }

  .nav-link {
    font-size: 0.65rem;
    letter-spacing: 0.06em;
  }
}

@media (max-width: 900px) {
  :root {
    --header-h: 3.65rem;
    --page-inline: 1rem;
    --dock-h: 3.75rem;
    --card-rail: min(52vw, 12.25rem);
  }

  .site-header {
    position: sticky;
    top: 0;
    z-index: 60;
    width: 100%;
    margin-inline: 0;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    background: var(--surface);
    box-shadow: 0 1px 0 var(--line);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.15rem;
    width: 100%;
    margin: 0;
    padding-inline: 0.75rem;
    column-gap: 0;
  }

  .header-inner::before {
    content: "";
    width: 44px;
    height: 44px;
    flex-shrink: 0;
  }

  .brand-block {
    position: static;
    transform: none;
    flex: 1;
    min-width: 0;
    padding-inline: 0.5rem;
    pointer-events: none;
  }

  .brand-block .brand {
    pointer-events: auto;
  }

  .brand {
    font-size: clamp(1.4rem, 6vw, 1.7rem);
    letter-spacing: 0.14em;
    -webkit-text-stroke: 0;
  }

  .brand-tagline {
    font-family: "Montserrat", sans-serif;
    font-size: 0.5rem;
    letter-spacing: 0.18em;
  }

  .header-right {
    display: none;
  }

  .site-nav--left,
  .site-nav--right {
    display: none;
  }

  .header-actions {
    display: none;
  }

  .mobile-dock {
    position: fixed;
    left: 50%;
    bottom: calc(0.75rem + var(--safe-bottom));
    z-index: 70;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    width: max-content;
    max-width: calc(100% - 2rem - var(--safe-left) - var(--safe-right));
    margin: 0;
    padding: 0.45rem 0.85rem 0.5rem;
    border: 1px solid rgba(20, 20, 20, 0.1);
    border-radius: 999px;
    background: rgba(243, 241, 238, 0.98);
    box-shadow:
      0 8px 20px rgba(20, 20, 20, 0.08),
      0 1px 0 rgba(255, 255, 255, 0.4) inset;
    transform: translateX(-50%);
    transition:
      opacity 200ms var(--ease),
      transform 220ms var(--ease),
      visibility 200ms var(--ease);
  }

  body.is-nav-open .mobile-dock {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%) translateY(8px);
  }

  .mobile-dock .icon-btn {
    min-width: 4.25rem;
    min-height: 3.1rem;
    padding: 0.25rem 0.4rem;
    gap: 0.25rem;
    border-radius: 0.85rem;
  }

  .mobile-dock .icon-btn__label {
    display: block;
    font-size: 0.56rem;
    letter-spacing: 0.06em;
  }

  .mobile-dock .icon {
    width: 21px;
    height: 21px;
  }

  .nav-toggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
  }

  .page {
    min-height: calc(100dvh - var(--header-h) - var(--safe-top));
    padding-bottom: calc(var(--dock-h) + var(--safe-bottom) + 1.25rem);
  }

  .page--home,
  .page--catalog,
  .page--product,
  .page--custom,
  .page--about,
  .page--stones,
  .page--auth,
  .page--profile {
    overflow-x: visible;
  }

  .site-footer {
    padding-bottom: calc(var(--dock-h) + var(--safe-bottom) + 0.5rem);
  }

  .mobile-nav {
    position: fixed;
    inset: 0;
    z-index: 55;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding:
      calc(var(--header-h) + var(--safe-top) + 1.5rem)
      calc(1.5rem + var(--safe-right))
      calc(2rem + var(--safe-bottom))
      calc(1.5rem + var(--safe-left));
    background:
      radial-gradient(80% 50% at 50% 0%, rgba(47, 74, 62, 0.12), transparent 60%),
      rgba(243, 241, 238, 0.98);
  }

  .mobile-nav.is-open {
    display: flex;
  }

  .mobile-nav .nav-list {
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    width: min(20rem, 100%);
    text-align: center;
  }

  .mobile-nav .nav-link {
    justify-content: center;
    width: 100%;
    min-height: 52px;
    font-size: clamp(0.85rem, 3.8vw, 1rem);
    letter-spacing: 0.14em;
  }

  .mobile-nav .nav-link::after {
    left: 50%;
    width: 2.5rem;
    bottom: 0.65rem;
    transform: translateX(-50%) scaleX(0);
    transform-origin: center;
  }

  .mobile-nav .nav-link:hover::after,
  .mobile-nav .nav-link:focus-visible::after {
    transform: translateX(-50%) scaleX(1);
  }

  .home-hero {
    min-height: min(68dvh, 30rem);
  }

  .home-hero__media {
    object-position: 90% 48%;
  }

  .home-hero__veil {
    background:
      linear-gradient(90deg, rgba(18, 16, 14, 0.72) 0%, rgba(18, 16, 14, 0.28) 58%, transparent 86%),
      linear-gradient(180deg, rgba(18, 16, 14, 0.28) 0%, transparent 32%, rgba(18, 16, 14, 0.62) 100%);
  }

  .home-hero__content,
  .custom-hero__content,
  .catalog-hero__content,
  .stones-hero__content {
    padding: clamp(5.25rem, 16vw, 6.25rem) 0 2rem;
  }

  .home-hero__brand {
    font-size: clamp(2.55rem, 13vw, 3.25rem);
    letter-spacing: 0.1em;
  }

  .home-hero__lead {
    letter-spacing: 0.18em;
  }

  .home-hero__text {
    max-width: 22rem;
    font-size: 0.92rem;
  }

  .home-section {
    width: 100%;
    max-width: none;
    padding-top: clamp(2.5rem, 8vw, 3.5rem);
    padding-inline: 0;
  }

  .home-section + .home-section {
    margin-top: 0.35rem;
    padding-top: clamp(2.5rem, 8vw, 3.5rem);
  }

  .home-section--band {
    margin-top: 0.35rem;
    padding-inline: 0;
    padding-bottom: 0.25rem;
  }

  .home-section__head,
  .home-section--band .home-section__head,
  .home-faq__list,
  .home-panels {
    width: auto;
    margin-inline: var(--page-inline);
  }

  .home-section__head {
    margin-bottom: 1.1rem;
    padding-bottom: 0.75rem;
  }

  .home-section__title {
    font-size: 0.92rem;
    letter-spacing: 0.12em;
  }

  .home-section__lead {
    max-width: none;
    width: 100%;
    font-size: 0.86rem;
  }

  /* Title + link on one row; lead under — same rhythm as «Новинки» */
  .home-section__head--split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    column-gap: 1rem;
    row-gap: 0.45rem;
  }

  .home-section__head--split .home-section__heading {
    display: contents;
  }

  .home-section__head--split .home-section__title {
    grid-column: 1;
    grid-row: 1;
  }

  .home-section__head--split .home-section__lead {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .home-section__head--split .home-section__link {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    align-self: baseline;
  }

  /* Horizontal product rails */
  .home-products,
  .home-collection,
  .catalog-grid,
  .catalog-grid--related {
    display: flex;
    grid-template-columns: none;
    gap: 0.85rem;
    width: auto;
    margin: 0;
    padding-inline: var(--page-inline);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--page-inline);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Allow vertical page scroll while finger is on a card */
    touch-action: pan-x pan-y;
  }

  .home-products::-webkit-scrollbar,
  .home-collection::-webkit-scrollbar,
  .catalog-grid::-webkit-scrollbar,
  .catalog-grid--related::-webkit-scrollbar {
    display: none;
  }

  .home-products > li,
  .home-collection > li,
  .catalog-grid > li,
  .catalog-grid--related > li {
    flex: 0 0 var(--card-rail);
    width: var(--card-rail);
    max-width: var(--card-rail);
    scroll-snap-align: start;
  }

  .home-collection .home-product__media {
    max-height: none;
    aspect-ratio: 3 / 4;
  }

  .home-product {
    gap: 0.65rem;
  }

  .home-product--overlay {
    gap: 0;
  }

  .home-product__name {
    font-size: 0.92rem;
    letter-spacing: 0.01em;
  }

  .home-product--overlay .home-product__name {
    font-size: 0.9rem;
  }

  .home-product__caption {
    padding: 1rem 0.8rem 0.8rem;
  }

  .home-product__price {
    font-size: 0.72rem;
  }

  .home-product:hover .home-product__media img,
  .home-product:focus-within .home-product__media img {
    transform: none;
    filter: none;
  }

  .home-panels {
    margin-inline: var(--page-inline);
    gap: 0.85rem;
  }

  .home-faq {
    padding-bottom: 1rem;
  }

  /* Soften reveals — less scroll jank */
  [data-reveal] {
    transform: none;
    transition: opacity 380ms var(--ease);
  }

  .home-hero__media[data-reveal],
  .stones-hero__media[data-reveal],
  .catalog-hero__media[data-reveal],
  .custom-hero__media[data-reveal] {
    transform: none;
  }

  .home-faq__item {
    opacity: 1;
    transform: none;
    transition: background-color 180ms var(--ease);
  }

  .home-faq.is-inview .home-faq__item {
    opacity: 1;
    transform: none;
  }

  .home-faq.is-inview .home-faq__item:nth-child(n) {
    transition-delay: 0ms;
  }

  .home-panel--media {
    min-height: 16.5rem;
  }

  .custom-hero,
  .catalog-hero,
  .stones-hero {
    min-height: min(56dvh, 24rem);
  }

  .custom-hero__title,
  .stones-hero__title {
    max-width: 11ch;
    font-size: clamp(1.4rem, 6.6vw, 1.8rem);
    letter-spacing: 0.06em;
  }

  .catalog-hero__title {
    max-width: none;
    font-size: clamp(2.2rem, 12vw, 3rem);
    letter-spacing: 0.06em;
  }

  .catalog-hero__lead {
    font-size: 1rem;
  }

  .catalog-hero__text {
    font-size: 0.86rem;
    line-height: 1.65;
  }

  .custom-hero__text {
    font-size: 0.9rem;
  }

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

  .flip-card {
    max-height: none;
    aspect-ratio: 16 / 11;
  }

  .custom__closing {
    flex-direction: column;
    align-items: stretch;
  }

  .custom__cta,
  .empty-state__cta {
    width: 100%;
  }

  .about-intro {
    padding-top: 1.35rem;
    gap: 1.5rem;
  }

  .about-intro__media img {
    max-height: 18rem;
    aspect-ratio: 4 / 3;
  }

  .about-values {
    padding-top: 1.25rem;
  }

  .about-story {
    padding-top: 1.25rem;
  }

  .about-close {
    padding-bottom: 3.5rem;
  }

  .catalog-toolbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.85rem;
  }

  .catalog-filters {
    flex-wrap: nowrap;
    width: calc(100% + var(--page-inline));
    margin-right: calc(-1 * var(--page-inline));
    padding-right: var(--page-inline);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .catalog-filters::-webkit-scrollbar {
    display: none;
  }

  .catalog-filter {
    flex: 0 0 auto;
  }

  .product {
    padding-top: 1.15rem;
  }

  .product__media {
    width: calc(100% + (var(--page-inline) * 2));
    margin-inline: calc(-1 * var(--page-inline));
    gap: 0.55rem;
  }

  .product__stage {
    width: 100%;
    max-height: none;
    aspect-ratio: 4 / 5;
  }

  .product__dots:not([hidden]) {
    position: absolute;
    left: 50%;
    bottom: 0.85rem;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    transform: translateX(-50%);
    padding: 0.35rem 0.55rem;
    border-radius: 999px;
    background: rgba(12, 12, 12, 0.28);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }

  .product__thumbs {
    display: none;
  }

  .product__name {
    font-size: clamp(1.65rem, 7vw, 2.1rem);
    letter-spacing: 0.03em;
    line-height: 1.2;
  }

  .product__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .product__cart,
  .product__back {
    width: 100%;
  }

  .page--cart {
    background:
      radial-gradient(90% 40% at 50% 0%, rgba(47, 74, 62, 0.07), transparent 50%),
      #f4f1ec;
  }

  .cart-page {
    width: 100%;
    padding-inline: var(--page-inline);
  }

  .cart-page__head {
    align-items: flex-start;
    flex-direction: column;
  }

  .cart-layout {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .cart-item {
    grid-template-columns: 5.25rem minmax(0, 1fr);
    padding-inline: 0.75rem;
  }

  .cart-item__side {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: end;
  }

  .cart-item__copy {
    grid-column: 2;
    grid-row: 1;
    padding-right: 5.5rem;
  }

  .cart-item__controls {
    grid-column: 1 / -1;
  }

  .cart-summary {
    position: static;
  }

  .cart-empty .cart-checkout__btn {
    width: 100%;
  }

  .catalog-grid--favorites {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    width: auto;
    margin: 0;
    padding-inline: var(--page-inline);
    overflow: visible;
    scroll-snap-type: none;
  }

  .catalog-grid--favorites > li {
    flex: none;
    width: auto;
    max-width: none;
  }

  .shop-panel {
    padding-top: clamp(1.75rem, 6vw, 2.75rem);
  }

  .page--catalog .catalog-body {
    width: 100%;
    max-width: none;
    padding-inline: 0;
  }

  .page--catalog .catalog-toolbar {
    padding-inline: var(--page-inline);
  }

  .page--catalog .shop-panel {
    width: 100%;
    padding-inline: 0;
  }

  .page--catalog .shop-panel__header,
  .page--catalog .catalog-toolbar {
    padding-inline: var(--page-inline);
  }

  .page--product .product {
    width: 100%;
    padding-inline: var(--page-inline);
  }

  .page--product .product__related {
    margin-inline: calc(-1 * var(--page-inline));
    width: calc(100% + 2 * var(--page-inline));
  }

  .page--product .product__related .home-section__title {
    padding-inline: var(--page-inline);
  }

  .shop-panel__title {
    font-size: clamp(2rem, 10vw, 2.6rem);
    letter-spacing: 0.08em;
    -webkit-text-stroke: 0;
  }

  .shop-panel__subtitle {
    font-family: "Montserrat", sans-serif;
    font-size: 0.9rem;
  }

  .empty-state {
    padding-inline: 1rem;
  }

  .auth-shell:not(.profile-page) {
    width: min(100%, calc(100% - (var(--page-inline) * 2)));
    padding-top: 1.25rem;
  }

  .profile-page {
    width: min(100%, calc(100% - (var(--page-inline) * 2)));
    padding-top: 1.25rem;
  }

  .profile-page__head {
    flex-direction: column;
    align-items: stretch;
  }

  .profile-page__logout {
    align-self: flex-start;
  }

  .profile-hero {
    gap: 0.95rem;
  }

  .profile-hero__mark {
    width: 3.6rem;
    height: 3.6rem;
    font-size: 1rem;
  }

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

  .profile-page__title {
    font-size: clamp(1.55rem, 7vw, 2rem);
  }

  .auth-shell__orb {
    display: none;
  }

  .auth-form__row {
    grid-template-columns: 1fr;
  }

  .legal__heading {
    font-size: 1rem;
    text-wrap: pretty;
  }

  .site-footer__nav {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
  }

  .site-footer__link {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
  }

  .page {
    overflow-x: clip;
  }
}

@media (max-width: 380px) {
  :root {
    --header-h: 3.65rem;
  }

  .brand {
    letter-spacing: 0.08em;
  }

  .brand-tagline {
    letter-spacing: 0.12em;
  }

  .mobile-dock {
    gap: 0.25rem;
    padding: 0.4rem 0.55rem 0.45rem;
  }

  .mobile-dock .icon-btn {
    min-width: 3.6rem;
    min-height: 2.9rem;
    padding: 0.2rem 0.25rem;
  }

  .mobile-dock .icon-btn__label {
    font-size: 0.5rem;
    letter-spacing: 0.03em;
  }

  .mobile-dock .icon {
    width: 20px;
    height: 20px;
  }
}

.contact-float {
  position: fixed;
  right: calc(1rem + var(--safe-right));
  bottom: calc(1.1rem + var(--safe-bottom));
  z-index: 1040;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  opacity: 0;
  transform: translateY(0.7rem);
  pointer-events: none;
  transition:
    opacity 280ms var(--ease),
    transform 280ms var(--ease);
}

.contact-float.is-visible {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.contact-float__btn {
  display: grid;
  place-items: center;
  width: 3.15rem;
  height: 3.15rem;
  border: 1px solid rgba(20, 20, 20, 0.08);
  border-radius: 999px;
  color: #fff;
  box-shadow:
    0 1px 2px rgba(20, 20, 20, 0.06),
    0 10px 24px rgba(20, 20, 20, 0.14);
  transition:
    transform 180ms var(--ease),
    box-shadow 180ms var(--ease),
    filter 180ms var(--ease);
}

.contact-float__btn svg {
  width: 1.35rem;
  height: 1.35rem;
}

.contact-float__btn--tg {
  background: #229ed9;
}

.contact-float__btn--wa {
  background: #25d366;
}

.contact-float__btn:hover,
.contact-float__btn:focus-visible {
  transform: translateY(-2px) scale(1.03);
  box-shadow:
    0 2px 4px rgba(20, 20, 20, 0.08),
    0 14px 28px rgba(20, 20, 20, 0.16);
  filter: saturate(1.05);
}

.contact-float__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.contact-float__btn:active {
  transform: scale(0.97);
}

@media (max-width: 900px) {
  .contact-float {
    right: calc(0.85rem + var(--safe-right));
    bottom: calc(var(--dock-h, 4.25rem) + 1.15rem + var(--safe-bottom));
  }

  body:has(.cookie-bar.is-visible) .contact-float {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

.cookie-bar {
  position: fixed;
  left: 50%;
  bottom: calc(1rem + var(--safe-bottom));
  z-index: 1100;
  width: min(42rem, calc(100% - (var(--page-inline) * 2)));
  transform: translateX(-50%) translateY(1.1rem);
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 280ms var(--ease),
    transform 280ms var(--ease);
}

.cookie-bar.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.cookie-bar.is-leaving {
  opacity: 0;
  transform: translateX(-50%) translateY(0.75rem);
  pointer-events: none;
}

.cookie-bar__inner {
  display: grid;
  gap: 0.95rem;
  padding: 1rem 1.1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(243, 241, 238, 0.97)),
    var(--surface);
  box-shadow:
    0 1px 2px rgba(20, 20, 20, 0.04),
    0 14px 36px rgba(20, 20, 20, 0.12);
}

.cookie-bar__text {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

.cookie-bar__link {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

.cookie-bar__link:hover,
.cookie-bar__link:focus-visible {
  color: var(--accent);
}

.cookie-bar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.cookie-bar__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.65rem 1.05rem;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: #f6f3ef;
  font-family: "Montserrat", sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background-color 160ms var(--ease),
    color 160ms var(--ease),
    border-color 160ms var(--ease);
}

.cookie-bar__btn:hover,
.cookie-bar__btn:focus-visible {
  background: transparent;
  color: var(--ink);
}

.cookie-bar__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.cookie-bar__btn--ghost {
  background: transparent;
  color: var(--ink);
  border-color: rgba(20, 20, 20, 0.22);
}

.cookie-bar__btn--ghost:hover,
.cookie-bar__btn--ghost:focus-visible {
  border-color: var(--ink);
  background: rgba(20, 20, 20, 0.04);
}

@media (max-width: 900px) {
  .cookie-bar {
    bottom: calc(0.55rem + var(--safe-bottom));
    z-index: 1200;
    width: min(42rem, calc(100% - 1.25rem - var(--safe-left) - var(--safe-right)));
  }

  body:has(.cookie-bar.is-visible) .mobile-dock {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

@media (max-width: 560px) {
  .cookie-bar__inner {
    gap: 0.85rem;
    padding: 0.95rem 0.95rem 1rem;
  }

  .cookie-bar__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .cookie-bar__btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}
