/* Sage gallery matching the reservation catalogue. */
.about.vision-pricelist { padding: 80px 0 0; background: #e4e6df; }
.about.vision-pricelist h2.about-floating-title { position: static; margin: 0 auto 10px; color: #29312b; font: 400 clamp(42px, 6vw, 66px)/1 Italiana, serif !important; letter-spacing: -.055em; text-align: center; }
.vision-stage { position: relative; isolation: isolate; width: 100%; max-width: none; margin: 0; overflow: hidden; border-radius: 0; background: #e4e6df; color: #29312b; padding: 38px 32px 32px; }
.vision-navigation { color: #29312b; border: 1px solid #ffffff65; background: linear-gradient(135deg, #ffffff42, #ffffff18); box-shadow: inset 0 1px 1px #ffffff45, 0 16px 40px #111b2020; backdrop-filter: blur(22px) saturate(1.2); -webkit-backdrop-filter: blur(22px) saturate(1.2); }
.vision-deck { position: relative; height: 520px; margin: 0 auto 22px; --card-step: 210px; touch-action: pan-y; user-select: none; cursor: grab; }
.vision-deck:focus-visible { outline: 2px solid #fff9; outline-offset: 6px; border-radius: 24px; }
.vision-card { position: absolute; top: 0; left: 50%; width: 350px; height: 510px; overflow: hidden; border: 0; border-radius: 28px; background: #9d9e9860; box-shadow: 0 24px 55px #14202045; backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); transform: translateX(calc(-50% + var(--offset, 0) * var(--card-step))) scale(.88); transition: none; }
.vision-card-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.vision-card-cta { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; gap: 12px; width: max-content; max-width: calc(100% - 32px); min-height: 40px; padding: 10px 18px; border: 1px solid #ffffff90; border-radius: 30px; background: #51595538; box-shadow: inset 0 1px 0 #ffffff45, 0 4px 20px #18252220; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); color: #fffaf2; font: 500 10px/1.4 Manrope, sans-serif; letter-spacing: .02em; text-decoration: none; }
.vision-card-cta svg { width: 15px; height: 15px; }
.vision-card-cta:hover, .vision-card-cta:focus-visible { background: #fffaf2; color: #243237; }
.vision-navigation { position: relative; z-index: 6; display: flex; align-items: center; gap: 18px; width: min(100%, 600px); min-height: 64px; margin: auto; padding: 10px 16px; border-radius: 40px; }
.vision-navigation button { display: grid; place-items: center; flex: 0 0 36px; height: 36px; padding: 0; border: 1px solid #ffffff50; border-radius: 50%; background: #ffffff25; color: #29312b; font: 20px/1 Manrope, sans-serif; cursor: pointer; }
.vision-navigation button:hover, .vision-navigation button:focus-visible { background: #ffffff55; }
.vision-navigation button:disabled { opacity: .35; cursor: default; }
.vision-status { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; text-align: center; font: 600 12px/1.4 Manrope, sans-serif; }
.vision-price { margin-top: 0; font: 500 12px/1.4 Manrope, sans-serif; }
.vision-empty { text-align: center; padding: 160px 20px; }
@media(max-width: 760px) {
  .about.vision-pricelist { padding: 44px 0 0; }
  .about.vision-pricelist h2.about-floating-title { margin-bottom: 10px; }
  .vision-stage { border-radius: 0; padding: 22px 14px; }
  .vision-deck { height: 432px; margin: 0 auto 16px; }
  .vision-card { width: min(260px, 73vw); height: 426px; border-radius: 23px; }
  .vision-card-photo { height: 100%; }
  .vision-card-cta { padding: 9px 12px; font-size: 9px; }
  .vision-navigation { gap: 10px; padding: 9px 12px; min-height: 64px; }
  .vision-status { font-size: 10px; }
}
@media(prefers-reduced-motion: reduce) { .vision-card { transition: none; } }

@media(max-width: 600px) { .about.vision-pricelist h2.about-floating-title { font-size: 46px !important; } }

/* A fixed row of recycled slots slides sideways; cards never rotate across the deck. */
.vision-card[data-position="0"] { --offset: 0; z-index: 5; transform: translateX(-50%) scale(1); filter: none; }
.vision-card[data-position="-1"] { --offset: -1; z-index: 4; filter: blur(2px) brightness(.9); cursor: pointer; }
.vision-card[data-position="1"] { --offset: 1; z-index: 4; filter: blur(2px) brightness(.9); cursor: pointer; }
.vision-card[data-position="-2"] { --offset: -2; z-index: 3; opacity: 0; pointer-events: none; filter: blur(2px); }
.vision-card[data-position="2"] { --offset: 2; z-index: 3; opacity: 0; pointer-events: none; filter: blur(2px); }
.vision-card[data-position="-3"], .vision-card[data-position="3"] { opacity: 0; pointer-events: none; }
.vision-deck[data-sliding="true"] .vision-card { transition: transform 450ms cubic-bezier(.22,.7,.23,1), filter 450ms, opacity 450ms; }
.vision-deck:active { cursor: grabbing; }
@media(max-width: 760px) { .vision-deck { --card-step: 120px; } }
@media(prefers-reduced-motion: reduce) { .vision-deck[data-sliding="true"] .vision-card { transition: none; } }

/* Give the home pricelist breathing room before the title and after navigation. */
.hymne-home-page .about.vision-pricelist { padding-block: 176px 144px; }
.hymne-home-page .about.vision-pricelist h2.about-floating-title { margin-bottom: 44px; }
@media(max-width: 760px) {
  .hymne-home-page .about.vision-pricelist { padding-block: 132px 112px; }
  .hymne-home-page .about.vision-pricelist h2.about-floating-title { margin-bottom: 40px; }
}

/* Clip the side cards at the section edge so the price shadow can fade naturally. */
.hymne-home-page .vision-stage { overflow: visible; background: transparent; }
