/* IDP Builder Deluxe - extras (tiny + optional) */
:root {
  --idp-shadow: 0 10px 30px rgba(0,0,0,.08);
  --idp-shadow-soft: 0 6px 18px rgba(0,0,0,.08);
  --idp-ring: 0 0 0 3px rgba(37,99,235,.25);
  --idp-radius: 18px;
}

/* Accessibility */
.screen-reader-text:focus {
  position: absolute !important;
  left: 12px; top: 12px;
  width: auto; height: auto;
  padding: 10px 12px;
  background: #fff;
  border-radius: 10px;
  box-shadow: var(--idp-shadow);
  z-index: 9999;
}

/* Sane form defaults */
input[type="text"], input[type="email"], input[type="url"], input[type="tel"],
input[type="password"], input[type="search"], textarea, select {
  border-radius: 12px;
  border: 1px solid rgba(17,24,39,.18);
  padding: .75rem .9rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
input:focus, textarea:focus, select:focus {
  outline: none;
  box-shadow: var(--idp-ring);
  border-color: rgba(37,99,235,.55);
}

/* Block styles */
.is-style-idp-card {
  border-radius: var(--idp-radius);
  box-shadow: var(--idp-shadow-soft);
  border: 1px solid rgba(17,24,39,.08);
  overflow: hidden;
}
.is-style-idp-sticky {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.75);
  border-bottom: 1px solid rgba(17,24,39,.08);
}
.is-style-idp-fade {
  opacity: .35;
}
.wp-block-heading.is-style-idp-gradient {
  background: var(--wp--preset--gradient--idp-sky);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Buttons */
.wp-block-button.is-style-idp-grow .wp-block-button__link {
  transition: transform .18s ease, filter .18s ease;
  box-shadow: 0 10px 24px rgba(37,99,235,.25);
}
.wp-block-button.is-style-idp-grow .wp-block-button__link:hover {
  transform: translateY(-2px) scale(1.02);
  filter: brightness(1.02);
}
.wp-block-button.is-style-idp-ghost .wp-block-button__link {
  background: transparent !important;
  border: 1px solid rgba(37,99,235,.35);
  color: var(--wp--preset--color--idp-blue) !important;
  box-shadow: none;
}
.wp-block-button.is-style-idp-ghost .wp-block-button__link:hover {
  border-color: rgba(6,182,212,.55);
  color: var(--wp--preset--color--idp-cyan) !important;
}

/* Navigation pills */
.wp-block-navigation.is-style-idp-pill .wp-block-navigation-item__content {
  border-radius: 999px;
  padding: .35rem .65rem;
  transition: background .18s ease, color .18s ease;
}
.wp-block-navigation.is-style-idp-pill .wp-block-navigation-item__content:hover {
  background: rgba(37,99,235,.08);
}

/* Footer polish */
.idp-footer-note {
  opacity: .75;
  font-size: .95em;
}

/* Reveal-on-scroll (JS adds .is-inview). The previous version animated immediately, which broke the IntersectionObserver flow. */
@media (prefers-reduced-motion: no-preference) {
  .idp-reveal {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .45s ease, transform .55s cubic-bezier(.2,.8,.2,1);
    will-change: opacity, transform;
  }
  .idp-reveal.is-inview {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Scroll-to-top button (rendered by assets/js/ui.js) */
.idp-to-top{
  position: fixed;
  right: 16px;
  bottom: 16px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(17,24,39,.12);
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
  z-index: 9999;
}
.idp-to-top:hover{ transform: translateY(-1px); }
.idp-to-top.is-visible{ opacity: 1; pointer-events: auto; }

/* Dark mode (IDP WP Builder pages) */
body.idpwb-dark .idp-to-top{
  border-color: rgba(255,255,255,.14);
  background: rgba(12,16,28,.62);
  box-shadow: 0 20px 55px rgba(0,0,0,.35);
  color: rgba(255,255,255,.90);
}
