/* Version 25 stability layer. Kept separate from the generated public bundle. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

/* The modal shell is ready immediately; photographs fade in independently. */
.directory-modal-panel .directory-modal-content,
.directory-modal-panel .directory-modal-collage {
  opacity: 1;
  transform: none;
  transition: none;
}
.directory-modal-overlay,
.event-modal-backdrop,
.modal-backdrop,
.cms-managed-modal {
  animation: ocv-v25-backdrop-in 180ms ease-out both;
}
.directory-modal-panel,
.event-modal,
.login-modal,
.cms-managed-panel {
  animation: ocv-v25-dialog-in 340ms cubic-bezier(.22, 1, .36, 1) both;
  animation-delay: 0ms !important;
}

.listing-card img,
.directory-category-card img,
.event-card img {
  aspect-ratio: 16 / 11;
  object-fit: cover;
}
.hero img,
.subpage-hero > img,
.category-hero-photo img,
.wine-dino-hero img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.ocv-inline-status {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  color: #5f5962;
  font-size: 13px;
}
.ocv-inline-status.success { color: #226b37; }
.ocv-inline-status.error { color: #a02a3a; }

.ocv-route-feedback {
  border: 1px solid #dfd4e3;
  border-radius: 14px;
  background: #faf7fb;
  color: #5f5962;
  margin-top: 14px;
  padding: 14px 16px;
  font-size: 13px;
  line-height: 1.5;
}

@keyframes ocv-v25-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes ocv-v25-dialog-in {
  from { opacity: 0; transform: translate3d(0, 14px, 0) scale(.985); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@media (max-width: 760px) {
  .directory-modal-overlay { padding: 0; }
  .directory-modal-panel,
  .ocv-hotels-route .directory-modal-panel {
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    grid-template-columns: 1fr;
    overflow-y: auto;
  }
  .ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-content {
    order: 1;
  }
  .ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage {
    order: 2;
    min-height: 180px;
    aspect-ratio: auto;
  }
  .directory-modal-close {
    position: fixed;
    top: max(12px, env(safe-area-inset-top));
    right: 12px;
  }
  .event-modal-backdrop { padding: 10px; }
  .event-modal {
    width: 100%;
    max-height: calc(100dvh - 20px);
    padding: 32px 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .directory-modal-overlay,
  .event-modal-backdrop,
  .modal-backdrop,
  .cms-managed-modal,
  .directory-modal-panel,
  .event-modal,
  .login-modal,
  .cms-managed-panel {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* WordPress legal pages keep the visual identity without loading a second app. */
.ocv-legal-page{min-height:100vh;background:#f7f3f7;color:#32163a;padding:clamp(28px,6vw,80px) 20px;font-family:Manrope,Arial,sans-serif}
.ocv-legal-shell{width:min(860px,100%);margin:auto;background:#fff;border:1px solid rgba(103,34,124,.14);border-radius:24px;padding:clamp(28px,6vw,64px);box-shadow:0 24px 70px rgba(48,22,57,.08)}
.ocv-legal-shell>a{color:#67227c;font-weight:700;text-decoration:none}
.ocv-legal-kicker{margin:42px 0 8px;color:#67227c;font-size:12px;font-weight:800;letter-spacing:.16em}
.ocv-legal-shell h1{font-family:Lora,Georgia,serif;font-size:clamp(40px,7vw,72px);font-weight:400;line-height:1.02;margin:0 0 28px}
.ocv-legal-shell h2{font-family:Lora,Georgia,serif;font-size:28px;font-weight:500;margin:34px 0 10px}
.ocv-legal-shell p,.ocv-legal-shell li{font-size:16px;line-height:1.8;color:#665b69}
