.entry {
  max-width: none;
  padding-top: var(--padding-section);
}

.entry-panels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: var(--stroke-small) solid var(--border-secondary);
  border-left: var(--stroke-small) solid var(--border-secondary);
}

.entry-panel {
  display: block;
  padding: var(--padding-medium);
  border-right: var(--stroke-small) solid var(--border-secondary);
  border-bottom: var(--stroke-small) solid var(--border-secondary);
  transition: background-color var(--duration-hover) var(--ease-reveal);
}

.entry-panel:hover {
  background: var(--background-transparent-subtle);
}

.entry-frame {
  position: relative;
  display: block;
  aspect-ratio: 8 / 7;
  max-height: calc(0.7 * (100svh - var(--header-height)));
  width: 100%;
  overflow: hidden;
  background: var(--band-fill);
}

.entry-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale var(--duration-reveal) var(--ease-glide), opacity var(--duration-fade) var(--ease-reveal);
}

.entry-label {
  position: absolute;
  inset: auto 0 0;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--spacing-xsmall);
  padding: var(--spacing-xxlarge) var(--padding-edge) var(--padding-xlarge);
}

.entry-label::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(transparent, var(--background-overlay));
  transition: opacity var(--duration-fade) var(--ease-reveal);
}

[data-entry="furniture"] .entry-label {
  inset: 0 0 auto;
  align-items: flex-end;
  padding: var(--padding-xlarge) var(--padding-edge) var(--spacing-xxlarge);
}

[data-entry="furniture"] .entry-label::before {
  background: linear-gradient(var(--background-overlay), transparent);
}

@media (hover: hover) {
  .entry-panel:not(:hover) .entry-image,
  .entry-panel:not(:hover) .entry-label::before {
    opacity: 0;
  }

  .entry-panel:hover .entry-image {
    scale: 1.03;
  }
}

.home-services {
  padding-block: var(--padding-section);
}

.catalogue {
  position: relative;
  isolation: isolate;
  overflow-x: clip;
  padding: calc(var(--padding-section) + var(--spacing-xtreme3)) var(--padding-edge) var(--padding-section);
  background: var(--background-band-wine);
}

.catalogue::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse 70% 60% at 50% 42%, transparent 30%, var(--background-overlay) 140%);
  mask-image: linear-gradient(to bottom, transparent, black 30%, black 55%, transparent);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--duration-fade) var(--ease-reveal);
}

:root[data-catalogue-glow="glow"] .catalogue::before {
  opacity: 1;
}

.catalogue::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(168deg, transparent 15%, var(--background-shade) 70%);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--duration-fade) var(--ease-reveal);
}

:root[data-catalogue-glow="shade"] .catalogue::after {
  opacity: 1;
}

:root[data-catalogue-glow="shade"] main:has(> .catalogue:last-child) + .footer {
  background-image: linear-gradient(var(--background-shade), var(--background-shade));
}

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

  .entry-frame {
    aspect-ratio: auto;
    height: 50svh;
  }
}

@media (prefers-reduced-motion: reduce) {
  .entry-panel:hover .entry-image {
    scale: 1;
  }
}
