/* Hero, garment plates, rental catalogue. */

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: #d7e0e6;
}

.frame { margin: 0; }

.frame img { display: block; width: 100%; height: auto; }

.hero__reel {
  position: absolute;
  inset: 0;
}

.hero__reel video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.hero__copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 100svh;
  max-width: 34rem;
  padding: var(--space-7);
  padding-top: var(--header-offset);
  color: var(--burgundy-primary);
}

.hero__copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42%;
  background: linear-gradient(to top, rgba(250, 245, 244, 0.72), transparent);
}

.hero h1 {
  max-width: 10ch;
  color: var(--burgundy-primary);
  font-size: clamp(2.8rem, 5vw, 4.4rem);
}

.hero__actions { margin-top: var(--space-4); flex-wrap: wrap; }

.linkish {
  border: 0;
  background: transparent;
  color: inherit;
  min-height: 44px;
  padding: 0.35rem 0;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 0.4em;
}

.quiet {
  margin: 0 0 var(--space-5);
  font-size: clamp(1.7rem, 2.4vw, 2.2rem);
  font-weight: 400;
}

.plate { position: relative; overflow: hidden; background: var(--plate); }

.plate__cloth,
.plate__art { position: absolute; inset: 0; }

.plate__cloth {
  background:
    radial-gradient(70% 45% at 50% 0%, var(--plate-light), transparent 62%),
    linear-gradient(180deg, var(--plate-ground), var(--plate-deep));
}

.plate__cloth::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.18;
  pointer-events: none;
  background-image: radial-gradient(var(--burgundy-darkest) 0.55px, transparent 0.55px);
  background-size: 4px 4px;
}

.plate__art {
  display: grid;
  place-items: end center;
  transition: transform var(--zoom-duration) var(--ease-editorial);
}

.plate__art .kaftan { width: min(92%, 460px); height: 94%; }

.card:hover .plate__art,
.card:focus-within .plate__art,
.inspire:hover .plate__art {
  transform: scale(1.04);
}

.wardrobe,
.createur { padding-block: var(--space-8); }

.catalog-anchor,
#createur,
#catalogue { scroll-margin-top: var(--header-offset); }

.tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 1.75rem;
  margin-bottom: var(--space-6);
}

.tools__row,
.choice-row { display: flex; flex-wrap: wrap; gap: 1.15rem; }

.pill span {
  font-family: var(--font-mono);
  letter-spacing: 0;
}

.pill {
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--burgundy-primary);
  padding: 0.45rem 0;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.pill.is-selected {
  background: transparent;
  color: var(--burgundy-primary);
  border-bottom-color: var(--burgundy-primary);
}

.sort {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  justify-self: start;
  font-size: 0.68rem;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
}

.sort select {
  min-height: 44px;
  min-width: 14rem;
  border: 1px solid var(--border-strong);
  background: var(--bg-ivory-pure);
  padding: 0 0.8rem;
  letter-spacing: 0.08em;
}

.results {
  margin-bottom: var(--space-4);
  font-family: var(--font-mono);
  font-size: 0.78rem;
}

.catalog,
.inspire-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem 1.25rem;
}

.inspire-grid { grid-template-columns: repeat(4, 1fr); }

.card,
.inspire {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.preview-card,
.step-panel {
  background: var(--bg-blush-light);
  border: 1px solid var(--border-hairline);
}

.card__media { position: relative; }

.card__media .plate,
.inspire .plate { aspect-ratio: 3 / 4; }

.ref-tag,
.badge {
  position: absolute;
  z-index: 2;
  margin: 0;
  padding: 0.38rem 0.5rem;
  font-size: 0.66rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ref-tag {
  left: 0.75rem;
  bottom: 0.75rem;
  background: var(--bg-ivory-pure);
  color: var(--burgundy-primary);
  font-family: var(--font-mono);
  letter-spacing: 0.04em;
  text-transform: none;
}

.ref-tag--inline { position: static; display: inline-block; margin-bottom: 0.6rem; }

.badge--available {
  top: 0.75rem;
  left: 0.75rem;
  background: var(--status-available);
  color: var(--bg-ivory-pure);
}

.badge--new {
  top: 3rem;
  left: 0.75rem;
  background: var(--bg-ivory-pure);
  color: var(--burgundy-primary);
}

.heart {
  position: absolute;
  z-index: 2;
  top: 0.65rem;
  right: 0.65rem;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--bg-blush-light);
  color: var(--burgundy-primary);
}

.heart svg { width: 18px; height: 18px; }

.heart path { fill: none; stroke: currentColor; stroke-width: 1.6; }

.heart.is-on {
  background: var(--burgundy-primary);
  color: var(--bg-blush-primary);
}

.heart.is-on path { fill: currentColor; }

.card__body,
.inspire__body { display: grid; gap: 0.15rem; padding: 0.85rem 0 0; }

.card__title,
.inspire__body h3 { font-size: 1.45rem; font-weight: 400; }

.preview-badges span,
.spec th {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.68rem;
}

.card__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.7rem;
  margin-top: 0.4rem;
}

.card__price .money { font-size: 1.35rem; }

.card__actions,
.inspire__body { align-items: start; }

.card__actions { margin-top: 0.15rem; gap: 1.25rem; }

.empty {
  padding: var(--space-7) var(--space-4);
  text-align: center;
  background: var(--bg-blush-light);
  border: 1px solid var(--border-hairline);
}
