/* Galerie homepage: carusel 3D (coverflow). Scriptul: gallery-3d.js */
.g3d {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
  /* lățimea cardului urmează locul în care e pus caruselul (homepage, pagini de servicii, pagini înguste ca /link) */
  container-type: inline-size;
  --g3d-w: clamp(150px, 52cqw, 290px);
}
.g3d-stage {
  position: relative;
  height: calc(var(--g3d-w) * 1.38 + 70px);
  perspective: 1400px;
  perspective-origin: 50% 40%;
  overflow: hidden;
  touch-action: pan-y;
  cursor: grab;
  outline: none;
  -webkit-user-select: none;
  user-select: none;
  background: radial-gradient(ellipse 60% 55% at 50% 45%, rgba(255, 122, 26, 0.13), transparent 70%);
}
.g3d-stage.is-dragging { cursor: grabbing; }
.g3d-stage:focus-visible { box-shadow: inset 0 0 0 2px rgba(255, 122, 26, 0.6); border-radius: 18px; }
/* „podeaua” luminoasă de sub carduri */
.g3d-stage::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 24px;
  width: min(760px, 90%);
  height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(255, 122, 26, 0.22), transparent 70%);
  filter: blur(6px);
  pointer-events: none;
}
.g3d-card {
  position: absolute;
  top: 18px;
  left: 50%;
  width: var(--g3d-w);
  aspect-ratio: 3 / 4.15;
  margin: 0 0 0 calc(var(--g3d-w) / -2);
  border-radius: 18px;
  overflow: hidden;
  background: #120e0b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 50px rgba(0, 0, 0, 0.6);
  transform-style: preserve-3d;
  transition: transform 850ms cubic-bezier(0.25, 0.8, 0.25, 1), opacity 700ms ease, filter 700ms ease, box-shadow 700ms ease, border-color 700ms ease;
  will-change: transform;
  -webkit-box-reflect: below 10px linear-gradient(transparent 72%, rgba(255, 255, 255, 0.16));
}
.g3d-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
}
.g3d-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0.14), transparent 38%);
  opacity: 0;
  transition: opacity 500ms ease;
  pointer-events: none;
}
.g3d-card.is-active {
  border-color: rgba(255, 122, 26, 0.75);
  box-shadow: 0 0 0 1px rgba(255, 122, 26, 0.35), 0 26px 60px rgba(0, 0, 0, 0.65), 0 0 46px rgba(255, 122, 26, 0.28);
}
.g3d-card.is-active::after { opacity: 1; }
.g3d-card:not(.is-active) { cursor: pointer; }
.g3d-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
}
.g3d-dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #5c4a3c;
  cursor: pointer;
  transition: width 300ms ease, background 300ms ease;
}
.g3d-dots button[aria-current="true"] { width: 26px; background: var(--gold, #ff7a1a); }
/* zona de atingere mai mare pentru puncte, fără să le mărim vizual */
.g3d-dots button { position: relative; }
.g3d-dots button::before { content: ""; position: absolute; inset: -12px -4px; }
.g3d-dots { margin-bottom: 6px; }
@media (max-width: 760px) {
  /* pe telefon scena iese până la marginile ecranului (secțiunea are 20px padding), ca să se vadă cardurile laterale */
  .g3d-stage { margin-inline: -20px; }
}
@container (min-width: 760px) {
  .g3d-stage { --g3d-w: clamp(220px, 26cqw, 300px); }
}
/* secțiunea refolosită pe celelalte pagini (titlu + carusel) */
.g3d-section { padding: clamp(36px, 6vw, 72px) clamp(16px, 4vw, 40px); text-align: center; }
.g3d-section .g3d-eyebrow { margin: 0 0 8px; color: var(--gold, #ff7a1a); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.g3d-section .g3d-title { margin: 0 0 6px; color: #fff; font-size: clamp(1.4rem, 3.4vw, 2.2rem); line-height: 1.15; }
.g3d-section .g3d-sub { margin: 0 auto 18px; max-width: 46ch; color: rgba(255,255,255,.7); font-size: .95rem; line-height: 1.55; }
.lp-g3d .g3d { margin-top: 10px; }
